lph 1 éve
szülő
commit
d66bc0a349
19 módosított fájl, 4059 hozzáadás és 0 törlés
  1. 95 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/GY2.vue
  2. 156 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/GongYi/GY01.vue
  3. 203 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/GongYi/GY02.vue
  4. 214 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/GongYi/GY03.vue
  5. 275 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/GongYi/GY06.vue
  6. 31 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/KongBai/KB01.vue
  7. 158 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/Mec/AssignEmployees.vue
  8. 236 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/Mec/NodeShow.vue
  9. 130 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/Mec/Notes.vue
  10. 637 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/Mec/PersonalDistribution.vue
  11. 130 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/Mec/Print.vue
  12. 638 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/Mec/ProductionProcesses.vue
  13. 256 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/Mec/RecordQuality.vue
  14. 157 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/ShengChan/SC01.vue
  15. 151 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/ZhiLiang/ZL1.vue
  16. 146 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/test-component/CaiGou/CG02.vue
  17. 168 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/test-component/CaiGou/CG1.vue
  18. 192 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/test-component/KuCun/KC02.vue
  19. 86 0
      zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/test-component/KuCun/KC1.vue

+ 95 - 0
zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/GY2.vue

@@ -0,0 +1,95 @@
+<template>
+    <div class="app-container">
+        <el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-form">
+            <el-form-item label="产品重量" prop="zl">
+              <el-input v-model.number="form.zl" @input="handleInput"></el-input>
+            </el-form-item>
+            <el-form-item label="选择产品" prop="cp">
+              <el-select v-model="form.cp" placeholder="请选择产品">
+                <el-option label="产品1" value="chanpin1"></el-option>
+                <el-option label="产品2" value="chanpin2"></el-option>
+                <el-option label="产品3" value="chanpin3"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item>
+                <el-button type="primary" @click="submitForm('form')">提交</el-button>
+                <el-button @click="resetForm('form')">重置</el-button>
+              </el-form-item>
+        </el-form>
+
+    </div>
+</template>
+<script>
+export default {
+  name: "GY1",
+  props: [],
+  components: {},
+  data() {
+    return {
+        form: {
+            zl: '',
+            cp:''
+        },
+        rules: {
+            zl: [
+                { required: true, message: '请输入产品重量', trigger: 'blur' },
+                { type: 'number', message: '重量必须为数字值',trigger: 'blur' }
+            ],
+            cp: [
+                { required: true, message: '请选择产品', trigger: 'change' },
+            ]
+        }
+    }
+  },
+  methods:{
+    submitForm(formName) {
+        this.$refs[formName].validate((valid) => {
+          if (valid) {
+            alert('submit!');
+          } else {
+            console.log('error submit!!');
+            return false;
+          }
+        });
+      },
+      resetForm(formName) {
+        this.$refs[formName].resetFields();
+      },
+      handleInput() {
+        if (!/^[1-9]\d*$/.test(this.form.zl)) {
+            this.$message.error('请输入正整数!');
+        }
+      },
+      async getFormData() {
+        let formData = {
+          flag: false,
+          msg: "",
+        };
+        try {
+          let valid = await this.$refs.reluForm.validate();
+          if (valid) {
+            formData.flag = true;
+            formData.data = this.reluForm;
+            formData.msg = "表单校验成功";
+            return formData;
+          } else {
+            formData.msg = "表单校验异常,请规范填写表单数据";
+            return formData;
+          }
+        } catch (error) {
+          // console.log(error);
+          formData.msg = "表单校验异常,请规范填写表单数据";
+          return formData;
+        }
+      },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.app-container {
+  margin-top: 20px;
+  .el-input__inner {
+    width: 20px;
+  }
+}
+</style>

+ 156 - 0
zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/GongYi/GY01.vue

@@ -0,0 +1,156 @@
+<template>
+  <div class="form-wrap">
+    <el-form
+      :model="form"
+      ref="form"
+      :rules="rules"
+      label-width="100px"
+      :inline="false"
+      size="normal"
+    >
+      <el-form-item prop="name" label="选择货品:">
+        <el-select
+          v-model="form.goodsID"
+          placeholder="请选择货品"
+          clearable
+          filterable
+        >
+          <el-option
+            v-for="item in []"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item prop="yield" label="生产重量:">
+        <!-- <el-input v-model="form.yield" type="number"></el-input> -->
+        <el-input-number
+          v-model="form.yield"
+          :min="0"
+          label="请输入生产重量"
+        ></el-input-number>
+      </el-form-item>
+      <!-- <el-form-item prop="remark" label="备注信息:">
+        <el-input v-model="form.remark"></el-input>
+      </el-form-item> -->
+    </el-form>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "GY01",
+  props: ["formData", "row"],
+  components: {},
+  data() {
+    return {
+      form: {
+        name: "",
+        number: "",
+        remark: "",
+        yield: "",
+      },
+      isEdite: false,
+      rules: {
+        name: [{ required: true, message: "请输入姓名", trigger: "blur" }],
+        number: [
+          { required: true, message: "请输入运行数量", trigger: "blur" },
+        ],
+        remark: [
+          { required: true, message: "请输入备注信息", trigger: "blur" },
+        ],
+      },
+    };
+  },
+  computed: {
+    myFormData() {
+      return this.formData;
+    },
+  },
+  watch: {
+    myFormData: {
+      handler(nval) {
+        this.form = nval.resultMap;
+        this.isEdite = this.form.id ? true : false;
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
+  methods: {
+    async submitHandler() {
+      let res = await this.$refs.form?.validate();
+      if (res) {
+        let payLoad = {};
+        let { ycl, zl } = this.form;
+        if (this.isEdit) {
+          let { taskKey, taskNodeKey } = this.myFormData.resultMap;
+          payLoad.updateCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "kucun",
+              },
+              conditionMap: {
+                task_key: taskKey,
+                task_node_key: taskNodeKey,
+              },
+              commMap: {
+                ycl,
+                zl,
+              },
+            },
+          ];
+        } else {
+          payLoad.insertCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "kucun",
+              },
+              addListMap: [
+                {
+                  ycl,
+                  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 scoped></style>

+ 203 - 0
zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/GongYi/GY02.vue

@@ -0,0 +1,203 @@
+<template>
+  <div class="app-container">
+    <div class="leftMessage">
+      <div class="list" v-for="(item, index) in baseMessage" :key="index">
+        <span class="titile" style="background:rgb(52,191,163); color:white;"> {{ item.title}} </span>
+        <span class="content" style="background:rgb(235,237,242); color:rgb(232,83,152);"> {{ item.content}} </span>
+      </div>
+      <div class="content"></div>
+    </div>
+    <div class="rightMessage">
+      <div class="top">       
+        <div class="state">
+          <div class="list">
+            <span>工序状态:</span>
+            <p>初始</p>
+          </div>
+          <div class="list">
+            <span>是否外协:</span>
+            <p>初始</p>
+          </div>
+        </div>    
+      </div>
+      <div class="button">
+        <el-button-group>
+          <el-button type="primary" icon="el-icon-video-play" plain round>开始</el-button>
+          <el-button type="danger" icon="el-icon-video-pause" plain>暂停</el-button> 
+          <el-button type="success" icon="el-icon-circle-check" plain>完成</el-button> 
+          <el-button type="info" icon="el-icon-refresh" plain round>重置</el-button>       
+ 
+        </el-button-group>
+
+      </div>
+      <div class="middle">
+        <el-table :data="tableData2" border >
+          <el-table-column>
+            
+          </el-table-column>
+        </el-table>
+        <div class="name">人员及工时分配</div>       
+        <el-table :data="tableData1" border ref="addTableRowRef">
+          <el-table-column label="人员姓名">
+            <template slot-scope="scope">
+              <el-input v-model="scope.row.name"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column label="分配工时">
+            <template slot-scope="scope">
+              <el-input-number v-model="scope.row.time" controls-position="right" @change="handleChange" :min="0.25" :max="8" :step="0.25"></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.row)"
+              >删除</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(newRow)">保 存</el-button>
+      </div>
+      <div class="footer">
+       <div class="total">
+        <span>当前工序总工时: 10</span>
+        <span>当前已分配工时: 10</span>
+        <span>当前剩余工时: 10</span>
+       </div>
+      </div>
+    </div>
+    
+  </div>
+</template>
+<script>
+export default {
+  name: 'GY02',
+  data() {
+    return {
+      tableData1: [],
+      tableData2: [],
+      newRow: {},
+      baseMessage: [
+        { title:'任务', content:'47as04-51-1238'},
+        { title:'图号', content:'1CG12-38'},
+        { title:'名称', content:'支架'},
+        { title:'数量', content:'1'},
+        { title:'工艺', content:'1'},
+        { title:'质控', content:'1'},
+      ]
+    }
+  },
+  methods: {
+    addTableRow() {
+      const newRow = {
+          name: '',
+          time: 0.25,
+      };  
+      this.tableData1.push(newRow);       
+    },
+    deleteTableRow(row) {
+      const index = this.tableData1.indexOf(row);
+      if (index !== -1) {
+        this.tableData1.splice(index, 1);
+      }
+    },
+    saveTableRow(tableData1) {
+      let item = '';
+      for(let i = 0; i < this.tableData1.length; i++) {
+        item += tableData1[i]
+      }
+      this.tableData2 = this.item;
+      this.tableData1 = [];
+    },
+    handleChange(value) {
+      console.log(value);
+    }
+
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+.app-container {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+  .leftMessage {
+    display: flex;
+    flex-direction: column;
+    width: 180px;
+    .list {
+      padding: 10px 0px ;
+      span {  
+        border-radius: 10px;
+        padding: 5px;
+        margin-right: 10px;
+      }
+    }
+    
+  }
+  .rightMessage {
+    display: flex;
+    width: 500px;
+    flex-direction: column;
+    .top {
+      background: #53B0F8;
+      color: white;
+      height: 60px;
+      .state {
+        display: flex;
+        flex-direction: row;
+        padding: 10px 20px;
+        span {
+          padding-right: 150px;
+        }
+        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;
+      }
+    }
+    .footer {
+      display: inline-block;
+      flex-direction: row;
+      margin-top: 10px;
+      span {
+        font-weight: bold;
+        color: black;
+      }
+    }
+  }
+}
+</style>

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

@@ -0,0 +1,214 @@
+<template>
+  <div class="form-wrap">
+    <el-form
+      :model="form"
+      ref="form"
+      :rules="rules"
+      label-width="100px"
+      :inline="true"
+      size="normal"
+      class="form-body-wrap"
+    >
+      <el-form-item prop="material" label="材料:">
+        <el-select
+          v-model="form.material"
+          placeholder="请选择材料"
+          clearable
+          filterable
+        >
+          <el-option
+            v-for="item in myFormData.resultMap.caiLiao"
+            :key="item.materialId"
+            :label="item.materialName"
+            :value="item.materialId"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item prop="technology" label="工艺:">
+        <!-- <el-input v-model="form.yield" type="number"></el-input> -->
+        <el-select
+          v-model="form.technology"
+          placeholder="请选择工艺"
+          clearable
+          filterable
+        >
+          <el-option
+            v-for="item in myFormData.resultMap.gongyi"
+            :key="item.id"
+            :label="item.stepName"
+            :value="item.id"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="生产数量" prop="productionQuantity">
+        <el-col :span="10">
+          <!-- <el-input
+            onkeypress="return( /[\d]/.test(String.fromCharCode(event.keyCode)))"
+            v-model="form.productionQuantity"
+            placeholder="请输入生产数量"
+            size="normal"
+            clearable
+          ></el-input> -->
+          <el-input-number
+            v-model="form.productionQuantity"
+            controls-position="right"
+            :min="0"
+          />
+        </el-col>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" size="default" @click="submitHanfler"
+          >确认提交</el-button
+        >
+      </el-form-item>
+
+      <!-- <el-form-item prop="remark" label="备注信息:">
+        <el-input v-model="form.remark"></el-input>
+      </el-form-item> -->
+    </el-form>
+  </div>
+</template>
+
+<script>
+import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
+export default {
+  name: "GY03",
+  props: ["formData", "row"],
+  components: {},
+  data() {
+    return {
+      realFormData: {},
+      form: {
+        material: "",
+        technology: "",
+        productionQuantity: 0,
+      },
+      rules: {
+        material: [
+          { required: true, message: "请选择材料", trigger: "change" },
+        ],
+        technology: [
+          { required: true, message: "请选择工艺", trigger: "change" },
+        ],
+        productionQuantity: [
+          { required: true, message: "请输入生产数量", trigger: "change" },
+        ],
+      },
+    };
+  },
+  watch: {
+    myFormData: {
+      handler(nval) {
+        this.realFormData = nval;
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
+  computed: {
+    myFormData() {
+      return this.formData;
+    },
+    isEdit() {
+      return this.formData.resultMap?.id ? true : false;
+    },
+  },
+  methods: {
+    async getFormData() {
+      let res = {
+        flag: false,
+        msg: "",
+      };
+      try {
+        let valid = await this.$refs.form.validate();
+        if (valid) {
+          res.flag = true;
+          res.data = this.form;
+          return res;
+        } else {
+          res.msg = "表单校验异常,请规范填写表单数据";
+          return res;
+        }
+      } catch (error) {
+        // console.log(error);
+        res.msg = "表单校验异常,请规范填写表单数据";
+        return res;
+      }
+    },
+    resetForm() {
+      this.$refs.form.resetFields();
+    },
+    async submitHanfler() {
+      let res = await this.$refs.form?.validate();
+      if (res) {
+        let payLoad = {};
+        let { material, technology, productionQuantity } = this.form;
+        if (this.isEdit) {
+          payLoad.updateCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "productionrecords",
+              },
+              /* addListMap: [
+                {
+                  material_information: material,
+                  process_information: technology,
+                  actual_quantity: productionQuantity,
+                  taskKey: this.row.benTaskProcessKey,
+                  taskNodeKey: this.row.benTaskNodeKey,
+                },
+              ], */
+              conditionMap: {
+                taskKey: this.row.benTaskProcessKey,
+                taskNodeKey: this.row.benTaskNodeKey,
+              },
+              commMap: {
+                material_information: material,
+                process_information: technology,
+                actual_quantity: productionQuantity,
+              },
+            },
+          ];
+        } else {
+          payLoad.insertCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "productionrecords",
+              },
+              addListMap: [
+                {
+                  material_information: material,
+                  process_information: technology,
+                  actual_quantity: productionQuantity,
+                  taskKey: this.row.benTaskProcessKey,
+                  taskNodeKey: this.row.benTaskNodeKey,
+                },
+              ],
+            },
+          ];
+        }
+        submitNodeForm(payLoad).then((response) => {
+          if (response.code == 200) {
+            this.$modal.msgSuccess("保存成功");
+          } else {
+            this.$modal.msgSuccess("保存失败,请稍后再试");
+          }
+        });
+      }
+    },
+  },
+  mounted() {
+    this.resetForm();
+  },
+};
+</script>
+
+<style scoped lang="scss">
+.form-body-wrap {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+}
+</style>

+ 275 - 0
zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/GongYi/GY06.vue

@@ -0,0 +1,275 @@
+<template>
+  <div class="form-wrap">
+    <!-- <div class="cardwrap">
+      <div class="title-area">
+        <span><i class="el-icon-s-order mr5"></i>请选择工艺文件</span>
+        <div class="search ml10">
+          <el-input
+            v-model="search"
+            placeholder="请输入内容"
+            suffix-icon="el-icon-search"
+          ></el-input>
+        </div>
+      </div>
+      <div class="table-area">
+        <el-table :data="[]" border stripe>
+          <el-table-column type="index" width="50" />
+          <el-table-column
+            v-for="col in columns"
+            :prop="col.prop"
+            :key="col.prop"
+            :label="col.label"
+          >
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <div class="cardwrap">
+      <div class="title-area">
+        <span><i class="el-icon-document mr5"></i>材料信息</span>
+      </div>
+      <div class="table-area">
+        <el-table :data="[]" border stripe>
+          <el-table-column type="index" width="50" />
+          <el-table-column
+            v-for="col in material"
+            :prop="col.prop"
+            :key="col.prop"
+            :label="col.label"
+          >
+          </el-table-column>
+        </el-table>
+      </div>
+    </div> -->
+    <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,
+            currentNode: item.nodeId == currentNodeKey,
+          }"
+          v-for="(item, index) of nodeList"
+          :key="item.num"
+          @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: "GY01",
+  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
+            .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>

+ 31 - 0
zkqy-ui/src/views/bussiness/dialogCompments/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>

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

@@ -0,0 +1,158 @@
+<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"
+            :rules="rules"
+          >
+          </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/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/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>

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

@@ -0,0 +1,637 @@
+<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>
+          <template v-if="item.prop == 'qualityControlCard'">
+            <span
+              class="content"
+              style="background: rgb(235, 237, 242); color: rgb(232, 83, 152)"
+            >
+              {{ form.recordQualityControlCard[item.prop] }}
+            </span>
+          </template>
+          <template v-else>
+            <span class="content">
+              {{ form.masterTask[item.prop] }}
+            </span>
+          </template>
+        </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: "PersonalDistribution",
+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));
+    Object.assign(this.form, 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/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>

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

@@ -0,0 +1,638 @@
+<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>
+        <template v-if="item.prop == 'qualityControlCard'">
+          <span
+            class="content"
+            style="background: rgb(235, 237, 242); color: rgb(232, 83, 152)"
+          >
+            {{ form.recordQualityControlCard[item.prop] }}
+          </span>
+        </template>
+        <template v-else>
+          <span class="content">
+            {{ form.masterTask[item.prop] }}
+          </span>
+        </template>
+      </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",
+        master_task: {},
+      },
+      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));
+      Object.assign(this.form, 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>

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

@@ -0,0 +1,256 @@
+<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.masterTask[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.masterTask[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: "",
+        taskNo: "",
+        mapNumber: "",
+        taskNumber: "",
+        master_task: {},
+      },
+      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));
+        Object.assign(this.form, 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/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>

+ 151 - 0
zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/ZhiLiang/ZL1.vue

@@ -0,0 +1,151 @@
+<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"> {{ item.content }} </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"> {{ item.content }} </p>
+                   </div>
+                </div>
+            </div>
+        </div>
+        <div class="card">
+            <div class="title"><span>质控卡号</span></div>
+            <el-input v-model="input" placeholder="请输入内容"></el-input>
+        </div>
+        <div class="submit">
+            <el-button type="success" icon="el-icon-success">记录质控卡</el-button>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'ZL1',
+
+    data() {
+        return {
+            message: [
+                {title: '任务编号', content: 'task_50'},
+                {title: '图号', content: 'drawinng_50'},
+                {title: '投产数量', content: '1'},
+                {title: '牌号', content: '1'},
+                {title: '状态', content: '1'},
+                {title: '标准', content: '1'},
+                {title: '物资名称', content: '1'},
+                {title: '材料/产品', content: '1'},
+                {title: '规格', content: '1'},
+                {title: '尺寸', content: '1'},
+                {title: '备注', content: '1'},
+            ],
+            input: '',
+        };
+    },
+
+    mounted() {
+        
+    },
+
+    methods: {
+        recordValue() {
+            this.$emit('ZL1', this.message[0].content);
+        }
+    },
+};
+</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;
+            }
+        }
+    }
+}
+.card {
+    .title {
+        padding: 10px 0px;
+    }
+}
+.submit {
+    display: flex;
+    flex-direction: row-reverse;
+    padding: 10px 0px;
+    border-bottom: #e2e1e1 solid 1px;
+
+}
+</style>

