gaoaoy
2024-03-15 8c51a45d5a220f5ddb4b29a50b3bd732e5ac8521
src/components/view/b1-inspection-order.vue
@@ -69,117 +69,126 @@
</style>
<template>
   <div class="role_manage">
      <div>
         <el-row class="title">
            <el-col :span="12" style="padding-left: 20px;">检验下单</el-col>
            <el-col :span="12" style="text-align: right;">
               <el-button size="medium" type="primary" @click="playOrder">下单</el-button>
            </el-col>
         </el-row>
   <div class="inspection_order">
      <div style="width: 100%;height: 100%;" v-if="active == 0">
         <div>
            <el-row class="title">
               <el-col :span="12" style="padding-left: 20px;">检验下单</el-col>
               <el-col :span="12" style="text-align: right;">
                  <el-button size="medium" type="primary" @click="playOrder(1)">下单</el-button>
               </el-col>
            </el-row>
         </div>
         <div class="search">
            <div class="search_thing">
               <div class="search_label">委托编号:</div>
               <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                     v-model="componentData.entity.deviceName" @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="componentData.entity.specificationModel" @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">
            <ul class="tab">
               <li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label}}</li>
            </ul>
            <!-- 语法 子组件通过 this.$emit +传入方法名 调用父组件方法 例如  this.$emit(selectAllByOne) 就需在父组件声明并传入  @selectAllByOne="selectAllByOne"-->
            <ValueTable ref="ValueTable" :url="$api.insOrder.selectInsOrderParameter" :componentData="componentData"
               :key="upIndex" style="height: calc(100% - 44px)" @selectAllByOne="selectAllByOne"
               @handleDataLook="handleDataLook" @download="download" @handleVerify="handleVerify" @handlEquash="handlEquash"
               @handleIssued="handleIssued" />
         </div>
         <!-- 审核 -->
         <el-dialog title="下单审核" :visible.sync="verifyDialogVisible" width="30%" :before-close="handleClose">
            <p style="font-size:16px;color:#333333" v-if="!isPass">委托编号<span
                  style="color:#34BD66">ZTMS2023071001</span>的信息是否通过</p>
            <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
               <el-form-item label="请输入样品库位号:">
                  <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
               </el-form-item>
            </el-form>
            <span slot="footer" class="dialog-footer">
               <el-row v-if="!isPass">
                  <el-button @click="handleClose">退 回</el-button>
                  <el-button type="primary" @click="submitForm" :loading="upLoad">通 过</el-button>
               </el-row>
               <el-row v-else>
                  <el-button @click="handleClose">返 回</el-button>
                  <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
               </el-row>
            </span>
         </el-dialog>
         <!-- 撤销 -->
         <el-dialog title="下单撤销" :visible.sync="quashDialogVisible" width="30%" :before-close="handleClose">
            <p style="font-size:16px;color:#333333" v-if="!isQuash">委托编号<span
                  style="color:#34BD66">ZTMS2023071001</span>的信息是否撤销</p>
            <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
               <el-form-item label="请输入撤销原因:">
                  <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
               </el-form-item>
            </el-form>
            <span slot="footer" class="dialog-footer">
               <el-row v-if="!isQuash">
                  <el-button @click="handleClose">取 消</el-button>
                  <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
               </el-row>
               <el-row v-else>
                  <el-button @click="handleClose">返 回</el-button>
                  <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
               </el-row>
            </span>
         </el-dialog>
         <!-- 下发 -->
         <el-dialog title="检验下发" :visible.sync="issuedDialogVisible" width="30%" :before-close="handleClose">
            <el-form :label-position="labelPosition" :model="formData2" label-width="150px" ref="ruleForm">
               <el-form-item label="约定时间:">
                  <el-date-picker style="width:100%" format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="formData2.appointed2"
                     type="date" size="small" placeholder="选择时间">
                  </el-date-picker>
               </el-form-item>
               <el-form-item >
               </el-form-item>
               <el-form-item label="指派人员:">
                  <el-select v-model="formData2.id" placeholder="请选择" size="small" style="width:100%">
                     <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
                     </el-option>
                  </el-select>
               </el-form-item>
            </el-form>
            <span slot="footer" class="dialog-footer">
               <el-row>
                  <el-button @click="handleClose2">取 消</el-button>
                  <el-button type="primary" @click="submitForm2" :loading="upLoad">确 定</el-button>
               </el-row>
            </span>
         </el-dialog>
         <el-dialog title="数据查看" :visible.sync="dataDialogVisible" width="70%" :before-close="handleClose2">
            <div style="height: 70vh;overflow-y: auto;">
               <ValueTable ref="ValueTableDataLook" :url="$api.deviceScope.selectDeviceParameter"
                  :componentData="componentDataDataLook" :key="upIndex" />
            </div>
         </el-dialog>
      </div>
      <div class="search">
         <div class="search_thing">
            <div class="search_label">委托编号:</div>
            <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                  v-model="componentData.entity.deviceName" @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="componentData.entity.specificationModel" @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 style="width: 100%;height: 100%;" v-if="active == 1">
         <Add/>
      </div>
      <div class="table">
         <ul class="tab">
            <li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label}}</li>
         </ul>
         <!-- 语法 子组件通过 this.$emit +传入方法名 调用父组件方法 例如  this.$emit(selectAllByOne) 就需在父组件声明并传入  @selectAllByOne="selectAllByOne"-->
         <ValueTable ref="ValueTable" :url="$api.deviceScope.selectDeviceParameter" :componentData="componentData"
            :key="upIndex" style="height: calc(100% - 44px)" @selectAllByOne="selectAllByOne"
            @handleDataLook="handleDataLook" @download="download" @handleVerify="handleVerify" @handlEquash="handlEquash"
            @handleIssued="handleIssued" />
      </div>
      <!-- 审核 -->
      <el-dialog title="下单审核" :visible.sync="verifyDialogVisible" width="30%" :before-close="handleClose">
         <p style="font-size:16px;color:#333333" v-if="!isPass">委托编号<span
               style="color:#34BD66">ZTMS2023071001</span>的信息是否通过</p>
         <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
            <el-form-item label="请输入样品库位号:">
               <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
            </el-form-item>
         </el-form>
         <span slot="footer" class="dialog-footer">
            <el-row v-if="!isPass">
               <el-button @click="handleClose">退 回</el-button>
               <el-button type="primary" @click="submitForm" :loading="upLoad">通 过</el-button>
            </el-row>
            <el-row v-else>
               <el-button @click="handleClose">返 回</el-button>
               <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
            </el-row>
         </span>
      </el-dialog>
      <!-- 撤销 -->
      <el-dialog title="下单撤销" :visible.sync="quashDialogVisible" width="30%" :before-close="handleClose">
         <p style="font-size:16px;color:#333333" v-if="!isQuash">委托编号<span
               style="color:#34BD66">ZTMS2023071001</span>的信息是否撤销</p>
         <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
            <el-form-item label="请输入撤销原因:">
               <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
            </el-form-item>
         </el-form>
         <span slot="footer" class="dialog-footer">
            <el-row v-if="!isQuash">
               <el-button @click="handleClose">取 消</el-button>
               <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
            </el-row>
            <el-row v-else>
               <el-button @click="handleClose">返 回</el-button>
               <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
            </el-row>
         </span>
      </el-dialog>
      <!-- 下发 -->
      <el-dialog title="检验下发" :visible.sync="issuedDialogVisible" width="30%" :before-close="handleClose">
         <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm">
            <el-form-item label="约定时间:">
               <el-date-picker style="width:100%" format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="formData.downTime"
                  type="date" size="small" placeholder="选择时间">
               </el-date-picker>
            </el-form-item>
            <el-form-item label="指派人员:">
               <el-select v-model="formData.equipmentManager" placeholder="请选择" size="small" style="width:100%">
                  <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
                  </el-option>
               </el-select>
            </el-form-item>
         </el-form>
         <span slot="footer" class="dialog-footer">
            <el-row>
               <el-button @click="handleClose">取 消</el-button>
               <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
            </el-row>
         </span>
      </el-dialog>
      <el-dialog title="数据查看" :visible.sync="dataDialogVisible" width="70%" :before-close="handleClose">
         <div style="height: 70vh;overflow-y: auto;">
            <ValueTable ref="ValueTableDataLook" :url="$api.deviceScope.selectDeviceParameter"
               :componentData="componentDataDataLook" :key="upIndex" />
         </div>
      </el-dialog>
   </div>
