pm преди 1 година
родител
ревизия
f50ff95230

+ 124 - 127
src/views/mes/hw/information/index.vue

@@ -167,7 +167,11 @@
         prop="hardwareName"
         :show-overflow-tooltip="true"
       />
-      <el-table-column label="硬件类型" align="center" prop="hardwareTypeName" />
+      <el-table-column
+        label="硬件类型"
+        align="center"
+        prop="hardwareTypeName"
+      />
       <el-table-column label="规格型号" align="center" prop="hardwareSpec" />
       <el-table-column label="所属车间" align="center" prop="workshopName" />
       <el-table-column label="硬件状态" align="center" prop="status">
@@ -225,7 +229,7 @@
             v-hasPermi="['mes:hw:information:remove']"
             >删除</el-button
           >
-<!--          <el-button size="mini" type="text">预览</el-button>-->
+          <!--          <el-button size="mini" type="text">预览</el-button>-->
         </template>
       </el-table-column>
     </el-table>
@@ -247,7 +251,7 @@
     >
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
         <el-row>
-          <el-col :span="11">
+          <el-col :span="8">
             <el-form-item label="硬件编码" prop="hardwareCode">
               <el-input
                 v-model="form.hardwareCode"
@@ -256,6 +260,18 @@
               />
             </el-form-item>
           </el-col>
+          <el-col :span="3">
+            <el-form-item label-width="80">
+              <el-switch
+                v-model="autoGenFlag"
+                active-color="#13ce66"
+                active-text="自动生成"
+                @change="handleAutoGenChange(autoGenFlag)"
+                v-if="optType != 'view'"
+              >
+              </el-switch>
+            </el-form-item>
+          </el-col>
           <el-col :span="11">
             <el-form-item label="硬件类型" prop="hardwareTypeName">
               <el-select
@@ -336,10 +352,7 @@
           </el-col>
           <el-col :span="11">
             <el-form-item label="已用次数" prop="usedTimes">
-              <el-input
-                v-model="form.usedTimes"
-                placeholder="请输入已用次数"
-              />
+              <el-input v-model="form.usedTimes" placeholder="请输入已用次数" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -354,38 +367,28 @@
           </el-col>
           <el-col :span="11">
             <el-form-item label="已用寿命" prop="usedLife">
-              <el-input
-                v-model="form.usedLife"
-                placeholder="请输入已用寿命"
-              />
+              <el-input v-model="form.usedLife" placeholder="请输入已用寿命" />
             </el-form-item>
           </el-col>
         </el-row>
 
         <el-form-item label="状态" prop="status">
