Bladeren bron

Merge branch 'master' of http://62.234.61.92:3000/wjm/mec-cloud_IntelligentManufacturing_CRM

ZYZ 1 jaar geleden
bovenliggende
commit
7ab8344650

+ 84 - 117
zkqy-ui/src/views/bussiness/OAMange.vue

@@ -39,89 +39,96 @@
       </div>
       <div class="show-body">
         <!--    流程任务列表    -->
-        <el-table :data="tableData" border stripe>
+        <el-table
+          v-loading="loading"
+          :data="tableData"
+          border
+          @selection-change="handleSelectionChange"
+        >
           <el-table-column type="selection" width="55" align="center" />
-          <el-table-column type="index" width="50" align="center" />
           <el-table-column
-            v-for="col in columns"
-            :prop="col.prop"
-            :key="col.prop"
-            :label="col.label"
+            label="流程编号"
             align="center"
-          >
+            prop="procInsId"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="流程名称"
+            align="center"
+            prop="procDefName"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="流程类别"
+            align="center"
+            prop="category"
+            width="100px"
+          />
+          <el-table-column label="流程版本" align="center" width="80px">
+            <template slot-scope="scope">
+              <el-tag size="medium">v{{ scope.row.procDefVersion }}</el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="提交时间"
+            align="center"
+            prop="createTime"
+            width="180"
+          />
+          <el-table-column label="流程状态" align="center" width="100">
             <template slot-scope="scope">
-              <span v-if="col.prop == 'benCreateTime'">{{
-                scope.row.benCreateTime.replace("T", " ")
-              }}</span>
-              <span v-else-if="col.prop == 'bepTaskProcessType'">{{
-                getDictLabel(scope.row.bepTaskProcessType, dict.type.bpm_type)
-              }}</span>
-              <span v-else-if="col.prop == 'benTaskNodeState'">{{
-                scope.row.benTaskNodeState == "0" ? "未执行" : "已执行"
-              }}</span>
-              <span v-else-if="col.prop == 'bepTaskProcessState'">{{
-                getDictLabel(
-                  scope.row.bepTaskProcessState,
-                  dict.type.task_process_state
-                )
-              }}</span>
-              <span v-else>{{ scope.row[col.prop] }}</span>
+              <el-tag v-if="scope.row.finishTime == null" size="mini"
+                >进行中</el-tag
+              >
+              <el-tag
+                type="success"
+                v-if="scope.row.finishTime != null"
+                size="mini"
+                >已完成</el-tag
+              >
             </template>
           </el-table-column>
-          <el-table-column label="操作" align="center">
+          <el-table-column
+            label="耗时"
+            align="center"
+            prop="duration"
+            width="180"
+          />
+          <el-table-column label="当前节点" align="center" prop="taskName" />
+          <el-table-column label="办理人" align="center">
             <template slot-scope="scope">
