From 07f9f8657d057a38792c3822acc9b08d83478967 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 07 五月 2026 14:23:10 +0800
Subject: [PATCH] 合并代码
---
src/views/collaborativeApproval/rulesRegulationsManagement/index.vue | 198 +++++++++++++++----------------------------------
1 files changed, 60 insertions(+), 138 deletions(-)
diff --git a/src/views/collaborativeApproval/rulesRegulationsManagement/index.vue b/src/views/collaborativeApproval/rulesRegulationsManagement/index.vue
index 6c3004d..f7ba9d9 100644
--- a/src/views/collaborativeApproval/rulesRegulationsManagement/index.vue
+++ b/src/views/collaborativeApproval/rulesRegulationsManagement/index.vue
@@ -42,68 +42,15 @@
</el-button>
</el-col>
</el-row>
- <el-table :data="regulations"
- border
- v-loading="tableLoading"
- style="width: 100%">
- <el-table-column prop="regulationNum"
- label="鍒跺害缂栧彿"
- width="120" />
- <el-table-column prop="title"
- label="鍒跺害鏍囬"
- min-width="150" />
- <el-table-column prop="category"
- label="鍒嗙被"
- width="120">
- <template #default="scope">
- <el-tag>{{ getCategoryText(scope.row.category) }}</el-tag>
- </template>
- </el-table-column>
- <el-table-column prop="version"
- label="鐗堟湰"
- width="120" />
- <el-table-column prop="createUserName"
- label="鍙戝竷浜�"
- width="120" />
- <el-table-column prop="createTime"
- label="鍙戝竷鏃堕棿"
- width="180" />
- <el-table-column prop="status"
- label="鐘舵��"
- width="100">
- <template #default="scope">
- <el-tag :type="scope.row.status === 'active' ? 'success' : 'info'">
- {{ scope.row.status === 'active' ? '鐢熸晥涓�' : '宸插簾姝�' }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column prop="readCount"
- label="宸茶浜烘暟"
- width="100" />
- <el-table-column label="鎿嶄綔"
- width="320"
- fixed="right">
- <template #default="scope">
- <el-button link
- @click="viewRegulation(scope.row)">鏌ョ湅</el-button>
- <el-button link
- type="primary"
- @click="handleEdit(scope.row)">缂栬緫</el-button>
- <el-button link
- type="danger"
- @click="repealEdit(scope.row)">搴熷純</el-button>
- <el-button link
- type="success"
- @click="viewVersionHistory(scope.row)">鐗堟湰鍘嗗彶</el-button>
- <!-- <el-button link type="warning" @click="viewReadStatus(scope.row)">闃呰鐘舵��</el-button> -->
- <el-button link
- type="primary"
- @click="openFileDialog(scope.row)">闄勪欢</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination v-show="page.total > 0" :total="page.total" layout="total, sizes, prev, pager, next, jumper"
- :page="page.current" :limit="page.size" @pagination="paginationChange" />
+ <PIMTable
+ rowKey="id"
+ :column="regulationTableColumn"
+ :tableData="regulations"
+ :tableLoading="tableLoading"
+ :page="page"
+ :isShowPagination="true"
+ @pagination="paginationChange"
+ />
</div>
</el-card>
<!-- 鐢ㄥ嵃鐢宠瀵硅瘽妗嗭紙宸茬Щ闄わ級 -->
@@ -179,9 +126,8 @@
</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>
@@ -266,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>
@@ -289,12 +228,13 @@
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";
// 鍝嶅簲寮忔暟鎹�
const operationType = ref("add");
@@ -307,14 +247,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);
@@ -362,6 +295,45 @@
});
const regulations = ref([]);
+
+ // 琛ㄦ牸鍒楅厤缃�
+ const regulationTableColumn = ref([
+ { label: "鍒跺害缂栧彿", prop: "regulationNum"},
+ { label: "鍒跺害鏍囬", prop: "title" },
+ {
+ label: "鍒嗙被",
+ prop: "category",
+ dataType: "tag",
+ formatData: (v) => getCategoryText(v),
+ formatType: () => "info",
+ },
+ { label: "鐗堟湰", prop: "version", width: 120 },
+ { label: "鍙戝竷浜�", prop: "createUserName", width: 120 },
+ { label: "鍙戝竷鏃堕棿", prop: "createTime", width: 180 },
+ {
+ label: "鐘舵��",
+ prop: "status",
+ width: 100,
+ dataType: "tag",
+ formatData: (v) => (v === "active" ? "鐢熸晥涓�" : "宸插簾姝�"),
+ formatType: (v) => (v === "active" ? "success" : "info"),
+ },
+ { label: "宸茶浜烘暟", prop: "readCount", width: 100 },
+ {
+ dataType: "action",
+ label: "鎿嶄綔",
+ width: 320,
+ fixed: "right",
+ align: "center",
+ operation: [
+ { name: "缂栬緫", clickFun: (row) => handleEdit(row) },
+ { name: "搴熷純", clickFun: (row) => repealEdit(row) },
+ { name: "鐗堟湰鍘嗗彶", clickFun: (row) => viewVersionHistory(row) },
+ { name: "璇︽儏", clickFun: (row) => viewRegulation(row) },
+ { name: "闄勪欢", clickFun: (row) => openFileDialog(row) },
+ ],
+ },
+ ]);
const versionHistory = ref([]);
@@ -578,63 +550,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 () => {
@@ -700,8 +624,6 @@
}
.dialog-footer {
- display: flex;
- justify-content: flex-end;
- gap: 10px;
+ text-align: center;
}
</style>
--
Gitblit v1.9.3