-            <el-radio v-model="form.status" label="1" v-removeAriaHidden
-              ><img
-                src="@/assets/images/success.png"
-                alt=""
-                class="imgstatus"
-              />
-              在线</el-radio
-            >
-            <el-radio v-model="form.status" v-removeAriaHidden  label="2" ><img src="@/assets/images/error.png" alt="" class="imgstatus" />
-              离线</el-radio
-            >
-            <el-radio v-model="form.status" v-removeAriaHidden label="3"
-              ><img src="@/assets/images/warn.png" alt="" class="imgstatus" />
-              异常</el-radio
-            >
+          <el-radio v-model="form.status" label="1" v-removeAriaHidden
+            ><img src="@/assets/images/success.png" alt="" class="imgstatus" />
+            在线</el-radio
+          >
+          <el-radio v-model="form.status" v-removeAriaHidden label="2"
+            ><img src="@/assets/images/error.png" alt="" class="imgstatus" />
+            离线</el-radio
+          >
+          <el-radio v-model="form.status" v-removeAriaHidden label="3"
+            ><img src="@/assets/images/warn.png" alt="" class="imgstatus" />
+            异常</el-radio
+          >
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button
-          type="primary"
-          @click="submitForm"
-          >确 定</el-button
-        >
+        <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -400,9 +403,9 @@ import {
   updateHardware,
   delHardware,
   getHardwareInfo,
-  listAllWorkshop
-} from '@/api/mes/hw/hardwareinfo'
-
+  listAllWorkshop,
+} from "@/api/mes/hw/hardwareinfo";
+import { genCode } from "@/api/system/autocode/rule";
 export default {
   name: "hardwareinfo",
   dicts: ["hardware_status"],
@@ -430,34 +433,31 @@ export default {
       // 是否显示弹出层
       open: false,
       // 查询参数
-      createTime:'',
+      createTime: "",
       queryParams: {
         current: 1,
         size: 10,
-        hardwareCode:'',
-        hardwareName:'',
-        status:'',
-        hardwareTypeName:'',
-        hardwareSpec:'',
-        startTime:'',
-        endTime:'',
-        workshopName:'',
-        workshopCode:'',
-        workshopId:'',
+        hardwareCode: "",
+        hardwareName: "",
+        status: "",
+        hardwareTypeName: "",
+        hardwareSpec: "",
+        startTime: "",
+        endTime: "",
+        workshopName: "",
+        workshopCode: "",
+        workshopId: "",
       },
       queryTypeParams: {
-        enableFlag:'y',
+        enableFlag: "y",
       },
-      workshopOption:[
-
-      ],
-      hardwareTypeOption:[],
+      workshopOption: [],
+      hardwareTypeOption: [],
       // 表单参数
       form: {
-        hardwareTypeId:0,
-        workshopCode:0,
-        workshopId:0,
-
+        hardwareTypeId: 0,
+        workshopCode: 0,
+        workshopId: 0,
       },
       // 表单校验
       rules: {
@@ -467,7 +467,6 @@ export default {
         hardwareName: [
           { required: true, message: "硬件名称不能为空", trigger: "blur" },
         ],
-
       },
       // 日期选择
       pickerOptions: {
@@ -504,19 +503,22 @@ export default {
       value2: "",
       // 新增状态
       radio: 3,
-      EditId:0,//修改判断
+      EditId: 0, //修改判断
     };
   },
   created() {
     this.getList();
-    this.getHardwareTypeList()
+    this.getHardwareTypeList();
   },
   methods: {
     // 格式化日期查询数据
     formatDate(date) {
       if (date && date instanceof Date && !isNaN(date)) {
         // 使用本地时间
-        return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
+        return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(
+          2,
+          "0"
+        )}-${String(date.getDate()).padStart(2, "0")}`;
       }
       return null;
     },
@@ -525,7 +527,7 @@ export default {
     getList() {
       this.loading = true;
       // 格式化日期并更新 queryParams
-      if (Array.isArray(this.createTime) && this.createTime.length === 2){
+      if (Array.isArray(this.createTime) && this.createTime.length === 2) {
         this.queryParams.startTime = this.formatDate(this.createTime[0]);
         this.queryParams.endTime = this.formatDate(this.createTime[1]);
       }
@@ -535,63 +537,62 @@ export default {
         this.total = response.data.total;
         this.loading = false;
       });
-    //   车间数据
+      //   车间数据
       listAllWorkshop().then((response) => {
-        this.workshopOption = response.data.map((item)=>{
+        this.workshopOption = response.data.map((item) => {
           return {
-            label:item.workshopName,
-            value:item.workshopId,
-            key:item.workshopCode,
-          }
+            label: item.workshopName,
+            value: item.workshopId,
+            key: item.workshopCode,
+          };
         });
-      })
+      });
     },
     // 获取硬件类型-所有
     getHardwareTypeList() {
-      getHardwareTypeListAPI(this.queryTypeParams).then(response => {
-        console.log(response,'Type')
-        this.hardwareTypeOption=response.data.map((item) => {
-          return{
-            label:item.hardwareTypeName,
+      getHardwareTypeListAPI(this.queryTypeParams).then((response) => {
+        console.log(response, "Type");
+        this.hardwareTypeOption = response.data.map((item) => {
+          return {
+            label: item.hardwareTypeName,
             value: item.hardwareTypeCode,
-            key:item.id,
-          }
-        })
-      })
+            key: item.id,
+          };
+        });
+      });
     },
     // 硬件类型下拉
-    hardTypeChange(val){
-      console.log(val,'下拉类型')
-      const TypeId=this.hardwareTypeOption.find((item)=>{
-        return item.value==val?item.key:null;
-      })
-      this.form.hardwareTypeId=TypeId.key
-      this.form.hardwareTypeCode=TypeId.value
-      this.form.hardwareTypeName=TypeId.label
-      console.log(this.form.hardwareTypeId,'hardwareTypeId')
+    hardTypeChange(val) {
+      console.log(val, "下拉类型");
+      const TypeId = this.hardwareTypeOption.find((item) => {
+        return item.value == val ? item.key : null;
+      });
+      this.form.hardwareTypeId = TypeId.key;
+      this.form.hardwareTypeCode = TypeId.value;
+      this.form.hardwareTypeName = TypeId.label;
+      console.log(this.form.hardwareTypeId, "hardwareTypeId");
     },
     // 车间下拉 --新增表单
-    workShopChange(val){
-      console.log(val,'val')
-
-      this.form.workshopId=val
-      const item=this.workshopOption.find((item)=>{
-        return item.value==val?item.key:null;
-      })
-      console.log(item,'item')
-      this.form.workshopCode=item.key
-      this.form.workshopName=item.label
+    workShopChange(val) {
+      console.log(val, "val");
 
+      this.form.workshopId = val;
+      const item = this.workshopOption.find((item) => {
+        return item.value == val ? item.key : null;
+      });
+      console.log(item, "item");
+      this.form.workshopCode = item.key;
+      this.form.workshopName = item.label;
     },
-    workShopChangequery(val){
-      console.log(val,'查询下拉')
-      this.queryParams.workshopId=val
-      const item=this.workshopOption.find((item)=>{
-        return item.value==val?item.key:null;
-      })
+    workShopChangequery(val) {
+      console.log(val, "查询下拉");
+      this.queryParams.workshopId = val;
+      const item = this.workshopOption.find((item) => {
+        return item.value == val ? item.key : null;
+      });
 
-      this.queryParams.workshopCode=item.key
-      this.queryParams.workshopName=item.label
+      this.queryParams.workshopCode = item.key;
+      this.queryParams.workshopName = item.label;
     },
 
     // 取消按钮
@@ -602,14 +603,14 @@ export default {
     // 表单重置
     reset() {
       this.form = {
-        hardwareCode:'',
-        hardwareName:'',
-        status:'',
-        hardwareTypeName:'',
-        hardwareSpec:'',
-        createTime:'',
-        workshopName:'',
-        workshopId: '',
+        hardwareCode: "",
+        hardwareName: "",
+        status: "",
+        hardwareTypeName: "",
+        hardwareSpec: "",
+        createTime: "",
+        workshopName: "",
+        workshopId: "",
         workshopCode: null,
       };
 
@@ -623,12 +624,12 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.queryParams.workshopCode=""
-      this.queryParams.workshopName=""
-      this.queryParams.workshopId=""
-      this.createTime="";//之所以不把这个值放到queryParams是因为会被携带到参数里create Time[0]这样的内容携带进去
-      this.queryParams.startTime=""
-      this.queryParams.endTime=""
+      this.queryParams.workshopCode = "";
+      this.queryParams.workshopName = "";
+      this.queryParams.workshopId = "";
+      this.createTime = ""; //之所以不把这个值放到queryParams是因为会被携带到参数里create Time[0]这样的内容携带进去
+      this.queryParams.startTime = "";
+      this.queryParams.endTime = "";
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -642,7 +643,7 @@ export default {
     handleAdd() {
       this.reset();
       this.open = true;
-      this.EditId=null
+      this.EditId = null;
       this.title = "新增硬件信息";
     },
     /** 修改按钮操作 */
@@ -659,7 +660,6 @@ export default {
     submitForm() {
       this.$refs["form"].validate((valid) => {
         if (valid) {
-
           if (this.EditId != null) {
             updateHardware(this.form).then((response) => {
               this.$modal.msgSuccess("修改成功");
@@ -667,11 +667,11 @@ export default {
               this.getList();
             });
           } else {
-            console.log(this.form,'form')
+            console.log(this.form, "form");
             addHardware(this.form).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
-              this.EditId=null
+              this.EditId = null;
               this.getList();
             });
           }
@@ -684,16 +684,13 @@ export default {
       this.$modal
         .confirm('是否确认删除硬件编号为"' + repairIds + '"的数据项?')
         .then(function () {
-
           return delHardware(repairIds);
         })
         .then(() => {
           this.getList();
           this.$modal.msgSuccess("删除成功");
         })
-        .catch(() => {
-
-        });
+        .catch(() => {});
     },
     /** 导出按钮操作 */
     handleExport() {
@@ -709,11 +706,11 @@ export default {
     //自动生成编码
     handleAutoGenChange(autoGenFlag) {
       if (autoGenFlag) {
-        genCode("REPAIR_CODE").then((response) => {
-          this.form.repairCode = response;
+        genCode("HARDWARE_TYPE").then((response) => {
+          this.form.hardwareCode = response;
         });
       } else {
-        this.form.repairCode = null;
+        this.form.hardwareCode = null;
       }
     },
   },

+ 67 - 36
src/views/mes/hw/type/index.vue

@@ -34,12 +34,12 @@
           <el-option label="启用" value="y"></el-option>
           <el-option label="禁用" value="n"></el-option>
 
-<!--          <el-option-->
-<!--            v-for="dict in dict.type.mes_order_status"-->
-<!--            :key="dict.value"-->
-<!--            :label="dict.label"-->
-<!--            :value="dict.value"-->
-<!--          />-->
+          <!--          <el-option-->
+          <!--            v-for="dict in dict.type.mes_order_status"-->
+          <!--            :key="dict.value"-->
+          <!--            :label="dict.label"-->
+          <!--            :value="dict.value"-->
+          <!--          />-->
         </el-select>
       </el-form-item>
       <el-form-item style="margin-left: 50px">
@@ -106,18 +106,26 @@
       />
       <el-table-column label="状态" align="center" prop="enableFlag">
         <template slot-scope="scope">
-          <el-tag v-if="scope.row.enableFlag=='y'">启用</el-tag>
+          <el-tag v-if="scope.row.enableFlag == 'y'">启用</el-tag>
           <el-tag v-else type="danger">禁用</el-tag>
 
-<!--          <dict-tag-->
-<!--            :options="dict.type.mes_order_status"-->
-<!--            :value="scope.row.enableFlag"-->
-<!--          />-->
+          <!--          <dict-tag-->
+          <!--            :options="dict.type.mes_order_status"-->
+          <!--            :value="scope.row.enableFlag"-->
+          <!--          />-->
         </template>
       </el-table-column>
-      <el-table-column label="硬件层级" align="center" prop="level" >
+      <el-table-column label="硬件层级" align="center" prop="level">
         <template slot-scope="scope">
-          {{scope.row.level=='1'?'一':scope.row.level=='2'?'二':scope.row.level=='3'?'三':scope.row.level}}级
+          {{
+            scope.row.level == "1"
+              ? "一"
+              : scope.row.level == "2"
+              ? "二"
+              : scope.row.level == "3"
+              ? "三"
+              : scope.row.level
+          }}级
         </template>
       </el-table-column>
       <el-table-column label="备注" align="center" prop="remark" />
@@ -162,11 +170,33 @@
         <span class="title">{{ title }}</span>
       </div>
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="硬件编号" prop="hardwareTypeCode">
-          <el-input v-model="form.hardwareTypeCode" placeholder="请输入硬件编号" />
-        </el-form-item>
+        <el-row>
+          <el-col :span="18">
+            <el-form-item label="硬件编号" prop="hardwareTypeCode">
+              <el-input
+                v-model="form.hardwareTypeCode"
+                placeholder="请输入硬件编号"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label-width="30">
+              <el-switch
+                v-model="autoGenFlag"
+                active-color="#13ce66"
+                active-text="自动生成"
+                @change="handleAutoGenChange(autoGenFlag)"
+                v-if="optType != 'view'"
+              >
+              </el-switch>
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-form-item label="硬件名称" prop="hardwareTypeName">
-          <el-input v-model="form.hardwareTypeName" placeholder="请输入硬件名称" />
+          <el-input
+            v-model="form.hardwareTypeName"
+            placeholder="请输入硬件名称"
+          />
         </el-form-item>
         <el-form-item label="硬件层级" prop="level">
           <el-input-number
@@ -178,8 +208,8 @@
           ></el-input-number>
         </el-form-item>
         <el-form-item label="状态" prop="enableFlag">
-          <el-radio v-model="form.enableFlag" label="y" >启用</el-radio>
-          <el-radio v-model="form.enableFlag" label="n" >禁用</el-radio>
+          <el-radio v-model="form.enableFlag" label="y">启用</el-radio>
+          <el-radio v-model="form.enableFlag" label="n">禁用</el-radio>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
           <el-input
@@ -213,6 +243,7 @@ export default {
 
   data() {
     return {
+      //自动生成编码
       autoGenFlag: false,
       optType: undefined,
       // 遮罩层
@@ -241,15 +272,15 @@ export default {
       queryParams: {
         current: 1,
         size: 10,
-        hardwareTypeCode:'',
-        hardwareTypeName:'',
-        enableFlag:'',
+        hardwareTypeCode: "",
+        hardwareTypeName: "",
+        enableFlag: "",
       },
       // 表单参数
       form: {
-        parentTypeId:0
+        parentTypeId: 0,
       },
-      EditId:null,//编辑传递id
+      EditId: null, //编辑传递id
       // 表单校验
       rules: {
         hardwareTypeCode: [
@@ -286,11 +317,11 @@ export default {
     // 表单重置
     reset() {
       this.form = {
-        hardwareTypeCode:'',
-        hardwareTypeName:'',
-        level:'',
-        enableFlag:'',
-        remark:''
+        hardwareTypeCode: "",
+        hardwareTypeName: "",
+        level: "",
+        enableFlag: "",
+        remark: "",
       };
       this.autoGenFlag = false;
       this.resetForm("form");
@@ -313,10 +344,10 @@ export default {
     },
     /** 新增按钮操作 */
     handleAdd() {
-      console.log(this.form,'新增')
+      console.log(this.form, "新增");
       this.reset();
       this.open = true;
-      this.EditId=null
+      this.EditId = null;
       this.title = "新增硬件类型";
     },
     /** 修改按钮操作 */
@@ -340,11 +371,11 @@ export default {
               this.getList();
             });
           } else {
-            this.form.parentTypeId=0
+            this.form.parentTypeId = 0;
             addHardwareType(this.form).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
-              this.EditId=null
+              this.EditId = null;
               this.getList();
             });
           }
@@ -379,11 +410,11 @@ export default {
     //自动生成编码
     handleAutoGenChange(autoGenFlag) {
       if (autoGenFlag) {
-        genCode("REPAIR_CODE").then((response) => {
-          this.form.repairCode = response;
+        genCode("HARDWARE_TYPE_CODE").then((response) => {
+          this.form.hardwareTypeCode = response;
         });
       } else {
-        this.form.repairCode = null;
+        this.form.hardwareTypeCode = null;
       }
     },
   },

+ 81 - 18
src/views/mes/job/jobm/NewOperations.vue

@@ -49,13 +49,30 @@
                       />
                     </el-select>
                   </el-form-item>
-                  <el-form-item label="作业票编号" prop="ticketCode">
-                    <el-input
-                      v-model="form.ticketCode"
-                      placeholder="请输入作业票编号"
-                      style="width: 100%"
-                    />
-                  </el-form-item>
+                  <el-row>
+                    <el-col :span="16">
+                      <el-form-item label="作业票编号" prop="ticketCode">
+                        <el-input
+                          v-model="form.ticketCode"
+                          placeholder="请输入作业票编号"
+                          style="width: 100%"
+                        />
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
+                      <el-form-item label-width="80">
+                        <el-switch
+                          v-model="autoGenFlag"
+                          active-color="#13ce66"
+                          active-text="自动生成"
+                          @change="handleAutoGenChange(autoGenFlag)"
+                          v-if="optType != 'view'"
+                        >
+                        </el-switch>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+
                   <el-form-item label="作业票名称" prop="ticketName">
                     <el-input
                       v-model="form.ticketName"
@@ -344,15 +361,20 @@ import {
   deleteIsJobTicket,
   getworkareaList
 } from '@/api/mes/job/job'
-import { listWorkshop } from '@/api/mes/md/workshop'
-import { listWorkarea } from '@/api/mes/wa/workarea'
-import { getIsSopPage } from '@/api/mes/sop/sopindex'
-import { listUser } from '@/api/system/user'
-import { listDept } from '@/api/system/dept'
-import IsolationLeftVue from '@/components/separationPoint/index.vue'
+
 
 import { mapGetters,mapActions } from 'vuex'
 
+import { listWorkshop } from "@/api/mes/md/workshop";
+import { listWorkarea } from "@/api/mes/wa/workarea";
+import { getIsSopPage } from "@/api/mes/sop/sopindex";
+import { listUser } from "@/api/system/user";
+import { listDept } from "@/api/system/dept";
+import IsolationLeftVue from "@/components/separationPoint/index.vue";
+import { genCode } from "@/api/system/autocode/rule";
+
+
+
 export default {
   name: 'addView',
   dicts: ['ticket_type', 'power_type', 'point_type', 'is_user_type'],
@@ -363,7 +385,10 @@ export default {
   },
   data() {
     return {
-      activeName: 'first',
+      //自动生成编码
+      autoGenFlag: false,
+      activeName: "first",
+
       form: {
         sopId: '',
         pointIds: '',
@@ -832,7 +857,6 @@ export default {
           ticketUserDTOList: this.form.ticketUserDTOList,
           workareaId: workareaId,
           workshopId: workshopId,
-
         };
         const editdata={
           pointIds: this.form.spoint.join(','),
@@ -859,6 +883,7 @@ export default {
           } else {
             console.error('编辑工单失败', res);
           }
+
         } else {
           // 调用新增接口
           const res = await addJobTicket(data);
@@ -949,15 +974,53 @@ export default {
       this.open = false
 
     },
+
   //   时间选项
     ticketStartTimeChange(){
 
     },
     ticketEndTimeChange(){
 
-    }
-  }
-}
+    },
+    reset() {
+      this.form = {
+        sopId: "",
+        pointIds: "",
+        ticketType: "",
+        ticketName: "",
+        ticketCode: "",
+        ticketContent: "",
+        workshopName: "", //车间名称
+        workline: "", //产线
+        spoint: [], //已选隔离点
+        locker: "", //上锁人
+        coLocker: "", //共锁人
+        ticketStartTime: "", //开始时间
+        ticketEndTime: "", //结束时间
+        ticketUserDTOList: [
+          // {
+          //   userId: '',
+          //   userName: '',
+          //   userRole: '',//作业票角色 暂时不传递
+          //   userType: ''//用户类型 上锁人或共锁人
+          // }
+        ],
+      },
+        this.autoGenFlag = false;
+    },
+    //自动生成编码
+    handleAutoGenChange(autoGenFlag) {
+      if (autoGenFlag) {
+        genCode("JOB_TICKET_CODE").then((response) => {
+          this.form.ticketCode = response;
+        });
+      } else {
+        this.form.ticketCode = null;
+      }
+    },
+  },
+};
+
 </script>
 
 

+ 55 - 19
src/views/mes/sop/sopm/NewSop.vue

@@ -39,13 +39,30 @@
                       style="width: 100%"
                     />
                   </el-form-item>
-                  <el-form-item label="编号" prop="sopCode">
-                    <el-input
-                      v-model="form.sopCode"
-                      placeholder="请输入SOP编号"
-                      style="width: 100%"
-                    />
-                  </el-form-item>
+                  <el-row>
+                    <el-col :span="16">
+                      <el-form-item label="编号" prop="sopCode">
+                        <el-input
+                          v-model="form.sopCode"
+                          placeholder="请输入SOP编号"
+                          style="width: 100%"
+                        />
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
+                      <el-form-item label-width="80">
+                        <el-switch
+                          v-model="autoGenFlag"
+                          active-color="#13ce66"
+                          active-text="自动生成"
+                          @change="handleAutoGenChange(autoGenFlag)"
+                          v-if="optType != 'view'"
+                        >
+                        </el-switch>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+
                   <el-form-item label="SOP类型" prop="sopType">
                     <el-select
                       v-model="form.sopType"
@@ -170,12 +187,13 @@
 <script>
 import IsolationLeftVue from "@/components/separationPoint/index.vue";
 import SopLeft from "@/components/separationPoint/workshop.vue";
+import { genCode } from "@/api/system/autocode/rule";
 import {
   addinsertIsSop,
   updateIsSop,
   selectIsSopById,
 } from "@/api/mes/sop/sopindex";
-import { mapActions, mapGetters } from 'vuex'
+import { mapActions, mapGetters } from "vuex";
 export default {
   name: "addView",
   dicts: ["power_type", "point_type", "sop_type"],
@@ -185,6 +203,8 @@ export default {
   },
   data() {
     return {
+      //自动生成编码
+      autoGenFlag: false,
       activeName: "first",
       form: {
         sopName: "",
@@ -230,23 +250,26 @@ export default {
     };
   },
   mounted() {
-
     if (this.$route.query.sopId !== "null") {
       // console.log(this.$route.query.sopId, "接受路由参数");
       this.getSopInfo();
-
     }
   },
 
   methods: {
-    ...mapActions('sopSelectPoints', [
-      'setSelectSopPoints','setPointTableData','setSopEdit','setWorkShop','setProductLine'
+
+    ...mapActions("sopSelectPoints", [
+      "setSelectSopPoints",
+      "setPointTableData",
+      "setSopEdit",
+
     ]),
     handleClick(tab, event) {
       // console.log(tab, event);
     },
     preStep() {
       this.activeName = "first";
+
       this.tableData=[]
       console.log(this.form,'sopform')
 
@@ -263,7 +286,7 @@ export default {
       const sopId = this.$route.query.sopId;
       console.log(this.$route.query.sopId, "接受路由参数");
 
-      if (sopId!==null) {
+      if (sopId !== null) {
         selectIsSopById(sopId).then((response) => {
           console.log(response, "详细内容");
           this.form = response.data;
@@ -273,9 +296,9 @@ export default {
         });
       } else {
         this.title = "新增隔离点信息";
-        this.setSopEdit(true)
-        this.setSelectSopPoints([])
-        this.setPointTableData([])
+        this.setSopEdit(true);
+        this.setSelectSopPoints([]);
+        this.setPointTableData([]);
         this.tableData = null;
         this.form = {
           spoint: [],
@@ -286,6 +309,7 @@ export default {
           workareaId: "",
           workshopId: "",
         };
+        this.autoGenFlag = false;
       }
     },
     submit() {
@@ -312,8 +336,8 @@ export default {
       };
 
       // 编辑模式
-      if (this.$route.query.sopId!=='null') {
-        console.log(this.$route.query.sopId,'sopIdaaa');
+      if (this.$route.query.sopId !== "null") {
+        console.log(this.$route.query.sopId, "sopIdaaa");
         // 确保 sopId 存在
         if (!this.form.sopId) {
           console.error("隔离点id不可为空!");
@@ -327,6 +351,7 @@ export default {
           console.log(res, "修改接口");
           if (res.code == 200) {
             this.$router.go(-1);
+            this.$message.success("SOP修改成功");
           }
         });
       } else {
@@ -335,6 +360,7 @@ export default {
           console.log(res, "新增接口");
           if (res.code == 200) {
             this.$router.go(-1);
+            this.$message.success("SOP新建成功");
           }
         });
       }
@@ -383,7 +409,6 @@ export default {
     //   }
     // },
 
-
     // 子组件选中的隔离点逆传递拿到的数据
     handleSelectPoint(points) {
       // console.log(points, "父组件接收逆向传递选中的隔离点");
@@ -430,6 +455,17 @@ export default {
       this.emitWorkShop = selectedOption;
       this.form.workshopName = selectedOption.label;
     },
+
+    //自动生成编码
+    handleAutoGenChange(autoGenFlag) {
+      if (autoGenFlag) {
+        genCode("SOP_CODE").then((response) => {
+          this.form.sopCode = response;
+        });
+      } else {
+        this.form.sopCode = null;
+      }
+    },
     //   methods结束
   },
 };

+ 32 - 15
src/views/mes/spm/segregationpoint/index.vue

@@ -159,11 +159,11 @@
           />
         </template>
       </el-table-column> -->
-<!--      <el-table-column label="隔离点图片" align="center" prop="pointPicture">-->
-<!--        <template slot-scope="scope">-->
-<!--          <img :src="scope.row.pointPicture" alt="" />-->
-<!--        </template>-->
-<!--      </el-table-column>-->
+      <!--      <el-table-column label="隔离点图片" align="center" prop="pointPicture">-->
+      <!--        <template slot-scope="scope">-->
+      <!--          <img :src="scope.row.pointPicture" alt="" />-->
+      <!--        </template>-->
+      <!--      </el-table-column>-->
       <el-table-column label="隔离点类型" align="center" prop="pointType">
         <template slot-scope="scope">
           <dict-tag
@@ -225,13 +225,29 @@
         <span class="title">{{ title }}</span>
       </div>
       <el-form ref="form" :model="form" :rules="rules" label-width="110px">
-        <el-form-item label="隔离点编号" prop="pointCode">
-          <el-input
-            style="width: 318px"
-            v-model="form.pointCode"
-            placeholder="请输入隔离点编号"
-          />
-        </el-form-item>
+        <el-row>
+          <el-col :span="13">
+            <el-form-item label="隔离点编码" prop="pointCode">
+              <el-input
+                v-model="form.pointCode"
+                placeholder="请输入隔离点编码"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label-width="80">
+              <el-switch
+                v-model="autoGenFlag"
+                active-color="#13ce66"
+                active-text="自动生成"
+                @change="handleAutoGenChange(autoGenFlag)"
+                v-if="optType != 'view'"
+              >
+              </el-switch>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
         <el-form-item label="隔离点名称" prop="pointName">
           <el-input
             style="width: 318px"
@@ -479,6 +495,7 @@ export default {
         powerType: null,
         createTime: null,
       };
+      this.autoGenFlag = false;
       this.resetForm("form");
     },
     /** 搜索按钮操作 */
@@ -580,11 +597,11 @@ export default {
     //自动生成编码
     handleAutoGenChange(autoGenFlag) {
       if (autoGenFlag) {
-        genCode("CAL_TEAM_CODE").then((response) => {
-          this.form.teamCode = response;
+        genCode("ISOLATION_POINT_CODE").then((response) => {
+          this.form.pointCode = response;
         });
       } else {
-        this.form.teamCode = null;
+        this.form.pointCode = null;
       }
     },
     // 获取车间数据

+ 19 - 3
src/views/mes/wa/workarea/MapData.vue

@@ -7,7 +7,7 @@ export default {
   name: "MapData",
   props: {
     points: {
-      type: [Array, String], // Allow both types to avoid warnings
+      type: String, // Allow both types to avoid warnings
       required: true,
     },
   },
@@ -41,9 +41,25 @@ export default {
         : this.points;
     },
   },
-  mounted() {
-    this.initKonva();
+  created() {
+    if (this.props.points) {
+      this.initKonva();
+    } else {
+      setTimeout(() => {
+        this.initKonva();
+      }, 10000);
+    }
   },
+  // mounted() {
+  //   //   // this.initKonva();
+  //   if (this.props.points) {
+  //     this.initKonva();
+  //   } else {
+  //     setTimeout(() => {
+  //       this.initKonva();
+  //     }, 10000);
+  //   }
+  // },
   methods: {
     initKonva() {
       // 创建舞台

+ 60 - 31
src/views/mes/wa/workarea/index.vue

@@ -201,13 +201,29 @@
             placeholder="请输入区域名称"
           />
         </el-form-item>
-        <el-form-item label="区域编码" prop="workareaCode">
-          <el-input
-            style="width: 318px"
-            v-model="form.workareaCode"
-            placeholder="请输入区域编码"
-          />
-        </el-form-item>
+        <el-row>
+          <el-col :span="13">
+            <el-form-item label="区域编码" prop="workareaCode">
+              <el-input
+                v-model="form.workareaCode"
+                placeholder="请输入区域编码"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="5">
+            <el-form-item label-width="80">
+              <el-switch
+                v-model="autoGenFlag"
+                active-color="#13ce66"
+                active-text="自动生成"
+                @change="handleAutoGenChange(autoGenFlag)"
+                v-if="optType != 'view'"
+              >
+              </el-switch>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
         <el-form-item label="区域类型" prop="workareaType">
           <el-input
             style="width: 318px"
@@ -260,24 +276,27 @@
     >
       <div class="content" style="display: flex">
         <!-- 将 mapData 作为 prop 传递给 MapData 组件 -->
-        <MapData
-          :points="mapData"
-          @selection-changed="updateMapData"
-          style="width: 70%; height: 60%"
-        />
-        <div
-          style="width: 26%; padding: 0 2%; line-height: 30px; font-size: 20px"
+        <MapData :points="mapData" style="width: 72%; height: 60%" />
+        <el-button
+          type="primary"
+          size="mini"
+          @click="handleEditMap"
+          style="height: 35px"
+          >刷新</el-button
         >
-          {{ this.mapData }}
-        </div>
+        <el-input
+          type="textarea"
+          v-model="mapData"
+          placeholder="请输入内容"
+          rows="30"
+          :style="{
+            width: '26%',
+            padding: '0 1%',
+            lineHeight: '30px',
+            fontSize: '18px',
+          }"
+        />
       </div>
-
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisibleMap = false">取 消</el-button>
-        <el-button type="primary" @click="dialogVisibleMap = false"
-          >确 定</el-button
-        >
-      </span>
     </el-dialog>
   </div>
 </template>
@@ -342,14 +361,14 @@ export default {
       EditId: null, //判断是否是编辑弹框的值
       // 表单校验
       rules: {
-        teamCode: [
-          { required: true, message: "班组编号不能为空", trigger: "blur" },
+        workareaCode: [
+          { required: true, message: "区域编号不能为空", trigger: "blur" },
         ],
-        teamName: [
-          { required: true, message: "班组名称不能为空", trigger: "blur" },
+        workareaName: [
+          { required: true, message: "区域名称不能为空", trigger: "blur" },
         ],
-        calendarType: [
-          { required: true, message: "清选择班组类型", trigger: "blur" },
+        workareaType: [
+          { required: true, message: "清选择区域类型", trigger: "blur" },
         ],
       },
     };
@@ -396,7 +415,7 @@ export default {
         workareaType: null,
         workshopId: null,
       };
-
+      this.autoGenFlag = false;
       this.resetForm("form");
     },
     /** 搜索按钮操作 */
@@ -438,7 +457,7 @@ export default {
       getWorkareaInfo(this.EditId).then((response) => {
         this.form = response.data;
         this.open = true;
-        this.title = "查看班组";
+        this.title = "查看工作区域";
         this.optType = "view";
       });
     },
@@ -506,6 +525,16 @@ export default {
     handleClose() {
       this.dialogVisibleMap = false;
     },
+    //自动生成编码
+    handleAutoGenChange(autoGenFlag) {
+      if (autoGenFlag) {
+        genCode("WORKAREA_CODE").then((response) => {
+          this.form.workareaCode = response;
+        });
+      } else {
+        this.form.workareaCode = null;
+      }
+    },
   },
 };
 </script>