-              <div class="excute-wrap">
-                <el-button
-                  type="warning"
-                  plain
-                  size="small"
-                  class="mr10 mb5"
-                  v-show="scope.row.bepTaskProcessState == '0'"
-                  @click="opneExecuteNode(scope.row)"
-                >
-                  运行
-                </el-button>
-                <el-dropdown>
-                  <el-button type="warning" plain size="small">
-                    处理<i class="el-icon-arrow-down el-icon--right"></i>
-                  </el-button>
-                  <el-dropdown-menu slot="dropdown">
-                    <!-- <el-dropdown-item>
-                      <el-button
-                        size="mini"
-                        type="text"
-                        icon="el-icon-edit"
-                        @click="excuteHandler(scope.row)"
-                        v-hasPermi="['system:user:edit']"
-                      >处理
-                      </el-button>
-                    </el-dropdown-item> -->
-                    <el-dropdown-item>
-                      <el-dropdown size="mini">
-                        <el-button
-                          size="mini"
-                          type="text"
-                          icon="el-icon-d-arrow-right"
-                          >触发异常
-                        </el-button>
-                        <el-dropdown-menu slot="dropdown">
-                          <el-dropdown-item
-                            v-for="item in scope.row.exceptionScriptList"
-                            :key="item.id"
-                          >
-                            <el-button
-                              @click="exceptionTrigger(scope.row, item)"
-                              size="mini"
-                              type="text"
-                              >{{ item.scriptName }}
-                            </el-button>
-                          </el-dropdown-item>
-                        </el-dropdown-menu>
-                      </el-dropdown>
-                    </el-dropdown-item>
-                  </el-dropdown-menu>
-                </el-dropdown>
-              </div>
+              <label v-if="scope.row.assigneeName"
+                >{{ scope.row.assigneeName }}
+                <el-tag type="info" size="mini">{{
+                  scope.row.assigneeDeptName
+                }}</el-tag></label
+              >
+              <!--          <label v-if="scope.row.candidate">{{scope.row.candidate}}</label>-->
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="操作"
+            width="150"
+            fixed="right"
+            class-name="small-padding fixed-width"
+          >
+            <template slot-scope="scope">
+              <el-button
+                @click="handleFlowRecord(scope.row)"
+                type="text"
+                size="small"
+                >详情</el-button
+              >
+              <el-button @click="handleStop(scope.row)" type="text" size="small"
+                >取消申请</el-button
+              >
+              <el-button
+                @click="handleDelete(scope.row)"
+                type="text"
+                size="small"
+                v-hasPermi="['system:deployment:remove']"
+                >删除</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
@@ -147,53 +154,13 @@ import {
   getProcessNodeFormInfoData,
 } from "@/api/bpmprocess/run/executeProcess";
 import { triggerExceptionNode } from "@/api/bpmprocess/process";
-
 import getNodeSequence from "@/utils/bpmn/getNodeSequence";
-import GY02 from "./dialogCompments/GongYi/GY02.vue";
-import ZL01 from "./dialogCompments/ZhiLiang/ZL1.vue";
 import { getForm } from "@/api/dragform/form";
