李林
2024-02-27 2dc12f173c3d09cccde9568d533b50d6c04f7212
src/components/view/5capacity-scope.vue
@@ -4,6 +4,10 @@
      line-height: 60px;
   }
   .bodys {
      height: 100%;
   }
   .search {
      background-color: #fff;
      height: 80px;
@@ -40,11 +44,13 @@
   <div class="role_manage">
      <div>
         <el-row class="title">
            <el-col :span="12" style="padding-left: 20px;">
               <el-radio-group v-model="radio" @change="selectorSwitch">
            <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>
@@ -52,47 +58,51 @@
            </el-col>
         </el-row>
      </div>
      <div class="search" v-if="showItemParameter">
         <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 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.laboratory" @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.deviceGroup" @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="search_thing">
            <div class="search_label">实验室:</div>
            <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                  v-model="itemParameterData.entity.laboratory" @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.deviceGroup" @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 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="table" v-if="showItemParameter">
         <ValueTable ref="itemParameterTable" :url="$api.capacityScope.selectItemParameterList"
            :upUrl="$api.capacityScope.upItemParameter" :delUrl="$api.capacityScope.delItemParameter"
            :componentData="itemParameterData" :key="upIndex" />
      </div>
      <div class="search testObject" v-if="showTestObject">
         <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 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="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 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 class="table" v-if="showTestObject">
         <ValueTable ref="testObjectTable" :url="$api.capacityScope.selectTestObjectList"
            :upUrl="$api.capacityScope.upTestObject" :delUrl="$api.capacityScope.delTestObject"
            :componentData="testObjectData" :key="upIndex" />
      </div>
   </div>
</template>
@@ -105,7 +115,7 @@
      },
      data() {
         return {
            radio: '0',
            radio: '-1',
            showItemParameter: true,
            showTestObject: false,
            itemParameterData: {
@@ -133,9 +143,19 @@
                  type: 'text',
                  method: 'doDiy'
               }],
               tagField: {},
               tagField: {
                  inspectionItemType: {
                     select: []
                  },
                  valueType: {
                     select: []
                  }
               },
               selectField: {
                  inspectionItemType: {
                     select: []
                  },
                  valueType: {
                     select: []
                  }
               },
@@ -174,26 +194,30 @@
            testObjectDataEntityCopy: {},
            upIndex: 0,
            addDia: false,
            addPower: true
            addPower: true,
            select: 0
         }
      },
      mounted() {
         this.itemParameterEntityCopy = this.HaveJson(this.itemParameterData.entity)
         this.testObjectDataEntityCopy = this.HaveJson(this.testObjectData.entity)
         this.selectEnumByCategory()
         this.selectEnumByCategoryForValue()
         this.getPower('0')
      },
      methods: {
         selectorSwitch() {
         selectorSwitch(radio) {
            if (this.radio === '0') {
               this.showItemParameter = true;
               this.showTestObject = false;
               this.$nextTick(() => {
               /* this.$nextTick(() => {
                  this.$refs.itemParameterTable.selectList()
               })
               }) */
            } else {
               this.showTestObject = true;
               this.showItemParameter = false;
            }
            this.getPower(radio)
         },
         refreshTable() {
            if (this.radio === '0') {
@@ -214,37 +238,79 @@
               this.$refs.testObjectTable.openAddDia(this.$api.capacityScope.addTestObject);
            }
         },
         selectEnumByCategory(){
         selectEnumByCategory() {
            this.$axios.post(this.$api.enums.selectEnumByCategory, {
               category: "检验项类型"
            }).then(res=>{
            }).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
            })
         },
         // 权限分配
         getPower(){
         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=='upItemParameter'){
                  up = true
               if (power[i].menuMethod == 'selectItemParameterList') {
                  select += 1
               }
               if(power[i].menuMethod=='delItemParameter'){
                  del = true
               if (power[i].menuMethod == 'selectTestObjectList') {
                  select += 2
               }
               if(power[i].menuMethod=='addItemParameter'){
                  add = true
               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(!del){
               this.componentData.do.splice(1, 1)
            }
            if(!up){
               this.componentData.do.splice(0, 1)
            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'
         }
      }
   }