From 5ba37c953aa14ac2f08931699378995af88c98a5 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期五, 14 二月 2025 17:38:50 +0800 Subject: [PATCH] 能力范围页面迁移 --- src/views/structural/capabilityAndLaboratory/capability/index.vue | 1089 +++++++++++++++++++++----------------------------------- 1 files changed, 413 insertions(+), 676 deletions(-) diff --git a/src/views/structural/capabilityAndLaboratory/capability/index.vue b/src/views/structural/capabilityAndLaboratory/capability/index.vue index 085b188..072d09b 100644 --- a/src/views/structural/capabilityAndLaboratory/capability/index.vue +++ b/src/views/structural/capabilityAndLaboratory/capability/index.vue @@ -3,631 +3,348 @@ <div> <el-row class="title"> <el-col :span="12" style="text-align: left"> - <el-radio-group v-model="radio" @input="selectorSwitch" size="medium" fill="#409EFF"> + <el-radio-group v-model="radio" size="medium" fill="#409EFF"> <el-radio-button :label="0">妫�楠岄」鐩弬鏁�</el-radio-button> <el-radio-button :label="1">妫�楠屽璞�</el-radio-button> </el-radio-group> </el-col> <el-col :span="12" style="text-align: right;"> -<!-- <el-button size="medium" @click="$refs.itemParameterTable.openUpload()" v-if="inPower">--> -<!-- <i class="el-icon-upload2" style="color: #3A7BFA;"></i>--> -<!-- <span style="color: #3A7BFA;">瀵煎叆</span></el-button>--> - <el-button size="medium" type="primary" v-if="radio == 1 && importExcel" @click="uploadDia = true">瀵煎叆</el-button> - <el-button size="medium" type="primary" @click="openAdd()" v-if="addPower">鏂板</el-button> - <!-- <el-button size="medium" icon="el-icon-delete">鍒犻櫎</el-button> --> + <el-upload v-if="radio === 0" ref='upload1' + 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'> + <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> + <el-button size="small" type="primary" @click="openAdd()">鏂板</el-button> </el-col> </el-row> </div> - <div v-if="radio==0" class="bodys"> - <div class="search"> - <div class="search_thing"> - <div class="search_label">妫�楠岄」锛�</div> - <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable - v-model="itemParameterForm.inspectionItem" @keyup.enter.native="refreshTable()"></el-input></div> - </div> - <div class="search_thing"> - <div class="search_label">妫�楠屽瓙椤癸細</div> - <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable - v-model="itemParameterForm.inspectionItemSubclass" @keyup.enter.native="refreshTable()"></el-input> - </div> - </div> - <div class="search_thing"> - <div class="search_label">妫�楠屽璞★細</div> - <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable - v-model="itemParameterForm.sample" @keyup.enter.native="refreshTable()"></el-input> - </div> - </div> - <div class="search_thing" style="padding-left: 30px;"> - <el-button size="small" @click="refresh()">閲� 缃�</el-button> - <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> - </div> + <div> + <el-form :model="itemParameterForm" ref="itemParameterForm" size="small" :inline="true"> + <el-form-item label="妫�楠岄」" prop="inspectionItem" v-if="radio===0"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="itemParameterForm.inspectionItem" @keyup.enter.native="refreshTable()"> + </el-input> + </el-form-item> + <el-form-item label="妫�楠屽瓙椤�" prop="inspectionItemSubclass" v-if="radio===0"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="itemParameterForm.inspectionItemSubclass" @keyup.enter.native="refreshTable()"> + </el-input> + </el-form-item> + <el-form-item label="妫�楠屽璞�" prop="sample"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="itemParameterForm.sample" @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-form-item> + </el-form> + <div class="table" v-if="radio===0"> + <lims-table :tableData="tableData" :column="column" + :page="page" :tableLoading="tableLoading"></lims-table> </div> - <div class="table"> -<!-- <ValueTable ref="itemParameterTable"--> -<!-- :url="$api.capacityScope.selectItemParameterList" v-if="PROJECT === '妫�娴嬩腑蹇�'"--> -<!-- :upUrl="$api.capacityScope.upItemParameter" :delUrl="$api.capacityScope.delItemParameter"--> -<!-- :inputUrl="$api.capacityScope.importData" :componentData="itemParameterData" :key="upIndex" />--> -<!-- <ValueTable ref="itemParameterTable" :url="$api.capacityScope.selectItemParameterList" v-if="PROJECT === '瑁呭鐢电紗'"--> -<!-- :upUrl="$api.capacityScope.upItemParameter" :delUrl="$api.capacityScope.delItemParameter"--> -<!-- :inputUrl="$api.capacityScope.importEquipData" :componentData="itemParameterData" :key="upIndex" />--> - </div> - </div> - <div class="bodys"> - <div class="search" v-if="radio==1"> - <div class="search_thing"> - <div class="search_label">妫�楠屽璞★細</div> - <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable - v-model="testObjectData.entity.specimenName" @keyup.enter.native="refreshTable()"></el-input></div> - </div> - <div class="search_thing" style="padding-left: 30px;"> - <el-button size="small" @click="refresh()">閲� 缃�</el-button> - <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> - </div> - </div> - <div class="table" v-if="radio==1"> -<!-- <ValueTable ref="testObjectTable" :url="$api.capacityScope.selectTestObjectList"--> -<!-- :upUrl="$api.capacityScope.upTestObject" :delUrl="$api.capacityScope.delTestObject"--> -<!-- :componentData="testObjectData" :key="upIndex" />--> + <div class="table" v-if="radio===1"> + <lims-table :tableData="testObjectTableData" :column="testObjectColumn" + :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;"> -<!-- <ValueTable ref="productData" :url="$api.capacityScope.selectProductListByObjectId"--> -<!-- :upUrl="$api.capacityScope.upProduct" :delUrl="$api.capacityScope.delProduct"--> -<!-- :componentData="productData" :key="upIndex"/>--> + <lims-table :tableData="productData" :column="productColumn" + :page="productPage" :tableLoading="productableLoading"></lims-table> </div> <span slot="footer" class="dialog-footer"> <el-button @click="diaProduct = false">鍙� 娑�</el-button> <el-button type="primary" @click="openAdd2" :loading="productLoad">鏂� 澧�</el-button> </span> </el-dialog> - <el-dialog title="鏁版嵁瀵煎叆" :visible.sync="uploadDia" width="500px"> -<!-- <div style="margin: 0 auto;">--> -<!-- <el-upload ref="upload" drag :action="javaApi + $api.capacityScope.importExcel" :headers="token" :file-list="fileList" name="file"--> -<!-- :auto-upload="false" accept=".xlsx" :limit="1" :on-change="beforeUpload" :on-success="onSuccess"--> -<!-- :on-error="onError">--> -<!-- <i class="el-icon-upload"></i>--> -<!-- <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>--> -<!-- </el-upload>--> -<!-- </div>--> + <el-dialog :visible.sync="uploadDia" title="鏁版嵁瀵煎叆" width="500px"> + <div style="margin: 0 auto;"> + <el-upload ref="upload" :action="uploadAction" + :auto-upload="false" :file-list="fileList" + :headers="token" :limit="1" + :on-change="beforeUpload" :on-error="onError" :on-success="onSuccess" accept=".xlsx" drag + name="file"> + <i class="el-icon-upload"></i> + <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> + </el-upload> + </div> <span slot="footer" class="dialog-footer"> <el-button @click="uploadDia = false">鍙� 娑�</el-button> - <el-button type="primary" @click="submitUpload()" :loading="uploading">涓� 浼�</el-button> + <el-button :loading="uploading" type="primary" @click="submitUpload()">涓� 浼�</el-button> </span> </el-dialog> - - <!-- 缂栬緫 鏂板 --> - <el-dialog - :title="title" - :visible.sync="dialogVisible" - width="50%" - :before-close="handleClose"> - <el-form :model="addOrupdateForm" label-width="120px" :rules="rules" inline ref="addOrupdateForm" size="mini"> - <el-form-item label="妫�楠岄」" prop="inspectionItem"> - <el-input v-model="addOrupdateForm.inspectionItem" placeholder="璇疯緭鍏ユ楠岄」" size="mini" style="width: 220px;"></el-input> - </el-form-item> - <el-form-item label="妫�楠岄」EN" > - <el-input v-model="addOrupdateForm.inspectionItemEn" placeholder="璇疯緭鍏ユ楠岄」EN" size="mini" style="width: 220px;"></el-input> - </el-form-item> - <el-form-item label="妫�楠岄」瀛愰」" > - <el-input v-model="addOrupdateForm.inspectionItemSubclass" placeholder="璇疯緭鍏ユ楠岄」瀛愰」" size="mini" style="width: 220px;"></el-input> - </el-form-item> - <el-form-item label="妫�楠屽瓙椤笶N" > - <el-input v-model="addOrupdateForm.inspectionItemSubclassEn" placeholder="璇疯緭鍏ユ楠屽瓙椤笶N" size="mini" style="width: 220px;"></el-input> - </el-form-item> - <el-form-item label="妫�楠屽璞�" > - <el-cascader - size="mini" style="width: 220px;" - filterable - v-model="addOrupdateForm.sample" - :options="tree" - :props="{value:'name',label: 'name', multiple: true, checkStrictly: true }" - clearable></el-cascader> - <!-- <el-input v-model="addOrupdateForm.sample" placeholder="璇疯緭鍏ユ楠屽璞�" size="mini" style="width: 220px;"></el-input> --> - </el-form-item> - <el-form-item label="鍗曚环(鍏�)" > - <el-input v-model="addOrupdateForm.price" placeholder="璇疯緭鍏ュ崟浠�" size="mini" style="width: 220px;"></el-input> - </el-form-item> - <el-form-item label="鍦烘墍" > - <el-select v-model="addOrupdateForm.laboratory" filterable size="small" style="width: 220px;"> - <el-option - v-for="item in laboratory" - :key="item.value" - :label="item.label" - :value="item.label"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="璇曢獙瀹�" prop="sonLaboratory"> - <el-select v-model="addOrupdateForm.sonLaboratory" filterable size="small" style="width: 220px;"> - <el-option - v-for="item in dicList.sonLaboratory" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="瑕佹眰鎻忚堪" > - <el-input v-model="addOrupdateForm.askTell" placeholder="璇疯緭鍏ヨ姹傛弿杩�" size="mini" style="width: 220px;"></el-input> - </el-form-item> - <el-form-item label="瑕佹眰鍊�" > - <el-input v-model="addOrupdateForm.ask" placeholder="璇疯緭鍏ヨ姹傚��" size="mini" style="width: 220px;"></el-input> - </el-form-item> - <el-form-item label="璁¢噺鍗曚綅" prop="unit"> - <el-select v-model="addOrupdateForm.unit" filterable size="small" style="width: 220px;"> - <el-option - v-for="item in dicList.unit" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="宸ユ椂(H)" > - <el-input v-model="addOrupdateForm.manHour" placeholder="璇疯緭鍏ュ伐鏃�" size="mini" style="width: 220px;"></el-input> - </el-form-item> - <el-form-item label="棰勮鏃堕棿(H)" prop="manDay"> - <el-input v-model="addOrupdateForm.manDay" placeholder="璇疯緭鍏ラ璁℃椂闂�" size="mini" style="width: 220px;"></el-input> - </el-form-item> - <el-form-item label="宸ユ椂鍒嗙粍" > - <el-input v-model="addOrupdateForm.manHourGroup" placeholder="璇疯緭鍏ュ伐鏃跺垎缁�" size="mini" style="width: 220px;"></el-input> - </el-form-item> - <el-form-item label="妫�楠岄」绫诲瀷" prop="inspectionItemType"> - <el-select v-model="addOrupdateForm.inspectionItemType" filterable size="small" style="width: 220px;"> - <el-option - v-for="item in dicList.inspectionItemType" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="妫�楠屽�肩被鍨�" prop="inspectionValueType"> - <el-select v-model="addOrupdateForm.inspectionValueType" filterable size="small" style="width: 220px;"> - <el-option - v-for="item in dicList.inspectionValueType" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="瀛楀吀绫诲瀷" > - <el-select v-model="addOrupdateForm.dic" clearable filterable size="small" style="width: 220px;"> - <el-option - v-for="item in dicList.dic" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="鐗规畩鏍囪瘑绗�"> - <el-select v-model="addOrupdateForm.bsm" filterable size="small" style="width: 220px;"> - <el-option - v-for="item in dicList.bsm" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="鍘熷璁板綍妯℃澘" prop="templateId"> - <el-select v-model="addOrupdateForm.templateId" filterable size="small" style="width: 220px;"> - <el-option - v-for="item in dicList.templateId" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="妫�楠岄」鍒嗙被" > - <el-input v-model="addOrupdateForm.inspectionItemClass" placeholder="璇疯緭鍏ユ楠岄」鍒嗙被" size="mini" style="width: 220px;"></el-input> - </el-form-item> - <el-form-item label="妫�楠岄」鍒嗙被EN" > - <el-input v-model="addOrupdateForm.inspectionItemClassEn" placeholder="璇疯緭鍏ユ楠岄」鍒嗙被EN" size="mini" style="width: 220px;"></el-input> - </el-form-item> - <el-form-item label="璇曢獙鏂规硶" prop="method"> - <el-select v-model="addOrupdateForm.method" filterable multiple size="small" style="width: 220px;"> - <el-option - v-for="(item,index) in dicList.method" - :key="index" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - </el-form> - <span slot="footer" class="dialog-footer"> - <el-button @click="handleClose">鍙� 娑�</el-button> - <el-button type="primary" @click="saveOrEnit">纭� 瀹�</el-button> - </span> - </el-dialog> - - - - - + <!--妫�楠岄」鐩弬鏁�-缂栬緫寮规--> + <EditForm ref="editForm"></EditForm> + <testObjectEditForm ref="testObjectEditForm"></testObjectEditForm> + <BindPartDialog v-if="bindPartDialog" :bindPartDialog="bindPartDialog" + :currentRow="currentRow" + :type="type" + @closeBindPartDialog="closeBindPartDialog"></BindPartDialog> + <BindSupplierDensityDialog v-if="bindSupplierDensityDialog" + :bindSupplierDensityDialog="bindSupplierDensityDialog" + :currentRow="currentSupplierDensityRow" + @closeBindPartDialog="closeBindSupplierDensityDialog"></BindSupplierDensityDialog> </div> </template> <script> -// import ValueTable from '../tool/value-table.vue' -import {addItemParameter, getItemTree, upItemParameter} from "@/api/structural/capability"; -import {obtainItemParameterList} from "@/api/structural/laboratoryScope"; -import {selectStandardMethods} from "@/api/structural/standardMethod"; +import BindPartDialog from "@/components/capability/bindPartDialog.vue" +import BindSupplierDensityDialog from "@/components/capability/bindSupplierDensityDialog.vue" +import { + delItemParameter, delProduct, delTestObject, selectItemParameterList, selectProductListByObjectId, + selectTestObjectList, +} 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 {getToken} from "@/utils/auth"; export default { + components: {limsTable, EditForm, testObjectEditForm, BindPartDialog, BindSupplierDensityDialog}, data() { return { - dicList: { - inspectionItemType: [], - inspectionValueType: [], - bsm: [], - sonLaboratory: [], - unit: [], - dic: [], - method: [], + uploadAction: process.env.VUE_APP_BASE_API + '/capacityScope/importExcel', + uploadAction1: process.env.VUE_APP_BASE_API + '/capacityScope/importEquipData', + tableData: [], + column: [ + {label: '妫�楠岄」', prop: 'inspectionItem'}, + {label: '妫�楠岄」EN', prop: 'inspectionItemEn'}, + {label: '妫�楠屽瓙椤�', prop: 'inspectionItemSubclass'}, + {label: '妫�楠屽瓙椤笶N', prop: 'inspectionItemSubclassEn'}, + {label: '妫�楠岄」鍒嗙被', prop: 'inspectionItemClass'}, + {label: '妫�楠岄」鍒嗙被EN', prop: 'inspectionItemClassEn'}, + {label: '妫�楠屽璞�', prop: 'sample'}, + {label: '鍗曚环(鍏�)', prop: 'price'}, + {label: '璇曢獙瀹�', prop: 'sonLaboratory'}, + {label: '瑕佹眰鎻忚堪', prop: 'askTell'}, + {label: '瑕佹眰鍊�', prop: 'ask'}, + {label: '璁¢噺鍗曚綅', prop: 'unit'}, + {label: '宸ユ椂(H)', prop: 'manHour'}, + {label: '棰勮鏃堕棿(H)', prop: 'manDay'}, + {label: '宸ユ椂鍒嗙粍', prop: 'manHourGroup'}, + {label: '鍒涘缓鏃堕棿', prop: 'createTime'}, + {label: '淇敼鏃堕棿', prop: 'updateTime'}, + {label: '鏉′欢', prop: 'radiusList'}, + { + dataType: 'action', + fixed: 'right', + label: '鎿嶄綔', + operation: [ + { + name: '缂栬緫', + type: 'text', + clickFun: (row) => { + this.editForm(row); + }, + }, + { + name: '鍒犻櫎', + type: 'text', + clickFun: (row) => { + this.delete(row); + }, + }, + ] + } + ], + page: { + total:0, + size:10, + current:0 }, + testObjectTableData: [], + testObjectColumn: [ + { + dataType: 'tag', + label: '鍦烘墍', + 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 '灏勯绾跨紗瀹為獙瀹�' + } + }, + formatType: (params) => { + if (params == 1) { + return 'success' + } else if (params == 5) { + return 'info' + } else if (params == 6) { + return 'warning' + } else if (params == 8) { + return 'danger' + } else { + return '' + } + } + }, + {label: '妫�楠屽璞�', prop: 'specimenName'}, + {label: '妫�楠屽璞N', prop: 'specimenNameEn'}, + {label: '浜у搧', prop: 'product'}, + {label: '瀵硅薄浠e彿', prop: 'code'}, + {label: '瀵硅薄绫诲瀷', prop: 'objectType', + dataType: 'tag', + formatData: (params) => { + if (params == 1) { + return '鍘熸潗鏂�' + } else if (params == 2) { + return '鎴愬搧' + } else { + return '杈呮潗' + } + }, + formatType: (params) => { + if (params == 1) { + return 'success' + } else if (params == 2) { + return 'info' + } else { + return 'warning' + } + }}, + {label: '鍒涘缓浜�', prop: 'createUserName'}, + {label: '鏇存柊浜�', prop: 'updateUserName'}, + {label: '鍒涘缓鏃堕棿', prop: 'createTime'}, + {label: '鏇存柊鏃堕棿', prop: 'updateTime'}, + { + dataType: 'action', + fixed: 'right', + label: '鎿嶄綔', + operation: [ + { + name: '缂栬緫', + type: 'text', + clickFun: (row) => { + this.editTestObjectForm(row); + }, + }, + { + name: '鍒犻櫎', + type: 'text', + clickFun: (row) => { + this.deleteTest(row); + }, + }, + { + name: '浜у搧缁存姢', + type: 'text', + clickFun: (row) => { + this.upProduct(row); + }, + }, + { + name: '闆朵欢缁戝畾', + type: 'text', + clickFun: (row) => { + this.bindPartFirst(row); + }, + }, + ] + } + ], + testObjectPage: { + total:0, + size:10, + current:0 + }, + tableLoading: false, addOrUpdate: '', - addOrupdateForm:{ - inspectionItem: '', - inspectionItemEn: '', - inspectionItemSubclass: '', - inspectionItemSubclassEn: '', - sample: null, - price: '', - laboratory: '', - sonLaboratory: '', - askTell: '', - ask: '', - unit: '', - manHour: '', - manDay: '', - manHourGroup: '', - inspectionItemType: '', - inspectionValueType: '', - dic: '', - bsm: '', - templateId: '', - inspectionItemClass: '', - inspectionItemClassEn: '', - method: [] - }, tree: null, - rules:{ - inspectionItem: [ - { required: true, message: '璇疯緭鍏ユ楠岄」', trigger: 'blur' } - ], - sonLaboratory: [ - { required: true, message: '璇疯緭鍏ヨ瘯楠屽', trigger: 'change' } - ], - unit: [ - { required: true, message: '璇疯緭鍏ヨ閲忓崟浣�', trigger: 'change' } - ], - manDay: [ - { required: true, message: '璇疯緭鍏ラ璁℃椂闂�', trigger: 'blur' } - ], - inspectionItemType: [ - { required: true, message: '璇疯緭鍏ユ楠岄」绫诲瀷', trigger: 'change' } - ], - inspectionValueType: [ - { required: true, message: '璇疯緭鍏ユ楠屽�肩被鍨�', trigger: 'change' } - ], - method: [ - { required: true, message: '璇烽�夋嫨璇曢獙鏂规硶', trigger: 'change' } - ], - templateId: [ - { required: true, message: '璇疯緭鍏ュ師濮嬭褰曟ā鏉�', trigger: 'change' } - ], - }, - dialogVisible: false, loading: true, itemParameterForm: { inspectionItem: null, inspectionItemSubclass: null, sample: null }, - logining:false, radio: 0, - showItemParameter: true, - showTestObject: false, - itemParameterData: { - entity: { - inspectionItem: null, - inspectionItemSubclass: null, - sample: null, - orderBy: { - field: 'id', - order: 'asc' - } - }, - isIndex: true, - showSelect: false, - select: true, - row: 2, - do: [{ - id: 'update', - font: '缂栬緫', - type: 'text', - method: 'openAdd', - field: [] - }, { - id: 'delete', - font: '鍒犻櫎', - type: 'text', - method: 'doDiy' - }], - tagField: { - }, - selectField: { - inspectionItemType: { - select: [] - }, - bsm: { - select: [] - }, - inspectionValueType: { - select: [] - }, - laboratory: { - select: [] - }, - templateId: { - select: [] - }, - method: { - select: [], - choose: true - }, - sonLaboratory: { - select: [] - }, - unit: { - select: [] - }, - dic: { - select: [] - }, - }, - cascaderField:{ - sample:{ - tree:[] - }, - // 瀛楁閰嶇疆 - props:{ - value:'name', - label:'name', - checkStrictly: true, - multiple: true - } - }, - requiredAdd: ['sonLaboratory', 'inspectionItem', 'inspectionItemType', 'inspectionValueType', - 'unit', 'method', 'manDay', 'templateId' - ], - requiredUp: ['sonLaboratory', 'inspectionItem', 'inspectionItemType', 'inspectionValueType', - 'unit', 'method', 'manDay', 'templateId' - ], - accept: '.xlsx', - inputType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - needSort: ['createTime', 'updateTime', 'inspectionItem', 'inspectionItemSubclass', 'sample'], - }, - testObjectData: { - entity: { - specimenName: null, - orderBy: { - field: 'id', - order: 'asc' - } - }, - isIndex: true, - showSelect: false, - select: true, - do: [{ - id: 'update', - font: '缂栬緫', - type: 'text', - method: 'doDiy', - field: ['createUserName', 'updateUserName', 'product'] - }, { - id: 'delete', - font: '鍒犻櫎', - type: 'text', - method: 'doDiy' - }, { - font: '浜у搧缁存姢', - type: 'text', - method: 'upProduct' - }], - tagField: { - laboratoryId: { - select: [] - } - }, - selectField: { - laboratoryId: { - select: [] - } - }, - requiredAdd: ['specimenName', 'code', 'laboratoryId'], - requiredUp: ['specimenName', 'code', 'laboratoryId'], - needSort: ['createTime', 'updateTime', 'specimenName'], - }, - itemParameterEntityCopy: {}, - testObjectDataEntityCopy: {}, - upIndex: 0, - addDia: false, - addPower: true, - select: 0, - laboratory: [], productLoad: false, diaProduct: false, - productData: { - entity: { - objectId: 0, - orderBy: { - field: 'id', - order: 'asc' - } - }, - isPage: false, - isIndex: true, - showSelect: false, - select: true, - do: [{ - id: 'update', - font: '缂栬緫', - type: 'text', - method: 'doDiy', - field: [] - }, { - id: 'delete', - font: '鍒犻櫎', - type: 'text', - method: 'doDiy' - }], - tagField: {}, - selectField: {}, - requiredAdd: ['name','nameEn'], - requiredUp: ['name','nameEn'], + productColumn: [ + {label: '浜у搧鍚嶇О', prop: 'name'}, + {label: '浜у搧鍚嶇ОEN', prop: 'nameEn'}, + { + dataType: 'action', + fixed: 'right', + label: '鎿嶄綔', + operation: [ + { + name: '缂栬緫', + type: 'text', + clickFun: (row) => { + this.editProduct(row); + }, + }, + { + name: '鍒犻櫎', + type: 'text', + clickFun: (row) => { + this.deleteProduct(row); + }, + }, + { + name: '闆朵欢缁戝畾', + type: 'text', + clickFun: (row) => { + this.bindPartSecond(row); + }, + }, + { + name: '鍘傚瀵嗗害缁戝畾', + type: 'text', + clickFun: (row) => { + this.bindSupplierDensitySecond(row); + }, + }, + ] + } + ], + productData: [], + productPage: { + total:0, + size:10, + current:0 }, + productableLoading: false, inPower: true, - importExcel: false, uploadDia: false, fileList: [], - token: null, + token: {Authorization: "Bearer " + getToken()}, uploading: false, + currentRow: {}, // 閫夋嫨闆朵欢缁戝畾鏈潯鏁版嵁鐨勪俊鎭� + currentSupplierDensityRow: {}, // 閫夋嫨闆朵欢缁戝畾鏈潯鏁版嵁鐨勪俊鎭� + bindSupplierDensityDialog: false, + bindPartDialog: false, + type: null, // 闆朵欢缁戝畾鐨勭被鍨�--0锛氭楠屽璞★紝1锛氫骇鍝佺淮鎶� } }, created() { - if (this.PROJECT === '瑁呭鐢电紗') { - this.itemParameterData.requiredUp = ['sonLaboratory', 'inspectionItem', 'inspectionItemType', 'inspectionValueType', - 'unit', 'manDay', 'templateId' - ] - } + this.refreshTable() }, mounted() { this.token = { 'token': sessionStorage.getItem('token') } - this.itemParameterEntityCopy = this.HaveJson(this.itemParameterData.entity) - this.testObjectDataEntityCopy = this.HaveJson(this.testObjectData.entity) - this.obtainItemParameterList() //鍦烘墍 - this.selectStandardMethods() // 璇曢獙鏂规硶 - this.selectTestObjectByName() - this.getStandardTemplate() // 鍘熷璁板綍妯℃澘 - this.selectDocUnit() - - this.selectAllNeedEnum() + this.refreshTable() }, computed: { title() { - return this.addOrUpdate == 1 ? '鏂板' : '缂栬緫' + return this.addOrUpdate === 1 ? '鏂板' : '缂栬緫' } }, methods: { - //鏌ヨ闇�瑕佺殑鍏ㄩ儴鏋氫妇 - selectAllNeedEnum(){ - // this.$axios.post(this.$api.enums.selectEnumListByCategory, - // {categoryList:['妫�楠岄」绫诲瀷','鍙栧�肩被鍨�','鏄惁','妫�楠屽�肩被鍨�','瀛愬疄楠屽','鍗曚綅']},{ - // headers: { - // 'Content-Type': 'application/json' - // } - // }).then(res => { - // res.data['妫�楠岄」绫诲瀷'].forEach(ele => { - // if(ele.label.indexOf('闈為噰闆�')==0)ele.type='info' - // }); - // this.dicList.sonLaboratory = res.data['瀛愬疄楠屽'] - // this.dicList.unit = res.data['鍗曚綅'] - // this.dicList.inspectionItemType = res.data['妫�楠岄」绫诲瀷'] - // this.dicList.inspectionValueType = res.data['妫�楠屽�肩被鍨�'] - // this.dicList.bsm = res.data['鏄惁'] - // }) - }, - saveOrEnit() { - console.log('this.addOrupdateForm', this.addOrupdateForm.sample); - let flag = true - this.$refs['addOrupdateForm'].validate((valid) => { - if (valid) { - flag = false - return false - } - }); - if(flag) return - if(this.addOrupdateForm.sample != null && this.addOrupdateForm.sample != '' && this.addOrupdateForm.sample != undefined ) { - if(this.addOrupdateForm.sample.length > 0) { - this.addOrupdateForm.sample = JSON.stringify(this.addOrupdateForm.sample) - }else{ - this.addOrupdateForm.sample = '[]' - } - }else{ - this.addOrupdateForm.sample = '[]' - } - - // 1鏄柊澧� - if(this.addOrUpdate == 1) { - this.addOrupdateForm.method = JSON.stringify(this.addOrupdateForm.method) - addItemParameter(this.addOrupdateForm).then(res => { - if(res.code == 200) { - this.$message.success('鏂板鎴愬姛') - this.refreshTable() - this.handleClose() - this.dialogVisible = false - } else { - // 鎶ラ敊 灏嗚浆鎹㈢殑method 浠ュ強 sample 杞崲鍥炴潵 - this.addOrupdateForm.method = JSON.parse(this.addOrupdateForm.method) - this.addOrupdateForm.sample = JSON.parse(this.addOrupdateForm.sample) - this.$message.error(res.message) - } - }) - }else{ - this.addOrupdateForm.method = JSON.stringify(this.addOrupdateForm.method) - upItemParameter(this.addOrupdateForm).then(res => { - if(res.code == 200) { - this.$message.success('缂栬緫鎴愬姛') - this.refreshTable() - this.handleClose() - this.dialogVisible = false - } else { - // 鎶ラ敊 灏嗚浆鎹㈢殑method 浠ュ強 sample 杞崲鍥炴潵 - this.addOrupdateForm.method = JSON.parse(this.addOrupdateForm.method) - this.addOrupdateForm.sample = JSON.parse(this.addOrupdateForm.sample) - this.$message.error(res.message) - } - }) - } - }, - handleClose() { - this.dialogVisible = false - this.addOrupdateForm = { - inspectionItem: '', - inspectionItemEn: '', - inspectionItemSubclass: '', - inspectionItemSubclassEn: '', - sample: null, - price: '', - laboratory: '', - sonLaboratory: '', - askTell: '', - ask: '', - unit: '', - manHour: '', - manDay: '', - manHourGroup: '', - inspectionItemType: '', - inspectionValueType: '', - dic: '', - bsm: '', - templateId: '', - inspectionItemClass: '', - inspectionItemClassEn: '', - method: null - } - this.$refs['addOrupdateForm'].resetFields(); - this.addOrUpdate = '' - }, submitUpload() { if (this.$refs.upload.uploadFiles.length == 0) { this.$message.error('鏈�夋嫨鏂囦欢') @@ -645,7 +362,6 @@ return } this.$message.success('涓婁紶鎴愬姛') - this.standardList = [] this.productList = [] this.refreshTable() }, @@ -655,142 +371,163 @@ this.uploading = false }, beforeUpload(file, fileList) { - if (file.raw.type != 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') { - this.$message.error('涓婁紶鏂囦欢鏍煎紡涓嶆纭�'); + if (file.size > 1024 * 1024 * 10) { + this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M'); this.$refs.upload.clearFiles() return false; + } else { + return true; } }, - selectorSwitch(radio) { - if (this.radio === '0') { - this.showItemParameter = true; - this.showTestObject = false; - this.selectTestObjectByName() - /* this.$nextTick(() => { - this.$refs.itemParameterTable.selectList() - }) */ + onError1(err, file, fileList) { + this.$message.error('涓婁紶澶辫触') + this.$refs.upload1.clearFiles() + this.uploading = false + }, + beforeUpload1(file, fileList) { + if (file.size > 1024 * 1024 * 10) { + this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M'); + this.$refs.upload1.clearFiles() + return false; } else { - this.showTestObject = true; - this.showItemParameter = false; + return true; } + }, + handleSuccessUp (response, file, fileList) { + this.$refs.upload.clearFiles() + if (response.code == 201) { + this.$message.error(response.message) + return + } + this.$message.success('涓婁紶鎴愬姛') + this.refreshTable() }, refreshTable() { - this.itemParameterData.entity.inspectionItem = this.itemParameterForm.inspectionItem - this.itemParameterData.entity.inspectionItemSubclass = this.itemParameterForm.inspectionItemSubclass - this.itemParameterData.entity.sample = this.itemParameterForm.sample - if (this.radio === '0') { - // this.$refs['itemParameterTable'].selectList() + this.tableLoading = true + if (this.radio === 0) { + selectItemParameterList({...this.page, ...this.itemParameterForm}).then(res => { + this.tableLoading = false + if (res.code === 200) { + this.tableData = res.data + this.page.total = res.total + } + }).catch(err => { + this.tableLoading = false + }) } else { - // this.$refs['testObjectTable'].selectList() + selectTestObjectList({...this.testObjectPage, ...this.itemParameterForm}).then(res => { + this.tableLoading = false + if (res.code === 200) { + this.testObjectTableData = res.data + this.testObjectPage.total = res.total + } + }).catch(err => { + this.tableLoading = false + }) } }, refresh() { - this.itemParameterData.entity = this.HaveJson(this.itemParameterEntityCopy) - this.testObjectData.entity = this.HaveJson(this.testObjectDataEntityCopy) - this.upIndex++ + this.resetForm('itemParameterForm') + this.refreshTable() }, - openAdd(row) { - //0浠h〃妫�楠屽弬鏁皌ab - if (this.radio === '0') { - // this.$refs.itemParameterTable.openAddDia(this.$api.capacityScope.addItemParameter); - if(!row) { - this.addOrUpdate = 1 - }else{ - if(typeof row.sample == 'string') { - row.sample = JSON.parse(row.sample) - } - this.addOrUpdate = '' - this.addOrupdateForm = JSON.parse(JSON.stringify(row)) - } - this.dialogVisible = true + // 妫�楠岄」鐩弬鏁版柊澧� + openAdd() { + if (this.radio === 0) { + this.$refs.editForm.openDia('add') } else { - // this.$refs.testObjectTable.openAddDia(this.$api.capacityScope.addTestObject); + this.$refs.testObjectEditForm.openDia('add') } }, - selectDocUnit() { - // this.$axios.post(this.$api.enums.getDic).then(res => { - // this.dicList.dic = res.data.map(m => { - // return { - // label: m, - // value: m - // } - // }) - // }) + // 妫�楠岄」鐩弬鏁�-鎵撳紑淇敼寮规 + editForm (row) { + this.$refs.editForm.openDia('edit', row) }, - obtainItemParameterList() { - obtainItemParameterList().then(res => { - let data = [] - let data0 = [] - res.data.forEach(a => { - data.push({ - label: a.laboratoryName, - value: a.id - }) - data0.push({ - label: a.laboratoryName, - value: a.laboratoryName - }) - }) - // this.itemParameterData.selectField.laboratory.select = data0 - // this.itemParameterData.tagField.laboratory.select = data0 - this.testObjectData.selectField.laboratoryId.select = data - this.testObjectData.tagField.laboratoryId.select = data - this.laboratory = data - }) + // 妫�楠岄」鐩弬鏁�-鍒犻櫎 + delete (row) { + this.$modal.confirm('鏄惁纭鍒犻櫎姝ゆ暟鎹」锛�').then(function() { + return delItemParameter(row.id); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); }, - selectStandardMethods() { - selectStandardMethods().then(res => { - let data = [] - res.data.forEach(a => { - data.push({ - label: a.code, - value: a.code - }) - }) - this.dicList.method = data - }) + // 妫�楠屽璞�-鎵撳紑淇敼寮规 + editTestObjectForm (row) { + this.$refs.testObjectEditForm.openDia('edit', row) }, - selectTestObjectByName() { - getItemTree().then(res => { - res.data.forEach(a=>{ - this.cascaderFieldData(a) - }) - this.itemParameterData.cascaderField.sample.tree = res.data - this.tree = res.data - }) + // 妫�楠岄」鐩弬鏁�-鍒犻櫎 + deleteTest (row) { + this.$modal.confirm('鏄惁纭鍒犻櫎姝ゆ暟鎹」锛�').then(function() { + return delTestObject(row.id); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); }, - cascaderFieldData(val){ - if(val.children === undefined) { - return - }else if(val.children.length==0){[ - delete val.children - ]}else{ - val.children.forEach(a=>{ - this.cascaderFieldData(a) - }) - } - }, - getStandardTemplate() { - // this.$axios.get(this.$api.StandardTemplate.getStandardTemplate).then(res => { - // let data = [] - // res.data.forEach(a => { - // data.push({ - // label: a.name, - // value: a.id, - // type: 'success' - // }) - // }) - // // this.itemParameterData.selectField.templateId.select = data - // // this.itemParameterData.tagField.templateId.select = data - // this.dicList.templateId = data - // }) - }, + // 浜у搧缁存姢 upProduct(row) { - this.productData.entity.objectId = row.id this.diaProduct = true + this.getProductList(row) }, + getProductList (row) { + const params = { + objectId: 0, + partNo: row.partNo + } + this.productableLoading = true + selectProductListByObjectId({...params, ...this.productPage}).then(res => { + this.productableLoading = false + if (res.code === 200) return + this.productData = res.data + this.productPage.total = res.data.total + }).catch(err => { + this.productableLoading = false + }) + }, + // 浜у搧缁存姢-鏂板 openAdd2(){ - // this.$refs.productData.openAddDia(this.$api.capacityScope.addProduct, {objectId: this.productData.entity.objectId}); + + }, + // 浜у搧缁存姢-缂栬緫 + editProduct () { + + }, + // 浜у搧缁存姢-鍒犻櫎 + deleteProduct (row) { + this.$modal.confirm('鏄惁纭鍒犻櫎姝ゆ暟鎹」锛�').then(function() { + return delProduct(row.id); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + // 闆朵欢缁戝畾 + bindPartFirst (row) { + this.bindPart(row, 0) + }, + bindPartSecond (row) { + this.bindPart(row, 1) + }, + // 鍘傚瀵嗗害缁戝畾 + bindSupplierDensitySecond (row) { + this.bindSupplierDensity(row) + }, + // 鎵撳紑鍘傚瀵嗗害缁戝畾寮规 + bindSupplierDensity (row) { + this.currentSupplierDensityRow = row + this.bindSupplierDensityDialog = true + }, + // 鎵撳紑闆朵欢缁戝畾寮规 + bindPart (row, index) { + this.type = index + this.currentRow = row + this.bindPartDialog = true + }, + closeBindPartDialog () { + this.bindPartDialog = false + }, + closeBindSupplierDensityDialog () { + this.bindSupplierDensityDialog = false }, } } -- Gitblit v1.9.3