From 07a41ade45c962e93a9d449ce1be0eec52e66a6a Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 19 三月 2025 10:44:32 +0800 Subject: [PATCH] 内部单不能修改报告 --- src/components/view/a5-capacity-scope.vue | 1470 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 1,043 insertions(+), 427 deletions(-) diff --git a/src/components/view/a5-capacity-scope.vue b/src/components/view/a5-capacity-scope.vue index 476b7a1..b971551 100644 --- a/src/components/view/a5-capacity-scope.vue +++ b/src/components/view/a5-capacity-scope.vue @@ -1,451 +1,1067 @@ <style scoped> - .title { - height: 60px; - line-height: 60px; - } + .title { + height: 60px; + line-height: 60px; + } - .bodys { - height: 100%; - } + .bodys { + height: 100%; + } - .search { - background-color: #fff; - height: 80px; - display: flex; - align-items: center; - } + .search { + background-color: #fff; + height: 80px; + display: flex; + align-items: center; + } - .search_thing { - width: 350px; - display: flex; - align-items: center; - } + .search_thing { + width: 350px; + display: flex; + align-items: center; + } - .search_label { - width: 110px; - font-size: 14px; - text-align: right; - } + .search_label { + width: 110px; + font-size: 14px; + text-align: right; + } - .search_input { - width: calc(100% - 110px); - } + .search_input { + width: calc(100% - 110px); + } - .table { - margin-top: 10px; - background-color: #fff; - width: calc(100% - 40px); - height: calc(100% - 60px - 80px - 10px - 40px); - padding: 20px; - } + .table { + margin-top: 10px; + background-color: #fff; + width: calc(100% - 40px); + height: calc(100% - 60px - 80px - 10px - 40px); + padding: 20px; + } + + >>> .el-upload { + width: 100% !important; + } + + >>> .el-upload-dragger { + width: 100% !important; + } + .mb-10 { + margin-bottom: 10px; + } </style> <template> - <div class="capacity-scope"> - <div> - <el-row class="title"> - <el-col :span="12"> - <el-radio-group v-model="radio" @input="selectorSwitch" size="medium" fill="#3A7BFA" v-if="select==3"> - <el-radio-button label="0">妫�楠岄」鐩弬鏁�</el-radio-button> - <el-radio-button label="1">妫�楠屽璞�</el-radio-button> - </el-radio-group> - <el-button size="medium" type="primary" v-else-if="select==1">妫�楠岄」鐩弬鏁�</el-button> - <el-button size="medium" type="primary" v-else-if="select==2">妫�楠屽璞�</el-button> - </el-col> - <el-col :span="12" style="text-align: right;"> - <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="itemParameterData.entity.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="itemParameterData.entity.inspectionItemSubclass" @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" - :upUrl="$api.capacityScope.upItemParameter" :delUrl="$api.capacityScope.delItemParameter" - :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> - </div> + <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="#3A7BFA" v-if="select==3"> + <el-radio-button label="0">妫�楠岄」鐩弬鏁�</el-radio-button> + <el-radio-button label="1">妫�楠屽璞�</el-radio-button> + </el-radio-group> + <el-button size="medium" type="primary" v-else-if="select==1">妫�楠岄」鐩弬鏁�</el-button> + <el-button size="medium" type="primary" v-else-if="select==2">妫�楠屽璞�</el-button> + </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="itemParameterData.entity.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="itemParameterData.entity.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="itemParameterData.entity.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="addTitle" :visible.sync="addVisible" width="50%"> + <span slot="footer" class="dialog-footer"> + <el-row :gutter="20"> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>妫�楠岄」锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="addForm.inspectionItem"></el-input></div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">妫�楠岄」EN锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="addForm.inspectionItemEn"></el-input></div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">妫�楠屽瓙椤癸細</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="addForm.inspectionItemSubclass"></el-input></div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">妫�楠屽瓙椤笶N锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="addForm.inspectionItemSubclassEn"></el-input></div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">妫�楠屽璞★細</div> + <div class="search_input"> + <el-cascader v-model="addForm.sample" :options="itemParameterData.cascaderField.sample.tree" :show-all-levels="false" + placeholder="璇烽�夋嫨" clearable + size="small" filterable style="width: 100%;" :props="{ + value:'name', + label:'name', + checkStrictly: true, + multiple: true + }"></el-cascader> + </div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">鍗曚环(鍏�)锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="addForm.price"></el-input></div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">鍦烘墍锛�</div> + <div class="search_input"> + <el-select v-model="addForm.laboratory" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option + v-for="item in itemParameterData.selectField.laboratory.select" + :key="item.value" + :label="item.label" + :value="item.value" + clearable> + </el-option> + </el-select> + </div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>璇曢獙瀹わ細</div> + <div class="search_input"> + <el-select v-model="addForm.sonLaboratory" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option + v-for="item in itemParameterData.selectField.sonLaboratory.select" + :key="item.value" + :label="item.label" + :value="item.value" + clearable> + </el-option> + </el-select> + </div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">瑕佹眰鎻忚堪锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="addForm.askTell"></el-input></div> + </div> + </el-col><el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">瑕佹眰鍊硷細</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="addForm.ask"></el-input></div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>璁¢噺鍗曚綅锛�</div> + <div class="search_input"> + <el-select v-model="addForm.unit" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option + v-for="item in itemParameterData.selectField.unit.select" + :key="item.value" + :label="item.label" + :value="item.value" + clearable> + </el-option> + </el-select> + </div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">宸ユ椂(H)锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="addForm.manHour"></el-input></div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>棰勮鏃堕棿(H)锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="addForm.manDay"></el-input></div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">宸ユ椂鍒嗙粍锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="addForm.manHourGroup"></el-input></div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>妫�楠岄」绫诲瀷锛�</div> + <div class="search_input"> + <el-select v-model="addForm.inspectionItemType" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option + v-for="item in itemParameterData.selectField.inspectionItemType.select" + :key="item.value" + :label="item.label" + :value="item.value" + clearable> + </el-option> + </el-select> + </div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>妫�楠屽�肩被鍨嬶細</div> + <div class="search_input"> + <el-select v-model="addForm.inspectionValueType" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option + v-for="item in itemParameterData.selectField.inspectionValueType.select" + :key="item.value" + :label="item.label" + :value="item.value" + clearable> + </el-option> + </el-select> + </div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">瀛楀吀绫诲瀷锛�</div> + <div class="search_input"> + <el-select v-model="addForm.dic" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option + v-for="item in itemParameterData.selectField.dic.select" + :key="item.value" + :label="item.label" + :value="item.value" + clearable> + </el-option> + </el-select> + </div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">鐗规畩鏍囪瘑锛�</div> + <div class="search_input"> + <el-select v-model="addForm.bsm" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option + v-for="item in itemParameterData.selectField.bsm.select" + :key="item.value" + :label="item.label" + :value="item.value" + clearable> + </el-option> + </el-select> + </div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鍘熷璁板綍妯℃澘锛�</div> + <div class="search_input"> + <el-select v-model="addForm.templateId" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option + v-for="item in itemParameterData.selectField.templateId.select" + :key="item.value" + :label="item.label" + :value="item.value" + clearable> + </el-option> + </el-select> + </div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">妫�楠岄」鍒嗙被锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="addForm.inspectionItemClass"></el-input></div> + </div> + </el-col><el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label">妫�楠岄」鍒嗙被EN锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="addForm.inspectionItemClassEn"></el-input></div> + </div> + </el-col> + <el-col :span="12" class="mb-10"> + <div class="search_thing"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>璇曢獙鏂规硶锛�</div> + <div class="search_input"> + <el-select v-model="addForm.method" placeholder="璇烽�夋嫨" size="small" style="width: 100%;" multiple> + <el-option + v-for="item in itemParameterData.selectField.method.select" + :key="item.value" + :label="item.label" + :value="item.value" + clearable> + </el-option> + </el-select> + </div> + </div> + </el-col> + </el-row> + <el-button @click="addVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="addItem" :loading="uploading">纭� 瀹�</el-button> + </span> + </el-dialog> + </div> </template> <script> - import ValueTable from '../tool/value-table.vue' - export default { - components: { - ValueTable - }, - data() { - return { - radio: '-1', - showItemParameter: true, - showTestObject: false, - itemParameterData: { - entity: { - inspectionItem: null, - inspectionItemSubclass: null, - orderBy: { - field: 'id', - order: 'asc' - } - }, - isIndex: false, - showSelect: true, - select: true, - row: 2, - do: [{ - id: 'update', - font: '缂栬緫', - type: 'text', - method: 'doDiy', - field: [] - }, { - id: 'delete', - font: '鍒犻櫎', - type: 'text', - method: 'doDiy' - }], - tagField: { - inspectionItemType: { - select: [] - }, - bsm:{ - select: [] - }, - inspectionValueType:{ - select:[] - }, - laboratory:{ - select:[] - }, - method:{select:[]}, - templateId:{ - select:[] - }, - sonLaboratory: {select:[]}, - unit: {select:[]}, - sample: {select:[]}, - dic: {select:[]}, - }, - selectField: { - inspectionItemType: { - select: [] - }, - bsm:{ - select: [] - }, - inspectionValueType:{ - select:[] - }, - laboratory:{ - select:[] - }, - templateId:{ - select:[] - }, - method:{select:[],choose: true}, - sample: {select:[]}, - sonLaboratory: {select:[]}, - unit: {select:[]}, - dic:{select:[]}, - }, - requiredAdd: ['sonLaboratory','inspectionItem', 'manHour', 'inspectionItemType','inspectionValueType','laboratory','unit','method','price','manDay','sample'], - requiredUp: ['sonLaboratory','inspectionItem', 'manHour', 'inspectionItemType','inspectionValueType','laboratory','unit','method','price','manDay','sample'] - }, - testObjectData: { - entity: { - specimenName: null, - orderBy: { - field: 'id', - order: 'asc' - } - }, - isIndex: false, - showSelect: true, - select: true, - do: [{ - id: 'update', - font: '缂栬緫', - type: 'text', - method: 'doDiy', - field: ['createUserName', 'updateUserName'] - }, { - id: 'delete', - font: '鍒犻櫎', - type: 'text', - method: 'doDiy' - }], - tagField: {}, - selectField: {}, - requiredAdd: ['specimenName'], - requiredUp: ['specimenName'] - }, - itemParameterEntityCopy: {}, - testObjectDataEntityCopy: {}, - upIndex: 0, - addDia: false, - addPower: true, - select: 0 - } - }, - mounted() { - this.itemParameterEntityCopy = this.HaveJson(this.itemParameterData.entity) - this.testObjectDataEntityCopy = this.HaveJson(this.testObjectData.entity) - this.selectEnumByCategory() - // this.selectEnumByCategoryForValue() - this.selectEnumByCategoryForSpecial() - this.selectEnumByCategoryForInspectionValueType() - this.obtainItemParameterList() - this.selectStandardMethods() - this.selectTestObjectByName() - this.getStandardTemplate() - this.selectEnumByCategoryForSLaboratory() + import ValueTable from '../tool/value-table.vue' + export default { + components: { + ValueTable + }, + data() { + return { + addVisible:false, + logining:false, + radio: '-1', + 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: '111', + font: '缂栬緫', + type: 'text', + method: 'handleEdit', + field: [] + }, { + id: 'delete', + font: '鍒犻櫎', + type: 'text', + method: 'doDiy' + }], + tagField: { + inspectionItemType: { + select: [] + }, + bsm: { + select: [] + }, + inspectionValueType: { + select: [] + }, + laboratory: { + select: [] + }, + method: { + select: [] + }, + templateId: { + select: [] + }, + sonLaboratory: { + select: [] + }, + unit: { + select: [] + }, + dic: { + select: [] + }, + }, + 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, + 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, + addForm:{ + inspectionItem:null, + inspectionItemEn:null, + inspectionItemSubclass:null, + inspectionItemSubclassEn:null, + sample:[], + price:null, + laboratory:null, + sonLaboratory:null, + askTell:null, + ask:null, + unit:null, + manHour:null, + manDay:null, + manHourGroup:null, + inspectionItemType:null, + inspectionValueType:null, + dic:null, + bsm:null, + templateId:null, + inspectionItemClass:null, + inspectionItemClassEn:null, + method:[] + }, + addTitle:'鏂板' + } + }, + watch: { + 'addVisible'(val){ + if(!val){ + this.addForm = { + inspectionItem:null, + inspectionItemEn:null, + inspectionItemSubclass:null, + inspectionItemSubclassEn:null, + sample:[], + price:null, + laboratory:null, + sonLaboratory:null, + askTell:null, + ask:null, + unit:null, + manHour:null, + manDay:null, + manHourGroup:null, + inspectionItemType:null, + inspectionValueType:null, + dic:null, + bsm:null, + templateId:null, + inspectionItemClass:null, + inspectionItemClassEn:null, + method:[] + } + } + } + }, + created() { + if (this.PROJECT === '瑁呭鐢电紗') { + this.itemParameterData.requiredUp = ['sonLaboratory', 'inspectionItem', 'inspectionItemType', 'inspectionValueType', + 'unit', 'manDay', 'templateId' + ] + } else { + this.itemParameterData.requiredUp = ['sonLaboratory', 'inspectionItem', 'inspectionItemType', 'inspectionValueType', + 'unit', 'method', 'manDay', 'templateId' + ] + } + }, + mounted() { + this.token = { + 'token': sessionStorage.getItem('token') + }, + this.itemParameterEntityCopy = this.HaveJson(this.itemParameterData.entity) + this.testObjectDataEntityCopy = this.HaveJson(this.testObjectData.entity) + this.selectEnumByCategory() + // this.selectEnumByCategoryForValue() + this.selectEnumByCategoryForSpecial() + this.selectEnumByCategoryForInspectionValueType() + this.obtainItemParameterList() + this.selectStandardMethods() + this.selectTestObjectByName() + this.getStandardTemplate() + this.selectEnumByCategoryForSLaboratory() this.selectDocUnit() - this.selectEnumByCategoryForUnit() - this.getPower('0') - }, - methods: { - selectorSwitch(radio) { - if (this.radio === '0') { - this.showItemParameter = true; - this.showTestObject = false; - /* this.$nextTick(() => { - this.$refs.itemParameterTable.selectList() - }) */ - } else { - this.showTestObject = true; - this.showItemParameter = false; - } - this.getPower(radio) - }, - refreshTable() { - 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() { - if (this.radio === '0') { - this.$refs.itemParameterTable.openAddDia(this.$api.capacityScope.addItemParameter); - } else { - this.$refs.testObjectTable.openAddDia(this.$api.capacityScope.addTestObject); - } - }, - selectEnumByCategory() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "妫�楠岄」绫诲瀷" - }).then(res => { - this.itemParameterData.selectField.inspectionItemType.select = res.data - res.data[1].type = 'info' - this.itemParameterData.tagField.inspectionItemType.select = res.data - }) - }, - selectEnumByCategoryForValue() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "鍙栧�肩被鍨�" - }).then(res => { - this.itemParameterData.selectField.valueType.select = res.data - this.itemParameterData.tagField.valueType.select = res.data - }) - }, - selectEnumByCategoryForSpecial() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "鏄惁" - }).then(res => { - this.itemParameterData.selectField.bsm.select = res.data - this.itemParameterData.tagField.bsm.select = res.data - }) - }, - selectEnumByCategoryForInspectionValueType() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "妫�楠屽�肩被鍨�" - }).then(res => { - this.itemParameterData.selectField.inspectionValueType.select = res.data - this.itemParameterData.tagField.inspectionValueType.select = res.data - }) - }, - selectEnumByCategoryForSLaboratory() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "瀛愬疄楠屽" - }).then(res => { - this.itemParameterData.selectField.sonLaboratory.select = res.data - this.itemParameterData.tagField.sonLaboratory.select = res.data - }) - }, - selectEnumByCategoryForUnit() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "鍗曚綅" - }).then(res => { - this.itemParameterData.selectField.unit.select = res.data - this.itemParameterData.tagField.unit.select = res.data - }) - }, + this.selectEnumByCategoryForUnit() + this.getPower('0') + }, + methods: { + 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; + } + this.getPower(radio) + }, + refreshTable() { + 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() { + if (this.radio === '0') { + // this.$refs.itemParameterTable.openAddDia(this.$api.capacityScope.addItemParameter); + this.addTitle = '鏂板' + this.addVisible = true + } else { + this.$refs.testObjectTable.openAddDia(this.$api.capacityScope.addTestObject); + } + }, + handleEdit(row){ + this.addTitle = '缂栬緫' + this.addForm = this.HaveJson(row) + this.addForm.sample = JSON.parse(this.addForm.sample) + this.addVisible = true + }, + addItem(){ + if(!this.addForm.inspectionItem){ + this.$message.error('璇疯緭鍏ユ楠岄」') + return + } + if(!this.addForm.sonLaboratory){ + this.$message.error('璇烽�夋嫨璇曢獙瀹�') + return + } + if(!this.addForm.unit){ + this.$message.error('璇烽�夋嫨璁¢噺鍗曚綅') + return + } + if(!this.addForm.manDay){ + this.$message.error('璇烽�夋嫨棰勮鏃堕棿') + return + } + if(!this.addForm.inspectionItemType){ + this.$message.error('璇烽�夋嫨妫�楠岄」绫诲瀷') + return + } + if(!this.addForm.inspectionValueType){ + this.$message.error('璇烽�夋嫨妫�楠屽�肩被鍨�') + return + } + if(!this.addForm.templateId){ + this.$message.error('璇烽�夋嫨鍘熷璁板綍妯℃澘') + return + } + if(!this.addForm.method){ + this.$message.error('璇烽�夋嫨璇曢獙鏂规硶') + return + } + let obj = this.HaveJson(this.addForm) + obj.method = JSON.stringify(obj.method) + obj.sample = JSON.stringify(obj.sample) + this.uploading = true + if(obj.id){ + // 淇敼 + this.$axios.post(this.$api.capacityScope.upItemParameter, obj, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + this.uploading = false + if (res.code === 201) { + return + } + this.$message.success('淇敼鎴愬姛') + this.addDia = false + this.refreshTable() + this.addVisible = false + }).catch(e => { + this.uploading = false + this.addVisible = false + }) + }else{ + // 鏂板 + this.$axios.post(this.$api.capacityScope.addItemParameter, obj, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + this.uploading = false + if (res.code === 201) { + return + } + this.$message.success('娣诲姞鎴愬姛') + this.addDia = false + this.refreshTable() + this.addVisible = false + }).catch(e => { + this.uploading = false + this.addVisible = false + }) + } + }, + selectEnumByCategory() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "妫�楠岄」绫诲瀷" + }).then(res => { + this.itemParameterData.selectField.inspectionItemType.select = res.data + res.data[1].type = 'info' + this.itemParameterData.tagField.inspectionItemType.select = res.data + }) + }, + selectEnumByCategoryForValue() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鍙栧�肩被鍨�" + }).then(res => { + this.itemParameterData.selectField.valueType.select = res.data + this.itemParameterData.tagField.valueType.select = res.data + }) + }, + selectEnumByCategoryForSpecial() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鏄惁" + }).then(res => { + this.itemParameterData.selectField.bsm.select = res.data + this.itemParameterData.tagField.bsm.select = res.data + }) + }, + selectEnumByCategoryForInspectionValueType() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "妫�楠屽�肩被鍨�" + }).then(res => { + this.itemParameterData.selectField.inspectionValueType.select = res.data + this.itemParameterData.tagField.inspectionValueType.select = res.data + }) + }, + selectEnumByCategoryForSLaboratory() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "瀛愬疄楠屽" + }).then(res => { + this.itemParameterData.selectField.sonLaboratory.select = res.data + this.itemParameterData.tagField.sonLaboratory.select = res.data + }) + }, + selectEnumByCategoryForUnit() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鍗曚綅" + }).then(res => { + this.itemParameterData.selectField.unit.select = res.data + this.itemParameterData.tagField.unit.select = res.data + }) + }, selectDocUnit() { - this.$axios.post(this.$api.enums.getDic).then(res => { - this.itemParameterData.selectField.dic.select = res.data.map(m=>{ + this.$axios.post(this.$api.enums.getDic).then(res => { + this.itemParameterData.selectField.dic.select = res.data.map(m => { return { label: m, - value:m + value: m } }) - this.itemParameterData.tagField.dic.select = res.data.map(m=>{ + this.itemParameterData.tagField.dic.select = res.data.map(m => { return { label: m, - value:m + value: m } }) - }) - }, - obtainItemParameterList() { - this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => { - let data = [] - res.data.forEach(a=>{ - data.push({ - label: a.laboratoryName, - value: a.laboratoryName - }) - }) - this.itemParameterData.selectField.laboratory.select = data - this.itemParameterData.tagField.laboratory.select = data - }) - }, - selectStandardMethods() { - this.$axios.get(this.$api.standardMethod.selectStandardMethods).then(res => { - let data = [] - res.data.forEach(a=>{ - data.push({ - label: a.code, - value: a.code - }) - }) - this.itemParameterData.selectField.method.select = data - this.itemParameterData.tagField.method.select = data - }) - }, - selectTestObjectByName() { - this.$axios.get(this.$api.capacityScope.selectTestObjectByName).then(res => { - let data = [] - res.data.forEach(a => { - data.push({ - label: a.specimenName, - value: a.id, - type: 'success' - }) - }) - this.itemParameterData.selectField.sample.select = data - this.itemParameterData.tagField.sample.select = data - }) - }, - 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 - }) - }, - // 鏉冮檺鍒嗛厤 - getPower(radio) { - let power = JSON.parse(sessionStorage.getItem('power')) - let up = false - let add = false - let del = false - let select = 0 - for (var i = 0; i < power.length; i++) { - if (power[i].menuMethod == 'selectItemParameterList') { - select += 1 - } - if (power[i].menuMethod == 'selectTestObjectList') { - select += 2 - } - if (this.radio === '0') { - if (power[i].menuMethod == 'upItemParameter') { - up = true - } - if (power[i].menuMethod == 'delItemParameter') { - del = true - } - if (power[i].menuMethod == 'addItemParameter') { - add = true - } - } else { - if (power[i].menuMethod == 'upTestObject') { - up = true - } - if (power[i].menuMethod == 'delTestObject') { - del = true - } - if (power[i].menuMethod == 'addTestObject') { - add = true - } - } - } - if (this.radio === '0') { - if (!del) { - this.itemParameterData.do.splice(1, 1) - } - if (!up) { - this.itemParameterData.do.splice(0, 1) - } - } else { - if (!del) { - this.testObjectData.do.splice(1, 1) - } - if (!up) { - this.testObjectData.do.splice(0, 1) - } - } - this.addPower = add - this.select = select - if (select == 1 || select == 3) this.radio = radio - else if (select == 2) this.radio = '1' - else this.radio = '-1' - } - } - } + }) + }, + obtainItemParameterList() { + this.$axios.get(this.$api.laboratoryScope.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.laboratoryList = data0 + 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() { + this.$axios.get(this.$api.standardMethod.selectStandardMethods).then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.code, + value: a.code + }) + }) + this.itemParameterData.selectField.method.select = data + this.itemParameterData.tagField.method.select = data + return + }) + }, + selectTestObjectByName() { + this.$axios.get(this.$api.capacityScope.getItemTree).then(res => { + res.data.forEach(a=>{ + this.cascaderFieldData(a) + }) + this.itemParameterData.cascaderField.sample.tree = res.data + // this.sampleTree = res.data + // console.log(2222,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 + }) + }, + // 鏉冮檺鍒嗛厤 + getPower(radio) { + let power = JSON.parse(sessionStorage.getItem('power')) + let up = false + let add = false + let del = false + let product = false + let select = 0 + let inPower=false + let importExcel = false + for (var i = 0; i < power.length; i++) { + if (power[i].menuMethod == 'selectItemParameterList') { + select += 1 + } + if (power[i].menuMethod == 'selectTestObjectList') { + select += 2 + } + if (radio === '0') { + if (power[i].menuMethod == 'upItemParameter') { + up = true + } + if (power[i].menuMethod == 'delItemParameter') { + del = true + } + if (power[i].menuMethod == 'addItemParameter') { + add = true + } + if (power[i].menuMethod == 'importData') { + inPower = true + } + } else { + if (power[i].menuMethod == 'upTestObject') { + up = true + } + if (power[i].menuMethod == 'delTestObject') { + del = true + } + if (power[i].menuMethod == 'addTestObject') { + add = true + } + if (power[i].menuMethod == 'selectProductListByObjectId') { + product = true + } + if (power[i].menuMethod == 'importExcel') { + importExcel = true + } + } + } + if (radio === '0') { + if (!del) { + this.itemParameterData.do.splice(1, 1) + } + if (!up) { + this.itemParameterData.do.splice(0, 1) + } + } else { + if (!product) { + this.testObjectData.do.splice(2, 1) + } + if (!del) { + this.testObjectData.do.splice(1, 1) + } + if (!up) { + this.testObjectData.do.splice(0, 1) + } + } + this.addPower = add + this.inPower=inPower + this.select = select + this.importExcel = importExcel + if (select == 1 || select == 3) this.radio = radio + else if (select == 2) this.radio = '1' + else this.radio = '-1' + }, + 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> -- Gitblit v1.9.3