20260511173242

This commit is contained in:
oneao committed 2026-05-11 17:32:43 +08:00
1 parent 56f5ba4e6b
commit 364d29dbaa
20 files changed
+2992 -88

No files matched your search

@@ -630,6 +630,16 @@ function handleBatchDelete() {
}
async function deleteFiles(files) {
// ===== 新增:校验 mx_cate_id =====
const protectedFiles = files.filter((item) => Number(item.mx_cate_id) === 0);
if (protectedFiles.length > 0) {
const names = protectedFiles.map((item) => item.mx_filename).join(",");
ElMessage.warning(`文件【${names}】属于箱门照,不允许删除`);
return;
}
// 收集文件的 mx_filename
const filenames = files.map((file) => file.mx_filename).join(", ");
@@ -673,7 +683,7 @@ async function deleteFiles(files) {
}
});
}
// 保存
// 保存
async function handleSave() {
if (cateId.value !== "1" && cateId.value !== "2") {
@@ -3,12 +3,12 @@
*/
import { addCollection } from "@iconify/vue";
import Lucide from "@iconify/json/json/lucide.json";
import ElementPlus from "@iconify/json/json/ep.json";
import Mingcute from "@iconify/json/json/mingcute.json";
// import Lucide from "@iconify/json/json/lucide.json";
// import ElementPlus from "@iconify/json/json/ep.json";
// import Mingcute from "@iconify/json/json/mingcute.json";
export function SetupIcons() {
addCollection(Lucide);
addCollection(ElementPlus);
addCollection(Mingcute);
// addCollection(Lucide);
// addCollection(ElementPlus);
// addCollection(Mingcute);
}
@@ -76,16 +76,28 @@ export const usePermissionStore = defineStore("permission", () => {
}
const moduleid = route.meta.moduleId;
if (!moduleid) return false;
if (!hasModulePermission(moduleid)) return false;
if (!moduleid) {
return false;
}
const hasModule = hasModulePermission(moduleid);
if (!hasModule) {
return false;
}
const actions = actionPermissions.value.filter((item) => item.ModuleID === moduleid);
const action = actions.find((item) => Number(item.b_ivalue) === Number(id));
if (!action) return false;
if (action.b_canuse === "0") return false;
if (!action) {
return false;
}
if (action.b_canuse === "0") {
return false;
}
// 其他情况允许
return true;
@@ -89,6 +89,7 @@ const handleSizeChange = (val) => {
loadTableDatas();
};
const handleCurrentChange = (val) => {
pagination.page = val;
@@ -229,7 +230,7 @@ async function deleteRows(rows = []) {
keyField: "b_id",
inserts: [],
updates: [],
deletes: deleteIds.map((id) => ({ b_id: id })),
deletes: rows,
},
];
@@ -295,7 +296,11 @@ async function handleDownloadOne(data) {
});
try {
const fileRes = await loadDataApi("bf_file", `father = ${data.b_id}`, "mx_cate_id asc,mx_xh asc");
const fileRes = await loadDataApi(
"bf_file",
`father = ${data.b_id}`,
"mx_cate_id asc,mx_xh asc",
);
if (!fileRes.success) {
ElMessage.error("获取附件失败");
@@ -369,7 +374,11 @@ async function handleDownloadBatch() {
const containerCountMap = new Map();
for (const item of records) {
const fileRes = await loadDataApi("bf_file", `father='${item.b_id}'`, "mx_cate_id asc,mx_xh asc");
const fileRes = await loadDataApi(
"bf_file",
`father='${item.b_id}'`,
"mx_cate_id asc,mx_xh asc",
);
const files = (fileRes.success && fileRes.data) || [];
totalFiles += files.length;
@@ -657,7 +666,10 @@ function buildFileName(containerNo, index, fileName) {
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="handleUpdateShow(row)">
<el-dropdown-item
@click="handleUpdateShow(row)"
:disabled="!permissionStore.hasActionPermission(2)"
>
<el-icon class="el-icon--left">
<G3Icon icon="lucide:refresh-ccw" />
</el-icon>
@@ -76,15 +76,15 @@ async function loadTableDatas() {
}
if (searchForm.value.datas) {
searchCondition += `b_datas LIKE '${searchForm.value.datas}' AND `;
searchCondition += `b_datas LIKE '%${searchForm.value.datas}%' AND `;
}
if (searchForm.value.option) {
searchCondition += `b_option LIKE '${searchForm.value.option}' AND `;
searchCondition += `b_option LIKE '%${searchForm.value.option}%' AND `;
}
if (searchForm.value.table) {
searchCondition += `b_table LIKE '${searchForm.value.table}' AND `;
searchCondition += `b_table LIKE '%${searchForm.value.table}%' AND `;
}
if (searchCondition.endsWith(" AND ")) {
@@ -250,8 +250,11 @@ function handleSearchReset() {
showIcon: false,
trigger: 'cell',
}"
:cell-config="{
height: 'auto',
}"
height="100%"
show-overflow
:show-overflow="false"
show-header-overflow
>
<vxe-column field="seq" type="seq" width="50" align="center" title=" " fixed="left" />