From 04b8eff075a04db23e6f908855699b4d2954588c Mon Sep 17 00:00:00 2001 From: yyt <306727702@qq.com> Date: 星期四, 23 五月 2024 18:47:01 +0800 Subject: [PATCH] 380新产品,优化 --- jcdm-ui/src/views/main/om/productionOrde/index.vue | 230 +++++++++++++++++++++++++++------------------------------ 1 files changed, 108 insertions(+), 122 deletions(-) diff --git a/jcdm-ui/src/views/main/om/productionOrde/index.vue b/jcdm-ui/src/views/main/om/productionOrde/index.vue index 00823a4..08a212b 100644 --- a/jcdm-ui/src/views/main/om/productionOrde/index.vue +++ b/jcdm-ui/src/views/main/om/productionOrde/index.vue @@ -1,5 +1,6 @@ <template> <div class="app-container"> + <div v-if="!showDetailFlag"> <el-card class="box-card"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label-width="100" label="鐢熶骇閫氱煡鍗�" prop="productName"> @@ -7,6 +8,9 @@ </el-form-item> <el-form-item label-width="80" label="鐢熶骇璁㈠崟" prop="workOrderNo"> <el-input v-model="queryParams.workOrderNo" placeholder="璇疯緭鍏ョ敓浜ц鍗�" clearable @keyup.enter.native="handleQuery"/> + </el-form-item> + <el-form-item style="margin-left: 14px" label="浜у搧缂栧彿" prop="productCode"> + <el-input v-model="queryParams.productCode" placeholder="璇疯緭鍏ヤ骇鍝佺紪鍙�" clearable @keyup.enter.native="handleQuery"/> </el-form-item> <!-- <el-form-item label="浜у搧鍚嶇О" prop="productName">--> <!-- <el-input v-model="queryParams.productName" placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�" clearable @keyup.enter.native="handleQuery"/>--> @@ -27,26 +31,20 @@ </el-form-item> </el-form> <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px"> - <el-form-item style="margin-left: 14px" label="浜у搧缂栧彿" prop="productCode"> - <el-input v-model="queryParams.productCode" placeholder="璇疯緭鍏ヤ骇鍝佺紪鍙�" clearable @keyup.enter.native="handleQuery"/> + <el-form-item label="鏈哄瀷" prop="typeZ"> + <el-input v-model="queryParams.typeZ" placeholder="璇疯緭鍏ユ満鍨�" clearable @keyup.enter.native="handleQuery"/> </el-form-item> - <el-form-item label="璁㈠崟缂栧彿" prop="salesOrderCode"> - <el-input v-model="queryParams.salesOrderCode" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" clearable @keyup.enter.native="handleQuery"/> - </el-form-item> - <el-form-item label="杞﹂棿缂栧彿" prop="workshopCode"> - <el-input v-model="queryParams.workshopCode" placeholder="璇疯緭鍏ヨ溅闂寸紪鍙�" clearable @keyup.enter.native="handleQuery"/> - </el-form-item> - <el-form-item label="浜х嚎缂栧彿" prop="lineCode"> - <el-input v-model="queryParams.lineCode" placeholder="璇疯緭鍏ヤ骇绾跨紪鍙�" clearable @keyup.enter.native="handleQuery"/> - </el-form-item> - <el-form-item style="margin-left: 7px" label-width="80" label="浜у搧BOM" prop="bomCode"> - <el-input v-model="queryParams.bomCode" placeholder="璇疯緭鍏ヤ骇鍝丅OM" clearable @keyup.enter.native="handleQuery"/> - </el-form-item> - <el-form-item label="宸ヨ壓娴佺▼" prop="routeCode"> - <el-input v-model="queryParams.routeCode" placeholder="璇疯緭鍏ュ伐鑹烘祦绋�" clearable @keyup.enter.native="handleQuery"/> - </el-form-item> - <el-form-item label="宸ヨ壓閰嶆柟" prop="recipeCode"> - <el-input v-model="queryParams.recipeCode" placeholder="璇疯緭鍏ュ伐鑹洪厤鏂�" clearable @keyup.enter.native="handleQuery"/> + <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> </el-form> </el-card> @@ -95,31 +93,12 @@ v-hasPermi="['om:productionOrde:export']" >瀵煎嚭</el-button> </el-col> -<!-- <el-col :span="1.5">--> -<!-- <el-button--> -<!-- type="warning"--> -<!-- plain--> -<!-- icon="el-icon-upload2"--> -<!-- :disabled="move"--> -<!-- size="mini"--> -<!-- @click="moveUp(val => val, 'up')"--> -<!-- >涓婄Щ</el-button>--> -<!-- </el-col>--> -<!-- <el-col :span="1.5">--> -<!-- <el-button--> -<!-- type="warning"--> -<!-- plain--> -<!-- icon="el-icon-download"--> -<!-- size="mini"--> -<!-- :disabled="move"--> -<!-- @click="moveUp(val => val, 'down')"--> -<!-- >涓嬬Щ</el-button>--> -<!-- </el-col>--> + <el-col :span="1.5"> <el-button - type="warning" + type="success" plain - icon="el-icon-download" + icon="el-icon-wind-power" size="mini" @click="getProductionNotice" v-hasPermi="['om:productionOrde:receive']" @@ -136,102 +115,58 @@ v-hasPermi="['om:productionOrde:createUpdate']" >鐢熸垚</el-button> </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + :disabled="!single" + @click="goToPage" + >寮�濮嬩綔涓�</el-button> + </el-col> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> <el-table border v-loading="loading" :data="productionOrdeList" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="鐢熶骇閫氱煡鍗曞彿" width="160" align="center" prop="productionNotice"> + <el-table-column label="鐢熶骇閫氱煡鍗�" width="120" align="center" prop="productionNotice"> </el-table-column> - <el-table-column label="鐢熶骇璁㈠崟" width="160" align="center"> + <el-table-column label="鐢熶骇璁㈠崟" width="140" align="center"> <template slot-scope="scope"> <router-link :to="{path: '/main/orderScheduling-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type"> <span>{{ scope.row.workOrderNo }}</span> </router-link> </template> </el-table-column> - <el-table-column label="鏈哄瀷" width="160" align="center" prop="typeZ"> + <el-table-column label="鏈哄瀷" width="100" align="center" prop="typeZ"> </el-table-column> + <el-table-column label="闇�姹傛暟閲�" align="center" prop="planQty"> </el-table-column> + <el-table-column label="浜у搧缂栧彿" width="150" align="center" prop="productCode"> </el-table-column> -<!-- <el-table-column label="瀹為檯鏁伴噺" width="160" align="center" prop="actualQty">--> -<!-- </el-table-column>--> + + <el-table-column label="寮�宸ユ棩鏈�" width="120" align="center" prop="demandDate"> + </el-table-column> + <el-table-column label="宸ュ崟鐘舵��" align="center" prop="orderStatus"> <template slot-scope="scope"> <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/> </template> </el-table-column> -<!-- <el-table-column label="宸ュ巶" align="center" prop="workshopCode">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="浠撳簱" align="center">--> -<!-- </el-table-column>--> + <el-table-column label="浜х嚎" align="center" prop="lineCode"> </el-table-column> -<!-- <el-table-column label="璁㈠崟绫诲瀷" align="center">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="ZWS" align="center">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="宸ヨ壓娴佺▼" width="140" align="center" prop="routeCode">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="浜у搧BOM" width="140" align="center" prop="bomCode">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="宸ヨ壓閰嶆柟" width="140" align="center" prop="recipeCode">--> -<!-- </el-table-column>--> - -<!-- <el-table-column label="瀹為檯鏁伴噺" align="center" prop="actualQty">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="瀹為檯涓婄嚎鏁伴噺" width="100" align="center" prop="actualOnlineQty">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="闇�姹傛棩鏈�" align="center" prop="demandDate" width="180">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="璁″垝寮�濮嬫椂闂�" width="160" align="center" prop="planStartTime">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="璁″垝缁撴潫鏃堕棿" width="160" align="center" prop="planEndTime">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="瀹為檯寮�濮嬫椂闂�" width="160" align="center" prop="actualStartTime">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="瀹為檯缁撴潫鏃堕棿" width="160" align="center" prop="actualEndTime">--> -<!-- </el-table-column>--> - -<!-- <el-table-column width="160" label="鏇存柊鏃堕棿" align="center" prop="updateTime">--> -<!-- </el-table-column>--> - <el-table-column label="閫氱煡鍗曞埗鍗曚汉" width="80" align="center" prop="createUser"> + <el-table-column label="鍒跺崟浜�" width="80" align="center" prop="createUser"> </el-table-column> - <el-table-column width="160" label="閫氱煡鐢熸垚鏃ユ湡" align="center" prop="createTime"> + <el-table-column width="160" label="鎺ユ敹鏃ユ湡" align="center" prop="createTime"> </el-table-column> <el-table-column label="鎴愬搧鎻忚堪" width="320" align="center" prop="productName"> </el-table-column> -<!-- <el-table-column label="淇敼浜�" width="80" align="center" prop="updateUser">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="澶囨敞" width="100" align="center" prop="remarks">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="娴佹按鍙�" align="center" prop="streamNumber">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="瀹㈡埛" width="80" align="center" prop="custom">--> -<!-- </el-table-column>--> -<!-- <el-table-column fixed="right" width="350" label="鎿嶄綔" align="center" class-name="small-padding fixed-width">--> -<!-- <template slot-scope="scope">--> -<!-- <!– 宸ュ崟鐘舵�侊紙1鍒涘缓銆�2宸插彂甯冦��3鐢熶骇涓��4宸插喕缁撱��5宸插畬宸ャ��6宸插叧闂級 –>--> -<!-- <el-button type="success" :disabled="scope.row.orderStatus !== '1'" style="width: 72px" plain @click="handleCommand('3',scope.row.id)" size="mini">--> -<!-- 寮�濮�</el-button>--> -<!-- <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '2' && scope.row.orderStatus !== '3'" v-if="scope.row.orderStatus !== '2'&& scope.row.orderStatus !== '4'" plain @click="handleCommand('4',scope.row.id)" type="warning" size="mini">--> -<!-- 鍐荤粨</el-button>--> -<!-- <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '4'" v-if="scope.row.orderStatus === '4'" plain @click="handleCommand('3',scope.row.id)" type="warning" size="mini">--> -<!-- 瑙e喕</el-button>--> -<!-- <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '1'" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'||scope.row.orderStatus === '3'||scope.row.orderStatus === '4'||scope.row.orderStatus === '5'" type="danger" size="mini">--> -<!-- 鍏抽棴</el-button>--> -<!-- <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">--> -<!-- 鍚敤</el-button>--> -<!-- <el-button style="width: 72px" :disabled="scope.row.orderStatus === '4'||scope.row.orderStatus === '6'" v-if="scope.row.orderStatus !== '5'" @click="handleCommand('5',scope.row.id)" type="success" size="mini">--> -<!-- 瀹屾垚</el-button>--> -<!-- <el-button style="width: 72px" :disabled="scope.row.orderStatus === '5'" v-if="scope.row.orderStatus === '5'" type="success" size="mini">宸插畬宸�</el-button> <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">--> -<!-- 鍚敤</el-button>--> -<!-- </template>--> -<!-- </el-table-column>--> </el-table> </el-card> @@ -377,7 +312,8 @@ <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> - + </div> + <Detail v-if="showDetailFlag" :singleSelect="singleSelect"></Detail> </div> </template> @@ -387,7 +323,7 @@ import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom"; import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute"; import ItemSelect from "@/components/itemSelect/single.vue"; -import { addOrderSchedulingForBoxCode,getProductionNotice, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde"; +import { addOrderSchedulingForBoxCode,getProductionNotice, upDownMove, listProductionOrde, getProductionOrde,getProductionOrdes, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde"; import { listOrderScheduling, getOrderScheduling, @@ -398,15 +334,19 @@ } from "@/api/main/bs/orderScheduling/orderScheduling"; import {listMaterial} from "@/api/main/bs/material/material"; import {listModelNumber} from "@/api/main/bs/modelNumber/modelNumber"; +import Detail from "./detail.vue"; export default { name: "ProductionOrde", - dicts: ['order_state','year','month','day'], + dicts: ['order_state','year','month','day','subscription_type', 'sys_yes_no', 'data_type','sys_normal_disable'], components: { ItemSelect , + Detail }, data() { return { + showDetailFlag: false, + singleSelect:{}, titleName: '', options: [], lineOptions: [], @@ -461,6 +401,7 @@ flag: null, adds:null, productionNotice: null, + dateConditions: [], }, materialQueryParams: { pageNum: 1, @@ -503,6 +444,33 @@ year: '', }, markNo: '', + pickerOptions: { + shortcuts: [{ + text: '鏈�杩戜竴鍛�', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit('pick', [start, end]); + } + }, { + text: '鏈�杩戜竴涓湀', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit('pick', [start, end]); + } + }, { + text: '鏈�杩戜笁涓湀', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + picker.$emit('pick', [start, end]); + } + }] + }, }; }, created() { @@ -543,16 +511,17 @@ dateTimeRule = dateTimeRule + day; dateTimeRule = dateTimeRule + this.markNo; this.form.dateTimeRule = dateTimeRule;//姝ゅ璧嬪�间笉鍔犳満鍨� - dateTimeRule = dateTimeRule + this.form.typeZ;//姝ゅ鍔犳満鍨嬶紝椤哄簭涓嶈兘棰犲�� + dateTimeRule = this.form.typeZ +" "+dateTimeRule;//姝ゅ鍔犳満鍨嬶紝椤哄簭涓嶈兘棰犲�� //璧嬪�艰捣濮嬬紪鐮� - this.form.startEndCode = dateTimeRule + String(parseInt(startCode)).padStart(3, '0') + " " + dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ; + this.form.startEndCode = dateTimeRule + String(parseInt(startCode)).padStart(3, '0') + " " + dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ; } }, getProductionNotice(){ getProductionNotice(this.queryParams).then(response => { - this.$modal.msgSuccess(response.data.msg); + + this.$modal.msgSuccess(response.msg); this.queryParams = {} this.getList(); }); @@ -685,7 +654,8 @@ spareField3: null, typeZ: null, spareField4: null, - adds:null + adds:null, + idNums:null }; this.resetForm("form"); }, @@ -699,7 +669,7 @@ this.resetForm("queryForm"); this.handleQuery(); }, - // 澶氶�夋閫変腑鏁版嵁 + /** 澶氶�夋閫変腑鏁版嵁 */ handleSelectionChange(selection) { this.ids = selection.map(item => item.id) this.move = selection.length!==1 @@ -711,9 +681,12 @@ this.single = false this.multiple = false } + if(selection[0].orderStatus === '2' && selection.length === 1){ + this.singleSelect = selection[0] + } } - }, + /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.initWorkshop(); @@ -726,14 +699,16 @@ this.initWorkshop(); this.reset(); const id = Row.id || this.ids - getProductionOrde(id).then(response => { + 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; }); this.form = response.data; + this.form.idNums=id; this.Createopen = true; this.titleName = "鐢熸垚绠变綋鏉$爜"; // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1); @@ -779,14 +754,20 @@ 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鐨勬暟瀛楋紒'); + return; + } listModelNumber(queryParams).then(response => { if(response.rows.length === 0){ this.saveBoxCode() }else { let maxNumValue = response.rows[0].maxnumValue; - if(startCode<maxNumValue){ - this.$message.error('鏂板缓鐨勪笉鑳芥瘮鏌ヨ鍑虹殑灏�'); - return; + if(startCode<=maxNumValue){ + this.$message.error('绠变綋鏉$爜閲嶅锛岃閲嶆柊杈撳叆璧峰缂栧彿锛�'); }else { this.saveBoxCode() } @@ -797,7 +778,7 @@ saveBoxCode(){ this.$refs["form"].validate(valid => { if (valid) { - if (this.form.id != null) { + if (this.form.idNums != null) { addOrderSchedulingForBoxCode(this.form).then(response => { this.$modal.msgSuccess("淇濆瓨鎴愬姛"); this.Createopen = false; @@ -824,7 +805,12 @@ ...this.queryParams }, `productionOrde_${new Date().getTime()}.xlsx`) }, - + goToPage() { + this.showDetailFlag=true + console.log('this.showDetailFlag',this.showDetailFlag) + //鏇存柊瀹為檯鐢熶骇鏃ユ湡 + //updateOrderInfo(this.singleSelect) + }, } }; </script> -- Gitblit v1.9.3