From 0e5763b1b39de488adb3bcc856a2201f87597a08 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期一, 23 十二月 2024 15:56:40 +0800
Subject: [PATCH] 人员测试联调

---
 src/components/view/a5-capacity-scope.vue |  426 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 419 insertions(+), 7 deletions(-)

diff --git a/src/components/view/a5-capacity-scope.vue b/src/components/view/a5-capacity-scope.vue
index 34de083..b971551 100644
--- a/src/components/view/a5-capacity-scope.vue
+++ b/src/components/view/a5-capacity-scope.vue
@@ -46,6 +46,9 @@
   >>> .el-upload-dragger {
     width: 100% !important;
   }
+  .mb-10 {
+    margin-bottom: 10px;
+  }
 </style>
 
 <template>
@@ -95,9 +98,12 @@
         </div>
       </div>
       <div class="table">
-        <ValueTable ref="itemParameterTable" :url="$api.capacityScope.selectItemParameterList"
+        <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">
@@ -143,6 +149,255 @@
         <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>
 
@@ -154,6 +409,7 @@
     },
     data() {
       return {
+        addVisible:false,
         logining:false,
         radio: '-1',
         showItemParameter: true,
@@ -173,10 +429,10 @@
           select: true,
           row: 2,
           do: [{
-            id: 'update',
+            id: '111',
             font: '缂栬緫',
             type: 'text',
-            method: 'doDiy',
+            method: 'handleEdit',
             field: []
           }, {
             id: 'delete',
@@ -262,7 +518,8 @@
             'unit', 'method', 'manDay', 'templateId'
           ],
           accept: '.xlsx',
-          inputType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
+          inputType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
+          needSort: ['createTime', 'updateTime', 'inspectionItem', 'inspectionItemSubclass', 'sample'],
         },
         testObjectData: {
           entity: {
@@ -302,12 +559,12 @@
             }
           },
           requiredAdd: ['specimenName', 'code', 'laboratoryId'],
-          requiredUp: ['specimenName', 'code', 'laboratoryId']
+          requiredUp: ['specimenName', 'code', 'laboratoryId'],
+          needSort: ['createTime', 'updateTime', 'specimenName'],
         },
         itemParameterEntityCopy: {},
         testObjectDataEntityCopy: {},
         upIndex: 0,
-        addDia: false,
         addPower: true,
         select: 0,
         laboratory: [],
@@ -348,6 +605,72 @@
         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() {
@@ -432,9 +755,94 @@
       },
       openAdd() {
         if (this.radio === '0') {
-          this.$refs.itemParameterTable.openAddDia(this.$api.capacityScope.addItemParameter);
+          // 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() {
@@ -516,6 +924,7 @@
               value: a.laboratoryName
             })
           })
+          this.laboratoryList = data0
           this.itemParameterData.selectField.laboratory.select = data0
           this.itemParameterData.tagField.laboratory.select = data0
           this.testObjectData.selectField.laboratoryId.select = data
@@ -534,6 +943,7 @@
           })
           this.itemParameterData.selectField.method.select = data
           this.itemParameterData.tagField.method.select = data
+          return
         })
       },
       selectTestObjectByName() {
@@ -542,6 +952,8 @@
             this.cascaderFieldData(a)
           })
           this.itemParameterData.cascaderField.sample.tree = res.data
+          // this.sampleTree = res.data
+          // console.log(2222,res.data)
         })
       },
       cascaderFieldData(val){

--
Gitblit v1.9.3