From 4334e4d5f680b4375d7af4ba9e4d8c8baef7266b Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 14 九月 2026 11:02:29 +0800
Subject: [PATCH] feat(production): 添加工序颜色配置和显示功能

---
 src/views/productionManagement/productionProcess/index.vue |   47 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/src/views/productionManagement/productionProcess/index.vue b/src/views/productionManagement/productionProcess/index.vue
index ee49657..baa7264 100644
--- a/src/views/productionManagement/productionProcess/index.vue
+++ b/src/views/productionManagement/productionProcess/index.vue
@@ -21,7 +21,12 @@
                :class="{ active: selectedProcess?.id === process.id }"
                @click="selectProcess(process)">
             <div class="card-header">
-              <div class="process-name">{{ process.name }} <span class="process-code">{{ process.no }}</span></div>
+              <div class="process-name">
+                <span v-if="process.color"
+                      class="process-color-dot"
+                      :style="{ backgroundColor: process.color }"></span>
+                {{ process.name }} <span class="process-code">{{ process.no }}</span>
+              </div>
               <div class="card-actions">
                 <el-button link
                            type="primary"
@@ -138,6 +143,12 @@
             <el-radio :label="0">璁℃椂</el-radio>
             <el-radio :label="1">璁′欢</el-radio>
           </el-radio-group>
+        </el-form-item>
+        <el-form-item label="宸ュ簭棰滆壊"
+                      prop="color">
+          <el-color-picker v-model="processForm.color"
+                           :predefine="predefineColors" />
+          <span class="color-tip">鐢ㄤ簬鐢熶骇妯″潡宸ュ簭鏍囪瘑棰滆壊娓叉煋</span>
         </el-form-item>
         <el-form-item label="鍏宠仈璁惧"
                       prop="deviceLedgerId">
@@ -347,7 +358,18 @@
     remark: "",
     deviceLedgerId: null,
     type: 0,
+    color: "",
   });
+  const predefineColors = [
+    "#409eff",
+    "#67c23a",
+    "#e6a23c",
+    "#f56c6c",
+    "#909399",
+    "#9254de",
+    "#13c2c2",
+    "#fa8c16",
+  ];
   const processRules = {
     no: [{ required: true, message: "璇疯緭鍏ュ伐搴忕紪鐮�", trigger: "blur" }],
     name: [{ required: true, message: "璇疯緭鍏ュ伐搴忓悕绉�", trigger: "blur" }],
@@ -558,6 +580,7 @@
     processForm.remark = "";
     processForm.deviceLedgerId = null;
     processForm.type = 0;
+    processForm.color = "";
     processDialogVisible.value = true;
   };
 
@@ -575,6 +598,7 @@
     const hasDevice = deviceOptions.value.some(item => item.id === deviceId);
     processForm.deviceLedgerId = deviceId && hasDevice ? deviceId : null;
     processForm.type = process.type;
+    processForm.color = process.color || "";
     processDialogVisible.value = true;
   };
 
@@ -603,8 +627,10 @@
   const handleProcessSubmit = () => {
     processFormRef.value.validate(valid => {
       if (valid) {
+        // 棰滆壊娓呯┖鍚庝负 null锛屽悗绔� updateById 浼氬拷鐣� null 瀛楁锛岀粺涓�杞负绌轰覆鎻愪氦
+        const submitData = { ...processForm, color: processForm.color || "" };
         if (processForm.id) {
-          update(processForm)
+          update(submitData)
             .then(() => {
               ElMessage.success("缂栬緫鎴愬姛");
               processDialogVisible.value = false;
@@ -614,7 +640,7 @@
               ElMessage.error("缂栬緫澶辫触");
             });
         } else {
-          add(processForm)
+          add(submitData)
             .then(() => {
               ElMessage.success("鏂板鎴愬姛");
               processDialogVisible.value = false;
@@ -877,6 +903,15 @@
         font-family: "Courier New", monospace;
       }
 
+      .process-color-dot {
+        display: inline-block;
+        width: 10px;
+        height: 10px;
+        border-radius: 50%;
+        margin-right: 6px;
+        vertical-align: middle;
+      }
+
       .card-actions {
         display: flex;
         gap: 4px;
@@ -990,6 +1025,12 @@
     justify-content: center;
   }
 
+  .color-tip {
+    margin-left: 10px;
+    font-size: 12px;
+    color: #909399;
+  }
+
   // 琛ㄦ牸鏍峰紡
   :deep(.el-table) {
     border: none;

--
Gitblit v1.9.3