李林
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,55 +44,65 @@
   <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-radio-button label="0">检验项目参数</el-radio-button>
                        <el-radio-button label="1">检验对象</el-radio-button>
                    </el-radio-group>
                </el-col>
            <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-button size="medium" icon="el-icon-delete">删除</el-button>
            </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>
@@ -101,9 +115,9 @@
      },
      data() {
         return {
                radio: '0',
                showItemParameter: true,
                showTestObject: false,
            radio: '-1',
            showItemParameter: true,
            showTestObject: false,
            itemParameterData: {
               entity: {
                  inspectionItem: null,
@@ -122,19 +136,33 @@
                  font: '编辑',
                  type: 'text',
                  method: 'doDiy',
                  field:[]
               },{
                  field: []
               }, {
                  id: 'delete',
                  font: '删除',
                  type: 'text',
                  method: 'doDiy'
               }],
               tagField: {},
               selectField: {},
               requiredAdd:['inspectionItem', 'manHour', 'inspectionItemType', 'manHourGroup'],
               requiredUp:['inspectionItem', 'manHour', 'inspectionItemType', 'manHourGroup']
               tagField: {
                  inspectionItemType: {
                     select: []
                  },
                  valueType: {
                     select: []
                  }
               },
               selectField: {
                  inspectionItemType: {
                     select: []
                  },
                  valueType: {
                     select: []
                  }
               },
               requiredAdd: ['inspectionItem', 'manHour', 'inspectionItemType', 'manHourGroup'],
               requiredUp: ['inspectionItem', 'manHour', 'inspectionItemType', 'manHourGroup']
            },
                testObjectData: {
            testObjectData: {
               entity: {
                  specimenName: null,
                  orderBy: {
@@ -150,8 +178,8 @@
                  font: '编辑',
                  type: 'text',
                  method: 'doDiy',
                  field:['createUserName', 'updateUserName']
               },{
                  field: ['createUserName', 'updateUserName']
               }, {
                  id: 'delete',
                  font: '删除',
                  type: 'text',
@@ -159,52 +187,130 @@
               }],
               tagField: {},
               selectField: {},
               requiredAdd:['specimenName'],
               requiredUp:['specimenName']
               requiredAdd: ['specimenName'],
               requiredUp: ['specimenName']
            },
            itemParameterEntityCopy: {},
            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() {
                if(this.radio === '0') {
                    this.showItemParameter = true;
                    this.showTestObject = false;
               this.$nextTick(() => {
         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;
                }
               }) */
            } else {
               this.showTestObject = true;
               this.showItemParameter = false;
            }
            this.getPower(radio)
         },
         refreshTable() {
                if(this.radio === '0') {
                    this.$refs['itemParameterTable'].selectList()
                } else {
                    this.$refs['testObjectTable'].selectList()
                }
            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);
                }
         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
            })
         },
         // 权限分配
         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'
         }
      }
   }