-import DialogTemplate from "@/views/dialogTemplate/components/index.vue";
-
-// 弹窗表单组件
-import GY01 from "./dialogCompments/GongYi/GY01.vue";
-import GY03 from "./dialogCompments/GongYi/GY03.vue";
-import CG1 from "./dialogCompments/test-component/CaiGou/CG1.vue";
-import CG02 from "./dialogCompments/test-component/CaiGou/CG02.vue";
-import KC01 from "./dialogCompments/test-component/KuCun/KC1.vue";
-import KC02 from "./dialogCompments/test-component/KuCun/KC02.vue";
-import GY06 from "./dialogCompments/GongYi/GY06.vue";
-import KB01 from "./dialogCompments/KongBai/KB01.vue"; //空白提示组件
-import SC01 from "./dialogCompments/ShengChan/SC01.vue";
-
-//Mec组件
-import AssignEmployees from "./dialogCompments/Mec/AssignEmployees.vue";
-import Notes from "./dialogCompments/Mec/Notes.vue";
-import NodeShow from "./dialogCompments/Mec/NodeShow.vue";
-import RecordQuality from "./dialogCompments/Mec/RecordQuality.vue";
-import ProductionProcesses from "./dialogCompments/Mec/ProductionProcesses.vue";
 
 export default {
   name: "processMange",
   props: [],
-  components: {
-    GY01,
-    DialogTemplate,
-    CG1,
-    CG02,
-    KC01,
-    GY06,
-    GY03,
-    KC02,
-    GY02,
-    KB01,
-    SC01,
-    ZL01,
-    NodeShow,
-    AssignEmployees,
-    Notes,
-    RecordQuality,
-    ProductionProcesses,
-  },
+  components: {},
   dicts: ["bpm_type", "task_process_state"],
   data() {
     return {

+ 2 - 2
zkqy-ui/src/views/bussiness/components/TaskItem.vue

@@ -20,8 +20,8 @@
         <span>{{ cardData.nodeInfo.localName || "未知类型" }}</span>
       </div>
       <div class="msg-item">
-        <i v-if="cardData.isNow" class="el-icon-loading icon"></i>
-        <i v-else-if="cardData.isDone" class="el-icon-success icon"></i>
+        <i v-if="cardData.isDone" class="el-icon-success icon"></i>
+        <i v-else-if="cardData.isNow" class="el-icon-loading icon"></i>
         <i v-else class="el-icon-more icon"></i>
         <!-- <span>admin</span> -->
       </div>

+ 238 - 0
zkqy-ui/src/views/bussiness/detail/formList.js

@@ -0,0 +1,238 @@
+export default List = [
+	{
+		jsonData: {
+			list: [
+				{
+					"type": "input",
+					"label": "计划名称",
+					"options": {
+						"type": "text",
+						"width": "100%",
+						"defaultValue": "",
+						"placeholder": "请输入计划名称",
+						"clearable": false,
+						"maxLength": null,
+						"addonBefore": "",
+						"addonAfter": "",
+						"showLabel": true,
+						"hidden": false,
+						"disabled": false
+					},
+					"model": "name",
+					"key": "input_1703556025735",
+					"help": "",
+					"rules": [
+						{
+							"required": false,
+							"message": "必填项"
+						}
+					],
+					"tableName": "plan"
+				},
+				{
+					"type": "select",
+					"label": "货品",
+					"options": {
+						"width": "100%",
+						"multiple": false,
+						"disabled": false,
+						"clearable": false,
+						"showLabel": true,
+						"hidden": false,
+						"placeholder": "请选择货品",
+						"dynamicKey": "SP",
+						"dynamic": true,
+						"options": [
+							{
+								"value": "1",
+								"label": "下拉框1"
+							},
+							{
+								"value": "2",
+								"label": "下拉框2"
+							}
+						],
+						"showSearch": false,
+						"sqlData": {
+							"dynamicName": "SP",
+							"sqls": [
+								"SELECT goods.goodsname AS `label`,goods.id AS `value`,goods.* FROM goods AS goods "
+							],
+							"echoDatas": [
+								"{\"formData\":{\"dynamicName\":\"SP\",\"tableName\":\"goods\",\"optLabelData\":\"goodsname\",\"optValueData\":\"id\"},\"filterTableData\":[]}"
+							]
+						}
+					},
+					"model": "good_id",
+					"key": "select_1703556044150",
+					"help": "",
+					"rules": [
+						{
+							"required": false,
+							"message": "必填项"
+						}
+					],
+					"tableName": "plan"
+				},
+				{
+					"type": "number",
+					"label": "计划产量",
+					"options": {
+						"width": "100%",
+						"defaultValue": null,
+						"min": null,
+						"max": null,
+						"precision": null,
+						"step": 1,
+						"showLabel": true,
+						"hidden": false,
+						"disabled": false,
+						"placeholder": "请输入计划产量"
+					},
+					"model": "plan_weight",
+					"key": "number_1703556096465",
+					"help": "",
+					"rules": [
+						{
+							"required": false,
+							"message": "必填项"
+						}
+					],
+					"tableName": "plan"
+				},
+				{
+					"type": "select",
+					"label": "发起流程",
+					"options": {
+						"width": "100%",
+						"multiple": false,
+						"disabled": false,
+						"clearable": false,
+						"showLabel": true,
+						"hidden": false,
+						"placeholder": "请选择",
+						"dynamicKey": "FQLC",
+						"dynamic": true,
+						"options": [
+							{
+								"value": "1",
+								"label": "下拉框1"
+							},
+							{
+								"value": "2",
+								"label": "下拉框2"
+							}
+						],
+						"showSearch": false,
+						"sqlData": {
+							"dynamicName": "FQLC",
+							"sqls": [
+								"SELECT bpm_process.process_name AS `label`,bpm_process.process_key AS `value`,bpm_process.* FROM bpm_process AS bpm_process WHERE bpm_process.del_flag = 0"
+							],
+							"echoDatas": [
+								"{\"formData\":{\"dynamicName\":\"FQLC\",\"tableName\":\"bpm_process\",\"optLabelData\":\"process_name\",\"optValueData\":\"process_key\"},\"filterTableData\":[{\"fieldName\":\"del_flag\",\"flagValue\":\"\",\"fieldOptions\":[],\"flagFormData\":{\"flagType\":0,\"tableField\":{\"tableName\":\"\",\"fieldName\":\"\"},\"flagValue\":\"0\"}}]}"
+							]
+						}
+					},
+					"model": "process_key",
+					"key": "select_1703556257092",
+					"help": "",
+					"rules": [
+						{
+							"required": false,
+							"message": "必填项"
+						}
+					],
+					"tableName": "plan"
+				}
+			],
+			config: {
+				"layout": "horizontal",
+				"labelCol": {
+					"xs": 4,
+					"sm": 4,
+					"md": 4,
+					"lg": 4,
+					"xl": 4,
+					"xxl": 4
+				},
+				"labelWidth": 100,
+				"labelLayout": "flex",
+				"wrapperCol": {
+					"xs": 18,
+					"sm": 18,
+					"md": 18,
+					"lg": 18,
+					"xl": 18,
+					"xxl": 18
+				},
+				"hideRequiredMark": false,
+				"customStyle": "",
+				"formName": "计划表单",
+				"nickFormName": "JHBD",
+				"mainTableName": "plan",
+				"tdId": 3
+			}
+		},
+		dynamicData: {},
+		defaultValue: {},
+	}
+	, {
+		list: [
+			{
+				type: "input",
+				label: "货品名称",
+				options: {
+					type: "text",
+					width: "100%",
+					defaultValue: "",
+					placeholder: "请输入",
+					clearable: false,
+					maxLength: null,
+					addonBefore: "",
+					addonAfter: "",
+					showLabel: true,
+					hidden: false,
+					disabled: false,
+				},
+				model: "goodsname",
+				key: "input_1703555460307",
+				help: "",
+				rules: [
+					{
+						required: false,
+						message: "必填项",
+					},
+				],
+				tableName: "goods",
+			},
+		],
+		config: {
+			layout: "horizontal",
+			labelCol: {
+				xs: 4,
+				sm: 4,
+				md: 4,
+				lg: 4,
+				xl: 4,
+				xxl: 4,
+			},
+			labelWidth: 100,
+			labelLayout: "flex",
+			wrapperCol: {
+				xs: 18,
+				sm: 18,
+				md: 18,
+				lg: 18,
+				xl: 18,
+				xxl: 18,
+			},
+			hideRequiredMark: false,
+			customStyle: "",
+			formName: "货品表单",
+			nickFormName: "HPBD",
+			mainTableName: "goods",
+			tdId: 1,
+		},
+	},
+]

+ 34 - 0
zkqy-ui/src/views/bussiness/detail/formList.vue

@@ -0,0 +1,34 @@
+<template>
+  <div class="list-wrap">
+    <k-form-build
+      v-if="jsonData"
+      class="formBuild"
+      ref="addFromRef"
+      :dynamicData="dynamicData"
+      :defaultValue="defaultValue"
+      :value="jsonData"
+    />
+  </div>
+</template>
+
+<script>
+import formList from "./formList.js";
+export default {
+  name: "FormList",
+  props: [],
+  components: {},
+  data() {
+    return {
+      formList: [
+        {
+          formJson: formList,
+        },
+      ],
+    };
+  },
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style scoped></style>

+ 75 - 0
zkqy-ui/src/views/bussiness/detail/index.vue

@@ -0,0 +1,75 @@
+<template>
+  <div class="app-container">
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span class="el-icon-document">已发任务</span>
+        <el-button
+          style="float: right"
+          size="mini"
+          type="danger"
+          @click="goBack"
+          >关闭</el-button
+        >
+      </div>
+      <el-tabs tab-position="top" v-model="activeName" @tab-click="() => {}">
+        <!--表单信息-->
+        <el-tab-pane label="表单信息" name="1">
+          <el-col :span="16" :offset="4">
+            <div class="test-form"></div>
+          </el-col>
+        </el-tab-pane>
+        <!--流程流转记录-->
+        <el-tab-pane label="流转记录" name="2">
+          <el-col :span="16" :offset="4"> </el-col>
+        </el-tab-pane>
+        <!--流程图-->
+        <el-tab-pane label="流程图" name="3"> </el-tab-pane>
+      </el-tabs>
+    </el-card>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "Record",
+  components: {
+    Parser,
+    flow,
+  },
+  props: {},
+  data() {
+    return {};
+  },
+  created() {},
+  methods: {},
+};
+</script>
+<style lang="scss" scoped>
+.test-form {
+  margin: 15px auto;
+  width: 800px;
+  padding: 15px;
+}
+
+.clearfix:before,
+.clearfix:after {
+  display: table;
+  content: "";
+}
+.clearfix:after {
+  clear: both;
+}
+
+.box-card {
+  width: 100%;
+  margin-bottom: 20px;
+}
+
+.el-tag + .el-tag {
+  margin-left: 10px;
+}
+
+.my-label {
+  background: #e1f3d8;
+}
+</style>

+ 1 - 0
zkqy-ui/src/views/bussiness/dialogCompments/Mec/ProductionProcesses.vue

@@ -242,6 +242,7 @@ export default {
       isEdit: false,
       form: {
         taskNodeOtherState: "0",
+        master_task: {},
       },
       tableData: [],
       editingRow: {},

+ 29 - 12
zkqy-ui/src/views/bussiness/dialogCompments/Mec/RecordQuality.vue

@@ -6,9 +6,7 @@
         <span>工装信息</span>
       </div>
       <div class="message">
-        <div class="list" 
-          v-for="(item,index) in message"
-          :key="index">
+        <div class="list" v-for="(item, index) in message" :key="index">
           <div class="list-card">
             <p>{{ item.title }}</p>
             <p class="content">{{ form.masterTask[item.prop] }}</p>
@@ -31,12 +29,26 @@
       </div>
     </div>
     <div class="card">
-      <el-form :rules="rules" :model="form" ref="form" label-position="top"  label-width="100px" :inline="false" size="normal">
+      <el-form
+        :rules="rules"
+        :model="form"
+        ref="form"
+        label-position="top"
+        label-width="100px"
+        :inline="false"
+        size="normal"
+      >
         <el-form-item label="质控卡号:" prop="card">
-          <el-input v-model="form.card"  placeholder="请输入内容"></el-input>
+          <el-input v-model="form.card" placeholder="请输入内容"></el-input>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" class="btn" icon="el-icon-success" @click="submitHandler">记录质控卡</el-button>
+          <el-button
+            type="primary"
+            class="btn"
+            icon="el-icon-success"
+            @click="submitHandler"
+            >记录质控卡</el-button
+          >
         </el-form-item>
       </el-form>
     </div>
@@ -52,9 +64,13 @@ export default {
     return {
       isEdit: false,
       form: {
-        card: '',
+        card: "",
+        taskNo: "",
+        mapNumber: "",
+        taskNumber: "",
+        master_task: {},
       },
-       rules: {
+      rules: {
         card: [{ required: true, trigger: "change" }],
       },
       message: [
@@ -81,8 +97,9 @@ export default {
   watch: {
     myFormData: {
       handler(nval) {
-        this.form = JSON.parse(JSON.stringify(nval.resultMap));
-        this.$set(this.form, 'card', nval.resultMap.qualityControlCard);
+        // this.form = JSON.parse(JSON.stringify(nval.resultMap));
+        Object.assign(this.form, nval.resultMap);
+        this.$set(this.form, "card", nval.resultMap.qualityControlCard);
         this.isEdit = this.form.taskProcessKey && this.form.taskNodeKey;
       },
       deep: true,
@@ -231,8 +248,8 @@ export default {
   }
 }
 .btn {
-  background: rgb(123,213,195);
-  border:  rgb(123,213,195);
+  background: rgb(123, 213, 195);
+  border: rgb(123, 213, 195);
   float: right;
   border-bottom: #e2e1e1 solid 1px;
 }

+ 7 - 2
zkqy-ui/src/views/bussiness/progressShow.vue

@@ -114,7 +114,7 @@ export default {
           benCreateTime: item.nodeLogList[0].taskNodeType
             ? item.nodeLogList[0].createTime
             : "", //开始或结束时间  需要根据bepTaskProcessState状态 来判定
-          currentNodeKey: item.taskNodeKey, //当前节点key
+          currentNodeKey: item.taskNodeNextKey, //当前节点key
           cardList: [],
           doneNodeList: item.nodeLogList,
         };
@@ -198,7 +198,12 @@ export default {
             item.cardList[i].isNow = false;
           }
         }
-        item.cardList.splice(0, currentIndex + 1);
+        if (currentIndex == item.cardList.length - 1) {
+          item.cardList.splice(0, currentIndex + 1);
+        } else {
+          item.cardList.splice(0, currentIndex);
+        }
+
         item.cardList.unshift(...item.doneNodeList);
         console.log(item.cardList);
         item.cardList.forEach((node, index) => {