Эх сурвалжийг харах

编辑作业票修改sop为空字段问题修复

pm 1 жил өмнө
parent
commit
6d567c56b4

+ 9 - 1
src/components/separationPoint/index.vue

@@ -34,7 +34,10 @@ export default {
     'getMapData': {
     'getMapData': {
       handler(newval) {
       handler(newval) {
         if (newval) {
         if (newval) {
-          this.initKonva()
+          this.$nextTick(()=>{
+            this.initKonva()
+          })
+
         }
         }
       }
       }
     }
     }
@@ -129,7 +132,11 @@ export default {
       this.layer.draw()
       this.layer.draw()
     },
     },
 
 
+
+
+
     renderGrid(imageSrc) {
     renderGrid(imageSrc) {
+
       this.selectedStates = {} // 用对象来存储选中状态,键为文字内容
       this.selectedStates = {} // 用对象来存储选中状态,键为文字内容
       this.rects = {}
       this.rects = {}
       this.texts = {}
       this.texts = {}
@@ -391,6 +398,7 @@ export default {
           // }
           // }
 
 
           this.layer.draw()
           this.layer.draw()
+
         }
         }
       })
       })
     }
     }

+ 46 - 32
src/components/separationPoint/workshop.vue

@@ -146,43 +146,52 @@ export default {
     jobProps: {
     jobProps: {
       handler(newVal, oldVal) {
       handler(newVal, oldVal) {
         console.log("jobProps 发生变化", newVal);
         console.log("jobProps 发生变化", newVal);
-        // 在这里处理 jobProps 变化后的逻辑
-        this.form.workShop = newVal[0].workshopId;
-        this.form.producLine = newVal[0].workareaId;
-        this.form.sopId = newVal[0].sopId;
-        console.log(this.form.sopId, "form.sopId jobProps");
-        // 确保 handleselect 完成后再调用 handleselectProductLine
-        this.handleselect(newVal[0].workshopId)
-          .then(() => {
-            this.handleselectProductLine(newVal[0].workareaId);
-          })
-          .catch((error) => {
-            console.error("处理车间下拉失败", error);
-          });
+        if(newVal.length == 0) {
+          this.setSopEdit(true);
+          this.form.workShop=[];
+          this.form.producLine=''
+          this.form.sopId=''
+          this.form.t
+        }else{
+          // 在这里处理 jobProps 变化后的逻辑
+          this.form.workShop = newVal[0].workshopId;
+          this.form.producLine = newVal[0].workareaId;
+          this.form.sopId = newVal[0].sopId;
+          console.log(this.form.sopId, "form.sopId jobProps");
+          // 确保 handleselect 完成后再调用 handleselectProductLine
+          this.handleselect(newVal[0].workshopId)
+            .then(() => {
+              this.handleselectProductLine(newVal[0].workareaId);
+            })
+            .catch((error) => {
+              console.error("处理车间下拉失败", error);
+            });
+
+          // 这里是为了拿到sop模板里默认的隔离点选中的数据a
+          if (!newVal[0].EditBool) {
+            selectIsSopById(newVal[0].sopId).then((res) => {
+              console.log(res, "sop");
+              const selectSopPoints = res.data.pointDetailVOList.map((item) => {
+                return item.pointId;
+              });
 
 
-        // 这里是为了拿到sop模板里默认的隔离点选中的数据a
-        if (!newVal[0].EditBool) {
-          selectIsSopById(newVal[0].sopId).then((res) => {
-            console.log(res, "sop");
-            const selectSopPoints = res.data.pointDetailVOList.map((item) => {
+              // 调用 Vuex action 来存储 selectSopPoints
+              this.setSelectSopPoints(selectSopPoints);
+              this.setPointTableData(res.data);
+
+              this.setSopEdit(false);
+              console.log(selectSopPoints, "sop_selectePoints");
+            });
+          } else {
+            const selectSopPoints = newVal[0].spoint.map((item) => {
               return item.pointId;
               return item.pointId;
             });
             });
-
-            // 调用 Vuex action 来存储 selectSopPoints
             this.setSelectSopPoints(selectSopPoints);
             this.setSelectSopPoints(selectSopPoints);
-            this.setPointTableData(res.data);
-
-            this.setSopEdit(false);
-            console.log(selectSopPoints, "sop_selectePoints");
-          });
-        } else {
-          const selectSopPoints = newVal[0].spoint.map((item) => {
-            return item.pointId;
-          });
-          this.setSelectSopPoints(selectSopPoints);
-          this.setPointTableData(newVal[0].spoint);
-          this.setSopEdit(true);
+            this.setPointTableData(newVal[0].spoint);
+            this.setSopEdit(true);
+          }
         }
         }
+
       },
       },
       immediate: true, // 立即执行一次,确保在组件初始化时也能捕获到 jobProps 的值
       immediate: true, // 立即执行一次,确保在组件初始化时也能捕获到 jobProps 的值
     },
     },
@@ -218,6 +227,7 @@ export default {
 
 
     // 单选车间下拉
     // 单选车间下拉
     handleselect(value) {
     handleselect(value) {
+
       return new Promise((resolve, reject) => {
       return new Promise((resolve, reject) => {
         getIsWorkareaList(value)
         getIsWorkareaList(value)
           .then((response) => {
           .then((response) => {
@@ -270,6 +280,10 @@ export default {
         data2 = this.$route.query.ticketId; // ticketId 存在时,data1 设置为空字符串
         data2 = this.$route.query.ticketId; // ticketId 存在时,data1 设置为空字符串
       }
       }
       console.log(this.form.sopId, "form.sopId");
       console.log(this.form.sopId, "form.sopId");
+      if(this.jobProps.length==0){
+        console.log(this.jobProps,'如果jobProps是空数组表示编辑情况下修改sop为空值需要重新拿到所有渲染隔离点')
+        data2=""
+      }
       if (this.form.sopId) {
       if (this.form.sopId) {
         data1 = this.form.sopId;
         data1 = this.form.sopId;
       }
       }

+ 44 - 6
src/views/mes/job/jobm/NewOperations.vue

@@ -478,6 +478,31 @@ export default {
           // }
           // }
         ] //所选择的用户
         ] //所选择的用户
       },
       },
+      // 用来清空form
+      initialFormState: { // 初始状态对象
+        sopId: '',
+        pointIds: '',
+        ticketId: '',
+        ticketType: '',
+        ticketName: '',
+        ticketCode: '',
+        ticketContent: '',
+        workshopName: '', //车间名称
+        workline: '', //区域
+        spoint: [], //已选隔离点
+        locker: '', //上锁人
+        coLocker: '', //共锁人
+        ticketStartTime: '', //开始时间
+        ticketEndTime: '', //结束时间
+        ticketUserDTOList: [
+          // {
+          //   userId: '',
+          //   userName: '',
+          //   userRole: '',//作业票角色 暂时不传递 内部人还是外部人
+          //   userType: ''//用户类型 上锁人或共锁人
+          // }
+        ] //所选择的用户
+      },
       dialogForm: {
       dialogForm: {
         deptId: '',
         deptId: '',
         nickName: '',
         nickName: '',
@@ -547,7 +572,7 @@ export default {
           this.form.pointIds = this.tableData
           this.form.pointIds = this.tableData
             .map((item) => item.pointId)
             .map((item) => item.pointId)
             .join(',')
             .join(',')
-          console.log(this.form.pointIds, this.tableData, 'pointIds')
+          // console.log(this.form.pointIds, this.tableData, 'pointIds')
         }
         }
       },
       },
       deep: true
       deep: true
@@ -671,7 +696,14 @@ export default {
       }
       }
       getIsSopPage(query).then((res) => {
       getIsSopPage(query).then((res) => {
         console.log(res, 'sop列表接口')
         console.log(res, 'sop列表接口')
-        this.sopOptions = res.data.records
+        // 插入一个默认的空选项
+        const defaultOption = {
+          sopId: null,
+          sopName: '空'
+        };
+
+        // 将默认选项添加到结果的最前面
+        this.sopOptions = [defaultOption, ...res.data.records];
       })
       })
     },
     },
     getUser() {
     getUser() {
@@ -719,10 +751,16 @@ export default {
         })
         })
       })
       })
     },
     },
