From c4cc315e6b46adabc9f649c7b14e6c2b0bcc3346 Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期四, 10 四月 2025 14:00:42 +0800 Subject: [PATCH] 修改检验任务 --- src/views/business/materialOrder/customsInspection.vue | 332 ++++++++++++++++++------------------------------------- 1 files changed, 109 insertions(+), 223 deletions(-) diff --git a/src/views/business/materialOrder/customsInspection.vue b/src/views/business/materialOrder/customsInspection.vue index 2a70ad4..538acdd 100644 --- a/src/views/business/materialOrder/customsInspection.vue +++ b/src/views/business/materialOrder/customsInspection.vue @@ -123,11 +123,21 @@ </el-select> </el-form-item> </el-col> - <el-col :span="6"> + <!-- <el-col :span="6"> <el-form-item class="addObj-form-item" label="绾﹀畾鏃堕棿:" prop="appointed"> <el-date-picker v-model="addObj.appointed" :disabled="active > 1" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd"> </el-date-picker> + </el-form-item> + </el-col> --> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="鎶ユ绫诲瀷:"> + <el-input v-model="addObj.inspectionType" class="addObj-info" clearable disabled size="small"></el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="杞﹂棿鍚嶇О:"> + <el-input v-model="addObj.workShopName" class="addObj-info" clearable disabled size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> @@ -143,22 +153,21 @@ <div style="display: flex;justify-content: space-between;background-color: #F5F7FB;margin-bottom: 6px"> <div v-if="active == 1"> <el-form :inline="true" :model="addObj1" label-width="90px"> - <el-form-item label="鏍峰搧鍨嬪彿:" style="margin-bottom: 6px;margin-top: 6px"> - <el-select v-model="model" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" allow-create clearable - default-first-option filterable size="small" @change="changeModel"> - <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="妫�楠屾爣鍑�:" style="margin-bottom: 6px;margin-top: 6px"> - <el-select v-model="standardMethodListId" :loading="methodLoad" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" - clearable size="small" @change="changeStandardMethodListId" @focus="methodFocus"> - <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> - </el-option> - </el-select> + <el-form-item label="闄勪欢鏌ョ湅:" style="margin-bottom: 6px;margin-top: 6px"> + <el-button type="text" @click="handleFileDialog"> + <i class="el-icon-document"></i> + 杞﹂棿闄勪欢鏌ョ湅 + </el-button> </el-form-item> </el-form> </div> + <el-button type="text" @click="handleFileDialog" v-show="active != 1"> + <i class="el-icon-document"></i> + 杞﹂棿闄勪欢鏌ョ湅 + </el-button> + <el-dialog :visible.sync="fileDialogVisible" title="闄勪欢鏌ョ湅" width="80%"> + <fileList :currentNo="addObj.workShopId" v-if="fileDialogVisible" :isLook="true" /> + </el-dialog> <div style="margin-bottom: 6px;margin-top: 6px"> <el-button v-show="active == 1" :disabled="sampleList.length === 2" size="small" type="primary" @click="handleSplitCountNum">鎷嗗垎</el-button> @@ -194,8 +203,9 @@ </el-table-column> <el-table-column v-if="!(active > 1)" align="center" label="鍨嬪彿鍙傛暟" prop="modelNum" width="130"> <template slot-scope="scope"> - <el-input v-model="scope.row.modelNum" :disabled="active > 1 || scope.$index !== 0" clearable placeholder="闈炲繀濉�" - size="small" @input="methodChange(scope.row.standardMethodListId, scope.row)"></el-input> + <el-input v-model="scope.row.modelNum" :disabled="active > 1 || scope.$index !== 0" clearable + placeholder="闈炲繀濉�" size="small" + @input="methodChange(scope.row.standardMethodListId, scope.row)"></el-input> </template> </el-table-column> <el-table-column align="center" label="妫�楠屾爣鍑�" min-width="100" prop="standardMethodListId"> @@ -203,7 +213,7 @@ <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model == null || active > 1 || scope.$index !== 0" :loading="methodLoad" clearable placeholder="妫�楠屾爣鍑�" size="small" style="width: 100%;" @change="(value) => methodChange(value, scope.row)" - @clear="productList = []" @focus="methodFocus"> + @clear="productList = []" @focus="methodFocus" multiple> <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> </el-option> </el-select> @@ -238,9 +248,8 @@ </el-table> <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName" class="el-table" max-height="400px" style="margin-bottom: 10px;" - :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border tooltip-effect="dark" - @select="selectOne" @selection-change="selectProduct" @select-all="handleAll"> - <el-table-column v-if="active == 1" :selectable="selectable" type="selection" width="65"></el-table-column> + :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border tooltip-effect="dark"> + <!-- <el-table-column v-if="active == 1" :selectable="selectable" type="selection" width="65"></el-table-column> --> <el-table-column label="妫�楠岄」" min-width="140" prop="inspectionItem" show-overflow-tooltip> <template slot="header" slot-scope="scope"> <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> @@ -271,15 +280,15 @@ </el-table-column> <el-table-column label="瑕佹眰鎻忚堪" min-width="220px" prop="tell"> <template slot-scope="scope"> - <el-input v-if="active == 1 && isAskOnlyRead" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" - clearable placeholder="瑕佹眰鎻忚堪" size="small" type="textarea" + <el-input v-if="active == 1 && isAskOnlyRead" v-model="scope.row.tell" + :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鎻忚堪" size="small" type="textarea" @change="e => requestChange(e, scope.row, 'tell')"></el-input> <span v-else> <template>{{ scope.row.tell }}</template> </span> </template> </el-table-column> - <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip></el-table-column> + <el-table-column label="璇曢獙鏉′欢" min-width="140" prop="radius" show-overflow-tooltip></el-table-column> <el-table-column label="璇曢獙鏂规硶" min-width="120" prop="methodS" show-overflow-tooltip> <template slot="header" slot-scope="scope"> <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> @@ -314,8 +323,8 @@ <div class="search_label" style="width: 80px;">瑕佹眰鍊硷細</div> <div class="search_input"> <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)"> - <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" - :label="a">{{ JSON.parse(item.bsmRow.askCopy)[ai] }}</el-radio> + <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a">{{ + JSON.parse(item.bsmRow.askCopy)[ai] }}</el-radio> </el-radio-group> </div> </el-col> @@ -405,16 +414,19 @@ selectStandardProductList, selectStandardTreeListByPartNo } from "@/api/business/rawMaterialOrder"; +import fileList from "../../structural/capabilityAndLaboratory/workshop/components/fileList.vue" +import limsTable from "@/components/Table/lims-table.vue"; export default { name: "CustomsInspection", dicts: ['check_type', 'urgency_level'], - components: {}, + components: { limsTable, fileList }, props: { }, data() { return { customsInspection: {}, + fileDialogVisible: false, orderType: '', active: 0, currentId: 0, @@ -460,6 +472,8 @@ typeSource: 1, ifsInventoryId: '', sampleStatus: 'In good condition', + workShopName: '',//杞﹂棿鍚嶇О + workShopId: '',//杞﹂棿ID }, addObjRules: { // 琛ㄥ崟鏍¢獙瑙勫垯 testQuantity: [ @@ -511,7 +525,7 @@ totalArr: [], addObj1: {}, model: null, - standardMethodListId: null, + standardMethodListId: [], inspectionItem: null, inspectionItemSubclass: null, methodS: null, @@ -543,7 +557,7 @@ value: 0 }, { - label: '瀛e害妫�楠�', + label: '鍙潬鎬ф楠�', value: 1 }, ], @@ -586,11 +600,11 @@ }, 'addObj.sample'(val) { this.model = null - this.standardMethodListId = null + this.standardMethodListId = [] }, 'addObj.qtyArrived'(val) { this.model = null - this.standardMethodListId = null + this.standardMethodListId = [] } }, created() { @@ -609,12 +623,13 @@ this.customsInspection = this.$route.query.customsInspection this.getInfo(); }, - getInfo() { - this.getUserNowList() // 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅 - this.selectStandardMethods() // 鑾峰彇妫�楠屾爣鍑嗕笅鎷夋鏁版嵁 - this.getInfo() // 鑾峰彇鏁版嵁 - }, + // getInfo() { + // this.getInfo() // 鑾峰彇鏁版嵁 + // }, methods: { + handleFileDialog() { + this.fileDialogVisible = true + }, save1() { if (this.bsm1DiaList.length > 0) { this.bsm1DiaList.forEach(item => { @@ -654,6 +669,8 @@ }, // 鑾峰彇鏁版嵁 getInfo() { + this.getUserNowList() // 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅 + this.selectStandardMethods() // 鑾峰彇妫�楠屾爣鍑嗕笅鎷夋鏁版嵁 if (this.active == 2) { let orderId = '' if (!this.customsInspection.enterOrderId && this.customsInspection.quarterOrderId) { @@ -689,6 +706,11 @@ this.addObj.updateBatchNo = res.data.insOrderTemplate.updateBatchNo this.addObj.type = String(this.addObj.type) this.sampleList = this.HaveJson(res.data.sampleProduct) + this.sampleList.forEach(m => { + if (m.standardMethodListId) { + m.standardMethodListId = JSON.parse(m.standardMethodListId) + } + }) this.getProNum() this.$nextTick(() => { this.$refs.sampleTable.doLayout() @@ -728,14 +750,18 @@ this.$set(this.addObj, 'buyUnitMeas', this.customsInspection.buyUnitMeas) this.$set(this.addObj, 'updateBatchNo', this.customsInspection.updateBatchNo) this.$set(this.addObj, 'partDetail', this.customsInspection.partDesc) + this.$set(this.addObj, 'workShopName', res.data.workShopName) + this.$set(this.addObj, 'workShopId', res.data.workShopId) + this.$set(this.addObj, 'inspectionType', this.customsInspection.inspectionType) + console.log(111111, this.addObj) if (this.orderType == 1) { this.$set(this.addObj, 'orderType', 'Quarterly inspection') } const str = res.data.treeName.split('-') this.selectTreeTem = str.join(' - ') this.selectTree = str.join(' - ') - this.addListInfo(this.codeLevel, res.data) // 鍘熻緟鏂欐牱鍝佹槸鍥哄畾鐨勶紝灏遍粯璁よ祴鍊间竴鏉℃暟鎹紝鍙媶鍒� - this.selectInsOrderTemplate() // 鍘熻緟鏂欐ā鏉垮垪琛ㄦ煡璇� + this.addListInfo(this.codeLevel, res.data) // 鍘熻緟鏉愭牱鍝佹槸鍥哄畾鐨勶紝灏遍粯璁よ祴鍊间竴鏉℃暟鎹紝鍙媶鍒� + this.selectInsOrderTemplate() // 鍘熻緟鏉愭ā鏉垮垪琛ㄦ煡璇� } else { this.dialogVisible = true this.dialogMessage = res.message @@ -866,7 +892,7 @@ save() { this.$refs['addObj'].validate((valid) => { if (valid) { - if (!this.sampleList.every(m => m.standardMethodListId)) { + if (!this.sampleList.every(m => m.standardMethodListId && m.standardMethodListId.length > 0)) { this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�') return } @@ -875,7 +901,7 @@ item.insProduct = this.productList }) this.getTotal(sampleList) - let projectNum = this.totalArr.filter(a => a.state == 1).length + let projectNum = this.totalArr.length if (projectNum == 0) { this.$confirm('妫�楠岄」鐩负绌猴紝鏄惁纭鎻愪氦?', "鎻愮ず", { confirmButtonText: "纭畾", @@ -920,7 +946,7 @@ noNeedCheck() { this.$refs['addObj'].validate((valid) => { if (valid) { - if (!this.sampleList.every(m => m.standardMethodListId)) { + if (!this.sampleList.every(m => m.standardMethodListId && m.standardMethodListId.length > 0)) { this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�') return } @@ -950,19 +976,19 @@ }) this.getTotal(sampleList) let trees = this.selectTree.split(" - ") - if (trees.length < 3) { + if (trees.length < 5) { this.$message.error('鏈�夋嫨瀵硅薄') return } this.addObj.factory = trees[0] this.addObj.laboratory = trees[1] - this.addObj.sampleType = trees[2] - if ((trees[3] === undefined || trees[3] === '') || trees.length === 4) { - this.addObj.sample = trees[2] + this.addObj.sampleType = trees[3] + if ((trees[5] === undefined || trees[5] === '') || trees.length === 6) { + this.addObj.sample = trees[4] } else { - this.addObj.sample = trees[3] + this.addObj.sample = trees[5] } - this.addObj.model = (trees[4] == undefined ? null : trees[4]) + this.addObj.model = (trees[6] == undefined ? null : trees[6]) this.addObj.ifsInventoryId = this.customsInspection.id this.noNeedCheckLoad = true addExemptionOrder({ @@ -996,32 +1022,32 @@ }, saveMethod(sampleList) { let trees = this.selectTree.split(" - ") - if (trees.length < 3) { + if (trees.length < 5) { this.$message.error('鏈�夋嫨瀵硅薄') return } this.addObj.factory = trees[0] this.addObj.laboratory = trees[1] - this.addObj.sampleType = trees[2] - if ((trees[3] === undefined || trees[3] === '') || trees.length === 4) { - this.addObj.sample = trees[2] + this.addObj.sampleType = trees[4] + if ((trees[5] === undefined || trees[5] === '') || trees.length === 6) { + this.addObj.sample = trees[4] } else { - this.addObj.sample = trees[3] + this.addObj.sample = trees[5] } - this.addObj.model = (trees[4] == undefined ? null : trees[4]) + this.addObj.model = (trees[6] == undefined ? null : trees[6]) this.addObj.ifsInventoryId = this.customsInspection.id this.saveLoad = true if (this.addObj.createTime) { delete this.addObj.createTime } addInsOrder({ - insOrder: this.addObj, + insOrder: { + ...this.addObj, + workShopId: this.addObj.workShopId || '' // 纭繚 workShopId 浼犻�掔粰鍚庣 + }, sampleList: sampleList.map(a => { - if (a.insProduct.length > 0) { - a.insProduct.forEach(c => { - delete c.id - }) - } + a.standardMethodListId = JSON.stringify(a.standardMethodListId) + a.insProduct = this.productList if (a.modelNum) { // 鏍规嵁x鍙峰垽鏂瀷鍙峰弬鏁颁笌鏍峰搧鍨嬪彿鐨勬嫾鎺ヤ綅缃� // 渚嬪脳4锛屽氨涓�500ML脳4锛�4脳锛屽氨涓�4脳500ML @@ -1036,7 +1062,6 @@ } else { a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum)) } - a.insProduct = a.insProduct.filter(b => b.state === 1) return a }), }).then(res => { @@ -1434,18 +1459,18 @@ this.sample.joinNum = 1 this.sample.sample = this.addObj.sample this.sample.unit = this.addObj.unit - this.sample.standardMethodListId = null + this.sample.standardMethodListId = [] this.sample.insProduct = [] this.sample.id = this.count this.sample.childSampleList = [] this.sample.insulating = null this.sample.sheath = null this.sample.quantity = 1 - if (codeLevel === '[5]') { + if (codeLevel === '[7]') { this.sample.model = this.addObj.sample - } else if (codeLevel === '[4]') { + } else if (codeLevel === '[6]') { this.models = data.children2 - } else if (codeLevel === '[3]') { + } else if (codeLevel === '[5]') { this.models = data.children1 } this.sampleList.push(this.HaveJson(this.sample)) @@ -1469,12 +1494,12 @@ // 閫変腑琛ㄦ牸琛岀殑鍥炶皟 rowClick(row, column, event) { this.currentMethod = row - let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId) - if (obj && obj.code == '鎶�鏈姹�') { - this.isAskOnlyRead = true - } else { - this.isAskOnlyRead = false - } + // let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId) + // if (obj && obj.code == '鎶�鏈姹�') { + // this.isAskOnlyRead = true + // } else { + // this.isAskOnlyRead = false + // } this.sampleId = row.id if (this.active !== 1) { this.sampleIds = [] @@ -1544,29 +1569,32 @@ }) } this.currentMethod = row - let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId) - if (obj && obj.code == '鎶�鏈姹�') { - this.isAskOnlyRead = true - } else { - this.isAskOnlyRead = false - } + // let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId) + // if (obj && obj.code == '鎶�鏈姹�') { + // this.isAskOnlyRead = true + // } else { + // this.isAskOnlyRead = false + // } this.getProductLoad = true let selectTreeList = this.selectTree.split(" - ") this.addObj.model && (selectTreeList[selectTreeList.length - 1] = this.addObj.model) selectStandardProductList({ model: this.addObj.model ? this.addObj.model : row.model, modelNum: row.modelNum, - standardMethodListId: val, + standardMethodListIds: val, factory: selectTreeList.join(" - "), partNo: this.addObj.partNo, ifsInventoryId: this.customsInspection.id }).then(res => { this.getProductLoad = false - res.data.forEach(a => { - a.state = 0 + // 鐩存帴灏嗘煡璇㈢粨鏋滆祴鍊肩粰 productList + // this.fullProductList = res.data + this.productList = res.data.forEach(m => { + m.state = 1 }) - this.productList = this.HaveJson(res.data) - this.productList0 = JSON.parse(JSON.stringify(this.productList)) + this.productList0 = res.data.forEach(m => { + m.state = 1 + }) this.$refs.sampleTable.setCurrentRow(row) setTimeout(() => { this.productList.forEach(a => { @@ -1575,25 +1603,6 @@ }, 200) }).catch(err => { console.log('err-', err) - }) - }, - // 閫夋嫨鏍峰搧鍨嬪彿鐨勫洖璋� - changeModel() { - this.sampleList.forEach(a => { - let obj = this.sampleIds.find(b => b == a.id) - if (obj) { - a.model = this.model - } - }) - }, - // 閫夋嫨妫�楠屾爣鍑嗙殑鍥炶皟 - changeStandardMethodListId() { - this.sampleList.forEach(a => { - let obj = this.sampleIds.find(b => b == a.id) - if (obj) { - a.standardMethodListId = this.standardMethodListId - this.methodChange(this.standardMethodListId, a) - } }) }, // 鎷兼帴鏍峰搧鏍戠殑瀛楃涓� @@ -1661,129 +1670,6 @@ } this.changeProductList0() this.currentMethod.insProduct = this.productList0 - }, - // 鍗曢�夐�夋嫨妫�楠岄」鐨勫洖璋� - selectOne(selection, row) { - this.bsm1DiaList = [] - row.state = row.state == 1 ? 0 : 1 - if (row.section === null) { - row.section = "" - } - if (row.sectionCopy === undefined && row.section) { - if (row.section.indexOf('[') > -1) { - this.$set(row, 'sectionCopy', row.section) - } - } - if (row.ask.includes('[')) { - this.$set(row, 'askCopy', row.ask) - } - if (row.tell.includes('[')) { - this.$set(row, 'tellCopy', row.tell) - } - let arr = this.productList.filter(m => m.state == 1 && row.sectionCopy && row.sectionCopy.includes(m.sectionCopy) && m.ask && m.sectionCopy.indexOf('[') == -1) - if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.sectionCopy !== undefined && row.state === 1 && arr.length == 0) { - if (row.sectionCopy.indexOf('[') > -1) { - row.bsmRow = this.HaveJson(row) - } - row.bsm1 = true - this.bsm1DiaList.push(row) - this.bsm1DiaAll = true - } else if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.state === 0 && arr.length == 0) { - row.bsm1 = false - } else if (arr.length > 0) { - try { - row.bsmRow = this.HaveJson(row) - let section = arr[0].section - let arr0 = JSON.parse(row.section) - let arr1 = JSON.parse(row.ask) - let arr4 = JSON.parse(row.tell) - let index = arr0.indexOf(section) - row.section = section - row.ask = arr1[index] - row.tell = arr4[index] - } catch (e) { } - } - this.sampleList.map(item => { - if (this.sampleIds.indexOf(item.id) > -1) { - item.insProduct.map(m => { - if (m.id == row.id) { - m.state = row.state; - } - return m; - }) - } - return item - }) - this.changeProductList0() - this.currentMethod.insProduct = this.productList0 - this.getProNum() - }, - handleAll(e) { - if (e.length > 0) { - this.productList.map(m => { - if (e.find(a => a.id == m.id)) { - m.state = 1 - } - return m - }) - } else { - this.productList.map(m => { - m.state = 0 - return m - }) - } - this.bsmRow3 = []; - this.bsm1DiaList = [] - this.productList.forEach(p => { - if (p.sectionCopy === undefined && p.section) { - if (p.section.indexOf('[') > -1) { - this.$set(p, 'sectionCopy', p.section) - } - } - if (p.ask.includes('[')) { - this.$set(p, 'askCopy', p.ask) - } - if (p.tell.includes('[')) { - this.$set(p, 'tellCopy', p.tell) - } - if (p.bsm === '1' && p.sectionCopy !== '' && p.sectionCopy !== null && p.sectionCopy !== undefined && p.state === 1) { - if (p.sectionCopy.indexOf('[') > -1) { - p.bsmRow = this.HaveJson(p) - } - p.bsm1 = true - this.bsm1DiaList.push(p) - this.bsm1DiaAll = true - } else if (p.bsm === '1' && p.sectionCopy !== '' && p.sectionCopy !== null && p.state === 0) { - p.bsm1 = false - } - }) - if (e.length > 0) { - this.sampleList.map(item => { - if (this.sampleIds.indexOf(item.id) > -1) { - item.insProduct.map(m => { - m.state = 1 - return m; - }) - } - return item - }) - } else { - this.sampleList.map(item => { - if (this.sampleIds.indexOf(item.id) > -1) { - item.insProduct.map(m => { - m.state = 0 - return m; - }) - } - return item - }) - } - this.changeProductList0() - this.currentMethod.insProduct = this.productList0 - this.getProNum() - this.$nextTick(() => { - this.$refs.productTable.doLayout() - }) }, changeProductList0() { this.productList0.forEach(a => { @@ -1856,7 +1742,7 @@ } ->>>.warning-row { +:deep(.warning-row) { color: #1890FF; } </style> -- Gitblit v1.9.3