From e5454b769d44a34af423bf87ac8a740bf8c20341 Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期二, 29 四月 2025 13:25:29 +0800 Subject: [PATCH] Merge branch 'dev' into dev_tides --- src/views/structural/capabilityAndLaboratory/capability/index.vue | 147 +++++++++++++++++++++++++++++++++--------------- 1 files changed, 100 insertions(+), 47 deletions(-) diff --git a/src/views/structural/capabilityAndLaboratory/capability/index.vue b/src/views/structural/capabilityAndLaboratory/capability/index.vue index 3d3c034..19f9318 100644 --- a/src/views/structural/capabilityAndLaboratory/capability/index.vue +++ b/src/views/structural/capabilityAndLaboratory/capability/index.vue @@ -13,7 +13,7 @@ style="display: inline;margin-right: 8px" :action="uploadAction1" :before-upload="beforeUpload1" :headers="token" :on-error="onError1" - :on-success="handleSuccessUp" :show-file-list="false" accept='.doc,.docx,.xls,.xlsx'> + :on-success="handleSuccessUp1" :show-file-list="false" accept='.doc,.docx,.xls,.xlsx'> <el-button size="small" type="primary">瀵煎叆</el-button> </el-upload> <el-button size="small" type="primary" v-if="radio === 1" @click="uploadDia = true">瀵煎叆</el-button> @@ -33,33 +33,44 @@ v-model="itemParameterForm.inspectionItemSubclass" @keyup.enter.native="refreshTable()"> </el-input> </el-form-item> - <el-form-item label="妫�楠屽璞�" prop="sample"> + <el-form-item label="妫�楠屽璞�" prop="sample" v-if="radio===0"> <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="itemParameterForm.sample" @keyup.enter.native="refreshTable()"> </el-input> </el-form-item> + <el-form-item label="妫�楠屽璞�" prop="specimenName" v-if="radio===1"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="itemParameterForm.specimenName" @keyup.enter.native="refreshTable()"> + </el-input> + </el-form-item> + <el-form-item label="闆朵欢鍙�" prop="partNo" v-if="radio===1"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="itemParameterForm.partNo" @keyup.enter.native="refreshTable()"> + </el-input> + </el-form-item> <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">鏌� 璇�</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="refresh">閲� 缃�</el-button> + <el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button> + <el-button size="mini" @click="refresh">閲嶇疆</el-button> </el-form-item> </el-form> <!-- 妫�楠岄」鐩弬鏁拌〃鏍�--> <div class="table" v-if="radio===0"> - <lims-table :tableData="tableData" :column="column" + <lims-table :tableData="tableData" :column="column" key="tableData" + @pagination="pagination" :height="'calc(100vh - 290px)'" :page="page" :tableLoading="tableLoading"></lims-table> </div> <!-- 妫�楠屽璞¤〃鏍�--> <div class="table" v-if="radio===1"> - <lims-table :tableData="testObjectTableData" :column="testObjectColumn" + <lims-table :tableData="testObjectTableData" :column="testObjectColumn" key="testObjectTableData" + @pagination="pagination" :height="'calc(100vh - 290px)'" :page="testObjectPage" :tableLoading="tableLoading"></lims-table> </div> </div> <!--浜у搧缁存姢寮规--> - <el-dialog title="浜у搧缁存姢" :visible.sync="diaProduct" width="600px"> - <div class="body" v-if="diaProduct" style="height: 350px;overflow-y: auto;padding: 5px 0;"> - <lims-table :tableData="productData" :column="productColumn" - :page="productPage" :tableLoading="productableLoading"></lims-table> - </div> + <el-dialog title="浜у搧缁存姢" :visible.sync="diaProduct" width="900px"> + <lims-table :tableData="productData" :column="productColumn" height="460" + @pagination="productPagination" + :page="productPage" :tableLoading="productableLoading"></lims-table> <span slot="footer" class="dialog-footer"> <el-button @click="diaProduct = false">鍙� 娑�</el-button> <el-button type="primary" @click="editProduct('add')" :loading="productLoad">鏂� 澧�</el-button> @@ -112,25 +123,28 @@ </template> <script> -import BindPartDialog from "@/components/capability/bindPartDialog.vue" -import BindSupplierDensityDialog from "@/components/capability/bindSupplierDensityDialog.vue" +import BindPartDialog from "@/views/structural/capabilityAndLaboratory/capabilityComponents/bindPartDialog.vue" +import BindSupplierDensityDialog from "@/views/structural/capabilityAndLaboratory/capabilityComponents/bindSupplierDensityDialog.vue" import { addProduct, delItemParameter, delProduct, delTestObject, selectItemParameterList, selectProductListByObjectId, selectTestObjectList, upProduct, } from "@/api/structural/capability"; import limsTable from "@/components/Table/lims-table.vue"; -import EditForm from "@/components/capability/EditForm.vue"; -import testObjectEditForm from "@/components/capability/testObjectEditForm.vue"; +import EditForm from "@/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue"; +import testObjectEditForm from "@/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue"; import {getToken} from "@/utils/auth"; +import { obtainItemParameterList } from '@/api/structural/laboratoryScope' export default { + name: 'Capability', components: {limsTable, EditForm, testObjectEditForm, BindPartDialog, BindSupplierDensityDialog}, data() { return { uploadAction: process.env.VUE_APP_BASE_API + '/capacityScope/importExcel', uploadAction1: process.env.VUE_APP_BASE_API + '/capacityScope/importEquipData', tableData: [], + tableLoading: false, column: [ {label: '妫�楠岄」', prop: 'inspectionItem'}, {label: '妫�楠岄」EN', prop: 'inspectionItemEn'}, @@ -176,7 +190,7 @@ page: { total:0, size:10, - current:0 + current:1 }, testObjectTableData: [], testObjectColumn: [ @@ -186,17 +200,23 @@ prop: 'laboratoryId', minWidth: '130', formatData: (params) => { - if (params == 1) { - return '瑁呭鐢电紗璇曢獙瀹�' - } else if (params == 5) { - return '閫氫俊浜у搧瀹為獙瀹�' - } else if (params == 6) { - return '鐢靛姏浜у搧瀹為獙瀹�' - } else if (params == 8) { - return '鍌ㄨ兘浜у搧瀹為獙瀹�' - } else { - return '灏勯绾跨紗瀹為獙瀹�' + let index = this.laboratoryList.findIndex(item => item.value == params) + if(index > -1) { + return this.laboratoryList[index].label + }else { + return null } + // if (params == 1) { + // return '瑁呭鐢电紗璇曢獙瀹�' + // } else if (params == 5) { + // return '閫氫俊浜у搧瀹為獙瀹�' + // } else if (params == 6) { + // return '鐢靛姏浜у搧瀹為獙瀹�' + // } else if (params == 8) { + // return '鍌ㄨ兘浜у搧瀹為獙瀹�' + // } else { + // return '灏勯绾跨紗瀹為獙瀹�' + // } }, formatType: (params) => { if (params == 1) { @@ -208,7 +228,7 @@ } else if (params == 8) { return 'danger' } else { - return '' + return null } } }, @@ -282,14 +302,15 @@ size:10, current:0 }, - tableLoading: false, addOrUpdate: '', tree: null, loading: true, itemParameterForm: { inspectionItem: null, inspectionItemSubclass: null, - sample: null + sample: null, + specimenName: null, + partNo: null }, radio: 0, productLoad: false, @@ -299,13 +320,11 @@ {label: '浜у搧鍚嶇ОEN', prop: 'nameEn'}, { dataType: 'action', - fixed: 'right', label: '鎿嶄綔', operation: [ { name: '缂栬緫', type: 'text', - icon: 'el-icon-edit', clickFun: (row) => { this.editProduct('edit', row); }, @@ -313,7 +332,6 @@ { name: '鍒犻櫎', type: 'text', - icon: 'el-icon-delete', clickFun: (row) => { this.deleteProduct(row); }, @@ -339,7 +357,9 @@ productPage: { total:0, size:10, - current:0 + current:1, + partNo: null, + layout: 'total, prev, pager, next' }, productableLoading: false, productEditDia: false, @@ -363,10 +383,12 @@ currentSupplierDensityRow: {}, // 閫夋嫨闆朵欢缁戝畾鏈潯鏁版嵁鐨勪俊鎭� bindSupplierDensityDialog: false, bindPartDialog: false, - type: null, // 闆朵欢缁戝畾鐨勭被鍨�--0锛氭楠屽璞★紝1锛氫骇鍝佺淮鎶� + type: null, // 闆朵欢缁戝畾鐨勭被鍨�--0锛氭楠屽璞★紝1锛氫骇鍝佺淮鎶�, + laboratoryList:[] } }, created() { + this.getItemParameterList() this.refreshTable() }, computed: { @@ -387,8 +409,8 @@ this.$refs.upload.clearFiles() this.uploadDia = false this.uploading = false - if (response.code === 201) { - this.$message.error(response.message) + if (response.code !== 200) { + this.$message.error(response.msg) return } this.$message.success('涓婁紶鎴愬姛') @@ -423,10 +445,10 @@ return true; } }, - handleSuccessUp (response, file, fileList) { - this.$refs.upload.clearFiles() - if (response.code === 201) { - this.$message.error(response.message) + handleSuccessUp1 (response, file, fileList) { + this.$refs.upload1.clearFiles() + if (response.code !== 200) { + this.$message.error(response.msg) return } this.$message.success('涓婁紶鎴愬姛') @@ -464,6 +486,11 @@ }, refresh() { this.resetForm('itemParameterForm') + this.page.current = 1 + this.refreshTable() + }, + pagination (page) { + this.page.size = page.limit this.refreshTable() }, // 妫�楠岄」鐩弬鏁版柊澧� @@ -526,58 +553,72 @@ upProduct(row) { this.diaProduct = true this.objectId = row.id + this.productPage.current = 1 + this.productPage.partNo = this.itemParameterForm.partNo this.getProductList(row) }, + // 鏌ヨ浜у搧缁存姢鍒楄〃鏁版嵁 getProductList () { const params = { - id: this.objectId, + objectId: this.objectId, } this.productableLoading = true selectProductListByObjectId({...params, ...this.productPage}).then(res => { this.productableLoading = false - if (res.code === 200) return this.productData = res.data.records this.productPage.total = res.data.total }).catch(err => { this.productableLoading = false }) }, + // 浜у搧缁存姢鍒楄〃鍒嗛〉 + productPagination(page) { + this.productPage.current = page.page + this.getProductList() + }, // 浜у搧缁存姢-鏂板-缂栬緫 editProduct (type, row) { this.productEditDia = true this.operationType = type if (type === 'edit') { - this.productEditForm = row + this.productEditForm = this.HaveJson(row) } }, // 鎻愪氦浜у搧缁存姢淇敼 submitProduct () { this.$refs['productEditForm'].validate((valid) => { if (valid) { + this.uploading = true this.productEditForm.objectId = this.objectId if (this.operationType === 'add') { addProduct(this.productEditForm).then(res => { + this.uploading = false if (res.code === 200) { this.$message.success('鏂板鎴愬姛') - this.productEditDia = false + this.closeProduct() this.getProductList(); } + }).catch(err => { + this.uploading = false }) } else { upProduct(this.productEditForm).then(res => { + this.uploading = false if (res.code === 200) { this.$message.success('鏂板鎴愬姛') - this.productEditDia = false + this.closeProduct() this.getProductList(); } + }).catch(err => { + this.uploading = false }) } } }) }, closeProduct() { - this.productEditDia = false this.resetForm('productEditForm') + this.productEditDia = false }, // 浜у搧缁存姢-鍒犻櫎 deleteProduct (row) { @@ -589,7 +630,7 @@ delProduct({id:row.id}).then(res => { if (res.code === 200) { this.$message.success('鍒犻櫎鎴愬姛') - this.refreshTable(); + this.getProductList(); } }) }).catch(() => { @@ -627,6 +668,18 @@ closeBindSupplierDensityDialog () { this.bindSupplierDensityDialog = false }, + getItemParameterList(){ + obtainItemParameterList().then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.laboratoryName, + value: a.id + }) + }) + this.laboratoryList = data + }) + } } } </script> -- Gitblit v1.9.3