From ebf24181f300dd10d1f5047d8d4e2c457687edcf Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 30 一月 2026 16:47:02 +0800
Subject: [PATCH] Merge branch 'dev_New' of http://114.132.189.42:9002/r/product-inventory-management into dev_New

---
 src/views/fileManagement/bookshelf/index.vue                |   33 ++++++----
 src/views/safeProduction/emergencyPlanReview/index.vue      |   75 +++++++++++++++++++------
 src/views/safeProduction/safetyTrainingAssessment/index.vue |   28 +++++++-
 src/api/fileManagement/bookshelf.js                         |    9 +-
 src/views/safeProduction/dangerInvestigation/index.vue      |   18 +++++
 src/views/safeProduction/accidentReportingRecord/index.vue  |    3 
 6 files changed, 123 insertions(+), 43 deletions(-)

diff --git a/src/api/fileManagement/bookshelf.js b/src/api/fileManagement/bookshelf.js
index 0a4a748..eb3a88f 100644
--- a/src/api/fileManagement/bookshelf.js
+++ b/src/api/fileManagement/bookshelf.js
@@ -102,14 +102,15 @@
 
 /**
  * 鍒犻櫎璐ф灦
- * @description 鏍规嵁璐ф灦ID鍒犻櫎鎸囧畾鐨勮揣鏋惰褰�
- * @param {string|number} id 璐ф灦ID
+ * @description 鏍规嵁璐ф灦ID鍒犻櫎鎸囧畾鐨勮揣鏋惰褰曪紝鍚庣瑕佹眰浼犲叆 ID 鏁扮粍锛堟敮鎸佹壒閲忥級
+ * @param {Array<string|number>} data 璐ф灦ID鏁扮粍
  * @returns {Promise} 杩斿洖鍒犻櫎缁撴灉
  */
-export function deleteShelf(id) {
+export function deleteShelf(data) {
   return request({
-    url: `/warehouse/goodsShelves/delete/${id}`,
+    url: `/warehouse/goodsShelves/delete/`,
     method: "delete",
+    data,
   });
 }
 
diff --git a/src/views/fileManagement/bookshelf/index.vue b/src/views/fileManagement/bookshelf/index.vue
index 2689900..a084900 100644
--- a/src/views/fileManagement/bookshelf/index.vue
+++ b/src/views/fileManagement/bookshelf/index.vue
@@ -135,7 +135,7 @@
         <el-col class="search_thing" :span="24">
           <div class="search_label"><span class="required-span">* </span>璐ф灦灞傛暟锛�</div>
           <div class="search_input">
-            <el-input v-model="shelves.row" size="small"></el-input>
+            <el-input-number v-model="shelves.row" size="small" :min="1" :max="10" :precision="0" :step="1" controls-position="right" style="width: 100%"></el-input-number>
           </div>
         </el-col>
       </el-row>
@@ -143,7 +143,7 @@
         <el-col class="search_thing" :span="24">
           <div class="search_label"><span class="required-span">* </span>璐ф灦鍒楁暟锛�</div>
           <div class="search_input">
-            <el-input v-model="shelves.col" size="small"></el-input>
+            <el-input-number v-model="shelves.col" size="small" :min="1" :max="10" :precision="0" :step="1" controls-position="right" style="width: 100%"></el-input-number>
           </div>
         </el-col>
       </el-row>
@@ -287,6 +287,16 @@
     ElMessage.error('璇峰~鍐欒揣鏋跺垪鏁�')
     return
   }
