From 62b4b7af6fb8dea23cf14b0709156871a3c144af Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 23 六月 2026 14:41:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_新疆_大罗素马铃薯new' into dev_新疆_大罗素马铃薯new

---
 src/views/collaborativeApproval/rulesRegulationsManagement/index.vue |  128 ++++++++++--------------------------------
 1 files changed, 32 insertions(+), 96 deletions(-)

diff --git a/src/views/collaborativeApproval/rulesRegulationsManagement/index.vue b/src/views/collaborativeApproval/rulesRegulationsManagement/index.vue
index 6f55955..a6b8d29 100644
--- a/src/views/collaborativeApproval/rulesRegulationsManagement/index.vue
+++ b/src/views/collaborativeApproval/rulesRegulationsManagement/index.vue
@@ -62,11 +62,11 @@
                :rules="regulationRules"
                ref="regulationFormRef"
                label-width="100px">
-        <el-form-item label="鍒跺害缂栧彿"
-                      prop="regulationNum">
-          <el-input v-model="regulationForm.regulationNum"
-                    placeholder="璇疯緭鍏ュ埗搴︾紪鍙�" />
-        </el-form-item>
+<!--        <el-form-item label="鍒跺害缂栧彿"-->
+<!--                      prop="regulationNum">-->
+<!--          <el-input v-model="regulationForm.regulationNum"-->
+<!--                    placeholder="璇疯緭鍏ュ埗搴︾紪鍙�" />-->
+<!--        </el-form-item>-->
         <el-form-item label="鍒跺害鏍囬"
                       prop="title">
           <el-input v-model="regulationForm.title"
@@ -108,27 +108,26 @@
                           placeholder="閫夋嫨鐢熸晥鏃堕棿"
                           style="width: 100%" />
         </el-form-item>
-        <el-form-item label="閫傜敤鑼冨洿"
-                      prop="scope">
-          <el-checkbox-group v-model="regulationForm.scope">
-            <el-checkbox label="all">鍏ㄤ綋鍛樺伐</el-checkbox>
-            <el-checkbox label="manager">绠$悊灞�</el-checkbox>
-            <el-checkbox label="hr">浜轰簨閮ㄩ棬</el-checkbox>
-            <el-checkbox label="finance">璐㈠姟閮ㄩ棬</el-checkbox>
-            <el-checkbox label="tech">鎶�鏈儴闂�</el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
+
         <el-form-item label="鏄惁闇�瑕佺‘璁�"
                       prop="requireConfirm">
           <el-switch v-model="regulationForm.requireConfirm" />
           <span class="ml-10">寮�鍚悗鍛樺伐闇�瑕侀槄璇荤‘璁�</span>
         </el-form-item>
+
+        <el-form-item label="闄勪欢涓婁紶">
+          <AttachmentUploadFile
+              v-model:fileList="regulationForm.storageBlobDTOs"
+              :limit="10"
+              :fileSize="50"
+              buttonText="鐐瑰嚮涓婁紶闄勪欢"
+          />
+        </el-form-item>
       </el-form>
       <template #footer>
         <span class="dialog-footer">
+          <el-button type="primary" @click="submitRegulation">鍙戝竷鍒跺害</el-button>
           <el-button @click="showRegulationDialog = false">鍙栨秷</el-button>
-          <el-button type="primary"
-                     @click="submitRegulation">鍙戝竷鍒跺害</el-button>
         </span>
       </template>
     </el-dialog>
@@ -140,7 +139,7 @@
       <div v-if="currentRegulationDetail">
         <el-descriptions :column="2"
                          border>
-          <el-descriptions-item label="鍒跺害缂栧彿">{{ currentRegulationDetail.id }}</el-descriptions-item>
+<!--          <el-descriptions-item label="鍒跺害缂栧彿">{{ currentRegulationDetail.id }}</el-descriptions-item>-->
           <el-descriptions-item label="鍒跺害鏍囬">{{ currentRegulationDetail.title }}</el-descriptions-item>
           <el-descriptions-item label="鍒嗙被">{{ getCategoryText(currentRegulationDetail.category) }}</el-descriptions-item>
           <el-descriptions-item label="鐗堟湰">{{ currentRegulationDetail.version }}</el-descriptions-item>
@@ -213,14 +212,7 @@
         </el-table-column>
       </el-table>
     </el-dialog>
-    <FileListDialog ref="fileListDialogRef"
-                    v-model="fileDialogVisible"
-                    :show-upload-button="true"
-                    :show-delete-button="true"
-                    :delete-method="handleAttachmentDelete"
-                    :rules-regulations-management-id="currentFileRuleId"
-                    :name-column-label="'闄勪欢鍚嶇О'"
-                    @upload="handleAttachmentUpload"/>
+    <FileList v-if="fileDialogVisible"  v-model:visible="fileDialogVisible" record-type="rules_regulations_management" :record-id="recordId"  />
   </div>
 </template>
 
@@ -236,13 +228,14 @@
     addReadingStatus,
     updateReadingStatus,
   } from "@/api/collaborativeApproval/sealManagement.js";