+ 146 - 0
zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/test-component/CaiGou/CG02.vue

@@ -0,0 +1,146 @@
+<template>
+  <div>
+    <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form-item label="原材料" prop="ycl">
+        <el-select
+          v-model="form.ycl"
+          placeholder="请选择原材料"
+          clearable
+          filterable
+        >
+          <el-option
+            v-for="item in form.goodsList"
+            :key="item.goodsno"
+            :label="item.goodsname"
+            :value="item.goodsno"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="重量" prop="zl">
+        <el-input v-model="form.zl" placeholder="请输入重量" />
+      </el-form-item>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button type="primary" @click="submitHandler">确 定</el-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
+export default {
+  name: "CG02",
+  props: ["formData", "row"],
+  data() {
+    return {
+      // 表单参数
+      form: {
+        zl: "",
+        ycl: "",
+      },
+      // 表单校验
+      rules: {
+        ycl: [{ required: true, message: "请选择原材料", trigger: "change" }],
+        zl: { required: true, message: "请输入重量", trigger: "blur" },
+      },
+    };
+  },
+  watch: {
+    myFormData: {
+      handler(nval) {
+        this.form = nval.resultMap;
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
+
+  mounted() {},
+
+  methods: {
+    async submitHandler() {
+      let res = await this.$refs.form?.validate();
+      if (res) {
+        let payLoad = {};
+        let { ycl, zl } = this.form;
+        if (this.isEdit) {
+          payLoad.updateCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "kucun",
+              },
+              conditionMap: {
+                taskKey: this.row.benTaskProcessKey,
+                taskNodeKey: this.row.benTaskNodeKey,
+              },
+              addListMap: [
+                {
+                  ycl,
+                  zl,
+                },
+              ],
+            },
+          ];
+        } else {
+          payLoad.insertCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "kucun",
+              },
+              addListMap: [
+                {
+                  ycl,
+                  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;
+      }
+    },
+  },
+
+  computed: {
+    myFormData() {
+      return this.formData;
+    },
+    isEdit() {
+      return this.formData.resultMap?.id ? true : false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 168 - 0
zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/test-component/CaiGou/CG1.vue

@@ -0,0 +1,168 @@
+<template>
+  <!-- 采购表单 -->
+  <div class="app-container">
+    <!-- 添加或修改采购单对话框 -->
+    <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form-item label="原材料" prop="ycl">
+        <!-- <el-input v-model="form.ycl" placeholder="请输入原材料" /> -->
+        <el-select
+          v-model="form.ycl"
+          placeholder="请选择原材料"
+          clearable
+          filterable
+        >
+          <el-option
+            v-for="item in goodsList"
+            :key="item.goodsno"
+            :label="item.goodsname"
+            :value="item.goodsno"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="供应商" prop="gys">
+        <el-input v-model="form.gys" placeholder="请输入供应商" />
+      </el-form-item>
+      <el-form-item label="重量" prop="zl">
+        <el-input v-model="form.zl" placeholder="请输入重量" />
+      </el-form-item>
+      <el-form-item label="单价" prop="dj">
+        <el-input v-model="form.dj" placeholder="请输入单价" />
+      </el-form-item>
+      <el-form-item label="备注" prop="remark">
+        <el-input v-model="form.remark" placeholder="请输入备注" />
+      </el-form-item>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button type="primary" @click="submitForm">确 定</el-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
+export default {
+  name: "CG1",
+  props: ["row", "formData"],
+  data() {
+    return {
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {},
+      isEdit: false, //是否是编辑状态
+    };
+  },
+  created() {},
+  mounted() {
+    this.reset();
+  },
+  watch: {
+    formData: {
+      handler(nval) {
+        if (nval.id) this.isEdit = true;
+        this.form = nval.resultMap;
+      },
+    },
+  },
+  computed: {
+    goodsList() {
+      return this.formData.resultMap?.goodsList || [];
+    },
+  },
+  methods: {
+    // 表单重置
+    reset() {
+      this.form = {
+        ycl: null,
+        gys: null,
+        zl: null,
+        dj: null,
+      };
+      // this.resetForm("form");
+    },
+    /** 提交按钮 */
+    submitForm() {
+      console.log(this.row);
+      this.$refs["form"].validate((valid) => {
+        let { ycl, gys, zl, dj } = this.form;
+
+        let payLoad = {};
+        if (this.isEdit) {
+          payLoad.updateCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "caigou",
+              },
+              // addListMap: [
+              //   {
+              //     ycl,
+              //     gys,
+              //     zl,
+              //     dj,
+              //     taskKey: this.row.benTaskProcessKey,
+              //     taskNodeKey: this.row.benTaskNodeKey,
+              //   },
+              // ],
+              conditionMap: {
+                taskKey: this.row.benTaskProcessKey,
+                taskNodeKey: this.row.benTaskNodeKey,
+              },
+              commMap: {
+                ycl,
+                gys,
+                zl,
+                dj,
+              },
+            },
+          ];
+        } else {
+          payLoad.insertCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "caigou",
+              },
+              addListMap: [
+                {
+                  ycl,
+                  gys,
+                  zl,
+                  dj,
+                  taskKey: this.row.benTaskProcessKey,
+                  taskNodeKey: this.row.benTaskNodeKey,
+                },
+              ],
+            },
+          ];
+        }
+        submitNodeForm(payLoad).then((response) => {
+          this.$modal.msgSuccess("新增成功");
+          this.open = false;
+        });
+      });
+    },
+    // 获取表单数据
+    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>

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

@@ -0,0 +1,192 @@
+<template>
+  <div class="form-wrap">
+    <el-form
+      :model="form"
+      ref="form"
+      :rules="rules"
+      label-width="100px"
+      :inline="true"
+      size="normal"
+      class="form-body-wrap"
+    >
+      <el-form-item prop="goodsno" label="商品:">
+        <el-select
+          v-model="form.goodsno"
+          placeholder="请选择商品"
+          clearable
+          filterable
+          :disabled="disable"
+        >
+          <el-option
+            v-for="item in myFormData.resultMap.goods"
+            :key="item.id"
+            :label="item.productname"
+            :value="item.id"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item prop="quantitystock" label="入库数量:">
+        <el-input-number
+          v-model="form.quantitystock"
+          controls-position="right"
+          :min="0"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" size="default" @click="submitHandler"
+          >确认提交</el-button
+        >
+      </el-form-item>
+
+      <!-- <el-form-item prop="remark" label="备注信息:">
+        <el-input v-model="form.remark"></el-input>
+      </el-form-item> -->
+    </el-form>
+  </div>
+</template>
+
+<script>
+import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
+export default {
+  name: "KC02",
+  props: ["formData", "row"],
+  components: {},
+  data() {
+    return {
+      realFormData: {},
+      disable: false,
+      form: {
+        goodsno: "",
+        quantitystock: 0,
+      },
+      rules: {
+        // goodsno: [{ required: true, message: "请选择材料", trigger: "change" }],
+        quantitystock: [
+          { required: true, message: "请输入生产数量", trigger: "blur" },
+        ],
+      },
+    };
+  },
+  watch: {
+    myFormData: {
+      handler(nval) {
+        this.realFormData = nval;
+        // if (nval?.resultMap.id) {
+        this.form = nval?.resultMap;
+        // }
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
+  computed: {
+    myFormData() {
+      return this.formData;
+    },
+    isEdit() {
+      return this.formData.resultMap?.id ? true : false;
+    },
+  },
+  methods: {
+    async getFormData() {
+      let res = {
+        flag: false,
+        msg: "",
+      };
+      try {
+        let valid = await this.$refs.form.validate();
+        if (valid) {
+          res.flag = true;
+          res.data = this.form;
+          return res;
+        } else {
+          res.msg = "表单校验异常,请规范填写表单数据";
+          return res;
+        }
+      } catch (error) {
+        // console.log(error);
+        res.msg = "表单校验异常,请规范填写表单数据";
+        return res;
+      }
+    },
+    resetForm() {
+      this.$refs.form.resetFields();
+      this.$nextTick(this.setDefaultGoods);
+    },
+    setDefaultGoods() {
+      if (this.myFormData.resultMap.goods.length == 1) {
+        this.form.goodsno = this.myFormData.resultMap.goods[0].id;
+        this.disable = true;
+      }
+    },
+    async submitHandler() {
+      let res = await this.$refs.form?.validate();
+      if (res) {
+        let payLoad = {};
+        let { goodsno, quantitystock } = this.form;
+        if (this.isEdit) {
+          let { taskKey, taskNodeKey } = this.myFormData.resultMap;
+          payLoad.updateCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "warehouse",
+              },
+              // addListMap: [
+              //   {
+              //     goodsno,
+              //     quantitystock,
+              //     taskKey: this.row.benTaskProcessKey,
+              //     taskNodeKey: this.row.benTaskNodeKey,
+              //   },
+              // ],
+              conditionMap: {
+                task_key: taskKey,
+                task_node_key: taskNodeKey,
+              },
+              commMap: {
+                goodsno,
+                quantitystock,
+              },
+            },
+          ];
+        } else {
+          payLoad.insertCommonEntityList = [
+            {
+              basicMap: {
+                tableName: "warehouse",
+              },
+              addListMap: [
+                {
+                  goodsno,
+                  quantitystock,
+                  taskKey: this.row.benTaskProcessKey,
+                  taskNodeKey: this.row.benTaskNodeKey,
+                },
+              ],
+            },
+          ];
+        }
+        submitNodeForm(payLoad).then((response) => {
+          if (response.code == 200) {
+            this.$modal.msgSuccess("保存成功");
+          } else {
+            this.$modal.error("保存失败,请稍后再试");
+          }
+        });
+      }
+    },
+  },
+  mounted() {
+    this.resetForm();
+  },
+};
+</script>
+
+<style scoped lang="scss">
+.form-body-wrap {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+}
+</style>

+ 86 - 0
zkqy-ui/src/views/bussiness/dialogCompments/dialogCompments/test-component/KuCun/KC1.vue

@@ -0,0 +1,86 @@
+<template>
+  <!-- 采购表单 -->
+  <div class="app-container">
+    <!-- 添加或修改采购单对话框 -->
+    <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form-item label="原材料" prop="ycl">
+        <el-input v-model="form.ycl" placeholder="请输入原材料" />
+      </el-form-item>
+      <el-form-item label="重量" prop="zl">
+        <el-input v-model="form.zl" placeholder="请输入重量" />
+      </el-form-item>
+      <el-form-item label="备注" prop="remark">
+        <el-input v-model="form.remark" placeholder="请输入备注" />
+      </el-form-item>
+    </el-form>
+    <!-- <div slot="footer" class="dialog-footer">
+      <el-button type="primary" @click="submitForm">确 定</el-button>
+      <el-button @click="cancel">取 消</el-button>
+    </div> -->
+  </div>
+</template>
+
+<script>
+export default {
+  name: "CG1",
+  data() {
+    return {
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {},
+    };
+  },
+  created() {},
+  methods: {
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        ycl: null,
+        zl: null,
+        remark: null,
+        createById: null,
+        createBy: null,
+        createTime: null,
+        updateById: null,
+        updateBy: null,
+        updateTime: null,
+        delFlag: null,
+      };
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        // addCaigou(this.form).then((response) => {
+        //   this.$modal.msgSuccess("新增成功");
+        //   this.open = false;
+        //   this.getList();
+        // });
+      });
+    },
+    // 获取表单数据
+    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>