</template>
<script>
   import ValueTable from '../tool/value-table.vue'
   import Add from '../do/b1-ins-order/add.vue'
   export default {
      components: {
         ValueTable
         ValueTable,
         Add
      },
      data() {
         return {
@@ -190,17 +199,22 @@
            verifyDialogVisible: false,
            quashDialogVisible: false,
            issuedDialogVisible: false,
            issuedDialogVisible2: false,
            dataDialogVisible: false,
            formData: {},
            formData0:{},
            formData1:{},
            formData2:{
               id:'',
               orderName:'',
               data:'',
            },
            // 人员列表
            personList: [],
            labelPosition: 'right',
            componentData: {
               entity: {
                  deviceStatus: null,
                  deviceName: null,
                  specificationModel: null,
                  largeCategory: null,
                  state: 1,
                  orderBy: {
                     field: 'id',
                     order: 'asc'
@@ -236,21 +250,21 @@
                  method: 'handleIssued'
               }],
               tagField: {
                  deviceStatus: {
                  type: {
                     select: [{
                        value: 0,
                        type: 'success',
                        label: '正常'
                        label: '普通'
                     }, {
                        value: 1,
                        type: 'warning',
                        label: '报废'
                        label: '优先'
                     }, {
                        value: 2,
                        type: 'danger',
                        label: '保修'
                        label: '紧急'
                     }]
                  }
                  },
               },
               linkEvent:{
                 deviceName:{
@@ -300,11 +314,11 @@
            upLoad: false,
            tabList: [{
                  label: '检验处理',
                  value: 0
                  value: 1
               },
               {
                  label: '待审核',
                  value: 1
                  value: 0
               },
               {
                  label: '退回',
@@ -316,13 +330,27 @@
               },
            ],
            tabIndex: 0,
            active: 0
         }
      },
      mounted() {
         this.entityCopy = this.HaveJson(this.componentData.entity)
         this.getPower()
         this.getAuthorizedPerson()
      },
      methods: {
         getAuthorizedPerson(){
           this.$axios.post(this.$api.deviceScope.selectDevicePrincipal).then(res => {
               let data = []
               res.data.forEach(a=>{
                  data.push({
                     label: a.name,
                     value: a.id
                  })
               })
               this.personList = data
            })
      },
         refreshTable() {
            this.$refs['ValueTable'].selectList()
         },
@@ -362,6 +390,13 @@
            this.dataDialogVisible = false;
            this.upLoad = false;
         },
         handleClose2() {
            this.verifyDialogVisible = false;
            this.quashDialogVisible = false;
            this.issuedDialogVisible = false;
            this.dataDialogVisible = false;
            this.upLoad = false;
         },
         // 详情
         selectAllByOne(row) {
            //打开弹框
@@ -390,6 +425,27 @@
         handleIssued(row) {
            this.issuedDialogVisible = true;
         },
         submitForm2(){
            this.upLoad = true;
            this.$axios.post(this.$api.insOrder.getDeviceManager, this.formData2, {
               headers: {
                  'Content-Type': 'application/json'
               }
            }).then(res => {
               if (res.code === 201) {
                  this.upLoad = false
                  return
               }
               this.$message.success('修改成功')
               this.upLoad = false
               this.refreshTable()
               this.dialogVisible = false
            }).catch(e => {
               this.$message.error('修改失败')
               this.dialogVisible = false
               this.upLoad = false
            })
         },
         submitForm() {
            this.upLoad = true;
            let authorizedPerson = this.formData.authorizedPerson.length > 0 ? this.formData.authorizedPerson.join(',') : ''
@@ -398,7 +454,7 @@
            delete this.formData.createUser
            delete this.formData.updateUser
            this.formData.authorizedPerson = authorizedPerson
            this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, {
            this.$axios.post(this.$api.insOrder.getDeviceManager, this.formData, {
               headers: {
                  'Content-Type': 'application/json'
               }
@@ -418,10 +474,14 @@
            })
         },
         // 下单
         playOrder() {},
         playOrder(num) {
            this.active = num
         },
         handleTab(m, i) {
            this.tabIndex = i;
            this.componentData.entity.state = m.value
            this.refreshTable()
         }
      }
   }
</script>
</script>