+  const rowNum = Number(shelves.row)
+  const colNum = Number(shelves.col)
+  if (rowNum < 1 || colNum < 1 || rowNum > 10 || colNum > 10) {
+    ElMessage.error('璐ф灦灞傛暟鍜屽垪鏁伴渶涓�1-10鐨勬暣鏁�')
+    return
+  }
+  if (!Number.isInteger(rowNum) || !Number.isInteger(colNum)) {
+    ElMessage.error('璐ф灦灞傛暟鍜屽垪鏁颁笉鑳戒负灏忔暟')
+    return
+  }
   upLoadShelves.value = true
   
   if (currentEdit.value && currentEdit.value.id) {
@@ -294,8 +304,8 @@
     updateShelf({
       id: currentEdit.value.id,
       name: shelves.name,
-      row: Number(shelves.row),
-      col: Number(shelves.col),
+      row: rowNum,
+      col: colNum,
       warehouseId: entity.warehouseId
     }).then(res => {
       upLoadShelves.value = false
@@ -311,11 +321,10 @@
     
   } else {
     // 鏂板
-    // 杩欓噷闇�瑕佹浛鎹负瀹為檯鐨凙PI璋冪敤
-      addShelf({
+    addShelf({
       name: shelves.name,
-      row: Number(shelves.row),
-      col: Number(shelves.col),
+      row: rowNum,
+      col: colNum,
       warehouseId: entity.warehouseId
     }).then(res => {
       upLoadShelves.value = false
@@ -341,16 +350,14 @@
     type: "warning"
   }).then(() => {
     if (level == 1) {
-      // 鍒犻櫎浠撳簱
+      // 鍒犻櫎浠撳簱锛堟帴鍙h姹備紶 ID 鏁扮粍锛�
       deleteWarehouse([row.id]).then(res => {
         ElMessage.success('鍒犻櫎鎴愬姛')
         selectList()
       })
     } else {
-      // 鍒犻櫎璐ф灦
-      deleteShelf({
-        id: row.id
-      }).then(res => {
+      // 鍒犻櫎璐ф灦锛堟帴鍙e悓鏍疯姹備紶 ID 鏁扮粍锛�
+      deleteShelf([row.id]).then(res => {
         ElMessage.success('鍒犻櫎鎴愬姛')
         selectList()
       })
diff --git a/src/views/safeProduction/accidentReportingRecord/index.vue b/src/views/safeProduction/accidentReportingRecord/index.vue
index b38f04a..28e638e 100644
--- a/src/views/safeProduction/accidentReportingRecord/index.vue
+++ b/src/views/safeProduction/accidentReportingRecord/index.vue
@@ -52,7 +52,8 @@
       <el-form ref="formRef"
                :model="form"
                :rules="rules"
-               label-width="140px">
+               label-position="top"
+               label-width="150px">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="浜嬫晠缂栧彿"
diff --git a/src/views/safeProduction/dangerInvestigation/index.vue b/src/views/safeProduction/dangerInvestigation/index.vue
index 0fa284b..d585fc3 100644
--- a/src/views/safeProduction/dangerInvestigation/index.vue
+++ b/src/views/safeProduction/dangerInvestigation/index.vue
@@ -267,10 +267,11 @@
           </el-col>
         </el-row>
       </el-form>
+      <div v-if="operationType === 'edit2' || operationType === 'edit3'"
+           class="classtitle">闅愭偅璇︽儏</div>
       <el-descriptions :column="2"
                        style="margin-bottom: 20px;"
                        v-if="operationType === 'edit2' || operationType === 'edit3'"
-                       title="闅愭偅璇︽儏"
                        border>
         <el-descriptions-item label="闅愭偅缂栧彿">
           <span class="detail-title">{{ form.hiddenCode }}</span>
@@ -306,10 +307,12 @@
           <span class="detail-title">{{ form.rectifyTime }}</span>
         </el-descriptions-item>
       </el-descriptions>
+      <div class="classtitle"
+           v-if="operationType === 'edit3'"
+           style="margin-top: 40px;">鏁存敼璇︽儏</div>
       <el-descriptions :column="2"
                        style="margin-bottom: 20px;"
                        v-if="operationType === 'edit3'"
-                       title="鏁存敼璇︽儏"
                        border>
         <el-descriptions-item label="鏁存敼鍏蜂綋鎺柦"
                               :span="2">
@@ -319,6 +322,9 @@
           <span class="detail-title">{{ form2.rectifyActualTime }}</span>
         </el-descriptions-item>
       </el-descriptions>
+      <div class="classtitle"
+           v-if="operationType === 'edit2' || operationType === 'edit3'"
+           style="margin-top: 40px;margin-bottom: 30px;">楠屾敹鎯呭喌</div>
       <el-form :model="form2"
                v-if="operationType === 'edit2'"
                label-width="140px"
@@ -1272,4 +1278,12 @@
       page-break-after: avoid;
     }
   }
+  .classtitle {
+    font-size: 16px;
+    font-weight: 600;
+    color: #303133;
+    border-left: 4px solid #409eff;
+    padding-left: 12px;
+    margin-bottom: 12px;
+  }
 </style>
diff --git a/src/views/safeProduction/emergencyPlanReview/index.vue b/src/views/safeProduction/emergencyPlanReview/index.vue
index 26a3cfe..93658d4 100644
--- a/src/views/safeProduction/emergencyPlanReview/index.vue
+++ b/src/views/safeProduction/emergencyPlanReview/index.vue
@@ -52,17 +52,18 @@
       <el-form ref="formRef"
                :model="form"
                :rules="rules"
-               label-width="120px">
+               label-position="top"
+               label-width="150px">
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="搴旀�ラ妗堢紪鐮�"
+            <el-form-item label="搴旀�ラ妗堢紪鐮侊細"
                           prop="planCode">
               <el-input v-model="form.planCode"
                         placeholder="璇疯緭鍏ュ簲鎬ラ妗堢紪鐮�" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="搴旀�ラ妗堝悕绉�"
+            <el-form-item label="搴旀�ラ妗堝悕绉帮細"
                           prop="planName">
               <el-input v-model="form.planName"
                         placeholder="璇疯緭鍏ュ簲鎬ラ妗堝悕绉�" />
@@ -99,7 +100,7 @@
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="棰勬绫诲瀷"
+            <el-form-item label="棰勬绫诲瀷锛�"
                           prop="planType">
               <el-select v-model="form.planType"
                          placeholder="璇烽�夋嫨棰勬绫诲瀷"
@@ -112,14 +113,14 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="澶囨敞"
+            <el-form-item label="澶囨敞锛�"
                           prop="remark">
               <el-input v-model="form.remark"
                         placeholder="璇疯緭鍏ュ娉�" />
             </el-form-item>
           </el-col>
         </el-row>
-        <el-form-item label="閫傜敤鑼冨洿"
+        <el-form-item label="閫傜敤鑼冨洿锛�"
                       prop="applyScope">
           <el-checkbox-group v-model="form.applyScope">
             <el-checkbox label="all">鍏ㄤ綋鍛樺伐</el-checkbox>
@@ -129,7 +130,7 @@
             <el-checkbox label="tech">鎶�鏈儴闂�</el-checkbox>
           </el-checkbox-group>
         </el-form-item>
-        <el-form-item label="搴旀�ュ缃楠�"
+        <el-form-item label="搴旀�ュ缃楠わ細"
                       prop="execSteps">
           <div class="exec-steps-container"
                style="width:100%">
@@ -216,7 +217,7 @@
               <div v-for="(step, index) in JSON.parse(currentKnowledge.execSteps)"
                    :key="index"
                    class="exec-step-view">
-                <span class="step-number">{{ index + 1 }}.</span>
+                <!-- <span class="step-number">{{ index + 1 }}.</span> -->
                 <span class="step-title">{{ step.step }}锛�</span>
                 <span>{{ step.description }}</span>
               </div>
@@ -764,45 +765,83 @@
 
   .exec-steps-container {
     border: 1px solid #e4e7ed;
-    border-radius: 4px;
-    padding: 15px;
+    border-radius: 8px;
+    padding: 20px;
     background-color: #f9fafc;
+    margin-top: 10px;
   }
 
   .exec-step-item {
-    margin-bottom: 10px;
-    padding: 10px;
+    margin-bottom: 12px;
+    padding: 12px;
     background-color: #ffffff;
     border: 1px solid #e4e7ed;
-    border-radius: 4px;
+    border-radius: 6px;
+    transition: all 0.3s ease;
+  }
+
+  .exec-step-item:hover {
+    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+    border-color: #c6e2ff;
   }
 
   .step-header {
     display: flex;
     align-items: flex-start;
     flex-direction: column;
+    gap: 8px;
   }
 
   .exec-step-view {
-    margin-bottom: 8px;
-    padding-left: 20px;
+    margin-bottom: 16px;
+    padding-left: 24px;
     position: relative;
+    line-height: 1.6;
+  }
+
+  .exec-step-view::before {
+    content: "";
+    position: absolute;
+    left: 10px;
+    top: 20px;
+    bottom: -16px;
+    width: 2px;
+    background-color: #eaeaea;
+  }
+
+  .exec-step-view:last-child::before {
+    display: none;
   }
 
   .step-number {
     position: absolute;
     left: 0;
+    top: 0;
+    width: 20px;
+    height: 20px;
+    line-height: 20px;
+    text-align: center;
     font-weight: bold;
-    color: #409eff;
+    color: #ffffff;
+    background-color: #409eff;
+    border-radius: 50%;
+    font-size: 12px;
+    z-index: 1;
   }
 
   .step-title {
-    font-weight: bold;
-    margin-right: 5px;
+    font-weight: 600;
+    margin-right: 8px;
+    color: #395a9c;
   }
 
   .no-data {
     color: #909399;
     font-style: italic;
+    text-align: center;
+    padding: 20px;
+    background-color: #f8f9fa;
+    border-radius: 4px;
+    margin-top: 10px;
   }
 </style>
diff --git a/src/views/safeProduction/safetyTrainingAssessment/index.vue b/src/views/safeProduction/safetyTrainingAssessment/index.vue
index 1ab310f..dde52df 100644
--- a/src/views/safeProduction/safetyTrainingAssessment/index.vue
+++ b/src/views/safeProduction/safetyTrainingAssessment/index.vue
@@ -56,7 +56,8 @@
       <el-form ref="formRef"
                :model="form"
                :rules="rules"
-               label-width="120px">
+               label-position="top"
+               label-width="150px">
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="鍩硅鏃ユ湡"
@@ -85,6 +86,7 @@
                           prop="openingTime">
               <el-time-picker v-model="form.openingTime"
                               placeholder="璇烽�夋嫨"
+                              style="width: 100%"
                               value-format="HH:mm:ss"
                               format="HH:mm:ss"
                               clearable />
@@ -95,6 +97,7 @@
                           prop="endTime">
               <el-time-picker v-model="form.endTime"
                               placeholder="璇烽�夋嫨"
+                              style="width: 100%"
                               value-format="HH:mm:ss"
                               format="HH:mm:ss"
                               clearable />
@@ -190,8 +193,9 @@
                width="900px"
                :close-on-click-modal="false">
       <div class="knowledge-detail">
+        <div class="classtitle">璇剧▼璇︽儏</div>
         <el-descriptions size="mini"
-                         style="margin-left: 60px;"
+                         border
                          :column="3">
           <el-descriptions-item label="璇剧▼缂栧彿:">{{ currentKnowledge.courseCode }}</el-descriptions-item>
           <el-descriptions-item label="鍩硅鍐呭:">{{ currentKnowledge.trainingContent }}</el-descriptions-item>
@@ -238,11 +242,14 @@
                        @click="downLoadFile(endform)">闄勪欢鍒楄〃</el-button>
           </el-descriptions-item>
         </el-descriptions>
-        <el-divider style="margin: 20px 0;" />
+        <!-- <el-divider style="margin: 20px 0;" /> -->
+        <div class="classtitle"
+             style="margin-top: 40px;margin-bottom: 30px;">璇剧▼璇勪环</div>
         <el-form ref="formRef"
                  :model="form"
                  :rules="rules"
-                 label-width="130px">
+                 label-position="top"
+                 label-width="150px">
           <el-row :gutter="20">
             <el-col :span="12">
               <el-form-item label="璇勪环浜�:"
@@ -317,10 +324,13 @@
             </el-col>
           </el-row> -->
         </el-form>
+        <div class="classtitle"
+             style="margin-top: 40px;">鑰冩牳鍒楄〃</div>
         <el-table style="margin-top: 20px;"
                   :data="endform.safeTrainingDetailsDtoList"
                   border
                   fit
+                  stripe
                   highlight-current-row>
           <el-table-column prop="nickName"
                            label="濮撳悕" />
@@ -616,7 +626,7 @@
         {
           name: "缁撴灉鏄庣粏",
           type: "text",
-          // disabled: row => row.state !== 2,
+          disabled: row => row.state == 0,
           clickFun: row => {
             viewResultDetail(row);
           },
@@ -1235,4 +1245,12 @@
   :deep(.danger-row td) {
     color: #e95a66 !important;
   }
+  .classtitle {
+    font-size: 16px;
+    font-weight: 600;
+    color: #303133;
+    border-left: 4px solid #409eff;
+    padding-left: 12px;
+    margin-bottom: 12px;
+  }
 </style>

--
Gitblit v1.9.3