From 591392aea7dfdaa526fc50c46cd88245688ee78b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 20 十一月 2025 15:31:08 +0800
Subject: [PATCH] 1.金鹰黄金-劳保管理部门管理修改 2.金鹰黄金-劳保台账新增逻辑修改

---
 src/views/lavorissue/issue/index.vue |   38 ++++++++++++++++++++++++--------------
 1 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/src/views/lavorissue/issue/index.vue b/src/views/lavorissue/issue/index.vue
index 6222ea0..78ead42 100644
--- a/src/views/lavorissue/issue/index.vue
+++ b/src/views/lavorissue/issue/index.vue
@@ -35,9 +35,10 @@
             </el-tree>
           </div>
           <div class="right">
-            <div v-if="currentPosition" class="position-config">
+            <div v-if="currentDept || currentPosition" class="position-config">
               <div class="title">
-                <span>宀椾綅閰嶇疆锛歿{ currentPosition.label }}</span>
+                <span v-if="currentPosition">宀椾綅閰嶇疆锛歿{ currentPosition.label }}</span>
+                <span v-else-if="currentDept">閮ㄩ棬閰嶇疆锛歿{ currentDept.label }}</span>
               </div>
               <div class="q-toolbar">
                 <el-button size="small" type="primary" @click="openAddItemDialog">鏂板鐢ㄥ搧</el-button>
@@ -58,7 +59,7 @@
                 </el-table-column>
               </el-table>
             </div>
-            <div v-else class="empty">璇烽�夋嫨宸︿晶宀椾綅杩涜閰嶇疆</div>
+            <div v-else class="empty">璇烽�夋嫨宸︿晶閮ㄩ棬鎴栧矖浣嶈繘琛岄厤缃�</div>
           </div>
         </div>
     <!-- 鏂板閮ㄩ棬/宀椾綅寮圭獥 -->
@@ -224,7 +225,7 @@
 const addItemForm = reactive({ id: undefined, dictId: undefined, quantity: 0, quarter: 1 })
 
 function openAddItemDialog() {
-  if (!currentPosition.value) return
+  if (!currentDept.value && !currentPosition.value) return
   addItemDialogTitle.value = '鏂板鐢ㄥ搧'
   addItemForm.id = undefined
   addItemForm.dictId = undefined
@@ -234,7 +235,7 @@
 }
 
 function openEditItemDialog(row) {
-  if (!currentPosition.value || !row) return
+  if ((!currentDept.value && !currentPosition.value) || !row) return
   addItemDialogTitle.value = '缂栬緫鐢ㄥ搧'
   addItemForm.id = row.id
   addItemForm.dictId = row.dictId
@@ -248,12 +249,13 @@
 }
 
 async function onConfirmAddItem() {
-  if (!currentPosition.value) return
+  if (!currentDept.value && !currentPosition.value) return
   addItemSaving.value = true
   try {
     const qNum = Number(addItemForm.quarter) || 1
-    const deptPositionId = currentPosition.value.id ?? currentPosition.value.raw?.id ?? currentPosition.value?.id
+    
     if (addItemForm.id) {
+      // 缂栬緫鐢ㄥ搧
       await updateLaborConf({
         id: addItemForm.id,
         dictId: addItemForm.dictId,
@@ -261,15 +263,20 @@
         quarter: qNum,
       })
     } else {
+      // 鏂板鐢ㄥ搧
+      const currentId = currentPosition.value?.id ?? currentPosition.value?.raw?.id ?? currentDept.value?.id ?? currentDept.value?.raw?.id
       await addLaborConf({
-        deptPositionId,
+        deptPositionId: currentId,
         dictId: addItemForm.dictId,
         num: Number(addItemForm.quantity) || 0,
         quarter: qNum,
       })
     }
-    const posId = currentPosition.value.raw?.id ?? currentPosition.value.id
-    await loadLaborConf(posId)
+    
+    // 閲嶆柊鍔犺浇鐢ㄥ搧閰嶇疆鍒楄〃
+    const currentId = currentPosition.value?.id ?? currentPosition.value?.raw?.id ?? currentDept.value?.id ?? currentDept.value?.raw?.id
+    await loadLaborConf(currentId)
+    
     addItemDialogVisible.value = false
     ElMessage.success('淇濆瓨鎴愬姛')
   } catch (e) {
@@ -280,7 +287,7 @@
 }
 
 async function onDeleteItem(row) {
-  if (!currentPosition.value || !row) return
+  if ((!currentDept.value && !currentPosition.value) || !row) return
   try {
     await ElMessageBox.confirm('纭畾鍒犻櫎璇ョ敤鍝侀厤缃悧锛�', '鎻愮ず', { type: 'warning' })
   } catch {
@@ -288,8 +295,9 @@
   }
   try {
     await deleteLaborConf([row.id])
-    const posId = currentPosition.value.raw?.id ?? currentPosition.value.id
-    await loadLaborConf(posId)
+    // 閲嶆柊鍔犺浇鐢ㄥ搧閰嶇疆鍒楄〃
+    const currentId = currentPosition.value?.id ?? currentPosition.value?.raw?.id ?? currentDept.value?.id ?? currentDept.value?.raw?.id
+    await loadLaborConf(currentId)
     ElMessage.success('鍒犻櫎鎴愬姛')
   } catch (e) {
     ElMessage.error((e && (e.msg || e.message)) || '鍒犻櫎澶辫触')
@@ -367,11 +375,13 @@
   if (node.type === 1) {
     currentDept.value = node
     currentPosition.value = null
+    // 閫夋嫨閮ㄩ棬鏃讹紝鍔犺浇閮ㄩ棬绾у埆鐨勭敤鍝侀厤缃�
+    loadLaborConf(node.raw.id)
   } else if (node.type === 2) {
     const dept = findDeptById(departments, node.parentDeptId)
     if (dept) currentDept.value = mapDeptToTree(dept)
     currentPosition.value = node.raw
-    // 閫夋嫨宀椾綅鏃讹紝鎸夎姹傛煡璇㈢敤鍝侀厤缃垪琛�
+    // 閫夋嫨宀椾綅鏃讹紝鏌ヨ鐢ㄥ搧閰嶇疆鍒楄〃
     loadLaborConf(node.raw.id)
   }
 }

--
Gitblit v1.9.3