计划管理问题修改

Co-authored-by: Copilot <copilot@github.com>
dev-scheduling
zhangdi 2 months ago
parent 74f853b981
commit 44b513d2d4
  1. 2
      src/api/qualityManagement/productionTesting/prPlanTestRec.js
  2. 2
      src/components/jh-select/index.vue
  3. 10
      src/views/orderManagement/components/allocation/allocationDetails.vue
  4. 8
      src/views/orderManagement/components/allocation/statistics.vue
  5. 159
      src/views/orderManagement/components/exception/dataMissing.vue
  6. 69
      src/views/orderManagement/components/exception/deliveryDate.vue
  7. 104
      src/views/orderManagement/components/exception/processMissing.vue
  8. 108
      src/views/orderManagement/components/exception/resourceMissing.vue
  9. 121
      src/views/orderManagement/planYieIdOrder.vue
  10. 142
      src/views/orderManagement/plannedOrder.vue
  11. 16
      src/views/orderManagement/sinTerPlanOrder.vue
  12. 36
      src/views/orderManagement/sinTerYieIdOrder.vue
  13. 4
      src/views/productionTesting/prPlanTestRec.vue

@ -3,7 +3,7 @@ import request from '@/axios';
// 获取列表 // 获取列表
export const getList = (params) =>{ export const getList = (params) =>{
return request({ return request({
url:'/api/blade-desk/QA/PlanTest/page', url:'/api/blade-desk/QA/PlanTest/list',
method:'get', method:'get',
params params
}) })

@ -193,7 +193,7 @@ export default {
handleChange(val) { handleChange(val) {
// //
let selectedItem = this.optionList.find(item => item[this.valueKey] === val); let selectedItem = this.optionList.find(item => item[this.valueKey] === val);
console.log(selectedItem,'selectedItem');
// //
if (!selectedItem && this.echoApi) { if (!selectedItem && this.echoApi) {
this.getEchoData(val).then(item => { this.getEchoData(val).then(item => {

@ -300,8 +300,8 @@ export default {
searchRange: true, searchRange: true,
startPlaceholder: '开始时间', startPlaceholder: '开始时间',
endPlaceholder: '结束时间', endPlaceholder: '结束时间',
format: 'YYYY-MM-DD HH:mm:ss', format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD HH:mm:ss', valueFormat: 'YYYY-MM-DD',
searchOrder: 20, searchOrder: 20,
searchRules: [ searchRules: [
@ -334,7 +334,7 @@ export default {
}, },
{ {
label: '计划部门', label: '计划部门',
prop: 'plandept', prop: 'plndept',
search: false, search: false,
sortable: true, sortable: true,
span: 12, span: 12,
@ -456,8 +456,8 @@ export default {
// this.loading = true; // this.loading = true;
try { try {
const res = await getList({ const res = await getList({
pageNum: this.page.currentPage, current: this.page.currentPage,
pageSize: this.page.pageSize, size: this.page.pageSize,
...this.query, ...this.query,
}); });
this.data = res.data.data.records; this.data = res.data.data.records;

@ -103,14 +103,14 @@ export default {
}, },
{ {
label: '计划部门', label: '计划部门',
prop: 'partName', prop: 'plandept',
search: true, search: true,
sortable: true, sortable: true,
span: 12, span: 12,
}, },
{ {
label: '配套数量', label: '配套数量',
prop: 'num', prop: 'fjPkavqty',
search: false, search: false,
sortable: false, sortable: false,
span: 12, span: 12,
@ -132,8 +132,8 @@ export default {
if (params.subpkdate && Array.isArray(params.subpkdate)) { if (params.subpkdate && Array.isArray(params.subpkdate)) {
// //
// startDate endDate // startDate endDate
params.startDate = params.subpkdate[0]; params.subpkdateStart = params.subpkdate[0];
params.endDate = params.subpkdate[1]; params.subpkdateEnd = params.subpkdate[1];
// subpkdate // subpkdate
delete params.subpkdate; delete params.subpkdate;

@ -16,6 +16,7 @@
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@row-update="rowUpdate" @row-update="rowUpdate"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="claseOrder()">关闭订单</el-button> <el-button type="primary" @click="claseOrder()">关闭订单</el-button>
@ -56,21 +57,35 @@
<template #demandDate="{ row }"> <template #demandDate="{ row }">
{{ row.demandDate ? row.demandDate.substring(0, 10) : '' }} {{ row.demandDate ? row.demandDate.substring(0, 10) : '' }}
</template> </template>
<template #releaseDate="{ row }">
{{ row.releaseDate ? row.releaseDate.substring(0, 10) : '' }}
</template>
</avue-crud> </avue-crud>
<el-dialog v-model="isEdit" width="900" title="修改"> <el-dialog v-model="isEdit" width="900" title="修改">
<el-form :model="editForm" ref="form" :rules="formRules" label-width="120"> <el-form :model="editForm" ref="form" :rules="formRules" label-width="120">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="计划单号" prop="ypCode"> <el-form-item label="计划单号" prop="ypCode">
<el-input v-model="editForm.ypCode" clearable placeholder="请输入计划单号"></el-input> <el-input v-model="editForm.ypCode" clearable placeholder="请输入计划单号"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="零件号" prop="partCode"> <el-form-item label="零件号:" prop="partCode">
<jhSelect
:value="editForm.partCode"
@input="val => (editForm.partCode = val)"
placeholder="请搜索选择"
api-url="/blade-desk/dsPart/listNew"
echo-api="/blade-desk/dsPart/listNew"
echoParamsKey="ids"
echo-method="get"
api-method="get"
list-key="records"
total-key="total"
label-key="partCode"
value-key="id"
search-key="partCode"
:debounce-time="500"
@change="(value,item)=>partCodeChange(editForm.partCode,value,item)"
/>
<!-- <el-select <!-- <el-select
v-model="editForm.partCode" v-model="editForm.partCode"
remote remote
@ -92,7 +107,7 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="产品型号" prop="productType"> <el-form-item label="产品型号" prop="productType">
<el-input <el-input
v-model="editForm.productType" v-model="editForm.productType"
disabled disabled
@ -101,7 +116,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="产品名称" prop="partName"> <el-form-item label="产品名称" prop="partName">
<el-input <el-input
v-model="editForm.partName" v-model="editForm.partName"
disabled disabled
@ -112,21 +127,21 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="镀种" prop="plate"> <el-form-item label="镀种" prop="plate">
<el-input <el-input
v-model="editForm.plate" v-model="editForm.plate"
clearable clearable
disabled
placeholder="请输入镀种" placeholder="请输入镀种"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="面积(dm²)" prop="ypArea"> <el-form-item label="面积(dm²)" prop="ypArea">
<el-input <el-input
v-model="editForm.ypArea" v-model="editForm.ypArea"
clearable clearable
disabled
placeholder="请输入面积(dm²)" placeholder="请输入面积(dm²)"
></el-input> ></el-input>
</el-form-item> </el-form-item>
@ -134,7 +149,7 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="生产标识" prop="productIdent"> <el-form-item label="生产标识" prop="productIdent">
<el-select v-model="editForm.productIdent" placeholder="请选择生产标识"> <el-select v-model="editForm.productIdent" placeholder="请选择生产标识">
<el-option <el-option
v-for="item in productIdentList" v-for="item in productIdentList"
@ -145,8 +160,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="使用部门" prop="useDept"> <el-form-item label="使用部门名称:" prop="useDept">
<el-input <el-input
v-model="editForm.useDept" v-model="editForm.useDept"
clearable clearable
@ -155,15 +171,25 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="使用部门编码:" prop="useDept">
<el-input
v-model="editForm.useDeptCode"
clearable
disabled
placeholder="请输入使用部门"
></el-input>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="生产数量" prop="ypQty"> <el-form-item label="需求数量:" prop="ypQty">
<el-input v-model="editForm.ypQty" clearable placeholder="请输入生产数量"></el-input> <el-input v-model="editForm.ypQty" clearable placeholder="请输入需求数量"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="需求交期" prop="demandDate"> <el-form-item label="需求交期" prop="demandDate">
<el-date-picker <el-date-picker
style="width: 100%" style="width: 100%"
type="datetime" type="datetime"
@ -177,12 +203,17 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="计划员" prop="planUser"> <el-form-item label="计划部门编码:" prop="planDeptCode">
<el-input v-model="editForm.planUser" clearable placeholder="请输入计划员"></el-input> <el-input v-model="editForm.planDeptCode" clearable placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="计划下达时间" prop="releaseDate"> <el-form-item label="计划员:" prop="planUser">
<el-input v-model="editForm.planUser" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计划下达时间:" prop="releaseDate">
<el-date-picker <el-date-picker
style="width: 100%" style="width: 100%"
type="datetime" type="datetime"
@ -196,7 +227,7 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="memo"> <el-form-item label="备注" prop="memo">
<el-input v-model="editForm.memo" type="textarea" placeholder="请输入备注"></el-input> <el-input v-model="editForm.memo" type="textarea" placeholder="请输入备注"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -220,7 +251,9 @@ import {
getPartList, getPartList,
getProductionIdentificationList, getProductionIdentificationList,
} from '@/api/orderManagement/exceptionOrder'; } from '@/api/orderManagement/exceptionOrder';
import jhSelect from '@/components/jh-select/index.vue';
export default { export default {
components: { jhSelect },
data() { data() {
return { return {
editForm: {}, editForm: {},
@ -228,10 +261,11 @@ export default {
ypCode: [{ required: true, message: '请输入计划单号', trigger: 'change' }], ypCode: [{ required: true, message: '请输入计划单号', trigger: 'change' }],
partCode: [{ required: true, message: '请选择零件号', trigger: 'change' }], partCode: [{ required: true, message: '请选择零件号', trigger: 'change' }],
productIdent: [{ required: true, message: '请选择生产标识', trigger: 'change' }], productIdent: [{ required: true, message: '请选择生产标识', trigger: 'change' }],
ypQty: [{ required: true, message: '请输入生产数量', trigger: 'change' }], ypQty: [{ required: true, message: '请输入需求数量', trigger: 'change' }],
demandDate: [{ required: true, message: '请选择需求交期', trigger: 'change' }], demandDate: [{ required: true, message: '请选择需求交期', trigger: 'change' }],
planUser: [{ required: true, message: '请输入计划员', trigger: 'change' }], planUser: [{ required: true, message: '请输入计划员', trigger: 'change' }],
releaseDate: [{ required: true, message: '请选择计划下达时间', trigger: 'change' }], releaseDate: [{ required: true, message: '请选择计划下达时间', trigger: 'change' }],
planDeptCode: [{ required: true, message: '请输入计划部门编码', trigger: 'change' }],
// productType:[{required: true, message: '', trigger: 'blur'}] // productType:[{required: true, message: '', trigger: 'blur'}]
}, },
partCodeList: [], partCodeList: [],
@ -303,6 +337,7 @@ export default {
menuAlign: 'center', menuAlign: 'center',
gridBtn: false, gridBtn: false,
searchMenuPosition: 'right', searchMenuPosition: 'right',
searchLabelWidth: 'auto',
align: 'center', align: 'center',
column: [ column: [
@ -430,6 +465,7 @@ export default {
disabled: true, disabled: true,
span: 12, span: 12,
width: 150, width: 150,
searchOrder:20,
headerAlign: 'center', headerAlign: 'center',
rules: [ rules: [
{ {
@ -534,7 +570,25 @@ export default {
], ],
}, },
{ {
label: '使用部门', label: '使用部门编码',
prop: 'useDeptCode',
search: false,
sortable: true,
disabled: true,
width: 120,
span: 12,
headerAlign: 'center',
align: 'center',
rules: [
{
required: true,
message: '请输入使用部门',
trigger: 'blur',
},
],
},
{
label: '使用部门名称',
prop: 'useDept', prop: 'useDept',
search: false, search: false,
sortable: true, sortable: true,
@ -552,7 +606,7 @@ export default {
], ],
}, },
{ {
label: '生产数量', label: '需求数量',
prop: 'ypQty', prop: 'ypQty',
search: false, search: false,
sortable: true, sortable: true,
@ -563,7 +617,7 @@ export default {
rules: [ rules: [
{ {
required: true, required: true,
message: '请输入生产数量', message: '请输入需求数量',
trigger: 'blur', trigger: 'blur',
}, },
], ],
@ -588,6 +642,23 @@ export default {
}, },
], ],
}, },
{
label: '计划部门编码',
prop: 'planDeptCode',
search: false,
sortable: true,
width: 120,
span: 12,
headerAlign: 'center',
align: 'center',
rules: [
{
required: true,
message: '请输入计划员',
trigger: 'blur',
},
],
},
{ {
label: '计划员', label: '计划员',
prop: 'planUser', prop: 'planUser',
@ -683,6 +754,17 @@ export default {
sortable: true, sortable: true,
span: 24, span: 24,
width: 100, width: 100,
type: 'select',
dicData: [
{
value: '11000',
label: '未接收',
},
{
value: '11001',
label: '已接收',
},
],
}, },
{ {
label: '接收人', label: '接收人',
@ -698,7 +780,12 @@ export default {
search: false, search: false,
sortable: true, sortable: true,
span: 24, span: 24,
width: 100, width: 150,
},
{
label: '创建时间',
prop: 'createTime',
width: '140',
}, },
{ {
label: '备注', label: '备注',
@ -720,6 +807,20 @@ export default {
}, },
methods: { methods: {
sortChange({ prop, order }) {
if (!prop) {
//
this.query.orderByField = undefined;
this.query.isAsc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
this.query.orderByField = orderByField;
this.query.isAsc = order === 'ascending'?true:false;
}
// //
this.onLoad(this.page, this.query);
},
async editData(row) { async editData(row) {
this.editForm = JSON.parse(JSON.stringify(row)); this.editForm = JSON.parse(JSON.stringify(row));
const partRes = await getPartList({ const partRes = await getPartList({
@ -773,9 +874,9 @@ export default {
}); });
} }
}, },
changePart(val) { partCodeChange(val,value,item) {
let tmp = this.partCodeList.find(item => item.partCode == val); console.log(val, value,item,9090909090)
this.editForm.partName = tmp.partName; this.editForm.partName =item.partName
}, },
submitEdit() { submitEdit() {
this.$refs.form.validate(valid => { this.$refs.form.validate(valid => {

@ -15,6 +15,7 @@
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@row-update="rowUpdate" @row-update="rowUpdate"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="claseOrder()" >关闭订单</el-button> <el-button type="primary" @click="claseOrder()" >关闭订单</el-button>
@ -52,9 +53,7 @@
<template #demandDate="{ row }"> <template #demandDate="{ row }">
{{ row.demandDate ? row.demandDate.substring(0, 10) : '' }} {{ row.demandDate ? row.demandDate.substring(0, 10) : '' }}
</template> </template>
<template #releaseDate="{ row }">
{{ row.releaseDate ? row.releaseDate.substring(0, 10) : '' }}
</template>
</avue-crud> </avue-crud>
</template> </template>
@ -126,7 +125,7 @@ export default {
menu:false, menu:false,
gridBtn: false, gridBtn: false,
searchLabelPosition: 'left', searchLabelPosition: 'left',
searchLabelPosition: 'left', searchLabelWidth: 'auto',
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
gridBtn: false, gridBtn: false,
@ -258,6 +257,7 @@ export default {
disabled: true, disabled: true,
span: 12, span: 12,
width: 150, width: 150,
searchOrder:20,
headerAlign: 'center', headerAlign: 'center',
rules: [ rules: [
{ {
@ -416,6 +416,13 @@ export default {
}, },
], ],
}, },
{
label: '计划部门编码',
prop: 'planDeptCode',
search: false,
sortable: true,
width: 140,
},
{ {
label: '计划员', label: '计划员',
prop: 'planUser', prop: 'planUser',
@ -503,6 +510,46 @@ export default {
}, },
], ],
}, },
{
label: '接收状态',
prop: 'receiveStatus',
search: false,
sortable: true,
span: 24,
width: 100,
type: 'select',
dicData: [
{
value: '11000',
label: '未接收',
},
{
value: '11001',
label: '已接收',
},
],
},
{
label: '接收人',
prop: 'receiveUserName',
search: false,
sortable: true,
span: 24,
width: 100,
},
{
label: '接收时间',
prop: 'receiveTime',
search: false,
sortable: true,
span: 24,
width: 150,
},
{
label: '创建时间',
prop: 'createTime',
width: '140',
},
{ {
label: '备注', label: '备注',
prop: 'memo', prop: 'memo',
@ -529,6 +576,20 @@ export default {
}, },
methods: { methods: {
sortChange({ prop, order }) {
if (!prop) {
//
this.query.orderByField = undefined;
this.query.isAsc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
this.query.orderByField = orderByField;
this.query.isAsc = order === 'ascending'?true:false;
}
// //
this.onLoad(this.page, this.query);
},
rowUpdate(row, index, done, loading){ rowUpdate(row, index, done, loading){
updateData(row).then(res => { updateData(row).then(res => {
if(res.data.code == 200){ if(res.data.code == 200){

@ -15,6 +15,7 @@
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@row-update="rowUpdate" @row-update="rowUpdate"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="complianceCheck()">合规校验</el-button> <el-button type="primary" @click="complianceCheck()">合规校验</el-button>
@ -57,9 +58,7 @@
<template #demandDate="{ row }"> <template #demandDate="{ row }">
{{ row.demandDate ? row.demandDate.substring(0, 10) : '' }} {{ row.demandDate ? row.demandDate.substring(0, 10) : '' }}
</template> </template>
<template #releaseDate="{ row }">
{{ row.releaseDate ? row.releaseDate.substring(0, 10) : '' }}
</template>
</avue-crud> </avue-crud>
</template> </template>
@ -129,7 +128,7 @@ export default {
editBtnIcon: ' ', editBtnIcon: ' ',
gridBtn: false, gridBtn: false,
searchLabelPosition: 'left', searchLabelPosition: 'left',
searchLabelPosition: 'left', searchLabelWidth: 'auto',
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
menu:false, menu:false,
@ -280,6 +279,7 @@ export default {
disabled: true, disabled: true,
span: 12, span: 12,
width: 150, width: 150,
searchOrder:20,
headerAlign: 'center', headerAlign: 'center',
rules: [ rules: [
{ {
@ -471,6 +471,13 @@ export default {
}, },
], ],
}, },
{
label: '计划部门编码',
prop: 'planDeptCode',
search: false,
sortable: true,
width: 140,
},
{ {
label: '计划员', label: '计划员',
prop: 'planUser', prop: 'planUser',
@ -558,6 +565,81 @@ export default {
}, },
], ],
}, },
{
label: '接收状态',
prop: 'receiveStatus',
search: false,
sortable: true,
span: 24,
width: 100,
type: 'select',
dicData: [
{
value: '11000',
label: '未接收',
},
{
value: '11001',
label: '已接收',
},
],
},
{
label: '接收人',
prop: 'receiveUserName',
search: false,
sortable: true,
span: 24,
width: 100,
},
{
label: '接收时间',
prop: 'receiveTime',
search: false,
sortable: true,
span: 24,
width: 150,
},
{
label: '接收状态',
prop: 'receiveStatus',
search: false,
sortable: true,
span: 24,
width: 100,
type: 'select',
dicData: [
{
value: '11000',
label: '未接收',
},
{
value: '11001',
label: '已接收',
},
],
},
{
label: '接收人',
prop: 'receiveUserName',
search: false,
sortable: true,
span: 24,
width: 100,
},
{
label: '接收时间',
prop: 'receiveTime',
search: false,
sortable: true,
span: 24,
width: 150,
},
{
label: '创建时间',
prop: 'createTime',
width: '140',
},
{ {
label: '备注', label: '备注',
prop: 'memo', prop: 'memo',
@ -584,6 +666,20 @@ export default {
}, },
methods: { methods: {
sortChange({ prop, order }) {
if (!prop) {
//
this.query.orderByField = undefined;
this.query.isAsc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
this.query.orderByField = orderByField;
this.query.isAsc = order === 'ascending'?true:false;
}
// //
this.onLoad(this.page, this.query);
},
// //
complianceCheck() { complianceCheck() {
// //

@ -15,6 +15,7 @@
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@row-update="rowUpdate" @row-update="rowUpdate"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="complianceCheck()">合规校验</el-button> <el-button type="primary" @click="complianceCheck()">合规校验</el-button>
@ -62,9 +63,10 @@
<template #demandDate="{ row }"> <template #demandDate="{ row }">
{{ row.demandDate ? row.demandDate.substring(0, 10) : '' }} {{ row.demandDate ? row.demandDate.substring(0, 10) : '' }}
</template> </template>
<template #releaseDate="{ row }">
{{ row.releaseDate ? row.releaseDate.substring(0, 10) : '' }} <template #validationMomo="{row}">
</template> <el-text type="danger">{{ row.validationMomo }}</el-text>
</template>
</avue-crud> </avue-crud>
</template> </template>
@ -135,15 +137,33 @@ export default {
menuAlign: 'left', menuAlign: 'left',
gridBtn: false, gridBtn: false,
searchLabelPosition: 'left', searchLabelPosition: 'left',
searchLabelPosition: 'left', searchLabelWidth: 'auto',
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
menuAlign: 'center', menuAlign: 'center',
gridBtn: false, gridBtn: false,
searchMenuPosition: 'right', searchMenuPosition: 'right',
align: 'center', align: 'center',
menu:false,
column: [ column: [
{
label: '缺失资源',
prop: 'validationMomo',
search: false,
sortable: true,
width: 240,
span: 12,
headerAlign: 'center',
align: 'center',
rules: [
{
required: true,
message: '请输入缺失资源',
trigger: 'blur',
},
],
},
{ {
label: '计划单号', label: '计划单号',
prop: 'ypCode', prop: 'ypCode',
@ -268,6 +288,7 @@ export default {
disabled: true, disabled: true,
span: 12, span: 12,
width: 150, width: 150,
searchOrder:20,
headerAlign: 'center', headerAlign: 'center',
rules: [ rules: [
{ {
@ -406,23 +427,7 @@ export default {
}, },
], ],
}, },
{
label: '缺失资源',
prop: 'validationMomo',
search: false,
sortable: true,
width: 120,
span: 12,
headerAlign: 'center',
align: 'center',
rules: [
{
required: true,
message: '请输入缺失资源',
trigger: 'blur',
},
],
},
{ {
label: '需求交期', label: '需求交期',
prop: 'demandDate', prop: 'demandDate',
@ -442,6 +447,13 @@ export default {
}, },
], ],
}, },
{
label: '计划部门编码',
prop: 'planDeptCode',
search: false,
sortable: true,
width: 140,
},
{ {
label: '计划员', label: '计划员',
prop: 'planUser', prop: 'planUser',
@ -529,6 +541,46 @@ export default {
}, },
], ],
}, },
{
label: '接收状态',
prop: 'receiveStatus',
search: false,
sortable: true,
span: 24,
width: 100,
type: 'select',
dicData: [
{
value: '11000',
label: '未接收',
},
{
value: '11001',
label: '已接收',
},
],
},
{
label: '接收人',
prop: 'receiveUserName',
search: false,
sortable: true,
span: 24,
width: 100,
},
{
label: '接收时间',
prop: 'receiveTime',
search: false,
sortable: true,
span: 24,
width: 150,
},
{
label: '创建时间',
prop: 'createTime',
width: '140',
},
{ {
label: '备注', label: '备注',
prop: 'memo', prop: 'memo',
@ -555,6 +607,20 @@ export default {
}, },
methods: { methods: {
sortChange({ prop, order }) {
if (!prop) {
//
this.query.orderByField = undefined;
this.query.isAsc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
this.query.orderByField = orderByField;
this.query.isAsc = order === 'ascending'?true:false;
}
// //
this.onLoad(this.page, this.query);
},
// //
complianceCheck() { complianceCheck() {
// //

@ -15,6 +15,7 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="batchClose()">批量关闭</el-button> <el-button type="primary" @click="batchClose()">批量关闭</el-button>
@ -109,7 +110,12 @@ import {
remove, remove,
update, update,
} from '@/api/system/role'; } from '@/api/system/role';
import { getList, updatePreference, closeBatchs,getHotOrderList } from '@/api/orderManagement/planYieIdOrder'; import {
getList,
updatePreference,
closeBatchs,
getHotOrderList,
} from '@/api/orderManagement/planYieIdOrder';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { validatenull } from '@/utils/validate'; import { validatenull } from '@/utils/validate';
import lookProcess from './components/lookProcess.vue'; import lookProcess from './components/lookProcess.vue';
@ -198,13 +204,14 @@ export default {
menuAlign: 'center', menuAlign: 'center',
gridBtn: false, gridBtn: false,
searchMenuPosition: 'right', searchMenuPosition: 'right',
searchLabelWidth: 'auto',
align: 'center', align: 'center',
column: [ column: [
{ {
label: '计划单号', label: '计划单号',
prop: 'ypCode', prop: 'ypCode',
search: true, search: true,
searchOrder:5, searchOrder: 5,
sortable: true, sortable: true,
width: 150, width: 150,
span: 12, span: 12,
@ -224,7 +231,7 @@ export default {
search: true, search: true,
sortable: true, sortable: true,
width: 150, width: 150,
searchOrder:4, searchOrder: 4,
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -241,7 +248,7 @@ export default {
prop: 'partCode', prop: 'partCode',
search: true, search: true,
sortable: true, sortable: true,
searchOrder:2, searchOrder: 2,
width: 180, width: 180,
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
@ -312,12 +319,13 @@ export default {
label: '流程卡号', label: '流程卡号',
prop: 'cardNo', prop: 'cardNo',
search: true, search: true,
searchOrder:3, searchOrder: 3,
sortable: true, sortable: true,
width: 150, width: 150,
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
searchOrder: 20,
rules: [ rules: [
{ {
required: true, required: true,
@ -359,23 +367,23 @@ export default {
// { label:'3',value:'15003' }, // { label:'3',value:'15003' },
// { label:'4',value:'15004' }, // { label:'4',value:'15004' },
// { label:'5',value:'15005' }, // { label:'5',value:'15005' },
{ label:'1级-极高紧急度',value:15001 }, { label: '1级-极高紧急度', value: 15001 },
{ label:'2级-高紧急度',value:15002 }, { label: '2级-高紧急度', value: 15002 },
{ label:'3级-中紧急度',value:15003 }, { label: '3级-中紧急度', value: 15003 },
{ label:'4级-低紧急度',value:15004 }, { label: '4级-低紧急度', value: 15004 },
{ label:'5级-正常',value:15005 }, { label: '5级-正常', value: 15005 },
// { // {
// label: '', // label: '',
// value: '1', // value: '1',
// }, // },
// { // {
// label: '', // label: '',
// value: '2', // value: '2',
// }, // },
// { // {
// label: '', // label: '',
// value: '3', // value: '3',
// }, // },
], ],
rules: [ rules: [
{ {
@ -513,7 +521,7 @@ export default {
{ {
label: '需求交期', label: '需求交期',
prop: 'demandDate', prop: 'demandDate',
type:'date', type: 'date',
search: false, search: false,
sortable: true, sortable: true,
width: 180, width: 180,
@ -530,6 +538,13 @@ export default {
}, },
], ],
}, },
{
label: '计划部门编码',
prop: 'planDeptCode',
search: false,
sortable: true,
width: 140,
},
{ {
label: '计划员', label: '计划员',
prop: 'planUser', prop: 'planUser',
@ -660,8 +675,8 @@ export default {
width: '140', width: '140',
display: false, display: false,
// RECEIVE_STATUS_NO( name:"", // RECEIVE_STATUS_NO( name:"",
// RECEIVE_STATUS_YES(name:"", // RECEIVE_STATUS_YES(name:"",
// code:11000),code:11001) // code:11000),code:11001)
dicData: [ dicData: [
{ {
value: 11000, value: 11000,
@ -674,17 +689,17 @@ export default {
], ],
}, },
{ {
label:"接收人", label: '接收人',
prop: 'receiveUserName', prop: 'receiveUserName',
width: '140', width: '140',
}, },
{ {
label:"接收时间", label: '接收时间',
prop: 'receiveTime', prop: 'receiveTime',
width: '140', width: '140',
}, },
{ {
label:"同步时间", label: '创建时间',
prop: 'createTime', prop: 'createTime',
width: '140', width: '140',
}, },
@ -750,13 +765,28 @@ export default {
}, },
}, },
methods: { methods: {
//
sortChange({ prop, order }) {
if (!prop) {
//
this.query.orderByField = undefined;
this.query.isAsc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
this.query.orderByField = orderByField;
this.query.isAsc = order === 'ascending' ? true : false;
}
// //
this.onLoad(this.page, this.query);
},
// //
priorityFn() { priorityFn() {
if (this.selectionList.length === 0) { if (this.selectionList.length === 0) {
this.$message.error('请至少选择一条数据'); this.$message.error('请至少选择一条数据');
return; return;
} }
console.log('this.selectionList=============',this.selectionList) console.log('this.selectionList=============', this.selectionList);
// this.priorityName = this.selectionList[0]['prodIdent']; // this.priorityName = this.selectionList[0]['prodIdent'];
this.isPriorityOpen = true; this.isPriorityOpen = true;
}, },
@ -817,10 +847,10 @@ export default {
this.$message.error('请选择至少一条数据'); this.$message.error('请选择至少一条数据');
return; return;
} }
let tmp = this.selectionList.filter(item => item.status === 10015 || item.status === 10021) let tmp = this.selectionList.filter(item => item.status === 10015 || item.status === 10021);
if(tmp.length > 0){ if (tmp.length > 0) {
this.$message.error('请勿选择状态为【已完工】或【已关闭】的数据'); this.$message.error('请勿选择状态为【已完工】或【已关闭】的数据');
return return;
} }
this.$confirm('确定将选择数据批量关闭?', { this.$confirm('确定将选择数据批量关闭?', {
confirmButtonText: '确定', confirmButtonText: '确定',
@ -837,7 +867,7 @@ export default {
this.$refs.crud.toggleSelection(); this.$refs.crud.toggleSelection();
} }
}); });
// return remove(row.id); // return remove(row.id);
}) })
.catch(() => { .catch(() => {
@ -858,7 +888,7 @@ export default {
this.isUpdateOpen = false; this.isUpdateOpen = false;
this.isPriorityOpen = false; this.isPriorityOpen = false;
this.isOpen = false; this.isOpen = false;
if(val){ if (val) {
this.onLoad(this.page, {}); this.onLoad(this.page, {});
} }
}, },
@ -1097,14 +1127,20 @@ export default {
try { try {
let param = { let param = {
...this.query, ...this.query,
releaseDateStart:this.query.releaseDate && this.query.releaseDate.length != 0 ? this.$dayjs(this.query.releaseDate[0]).format('YYYY-MM-DD') : null, releaseDateStart:
releaseDateEnd:this.query.releaseDate && this.query.releaseDate.length != 0 ? this.$dayjs(this.query.releaseDate[1]).format('YYYY-MM-DD') : null, this.query.releaseDate && this.query.releaseDate.length != 0
} ? this.$dayjs(this.query.releaseDate[0]).format('YYYY-MM-DD')
if(param.releaseDate) delete param.releaseDate; : null,
console.log('para-----------',param) releaseDateEnd:
this.query.releaseDate && this.query.releaseDate.length != 0
? this.$dayjs(this.query.releaseDate[1]).format('YYYY-MM-DD')
: null,
};
if (param.releaseDate) delete param.releaseDate;
console.log('para-----------', param);
const res = await getHotOrderList({ const res = await getHotOrderList({
current:this.page.currentPage, current: this.page.currentPage,
size:this.page.pageSize, size: this.page.pageSize,
...param, ...param,
}); });
this.data = res.data.data.records; this.data = res.data.data.records;
@ -1124,7 +1160,6 @@ export default {
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
}, },
}, },
mounted() { mounted() {

@ -16,6 +16,7 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="batchClose()">批量关闭</el-button> <el-button type="primary" @click="batchClose()">批量关闭</el-button>
@ -110,7 +111,12 @@ import {
update, update,
} from '@/api/system/role'; } from '@/api/system/role';
import { closeBatchs,getHotList,getProcessRoute,getProcess } from '@/api/orderManagement/sinTerPlanOrder'; import {
closeBatchs,
getHotList,
getProcessRoute,
getProcess,
} from '@/api/orderManagement/sinTerPlanOrder';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { validatenull } from '@/utils/validate'; import { validatenull } from '@/utils/validate';
@ -127,7 +133,7 @@ export default {
}, },
data() { data() {
return { return {
id:null, id: null,
isShowImport: false, isShowImport: false,
inBatchesOpen: false, inBatchesOpen: false,
platingSmallOpen: false, platingSmallOpen: false,
@ -193,6 +199,7 @@ export default {
editBtnIcon: ' ', editBtnIcon: ' ',
gridBtn: false, gridBtn: false,
searchLabelPosition: 'left', searchLabelPosition: 'left',
searchLabelWidth: 'auto',
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
menuAlign: 'center', menuAlign: 'center',
@ -209,13 +216,6 @@ export default {
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
rules: [
{
required: true,
message: '请输入计划单号',
trigger: 'blur',
},
],
}, },
{ {
label: '零件号', label: '零件号',
@ -226,14 +226,6 @@ export default {
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
rules: [
{
required: true,
message: '请输入零件号',
trigger: 'blur',
},
],
}, },
{ {
label: '零件名称', label: '零件名称',
@ -245,13 +237,6 @@ export default {
width: 150, width: 150,
headerAlign: 'center', headerAlign: 'center',
align: 'left', align: 'left',
rules: [
{
required: false,
message: '请输入零件名称',
trigger: 'blur',
},
],
}, },
// { // {
// label: '', // label: '',
@ -278,16 +263,9 @@ export default {
sortable: true, sortable: true,
disabled: true, disabled: true,
span: 12, span: 12,
width:150, width: 150,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
rules: [
{
required: false,
message: '请输入镀种',
trigger: 'blur',
},
],
}, },
// { // {
// label: '', // label: '',
@ -316,13 +294,6 @@ export default {
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
rules: [
{
required: true,
message: '请输入生产标识',
trigger: 'blur',
},
],
}, },
{ {
label: '使用部门', label: '使用部门',
@ -334,13 +305,6 @@ export default {
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
rules: [
{
required: true,
message: '请输入使用部门',
trigger: 'blur',
},
],
}, },
{ {
label: '生产数量', label: '生产数量',
@ -351,13 +315,6 @@ export default {
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
rules: [
{
required: true,
message: '请输入生产数量',
trigger: 'blur',
},
],
}, },
{ {
label: '面积(d㎡)', label: '面积(d㎡)',
@ -369,13 +326,6 @@ export default {
disabled: true, disabled: true,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
rules: [
{
required: false,
message: '请输入面积(d㎡)',
trigger: 'blur',
},
],
}, },
{ {
@ -480,6 +430,12 @@ export default {
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
}, },
{
label: '状态',
prop: 'statusName',
search: false,
sortable: true,
},
{ {
label: '状态', label: '状态',
@ -488,23 +444,24 @@ export default {
sortable: true, sortable: true,
span: 12, span: 12,
display: false, display: false,
hide: true,
type: 'select', type: 'select',
width: '140', width: '140',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
dicData: [ dicData: [
{ // {
value: 10001, // value: 10001,
label: '正常', // label: '',
}, // },
{ // {
value: 10002, // value: 10002,
label: '已退回', // label: '退',
}, // },
{ // {
value: 10003, // value: 10003,
label: '无工艺', // label: '',
}, // },
{ {
value: 10004, value: 10004,
label: '已派工', label: '已派工',
@ -578,7 +535,7 @@ export default {
data: [], data: [],
isRushOpen: false, // isRushOpen: false, //
isBatchOpen: false, // isBatchOpen: false, //
checkPart:"", checkPart: '',
}; };
}, },
computed: { computed: {
@ -615,6 +572,20 @@ export default {
}, },
}, },
methods: { methods: {
sortChange({ prop, order }) {
if (!prop) {
//
this.query.orderByField = undefined;
this.query.isAsc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
this.query.orderByField = orderByField;
this.query.isAsc = order === 'ascending' ? true : false;
}
// //
this.onLoad(this.page, this.query);
},
// //
handleImport() { handleImport() {
this.isShowImport = true; this.isShowImport = true;
@ -644,10 +615,10 @@ export default {
this.$message.error('请选择至少一条数据'); this.$message.error('请选择至少一条数据');
return; return;
} }
let tmp = this.selectionList.filter(item => item.status === 10015 || item.status === 10021) let tmp = this.selectionList.filter(item => item.status === 10015 || item.status === 10021);
if(tmp.length > 0){ if (tmp.length > 0) {
this.$message.error('请勿选择状态为【已完工】或【已关闭】的数据'); this.$message.error('请勿选择状态为【已完工】或【已关闭】的数据');
return return;
} }
this.$confirm('确定将选择数据批量关闭?', { this.$confirm('确定将选择数据批量关闭?', {
confirmButtonText: '确定', confirmButtonText: '确定',
@ -663,7 +634,6 @@ export default {
this.onLoad(this.page); // return remove(row.id); this.onLoad(this.page); // return remove(row.id);
} }
}); });
}) })
.catch(() => { .catch(() => {
// this.onLoad(this.page); // this.onLoad(this.page);
@ -690,9 +660,9 @@ export default {
this.platingSmallOpen = true; this.platingSmallOpen = true;
}, },
lookProcessRoute(row) { lookProcessRoute(row) {
console.log('row----------',row) console.log('row----------', row);
this.id=row.id this.id = row.id;
this.checkPart = row.partCode this.checkPart = row.partCode;
this.isOpen = true; this.isOpen = true;
this.rowItem = row; this.rowItem = row;
}, },
@ -889,17 +859,17 @@ export default {
this.loading = true; this.loading = true;
try { try {
const res = await getHotList({ const res = await getHotList({
current:this.page.currentPage, current: this.page.currentPage,
size:this.page.pageSize, size: this.page.pageSize,
...this.query ...this.query,
}) });
this.data = res.data.data.records; this.data = res.data.data.records;
this.page.total = res.data.data.total; this.page.total = res.data.data.total;
console.log('res----------------',res) console.log('res----------------', res);
// const res = await getList( // const res = await getList(
// page.currentPage, // page.currentPage,
// page.pageSize, // page.pageSize,
// Object.assign(params, this.query) // Object.assign(params, this.query)
// ); // );
// if (res.code) { // if (res.code) {

@ -15,6 +15,7 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="batchClose()">批量关闭</el-button> <el-button type="primary" @click="batchClose()">批量关闭</el-button>
@ -176,6 +177,7 @@ export default {
editBtnIcon: ' ', editBtnIcon: ' ',
gridBtn: false, gridBtn: false,
searchLabelPosition: 'left', searchLabelPosition: 'left',
searchLabelWidth:'auto',
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
menuAlign: 'center', menuAlign: 'center',
@ -568,6 +570,20 @@ export default {
}, },
}, },
methods: { methods: {
sortChange({ prop, order }) {
if (!prop) {
//
this.query.orderByField = undefined;
this.query.isAsc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
this.query.orderByField = orderByField;
this.query.isAsc = order === 'ascending'?true:false;
}
// //
this.onLoad(this.page, this.query);
},
// //
handleImport() { handleImport() {
this.isShowImport = true; this.isShowImport = true;

@ -16,6 +16,7 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="batchClose()">批量关闭</el-button> <el-button type="primary" @click="batchClose()">批量关闭</el-button>
@ -219,7 +220,7 @@ export default {
delBtn: false, delBtn: false,
editBtnText: '修改', editBtnText: '修改',
labelWidth: 120, labelWidth: 120,
// searchLabelWidth: 120, searchLabelWidth: 'auto',
menuWidth: 140, menuWidth: 140,
dialogWidth: 900, dialogWidth: 900,
dialogClickModal: false, dialogClickModal: false,
@ -358,7 +359,7 @@ export default {
prop: 'cardNo', prop: 'cardNo',
search: true, search: true,
sortable: true, sortable: true,
searchOrder:3, searchOrder:20,
width: 150, width: 150,
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
@ -589,6 +590,13 @@ export default {
trigger: 'blur', trigger: 'blur',
}, },
], ],
},
{
label: '计划部门编码',
prop: 'planDeptCode',
search: false,
sortable: true,
width: 140,
}, },
{ {
label: '计划员', label: '计划员',
@ -773,11 +781,11 @@ export default {
prop: 'receiveTime', prop: 'receiveTime',
width: '140', width: '140',
}, },
{ {
label:"同步时间", label: '创建时间',
prop: 'createTime', prop: 'createTime',
width: '140', width: '140',
}, },
{ {
label: '备注', label: '备注',
prop: 'memo', prop: 'memo',
@ -837,6 +845,20 @@ export default {
}, },
}, },
methods: { methods: {
sortChange({ prop, order }) {
if (!prop) {
//
this.query.orderByField = undefined;
this.query.isAsc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
this.query.orderByField = orderByField;
this.query.isAsc = order === 'ascending'?true:false;
}
// //
this.onLoad(this.page, this.query);
},
// //
priorityFn() { priorityFn() {
if (this.selectionList.length === 0) { if (this.selectionList.length === 0) {

@ -152,7 +152,7 @@ export default {
}, },
{ {
label: '试验状态', label: '试验状态',
prop: 'statusName', prop: 'testStatus',
width: 200, width: 200,
search: false, search: false,
sortable: true, sortable: true,
@ -215,7 +215,7 @@ export default {
this.$refs.crud.toggleSelection(); this.$refs.crud.toggleSelection();
}, },
viewDetail(row) { viewDetail(row) {
getDetail({ id: row.id }).then(res => { getDetail(row).then(res => {
this.showDetail = true; this.showDetail = true;
}); });
}, },

Loading…
Cancel
Save