ysy 1 rok temu
rodzic
commit
928b302ce3

+ 1 - 0
src/views/bpm/handleTask/components/bomApprover/submit.vue

@@ -1,4 +1,5 @@
 <template>
+  <!--流程标识: bom_approver  -->
   <el-col :span="16" :offset="6">
     <el-form label-width="100px" ref="formRef" :model="form">
 

+ 116 - 0
src/views/bpm/handleTask/components/bomApproverJSYY/BOM-search.vue

@@ -0,0 +1,116 @@
+<!-- 搜索表单 -->
+<template>
+  <el-form
+    label-width="77px"
+    class="ele-form-search"
+    @keyup.enter.native="search"
+    @submit.native.prevent
+  >
+    <el-row :gutter="10">
+      <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+        <el-form-item label="BOM编码">
+          <el-input clearable v-model.trim="where.code" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+        <el-form-item label="BOM名称">
+          <el-input clearable v-model.trim="where.name" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+        <el-form-item label="产品编码">
+          <el-input
+            clearable
+            v-model.trim="where.categoryCode"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+        <el-form-item label="产品名称">
+          <el-input
+            clearable
+            v-model.trim="where.categoryName"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+        <el-form-item label="状态">
+          <el-select
+            clearable
+            v-model.trim="where.status"
+            placeholder="请选择"
+            class="w100"
+          >
+            <el-option
+              v-for="item in Object.entries(statusOpt)"
+              :key="item[0]"
+              :label="item[1]"
+              :value="item[0]"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-col>
+
+
+      <el-col v-bind="styleResponsive ? { md: 12 } : { span: 12 }">
+        <div class="ele-form-actions">
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            class="ele-btn-icon"
+            @click="search"
+          >
+            查询
+          </el-button>
+
+          <el-button @click="reset" icon="el-icon-refresh" class="ele-btn-icon"
+            >重置</el-button
+          >
+        </div>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+
+<script>
+  export default {
+    name: 'BomSearchForm',
+    props: {
+      statusOpt: Object
+    },
+    data() {
+      // 默认表单数据
+      const defaultWhere = {
+        name: '',
+        code: '',
+
+        categoryName: '',
+        status: ''
+      };
+      return {
+        defaultWhere,
+        // 表单数据
+        where: { ...defaultWhere }
+      };
+    },
+    computed: {
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      }
+    },
+    methods: {
+      /* 搜索 */
+      search() {
+        this.$emit('search', this.where);
+      },
+      /*  重置 */
+      reset() {
+        this.where = { ...this.defaultWhere };
+        this.search();
+      }
+    }
+  };
+</script>

+ 131 - 0
src/views/bpm/handleTask/components/bomApproverJSYY/detailDialog.vue

@@ -0,0 +1,131 @@
+<template>
+  <div>
+    <headerTitle title="Bom审批"></headerTitle>
+    <BOMSearch @search="reload" :statusOpt="statusOpt" />
+
+    <ele-pro-table
+      ref="table"
+      :columns="columns"
+      :datasource="datasource"
+      class="dict-table"
+      tool-class="ele-toolbar-actions"
+    >
+    </ele-pro-table>
+  </div>
+</template>
+
+<script>
+  import BOMSearch from './BOM-search.vue';
+  import { getBomPageCategoryId } from '@/api/bpm/components/bomApprover';
+
+  export default {
+    components: {
+      BOMSearch
+    },
+    props: {
+      businessId: {
+        default: ''
+      }
+    },
+    mixins: [],
+
+    data() {
+      return {
+        visible: false,
+        title: '',
+
+        columns: [
+          {
+            label: '序号',
+            columnKey: 'index',
+            type: 'index',
+            width: 55,
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'code',
+            label: 'BOM编码',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'name',
+            label: 'BOM名称',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'categoryCode',
+            label: '产品编码',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'categoryName',
+            label: '产品名称',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'dosage',
+            label: '用量',
+            showOverflowTooltip: true
+          },
+
+          {
+            prop: 'measuringUnit',
+            label: '计量单位',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'versions',
+            label: '版本'
+          },
+          {
+            prop: 'status ',
+            label: '状态',
+            formatter: (row) => {
+              return this.statusOpt[+row.status];
+            }
+          },
+          {
+            prop: 'createName',
+            label: '创建人',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'createTime',
+            label: '创建日期',
+            showOverflowTooltip: true
+          }
+        ],
+        statusOpt: {
+          '': '全部',
+          0: '已停用',
+          1: '已发布'
+        }
+      };
+    },
+    created() {},
+    methods: {
+      /* 表格数据源 */
+      datasource({ where, page, limit }) {
+        return getBomPageCategoryId({
+          ...where,
+          pageNum: page,
+          size: limit,
+          id: this.businessId,
+        });
+      },
+
+      /* 刷新表格 */
+      reload(where) {
+        this.$refs.table.reload({ where });
+      }
+    }
+  };
+</script>
+
+<style lang="scss" scoped>
+  :deep(.el-table__expanded-cell) {
+    padding-bottom: 30px !important;
+    border-bottom: 12px solid #ccffcc !important;
+  }
+</style>

