From 019f1c8bac7e8986d299aff70c123dedc1747d72 Mon Sep 17 00:00:00 2001 From: admin <15939171744@163.com> Date: 星期四, 06 六月 2024 11:15:10 +0800 Subject: [PATCH] - --- jcdm-ui/src/views/main/om/productionOrde/index.vue | 387 +++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 265 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 ffaab36..f40770e 100644 --- a/jcdm-ui/src/views/main/om/productionOrde/index.vue +++ b/jcdm-ui/src/views/main/om/productionOrde/index.vue @@ -28,6 +28,14 @@ /> </el-select> </el-form-item> + <div style="display: none"> + <div id="printMe" style="width: 500px;"> + <div ref="canvasWrapper" id="canvasWrapper" style="display: flex;justify-content: center;"></div> + <p style="font-size: 10px;word-break: break-all;display: flex;justify-content: center;">{{packCode}}</p> + </div> + <el-button @click="print">鎵撳嵃</el-button> + <el-button @click="test1">鐢熸垚浜岀淮鐮�</el-button> + </div> <el-form-item style="float: right"> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">楂樼骇鏌ヨ</el-button> @@ -94,46 +102,61 @@ >淇敼</el-button> </el-col> <el-col :span="1.5"> +<!-- <el-button--> +<!-- type="danger"--> +<!-- plain--> +<!-- icon="el-icon-delete"--> +<!-- size="mini"--> +<!-- :disabled="multiple"--> +<!-- @click="handleDelete"--> +<!-- v-hasPermi="['om:productionOrde:remove']"--> +<!-- >鍒犻櫎</el-button>--> <el-button - type="danger" - plain - icon="el-icon-delete" + type="info" + icon="el-icon-upload2" size="mini" - :disabled="multiple" - @click="handleDelete" - v-hasPermi="['om:productionOrde:remove']" - >鍒犻櫎</el-button> + @click="handleImport" + >瀵煎叆</el-button> </el-col> -<!-- <el-col :span="1.5">--> -<!-- <el-button--> -<!-- type="warning"--> -<!-- plain--> -<!-- icon="el-icon-download"--> -<!-- size="mini"--> -<!-- @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>--> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['om:productionOrde:export']" + >瀵煎嚭</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="getWorkOrders" + >鎺ユ敹</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + :disabled="single" + @click="patchwork" + >琛ユ墦</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + :disabled="single" + @click="jieBang" + >瑙g粦</el-button> + </el-col> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> @@ -146,68 +169,40 @@ </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 :show-overflow-tooltip='true' label="pack鐮�" width="220" align="center" prop="productNum"> </el-table-column> - <el-table-column label="浜у搧搴忓垪鍙�" width="110" align="center" prop="productCode"> + <el-table-column :show-overflow-tooltip='true' label="灏忚溅鐮�" width="160" align="center" prop="trolleyYard"> + </el-table-column> + <el-table-column label="浜у搧缂栧彿" width="110" align="center" prop="productCode"> </el-table-column> <el-table-column label="浜у搧鍚嶇О" width="120" align="center" prop="productName"> </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 label="浜у搧鍨嬪彿" align="center" prop="productModel"> </el-table-column> - <el-table-column label="宸ュ巶缂栧彿" align="center" prop="siteCode"> - </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="siteCode">--> +<!-- </el-table-column>--> <el-table-column label="宸ョ珯缂栧彿" align="center" prop="stationCode"> </el-table-column> - <el-table-column label="鎶ュ伐淇℃伅缁撴灉" width="110" align="center" prop="resultText"> - </el-table-column> - <el-table-column label="鎶ュ伐缁撴灉浠g爜" width="110" align="center" prop="resultCode"> - </el-table-column> - <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 label="鍒涘缓浜�" width="80" align="center" prop="createUser"> - </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 label="鎶ュ伐淇℃伅缁撴灉" width="110" align="center" prop="resultText">--> <!-- </el-table-column>--> -<!-- <el-table-column label="瀹㈡埛" width="80" align="center" prop="custom">--> +<!-- <el-table-column label="鎶ュ伐缁撴灉浠g爜" width="110" align="center" prop="resultCode">--> <!-- </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 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 label="鍒涘缓浜�" width="80" align="center" prop="createUser">--> +<!-- </el-table-column>--> +<!-- <el-table-column label="澶囨敞" width="100" align="center" prop="remarks">--> <!-- </el-table-column>--> </el-table> </el-card> @@ -243,6 +238,9 @@ <el-form-item label="浜у搧鍚嶇О" prop="productName"> <el-input style="width: 265px" v-model="form.productName" disabled placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�" /> </el-form-item> + <el-form-item label="浜у搧鍨嬪彿" prop="productModel"> + <el-input v-model="form.productModel" placeholder="璇疯緭鍏ヤ骇鍝佸瀷鍙�" /> + </el-form-item> <el-form-item label="宸ュ巶缂栧彿" prop="siteCode"> <el-input style="width: 265px" v-model="form.siteCode" placeholder="璇疯緭鍏ュ伐鍘傜紪鍙�" /> </el-form-item> @@ -260,16 +258,58 @@ </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 {getProductBom, 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, + receivingWorkOrders, jieBang +} from "@/api/main/om/productionOrde/productionOrde"; +import QRCode from "qrcodejs2"; export default { name: "ProductionOrde", @@ -279,6 +319,8 @@ }, data() { return { + // packCode: '0RSPB001139E3AE4X0000011', + packCode: 'test111', titleName: '', options: [], lineOptions: [], @@ -328,12 +370,14 @@ frontEndId: 0, idNums: null, flag: null, - siteCode: null, - productNum: null, - stationCode: null, - resultText: null, - resultCode: null, - sfResult: null + siteCode: null, + productNum: null, + stationCode: null, + resultText: null, + resultCode: null, + sfResult: null, + productModel: null + }, // 琛ㄥ崟鍙傛暟 form: {}, @@ -346,26 +390,119 @@ 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() { this.getList(); this.initWorkshop(); }, + mounted() { + this.test1() + }, 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(); + jieBang(row){ + const id = row.id || this.ids + jieBang(id).then(response => { + this.getList() + this.$modal.msgSuccess("瑙g粦鎴愬姛"); }); + }, + patchwork(row){ + const id = row.id || this.ids + getProductionOrde(id).then(response => { + console.log(response.data) + this.packCode = response.data.productNum + console.log(this.packCode) + this.test1() + setTimeout(() => { + this.print() + },50) + }); + }, + async getWorkOrders(){ + await receivingWorkOrders().then(response => { + this.getList() + this.packCode = response.msg; + this.test1() + }); + setTimeout(() => { + this.print() + },50) + }, + print() { + // 鏈〉闈㈢洿鎺ユ墦鍗帮紙鏈塨ug鍗曞瞾鍏堜笉瑕佸垹锛� + // let oldStr = window.document.body.innerHTML; + // let newStr = document.getElementById('printMe').innerHTML; + // document.body.innerHTML = newStr; + // window.print(); + // document.body.innerHTML = oldStr; + // return false; + + // 鏂板紑椤甸潰鎵撳嵃 + // document.getElementById('canvasWrapper').innerHTML = ''; + let newStr = document.getElementById('printMe').innerHTML; + let newWin = window.open('', '_blank'); + newWin.document.body.innerHTML = newStr; + newWin.print(); + return false; + }, + test1(){ + document.getElementById('canvasWrapper').innerHTML = '' + this.$nextTick(() => { + let qrCode = new QRCode('canvasWrapper',{ + width: 80, + height: 80, + padding: 0, + margin: 0, + text: this.packCode, + colorDark: '#000', + colorLight: '#fff' + }) + }) + // console.log(this.packCode) + // this.print() + }, + /** 瀵煎叆鎸夐挳鎿嶄綔 */ + 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 => { @@ -464,7 +601,7 @@ marketAreaCode: null, softwareVersionCode: null, productCompanyCode: null, - spareField1: null, + trolleyYard: null, spareField2: null, spareField3: null, spareField4: null, @@ -488,19 +625,25 @@ this.handleQuery(); }, // 澶氶�夋閫変腑鏁版嵁 + // handleSelectionChange(selection) { + // this.ids = selection.map(item => item.id) + // this.move = selection.length!==1 + // if(!selection.length){ + // this.single = true + // this.multiple = true + // }else { + // if(selection[0].orderStatus === '1' && selection.length === 1){ + // this.single = false + // this.multiple = false + // } + // } + // + // }, + // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { this.ids = selection.map(item => item.id) - this.move = selection.length!==1 - if(!selection.length){ - this.single = true - this.multiple = true - }else { - if(selection[0].orderStatus === '1' && selection.length === 1){ - this.single = false - this.multiple = false - } - } - + this.single = selection.length!==1 + this.multiple = !selection.length }, /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { -- Gitblit v1.9.3