From b169b0c298fb294adbc5bd332982908afca4e819 Mon Sep 17 00:00:00 2001 From: admin <15939171744@163.com> Date: 星期二, 16 四月 2024 10:09:56 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- jcdm-ui/src/views/main/om/productionOrde/index.vue | 329 +++++++++++++++++++++--------------------------------- 1 files changed, 131 insertions(+), 198 deletions(-) diff --git a/jcdm-ui/src/views/main/om/productionOrde/index.vue b/jcdm-ui/src/views/main/om/productionOrde/index.vue index 5c5df66..b053002 100644 --- a/jcdm-ui/src/views/main/om/productionOrde/index.vue +++ b/jcdm-ui/src/views/main/om/productionOrde/index.vue @@ -38,7 +38,7 @@ <el-form-item style="margin-left: 14px" label="浜у搧缂栧彿" prop="productCode"> <el-input v-model="queryParams.productCode" - placeholder="璇疯緭鍏ヤ骇鍝佺紪鍙�" + placeholder="璇疯緭鍏ヤ骇鍝佸簭鍒楀彿" clearable @keyup.enter.native="handleQuery" /> @@ -51,43 +51,18 @@ @keyup.enter.native="handleQuery" /> </el-form-item> - <el-form-item label="杞﹂棿缂栧彿" prop="workshopCode"> + <el-form-item label="宸ュ巶缂栧彿" prop="siteCode"> <el-input - v-model="queryParams.workshopCode" - placeholder="璇疯緭鍏ヨ溅闂寸紪鍙�" + v-model="queryParams.siteCode" + placeholder="璇疯緭鍏ュ伐鍘傜紪鍙�" clearable @keyup.enter.native="handleQuery" /> </el-form-item> - <el-form-item label="浜х嚎缂栧彿" prop="lineCode"> + <el-form-item label="宸ョ珯缂栧彿" prop="stationCode"> <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="璇疯緭鍏ュ伐鑹洪厤鏂�" + v-model="queryParams.stationCode" + placeholder="璇疯緭鍏ュ伐绔欑紪鍙�" clearable @keyup.enter.native="handleQuery" /> @@ -128,6 +103,12 @@ @click="handleDelete" v-hasPermi="['om:productionOrde:remove']" >鍒犻櫎</el-button> + <el-button + type="info" + icon="el-icon-upload2" + size="mini" + @click="handleImport" + >瀵煎叆</el-button> </el-col> <el-col :span="1.5"> <el-button @@ -138,26 +119,6 @@ @click="handleExport" 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> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> @@ -171,86 +132,38 @@ </router-link> </template> </el-table-column> - <el-table-column label="璁㈠崟缂栧彿" width="140" align="center" prop="salesOrderCode"> +<!-- <el-table-column label="璁㈠崟缂栧彿" width="140" align="center" prop="salesOrderCode">--> +<!-- </el-table-column>--> + <el-table-column label="浜у搧缂栧彿" width="110" align="center" prop="productCode"> </el-table-column> - <el-table-column label="浜у搧缂栧彿" width="140" align="center" prop="productCode"> + <el-table-column label="浜у搧鍚嶇О" width="120" align="center" prop="productName"> </el-table-column> - <el-table-column label="浜у搧鍚嶇О" width="160" align="center" prop="productName"> + <el-table-column label="浜у搧搴忓垪鍙�" width="110" align="center" prop="productNum"> </el-table-column> - <el-table-column label="宸ュ崟鐘舵��" align="center" prop="orderStatus"> + <el-table-column label="浜у搧鍨嬪彿" align="center" prop="productModel"> + </el-table-column> + <el-table-column label="宸ュ崟鐘舵��" width="100" 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 label="宸ュ巶缂栧彿" align="center" prop="siteCode">--> +<!-- </el-table-column>--> + <el-table-column label="宸ョ珯缂栧彿" align="center" prop="stationCode"> </el-table-column> - <el-table-column label="浜х嚎缂栧彿" align="center" prop="lineCode"> + <el-table-column label="鎶ュ伐淇℃伅缁撴灉" width="110" align="center" prop="resultText"> </el-table-column> - <el-table-column label="宸ヨ壓娴佺▼" width="140" align="center" prop="routeCode"> + <el-table-column label="鎶ュ伐缁撴灉浠g爜" width="110" align="center" prop="resultCode"> </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="planQty"> - </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 label="鏄惁鎶ュ伐" width="80" align="center" prop="sfResult"> </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="createTime"> - </el-table-column> - <el-table-column width="160" label="鏇存柊鏃堕棿" align="center" prop="updateTime"> + <el-table-column label="褰撳墠绔欑偣鎶ュ伐鏃堕棿" width="160" align="center" prop="actualEndTime"> </el-table-column> <el-table-column label="鍒涘缓浜�" width="80" align="center" prop="createUser"> </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--> -<!-- :disabled="scope.row.orderStatus !== '1'"--> -<!-- size="mini"--> -<!-- type="success"--> -<!-- style="width: 72px"--> -<!-- icon="el-icon-edit"--> -<!-- @click="handleUpdate(scope.row)"--> -<!-- v-hasPermi="['om:productionOrde:edit']"--> -<!-- >淇敼</el-button>--> -<!-- <el-button--> -<!-- :disabled="scope.row.orderStatus !== '1'"--> -<!-- size="mini"--> -<!-- type="warning"--> -<!-- style="width: 72px"--> -<!-- icon="el-icon-delete"--> -<!-- @click="handleDelete(scope.row)"--> -<!-- v-hasPermi="['om:productionOrde:remove']"--> -<!-- >鍒犻櫎</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> @@ -265,93 +178,40 @@ /> <!-- 娣诲姞鎴栦慨鏀圭敓浜у伐鍗曞璇濇 --> - <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="1000px" append-to-body> + <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="500px" append-to-body> <span slot="title"> <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="workOrderNo"> + <el-input style="width: 265px" v-model="form.workOrderNo" placeholder="璇疯緭鍏ョ敓浜у伐鍗曞彿" /> </el-form-item> <el-form-item label="璁㈠崟缂栧彿" prop="salesOrderCode"> - <el-input v-model="form.salesOrderCode" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" /> + <el-input style="width: 265px" v-model="form.salesOrderCode" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" /> </el-form-item> - <el-form-item label="浜у搧缂栧彿" prop="productCode"> + <el-form-item label="浜у搧搴忓垪鍙�" prop="productNum"> <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-form-item> <el-form-item label="浜у搧鍚嶇О" prop="productName"> - <el-input v-model="form.productName" disabled placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�" /> + <el-input style="width: 265px" v-model="form.productName" disabled 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-option - v-for="item in options" - :key="item.workshopCode" - :label="item.workshopName" - :value="item.workshopCode"> - </el-option> - </el-select> + <el-form-item label="浜у搧鍨嬪彿" prop="productModel"> + <el-input v-model="form.productModel" placeholder="璇疯緭鍏ヤ骇鍝佸瀷鍙�" /> </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 label="宸ュ巶缂栧彿" prop="siteCode"> + <el-input style="width: 265px" v-model="form.siteCode" placeholder="璇疯緭鍏ュ伐鍘傜紪鍙�" /> </el-form-item> - <el-form-item label="宸ヨ壓娴佺▼" prop="routeCode"> - <el-input v-model="form.routeCode" disabled placeholder="璇疯緭鍏ュ伐鑹烘祦绋�" /> + <el-form-item label="宸ョ珯缂栧彿" prop="stationCode"> + <el-input style="width: 265px"v-model="form.stationCode" placeholder="璇疯緭鍏ュ伐绔欑紪鍙�" /> </el-form-item> - <el-form-item label="浜у搧BOM" prop="bomCode"> - <el-input v-model="form.bomCode" disabled placeholder="璇疯緭鍏ヤ骇鍝丅OM" /> + <el-form-item label="澶囨敞" prop="remarks"> + <el-input style="width: 265px" v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" /> </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> @@ -359,16 +219,48 @@ </div> </el-dialog> + <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� --> + <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px"> + <el-upload + ref="upload" + :limit="1" + accept=".xlsx, .xls" + :headers="upload.headers" + :action="upload.url + '?updateSupport=' + upload.updateSupport" + :disabled="upload.isUploading" + :on-progress="handleFileUploadProgress" + :on-success="handleFileSuccess" + :auto-upload="false" + drag + > + <i class="el-icon-upload"></i> + <div class="el-upload__text"> + 灏嗘枃浠舵嫋鍒版澶勶紝鎴� + <em>鐐瑰嚮涓婁紶</em> + </div> + <div class="el-upload__tip" slot="tip"> + <el-checkbox v-model="upload.updateSupport" />鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹� + <el-link type="info" style="font-size:12px" @click="importTemplate">涓嬭浇妯℃澘</el-link> + </div> + <div class="el-upload__tip" style="color:red" slot="tip">鎻愮ず锛氫粎鍏佽瀵煎叆鈥渪ls鈥濇垨鈥渪lsx鈥濇牸寮忔枃浠讹紒</div> + </el-upload> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button> + <el-button @click="upload.open = false">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> </template> <script> +import { getToken } from "@/utils/auth"; import { listLineInfo } from "@/api/main/bs/lineInfo/lineInfo"; import { listWorkshop } from "@/api/main/bs/workshop/workshop"; import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom"; import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute"; import ItemSelect from "@/components/itemSelect/single.vue"; -import { upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde"; +import { importTemplate, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde"; export default { name: "ProductionOrde", @@ -427,6 +319,13 @@ frontEndId: 0, idNums: null, flag: null, + siteCode: null, + productNum: null, + stationCode: null, + resultText: null, + resultCode: null, + sfResult: null, + productModel: null }, // 琛ㄥ崟鍙傛暟 @@ -440,7 +339,22 @@ id: [ { required: true, message: "ID涓嶈兘涓虹┖", trigger: "blur" } ], - } + }, + // 鐢ㄦ埛瀵煎叆鍙傛暟 + upload: { + // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛� + open: false, + // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛� + title: "", + // 鏄惁绂佺敤涓婁紶 + isUploading: false, + // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹� + updateSupport: 0, + // 璁剧疆涓婁紶鐨勮姹傚ご閮� + headers: { Authorization: "Bearer " + getToken() }, + // 涓婁紶鐨勫湴鍧� + url: process.env.VUE_APP_BASE_API + "/om/productionOrde/importData" + }, }; }, created() { @@ -448,18 +362,31 @@ this.initWorkshop(); }, methods: { - moveUp(row, val){ - console.log(val) - const ids = row.id || this.ids - let str = JSON.stringify(ids); - let num = BigInt(str.replace(/[\[\]]/g, '')); - this.queryParams.frontEndId = num - this.queryParams.idNums = ids - this.queryParams.flag = val - upDownMove(this.queryParams).then(response => { - this.$modal.msgSuccess("绉诲姩鎴愬姛"); - this.getList(); - }); + /** 瀵煎叆鎸夐挳鎿嶄綔 */ + handleImport() { + this.upload.title = "璁㈠崟淇℃伅瀵煎叆"; + this.upload.open = true; + }, + /** 涓嬭浇妯℃澘鎿嶄綔 */ + importTemplate() { + this.download('om/productionOrde/importTemplate', { + }, `productionOrde_template_${new Date().getTime()}.xlsx`) + }, +// 鏂囦欢涓婁紶涓鐞� + handleFileUploadProgress(event, file, fileList) { + this.upload.isUploading = true; + }, +// 鏂囦欢涓婁紶鎴愬姛澶勭悊 + handleFileSuccess(response, file, fileList) { + this.upload.open = false; + this.upload.isUploading = false; + this.$refs.upload.clearFiles(); + this.$alert(response.msg, "瀵煎叆缁撴灉", { dangerouslyUseHTMLString: true }); + this.getList(); + }, +// 鎻愪氦涓婁紶鏂囦欢 + submitFileForm() { + this.$refs.upload.submit(); }, initWorkshop(){ listWorkshop(this.queryParams).then(response => { @@ -561,7 +488,13 @@ spareField1: null, spareField2: null, spareField3: null, - spareField4: null + spareField4: null, + siteCode: null, + productNum: null, + stationCode: null, + resultText: null, + resultCode: null, + sfResult: null }; this.resetForm("form"); }, -- Gitblit v1.9.3