+ 122 - 0
src/views/bpm/handleTask/components/bomApproverJSYY/submit.vue

@@ -0,0 +1,122 @@
+<template>
+    <!--流程标识: bom_release   医药bom审批
+   -->
+  <el-col :span="16" :offset="6">
+    <el-form label-width="100px" ref="formRef" :model="form">
+
+      <el-form-item label="审批建议" prop="reason" 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="handleAudit(0)">驳回
+      </el-button>
+
+
+
+    </div>
+
+  </el-col>
+</template>
+
+<script>
+
+import { approveTaskWithVariables } from '@/api/bpm/task';
+import { notPass } from '@/api/bpm/components/bomApprover';
+
+// 流程实例的详情页,可用于审批
+export default {
+  name: '',
+  components: {
+
+  },
+  props: {
+    businessId: {
+      default: ''
+    },
+    taskId: {
+      default: ''
+    },
+    id: {
+      default: ''
+    },
+
+    taskDefinitionKey: {
+      default: ''
+    }
+  },
+  data() {
+    return {
+      form: {
+        reason: ''
+      },
+
+    };
+  },
+  created() {
+
+  },
+  methods: {
+
+
+    async handleAudit(status) {
+
+      this._approveTaskWithVariables(status);
+    },
+    async _approveTaskWithVariables(status) {
+
+      if (status == 1) {
+
+        approveTaskWithVariables({
+          businessId: this.businessId,
+          id: this.taskId,
+          reason: this.form.reason,
+          variables: { pass: true }
+
+        }).then((res) => {
+          if (res.data.code != '-1') {
+            this.$emit('handleAudit', {
+              status,
+              title: ''
+            });
+          }
+        });
+      } else if (status == 0) {
+        notPass({
+          businessId: this.businessId,
+          id: this.taskId,
+          reason: this.form.reason,
+        }).then((res) => {
+          if (res.data.code != '-1') {
+            this.$emit('handleAudit', {
+              status,
+              title: '驳回'
+            });
+          }
+        });
+      }
+
+    },
+
+    getTableValue() {
+      return new Promise((resolve, reject) => {
+        this.$emit('getTableValue', async (data) => {
+          resolve(await data);
+        });
+      });
+    },
+
+
+
+  }
+};
+</script>
+
+<style lang="scss"></style>

+ 116 - 0
src/views/bpm/handleTask/components/bomApproverJSdevice/BOM-search.vue

@@ -0,0 +1,116 @@
+<!-- 搜索表单 -->
+<template>
+  <el-form
+    label-width="77px"
+    class="ele-form-search"
+    @keyup.enter.native="search"
+    @submit.native.prevent
+  >
+    <el-row :gutter="10">
+      <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+        <el-form-item label="BOM编码">
+          <el-input clearable v-model.trim="where.code" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+        <el-form-item label="BOM名称">
+          <el-input clearable v-model.trim="where.name" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+        <el-form-item label="产品编码">
+          <el-input
+            clearable
+            v-model.trim="where.categoryCode"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+        <el-form-item label="产品名称">
+          <el-input
+            clearable
+            v-model.trim="where.categoryName"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+        <el-form-item label="状态">
+          <el-select
+            clearable
+            v-model.trim="where.status"
+            placeholder="请选择"
+            class="w100"
+          >
+            <el-option
+              v-for="item in Object.entries(statusOpt)"
+              :key="item[0]"
+              :label="item[1]"
+              :value="item[0]"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-col>
+
+
+      <el-col v-bind="styleResponsive ? { md: 12 } : { span: 12 }">
+        <div class="ele-form-actions">
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            class="ele-btn-icon"
+            @click="search"
+          >
+            查询
+          </el-button>
+
+          <el-button @click="reset" icon="el-icon-refresh" class="ele-btn-icon"
+            >重置</el-button
+          >
+        </div>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+
+<script>
+  export default {
+    name: 'BomSearchForm',
+    props: {
+      statusOpt: Object
+    },
+    data() {
+      // 默认表单数据
+      const defaultWhere = {
+        name: '',
+        code: '',
+
+        categoryName: '',
+        status: ''
+      };
+      return {
+        defaultWhere,
+        // 表单数据
+        where: { ...defaultWhere }
+      };
+    },
+    computed: {
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      }
+    },
+    methods: {
+      /* 搜索 */
+      search() {
+        this.$emit('search', this.where);
+      },
+      /*  重置 */
+      reset() {
+        this.where = { ...this.defaultWhere };
+        this.search();
+      }
+    }
+  };
+</script>

