Merge remote-tracking branch 'origin/0.8.X' into 0.8.X
This commit is contained in:
@@ -191,4 +191,27 @@ export function cancelExportCoil(coilId) {
|
|||||||
url: '/wms/materialCoil/withdrawExportCoil/' + coilId,
|
url: '/wms/materialCoil/withdrawExportCoil/' + coilId,
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查入场钢卷号或当前钢卷号是否合法(是否存在)
|
||||||
|
export function checkCoilNo({ currentCoilNo, enterCoilNo }) {
|
||||||
|
return request({
|
||||||
|
url: '/wms/materialCoil/checkCoilNoDuplicate',
|
||||||
|
method: 'get',
|
||||||
|
params: {
|
||||||
|
currentCoilNo,
|
||||||
|
enterCoilNo
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据前缀获取当前的最大钢卷号
|
||||||
|
export function getMaxCoilNo(enterCoilNoPrefix) {
|
||||||
|
return request({
|
||||||
|
url: '/wms/materialCoil/getMaxEnterCoilNo',
|
||||||
|
method: 'get',
|
||||||
|
params: {
|
||||||
|
enterCoilNoPrefix
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
@@ -195,7 +195,8 @@
|
|||||||
<el-button size="mini" type="text" icon="el-icon-view" @click="handlePreviewLabel(scope.row)">
|
<el-button size="mini" type="text" icon="el-icon-view" @click="handlePreviewLabel(scope.row)">
|
||||||
打印
|
打印
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-if="scope.row.actionStatus == 0 || scope.row.actionStatus == 1" size="mini" type="text" icon="el-icon-edit" @click="handleEdit(scope.row)">
|
<el-button v-if="scope.row.actionStatus == 0 || scope.row.actionStatus == 1" size="mini" type="text"
|
||||||
|
icon="el-icon-edit" @click="handleEdit(scope.row)">
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-if="scope.row.actionStatus == 0 || scope.row.actionStatus == 1" type="primary"
|
<el-button v-if="scope.row.actionStatus == 0 || scope.row.actionStatus == 1" type="primary"
|
||||||
@@ -276,9 +277,9 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="getItemLabel" prop="itemId">
|
<el-form-item :label="getItemLabel" prop="itemId">
|
||||||
<product-select v-if="editCoil.form.itemType == 'product'" v-model="editCoil.form.itemId" placeholder="请选择成品"
|
<product-select v-if="editCoil.form.itemType == 'product' && editCoil.form.materialType === '成品'" v-model="editCoil.form.itemId" placeholder="请选择成品"
|
||||||
style="width: 100%;" clearable />
|
style="width: 100%;" clearable />
|
||||||
<raw-material-select v-else-if="editCoil.form.itemType == 'raw_material'" v-model="editCoil.form.itemId"
|
<raw-material-select v-else-if="editCoil.form.itemType == 'raw_material' && (editCoil.form.materialType === '原料' || editCoil.form.materialType === '废品')" v-model="editCoil.form.itemId"
|
||||||
placeholder="请选择原料" style="width: 100%;" clearable />
|
placeholder="请选择原料" style="width: 100%;" clearable />
|
||||||
<div v-else>请先选择材料类型</div>
|
<div v-else>请先选择材料类型</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -340,7 +341,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getMaterialCoil, listMaterialCoil, updateMaterialCoilSimple } from '@/api/wms/coil'
|
import { getMaterialCoil, listMaterialCoil, updateMaterialCoilSimple, getMaxCoilNo, checkCoilNo } from '@/api/wms/coil'
|
||||||
import { listPendingAction, delPendingAction, updatePendingAction } from '@/api/wms/pendingAction'
|
import { listPendingAction, delPendingAction, updatePendingAction } from '@/api/wms/pendingAction'
|
||||||
import MaterialSelect from "@/components/KLPService/MaterialSelect";
|
import MaterialSelect from "@/components/KLPService/MaterialSelect";
|
||||||
import ActualWarehouseSelect from "@/components/KLPService/ActualWarehouseSelect";
|
import ActualWarehouseSelect from "@/components/KLPService/ActualWarehouseSelect";
|
||||||
@@ -402,10 +403,51 @@ export default {
|
|||||||
{ required: true, message: "请选择收货计划", trigger: "change" }
|
{ required: true, message: "请选择收货计划", trigger: "change" }
|
||||||
],
|
],
|
||||||
enterCoilNo: [
|
enterCoilNo: [
|
||||||
{ required: true, message: "入场钢卷号不能为空", trigger: "blur" }
|
{ required: true, message: "入场钢卷号不能为空", trigger: "blur" },
|
||||||
|
// 自定义校验,必须是8位的阿拉伯数字
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => {
|
||||||
|
if (!/^\d{8}$/.test(value)) {
|
||||||
|
callback(new Error('入场钢卷号必须是8位的阿拉伯数字'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}, trigger: 'blur'
|
||||||
|
},
|
||||||
|
// 远程校验,检查钢卷号是否存在
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => {
|
||||||
|
checkCoilNo({ enterCoilNo: value }).then(res => {
|
||||||
|
const { duplicateType } = res.data;
|
||||||
|
if (duplicateType === 'enter' || duplicateType === 'both') {
|
||||||
|
// alert('入场钢卷号重复,请重新输入');
|
||||||
|
callback(new Error('入场钢卷号重复,请重新输入'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}, trigger: 'blur'
|
||||||
|
},
|
||||||
],
|
],
|
||||||
currentCoilNo: [
|
currentCoilNo: [
|
||||||
{ required: true, message: "当前钢卷号不能为空", trigger: "blur" }
|
{ required: true, message: "当前钢卷号不能为空", trigger: "blur" },
|
||||||
|
// 远程校验,当前钢卷号不能重复
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => {
|
||||||
|
checkCoilNo({ currentCoilNo: value }).then(res => {
|
||||||
|
const { duplicateType } = res.data;
|
||||||
|
if (duplicateType === 'current' || duplicateType === 'both') {
|
||||||
|
// alert('当前钢卷号重复,请重新输入');
|
||||||
|
callback(new Error('当前钢卷号重复,请重新输入'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}, trigger: 'blur'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
materialType: [
|
||||||
|
{ required: true, message: "材料类型不能为空", trigger: "change" }
|
||||||
],
|
],
|
||||||
itemId: [
|
itemId: [
|
||||||
{ required: true, message: "物品ID不能为空", trigger: "blur" }
|
{ required: true, message: "物品ID不能为空", trigger: "blur" }
|
||||||
@@ -453,6 +495,7 @@ export default {
|
|||||||
this.getList()
|
this.getList()
|
||||||
this.getTodayPlan()
|
this.getTodayPlan()
|
||||||
this.remoteMethod('')
|
this.remoteMethod('')
|
||||||
|
this.getMaxCoilNoByPrefix()
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
// 动态显示标签
|
// 动态显示标签
|
||||||
@@ -656,6 +699,31 @@ export default {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
// 获取入场钢卷号前缀(四位的字符串)两位年份+两位月份
|
||||||
|
getEnterCoilNoPrefix() {
|
||||||
|
const date = new Date();
|
||||||
|
const year = date.getFullYear().toString().slice(-2);
|
||||||
|
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
||||||
|
return year + month;
|
||||||
|
},
|
||||||
|
// 获取当前的最大钢卷号
|
||||||
|
getMaxCoilNoByPrefix() {
|
||||||
|
const prefix = this.getEnterCoilNoPrefix()
|
||||||
|
getMaxCoilNo(prefix).then(res => {
|
||||||
|
console.log(res)
|
||||||
|
// 扣掉最后一位
|
||||||
|
this.form.enterCoilNo = res.data.maxEnterCoilNo.slice(0, -1);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 检查钢卷号是否合法(后端检查)
|
||||||
|
checkCoilNo() {
|
||||||
|
checkCoilNo({ currentCoilNo: this.form.currentCoilNo, entryCoilNo: this.form.enterCoilNo }).then(res => {
|
||||||
|
console.log(res)
|
||||||
|
// if (res.data) {
|
||||||
|
// this.$modal.msgError("钢卷号已存在");
|
||||||
|
// }
|
||||||
|
})
|
||||||
|
},
|
||||||
// 取消操作
|
// 取消操作
|
||||||
cancel() {
|
cancel() {
|
||||||
this.form = {};
|
this.form = {};
|
||||||
|
|||||||
@@ -98,7 +98,8 @@
|
|||||||
<el-table-column label="更新时间" align="center" prop="updateTime" />
|
<el-table-column label="更新时间" align="center" prop="updateTime" />
|
||||||
<el-table-column label="发货时间" align="center" v-if="showExportTime" prop="exportTime" width="160">
|
<el-table-column label="发货时间" align="center" v-if="showExportTime" prop="exportTime" width="160">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-date-picker @change="handleExportTimeChange(scope.row)" v-if="canEditExportTime" style="width: 90%" v-model="scope.row.exportTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择发货时间" />
|
<el-date-picker @change="handleExportTimeChange(scope.row)" v-if="canEditExportTime" style="width: 90%"
|
||||||
|
v-model="scope.row.exportTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择发货时间" />
|
||||||
<div v-else>{{ scope.row.exportTime }}</div>
|
<div v-else>{{ scope.row.exportTime }}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -181,7 +182,7 @@
|
|||||||
clearable />
|
clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="班组" prop="team">
|
<el-form-item label="班组" prop="team">
|
||||||
<el-select v-model="form.team" placeholder="请选择班组" style="width: 100%" >
|
<el-select v-model="form.team" placeholder="请选择班组" style="width: 100%">
|
||||||
<el-option key="甲" label="甲" value="甲" />
|
<el-option key="甲" label="甲" value="甲" />
|
||||||
<el-option key="乙" label="乙" value="乙" />
|
<el-option key="乙" label="乙" value="乙" />
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -286,15 +287,17 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
listMaterialCoil,
|
listMaterialCoil,
|
||||||
getMaterialCoil,
|
getMaterialCoil,
|
||||||
delMaterialCoil,
|
delMaterialCoil,
|
||||||
addMaterialCoil,
|
addMaterialCoil,
|
||||||
updateMaterialCoilSimple,
|
updateMaterialCoilSimple,
|
||||||
getMaterialCoilTrace,
|
getMaterialCoilTrace,
|
||||||
exportCoil,
|
exportCoil,
|
||||||
cancelExportCoil } from "@/api/wms/coil";
|
cancelExportCoil,
|
||||||
|
checkCoilNo
|
||||||
|
} from "@/api/wms/coil";
|
||||||
import WarehouseSelect from "@/components/KLPService/WarehouseSelect";
|
import WarehouseSelect from "@/components/KLPService/WarehouseSelect";
|
||||||
import QRCode from "../../print/components/QRCode.vue";
|
import QRCode from "../../print/components/QRCode.vue";
|
||||||
import * as XLSX from 'xlsx'
|
import * as XLSX from 'xlsx'
|
||||||
@@ -451,10 +454,55 @@ export default {
|
|||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
enterCoilNo: [
|
enterCoilNo: [
|
||||||
{ required: true, message: "入场钢卷号不能为空", trigger: "blur" }
|
{ required: true, message: "入场钢卷号不能为空", trigger: "blur" },
|
||||||
|
// 自定义校验,必须是8位的阿拉伯数字
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => {
|
||||||
|
if (!/^\d{8}$/.test(value)) {
|
||||||
|
callback(new Error('入场钢卷号必须是8位的阿拉伯数字'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}, trigger: 'blur'
|
||||||
|
},
|
||||||
|
// 远程校验,检查钢卷号是否存在
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => {
|
||||||
|
checkCoilNo({ enterCoilNo: value }).then(res => {
|
||||||
|
const { duplicateType } = res.data;
|
||||||
|
if (duplicateType === 'enter' || duplicateType === 'both') {
|
||||||
|
// alert('入场钢卷号重复,请重新输入');
|
||||||
|
callback(new Error('入场钢卷号重复,请重新输入'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}, trigger: 'blur'
|
||||||
|
},
|
||||||
],
|
],
|
||||||
currentCoilNo: [
|
currentCoilNo: [
|
||||||
{ required: true, message: "当前钢卷号不能为空", trigger: "blur" }
|
{ required: true, message: "当前钢卷号不能为空", trigger: "blur" },
|
||||||
|
// 仅在新增的时候校验
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => {
|
||||||
|
if (this.form.coilId) {
|
||||||
|
// 修改时会有coilId,不触发校验
|
||||||
|
console.log('修改时会有coilId,不触发校验');
|
||||||
|
callback();
|
||||||
|
} else {
|
||||||
|
// 没有coilId则为新增 触发校验
|
||||||
|
checkCoilNo({ currentCoilNo: value }).then(res => {
|
||||||
|
const { duplicateType } = res.data;
|
||||||
|
if (duplicateType === 'current' || duplicateType === 'both') {
|
||||||
|
// alert('当前钢卷号重复,请重新输入');
|
||||||
|
callback(new Error('当前钢卷号重复,请重新输入'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, trigger: 'blur'
|
||||||
|
}
|
||||||
],
|
],
|
||||||
itemId: [
|
itemId: [
|
||||||
{ required: true, message: "物品ID不能为空", trigger: "blur" }
|
{ required: true, message: "物品ID不能为空", trigger: "blur" }
|
||||||
|
|||||||
Reference in New Issue
Block a user