yusheng 6 месяцев назад
Родитель
Сommit
6c754b91bc

+ 39 - 0
src/api/bpm/components/inspectionProjectRequest/index.js

@@ -0,0 +1,39 @@
+import request from '@/utils/request';
+
+// 列表
+
+export async function getList(params) {
+  const res = await request.get(`/qms/requestentrust/page`, { params });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+//收样
+
+export async function sampleCollection(data) {
+  const res = await request.put(`/qms/requestentrust/sampleCollection`, data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+//修改
+export async function updateRequestentrust(data) {
+  const res = await request.put(`/qms/requestentrust/update`, data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// 获取详情
+export async function getById(id) {
+  const res = await request.get(`/qms/requestentrust/getById/${id}`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 24 - 0
src/enum/dict.js

@@ -340,3 +340,27 @@ export const purchaseOrderProgressStatusEnum = [
   { value: 200, label: '已入库' },
   { value: 1000, label: '完成' }
 ];
+
+// 质检方案状态
+export const inspectionProjectStatus = [
+  {
+    label: '待检',
+    value: 0
+  },
+  {
+    label: '已检',
+    value: 1
+  },
+  {
+    label: '已派单',
+    value: 2
+  },
+  {
+    label: '已请托',
+    value: 3
+  },
+  {
+    label: '检验中',
+    value: 4
+  }
+];

+ 166 - 0
src/views/bpm/handleTask/components/inspectionProjectRequest/detailDialog.vue

@@ -0,0 +1,166 @@
+<template>
+  <div>
+    <header-title title="质检项信息"></header-title>
+    <ele-pro-table
+      :needPage="false"
+      :columns="tableColumns"
+      :datasource="list"
+      rowKey="id"
+      ref="table"
+    ></ele-pro-table>
+    <header-title title="派单信息"></header-title>
+    <el-form
+      ref="form"
+      :model="form"
+      :rules="rules"
+      class="el-form-box"
+      label-width="120px"
+    >
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="质检项请托单号" prop="code">
+            <el-input
+              v-model="form.code"
+              placeholder=" "
+              disabled
+            ></el-input> </el-form-item
+        ></el-col>
+        <el-col :span="8">
+          <el-form-item label="任务名称" prop="name">
+            <el-input
+              v-model="form.name"
+              placeholder="请输入"
+              disabled
+            ></el-input> </el-form-item></el-col
+      ></el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="执行部门" prop="executeDeptId">
+            <el-input
+              v-model="form.executeDeptName"
+              placeholder="请输入"
+              disabled
+            ></el-input> </el-form-item
+        ></el-col>
+        <el-col :span="8">
+          <el-form-item label="执行人" prop="executeUserId">
+            <el-input
+              v-model="form.executeUserName"
+              placeholder="请输入"
+              disabled
+            ></el-input> </el-form-item></el-col
+      ></el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="要求完成时间" prop="requiredCompletionTime">
+            <el-date-picker
+              v-model="form.requiredCompletionTime"
+              disabled
+              style="width: 100%"
+              type="datetime"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              placeholder=" "
+            >
+            </el-date-picker> </el-form-item
+        ></el-col>
+      </el-row>
+    </el-form>
+  </div>
+</template>
+
+<script>
+  import { getById } from '@/api/bpm/components/inspectionProjectRequest';
+  import { inspectionProjectStatus } from '@/enum/dict.js';
+
+  export default {
+    props: {
+      businessId: {
+        default: ''
+      }
+    },
+    data() {
+      return {
+        form: {},
+        list: [],
+        tableColumns: [
+          {
+            width: 45,
+            type: 'index',
+            columnKey: 'index',
+            align: 'center',
+            fixed: 'left'
+          },
+          {
+            minWidth: 150,
+            prop: 'qualitySchemeTemplateCode',
+            align: 'center',
+            label: '质检方案编码',
+            showOverflowTooltip: true
+          },
+          {
+            minWidth: 120,
+            prop: 'qualitySchemeTemplateName',
+            align: 'center',
+            label: '质检方案名称',
+            showOverflowTooltip: true
+          },
+          {
+            minWidth: 100,
+            prop: 'categoryLevelClassName',
+            align: 'center',
+            label: '质检类型',
+            showOverflowTooltip: true
+          },
+          {
+            minWidth: 130,
+            prop: 'inspectionCode',
+            align: 'center',
+            label: '质检项编码',
+            showOverflowTooltip: true
+          },
+          {
+            minWidth: 120,
+            prop: 'inspectionName',
+            align: 'center',
+            label: '质检项名称',
+            showOverflowTooltip: true
+          },
+          {
+            minWidth: 150,
+            prop: 'defaultValue',
+            align: 'center',
+            label: '工艺参数',
+            showOverflowTooltip: true
+          },
+          {
+            minWidth: 150,
+            prop: 'status',
+            align: 'center',
+            formatter: (row) => {
+              return (
+                inspectionProjectStatus.find(
+                  (item) => item.value === row.status
+                )?.label || ''
+              );
+            },
+
+            label: '状态',
+            showOverflowTooltip: true
+          }
+        ]
+      };
+    },
+
+    created() {
+      this.init();
+    },
+    methods: {
+      async init() {
+        this.form = await getById(this.businessId);
+        this.list = this.form.templateList;
+      }
+    }
+  };
+</script>
+
+<style lang="scss" scoped></style>

+ 140 - 0
src/views/bpm/handleTask/components/inspectionProjectRequest/submit.vue

@@ -0,0 +1,140 @@
+<template>
+  <el-col :span="16" :offset="6">
+    <el-form label-width="100px" ref="formRef" :model="form">
+      <el-form-item
+        label="审批建议"
+        style="margin-bottom: 20px"
+        :rules="{
+          required: true,
+          message: '请选择',
+          trigger: 'change'
+        }"
+      >
+        <el-input
+          type="textarea"
+          v-model="form.reason"
+          placeholder="请输入审批建议"
+        />
+      </el-form-item>
+    </el-form>
+    <div style="margin-left: 10%; margin-bottom: 20px; font-size: 14px">
+      <el-button
+        icon="el-icon-edit-outline"
+        type="success"
+        size="mini"
+        @click="handleAudit(1)"
+        >通过
+      </el-button>
+
+      <el-button
+        icon="el-icon-circle-close"
+        type="danger"
+        size="mini"
+        @click="rejectTask(0)"
+        >驳回
+      </el-button>
+    </div>
+  </el-col>
+</template>
+
+<script>
+  import {
+    approveTaskWithVariables,
+    rejectTask,
+    cancelTask
+  } from '@/api/bpm/task';
+
+  // 流程实例的详情页,可用于审批
+  export default {
+    name: '',
+
+    props: {
+      businessId: {
+        default: ''
+      },
+      taskId: {
+        default: ''
+      },
+      id: {
+        default: ''
+      },
+      taskDefinitionKey: {
+        default: ''
+      }
+    },
+    data() {
+      return {
+        form:{
+          reason:''
+        }
+      };
+    },
+    created() {},
+    methods: {
+      /** 处理转办审批人 */
+      handleUpdateAssignee() {
+        this.$emit('handleUpdateAssignee');
+      },
+      /** 退回 */
+      handleBackList() {
+        this.$emit('handleBackList');
+      },
+
+      async handleAudit(status) {
+        let API = !!status ? approveTaskWithVariables : rejectTask;
+        API({
+          id: this.taskId,
+          reason: this.form.reason,
+          variables: {
+            pass: !!status
+          }
+        });
+        this.$emit('handleAudit', {
+          status,
+          title: status === 0 ? '驳回' : ''
+        });
+      },
+      rejectTask(status) {
+        rejectTask({
+          id: this.taskId,
+          reason: this.form.reason,
+          variables: {
+            pass: !!status
+          }
+        });
+        this.$emit('handleAudit', {
+          status,
+          title: status === 0 ? '驳回' : ''
+        });
+      },
+
+      //更多
+      handleCommand(command) {
+        if (command === 'cancel') {
+          this.$confirm('是否确认作废?', {
+            type: 'warning',
+            cancelButtonText: '取消',
+            confirmButtonText: '确定'
+          })
+            .then(() => {
+              cancelTask({
+                id: this.id,
+                taskId: this.taskId,
+                reason: this.form.reason,
+                businessId: this.businessId
+              })
+                .then(() => {
+                  this.$emit('handleClose');
+                })
+                .catch(() => {
+                  this.$message.error('流程作废失败');
+                });
+            })
+            .catch(() => {});
+        }
+      }
+    }
+  };
+</script>
+
+<style lang="scss"></style>