wsx 11 месяцев назад
Родитель
Сommit
a54f3a0bb4

+ 8 - 0
src/api/inspectionWork/index.js

@@ -140,3 +140,11 @@ export async function verificationQualityInspector(id) {
   return Promise.reject(new Error(res.data.message));
 }
 
+//转派
+export async function transferQualityWork(data) {
+  const res = await request.post('/qms/quality_work_order/transfer', data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+}
+

+ 7 - 1
src/views/inspectionWork/components/newQualityContentTabs.vue

@@ -326,6 +326,7 @@
       <!--  -->
       <el-tab-pane label="质检方案" name="3">
         <el-button
+          v-if="type !== 'detail'"
           @click="addInspectionTemplate"
           type="primary"
           style="margin-top: 5px"
@@ -388,7 +389,12 @@
             </template>
           </el-table-column>
 
-          <el-table-column fixed="right" label="操作" width="80">
+          <el-table-column
+            fixed="right"
+            label="操作"
+            width="80"
+            v-if="type !== 'detail'"
+          >
             <template slot-scope="scope">
               <el-popconfirm
                 class="ele-action"

+ 130 - 0
src/views/inspectionWork/components/transfer.vue

@@ -0,0 +1,130 @@
+<template>
+  <el-dialog :visible.sync="transferVisible" width="35%" @close="close">
+    <el-form ref="form" :model="form" label-width="150px" :rules="rules">
+      <el-form-item label="执行部门:" prop="groupId">
+        <deptSelect v-model="form.groupId" @changeGroup="searchDeptNodeClick" />
+      </el-form-item>
+
+      <el-form-item label="执行人员:" prop="qualityId">
+        <el-select
+          v-model="form.qualityId"
+          @change="changeExecutor"
+          filterable
+          style="width: 100%"
+        >
+          <el-option
+            v-for="item in executorList"
+            :key="item.id"
+            :value="item.id"
+            :label="item.name"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+    </el-form>
+
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="close">取 消 </el-button>
+      <el-button type="primary" @click="consfirm">确 定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  import deptSelect from '@/components/CommomSelect/dept-select.vue';
+  import { transferQualityWork } from '@/api/inspectionWork';
+  import { getUserPage } from '@/api/system/organization';
+
+  export default {
+    name: 'Transfer',
+    props: {
+      transferVisible: {
+        type: Boolean,
+        default: false
+      },
+      id: {
+        type: String,
+        default: ''
+      }
+    },
+    components: {
+      deptSelect
+    },
+    data() {
+      return {
+        form: {
+          id: '',
+          groupId: '',
+          groupName: '',
+          qualityId: '',
+          qualityName: ''
+        },
+        rules: {
+          groupId: [
+            { required: true, message: '请选择执行部门', trigger: 'change' }
+          ],
+          qualityId: [
+            { required: true, message: '请选择执行人员:', trigger: 'change' }
+          ]
+        },
+        executorList: []
+      };
+    },
+    methods: {
+      searchDeptNodeClick(info, row) {
+        console.log(info, row);
+
+        if (info) {
+          const params = { groupId: info };
+          this.form.groupId = info;
+          this.form.groupName = row.name;
+          this.getUserList(params);
+        } else {
+          this.form.qualityId = null;
+          this.form.qualityName = null;
+          this.executorList = [];
+        }
+      },
+      // 获取审核人列表、巡点检人员
+      async getUserList(params) {
+        try {
+          let data = { pageNum: 1, size: -1 };
+          // 如果传了参数就是获取巡点检人员数据
+          if (params) {
+            data = Object.assign(data, params);
+          }
+          const res = await getUserPage(data);
+          this.executorList = res.list;
+          this.form.qualityId = null;
+          this.form.qualityName = null;
+        } catch (error) {}
+      },
+      changeExecutor(val) {
+        console.log(val);
+
+        if (val) {
+          this.form.qualityId = val;
+          this.form.qualityName = this.executorList.find(
+            (item) => item.id === val
+          ).name;
+        }
+      },
+      consfirm() {
+        this.$refs.form.validate(async (valid) => {
+          if (valid) {
+            await transferQualityWork(this.form);
+            this.$emit('success', this.form.id);
+          }
+        });
+        console.log(this.form);
+      },
+      close() {
+        this.$emit('update:transferVisible', false);
+      }
+    },
+    created() {
+      this.form.id = this.id;
+    }
+  };
+</script>
+
+<style lang="scss" scoped></style>

+ 34 - 3
src/views/inspectionWork/index.vue

@@ -73,6 +73,15 @@
             @click="openEdit('edit', row)"
             >报工</el-link
           >
+
+          <el-link
+            type="primary"
+            :underline="false"
+            v-if="row.status == 0"
+            @click="openTransfer(row.id)"
+            >转派</el-link
+          >
+
           <el-link type="primary" :underline="false" @click="openNumber(row)"
             >合格证</el-link
           >
@@ -127,12 +136,20 @@
       :addOpen="addOpen"
       @closeModel="closeModel"
     />
+
+    <Transfer
+      v-if="transferVisible"
+      :transferVisible.sync="transferVisible"
+      @success="transferConfirm"
+      :id="transferId"
+    ></Transfer>
   </div>
 </template>
 <script>
   import Certificate from './components/Certificate.vue';
   import search from './components/search.vue';
   import jimureportBrowse from '@/components/jimureport/browseModal.vue';
+  import Transfer from './components/transfer.vue';
   import {
     getList,
     removeItem,
@@ -149,7 +166,8 @@
     components: {
       search,
       jimureportBrowse,
-      Certificate
+      Certificate,
+      Transfer
     },
     data() {
       return {
@@ -351,7 +369,9 @@
             label: '已报工'
           }
         ],
-        addOpen: false
+        addOpen: false,
+        transferVisible: false,
+        transferId: ''
       };
     },
     created() {
@@ -423,7 +443,7 @@
         return getList({
           ...where,
           pageNum: page,
-          size: limit,
+          size: limit
           // status: 0,
           // qualityMode:'02'
         });
@@ -535,6 +555,17 @@
           });
           this.qualityMode = list;
         }
+      },
+      openTransfer(id) {
+        this.transferVisible = true;
+        this.transferId = id;
+      },
+      transferConfirm(id) {
+        console.log(id);
+        
+        this.transferVisible = false;
+        this.$message.success('转派成功')
+        this.done();
       }
     }
   };