-    // sop下拉change事件
+    // sop下拉change事件 可以传递sopOptions一整个对象过去
     handleSelectSOP(value) {
     handleSelectSOP(value) {
-      this.jobProps = this.sopOptions.filter((item) => item.sopId == value)
-      console.log(this.jobProps, '父组件jobProps')
+      if(value==null){
+        this.jobProps=[]
+        console.log(this.form.sopId,this.form,'sop下拉change事件')
+      }else{
+        this.jobProps = this.sopOptions.filter((item) => item.sopId == value)
+        console.log(this.jobProps, '父组件jobProps')
+      }
+
     },
     },
     // 上锁人下拉选择change事件
     // 上锁人下拉选择change事件
     handlelockerChage(val) {
     handlelockerChage(val) {
@@ -991,7 +1029,7 @@ export default {
     // 子组件逆向传递选中的隔离点
     // 子组件逆向传递选中的隔离点
 
 
     handleSelectPoint(points) {
     handleSelectPoint(points) {
-      console.log(points, '父组件接收逆向传递选中的隔离点')
+      // console.log(points, '父组件接收逆向传递选中的隔离点')
 
 
       // 使用 Set 来存储传递过来的点值
       // 使用 Set 来存储传递过来的点值
       const newValues = new Set(points.map((point) => point.pointId))
       const newValues = new Set(points.map((point) => point.pointId))

+ 2 - 1
src/views/mes/md/workarea/MapData.vue

@@ -262,7 +262,8 @@ export default {
         const labelText = pos.pointName; // 对应的文字
         const labelText = pos.pointName; // 对应的文字
 
 
         const point = new Image();
         const point = new Image();
-        point.src = imageSrc;
+        point.src=pos.pointIcon
+        // point.src = imageSrc;
         point.onload = () => {
         point.onload = () => {
           const knovaImage = new Konva.Image({
           const knovaImage = new Konva.Image({
             x: x,
             x: x,

+ 2 - 2
src/views/mes/sop/sopm/NewSop.vue

@@ -436,7 +436,7 @@ export default {
     },
     },
     // 车间你逆向传递拿到的隔离点数据产线
     // 车间你逆向传递拿到的隔离点数据产线
     handleProductLineSelected(selectedOption) {
     handleProductLineSelected(selectedOption) {
-      console.log(selectedOption.map, "父组件接收到的 selectedOption");
+      // console.log(selectedOption.map, "父组件接收到的 selectedOption");
       this.points = selectedOption;
       this.points = selectedOption;
       this.form.workline = selectedOption.label;
       this.form.workline = selectedOption.label;
       this.worklineMap = selectedOption.map;
       this.worklineMap = selectedOption.map;
@@ -444,7 +444,7 @@ export default {
     },
     },
     // 车间子组件逆传递车间相关数据车间
     // 车间子组件逆传递车间相关数据车间
     handleWorkshopSelected(selectedOption) {
     handleWorkshopSelected(selectedOption) {
-      console.log(selectedOption, "handleWorkshopSelected");
+      // console.log(selectedOption, "handleWorkshopSelected");
       this.emitWorkShop = selectedOption;
       this.emitWorkShop = selectedOption;
       this.form.workshopName = selectedOption.label;
       this.form.workshopName = selectedOption.label;
     },
     },