订单管理模块(日期范围查询、优化代码逻辑)、湿料计划管理(同步状态查询)、增加加载显示

yangwl
wws 1 year ago
parent 11cd65e3d0
commit b7ab73d87c

@ -43,12 +43,24 @@
/>
</el-select>
</el-form-item>
<el-form-item label-width="100px" label="计划生产日期" prop="planProDate">
<el-date-picker clearable
v-model="queryParams.planProDate"
type="date"
<!-- <el-form-item label-width="100px" label="计划生产日期" prop="planProDate">-->
<!-- <el-date-picker clearable-->
<!-- v-model="queryParams.planProDate"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="选择计划生产日期"-->
<!-- >-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item label-width="100px" label="计划生产日期" prop="productDateArray">
<el-date-picker
v-model="queryParams.planDateArray"
value-format="yyyy-MM-dd"
placeholder="选择计划生产日期">
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
@ -67,7 +79,8 @@
size="mini"
@click="dialogVisible = true"
v-hasPermi="['order:order:add']"
>新增</el-button>
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -176,7 +189,8 @@
v-model="form.planProDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择计划生产日期">
placeholder="选择计划生产日期"
>
</el-date-picker>
</el-form-item>
</el-col>
@ -196,7 +210,8 @@
v-model="form.planComplete"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择计划完成日期">
placeholder="选择计划完成日期"
>
</el-date-picker>
</el-form-item>
</el-col>
@ -277,7 +292,8 @@
<!-- 工单日期 -->
<el-col :offset="1" :span="5">
<el-form-item size="small" label="工单日期: ">
<el-date-picker @change="checkDate" v-model="splitForm.productDate" type="date" placeholder="选择日期"></el-date-picker>
<el-date-picker @change="checkDate" v-model="splitForm.productDate" type="date" placeholder="选择日期"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
@ -288,7 +304,8 @@
<el-form-item size="small" label="选择班次:" class="my-select my-first">
<el-select v-model="splitForm.shiftId" placeholder="请选择班次">
<el-option v-for="item in workShift" :key="item.shiftId" :label="item.shiftDesc"
:value="item.shiftId"></el-option>
:value="item.shiftId"
></el-option>
</el-select>
</el-form-item>
</el-col>
@ -297,7 +314,8 @@
<el-form-item size="small" label="选择工艺:" class="my-select my-first">
<el-select v-model="splitForm.routeCode" placeholder="请选择工艺">
<el-option v-for="item in routes" :key="item.routeCode" :label="item.routeName"
:value="item.routeCode"></el-option>
:value="item.routeCode"
></el-option>
</el-select>
</el-form-item>
</el-col>
@ -368,12 +386,13 @@
addOrder,
updateOrder,
syncSAP
} from "@/api/plan/order";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
} from '@/api/plan/order'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import moment from 'moment'
export default {
name: "Order",
name: 'Order',
dicts: ['product_type', 'order_status'],
components: {
Treeselect
@ -396,10 +415,6 @@
proLoading: true,
//
refreshProTable: true,
//
secConvert: null,
//
thiConvert: null,
//pro
productData: [],
//
@ -424,7 +439,7 @@
//
orderOptions: [],
//
title: "",
title: '',
//
splitOpen: false,
//
@ -433,6 +448,7 @@
refreshTable: true,
//
queryParams: {
planDateArray: [],
planFactoryCode: null,
orderType: null,
orderCode: null,
@ -458,45 +474,140 @@
productDate: null,
shiftId: null,
routeCode: null,
formFields: [],
formFields: []
},
//
rules: {},
addrules: {}
};
}
},
created() {
var now = new Date();
//
const year = now.getFullYear(); //
const month = String(now.getMonth() + 1).padStart(2, '0'); //
const day = String(now.getDate()).padStart(2, '0'); //
const date = `${year}-${month}-${day}`;
this.loading = true;
this.queryParams.status = 'o0';
this.queryParams.planProDate = date;
//
this.loading = true
this.queryParams.status = 'o0'
this.queryParams.planDateArray = [new Date(), new Date()]
this.queryParams.planDateStart = moment(this.queryParams.planDateArray[0]).format('YYYY-MM-DD')
this.queryParams.planDateEnd = moment(this.queryParams.planDateArray[1]).format('YYYY-MM-DD')
listOrder(this.queryParams).then(response => {
this.orderList = this.handleTree(response.data, "orderCode", "parentOrder");
this.loading = false;
});
this.orderList = this.handleTree(response.data, 'orderCode', 'parentOrder')
this.loading = false
})
},
methods: {
/** 拆分按钮操作 */
splitBtn(row) {
//
function setAtrr1(row) {
row.atrr1 = 0
if (row.children !== undefined) {
for (let i = 0; i < row.children.length; i++) {
setAtrr1(row.children[i])
}
}
}
setAtrr1(row)
//
this.proLoading = true // true
//
//
this.resetBatch()
//productData
this.productData.push(row)
//id
this.splitForm.id = row.id
this.refreshProTable = false // refreshProTablefalse
this.$nextTick(() => {
// 使$nextTickDOM
this.refreshProTable = true // refreshProTabletrue
this.proLoading = false // false
})
//
this.splitForm.productDate = new Date()
//
getprodLineShift(row.orderType).then(response => {
this.proline = response.data.lines
this.workShift = response.data.shifts
this.routes = response.data.routes
})
this.workerLoading = true // true
//
getWorkOrderList(row.id).then(response => {
var data = response.data
this.splitData = data
this.refreshWorkerTable = false // refreshProTablefalse
this.$nextTick(() => {
// 使$nextTickDOM
this.refreshWorkerTable = true // refreshProTabletrue
this.workerLoading = false // false
})
})
this.splitOpen = true
this.title = '拆分'
},
/** 拆分数量方法 */
splitNumChange(e) {
//
if (e <= 0) {
e = 1
this.splitForm.splitNum = 1
} else {
//
let max = Number(this.productData[0].quantity) - Number(this.productData[0].quantitySplit)
//
if (e > max) {
this.$message({
message: '最大值不能超过' + max + '!',
type: 'warning'
})
this.splitForm.splitNum = max
}
//
//
this.proLoading = true // true
//
function setAtrr1(data, splitNum) {
if (data.children !== undefined) {
for (let i = 0; i < data.children.length; i++) {
data.children[i].atrr1 = splitNum * (data.children[i].quantity / data.quantity)
setAtrr1(data.children[i], splitNum)
}
}
}
this.productData[0].atrr1 = this.splitForm.splitNum
setAtrr1(this.productData[0], this.splitForm.splitNum)
this.refreshProTable = false // refreshProTablefalse
this.$nextTick(() => {
// 使$nextTickDOM
this.refreshProTable = true // refreshProTabletrue
this.proLoading = false // false
})
}
this.product = this.productData[0]
},
//
checkNull(entity) {
if (entity !== undefined && entity !== '' && entity !== null) {
return 1;
return 1
}
return 0;
return 0
},
/** 确认关闭 */
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
this.reset();
done();
this.reset()
done()
})
.catch(_ => {
})
.catch(_ => {});
},
/** 提交按钮 */
submitForm() {
@ -506,27 +617,27 @@
message: '数据不能为空!',
type: 'warning'
})
return;
return
}
this.$refs["form"].validate(valid => {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateOrder(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.dialogVisible = false;
this.reset();
this.getList();
});
this.$modal.msgSuccess('修改成功')
this.dialogVisible = false
this.reset()
this.getList()
})
} else {
addOrder(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.dialogVisible = false;
this.reset();
this.getList();
});
this.$modal.msgSuccess('新增成功')
this.dialogVisible = false
this.reset()
this.getList()
})
}
}
});
})
},
/** 检验批次编码是否重复 */
batchCodeChange(e) {
@ -541,17 +652,17 @@
batchCode: '',
batchQuantity: ''
}]
return;
return
}
}
}
},
/** 校验日期 */
checkDate(e) {
var now = new Date();
var now = new Date()
if (e < now) {
e = now;
this.splitForm.productDate = now;
e = now
this.splitForm.productDate = now
}
},
/** 拆分提交按钮 */
@ -562,25 +673,25 @@
message: '数据不能为空!',
type: 'warning'
})
return;
return
}
if (this.splitForm.routeCode == null) {
this.$message({
message: '数据不能为空!',
type: 'warning'
})
return;
return
}
//
let sum = 0;
let sum = 0
for (let i = 0; i < this.formFields.length; i++) {
sum = Number(sum) + Number(this.formFields[i].batchQuantity);
sum = Number(sum) + Number(this.formFields[i].batchQuantity)
if (this.formFields[i].batchQuantity == '' || this.formFields[i].batchQuantity == null || this.formFields[i].batchCode == null || this.formFields[i].batchCode == '') {
this.$message({
message: '批次数据不能为空',
type: 'warning'
})
return;
return
}
}
if (sum != this.productData[0].atrr1) {
@ -588,11 +699,11 @@
message: '批次数量之和不等于拆分数量',
type: 'warning'
})
return;
return
}
//
this.splitForm.formFields = this.formFields;
this.splitForm.formFields = this.formFields
//
//
const data = {
@ -605,17 +716,17 @@
routeCode: this.splitForm.routeCode
}
let check = 1;
let check = 1
subSplitOrder(data).then(response => {
if (response.code == 500) {
check = 0;
this.$modal.msgError(response.msg);
return;
check = 0
this.$modal.msgError(response.msg)
return
}
this.$modal.msgSuccess("提交成功");
});
this.$modal.msgSuccess('提交成功')
})
let id = this.productData[0].id;
let id = this.productData[0].id
//
this.splitForm = {
id: null,
@ -623,96 +734,103 @@
splitNum: null,
productDate: null,
shiftId: null,
formFields: [],
formFields: []
}
this.formFields = [{
batchCode: '',
batchQuantity: ''
}],
}]
//
getWorkOrderList(id).then(response => {
if (response.code == 500) {
this.$modal.msgError(response.msg);
};
this.$modal.msgError(response.msg)
}
//
this.splitData = response.data;
this.splitData = response.data
//
this.workerLoading = true; // true
this.refreshWorkerTable = false; // refreshProTablefalse
this.workerLoading = true // true
this.refreshWorkerTable = false // refreshProTablefalse
this.$nextTick(() => {
// 使$nextTickDOM
this.refreshWorkerTable = true; // refreshProTabletrue
this.workerLoading = false; // false
});
this.refreshWorkerTable = true // refreshProTabletrue
this.workerLoading = false // false
})
})
if (check) {
setTimeout(() => {
this.getList();
this.getList()
// 1
this.splitOpen = false;
}, 500);
this.splitOpen = false
}, 500)
}
},
/** 动态添加表单 */
addField() {
//
let sum = 0;
let sum = 0
for (let i = 0; i < this.formFields.length; i++) {
sum += Number(this.formFields[i].batchQuantity);
sum += Number(this.formFields[i].batchQuantity)
}
;
if (sum >= this.productData[0].atrr1) {
this.$message({
message: '无法添加!您的批次数量已满!',
type: 'warning'
})
return;
return
}
;
this.formFields.push({batchCode: '', batchQuantity: ''});
this.formFields.push({ batchCode: '', batchQuantity: '' })
//
this.formFields[this.formFields.length - 1].batchQuantity = Number(this.productData[0].atrr1) - Number(sum);
this.formFields[this.formFields.length - 1].batchQuantity = Number(this.productData[0].atrr1) - Number(sum)
},
/** 动态删除表单 */
removeField(index) {
this.formFields.splice(index, 1);
this.formFields.splice(index, 1)
},
/** 查询订单列表 */
getList() {
this.loading = true;
console.log("这里是日期范围")
console.log(this.queryParams.planDateArray)
this.loading = true
if (this.queryParams.planDateArray != null) {
this.queryParams.planDateStart = moment(this.queryParams.planDateArray[0]).format('YYYY-MM-DD')
this.queryParams.planDateEnd = moment(this.queryParams.planDateArray[1]).format('YYYY-MM-DD')
}
listOrder(this.queryParams).then(response => {
this.orderList = this.handleTree(response.data, "orderCode", "parentOrder");
this.loading = false;
});
this.orderList = this.handleTree(response.data, 'orderCode', 'parentOrder')
this.loading = false
})
},
/** 转换订单数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
delete node.children
}
return {
id: node.orderCode,
label: node.orderCode,
children: node.children
};
},
/** 查询订单下拉树结构 */
getTreeselect() {
listOrder().then(response => {
this.orderOptions = [];
const data = {orderCode: 0, orderCode: '顶级节点', children: []};
data.children = this.handleTree(response.data, "orderCode", "parentOrder");
this.orderOptions.push(data);
});
}
},
//
cancel() {
this.dialogVisible = false;
this.open = false;
this.splitOpen = false;
this.reset();
},
/** 查询订单下拉树结构 */
getTreeselect() {
listOrder().then(response => {
this.orderOptions = []
const data = { orderCode: 0, orderCode: '顶级节点', children: [] }
data.children = this.handleTree(response.data, 'orderCode', 'parentOrder')
this.orderOptions.push(data)
})
},
//
reset() {
this.form = {
@ -737,8 +855,8 @@
updateBy: null,
updateTime: null,
prodType: null
};
this.resetForm("form");
}
this.resetForm('form')
},
/** 拆分表单重置 */
resetBatch() {
@ -748,15 +866,13 @@
splitNum: null,
productDate: null,
shiftId: null,
formFields: [],
}
this.splitData = [],
this.secConvert = null,
this.thiConvert = null,
this.productData = [],
this.proline = [],
this.splitnum = null,
this.workShift = [],
formFields: []
}
this.splitData = []
this.productData = []
this.proline = []
this.splitnum = null
this.workShift = []
this.formFields = [{
batchCode: '',
batchQuantity: ''
@ -764,197 +880,74 @@
},
/** 搜索按钮操作 */
handleQuery() {
this.getList();
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
this.queryParams = {
planDateArray: [],
planFactoryCode: null,
orderType: null,
orderCode: null,
prodCode: null,
prodDesc: null,
quantity: null,
unit: null,
workerOrder: null,
planProDate: null,
planComplete: null,
atrr1: null,
atrr2: null,
atrr3: null,
status: null,
parentOrder: null,
prodType: null
}
this.handleQuery()
},
/** 拆分按钮操作 */
handleAdd(row) {
this.reset();
this.getTreeselect();
this.reset()
this.getTreeselect()
if (row != null && row.orderCode) {
this.splitForm.parentOrder = row.orderCode;
this.splitForm.parentOrder = row.orderCode
} else {
this.splitForm.parentOrder = 0;
this.splitForm.parentOrder = 0
}
this.splitOpen = true;
this.title = "拆分";
this.splitOpen = true
this.title = '拆分'
},
/** 展开/折叠操作 */
toggleExpandAll() {
this.refreshTable = false;
this.isExpandAll = !this.isExpandAll;
this.refreshTable = false
this.isExpandAll = !this.isExpandAll
this.$nextTick(() => {
this.refreshTable = true;
});
this.refreshTable = true
})
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.getTreeselect();
this.reset()
this.getTreeselect()
if (row != null) {
this.splitForm.parentOrder = row.orderCode;
this.splitForm.parentOrder = row.orderCode
}
getOrder(row.id).then(response => {
this.splitForm = response.data;
this.splitOpen = true;
this.title = "修改订单";
});
},
/** 拆分按钮操作 */
splitBtn(row) {
//
//
row.atrr1 = 0;
//
if (row.children !== undefined) {
for (let i = 0; i < row.children.length; i++) {
row.children[i].atrr1 = 0;
//
if (row.children[i].children !== undefined) {
for (let j = 0; j < row.children[i].children.length; j++) {
row.children[i].children[j].atrr1 = 0;
}
}
}
}
//
this.proLoading = true; // true
//
//
this.resetBatch();
//productData
this.productData.push(row);
//id
this.splitForm.id = row.id;
this.refreshProTable = false; // refreshProTablefalse
this.$nextTick(() => {
// 使$nextTickDOM
this.refreshProTable = true; // refreshProTabletrue
this.proLoading = false; // false
});
//
this.splitForm.productDate = new Date();
//
getprodLineShift(row.orderType).then(response => {
this.proline = response.data.lines;
this.workShift = response.data.shifts;
this.routes = response.data.routes;
});
//
if (row.children !== undefined){
this.secConvert = Number(row.children[0].quantity) / Number(row.quantity);
if (row.children[0].children !== undefined){
this.thiConvert = Number(row.children[0].children[0].quantity) / Number(row.quantity);
}
}
// getConvert().then(response => {
// for (let i = 0; i < response.data.length; i++) {
// if (response.data[i].dictSort == 2) {
// this.secConvert = response.data[i];
// } else if (response.data[i].dictSort == 3) {
// this.thiConvert = response.data[i];
// }
// }
// })
//
getWorkOrderList(row.id).then(response => {
var data = response.data;
//
// for(let fir = 0;fir < data.length;fir++){
// for(let i = 0;i < data[fir].batchCodeList.length;i++){
// //
// data[fir].batchCodeList[i]
// }
// }
this.splitData = data;
this.splitForm = response.data
this.splitOpen = true
this.title = '修改订单'
})
this.splitOpen = true;
this.title = "拆分";
},
/** 拆分数量方法 */
splitNumChange(e) {
//
//
if (e <= 0) {
e = 1;
this.splitForm.splitNum = 1;
}
if (e != '' && e > 0) {
let max = Number(this.productData[0].quantity) - Number(this.productData[0].quantitySplit);
if (e > max) {
this.$message({
message: "最大值不能超过" + max + "!",
type: 'warning'
})
this.splitForm.splitNum = max;
}
//
//
this.proLoading = true; // true
//
this.productData[0].atrr1 = this.splitForm.splitNum;
//
if (this.productData[0].children !== undefined) {
for (let i = 0; i < this.productData[0].children.length; i++) {
this.productData[0].children[i].atrr1 = Number(this.splitForm.splitNum) * Number(this.secConvert);
//
if (this.productData[0].children[i].children !== undefined) {
for (let j = 0; j < this.productData[0].children[i].children.length; j++) {
this.productData[0].children[i].children[j].atrr1 = Number(this.splitForm.splitNum) * Number(this.secConvert) * Number(this.thiConvert);
}
}
}
}
this.refreshProTable = false; // refreshProTablefalse
this.$nextTick(() => {
// 使$nextTickDOM
this.refreshProTable = true; // refreshProTabletrue
this.proLoading = false; // false
});
} else {
//
//
this.proLoading = true; // true
//
this.productData[0].atrr1 = 0;
//
if (this.productData[0].children !== undefined) {
for (let i = 0; i < this.productData[0].children.length; i++) {
this.productData[0].children[i].atrr1 = 0;
//
if (this.productData[0].children[i].children !== undefined) {
for (let j = 0; j < this.productData[0].children[i].children.length; j++) {
this.productData[0].children[i].children[j].atrr1 = 0;
}
}
}
}
this.refreshProTable = false; // refreshProTablefalse
this.$nextTick(() => {
// 使$nextTickDOM
this.refreshProTable = true; // refreshProTabletrue
this.proLoading = false; // false
});
}
this.product = this.productData[0];
},
/** 填写批次数量 */
inBatch(e) {
//
if (e <= 0) {
this.formFields[this.formFields.length - 1].batchQuantity = 1;
this.formFields[this.formFields.length - 1].batchQuantity = 1
}
//
let sum = 0;
let sum = 0
for (let i = 0; i < this.formFields.length; i++) {
sum += Number(this.formFields[i].batchQuantity);
sum += Number(this.formFields[i].batchQuantity)
}
//
if (sum > this.productData[0].atrr1) {
@ -962,25 +955,26 @@
message: '你的批次数量总和不能超过拆分数量!',
type: 'warning'
})
this.formFields[this.formFields.length - 1].batchQuantity = Number(this.productData[0].atrr1) - Number(Number(sum) - Number(e));
this.formFields[this.formFields.length - 1].batchQuantity = Number(this.productData[0].atrr1) - Number(Number(sum) - Number(e))
}
//
if (this.productData[0].atrr1 == '' || this.productData[0].atrr1 == null) {
this.formFields[this.formFields.length - 1].batchQuantity = '';
this.formFields[this.formFields.length - 1].batchQuantity = ''
}
},
/** SAP同步按钮操作 */
handleSyncSAP() {
this.$modal.confirm('是否确认SAP同步操作步骤').then(function() {
return syncSAP(contentIds);
return syncSAP(contentIds)
}).then(() => {
this.getList();
this.$modal.msgSuccess("同步成功");
}).catch(() => {});
},
this.getList()
this.$modal.msgSuccess('同步成功')
}).catch(() => {
})
}
}
};
}
</script>
<style>
.el-row {

@ -4,18 +4,20 @@
<el-form-item label="计划日期" prop="planTime">
<el-date-picker
v-model="timeList"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="同步状态">-->
<!-- <el-select v-model="queryParams.syncFlag" placeholder="请选择同步状态">-->
<!-- <el-option label="已同步" value="1"></el-option>-->
<!-- <el-option label="未同步" value="0"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="同步状态">
<el-select v-model="queryParams.syncFlag" placeholder="请选择同步状态">
<el-option label="已同步" value="1"></el-option>
<el-option label="未同步" value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -31,7 +33,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['mes:plan:add']"
>新增</el-button>
>新增
</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
@ -53,7 +56,8 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['mes:plan:remove']"
>删除</el-button>
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -63,7 +67,8 @@
size="mini"
@click="handleExport"
v-hasPermi="['mes:plan:export']"
>导出</el-button>
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -98,7 +103,8 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['mes:plan:edit']"
>修改</el-button>
>修改
</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
@ -129,7 +135,8 @@
@change="workOrderTimeChange"
v-model="workOrderTime"
type="date"
placeholder="工单日期">
placeholder="工单日期"
>
</el-date-picker>
</el-form-item>
</el-col>
@ -144,12 +151,14 @@
tooltip-effect="dark"
style="width: 100%"
max-height="240"
@selection-change="handleSelectionChange">
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column width="60" align="center" label="序号" type="index" :index="indexMethod"></el-table-column>
<el-table-column width="140" align="center" prop="workorderCode" label="工单编码"></el-table-column>
<el-table-column width="230" align="center" prop="productName" label="产品名称"></el-table-column>
<el-table-column width="150" align="center" prop="productDate" label="工单日期" show-overflow-tooltip></el-table-column>
<el-table-column width="150" align="center" prop="productDate" label="工单日期" show-overflow-tooltip
></el-table-column>
<el-table-column prop="shiftDesc" label="班次"></el-table-column>
<el-table-column prop="" label="料罐"></el-table-column>
<el-table-column prop="" label="物料"></el-table-column>
@ -162,7 +171,8 @@
<el-form-item size="small" label="选择料罐:">
<el-select v-model="form.bucketId" placeholder="请选择料罐">
<el-option v-for="item in selectBucketList" :key="item.bucketId" :label="item.bucketName"
:value="item.bucketId"></el-option>
:value="item.bucketId"
></el-option>
</el-select>
</el-form-item>
</el-col>
@ -171,14 +181,16 @@
<el-form-item size="small" label="选择物料:">
<el-select v-model="form.productId" placeholder="请选择物料">
<el-option v-for="item in selectProductList" :key="item.productId" :label="item.productDesc"
:value="item.productId"></el-option>
:value="item.productId"
></el-option>
</el-select>
</el-form-item>
</el-col>
<!-- 选择日期 -->
<el-col :span="8">
<el-form-item size="small" label="计划日期: ">
<el-date-picker @change="checkDate" v-model="form.planTime" type="date" placeholder="选择日期"></el-date-picker>
<el-date-picker @change="checkDate" v-model="form.planTime" type="date" placeholder="选择日期"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
@ -198,12 +210,14 @@
tooltip-effect="dark"
style="width: 100%"
max-height="240"
@selection-change="handleSelectionChange">
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column width="60" align="center" label="序号" type="index" :index="indexMethod"></el-table-column>
<el-table-column width="140" align="center" prop="workorderCode" label="工单编码"></el-table-column>
<el-table-column width="230" align="center" prop="productName" label="产品名称"></el-table-column>
<el-table-column width="150" align="center" prop="productDate" label="工单日期" show-overflow-tooltip></el-table-column>
<el-table-column width="150" align="center" prop="productDate" label="工单日期" show-overflow-tooltip
></el-table-column>
<el-table-column prop="shiftDesc" label="班次"></el-table-column>
<el-table-column prop="bucketName" label="料罐"></el-table-column>
<el-table-column prop="materialName" label="物料"></el-table-column>
@ -242,12 +256,14 @@
tooltip-effect="dark"
style="width: 100%"
max-height="240"
@selection-change="handleSelectionChange">
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column width="60" align="center" label="序号" type="index" :index="indexMethod"></el-table-column>
<el-table-column width="140" align="center" prop="workorderCode" label="工单编码"></el-table-column>
<el-table-column width="230" align="center" prop="productName" label="产品名称"></el-table-column>
<el-table-column width="150" align="center" prop="productDate" label="工单日期" show-overflow-tooltip></el-table-column>
<el-table-column width="150" align="center" prop="productDate" label="工单日期" show-overflow-tooltip
></el-table-column>
<el-table-column prop="shiftDesc" label="班次"></el-table-column>
<el-table-column prop="bucketName" label="料罐"></el-table-column>
<el-table-column prop="materialName" label="物料"></el-table-column>
@ -260,7 +276,8 @@
<el-form-item size="small" label="选择料罐:">
<el-select v-model="form.bucketId" placeholder="请选择料罐">
<el-option v-for="item in selectBucketList" :key="item.bucketId" :label="item.bucketName"
:value="item.bucketId"></el-option>
:value="item.bucketId"
></el-option>
</el-select>
</el-form-item>
</el-col>
@ -269,14 +286,16 @@
<el-form-item size="small" label="选择物料:">
<el-select v-model="form.productId" placeholder="请选择物料">
<el-option v-for="item in selectProductList" :key="item.productId" :label="item.productDesc"
:value="item.productId"></el-option>
:value="item.productId"
></el-option>
</el-select>
</el-form-item>
</el-col>
<!-- 选择日期 -->
<el-col :span="8">
<el-form-item size="small" label="计划日期: ">
<el-date-picker readonly @change="checkDate" v-model="form.planTime" type="date" placeholder="选择日期"></el-date-picker>
<el-date-picker readonly @change="checkDate" v-model="form.planTime" type="date" placeholder="选择日期"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
@ -296,12 +315,14 @@
tooltip-effect="dark"
style="width: 100%"
max-height="240"
@selection-change="handleSelectionChange">
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column width="60" align="center" label="序号" type="index" :index="indexMethod"></el-table-column>
<el-table-column width="140" align="center" prop="workorderCode" label="工单编码"></el-table-column>
<el-table-column width="230" align="center" prop="productName" label="产品名称"></el-table-column>
<el-table-column width="150" align="center" prop="productDate" label="工单日期" show-overflow-tooltip></el-table-column>
<el-table-column width="150" align="center" prop="productDate" label="工单日期" show-overflow-tooltip
></el-table-column>
<el-table-column prop="shiftDesc" label="班次"></el-table-column>
<el-table-column prop="bucketName" label="料罐"></el-table-column>
<el-table-column prop="materialName" label="物料"></el-table-column>
@ -318,10 +339,24 @@
</template>
<script>
import { updatePlanDetail,getPlanDetailList,addWetPlan,getBMSList,getProductList,getBucketList,getWorkOrderList,listPlan, getPlan, delPlan, addPlan, updatePlan } from "@/api/plan/plan";
import {
updatePlanDetail,
getPlanDetailList,
addWetPlan,
getBMSList,
getProductList,
getBucketList,
getWorkOrderList,
listPlan,
getPlan,
delPlan,
addPlan,
updatePlan
} from '@/api/plan/plan'
import moment from 'moment'
export default {
name: "Plan",
name: 'Plan',
data() {
return {
// 湿list
@ -349,7 +384,7 @@ export default {
// --
workOrderTime: null,
//
timeList: null,
timeList: [],
//
loading: true,
//
@ -365,7 +400,7 @@ export default {
// 湿
planList: [],
//
title: "",
title: '',
//
open: false,
//
@ -375,21 +410,23 @@ export default {
planTime: null,
syncFlag: null,
startTime: null,
endTime: null,
endTime: null
},
//
form: {
bucketId: null,
productId: null,
planTime: null,
planTime: null
},
//
rules: {
rules: {}
}
};
},
created() {
this.getList();
this.timeList = [new Date(),new Date()]
this.queryParams.startTime = moment(this.timeList[0]).format('YYYY-MM-DD')
this.queryParams.endTime = moment(this.timeList[1]).format('YYYY-MM-DD')
this.getList()
},
methods: {
/** 修改-确定按钮 */
@ -400,14 +437,14 @@ export default {
message: '请选择工单!',
type: 'warning'
})
return;
return
}
if (this.form.bucketId == null || this.form.productId == null) {
this.$message({
message: '数据不能为空!',
type: 'warning'
})
return;
return
}
//
if (this.checkSelect === false) {
@ -415,15 +452,15 @@ export default {
message: '班次冲突请重新选择!',
type: 'warning'
})
return;
return
}
//
var bms = {
bucketId: this.form.bucketId,
materialId: this.form.productId,
shiftId: this.selectList[0].shiftId,
};
shiftId: this.selectList[0].shiftId
}
if (this.bmsList != null || this.bmsList === undefined) {
for (let i = 0; i < this.bmsList.length; i++) {
if (bms.shiftId == this.bmsList[i].shiftId && bms.bucketId == this.bmsList[i].bucketId && bms.materialId != this.bmsList[i].materialId) {
@ -431,46 +468,46 @@ export default {
message: '同班次同料罐下不能混料!',
type: 'warning'
})
return;
return
}
}
}
this.bmsList.push(bms);
this.bmsList.push(bms)
//
//
var bucket;
var bucket
for (let i = 0; i < this.selectBucketList.length; i++) {
if (this.form.bucketId == this.selectBucketList[i].bucketId) {
bucket = this.selectBucketList[i];
bucket = this.selectBucketList[i]
}
}
//
var material;
var material
for (let i = 0; i < this.selectProductList.length; i++) {
if (this.form.productId == this.selectProductList[i].productId) {
material = this.selectProductList[i];
material = this.selectProductList[i]
}
}
// newList
for (let i = 0; i < this.selectList.length; i++) {
this.selectList[i].bucketName = bucket.bucketName;
this.selectList[i].bucketId = bucket.bucketId;
this.selectList[i].bucketCode = bucket.bucketCode;
this.selectList[i].materialId = material.productId;
this.selectList[i].materialCode = material.productCode;
this.selectList[i].materialName = material.productDesc;
this.selectList[i].planTime = this.form.planTime;
this.newWorkOrderList.push(this.selectList[i]);
this.selectList[i].bucketName = bucket.bucketName
this.selectList[i].bucketId = bucket.bucketId
this.selectList[i].bucketCode = bucket.bucketCode
this.selectList[i].materialId = material.productId
this.selectList[i].materialCode = material.productCode
this.selectList[i].materialName = material.productDesc
this.selectList[i].planTime = this.form.planTime
this.newWorkOrderList.push(this.selectList[i])
}
//
const selectedCodes = this.selectList.map(item => item.workorderCode);
this.wetMaterialPlanList = this.wetMaterialPlanList.filter(item => !selectedCodes.includes(item.workorderCode));
const selectedCodes = this.selectList.map(item => item.workorderCode)
this.wetMaterialPlanList = this.wetMaterialPlanList.filter(item => !selectedCodes.includes(item.workorderCode))
//
this.form.bucketId = null;
this.form.productId = null;
this.form.bucketId = null
this.form.productId = null
},
/** 新增-确定按钮 */
batchBtn() {
@ -480,14 +517,14 @@ export default {
message: '请选择工单!',
type: 'warning'
})
return;
return
}
if (this.form.bucketId == null || this.form.productId == null) {
this.$message({
message: '数据不能为空!',
type: 'warning'
})
return;
return
}
//
if (this.checkSelect === false) {
@ -495,15 +532,15 @@ export default {
message: '班次冲突请重新选择!',
type: 'warning'
})
return;
return
}
//
var bms = {
bucketId: this.form.bucketId,
materialId: this.form.productId,
shiftId: this.selectList[0].shiftId,
};
shiftId: this.selectList[0].shiftId
}
if (this.bmsList != null || this.bmsList === undefined) {
for (let i = 0; i < this.bmsList.length; i++) {
if (bms.shiftId == this.bmsList[i].shiftId && bms.bucketId == this.bmsList[i].bucketId && bms.materialId != this.bmsList[i].materialId) {
@ -511,120 +548,112 @@ export default {
message: '同班次同料罐下不能混料!',
type: 'warning'
})
return;
return
}
}
}
this.bmsList.push(bms);
this.bmsList.push(bms)
//
//
var bucket;
var bucket
for (let i = 0; i < this.selectBucketList.length; i++) {
if (this.form.bucketId == this.selectBucketList[i].bucketId) {
bucket = this.selectBucketList[i];
bucket = this.selectBucketList[i]
}
}
//
var material;
var material
for (let i = 0; i < this.selectProductList.length; i++) {
if (this.form.productId == this.selectProductList[i].productId) {
material = this.selectProductList[i];
material = this.selectProductList[i]
}
}
// newList
for (let i = 0; i < this.selectList.length; i++) {
this.selectList[i].bucketName = bucket.bucketName;
this.selectList[i].bucketId = bucket.bucketId;
this.selectList[i].bucketCode = bucket.bucketCode;
this.selectList[i].materialId = material.productId;
this.selectList[i].materialCode = material.productCode;
this.selectList[i].materialName = material.productDesc;
this.selectList[i].planTime = this.form.planTime;
this.newWorkOrderList.push(this.selectList[i]);
this.selectList[i].bucketName = bucket.bucketName
this.selectList[i].bucketId = bucket.bucketId
this.selectList[i].bucketCode = bucket.bucketCode
this.selectList[i].materialId = material.productId
this.selectList[i].materialCode = material.productCode
this.selectList[i].materialName = material.productDesc
this.selectList[i].planTime = this.form.planTime
this.newWorkOrderList.push(this.selectList[i])
}
//
const selectedCodes = this.selectList.map(item => item.workorderCode);
this.workOrderList = this.workOrderList.filter(item => !selectedCodes.includes(item.workorderCode));
const selectedCodes = this.selectList.map(item => item.workorderCode)
this.workOrderList = this.workOrderList.filter(item => !selectedCodes.includes(item.workorderCode))
//
this.form.bucketId = null;
this.form.productId = null;
this.form.bucketId = null
this.form.productId = null
},
/** 校验计划日期 */
checkDate(e){
checkDate: function(e) {
if (this.newWorkOrderList.length > 0) {
this.$message({
message: '您已生成数据不能更改日期!',
type: 'warning'
})
return;
return
}
var now = new Date();
var now = new Date()
if (e < now) {
this.$message({
message: '日期不得早于今天',
type: 'warning'
})
e = now;
this.form.planTime = now;
e = now
this.form.planTime = now
}
// list
const year = this.form.planTime.getFullYear(); //
const month = String(this.form.planTime.getMonth() + 1).padStart(2, '0'); //
const day = String(this.form.planTime.getDate()).padStart(2, '0'); //
const planTime = `${year}-${month}-${day}`;
var planTime = moment(this.form.planTime).format('YYYY-MM-DD')
getBMSList(planTime).then(response => {
console.log("w这里是改变日期")
console.log(response.data)
if (response.data !== undefined) {
this.bmsList = response.data;
this.bmsList = response.data
}
})
},
/** 新增-选择工单日期 */
workOrderTimeChange(e) {
//
var now = new Date();
var now = new Date()
if (e < now) {
this.form.planTime = now;
this.form.planTime = now
} else {
this.form.planTime = e;
this.form.planTime = e
}
//
const year = e.getFullYear(); //
const month = String(e.getMonth() + 1).padStart(2, '0'); //
const day = String(e.getDate()).padStart(2, '0'); //
const productDate = `${year}-${month}-${day}`;
var productDate = moment(e).format('YYYY-MM-DD')
getWorkOrderList(productDate).then(response => {
this.workOrderList = response.data;
this.workOrderList = response.data
//
//
this.workLoading = true; // true
this.refreshWorkTable = false; // refreshProTablefalse
this.workLoading = true // true
this.refreshWorkTable = false // refreshProTablefalse
this.$nextTick(() => {
// 使$nextTickDOM
this.refreshWorkTable = true; // refreshProTabletrue
this.workLoading = false; // false
});
this.refreshWorkTable = true // refreshProTabletrue
this.workLoading = false // false
})
})
},
/** 查询湿料计划管理列表 */
getList() {
this.loading = true;
this.loading = true
listPlan(this.queryParams).then(response => {
this.planList = response.rows;
this.total = response.total;
this.loading = false;
});
this.planList = response.rows
this.total = response.total
this.loading = false
})
},
//
cancel() {
this.open = false;
this.reset();
this.open = false
this.reset()
},
//
reset() {
@ -649,142 +678,133 @@ export default {
status: null,
prodType: null,
planCode: null
};
this.resetForm("form");
}
this.resetForm('form')
},
/** 首-搜索按钮操作 */
handleQuery() {
if (this.timeList.length-1>1){
//
const year = this.timeList[0].getFullYear(); //
const month = String(this.timeList[0].getMonth() + 1).padStart(2, '0'); //
const day = String(this.timeList[0].getDate()).padStart(2, '0'); //
const startTime = `${year}-${month}-${day}`;
this.queryParams.startTime = startTime;
const year1 = this.timeList[1].getFullYear(); //
const month1 = String(this.timeList[1].getMonth() + 1).padStart(2, '0'); //
const day1 = String(this.timeList[1].getDate()).padStart(2, '0'); //
const endTime = `${year1}-${month1}-${day1}`;
this.queryParams.endTime = endTime;
}else {
this.queryParams.startTime = null;
this.queryParams.endTime = null;
if (this.timeList.length > 0) {
this.queryParams.startTime = moment(this.timeList[0]).format('YYYY-MM-DD')
this.queryParams.endTime = moment(this.timeList[1]).format('YYYY-MM-DD')
}
this.queryParams.pageNum = 1;
this.getList();
this.queryParams.pageNum = 1
this.getList()
},
/** 首-重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.timeList = [];
this.handleQuery();
this.resetForm('queryForm')
this.timeList = []
this.queryParams.syncFlag = null
this.handleQuery()
},
//
handleSelectionChange(selection) {
//
this.checkSelect = true;
this.checkSelect = true
//
for (let i = 0; i < selection.length; i++) {
if (selection[0].shiftId != selection[i].shiftId) {
this.$message({
message: '班次冲突!',
type: 'warning'
});
this.checkSelect = false;
})
this.checkSelect = false
}
}
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
// selectList
this.selectList = selection;
this.selectList = selection
},
/** 新增按钮操作 */
handleAdd() {
//
this.reset();
this.selectBucketList = null;
this.workOrderTime = null;
this.workOrderList = [];
this.selectProductList = null;
this.newWorkOrderList = [];
this.bmapId = null;
this.reset()
this.selectBucketList = null
this.workOrderTime = null
this.workOrderList = []
this.selectProductList = null
this.newWorkOrderList = []
this.bmapId = null
//
this.workOrderTime = new Date();
this.form.planTime = new Date();
this.workOrderTime = new Date()
this.form.planTime = new Date()
// list
//
const year = this.workOrderTime.getFullYear(); //
const month = String(this.workOrderTime.getMonth() + 1).padStart(2, '0'); //
const day = String(this.workOrderTime.getDate()).padStart(2, '0'); //
const productDate = `${year}-${month}-${day}`;
var productDate = moment(this.workOrderTime).format('YYYY-MM-DD')
//
this.workLoading = true // true
getWorkOrderList(productDate).then(response => {
this.workOrderList = response.data;
this.workOrderList = response.data
//
//
this.workLoading = true; // true
this.refreshWorkTable = false; // refreshProTablefalse
this.refreshWorkTable = false // refreshProTablefalse
this.$nextTick(() => {
// 使$nextTickDOM
this.refreshWorkTable = true; // refreshProTabletrue
this.workLoading = false; // false
});
this.refreshWorkTable = true // refreshProTabletrue
this.workLoading = false // false
})
})
// list
getBMSList(productDate).then(response => {
if (response.data !== undefined) {
this.bmsList = response.data;
console.log("这里是bms开始")
this.bmsList = response.data
console.log('这里是bms开始')
console.log(this.bmsList)
}
})
//
// list
getBucketList().then(response => {
this.selectBucketList = response.data;
this.selectBucketList = response.data
})
// list
getProductList().then(response => {
this.selectProductList = response.data;
this.selectProductList = response.data
})
this.open = true;
this.title = "新增湿料计划";
this.open = true
this.title = '新增湿料计划'
},
/** 修改按钮操作 */
handleUpdate(row) {
console.log("这里是修改操作区域")
console.log('这里是修改操作区域')
console.log(row)
//
this.reset();
this.selectBucketList = null;
this.workOrderTime = null;
this.workOrderList = [];
this.selectProductList = null;
this.newWorkOrderList = [];
this.bmapId = null;
this.reset()
this.selectBucketList = null
this.workOrderTime = null
this.workOrderList = []
this.selectProductList = null
this.newWorkOrderList = []
this.bmapId = null
//
this.form.planTime = new Date();
this.form.planTime = new Date()
//
this.workLoading = true // true
// list
getPlanDetailList(row.id).then(response => {
if (response.data !== undefined) {
this.wetMaterialPlanList = response.data;
this.wetMaterialPlanList = response.data
this.refreshWorkTable = false // refreshProTablefalse
this.$nextTick(() => {
// 使$nextTickDOM
this.refreshWorkTable = true // refreshProTabletrue
this.workLoading = false // false
})
}
})
// list
getBucketList().then(response => {
this.selectBucketList = response.data;
this.selectBucketList = response.data
})
// list
getProductList().then(response => {
this.selectProductList = response.data;
this.selectProductList = response.data
})
this.dialogVisible = true;
this.dialogVisible = true
},
/** 修改-提交按钮 */
updateForm() {
@ -794,7 +814,7 @@ export default {
message: '提交数据不能为空!',
type: 'warning'
})
return;
return
}
updatePlanDetail(this.newWorkOrderList).then(response => {
@ -806,8 +826,8 @@ export default {
}
})
this.dialogVisible = false;
this.getList();
this.dialogVisible = false
this.getList()
},
/** 新增-提交按钮 */
addSubmitForm() {
@ -817,10 +837,10 @@ export default {
message: '提交数据不能为空!',
type: 'warning'
})
return;
return
}
console.log("这里是工单list")
console.log('这里是工单list')
console.log(this.newWorkOrderList)
addWetPlan(this.newWorkOrderList).then(response => {
if (response.code === 200) {
@ -830,18 +850,19 @@ export default {
})
}
})
this.open = false;
this.getList();
this.open = false
this.getList()
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
const ids = row.id || this.ids
this.$modal.confirm('是否确认删除湿料计划管理编号为"' + ids + '"的数据项?').then(function() {
return delPlan(ids);
return delPlan(ids)
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
this.getList()
this.$modal.msgSuccess('删除成功')
}).catch(() => {
})
},
/** 导出按钮操作 */
handleExport() {
@ -850,31 +871,38 @@ export default {
}, `plan_${new Date().getTime()}.xlsx`)
}
}
};
}
</script>
<style>
.el-row {
margin-bottom: 20px;
&:last-child {
margin-bottom: 0;
}
}
.el-col {
border-radius: 4px;
}
.bg-purple-dark {
background: #99a9bf;
}
.bg-purple {
background: #d3dce6;
}
.bg-purple-light {
background: #e5e9f2;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
.row-bg {
padding: 10px 0;
background-color: #f9fafc;

Loading…
Cancel
Save