20260511173242
This commit is contained in:
1 parent
56f5ba4e6b
commit
364d29dbaa
20 files changed
+2992
-88
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# Application
|
||||
# 应用名称(用于标题、日志等)
|
||||
PUBLIC_APP_NAME=g3ocr
|
||||
PUBLIC_APP_NAME=集装箱装货影像采集
|
||||
|
||||
# Server
|
||||
# 应用部署基础路径(路由和静态资源 base)
|
||||
@@ -8,9 +8,4 @@ PUBLIC_SERVER_PATH=/g3ocr/
|
||||
# 本地开发服务器端口
|
||||
PUBLIC_SERVER_PORT=8080
|
||||
|
||||
# API
|
||||
# 后端 API 基础地址
|
||||
# PUBLIC_API_BASE_URL=http://ser369.g3soft.cn:80/api
|
||||
PUBLIC_API_BASE_URL=http://192.168.5.6:80/api
|
||||
|
||||
PUBLIC_ALIYUN_BUCKET = g3hd
|
||||
@@ -0,0 +1 @@
|
||||
PUBLIC_API_BASE_URL=http://192.168.1.137:80/api
|
||||
@@ -0,0 +1 @@
|
||||
PUBLIC_API_BASE_URL=http://ser369.g3soft.cn:80/api
|
||||
+8
@@ -18,6 +18,7 @@ declare module 'vue' {
|
||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||
ElDialog: typeof import('element-plus/es')['ElDialog']
|
||||
ElDivider: typeof import('element-plus/es')['ElDivider']
|
||||
ElDrawer: typeof import('element-plus/es')['ElDrawer']
|
||||
ElDropdown: typeof import('element-plus/es')['ElDropdown']
|
||||
ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
|
||||
ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
|
||||
@@ -27,16 +28,23 @@ declare module 'vue' {
|
||||
ElInput: typeof import('element-plus/es')['ElInput']
|
||||
ElMenu: typeof import('element-plus/es')['ElMenu']
|
||||
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
|
||||
ElOption: typeof import('element-plus/es')['ElOption']
|
||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||
ElPopover: typeof import('element-plus/es')['ElPopover']
|
||||
ElRadio: typeof import('element-plus/es')['ElRadio']
|
||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
||||
ElResult: typeof import('element-plus/es')['ElResult']
|
||||
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
||||
ElSelect: typeof import('element-plus/es')['ElSelect']
|
||||
ElSplitter: typeof import('element-plus/es')['ElSplitter']
|
||||
ElSplitterPanel: typeof import('element-plus/es')['ElSplitterPanel']
|
||||
ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
|
||||
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
||||
ElTable: typeof import('element-plus/es')['ElTable']
|
||||
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
||||
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
||||
ElTabs: typeof import('element-plus/es')['ElTabs']
|
||||
ElText: typeof import('element-plus/es')['ElText']
|
||||
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
||||
ElTree: typeof import('element-plus/es')['ElTree']
|
||||
G3Column: typeof import('./src/components/g3-table/g3-column.vue')['default']
|
||||
|
||||
@@ -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" />
|
||||
|
||||
Reference in new issue
Block a user