-  import FileListDialog from "@/components/Dialog/FileListDialog.vue";
+  const FileList = defineAsyncComponent(() => import("@/components/Dialog/FileList.vue"));
   import {
     listRuleFiles,
     delRuleFile,
     addRuleFile,
   } from "@/api/collaborativeApproval/rulesRegulationsManagementFile.js";
   import PIMTable from "@/components/PIMTable/PIMTable.vue";
+  import AttachmentUploadFile from "@/components/AttachmentUpload/file/index.vue";
 
   // 鍝嶅簲寮忔暟鎹�
   const operationType = ref("add");
@@ -255,14 +248,7 @@
     total: 0,
   });
   // 闄勪欢寮圭獥
-  const fileDialogVisible = ref(false);
-  const fileListDialogRef = ref(null);
   const currentFileRuleId = ref(null);
-  const filePage = reactive({
-    current: 1,
-    size: 1000,
-    total: 0,
-  });
   // 瑙勭珷鍒跺害鐩稿叧
   const showRegulationDialog = ref(false);
   const showRegulationDetailDialog = ref(false);
@@ -280,8 +266,8 @@
     status: "active",
     readCount: 0,
     effectiveTime: "",
-    scope: [],
     requireConfirm: false,
+    storageBlobDTOs: []
   });
 
   const readStatus = ref({
@@ -301,7 +287,7 @@
     effectiveTime: [
       { required: true, message: "璇烽�夋嫨鐢熸晥鏃堕棿", trigger: "change" },
     ],
-    scope: [{ required: true, message: "璇烽�夋嫨閫傜敤鑼冨洿", trigger: "change" }],
+
   };
 
   const regulationSearchForm = reactive({
@@ -313,7 +299,7 @@
 
   // 琛ㄦ牸鍒楅厤缃�
   const regulationTableColumn = ref([
-    { label: "鍒跺害缂栧彿", prop: "regulationNum"},
+    // { label: "鍒跺害缂栧彿", prop: "regulationNum"},
     { label: "鍒跺害鏍囬", prop: "title" },
     {
       label: "鍒嗙被",
@@ -457,8 +443,8 @@
       status: "active",
       readCount: 0,
       effectiveTime: "",
-      scope: [],
       requireConfirm: false,
+      storageBlobDTOs: []
     });
   };
 
@@ -565,63 +551,15 @@
     );
   };
 
-  // 闄勪欢锛氭煡璇�
-  const fetchRuleFiles = async rulesRegulationsManagementId => {
-    const params = {
-      current: filePage.current,
-      size: filePage.size,
-      rulesRegulationsManagementId,
-    };
-    const res = await listRuleFiles(params);
-    const records = res?.data?.records || [];
-    filePage.total = res?.data?.total || records.length;
-    const mapped = records.map(item => ({
-      id: item.id,
-      name: item.fileName || item.name,
-      url: item.fileUrl || item.url,
-      raw: item,
-    }));
-    fileListDialogRef.value?.setList(mapped);
-  };
-
   // 鎵撳紑闄勪欢寮圭獥
-  const openFileDialog = async row => {
-    currentFileRuleId.value = row.id;
-    fileDialogVisible.value = true;
-    await fetchRuleFiles(row.id);
-  };
+  const recordId =ref(0)
+  const fileDialogVisible = ref(false)
 
-  // 鍒锋柊闄勪欢鍒楄〃
-  const refreshFileList = async () => {
-    if (!currentFileRuleId.value) return;
-    await fetchRuleFiles(currentFileRuleId.value);
-  };
-
-  // 涓婁紶闄勪欢锛堢敱瀛愮粍浠惰Е鍙戯級
-  const handleAttachmentUpload = async filePayload => {
-    if (!currentFileRuleId.value) return;
-    const payload = {
-      name: filePayload?.fileName || filePayload?.name,
-      url: filePayload?.fileUrl || filePayload?.url,
-      rulesRegulationsManagementId: currentFileRuleId.value,
-    };
-    await addRuleFile(payload);
-    ElMessage.success("鏂囦欢涓婁紶鎴愬姛");
-    await refreshFileList();
-  };
-
-  // 鍒犻櫎闄勪欢
-  const handleAttachmentDelete = async row => {
-    if (!row?.id) return false;
-    try {
-      await ElMessageBox.confirm("纭鍒犻櫎璇ラ檮浠讹紵", "鎻愮ず", { type: "warning" });
-    } catch {
-      return false;
-    }
-    await delRuleFile([row.id]);
-    ElMessage.success("鍒犻櫎鎴愬姛");
-    await refreshFileList();
-  };
+  // 鎵撳紑闄勪欢寮规
+  const openFileDialog = async (row) => {
+    recordId.value = row.id
+    fileDialogVisible.value = true
+  }
 
   // 鑾峰彇瑙勭珷鍒跺害鍒楄〃鏁版嵁
   const getRegulationList = async () => {
@@ -687,8 +625,6 @@
   }
 
   .dialog-footer {
-    display: flex;
-    justify-content: flex-end;
-    gap: 10px;
+    text-align: center;
   }
 </style>

--
Gitblit v1.9.3