Ver código fonte

同步自定义表单组件

lph 1 ano atrás
pai
commit
9f39ac6153

+ 2 - 2
zkqy-ui/src/views/bussiness/dialogCompments/GongYi/GY03.vue

@@ -59,7 +59,7 @@
         </el-col>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" size="default" @click="submitHandler"
+        <el-button type="primary" size="default" @click="submitHanfler"
           >确认提交</el-button
         >
       </el-form-item>
@@ -140,7 +140,7 @@ export default {
     resetForm() {
       this.$refs.form.resetFields();
     },
-    async submitHandler() {
+    async submitHanfler() {
       let res = await this.$refs.form?.validate();
       if (res) {
         let payLoad = {};

+ 31 - 0
zkqy-ui/src/views/bussiness/dialogCompments/KongBai/KB01.vue

@@ -0,0 +1,31 @@
+<template>
+  <div class="wrap">
+    <span class="content">暂无表单填写,请直接运行。</span>
+  </div>
+</template>
+
+<script>
+import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
+export default {
+  name: "KB01",
+  props: ["formData", "row"],
+  data() {
+    return {};
+  },
+
+  mounted() {},
+
+  methods: {
+    // 获取表单数据
+    async getFormData() {
+      return {
+        flag: true,
+        msg: "",
+        data: {},
+      };
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 157 - 0
zkqy-ui/src/views/bussiness/dialogCompments/Mec/AssignEmployees.vue

@@ -0,0 +1,157 @@
+<template>
+  <div class="app-container">
+    <el-form
+      :model="form"
+      :rules="rules"
+      ref="form"
+      label-width="100px"
+      align="center"
+      :inline="false"
+      size="normal"
+    >
+      <el-form-item prop="teamId">
+        <el-select v-model="form.teamId">
+          <el-option
+            v-for="item in form.masterTeam"
+            :key="item.value"
+            :label="item.name"
+            :value="item.id"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          size="small"
+          class="btn"
+          @click="submitHandler"
+          icon="el-icon-success"
+          >绑定班组</el-button
+        >
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+
+<script>
+import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
+export default {
+  name: "AssignEmployees",
+  props: ["formData", "row"],
+  data() {
+    return {
+      isEdit: false,
+      form: {
+        teamId: "",
+      },
+      rules: {
+        teamId: [{ required: true, trigger: "change" }],
+      },
+    };
+  },
+  computed: {
+    myFormData() {
+      return this.formData;
+    },
+  },
+  watch: {
+    myFormData: {
+      handler(nval) {
+        this.form = nval.resultMap;
+        this.isEdit = this.form.taskProcessKey && this.form.taskNodeKey;
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
+  mounted() {},
+  methods: {
+    async submitHandler() {
+      console.log(this.row);
+      let res = await this.$refs.form?.validate();
+      if (res) {
+        let payLoad = {};
+        let { teamId } = this.form;
+        if (this.isEdit) {
+          let { taskProcessKey, taskNodeKey } = this.myFormData.resultMap;
+          payLoad.updateCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "task_team_relevance",
+              },
+              conditionMap: {
+                task_process_key: taskProcessKey,
+                task_node_key: taskNodeKey,
+              },
+              commMap: {
+                team_id: teamId,
+                task_id: this.row.bepTaskPlanKey,
+              },
+            },
+          ];
+        } else {
+          payLoad.insertCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "task_team_relevance",
+              },
+              addListMap: [
+                {
+                  team_id: teamId,
+                  task_id: this.row.bepTaskPlanKey,
+                  taskProcessKey: this.row.benTaskProcessKey,
+                  taskNodeKey: this.row.benTaskNodeKey,
+                },
+              ],
+            },
+          ];
+        }
+        submitNodeForm(payLoad).then((response) => {
+          if (response.code == 200) {
+            this.$modal.msgSuccess("保存成功");
+          } else {
+            this.$modal.error("保存失败,请稍后再试");
+          }
+        });
+      }
+    },
+    async getFormData() {
+      let formData = {
+        flag: false,
+        msg: "",
+      };
+      try {
+        let valid = await this.$refs.form.validate();
+        if (valid) {
+          formData.flag = true;
+          formData.data = this.form;
+          return formData;
+        } else {
+          formData.msg = "表单校验异常,请规范填写表单数据";
+          return formData;
+        }
+      } catch (error) {
+        // console.log(error);
+        formData.msg = "表单校验异常,请规范填写表单数据";
+        return formData;
+      }
+    },
+  },
+
+};
+</script>
+
+<style lang="scss" scoped>
+.app-container {
+  .btn {
+    background: rgb(123, 213, 195);
+    border: rgb(123, 213, 195);
+    float: right;
+  }
+}
+
+::v-deep .el-select {
+  width: 100%;
+}
+</style>

+ 236 - 0
zkqy-ui/src/views/bussiness/dialogCompments/Mec/NodeShow.vue

@@ -0,0 +1,236 @@
+<template>
+  <div class="form-wrap">
+    <div class="cardwrap">
+      <div class="title-area">
+        <span><i class="el-icon-help mr5"></i>工序</span>
+      </div>
+      <div class="node-list">
+        <div
+          :class="{
+            node: true,
+          }"
+          v-for="(item, index) of nodeList"
+          :key="item.num"
+        >
+          <!-- currentNode: item.nodeId == currentNodeKey, -->
+          <!-- @click="shiftNode(item)" -->
+          <span class="num">>{{ index + 1 }}</span>
+          <span class="title">{{ item.nodeInfo.name }}</span>
+          <span class="time">1分钟</span>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import getNodeSequence from "@/utils/bpmn/getNodeSequence";
+import { xmlStr2XmlObj } from "@/utils/bpmn/xml";
+export default {
+  name: "NodeShow",
+  props: ["formData", "row"],
+  components: {},
+  data() {
+    return {
+      search: "",
+      nodeList: [],
+      currentNodeKey: "",
+      resFormData: {},
+      columns: [
+        {
+          label: "编号",
+          prop: "id",
+        },
+        {
+          label: "编者",
+          prop: "editor",
+        },
+        {
+          label: "时间",
+          prop: "time",
+        },
+      ],
+      material: [
+        {
+          label: "名称",
+          prop: "name",
+        },
+        {
+          label: "尺寸",
+          prop: "size",
+        },
+        {
+          label: "规格",
+          prop: "model",
+        },
+        {
+          label: "数量",
+          prop: "num",
+        },
+        {
+          label: "备注",
+          prop: "note",
+        },
+      ],
+    };
+  },
+  watch: {
+    myFormData: {
+      handler(val) {},
+      deep: true,
+      immediate: true,
+    },
+    myRow: {
+      handler(val) {
+        this.currentNodeKey = val.benTaskNodeKey;
+        if (val?.bepTaskProcessXmlContent) {
+          let nodeSequence = getNodeSequence(
+            xmlStr2XmlObj(val.bepTaskProcessXmlContent)
+          );
+          this.nodeList = nodeSequence?.filter(
+            (item) => item.nodeInfo.localName != "exceptionTask"
+          );
+          // .slice(0, this.getIndexByNodeId(nodeSequence, this.currentNodeKey))
+          // ?.filter((item) => item.nodeInfo.localName != "exceptionTask");
+          // this.nodeList = getNodeSequence(
+          //   xmlStr2XmlObj(val.bepTaskProcessXmlContent)
+          // )?.filter((item) => item.nodeInfo.localName != "exceptionTask");
+
+          //去掉开始和结束节点
+          // this.nodeList.shift();
+          // this.nodeList[this.nodeList.length - 1]?.nodeInfo.localName ==
+          //   "endEvent" && this.nodeList.pop();
+          console.log(this.nodeList);
+        }
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
+  computed: {
+    myFormData() {
+      return this.formData;
+    },
+    myRow() {
+      return this.row;
+    },
+  },
+  methods: {
+    async getFormData() {
+      let formData = {
+        flag: false,
+        msg: "",
+      };
+
+      return {
+        flag: true,
+        data: this.resFormData,
+      };
+      // if(){}
+      // try {
+      //   let valid = await this.$refs.form.validate();
+      //   if (valid) {
+      //     formData.flag = true;
+      //     formData.data = this.form;
+      //     return formData;
+      //   } else {
+      //     formData.msg = "表单校验异常,请规范填写表单数据";
+      //     return formData;
+      //   }
+      // } catch (error) {
+      //   // console.log(error);
+      //   formData.msg = "表单校验异常,请规范填写表单数据";
+      //   return formData;
+      // }
+    },
+    async shiftNode(item) {
+      if (item.nodeId == this.currentNodeKey) return;
+      this.resFormData = {
+        taskProcessKey: this.row.bepTaskKey,
+        taskNodeKey: this.currentNodeKey,
+        taskBackNodeKey: item.nodeId,
+      };
+      this.currentNodeKey = item.nodeId;
+      // try {
+      //   let res = await this.$modal.confirm(
+      //     "是否确认切换流程至<" + item.nodeInfo.name + ">异常?"
+      //   );
+      //   console.log(res, item, this.row);
+      //   let payLoad = {
+      //     taskProcessKey: this.row.bepTaskKey,
+      //     taskNodeKey: this.currentNodeKey,
+      //     taskBackNodeKey: item.nodeId,
+      //   };
+      // } catch (error) {
+      //   this.$message.info("取消成功");
+      // }
+    },
+
+    getIndexByNodeId(nodeSequence, nodeId) {
+      return nodeSequence.findIndex((item) => item.nodeId == nodeId);
+    },
+  },
+};
+</script>
+
+<style scoped lang="scss">
+.form-wrap {
+  display: flex;
+  flex-direction: column;
+  width: 100%;
+
+  .cardwrap {
+    display: flex;
+    flex-direction: column;
+    width: 100%;
+    padding-bottom: 20px;
+    .title-area {
+      display: flex;
+      align-items: center;
+      padding-bottom: 5px;
+      font-size: 16px;
+      border-bottom: 2px solid rgba(0, 0, 0, 0.404);
+      box-sizing: border-box;
+    }
+    .table-area {
+      padding-top: 10px;
+    }
+    .node-list {
+      display: flex;
+      flex-wrap: wrap;
+      padding-top: 10px;
+      .node {
+        width: 33.3333%;
+        height: 50px;
+        display: flex;
+        align-items: center;
+        border-bottom: 1px dotted gray;
+        padding: 0 5px;
+        // &:hover {
+        //   border: 1px dotted rgb(0, 195, 255);
+        //   background-color: rgba(70, 194, 231, 0.63);
+        // }
+        .num {
+          color: #40c3a8;
+          font-size: 16px;
+          margin-right: 5px;
+        }
+        .title {
+          /* // color: #ececee34; */
+          font-size: 14px;
+          flex: 1;
+          /* // ma */
+        }
+        .time {
+          font-size: 12px;
+          color: rgba(48, 44, 44, 0.247);
+          margin-right: 10px;
+        }
+      }
+      .currentNode {
+        background-color: #7dec8f !important;
+      }
+    }
+  }
+}
+</style>

+ 130 - 0
zkqy-ui/src/views/bussiness/dialogCompments/Mec/Notes.vue

@@ -0,0 +1,130 @@
+<template>
+    <div class="app-containeteamIdr">
+        <el-form :model="form" ref="form" label-position="top" label-width="100px" align="left" :inline="false" size="normal">
+            <el-form-item label="备注:" prop="remark">
+                <el-input v-model="form.remark"></el-input>
+            </el-form-item>
+            <el-form-item>
+                <el-button type="primary" size="small" @click="submitHandler" icon="el-icon-success">记录</el-button>
+            </el-form-item>
+        </el-form>
+    </div>
+</template>
+
+<script>
+import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
+export default {
+    name: 'Notes',
+    props: ["formData", "row"],
+    data() {
+        return {
+            isEdit:false,
+            form: {
+                remark: ''
+            },
+        };
+    },
+    computed: {
+        myFormData() {
+        return this.formData;
+        },
+    },
+    watch: {
+        myFormData: {
+            handler(nval) {
+                this.form = nval.resultMap;
+                // this.form.hp = this.form.goodId
+                console.log(this.form);
+                // this.isEdit = this.form.id ? true : false;
+                this.isEdit = this.form.taskProcessKey && this.form.taskNodeKey
+            },
+            deep: true,
+            immediate: true,
+        },
+    },
+    mounted() {
+        
+    },
+    methods: {
+        async submitHandler() {
+            console.log(this.row);
+            let res = await this.$refs.form?.validate();
+            if (res) {
+                let payLoad = {};
+                let { remark } = this.form;
+                if (this.isEdit) {
+                let { taskProcessKey, taskNodeKey } = this.myFormData.resultMap;
+                payLoad.updateCommonEntityList = [
+                    {
+                    basicMap: {
+                        tableName: "material_matching",
+                    },
+                    conditionMap: {
+                        task_process_key: taskProcessKey,
+                        task_node_key: taskNodeKey,
+                    },
+                    commMap: {
+                        task_id: this.row.bepTaskPlanKey,
+                        remark: remark
+                    },
+                    },
+                ];
+                } else {
+                payLoad.insertCommonEntityList = [
+                    {
+                    basicMap: {
+                        tableName: "material_matching",
+                    },
+                    addListMap: [
+                        {
+                        task_id: this.row.bepTaskPlanKey,
+                        remark: remark,
+                        taskProcessKey: this.row.benTaskProcessKey,
+                        taskNodeKey: this.row.benTaskNodeKey,
+                        },
+                    ],
+                    },
+                ];
+            }
+            submitNodeForm(payLoad).then((response) => {
+                if (response.code == 200) {
+                    this.$modal.msgSuccess("保存成功");
+                } else {
+                    this.$modal.error("保存失败,请稍后再试");
+                }
+            });
+            }
+        },
+        async getFormData() {
+            let formData = {
+                flag: false,
+                msg: "",
+            };
+            try {
+                let valid = await this.$refs.form.validate();
+                if (valid) {
+                formData.flag = true;
+                formData.data = this.form;
+                return formData;
+                } else {
+                formData.msg = "表单校验异常,请规范填写表单数据";
+                return formData;
+                }
+            } catch (error) {
+                // console.log(error);
+                formData.msg = "表单校验异常,请规范填写表单数据";
+                return formData;
+            }
+        },
+    },
+    
+};
+</script>
+
+<style lang="scss" scoped>
+ ::v-deep .el-button{
+        background: rgb(123,213,195);
+        border:  rgb(123,213,195);
+        float: right;
+    }
+</style>

+ 663 - 0
zkqy-ui/src/views/bussiness/dialogCompments/Mec/PersonalDistribution.vue

@@ -0,0 +1,663 @@
+<template>
+    <div class="app-container">
+      <div class="leftMessage">
+        <div class="list" v-for="(item, index) in baseMessage" :key="index">
+          <span class="title">
+            {{ item.title }}
+          </span>
+          <span v-if="item.prop == 'taskNo'" class="content">
+            {{ form.master_task[item.prop] }}
+          </span>
+          <span
+            v-else-if="item.prop == 'mapNumber'"
+            class="content"
+            style="background: rgb(235, 237, 242); color: rgb(232, 83, 152)"
+          >
+            {{ form.master_task[item.prop] }}
+          </span>
+          <span
+            v-else-if="item.prop == 'mapName'"
+            class="content"
+            style="background: rgb(235, 237, 242); color: rgb(232, 83, 152)"
+          >
+            {{ form.master_task[item.prop] }}
+          </span>
+          <span
+            v-else-if="item.prop == 'modelNumber'"
+            class="content"
+            style="background: rgb(235, 237, 242); color: rgb(232, 83, 152)"
+          >
+            {{ form.master_task[item.prop] }}
+          </span>
+          <span
+            v-else-if="item.prop == 'craftRoute'"
+            class="content"
+            style="background: rgb(235, 237, 242); color: rgb(232, 83, 152)"
+          >
+            {{ form.master_task[item.prop] }}
+          </span>
+          <span
+            v-else
+            class="content"
+            style="background: rgb(235, 237, 242); color: rgb(232, 83, 152)"
+          >
+            {{ form.record_quality_control_card[item.prop] }}
+          </span>
+        </div>
+        <div></div>
+        <div class="content"></div>
+      </div>
+      <div class="rightMessage">
+        <div class="top">
+          <div class="state">
+            <div class="list">
+              <span>工序状态:</span>
+              <p id="state">
+                {{
+                  form.taskNodeOtherState
+                    ? stateObj[form.taskNodeOtherState]
+                    : "初始"
+                }}
+              </p>
+            </div>
+            <div class="list">
+              <span>是否外协:</span>
+              <p>
+                <el-checkbox
+                  @change="
+                    (val) => {
+                      updateHandler(form.taskNodeOtherState, val);
+                    }
+                  "
+                  v-model="checked"
+                ></el-checkbox>
+              </p>
+            </div>
+          </div>
+        </div>
+        <div class="button">
+          <el-button-group prop="state">
+            <el-button
+              type="primary"
+              icon="el-icon-video-play"
+              plain
+              round
+              @click="updateHandler('1', checked)"
+              >开始</el-button
+            >
+            <el-button
+              type="danger"
+              icon="el-icon-video-pause"
+              plain
+              @click="updateHandler('2', checked)"
+              >暂停</el-button
+            >
+            <el-button
+              type="success"
+              icon="el-icon-circle-check"
+              plain
+              @click="updateHandler('3', checked)"
+              >完成</el-button
+            >
+            <el-button
+              type="info"
+              icon="el-icon-refresh"
+              plain
+              round
+              @click="updateHandler('0', checked)"
+              >重置</el-button
+            >
+          </el-button-group>
+        </div>
+        <div class="middle" v-show="!checked">
+          <el-table :data="oldTableData" border ref="addTableRowRef">
+            <el-table-column label="人员姓名">
+              <template slot-scope="scope">
+                <el-input
+                  v-if="scope.row.isEdit"
+                  v-model="editingRow.personnelName"
+                ></el-input>
+                <span v-else>{{ scope.row.personnelName }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="分配工时">
+              <template slot-scope="scope">
+                <el-input-number
+                  v-if="scope.row.isEdit"
+                  v-model="editingRow.allottedTime"
+                  controls-position="right"
+                  @change="handleChange"
+                  :min="0"
+                  :step="0.25"
+                  size="small"
+                ></el-input-number>
+                <span v-else>{{ scope.row.allottedTime }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" width="120" align="center">
+              <template slot-scope="scope">
+                <el-dropdown v-if="!scope.row.isEdit">
+                  <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="changeHandler(scope.row)"
+                        >修改</el-button
+                      ></el-dropdown-item
+                    >
+                    <el-dropdown-item
+                      ><el-button
+                        size="mini"
+                        type="text"
+                        icon="el-icon-delete"
+                        @click="deleteOne(scope.row)"
+                        v-hasPermi="['system:dict:remove']"
+                        >删除</el-button
+                      >
+                    </el-dropdown-item>
+                  </el-dropdown-menu>
+                </el-dropdown>
+                <el-dropdown v-else>
+                  <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="saveOne"
+                        >保存</el-button
+                      ></el-dropdown-item
+                    >
+                    <el-dropdown-item
+                      ><el-button
+                        size="mini"
+                        type="text"
+                        icon="el-icon-delete"
+                        @click="cancelHandler(scope.row)"
+                        v-hasPermi="['system:dict:remove']"
+                        >取消</el-button
+                      >
+                    </el-dropdown-item>
+                  </el-dropdown-menu>
+                </el-dropdown>
+                <!-- <el-button
+                  icon="el-icon-delete"
+                  size="mini"
+                  @click="deleteTableRow(scope.$index)"
+                  >删除</el-button
+                > -->
+              </template>
+            </el-table-column>
+          </el-table>
+          <div class="name">人员及工时分配</div>
+          <el-table :data="tableData" border ref="addTableRowRef">
+            <el-table-column label="人员姓名">
+              <template slot-scope="scope">
+                <el-input v-model="scope.row.personnelName"></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column label="分配工时">
+              <template slot-scope="scope">
+                <el-input-number
+                  v-model="scope.row.allottedTime"
+                  controls-position="right"
+                  @change="handleChange"
+                  :min="0"
+                  :step="0.25"
+                  size="small"
+                ></el-input-number>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" width="120" align="center">
+              <template slot-scope="scope">
+                <el-button
+                  icon="el-icon-delete"
+                  size="mini"
+                  @click="deleteTableRow(scope.$index)"
+                  >删除</el-button
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+          <div class="block">
+            <el-pagination layout="prev, pager, next" :total="50">
+            </el-pagination>
+          </div>
+          <el-button
+            size="mini"
+            icon="el-icon-plus"
+            type="primary"
+            @click="addTableRow"
+            >新 增</el-button
+          >
+          <el-button
+            size="mini"
+            icon="el-icon-check"
+            type="success"
+            @click="saveTableRow"
+            >保 存</el-button
+          >
+          <div class="total">
+            <span>当前工序总工时: 10</span>
+            <span>当前已分配工时: 10</span>
+            <span>当前剩余工时: 10</span>
+          </div>
+        </div>
+      </div>
+    </div>
+</template>
+<script>
+import {
+submitNodeForm,
+changeNodeState,
+} from "@/api/bpmprocess/runDialogApi/index";
+import { getProcessNodeFormInfoData } from "@/api/bpmprocess/run/executeProcess";
+export default {
+name: "ProductionProcesses",
+props: ["formData", "row"],
+data() {
+    return {
+    checked: true,
+    isEdit: false,
+    form: {
+        taskNodeOtherState: "0",
+    },
+    tableData: [],
+    editingRow: {},
+    oldTableData: [
+        {
+        id: 1,
+        personnelName: "芝麻林",
+        allottedTime: 1,
+        isEdit: false,
+        },
+    ],
+    newRow: {},
+
+    baseMessage: [
+        { title: "任务", prop: "taskNo" },
+        { title: "图号", prop: "mapNumber" },
+        { title: "名称", prop: "mapName" },
+        { title: "数量", prop: "modelNumber" },
+        { title: "工艺", prop: "craftRoute" },
+        { title: "质控", prop: "qualityControlCard" },
+    ],
+    stateObj: {
+        0: "初始",
+        1: "开始",
+        2: "暂停",
+        3: "完成",
+    },
+    };
+},
+computed: {
+    myFormData() {
+    return this.formData;
+    },
+},
+watch: {
+    myFormData: {
+    handler(nval) {
+        if (!nval) return;
+        this.initData(nval);
+    },
+    deep: true,
+    immediate: true,
+    },
+},
+methods: {
+    async updateHandler(state, flag) {
+    flag = flag ? "true" : "false";
+    let payLoad = {
+        // conditionMap: {
+        taskProcessKey: this.row.benTaskProcessKey,
+        taskNodeKey: this.row.benTaskNodeKey,
+        // },
+        // commMap: {
+        taskNodeOtherState: state,
+        task1: flag,
+        // },
+    };
+
+    changeNodeState(payLoad).then((response) => {
+        if (response.code == 200) {
+        this.$modal.msgSuccess("修改成功");
+        this.form.taskNodeOtherState = state;
+        } else {
+        this.$modal.error("修改失败,请稍后再试");
+        }
+    });
+    },
+    async submitHandler() {
+    console.log(this.row);
+    let res = await this.$refs.form?.validate();
+    if (res) {
+        let payLoad = {};
+        let { state } = this.form;
+        console.log(this.form);
+        if (this.isEdit) {
+        let { taskKey, taskNodeKey } = this.myFormData.resultMap;
+        payLoad.updateCommonEntityList = [
+            {
+            basicMap: {
+                tableName: "bpm_execute_node",
+            },
+            conditionMap: {
+                task_key: taskKey,
+                task_node_key: taskNodeKey,
+            },
+            commMap: {
+                task_node_other_state: state,
+            },
+            },
+        ];
+        } else {
+        payLoad.insertCommonEntityList = [
+            {
+            basicMap: {
+                tableName: "bpm_execute_node",
+            },
+            addListMap: [
+                {
+                task_node_other_state: state,
+                taskKey: this.row.benTaskProcessKey,
+                taskNodeKey: this.row.benTaskNodeKey,
+                },
+            ],
+            },
+        ];
+        }
+        submitNodeForm(payLoad).then((response) => {
+        if (response.code == 200) {
+            this.$modal.msgSuccess("保存成功");
+        } else {
+            this.$modal.error("保存失败,请稍后再试");
+        }
+        });
+    }
+    },
+    async getFormData() {
+    return {
+        flag: true,
+        data: {},
+    };
+
+    let formData = {
+        flag: false,
+        msg: "",
+    };
+    try {
+        let valid = await this.$refs.form.validate();
+        if (valid) {
+        formData.flag = true;
+        formData.data = this.form;
+        return formData;
+        } else {
+        formData.msg = "表单校验异常,请规范填写表单数据";
+        return formData;
+        }
+    } catch (error) {
+        // console.log(error);
+        formData.msg = "表单校验异常,请规范填写表单数据";
+        return formData;
+    }
+    },
+    addTableRow() {
+    const newRow = {
+        personnelName: "",
+        allottedTime: 0,
+    };
+    this.tableData.push(newRow);
+    },
+    deleteTableRow(index) {
+    if (index !== -1) {
+        this.tableData.splice(index, 1);
+    }
+    },
+    // 批量保存表格数据回调
+    async saveTableRow() {
+    console.log(this.tableData);
+    let payLoad = {};
+    payLoad.insertCommonEntityList = [
+        {
+        basicMap: {
+            tableName: "process_inspect_personnel",
+        },
+        addListMap: [
+            // {
+            //   task_node_other_state: state,
+            //   taskKey: this.row.benTaskProcessKey,
+            //   taskNodeKey: this.row.benTaskNodeKey,
+            // },
+        ],
+        },
+    ];
+    payLoad.insertCommonEntityList[0].addListMap = this.tableData.map(
+        (item) => {
+        let { personnelName, allottedTime } = item;
+        return {
+            personnelName,
+            allottedTime,
+            taskProcessKey: this.row.benTaskProcessKey,
+            taskNodeKey: this.row.benTaskNodeKey,
+        };
+        }
+    );
+    // this.tableData = [];
+    let res = await submitNodeForm(payLoad);
+    if (res.code == 200) {
+        this.$message.success("保存成功");
+        this.tableData = [];
+        this.refreshData(this.row);
+    } else {
+        this.$message.warning("网络异常,请稍后再试");
+    }
+    },
+    // 刷新弹窗数据
+    async refreshData(row) {
+    let {
+        benTaskNodeFormKey,
+        benTaskNodeFormType,
+        bepTaskPlanKey,
+        bepTaskKey,
+        bepTaskNodeKey,
+        benTaskProcessKey,
+        benmTaskAutomaticScriptTriggerType,
+        bepTaskNodeNextKey,
+    } = row;
+    let payLoad = {
+        taskNodeKey: bepTaskNodeNextKey,
+        taskProcessKey: benTaskProcessKey,
+        taskAutomaticScriptTriggerType: benmTaskAutomaticScriptTriggerType,
+        taskPlanKey: bepTaskPlanKey,
+    };
+    let res = await getProcessNodeFormInfoData(payLoad);
+    if (res.code == 200) {
+        this.updataTableData(res.data);
+    } else {
+        this.$message.error("网络异常,请稍后再试");
+    }
+    },
+    // 修改某一条数据
+    async saveOne() {
+    console.log(this.editingRow);
+    let payLoad = {};
+    let { taskKey, taskNodeKey } = this.myFormData.resultMap;
+    let { id, personnelName, allottedTime } = this.editingRow;
+    payLoad.updateCommonEntityList = [
+        {
+        basicMap: {
+            tableName: "process_inspect_personnel",
+        },
+        conditionMap: {
+            taskProcessKey: this.row.benTaskProcessKey,
+            taskNodeKey: this.row.benTaskNodeKey,
+            id,
+        },
+        commMap: {
+            personnelName,
+            allottedTime,
+        },
+        },
+    ];
+    let res = await submitNodeForm(payLoad);
+    if (res.code == 200) {
+        this.$message.success("保存成功");
+        this.refreshData(this.row);
+    } else {
+        this.$message.warning("网络异常,请稍后再试");
+    }
+    },
+    // 删除一条数据
+    async deleteOne(row) {
+    let payLoad = {};
+    let { id } = row;
+    payLoad.deleteCommonEntityList = [
+        {
+        basicMap: {
+            tableName: "process_inspect_personnel",
+        },
+        conditionMap: {
+            // taskProcessKey: this.row.benTaskProcessKey,
+            // taskNodeKey: this.row.benTaskNodeKey,
+            id: [id],
+        },
+        },
+    ];
+    let res = await submitNodeForm(payLoad);
+    if (res.code == 200) {
+        this.$message.success("删除成功");
+        this.refreshData(this.row);
+    } else {
+        this.$message.warning("网络异常,请稍后再试");
+    }
+    },
+    // 取消修改回调
+    cancelHandler(row) {
+    row.isEdit = false;
+    },
+    handleChange(value) {
+    console.log(value);
+    },
+    changeHandler(row) {
+    console.log(row);
+    row.isEdit = true;
+    this.editingRow = JSON.parse(JSON.stringify(row));
+    },
+    // 初始化数据
+    initData(nval) {
+    this.form = JSON.parse(JSON.stringify(nval?.resultMap));
+    this.form.personnelList.forEach((element) => {
+        element.isEdit = false;
+    });
+    this.oldTableData = JSON.parse(JSON.stringify(this.form.personnelList));
+    this.checked = this.form.task1 == "true" ? true : false;
+    // this.$set(this.form, 'card', nval?.resultMap.qualityControlCard);
+    this.$set(this.form, "state", nval?.resultMap.taskNnodeOtherState);
+    },
+    // 更新表格数据
+    updataTableData(nval) {
+    nval?.resultMap.personnelList.forEach((element) => {
+        element.isEdit = false;
+    });
+    this.oldTableData = JSON.parse(
+        JSON.stringify(nval?.resultMap.personnelList)
+    );
+    },
+},
+};
+</script>
+
+<style lang="scss" scoped>
+.app-container {
+::v-deep .el-checkbox {
+    /* font-size: 8px; */
+    color: white;
+}
+display: flex;
+flex-direction: row;
+justify-content: space-between;
+.leftMessage {
+    display: flex;
+    flex-direction: column;
+    width: 145px;
+    .list {
+    padding: 10px 0px;
+    span {
+        border-radius: 10px;
+        padding: 5px;
+        margin-right: 10px;
+    }
+    .title {
+        background-color: rgb(52, 191, 163);
+        color: white;
+    }
+    .content {
+        background: rgb(235, 237, 242);
+        color: rgb(232, 83, 152);
+    }
+    }
+}
+.rightMessage {
+    display: flex;
+    width: 500px;
+    flex-direction: column;
+    .top {
+    background: #53b0f8;
+    color: white;
+    height: 60px;
+    .state {
+        display: flex;
+        flex-direction: row;
+        padding: 10px 20px;
+        .list:first-child {
+        padding-right: 180px;
+        }
+        /* p {
+        padding-top: 5px;
+        font-size: 10px;
+        } */
+    }
+    }
+    .button {
+    width: 100%;
+    padding: 20px 0px;
+    .el-button {
+        width: 140px;
+        /* background: none; */
+    }
+    .el-button--info {
+        width: 80px;
+    }
+    }
+    .middle {
+    .name {
+        color: black;
+        font-weight: bold;
+        text-align: center;
+        padding: 10px 0px;
+    }
+    .block {
+        text-align: center;
+    }
+    .total {
+        display: inline-block;
+        flex-direction: row;
+        margin-top: 10px;
+        span {
+        font-weight: bold;
+        color: black;
+        }
+    }
+    }
+}
+}
+</style>

+ 130 - 0
zkqy-ui/src/views/bussiness/dialogCompments/Mec/Print.vue

@@ -0,0 +1,130 @@
+<template>
+    <div class="app-containeteamIdr">
+        <el-form :model="form" ref="form" label-position="top" label-width="100px" align="left" :inline="false" size="normal">
+            <el-form-item label="备注:" prop="remark">
+                <el-input v-model="form.remark"></el-input>
+            </el-form-item>
+            <el-form-item>
+                <el-button type="primary" size="small" @click="submitHandler" icon="el-icon-success">记录</el-button>
+            </el-form-item>
+        </el-form>
+    </div>
+</template>
+
+<script>
+import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
+export default {
+    name: 'Print',
+    props: ["formData", "row"],
+    data() {
+        return {
+            isEdit:false,
+            form: {
+                remark: ''
+            },
+        };
+    },
+    computed: {
+        myFormData() {
+        return this.formData;
+        },
+    },
+    watch: {
+        myFormData: {
+            handler(nval) {
+                this.form = nval.resultMap;
+                // this.form.hp = this.form.goodId
+                console.log(this.form);
+                // this.isEdit = this.form.id ? true : false;
+                this.isEdit = this.form.taskProcessKey && this.form.taskNodeKey
+            },
+            deep: true,
+            immediate: true,
+        },
+    },
+    mounted() {
+        
+    },
+    methods: {
+        async submitHandler() {
+            console.log(this.row);
+            let res = await this.$refs.form?.validate();
+            if (res) {
+                let payLoad = {};
+                let { remark } = this.form;
+                if (this.isEdit) {
+                let { taskProcessKey, taskNodeKey } = this.myFormData.resultMap;
+                payLoad.updateCommonEntityList = [
+                    {
+                    basicMap: {
+                        tableName: "delivery_slip",
+                    },
+                    conditionMap: {
+                        task_process_key: taskProcessKey,
+                        task_node_key: taskNodeKey,
+                    },
+                    commMap: {
+                        task_id: this.row.bepTaskPlanKey,
+                        remark: remark
+                    },
+                    },
+                ];
+                } else {
+                payLoad.insertCommonEntityList = [
+                    {
+                    basicMap: {
+                        tableName: "delivery_slip",
+                    },
+                    addListMap: [
+                        {
+                        task_id: this.row.bepTaskPlanKey,
+                        remark: remark,
+                        taskProcessKey: this.row.benTaskProcessKey,
+                        taskNodeKey: this.row.benTaskNodeKey,
+                        },
+                    ],
+                    },
+                ];
+            }
+            submitNodeForm(payLoad).then((response) => {
+                if (response.code == 200) {
+                    this.$modal.msgSuccess("保存成功");
+                } else {
+                    this.$modal.error("保存失败,请稍后再试");
+                }
+            });
+            }
+        },
+        async getFormData() {
+            let formData = {
+                flag: false,
+                msg: "",
+            };
+            try {
+                let valid = await this.$refs.form.validate();
+                if (valid) {
+                formData.flag = true;
+                formData.data = this.form;
+                return formData;
+                } else {
+                formData.msg = "表单校验异常,请规范填写表单数据";
+                return formData;
+                }
+            } catch (error) {
+                // console.log(error);
+                formData.msg = "表单校验异常,请规范填写表单数据";
+                return formData;
+            }
+        },
+    },
+    
+};
+</script>
+
+<style lang="scss" scoped>
+ ::v-deep .el-button{
+        background: rgb(123,213,195);
+        border:  rgb(123,213,195);
+        float: right;
+    }
+</style>

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

@@ -0,0 +1,663 @@
+<template>
+  <div class="app-container">
+    <div class="leftMessage">
+      <div class="list" v-for="(item, index) in baseMessage" :key="index">
+        <span class="title">
+          {{ item.title }}
+        </span>
+        <span v-if="item.prop == 'taskNo'" class="content">
+          {{ form.master_task[item.prop] }}
+        </span>
+        <span
+          v-else-if="item.prop == 'mapNumber'"
+          class="content"
+          style="background: rgb(235, 237, 242); color: rgb(232, 83, 152)"
+        >
+          {{ form.master_task[item.prop] }}
+        </span>
+        <span
+          v-else-if="item.prop == 'mapName'"
+          class="content"
+          style="background: rgb(235, 237, 242); color: rgb(232, 83, 152)"
+        >
+          {{ form.master_task[item.prop] }}
+        </span>
+        <span
+          v-else-if="item.prop == 'modelNumber'"
+          class="content"
+          style="background: rgb(235, 237, 242); color: rgb(232, 83, 152)"
+        >
+          {{ form.master_task[item.prop] }}
+        </span>
+        <span
+          v-else-if="item.prop == 'craftRoute'"
+          class="content"
+          style="background: rgb(235, 237, 242); color: rgb(232, 83, 152)"
+        >
+          {{ form.master_task[item.prop] }}
+        </span>
+        <span
+          v-else
+          class="content"
+          style="background: rgb(235, 237, 242); color: rgb(232, 83, 152)"
+        >
+          {{ form.record_quality_control_card[item.prop] }}
+        </span>
+      </div>
+      <div></div>
+      <div class="content"></div>
+    </div>
+    <div class="rightMessage">
+      <div class="top">
+        <div class="state">
+          <div class="list">
+            <span>工序状态:</span>
+            <p id="state">
+              {{
+                form.taskNodeOtherState
+                  ? stateObj[form.taskNodeOtherState]
+                  : "初始"
+              }}
+            </p>
+          </div>
+          <div class="list">
+            <span>是否外协:</span>
+            <p>
+              <el-checkbox
+                @change="
+                  (val) => {
+                    updateHandler(form.taskNodeOtherState, val);
+                  }
+                "
+                v-model="checked"
+              ></el-checkbox>
+            </p>
+          </div>
+        </div>
+      </div>
+      <div class="button">
+        <el-button-group prop="state">
+          <el-button
+            type="primary"
+            icon="el-icon-video-play"
+            plain
+            round
+            @click="updateHandler('1', checked)"
+            >开始</el-button
+          >
+          <el-button
+            type="danger"
+            icon="el-icon-video-pause"
+            plain
+            @click="updateHandler('2', checked)"
+            >暂停</el-button
+          >
+          <el-button
+            type="success"
+            icon="el-icon-circle-check"
+            plain
+            @click="updateHandler('3', checked)"
+            >完成</el-button
+          >
+          <el-button
+            type="info"
+            icon="el-icon-refresh"
+            plain
+            round
+            @click="updateHandler('0', checked)"
+            >重置</el-button
+          >
+        </el-button-group>
+      </div>
+      <div class="middle" v-show="!checked">
+        <el-table :data="oldTableData" border ref="addTableRowRef">
+          <el-table-column label="人员姓名">
+            <template slot-scope="scope">
+              <el-input
+                v-if="scope.row.isEdit"
+                v-model="editingRow.personnelName"
+              ></el-input>
+              <span v-else>{{ scope.row.personnelName }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="分配工时">
+            <template slot-scope="scope">
+              <el-input-number
+                v-if="scope.row.isEdit"
+                v-model="editingRow.allottedTime"
+                controls-position="right"
+                @change="handleChange"
+                :min="0"
+                :step="0.25"
+                size="small"
+              ></el-input-number>
+              <span v-else>{{ scope.row.allottedTime }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" width="120" align="center">
+            <template slot-scope="scope">
+              <el-dropdown v-if="!scope.row.isEdit">
+                <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="changeHandler(scope.row)"
+                      >修改</el-button
+                    ></el-dropdown-item
+                  >
+                  <el-dropdown-item
+                    ><el-button
+                      size="mini"
+                      type="text"
+                      icon="el-icon-delete"
+                      @click="deleteOne(scope.row)"
+                      v-hasPermi="['system:dict:remove']"
+                      >删除</el-button
+                    >
+                  </el-dropdown-item>
+                </el-dropdown-menu>
+              </el-dropdown>
+              <el-dropdown v-else>
+                <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="saveOne"
+                      >保存</el-button
+                    ></el-dropdown-item
+                  >
+                  <el-dropdown-item
+                    ><el-button
+                      size="mini"
+                      type="text"
+                      icon="el-icon-delete"
+                      @click="cancelHandler(scope.row)"
+                      v-hasPermi="['system:dict:remove']"
+                      >取消</el-button
+                    >
+                  </el-dropdown-item>
+                </el-dropdown-menu>
+              </el-dropdown>
+              <!-- <el-button
+                icon="el-icon-delete"
+                size="mini"
+                @click="deleteTableRow(scope.$index)"
+                >删除</el-button
+              > -->
+            </template>
+          </el-table-column>
+        </el-table>
+        <div class="name">人员及工时分配</div>
+        <el-table :data="tableData" border ref="addTableRowRef">
+          <el-table-column label="人员姓名">
+            <template slot-scope="scope">
+              <el-input v-model="scope.row.personnelName"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column label="分配工时">
+            <template slot-scope="scope">
+              <el-input-number
+                v-model="scope.row.allottedTime"
+                controls-position="right"
+                @change="handleChange"
+                :min="0"
+                :step="0.25"
+                size="small"
+              ></el-input-number>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" width="120" align="center">
+            <template slot-scope="scope">
+              <el-button
+                icon="el-icon-delete"
+                size="mini"
+                @click="deleteTableRow(scope.$index)"
+                >删除</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+        <div class="block">
+          <el-pagination layout="prev, pager, next" :total="50">
+          </el-pagination>
+        </div>
+        <el-button
+          size="mini"
+          icon="el-icon-plus"
+          type="primary"
+          @click="addTableRow"
+          >新 增</el-button
+        >
+        <el-button
+          size="mini"
+          icon="el-icon-check"
+          type="success"
+          @click="saveTableRow"
+          >保 存</el-button
+        >
+        <div class="total">
+          <span>当前工序总工时: 10</span>
+          <span>当前已分配工时: 10</span>
+          <span>当前剩余工时: 10</span>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import {
+  submitNodeForm,
+  changeNodeState,
+} from "@/api/bpmprocess/runDialogApi/index";
+import { getProcessNodeFormInfoData } from "@/api/bpmprocess/run/executeProcess";
+export default {
+  name: "ProductionProcesses",
+  props: ["formData", "row"],
+  data() {
+    return {
+      checked: true,
+      isEdit: false,
+      form: {
+        taskNodeOtherState: "0",
+      },
+      tableData: [],
+      editingRow: {},
+      oldTableData: [
+        {
+          id: 1,
+          personnelName: "芝麻林",
+          allottedTime: 1,
+          isEdit: false,
+        },
+      ],
+      newRow: {},
+
+      baseMessage: [
+        { title: "任务", prop: "taskNo" },
+        { title: "图号", prop: "mapNumber" },
+        { title: "名称", prop: "mapName" },
+        { title: "数量", prop: "modelNumber" },
+        { title: "工艺", prop: "craftRoute" },
+        { title: "质控", prop: "qualityControlCard" },
+      ],
+      stateObj: {
+        0: "初始",
+        1: "开始",
+        2: "暂停",
+        3: "完成",
+      },
+    };
+  },
+  computed: {
+    myFormData() {
+      return this.formData;
+    },
+  },
+  watch: {
+    myFormData: {
+      handler(nval) {
+        if (!nval) return;
+        this.initData(nval);
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
+  methods: {
+    async updateHandler(state, flag) {
+      flag = flag ? "true" : "false";
+      let payLoad = {
+        // conditionMap: {
+        taskProcessKey: this.row.benTaskProcessKey,
+        taskNodeKey: this.row.benTaskNodeKey,
+        // },
+        // commMap: {
+        taskNodeOtherState: state,
+        task1: flag,
+        // },
+      };
+
+      changeNodeState(payLoad).then((response) => {
+        if (response.code == 200) {
+          this.$modal.msgSuccess("修改成功");
+          this.form.taskNodeOtherState = state;
+        } else {
+          this.$modal.error("修改失败,请稍后再试");
+        }
+      });
+    },
+    async submitHandler() {
+      console.log(this.row);
+      let res = await this.$refs.form?.validate();
+      if (res) {
+        let payLoad = {};
+        let { state } = this.form;
+        console.log(this.form);
+        if (this.isEdit) {
+          let { taskKey, taskNodeKey } = this.myFormData.resultMap;
+          payLoad.updateCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "bpm_execute_node",
+              },
+              conditionMap: {
+                task_key: taskKey,
+                task_node_key: taskNodeKey,
+              },
+              commMap: {
+                task_node_other_state: state,
+              },
+            },
+          ];
+        } else {
+          payLoad.insertCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "bpm_execute_node",
+              },
+              addListMap: [
+                {
+                  task_node_other_state: state,
+                  taskKey: this.row.benTaskProcessKey,
+                  taskNodeKey: this.row.benTaskNodeKey,
+                },
+              ],
+            },
+          ];
+        }
+        submitNodeForm(payLoad).then((response) => {
+          if (response.code == 200) {
+            this.$modal.msgSuccess("保存成功");
+          } else {
+            this.$modal.error("保存失败,请稍后再试");
+          }
+        });
+      }
+    },
+    async getFormData() {
+      return {
+        flag: true,
+        data: {},
+      };
+
+      let formData = {
+        flag: false,
+        msg: "",
+      };
+      try {
+        let valid = await this.$refs.form.validate();
+        if (valid) {
+          formData.flag = true;
+          formData.data = this.form;
+          return formData;
+        } else {
+          formData.msg = "表单校验异常,请规范填写表单数据";
+          return formData;
+        }
+      } catch (error) {
+        // console.log(error);
+        formData.msg = "表单校验异常,请规范填写表单数据";
+        return formData;
+      }
+    },
+    addTableRow() {
+      const newRow = {
+        personnelName: "",
+        allottedTime: 0,
+      };
+      this.tableData.push(newRow);
+    },
+    deleteTableRow(index) {
+      if (index !== -1) {
+        this.tableData.splice(index, 1);
+      }
+    },
+    // 批量保存表格数据回调
+    async saveTableRow() {
+      console.log(this.tableData);
+      let payLoad = {};
+      payLoad.insertCommonEntityList = [
+        {
+          basicMap: {
+            tableName: "process_get_materials_personnel",
+          },
+          addListMap: [
+            // {
+            //   task_node_other_state: state,
+            //   taskKey: this.row.benTaskProcessKey,
+            //   taskNodeKey: this.row.benTaskNodeKey,
+            // },
+          ],
+        },
+      ];
+      payLoad.insertCommonEntityList[0].addListMap = this.tableData.map(
+        (item) => {
+          let { personnelName, allottedTime } = item;
+          return {
+            personnelName,
+            allottedTime,
+            taskProcessKey: this.row.benTaskProcessKey,
+            taskNodeKey: this.row.benTaskNodeKey,
+          };
+        }
+      );
+      // this.tableData = [];
+      let res = await submitNodeForm(payLoad);
+      if (res.code == 200) {
+        this.$message.success("保存成功");
+        this.tableData = [];
+        this.refreshData(this.row);
+      } else {
+        this.$message.warning("网络异常,请稍后再试");
+      }
+    },
+    // 刷新弹窗数据
+    async refreshData(row) {
+      let {
+        benTaskNodeFormKey,
+        benTaskNodeFormType,
+        bepTaskPlanKey,
+        bepTaskKey,
+        bepTaskNodeKey,
+        benTaskProcessKey,
+        benmTaskAutomaticScriptTriggerType,
+        bepTaskNodeNextKey,
+      } = row;
+      let payLoad = {
+        taskNodeKey: bepTaskNodeNextKey,
+        taskProcessKey: benTaskProcessKey,
+        taskAutomaticScriptTriggerType: benmTaskAutomaticScriptTriggerType,
+        taskPlanKey: bepTaskPlanKey,
+      };
+      let res = await getProcessNodeFormInfoData(payLoad);
+      if (res.code == 200) {
+        this.updataTableData(res.data);
+      } else {
+        this.$message.error("网络异常,请稍后再试");
+      }
+    },
+    // 修改某一条数据
+    async saveOne() {
+      console.log(this.editingRow);
+      let payLoad = {};
+      let { taskKey, taskNodeKey } = this.myFormData.resultMap;
+      let { id, personnelName, allottedTime } = this.editingRow;
+      payLoad.updateCommonEntityList = [
+        {
+          basicMap: {
+            tableName: "process_get_materials_personnel",
+          },
+          conditionMap: {
+            taskProcessKey: this.row.benTaskProcessKey,
+            taskNodeKey: this.row.benTaskNodeKey,
+            id,
+          },
+          commMap: {
+            personnelName,
+            allottedTime,
+          },
+        },
+      ];
+      let res = await submitNodeForm(payLoad);
+      if (res.code == 200) {
+        this.$message.success("保存成功");
+        this.refreshData(this.row);
+      } else {
+        this.$message.warning("网络异常,请稍后再试");
+      }
+    },
+    // 删除一条数据
+    async deleteOne(row) {
+      let payLoad = {};
+      let { id } = row;
+      payLoad.deleteCommonEntityList = [
+        {
+          basicMap: {
+            tableName: "process_get_materials_personnel",
+          },
+          conditionMap: {
+            // taskProcessKey: this.row.benTaskProcessKey,
+            // taskNodeKey: this.row.benTaskNodeKey,
+            id: [id],
+          },
+        },
+      ];
+      let res = await submitNodeForm(payLoad);
+      if (res.code == 200) {
+        this.$message.success("删除成功");
+        this.refreshData(this.row);
+      } else {
+        this.$message.warning("网络异常,请稍后再试");
+      }
+    },
+    // 取消修改回调
+    cancelHandler(row) {
+      row.isEdit = false;
+    },
+    handleChange(value) {
+      console.log(value);
+    },
+    changeHandler(row) {
+      console.log(row);
+      row.isEdit = true;
+      this.editingRow = JSON.parse(JSON.stringify(row));
+    },
+    // 初始化数据
+    initData(nval) {
+      this.form = JSON.parse(JSON.stringify(nval?.resultMap));
+      this.form.personnelList.forEach((element) => {
+        element.isEdit = false;
+      });
+      this.oldTableData = JSON.parse(JSON.stringify(this.form.personnelList));
+      this.checked = this.form.task1 == "true" ? true : false;
+      // this.$set(this.form, 'card', nval?.resultMap.qualityControlCard);
+      this.$set(this.form, "state", nval?.resultMap.taskNnodeOtherState);
+    },
+    // 更新表格数据
+    updataTableData(nval) {
+      nval?.resultMap.personnelList.forEach((element) => {
+        element.isEdit = false;
+      });
+      this.oldTableData = JSON.parse(
+        JSON.stringify(nval?.resultMap.personnelList)
+      );
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.app-container {
+  ::v-deep .el-checkbox {
+    /* font-size: 8px; */
+    color: white;
+  }
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+  .leftMessage {
+    display: flex;
+    flex-direction: column;
+    width: 145px;
+    .list {
+      padding: 10px 0px;
+      span {
+        border-radius: 10px;
+        padding: 5px;
+        margin-right: 10px;
+      }
+      .title {
+        background-color: rgb(52, 191, 163);
+        color: white;
+      }
+      .content {
+        background: rgb(235, 237, 242);
+        color: rgb(232, 83, 152);
+      }
+    }
+  }
+  .rightMessage {
+    display: flex;
+    width: 500px;
+    flex-direction: column;
+    .top {
+      background: #53b0f8;
+      color: white;
+      height: 60px;
+      .state {
+        display: flex;
+        flex-direction: row;
+        padding: 10px 20px;
+        .list:first-child {
+          padding-right: 180px;
+        }
+        /* p {
+          padding-top: 5px;
+          font-size: 10px;
+        } */
+      }
+    }
+    .button {
+      width: 100%;
+      padding: 20px 0px;
+      .el-button {
+        width: 140px;
+        /* background: none; */
+      }
+      .el-button--info {
+        width: 80px;
+      }
+    }
+    .middle {
+      .name {
+        color: black;
+        font-weight: bold;
+        text-align: center;
+        padding: 10px 0px;
+      }
+      .block {
+        text-align: center;
+      }
+      .total {
+        display: inline-block;
+        flex-direction: row;
+        margin-top: 10px;
+        span {
+          font-weight: bold;
+          color: black;
+        }
+      }
+    }
+  }
+}
+</style>

+ 239 - 0
zkqy-ui/src/views/bussiness/dialogCompments/Mec/RecordQuality.vue

@@ -0,0 +1,239 @@
+<template>
+  <div class="app-container">
+    <div class="fixture">
+      <div class="title">
+        <i class="el-icon-c-scale-to-original"></i>
+        <span>工装信息</span>
+      </div>
+      <div class="message">
+        <div class="list" 
+          v-for="(item,index) in message"
+          :key="index">
+          <div class="list-card">
+            <p>{{ item.title }}</p>
+            <p class="content">{{ form.master_task[item.prop] }}</p>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="material">
+      <div class="title">
+        <i class="el-icon-c-scale-to-original"></i>
+        <span>物料需求信息</span>
+      </div>
+      <div class="message">
+        <div class="list" v-for="(item, index) in message" :key="index">
+          <div class="list-card">
+            <p>{{ item.title }}</p>
+            <p class="content">{{ form.master_task[item.prop] }}</p>
+          </div>
+        </div>
+      </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-item label="质控卡号:" prop="card">
+          <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-form-item>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
+export default {
+  name: "RecordQuality",
+  props: ["formData", "row"],
+  data() {
+    return {
+      isEdit: false,
+      form: {
+        card: '',
+      },
+       rules: {
+        card: [{ required: true, trigger: "change" }],
+      },
+      message: [
+        { title: "任务编号", prop: "taskNo" },
+        { title: "图号", prop: "mapNumber" },
+        { title: "投产数量", prop: "taskNumber" },
+        { title: "牌号", prop: "" },
+        { title: "状态", prop: "" },
+        { title: "标准", prop: "" },
+        { title: "物资名称", prop: "" },
+        { title: "材料/产品", prop: "" },
+        { title: "规格", prop: "" },
+        { title: "尺寸", prop: "" },
+        { title: "备注", prop: "" },
+      ],
+      quality_control_card: "",
+    };
+  },
+  computed: {
+    myFormData() {
+      return this.formData;
+    },
+  },
+  watch: {
+    myFormData: {
+      handler(nval) {
+        this.form = JSON.parse(JSON.stringify(nval.resultMap));
+        this.$set(this.form, 'card', nval.resultMap.qualityControlCard);
+        this.isEdit = this.form.taskProcessKey && this.form.taskNodeKey;
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
+  mounted() {},
+
+  methods: {
+    async submitHandler() {
+      console.log(this.row);
+      let res = await this.$refs.form?.validate();
+      if (res) {
+        let payLoad = {};
+        let { card } = this.form;
+        console.log(this.form);
+        if (this.isEdit) {
+          let { taskProcessKey, taskNodeKey } = this.myFormData.resultMap;
+          payLoad.updateCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "record_quality_control_card",
+              },
+              conditionMap: {
+                task_process_key: taskProcessKey,
+                task_node_key: taskNodeKey,
+              },
+              commMap: {
+                quality_control_card: card,
+                task_id: this.row.bepTaskPlanKey,
+              },
+            },
+          ];
+        } else {
+          payLoad.insertCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "record_quality_control_card",
+              },
+              addListMap: [
+                {
+                  quality_control_card: card,
+                  task_id: this.row.bepTaskPlanKey,
+                  taskProcessKey: this.row.benTaskProcessKey,
+                  taskNodeKey: this.row.benTaskNodeKey,
+                },
+              ],
+            },
+          ];
+        }
+        submitNodeForm(payLoad).then((response) => {
+          if (response.code == 200) {
+            this.$modal.msgSuccess("保存成功");
+          } else {
+            this.$modal.error("保存失败,请稍后再试");
+          }
+        });
+      }
+    },
+    async getFormData() {
+      let formData = {
+        flag: false,
+        msg: "",
+      };
+      try {
+        let valid = await this.$refs.form.validate();
+        if (valid) {
+          formData.flag = true;
+          formData.data = this.form;
+          return formData;
+        } else {
+          formData.msg = "表单校验异常,请规范填写表单数据";
+          return formData;
+        }
+      } catch (error) {
+        // console.log(error);
+        formData.msg = "表单校验异常,请规范填写表单数据";
+        return formData;
+      }
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.fixture {
+  border-top: #e2e1e1 solid 1px;
+  .title {
+    display: flex;
+    flex-direction: row;
+    padding: 10px 0px;
+  }
+  .message {
+    display: flex;
+    /* height: 120px; */
+    width: 700px;
+    border: #f1f1f1 solid 3px;
+    padding-bottom: 5px;
+    flex-wrap: wrap;
+    .list {
+      height: 70px;
+      width: 110px;
+      padding: 10px;
+      display: flex;
+      flex-direction: row;
+      /* justify-content: center; */
+      flex-wrap: wrap;
+      p {
+        text-align: center;
+      }
+      .content {
+        font-weight: bold;
+      }
+    }
+  }
+}
+.material {
+  padding-top: 2px;
+  .title {
+    display: flex;
+    flex-direction: row;
+    padding: 10px 0px;
+  }
+  .message {
+    display: flex;
+    /* height: 120px; */
+    width: 700px;
+    border: #f1f1f1 solid 3px;
+    padding-bottom: 5px;
+    flex-wrap: wrap;
+    .list {
+      height: 70px;
+      width: 110px;
+      padding: 10px;
+      display: flex;
+      flex-direction: row;
+      /* justify-content: center; */
+      flex-wrap: wrap;
+      p {
+        text-align: center;
+      }
+      .content {
+        font-weight: bold;
+      }
+    }
+  }
+}
+.btn {
+  background: rgb(123,213,195);
+  border:  rgb(123,213,195);
+  float: right;
+  border-bottom: #e2e1e1 solid 1px;
+}
+</style>

+ 157 - 0
zkqy-ui/src/views/bussiness/dialogCompments/ShengChan/SC01.vue

@@ -0,0 +1,157 @@
+<template>
+    <div class="app-container">
+        <el-form :model="form" :rules="rules" ref="form" label-width="100px" :inline="false" size="normal">
+            <el-form-item label="选择货品:" prop="hp">
+              <el-select v-model="form.hp" placeholder="请选择货品">
+                <el-option
+                    v-for="item in form.goodsList"
+                    :key="item.value"
+                    :label="item.goodsname"
+                    :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="货品重量:" prop="zl">
+                <el-input v-model.number="form.zl" @input="handleInput"></el-input>
+            </el-form-item>
+            <el-form-item>
+                <el-button type="primary" size="default" @click="submitHandler"
+                  >修改</el-button
+                >
+            </el-form-item>
+        </el-form>
+
+    </div>
+</template>
+
+<script>
+  import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
+export default {
+    name: 'SC01',
+    props: ["formData", "row"],
+    data() {
+        return {
+          isEdit:false,
+          form: {
+              hp: '',
+              zl: ''
+          },
+          rules: {
+                hp: [
+                    { required: true, message: '请选择货品', trigger: 'change' },
+                ],
+                zl: [
+                    { required: true, message: '请输入货品重量', trigger: 'blur' },
+                    { type: 'number', message: '重量必须为数字值',trigger: 'blur' }
+                ]
+                
+            }
+        };
+    },
+    computed: {
+        myFormData() {
+        return this.formData;
+        },
+    },
+    watch: {
+        myFormData: {
+            handler(nval) {
+                this.form = nval.resultMap;
+                this.form.hp = this.form.goodId
+                console.log(this.form);
+                // this.isEdit = this.form.id ? true : false;
+                this.isEdit = this.form.taskKey && this.form.taskNodeKey
+            },
+            deep: true,
+            immediate: true,
+        },
+    },
+
+    mounted() {
+        
+    },
+
+    methods: {
+        handleInput() {
+        if (!/^[1-9]\d*$/.test(this.form.zl)) {
+            this.$message.error('请输入正整数!');
+        }
+      },
+        async submitHandler() {
+          console.log(this.row);
+            let res = await this.$refs.form?.validate();
+            if (res) {
+                let payLoad = {};
+                let { hp, zl } = this.form;
+                if (this.isEdit) {
+                let { taskKey, taskNodeKey } = this.myFormData.resultMap;
+                payLoad.updateCommonEntityList = [
+                    {
+                    basicMap: {
+                        tableName: "plan",
+                    },
+                    conditionMap: {
+                        task_key: taskKey,
+                        task_node_key: taskNodeKey,
+                    },
+                    commMap: {
+                        hp,
+                        plan_now_weight:zl,
+                    },
+                    },
+                ];
+                } else {
+                payLoad.insertCommonEntityList = [
+                    {
+                    basicMap: {
+                        tableName: "plan",
+                    },
+                    addListMap: [
+                        {
+                        hp,
+                        plan_now_weight:zl,
+                        taskKey: this.row.benTaskProcessKey,
+                        taskNodeKey: this.row.benTaskNodeKey,
+                        },
+                    ],
+                },
+            ];
+        }
+        submitNodeForm(payLoad).then((response) => {
+          if (response.code == 200) {
+            this.$modal.msgSuccess("保存成功");
+          } else {
+            this.$modal.error("保存失败,请稍后再试");
+          }
+        });
+      }
+    },
+        async getFormData() {
+      let formData = {
+        flag: false,
+        msg: "",
+      };
+      try {
+        let valid = await this.$refs.form.validate();
+        if (valid) {
+          formData.flag = true;
+          formData.data = this.form;
+          return formData;
+        } else {
+          formData.msg = "表单校验异常,请规范填写表单数据";
+          return formData;
+        }
+      } catch (error) {
+        // console.log(error);
+        formData.msg = "表单校验异常,请规范填写表单数据";
+        return formData;
+      }
+    },
+    },
+};
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 3 - 3
zkqy-ui/src/views/bussiness/dialogCompments/test-component/KuCun/KC02.vue

@@ -34,7 +34,7 @@
         />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" size="default" @click="submitHanfler"
+        <el-button type="primary" size="default" @click="submitHandler"
           >确认提交</el-button
         >
       </el-form-item>
@@ -115,12 +115,12 @@ export default {
       this.$nextTick(this.setDefaultGoods);
     },
     setDefaultGoods() {
-      if (this.myFormData.resultMap.goods?.length == 1) {
+      if (this.myFormData.resultMap.goods.length == 1) {
         this.form.goodsno = this.myFormData.resultMap.goods[0].id;
         this.disable = true;
       }
     },
-    async submitHanfler() {
+    async submitHandler() {
       let res = await this.$refs.form?.validate();
       if (res) {
         let payLoad = {};