From 9ae3620b9e59482b26b6cf4cd8f32a0ebf594b9a Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期五, 14 二月 2025 11:33:28 +0800 Subject: [PATCH] 能力范围页面迁移 --- /dev/null | 13 src/api/structural/standardMethod.js | 9 src/api/structural/laboratoryScope.js | 9 src/views/structural/capabilityAndLaboratory/laboratory/index.vue | 0 src/views/structural/capabilityAndLaboratory/capability/index.vue | 805 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/structural/capability.js | 41 ++ 6 files changed, 864 insertions(+), 13 deletions(-) diff --git a/src/api/structural/capability.js b/src/api/structural/capability.js new file mode 100644 index 0000000..f094d4c --- /dev/null +++ b/src/api/structural/capability.js @@ -0,0 +1,41 @@ +import request from '@/utils/request' + +// 鑾峰彇妫�楠岄」鐩弬鏁� +export function selectItemParameterList(query) { + return request({ + url: '/capacityScope/selectItemParameterList', + method: 'post', + params: query + }) +} +// 鏂板妫�楠岄」鐩弬鏁� +export function addItemParameter(query) { + return request({ + url: '/capacityScope/addItemParameter', + method: 'post', + params: query + }) +} +// 鍒犻櫎妫�楠岄」鐩弬鏁� +export function delItemParameter(query) { + return request({ + url: '/capacityScope/delItemParameter', + method: 'post', + params: query + }) +} +// 淇敼妫�楠岄」鐩弬鏁� +export function upItemParameter(query) { + return request({ + url: '/capacityScope/upItemParameter', + method: 'post', + params: query + }) +} +// 鑾峰彇妫�楠屽璞℃爲 +export function getItemTree() { + return request({ + url: '/capacityScope/getItemTree', + method: 'get' + }) +} diff --git a/src/api/structural/laboratoryScope.js b/src/api/structural/laboratoryScope.js new file mode 100644 index 0000000..d0b0c7c --- /dev/null +++ b/src/api/structural/laboratoryScope.js @@ -0,0 +1,9 @@ +import request from '@/utils/request' + +// 鑾峰彇妫�楠岄」鐩弬鏁� +export function obtainItemParameterList() { + return request({ + url: '/laboratoryScope/obtainItemParameterList', + method: 'get' + }) +} diff --git a/src/api/structural/standardMethod.js b/src/api/structural/standardMethod.js new file mode 100644 index 0000000..a1412c8 --- /dev/null +++ b/src/api/structural/standardMethod.js @@ -0,0 +1,9 @@ +import request from '@/utils/request' + +// 鑾峰彇妫�楠岄」鐩弬鏁� +export function selectStandardMethods() { + return request({ + url: '/standardMethod/selectStandardMethods', + method: 'get' + }) +} diff --git a/src/views/structural/capability/index.vue b/src/views/structural/capability/index.vue deleted file mode 100644 index 2ebcd51..0000000 --- a/src/views/structural/capability/index.vue +++ /dev/null @@ -1,13 +0,0 @@ -<script> -export default { -name: "index" -} -</script> - -<template> - -</template> - -<style scoped lang="scss"> - -</style> diff --git a/src/views/structural/capabilityAndLaboratory/capability/index.vue b/src/views/structural/capabilityAndLaboratory/capability/index.vue new file mode 100644 index 0000000..085b188 --- /dev/null +++ b/src/views/structural/capabilityAndLaboratory/capability/index.vue @@ -0,0 +1,805 @@ +<template> + <div class="capacity-scope"> + <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-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-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> + <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> + </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"/>--> + </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>--> + <span slot="footer" class="dialog-footer"> + <el-button @click="uploadDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="submitUpload()" :loading="uploading">涓� 浼�</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> + + + + + + </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"; + +export default { + data() { + return { + dicList: { + inspectionItemType: [], + inspectionValueType: [], + bsm: [], + sonLaboratory: [], + unit: [], + dic: [], + method: [], + }, + 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'], + }, + inPower: true, + importExcel: false, + uploadDia: false, + fileList: [], + token: null, + uploading: false, + } + }, + created() { + if (this.PROJECT === '瑁呭鐢电紗') { + this.itemParameterData.requiredUp = ['sonLaboratory', 'inspectionItem', 'inspectionItemType', 'inspectionValueType', + 'unit', 'manDay', 'templateId' + ] + } + }, + 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() + }, + computed: { + title() { + 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('鏈�夋嫨鏂囦欢') + return + } + this.uploading = true + this.$refs.upload.submit(); + }, + onSuccess(response, file, fileList) { + this.$refs.upload.clearFiles() + this.uploadDia = false + this.uploading = false + if (response.code == 201) { + this.$message.error(response.message) + return + } + this.$message.success('涓婁紶鎴愬姛') + this.standardList = [] + this.productList = [] + this.refreshTable() + }, + onError(err, file, fileList) { + this.$message.error('涓婁紶澶辫触') + this.$refs.upload.clearFiles() + this.uploading = false + }, + beforeUpload(file, fileList) { + if (file.raw.type != 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') { + this.$message.error('涓婁紶鏂囦欢鏍煎紡涓嶆纭�'); + this.$refs.upload.clearFiles() + return false; + } + }, + selectorSwitch(radio) { + if (this.radio === '0') { + this.showItemParameter = true; + this.showTestObject = false; + this.selectTestObjectByName() + /* this.$nextTick(() => { + this.$refs.itemParameterTable.selectList() + }) */ + } else { + this.showTestObject = true; + this.showItemParameter = false; + } + }, + 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() + } else { + // this.$refs['testObjectTable'].selectList() + } + }, + refresh() { + this.itemParameterData.entity = this.HaveJson(this.itemParameterEntityCopy) + this.testObjectData.entity = this.HaveJson(this.testObjectDataEntityCopy) + this.upIndex++ + }, + 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 + } else { + // this.$refs.testObjectTable.openAddDia(this.$api.capacityScope.addTestObject); + } + }, + selectDocUnit() { + // this.$axios.post(this.$api.enums.getDic).then(res => { + // this.dicList.dic = res.data.map(m => { + // return { + // label: m, + // value: m + // } + // }) + // }) + }, + 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 + }) + }, + selectStandardMethods() { + selectStandardMethods().then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.code, + value: a.code + }) + }) + this.dicList.method = data + }) + }, + selectTestObjectByName() { + getItemTree().then(res => { + res.data.forEach(a=>{ + this.cascaderFieldData(a) + }) + this.itemParameterData.cascaderField.sample.tree = res.data + this.tree = res.data + }) + }, + 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 + }, + openAdd2(){ + // this.$refs.productData.openAddDia(this.$api.capacityScope.addProduct, {objectId: this.productData.entity.objectId}); + }, + } +} +</script> + +<style scoped> +.title { + height: 40px; + line-height: 40px; + margin-bottom: 10px; +} +</style> diff --git a/src/views/structural/laboratory/index.vue b/src/views/structural/capabilityAndLaboratory/laboratory/index.vue similarity index 100% rename from src/views/structural/laboratory/index.vue rename to src/views/structural/capabilityAndLaboratory/laboratory/index.vue -- Gitblit v1.9.3