From 8b43954926db6b4df6a61ab6e04d6cb11189069d Mon Sep 17 00:00:00 2001 From: 吴健 <14790700720@163.com> Date: 星期二, 15 四月 2025 08:54:08 +0800 Subject: [PATCH] add-415 --- jcdm-ui/src/views/main/om/productionOrde/index.vue | 291 +++++++++++++++++++++++++++++++--------------------------- 1 files changed, 156 insertions(+), 135 deletions(-) diff --git a/jcdm-ui/src/views/main/om/productionOrde/index.vue b/jcdm-ui/src/views/main/om/productionOrde/index.vue index 2d160cb..b03d33e 100644 --- a/jcdm-ui/src/views/main/om/productionOrde/index.vue +++ b/jcdm-ui/src/views/main/om/productionOrde/index.vue @@ -41,19 +41,16 @@ </el-form> <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px"> <el-form-item label="鏈哄瀷" prop="typeZ"> - <el-input v-model="queryParams.typeZ" placeholder="璇疯緭鍏ユ満鍨�" clearable @keyup.enter.native="handleQuery"/> + <el-select v-model="queryParams.typeZ" placeholder="璇烽�夋嫨鏈哄瀷" clearable> + <el-option + v-for="dict in typeSelectList" + :key="dict.value" + :label="dict.label" + :value="dict.value"/> + </el-select> </el-form-item> - <el-form-item label-width="130" label="閫氱煡鍗曠敓鎴愭棩鏈�" prop="dateConditions"> - <el-date-picker - v-model="queryParams.dateConditions" - type="datetimerange" - :picker-options="pickerOptions" - value-format="yyyy-MM-dd HH:mm:ss" - range-separator="鑷�" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - align="right"> - </el-date-picker> + <el-form-item label-width="130" label="鍙戝姩鏈哄彿" prop="engineNo"> + <el-input v-model="queryParams.engineNo" placeholder="璇疯緭鍏ュ彂鍔ㄦ満鍙�" clearable @keyup.enter.native="handleQuery"/> </el-form-item> </el-form> </el-card> @@ -118,7 +115,7 @@ plain icon="el-icon-edit" size="mini" - :disabled="single" + :disabled="create" @click="CreatehandleUpdate" >鐢熸垚</el-button> </el-col> @@ -192,94 +189,36 @@ <i class="el-icon-s-order"></i> {{titleName}} </span> - <el-form ref="form" inline :model="form" :rules="rules" label-width="80px"> - <el-form-item label="宸ュ崟鍙�" prop="workOrderNo"> - <el-input v-model="form.workOrderNo" placeholder="璇疯緭鍏ョ敓浜ц鍗�" /> + <el-form ref="form" inline :model="form" :rules="rules" label-width="100px"> + <el-form-item label="鐢熶骇閫氱煡鍗�" prop="productionNotice"> + <el-input v-model="form.productionNotice" :disabled="editFlag" placeholder="璇疯緭鍏ョ敓浜ч�氱煡鍗�" /> </el-form-item> - <el-form-item label="璁㈠崟缂栧彿" prop="salesOrderCode"> - <el-input v-model="form.salesOrderCode" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" /> + <el-form-item label="鐢熶骇璁㈠崟" prop="workOrderNo"> + <el-input v-model="form.workOrderNo" :disabled="editFlag" placeholder="璇疯緭鍏ョ敓浜ц鍗�" /> </el-form-item> <el-form-item label="浜у搧缂栧彿" prop="productCode"> - <el-input v-model="form.productCode" placeholder="璇烽�夋嫨浜у搧" > - <el-button slot="append" @click="handleSelectProduct" icon="el-icon-search"></el-button> - </el-input> - <ItemSelect ref="itemSelect" @onSelected="onItemSelected" > </ItemSelect> + <el-input v-model="form.productCode" :disabled="editFlag" placeholder="璇疯緭鍏ヤ骇鍝佺紪鍙�" /> </el-form-item> - <el-form-item label="浜у搧鍚嶇О" prop="productName"> - <el-input v-model="form.productName" disabled placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�" /> + <el-form-item label="鎴愬搧鎻忚堪" prop="productName"> + <el-input v-model="form.productName" :disabled="editFlag" placeholder="璇疯緭鍏ユ垚鍝佹弿杩�" /> </el-form-item> - <el-form-item label="绉嶇被" prop="productName"> - <el-input v-model="form.typeZ" disabled placeholder="璇疯緭鍏ョ绫�" /> + <el-form-item label="鏈哄瀷" prop="productName"> + <el-input v-model="form.typeZ" :disabled="editFlag" placeholder="璇疯緭鍏ユ満鍨�" /> </el-form-item> - <el-form-item label="瀹為檯鏁伴噺" prop="actualQty"> - <el-input v-model="form.actualQty" placeholder="璇疯緭鍏ュ疄闄呮暟閲�" /> + <el-form-item label="闇�姹傛暟閲�" prop="planQty"> + <el-input v-model="form.planQty" :disabled="editFlag" placeholder="璇疯緭鍏ラ渶姹傛暟閲�" /> </el-form-item> - <el-form-item label="杞﹂棿缂栧彿" prop="workshopCode"> - <el-select style="width: 93%" @change="handleSelectChange(form.workshopCode)" v-model="form.workshopCode" placeholder="璇烽�夋嫨杞﹂棿缂栧彿"> + <el-form-item label="宸ュ崟鐘舵��" prop="orderStatus"> + <el-select style="width: 93%" v-model="form.orderStatus" placeholder="璇烽�夋嫨宸ュ崟鐘舵��"> <el-option - v-for="item in options" - :key="item.workshopCode" - :label="item.workshopName" - :value="item.workshopCode"> + v-for="item in statuOptions" + :key="item.value" + :label="item.label" + :value="item.value"> </el-option> </el-select> </el-form-item> - <el-form-item style="margin-left: -15px" label="浜х嚎缂栧彿" prop="lineCode"> - <el-select style="width: 93%" v-model="form.lineCode" placeholder="璇烽�夋嫨浜х嚎缂栧彿"> - <el-option - v-for="item in lineOptions" - :key="item.lineCode" - :label="item.lineName" - :value="item.lineCode"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="宸ヨ壓娴佺▼" prop="routeCode"> - <el-input v-model="form.routeCode" disabled placeholder="璇疯緭鍏ュ伐鑹烘祦绋�" /> - </el-form-item> - <el-form-item label="浜у搧BOM" prop="bomCode"> - <el-input v-model="form.bomCode" disabled placeholder="璇疯緭鍏ヤ骇鍝丅OM" /> - </el-form-item> - <el-form-item label="宸ヨ壓閰嶆柟" prop="recipeCode"> - <el-input v-model="form.recipeCode" placeholder="璇疯緭鍏ュ伐鑹洪厤鏂�" /> - </el-form-item> - <el-form-item label="璁″垝鏁伴噺" prop="planQty"> - <el-input v-model="form.planQty" placeholder="璇疯緭鍏ヨ鍒掓暟閲�" /> - </el-form-item> - <el-form-item label="闇�姹傛棩鏈�" prop="demandDate"> - <el-date-picker style="width: 88%" clearable - v-model="form.demandDate" - type="date" - value-format="yyyy-MM-dd" - placeholder="璇烽�夋嫨闇�姹傛棩鏈�"> - </el-date-picker> - </el-form-item> - <el-form-item style="margin-left: -30px" label="澶囨敞" prop="remarks"> - <el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" /> - </el-form-item> - <el-row> - <el-col :span="12"> - <el-form-item style="margin-left: 10px" label-width="120" label="璁″垝寮�濮嬫椂闂�" prop="planStartTime"> - <el-date-picker clearable - v-model="form.planStartTime" - type="date" - value-format="yyyy-MM-dd" - placeholder="璇烽�夋嫨璁″垝寮�濮嬫椂闂�"> - </el-date-picker> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item style="margin-left: 76px" label-width="120" label="璁″垝缁撴潫鏃堕棿" prop="planEndTime"> - <el-date-picker clearable - v-model="form.planEndTime" - type="date" - value-format="yyyy-MM-dd" - placeholder="璇烽�夋嫨璁″垝缁撴潫鏃堕棿"> - </el-date-picker> - </el-form-item> - </el-col> - </el-row> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> @@ -287,31 +226,31 @@ </div> </el-dialog> - <el-dialog v-dialogpop-up :title="title" :visible.sync="Createopen" width="400px" append-to-body> + <el-dialog v-dialogpop-up :title="title" :visible.sync="Createopen" width="600px" append-to-body> <span slot="title"> <i class="el-icon-s-order"></i> {{titleName}} </span> - <el-form ref="form" inline :model="form" :rules="CreateRules" label-width="100px"> + <el-form ref="form" inline :model="form" :rules="CreateRules" label-width="120px"> <el-form-item label="鏈哄瀷" prop="typeZ"> - <el-input disabled v-model="form.typeZ" placeholder="璇疯緭鍏ユ満鍨�" /> + <el-input disabled v-model="form.typeZ" style="font-size: 18px" placeholder="璇疯緭鍏ユ満鍨�" /> </el-form-item> <el-form-item label="鏃ユ湡" prop="dateTime"> <el-date-picker clearable v-model="form.dateTime" type="date" value-format="yyyy-MM-dd" - placeholder="璇烽�夋嫨鏃ユ湡" @input="handleCodeChange"> + placeholder="璇烽�夋嫨鏃ユ湡" @input="handleCodeChangeData"> </el-date-picker> </el-form-item> <el-form-item class="hidden-form-item" label="鏃ユ湡瑙勫垯" prop="dateTimeRule"> <el-input v-model="form.dateTimeRule"/> </el-form-item> <el-form-item label="璧峰缂栧彿" prop="startCode"> - <el-input type="number" :maxlength="3" :pattern="'[0-9]{3}'" v-model="form.startCode" placeholder="璇疯緭鍏ヨ捣濮嬬紪鍙�" @input="handleCodeChange"/> + <el-input type="number" style="font-size: 18px" :maxlength="3" :pattern="'[0-9]{3}'" v-model="form.startCode" placeholder="璇疯緭鍏ヨ捣濮嬬紪鍙�" @input="handleCodeChangeStart"/> </el-form-item> <el-form-item label="璧锋缂栧彿" prop="startEndCode"> - <el-input type="textarea" disabled v-model="form.startEndCode"/> + <el-input type="textarea" style="font-size: 18px;width: 250px" disabled v-model="form.startEndCode"/> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> @@ -320,7 +259,7 @@ </div> </el-dialog> </div> - <Detail v-if="showDetailFlag" :singleSelect="singleSelect"></Detail> + <Detail v-if="showDetailFlag" :singleSelect="singleSelect" @reserveChild = "reserveChild"></Detail> </div> </template> @@ -352,6 +291,36 @@ }, data() { return { + editFlag: false, + statuOptions:[ + { + label:"寰呬笅杈�", + value:"1" + }, + { + label:"宸蹭笅杈�", + value:"2" + } + ], + typeSelectList: [ + { + label:"380", + value:"380" + }, + { + label:"280", + value:"280" + }, + { + label:"196", + value:"196" + }, + { + label:"296", + value:"296" + } + ], + typeZDateRules: '', showDetailFlag: false, singleSelect:{}, titleName: '', @@ -369,6 +338,7 @@ ids: [], // 闈炲崟涓鐢� single: true, + create: false, // 闈炲涓鐢� multiple: true, move: true, @@ -405,6 +375,7 @@ frontEndId: null, idNums: null, typeZ: null, + engineNo: null, flag: null, adds:null, productionNotice: null, @@ -436,12 +407,6 @@ { required: true, message: "涓嶈兘涓虹┖", trigger: "blur" } ], year: [ - { required: true, message: "涓嶈兘涓虹┖", trigger: "blur" } - ], - dateTime: [ - { required: true, message: "涓嶈兘涓虹┖", trigger: "blur" } - ], - startCode: [ { required: true, message: "涓嶈兘涓虹┖", trigger: "blur" } ], }, @@ -485,22 +450,21 @@ this.initWorkshop(); }, methods: { - //鏃ユ湡鎴栧紑濮嬬紪鍙疯緭鍏ユ椂 - handleCodeChange(data){ + reserveChild(){ + this.showDetailFlag = false + }, + handleCodeChangeData(){ + console.log('1111111111111111') let dateTime = this.form.dateTime; let planQty = this.form.planQty; - let startCode = this.form.startCode - if(dateTime !== null && dateTime !== undefined - && startCode !== null && startCode !== undefined) { + let dateTimeRule = ""; + if(dateTime !== null && dateTime !== undefined){ let dateTimes = dateTime.split("-"); let year = dateTimes[0]; let month = dateTimes[1]; let day = dateTimes[2]; let dictYear = this.dict.type.year; let dictMonth = this.dict.type.month; - let startCode = this.form.startCode - let dateTimeRule = ""; - //骞� for (let i = 0; i < dictYear.length; i++) { if (year === dictYear[i].label) { @@ -519,10 +483,31 @@ dateTimeRule = dateTimeRule + this.markNo; this.form.dateTimeRule = dateTimeRule;//姝ゅ璧嬪�间笉鍔犳満鍨� dateTimeRule = this.form.typeZ +" "+dateTimeRule;//姝ゅ鍔犳満鍨嬶紝椤哄簭涓嶈兘棰犲�� - - //璧嬪�艰捣濮嬬紪鐮� - this.form.startEndCode = dateTimeRule + String(parseInt(startCode)).padStart(3, '0') +"\n"+ dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ; } + if (this.form.typeZ !== null && this.form.typeZ !== '' && dateTimeRule !== null && dateTimeRule !== '' ){ + this.typeZDateRules = dateTimeRule + console.log('222222222222') + let queryParams = { + model: this.form.typeZ, + modelDate: this.form.dateTimeRule, + } + listModelNumber(queryParams).then(response => { + if(response.rows.length === 0){ + this.form.startCode = 1 + }else { + let max = response.rows[0].maxnumValue + this.form.startCode = parseInt(max) + 1 + } + this.form.startEndCode = this.typeZDateRules + String(parseInt(this.form.startCode)).padStart(3, '0') +"\n"+ this.typeZDateRules + String(parseInt(this.form.startCode) + parseInt(planQty)-1).padStart(3, '0') ; + }); + } + + }, + handleCodeChangeStart(){ + let planQty = this.form.planQty; + console.log('planQty',planQty) + //璧嬪�艰捣濮嬬紪鐮� + this.form.startEndCode = this.typeZDateRules + String(parseInt(this.form.startCode)).padStart(3, '0') +"\n"+ this.typeZDateRules + String(parseInt(this.form.startCode) + parseInt(planQty)-1).padStart(3, '0') ; }, getProductionNotice(){ @@ -675,6 +660,8 @@ /** 閲嶇疆鎸夐挳鎿嶄綔 */ resetQuery() { this.resetForm("queryForm"); + this.queryParams.typeZ = '' + this.queryParams.engineNo = '' this.handleQuery(); }, /** 澶氶�夋閫変腑鏁版嵁 */ @@ -682,12 +669,21 @@ console.log('this.single1111',this.single) console.log('selecion',selection) this.ids = selection.map(item => item.id) + const statusList = selection.map(item => item.orderStatus) + console.log('statusList',statusList) + console.log('statusList.filter( x => x !== "1").length',statusList.filter( x => x !== "1").length) + if (statusList.filter( x => x !== "1").length >0){ + this.create = true + } else { + this.create = false + } if (selection.length >1){ this.single = false this.multiple = true } else if (selection.length === 1){ this.single = true this.multiple = false + this.singleSelect = selection[0] } else { this.single = true this.multiple = true @@ -722,33 +718,48 @@ handleAdd() { this.initWorkshop(); this.reset(); + this.editFlag = false this.open = true; this.titleName = "娣诲姞鐢熶骇璁㈠崟"; }, /** 鍚屾鎸夐挳鎿嶄綔 */ - CreatehandleUpdate(Row) { - this.initWorkshop(); - this.reset(); - const id = Row.id || this.ids - getProductionOrdes(id).then(response => { - console.log(response.data) - console.log(response.data.productCode) - this.materialQueryParams.materialCode = response.data.productCode; - listMaterial(this.materialQueryParams).then(response => { - this.markNo = response.rows[0].mark - this.form.typeL = response.rows[0].typeL; + CreatehandleUpdate() { + console.log('this.ids',this.ids) + if (this.ids.length === 0){ + this.$message.error('璇峰嬀閫夋暟鎹�'); + }else { + this.initWorkshop(); + this.reset(); + const id = this.ids + getProductionOrdes(id).then(response => { + console.log(response.data) + console.log(response.data.productCode) + this.materialQueryParams.materialCode = response.data.productCode; + listMaterial(this.materialQueryParams).then(response => { + console.log("res2121",response) + if (response.rows.length === 0){ + this.$message.error('鏈煡鎵惧埌鐗╂枡缂栫爜瀵瑰簲缂栧彿锛�'); + this.cancel() + } else { + this.markNo = response.rows[0].mark + this.form.typeL = response.rows[0].typeL; + } + + }); + this.form = response.data; + this.form.idNums=id; + this.Createopen = true; + this.titleName = "鐢熸垚绠变綋鏉$爜"; + // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1); }); - this.form = response.data; - this.form.idNums=id; - this.Createopen = true; - this.titleName = "鐢熸垚绠变綋鏉$爜"; - // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1); - }); + } + }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { this.initWorkshop(); this.reset(); + this.editFlag = true const id = row.id || this.ids getProductionOrde(id).then(response => { console.log(response.data) @@ -780,16 +791,21 @@ /** 鐢熸垚绠变綋鏉$爜鎻愪氦鎸夐挳 */ submitFormForBoxCode() { + if (this.form.startCode === null || this.form.startCode === ''){ + this.$message.error('璧峰缂栧彿涓嶈兘涓虹┖!'); + return; + } let startCode = parseInt(this.form.startCode); let queryParams = { model: this.form.typeZ, modelDate: this.form.dateTimeRule, } + if(startCode>999){ this.$message.error('璧峰缂栧彿瓒呭嚭鏈�澶ц寖鍥达紝璇疯緭鍏�1-999鐨勬暟瀛楋紒'); return; }else if(startCode<1){ - this.$message.error('璧峰缂栧彿瓒呭嚭鏈�灏忚寖鍥达紝璇疯緭鍏�1-999鐨勬暟瀛楋紒'); + this.$message.error('璇疯緭鍏�1-999鐨勬暟瀛楋紒'); return; } listModelNumber(queryParams).then(response => { @@ -837,10 +853,15 @@ }, `productionOrde_${new Date().getTime()}.xlsx`) }, goToPage() { - this.showDetailFlag=true - console.log('this.showDetailFlag',this.showDetailFlag) - //鏇存柊瀹為檯鐢熶骇鏃ユ湡 - //updateOrderInfo(this.singleSelect) + if (this.ids.length === 0){ + this.$message.error('璇峰嬀閫夋暟鎹�'); + }else { + this.showDetailFlag=true + console.log('this.showDetailFlag',this.showDetailFlag) + //鏇存柊瀹為檯鐢熶骇鏃ユ湡 + //updateOrderInfo(this.singleSelect) + } + }, } }; -- Gitblit v1.9.3