+ 131 - 0
src/views/bpm/handleTask/components/bomApproverJSdevice/detailDialog.vue

@@ -0,0 +1,131 @@
+<template>
+  <div>
+    <headerTitle title="Bom审批"></headerTitle>
+    <BOMSearch @search="reload" :statusOpt="statusOpt" />
+
+    <ele-pro-table
+      ref="table"
+      :columns="columns"
+      :datasource="datasource"
+      class="dict-table"
+      tool-class="ele-toolbar-actions"
+    >
+    </ele-pro-table>
+  </div>
+</template>
+
+<script>
+  import BOMSearch from './BOM-search.vue';
+  import { getBomPageCategoryId } from '@/api/bpm/components/bomApprover';
+
+  export default {
+    components: {
+      BOMSearch
+    },
+    props: {
+      businessId: {
+        default: ''
+      }
+    },
+    mixins: [],
+
+    data() {
+      return {
+        visible: false,
+        title: '',
+
+        columns: [
+          {
+            label: '序号',
+            columnKey: 'index',
+            type: 'index',
+            width: 55,
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'code',
+            label: 'BOM编码',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'name',
+            label: 'BOM名称',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'categoryCode',
+            label: '产品编码',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'categoryName',
+            label: '产品名称',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'dosage',
+            label: '用量',
+            showOverflowTooltip: true
+          },
+
+          {
+            prop: 'measuringUnit',
+            label: '计量单位',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'versions',
+            label: '版本'
+          },
+          {
+            prop: 'status ',
+            label: '状态',
+            formatter: (row) => {
+              return this.statusOpt[+row.status];
+            }
+          },
+          {
+            prop: 'createName',
+            label: '创建人',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'createTime',
+            label: '创建日期',
+            showOverflowTooltip: true
+          }
+        ],
+        statusOpt: {
+          '': '全部',
+          0: '已停用',
+          1: '已发布'
+        }
+      };
+    },
+    created() {},
+    methods: {
+      /* 表格数据源 */
+      datasource({ where, page, limit }) {
+        return getBomPageCategoryId({
+          ...where,
+          pageNum: page,
+          size: limit,
+          id: this.businessId,
+        });
+      },
+
+      /* 刷新表格 */
+      reload(where) {
+        this.$refs.table.reload({ where });
+      }
+    }
+  };
+</script>
+
+<style lang="scss" scoped>
+  :deep(.el-table__expanded-cell) {
+    padding-bottom: 30px !important;
+    border-bottom: 12px solid #ccffcc !important;
+  }
+</style>

+ 121 - 0
src/views/bpm/handleTask/components/bomApproverJSdevice/submit.vue

@@ -0,0 +1,121 @@
+<template>
+    <!--流程标识: bom_release_device  器械bom   -->
+  <el-col :span="16" :offset="6">
+    <el-form label-width="100px" ref="formRef" :model="form">
+
+      <el-form-item label="审批建议" prop="reason" 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="handleAudit(0)">驳回
+      </el-button>
+
+
+
+    </div>
+
+  </el-col>
+</template>
+
+<script>
+
+import { approveTaskWithVariables } from '@/api/bpm/task';
+import { notPass } from '@/api/bpm/components/bomApprover';
+
+// 流程实例的详情页,可用于审批
+export default {
+  name: '',
+  components: {
+
+  },
+  props: {
+    businessId: {
+      default: ''
+    },
+    taskId: {
+      default: ''
+    },
+    id: {
+      default: ''
+    },
+
+    taskDefinitionKey: {
+      default: ''
+    }
+  },
+  data() {
+    return {
+      form: {
+        reason: ''
+      },
+
+    };
+  },
+  created() {
+
+  },
+  methods: {
+
+
+    async handleAudit(status) {
+
+      this._approveTaskWithVariables(status);
+    },
+    async _approveTaskWithVariables(status) {
+
+      if (status == 1) {
+
+        approveTaskWithVariables({
+          businessId: this.businessId,
+          id: this.taskId,
+          reason: this.form.reason,
+          variables: { pass: true }
+
+        }).then((res) => {
+          if (res.data.code != '-1') {
+            this.$emit('handleAudit', {
+              status,
+              title: ''
+            });
+          }
+        });
+      } else if (status == 0) {
+        notPass({
+          businessId: this.businessId,
+          id: this.taskId,
+          reason: this.form.reason,
+        }).then((res) => {
+          if (res.data.code != '-1') {
+            this.$emit('handleAudit', {
+              status,
+              title: '驳回'
+            });
+          }
+        });
+      }
+
+    },
+
+    getTableValue() {
+      return new Promise((resolve, reject) => {
+        this.$emit('getTableValue', async (data) => {
+          resolve(await data);
+        });
+      });
+    },
+
+
+
+  }
+};
+</script>
+
+<style lang="scss"></style>