From d29a165423a5a064bcc96327440735e5ded23f4e Mon Sep 17 00:00:00 2001 From: lzq <2495532633@qq.com> Date: Wed, 25 Feb 2026 17:42:56 +0800 Subject: [PATCH] 1 --- src/common/app/app-user-store.ts | 4 + src/common/router/index.ts | 80 ++++++++---- src/common/router/nav.ts | 4 +- src/components/a-dt-picker/ADtPicker.vue | 4 +- src/components/a-map/AMap.vue | 4 +- src/components/uploader/Uploader.vue | 7 +- src/pages/cst/customer/Customer.vue | 1 + src/pages/cst/customer/CustomerDropTable.vue | 8 +- .../cst/customer/purchaser/Purchaser.vue | 1 + .../cst/customer/transport/Transport.vue | 1 + .../cst/customer/waste-prod/WasteProd.vue | 1 + src/pages/cst/driver/Driver.vue | 23 ++-- src/pages/cst/project/Project.vue | 44 +++---- src/pages/cst/project/ProjectForm.vue | 120 +++++++++++------- src/pages/cst/project/project.d.ts | 7 + src/pages/cst/station/Station.vue | 1 + src/pages/cst/station/StationForm.vue | 5 +- src/pages/cst/truck/Truck.vue | 6 +- src/pages/fin/expense-item/ExpenseItem.vue | 3 +- .../gds/goods-category/GoodsCategory.vue | 1 + .../gds/goods-category/GoodsCategoryForm.vue | 6 +- .../goods-category/GoodsCategorySelect.vue | 21 ++- .../gds/goods-category/goods-category.d.ts | 1 + src/pages/gds/goods/Goods.vue | 8 +- src/pages/gds/goods/GoodsForm.vue | 22 ++-- src/pages/sys/endpoint/Endpoint.vue | 1 + src/pages/sys/gen/tpl/Tpl.vue | 1 + src/pages/sys/menus/Menus.vue | 1 + src/pages/sys/role/Role.vue | 1 + src/pages/sys/sn-config/SnConfig.vue | 1 + src/pages/sys/task/Task.vue | 1 + src/pages/sys/user/User.vue | 1 + src/pages/wh/in-order/InOrder.vue | 1 + src/pages/wh/inventory/Inventory.vue | 1 + src/pages/wh/out-order/OutOrder.vue | 1 + src/pages/wh/purchase-order/PurchaseOrder.vue | 1 + src/pages/wh/sales-order/SalesOrder.vue | 1 + src/pages/wh/warehouse/Warehouse.vue | 1 + 38 files changed, 257 insertions(+), 139 deletions(-) diff --git a/src/common/app/app-user-store.ts b/src/common/app/app-user-store.ts index 6ca3a51..dedb4d0 100644 --- a/src/common/app/app-user-store.ts +++ b/src/common/app/app-user-store.ts @@ -17,6 +17,9 @@ export const useAppUserStore = defineStore('AppUser', () => { const tenantName = ref(null) const isAuthenticated = computed(() => !Strings.isEmpty(token.value)) const isXiaoNa = computed(() => { + return false + }) + const isAdmin = computed(() => { return true }) @@ -44,6 +47,7 @@ export const useAppUserStore = defineStore('AppUser', () => { isAuthenticated, roles, isXiaoNa, + isAdmin, $reset, } }, { diff --git a/src/common/router/index.ts b/src/common/router/index.ts index d9e10ca..52e9666 100644 --- a/src/common/router/index.ts +++ b/src/common/router/index.ts @@ -15,6 +15,7 @@ import { getRoutes, } from '@/common/router/route-config.ts' import { SpecialPage } from '@/common/router/constants.ts' +import { reloadUserInfo } from '@/common/app' function addRoutes(routNames: string[]) { if (Colls.isEmpty(routNames)) return @@ -64,26 +65,48 @@ router.beforeEach((to, from) => { // 已登录 if (appUserStore.isAuthenticated) { if (from.path === '/' && router.getRoutes().length <= 4) {// 浏览器刷新 - const succ = reloadRouter() - if (!succ - && SpecialPage.Login !== name - && SpecialPage.Home !== name - && SpecialPage.Main !== name - && SpecialPage.NotFound !== name) { - return { - replace: true, - name: SpecialPage.Home, - } - } else { - let routeName = router.getRoutes().find((it) => it.path === to.path)?.name as string - if (Strings.isBlank(routeName)) { - routeName = SpecialPage.Home - } - setTimeout(() => { - Evt.emit('browserReflash', routeName) + return reloadRouter() + .then(succ => { + if (!succ + && SpecialPage.Login !== name + && SpecialPage.Home !== name + && SpecialPage.Main !== name + && SpecialPage.NotFound !== name) { + return { + replace: true, + name: SpecialPage.Home, + } + } else { + let routeName = router.getRoutes().find((it) => it.path === to.path)?.name as string + if (Strings.isBlank(routeName)) { + routeName = SpecialPage.Home + } + setTimeout(() => { + Evt.emit('browserReflash', routeName) + }) + return false + } }) - return false - } + /* const succ = reloadRouter() + if (!succ + && SpecialPage.Login !== name + && SpecialPage.Home !== name + && SpecialPage.Main !== name + && SpecialPage.NotFound !== name) { + return { + replace: true, + name: SpecialPage.Home, + } + } else { + let routeName = router.getRoutes().find((it) => it.path === to.path)?.name as string + if (Strings.isBlank(routeName)) { + routeName = SpecialPage.Home + } + setTimeout(() => { + Evt.emit('browserReflash', routeName) + }) + return false + } */ } return true } @@ -107,14 +130,17 @@ export function reloadRouter() { .filter((it) => it.name !== SpecialPage.Main && it.name !== SpecialPage.Login && it.name !== SpecialPage.NotFound && it.name !== SpecialPage.Home) .map((it) => it.name as string) removeRoutes(routes) - const routNames = useAppSettingStore() - .menus.filter((it) => it.menuCategory === MenuCategory.Page || it.menuCategory === MenuCategory.SubPage) - .map((it) => it.routeName) - if (Colls.isEmpty(routNames)) { - return false - } - addRoutes(routNames) - return true + return reloadUserInfo() + .then(() => { + const routNames = useAppSettingStore() + .menus.filter((it) => it.menuCategory === MenuCategory.Page || it.menuCategory === MenuCategory.SubPage) + .map((it) => it.routeName) + if (Colls.isEmpty(routNames)) { + return false + } + addRoutes(routNames) + return true + }) } export default router diff --git a/src/common/router/nav.ts b/src/common/router/nav.ts index 4f2ec58..47d3cd5 100644 --- a/src/common/router/nav.ts +++ b/src/common/router/nav.ts @@ -5,7 +5,6 @@ import router, { import Evt from '@/common/utils/evt.ts' import { useAppSettingStore } from '@/common/app/app-setting-store.ts' import { useAppPageStore } from '@/common/app/app-page-store.ts' -import { reloadUserInfo } from '@/common/app' import { ElMessage } from 'element-plus' import type { App } from 'vue' import { SpecialPage } from '@/common/router/constants.ts' @@ -26,8 +25,7 @@ function checkRoute(option: string | Option) { if (menu == null || !router.hasRoute(opt.routeName)) { - return reloadUserInfo() - .then(reloadRouter) + return reloadRouter() .then(() => { const menu_ = appSettingStore.menus.find(it => it.routeName === opt.routeName) if (menu_ == null || !router.hasRoute(opt.routeName)) { diff --git a/src/components/a-dt-picker/ADtPicker.vue b/src/components/a-dt-picker/ADtPicker.vue index 3912fa5..7d2fec7 100644 --- a/src/components/a-dt-picker/ADtPicker.vue +++ b/src/components/a-dt-picker/ADtPicker.vue @@ -5,8 +5,10 @@ const props = withDefaults( defineProps<{ changeHandler?: () => void modelValue: [ string | undefined, string | undefined ] | undefined | null + type?: 'year' | 'years' | 'month' | 'months' | 'date' | 'dates' | 'week' | 'datetime' | 'datetimerange' | 'daterange' | 'monthrange' | 'yearrange' }>(), { + type: 'datetimerange', changeHandler: () => { }, }, @@ -66,7 +68,7 @@ const shortcuts = [ clearable end-placeholder="结束时间" start-placeholder="开始时间" - type="datetimerange" + :type="type" @change="changeHandler" /> diff --git a/src/components/a-map/AMap.vue b/src/components/a-map/AMap.vue index 39e954c..dd3c324 100644 --- a/src/components/a-map/AMap.vue +++ b/src/components/a-map/AMap.vue @@ -21,6 +21,7 @@ const key = '3TGBZ-ZK7K5-CMNIK-ICIGZ-K6TYQ-HTBTZ' interface AMapPropsType { width?: string + height?: string mapConfig: { lat: number lng: number @@ -43,6 +44,7 @@ const props = withDefaults( defineProps(), { width: '500px', + height: '100%', }, ) @@ -207,7 +209,7 @@ defineExpose({init, destroy}) diff --git a/src/pages/cst/project/project.d.ts b/src/pages/cst/project/project.d.ts index c00610c..64ffa96 100644 --- a/src/pages/cst/project/project.d.ts +++ b/src/pages/cst/project/project.d.ts @@ -26,11 +26,17 @@ declare global { transCustomerId?: string transCustomerName?: string transCustomerPhone?: string + transCustomerInfo?: { + customerName?: string + } // 运输方企业 Id transOrgId?: string transOrgName?: string // 产废方/购买方客户 Id fringeCustomerId?: string + fringeCustomerInfo?: { + customerName?: string + } fringeCustomerName?: string fringeCustomerPhone?: string // 产废方/购买方企业 Id @@ -62,6 +68,7 @@ declare global { contractStartDate?: string // 合同有效期 contractEndDate?: string + contractDate?: Date[] // 创建时间 createTime?: string } diff --git a/src/pages/cst/station/Station.vue b/src/pages/cst/station/Station.vue index 59b2749..019f6b1 100644 --- a/src/pages/cst/station/Station.vue +++ b/src/pages/cst/station/Station.vue @@ -58,6 +58,7 @@ const tablePageProps = buildTablePageProps('formPanel') const status = ref<'add' | 'modify'>('add') const formPanelProps = buildFormPanelProps({ - title: status.value === 'add' ? '新建站点' : '修改站点', labelWidth: '100px', detailsLoader(id?: string) { if (Strings.isBlank(id)) { @@ -185,7 +184,9 @@ const formPanelProps = buildFormPanelProps({ }, }) - +watchEffect(() => { + formPanelProps.title = status.value === 'add' ? '新建站点' : '修改站点' +}) defineExpose({ open(data?: ProjectTypes.SearchProjectResult) { formPanelIns.value?.open(data?.id) diff --git a/src/pages/cst/truck/Truck.vue b/src/pages/cst/truck/Truck.vue index e7c415a..7f6a143 100644 --- a/src/pages/cst/truck/Truck.vue +++ b/src/pages/cst/truck/Truck.vue @@ -75,14 +75,14 @@ const tablePageProps = buildTablePageProps { @@ -101,7 +99,9 @@ const formPanelProps = buildFormPanelProps { + formPanelProps.title = status.value === 'add' ? '新建产品分类' : '修改产品分类' +}) defineExpose({ open(data?: GoodsCategoryTypes.SearchGoodsCategoryResult) { formPanelIns.value?.open(data?.id) diff --git a/src/pages/gds/goods-category/GoodsCategorySelect.vue b/src/pages/gds/goods-category/GoodsCategorySelect.vue index 74e92fe..d310ed6 100644 --- a/src/pages/gds/goods-category/GoodsCategorySelect.vue +++ b/src/pages/gds/goods-category/GoodsCategorySelect.vue @@ -4,13 +4,19 @@ import GoodsCategoryApi from '@/pages/gds/goods-category/goods-category-api.ts' import { bizType } from '@/pages/gds/goods-category/constants.ts' import Strings from '@/common/utils/strings.ts' -const props = defineProps<{ - defaultBizType: typeof bizType[number]['val'] - defaultValue: { - id?: string - categoryName?: string - } -}>() +const props = withDefaults( + defineProps<{ + defaultBizType: typeof bizType[number]['val'] + disabled?: boolean + defaultValue: { + id?: string + categoryName?: string + } + }>(), + { + disabled: false, + }, +) const dataList = Utils.resetAble(reactive([])) const loading = ref(false) const model = defineModel() @@ -59,6 +65,7 @@ function changeHandle(value: string) { placeholder="请输入文字搜索" remote remote-show-suffix + :disabled="disabled" @change="changeHandle" > diff --git a/src/pages/gds/goods-category/goods-category.d.ts b/src/pages/gds/goods-category/goods-category.d.ts index 741f44a..2c6ec35 100644 --- a/src/pages/gds/goods-category/goods-category.d.ts +++ b/src/pages/gds/goods-category/goods-category.d.ts @@ -32,6 +32,7 @@ declare global { bizType?: string // 分类名称 categoryName?: string + sn?: string // 图片 picture?: string // 排序 diff --git a/src/pages/gds/goods/Goods.vue b/src/pages/gds/goods/Goods.vue index 33625de..02c1831 100644 --- a/src/pages/gds/goods/Goods.vue +++ b/src/pages/gds/goods/Goods.vue @@ -19,7 +19,7 @@ @@ -38,10 +38,12 @@ import ATablePage, { buildTablePageProps, } from '@/components/a-page/a-table-page/ATablePage.tsx' import { bizType } from '@/pages/gds/goods-category/constants.ts' +import { useAppUserStore } from '@/common/app/app-user-store.ts' const props = defineProps<{ defaultBizType: typeof bizType[number]['val'] }>() +const appUserStore = useAppUserStore() const goodsFormIns = useTemplateRef>('goodsForm') @@ -81,11 +83,15 @@ const tablePageProps = buildTablePageProps({ { tooltip: '编辑', icon: 'Edit', + type: 'success', action({row}) { goodsFormIns.value?.open(row) }, }, { + show() { + return !appUserStore.isXiaoNa + }, icon: 'Delete', loading: false, type: 'danger', diff --git a/src/pages/gds/goods/GoodsForm.vue b/src/pages/gds/goods/GoodsForm.vue index ac1fef9..dce67d9 100644 --- a/src/pages/gds/goods/GoodsForm.vue +++ b/src/pages/gds/goods/GoodsForm.vue @@ -7,13 +7,15 @@ - + - + @@ -31,10 +33,10 @@ - + - + - + - + - + @@ -113,7 +115,7 @@ const formPanelIns = useTemplateRef('formPanel') const uploaderIns = useTemplateRef>('uploader') const status = ref<'add' | 'modify'>('add') const formPanelProps = buildFormPanelProps({ - title: status.value === 'add' ? '新建产品' : '修改产品', + // title: status.value === 'add' ? '新建产品' : '修改产品', detailsLoader(id?: string) { if (Strings.isBlank(id)) { status.value = 'add' @@ -237,7 +239,9 @@ const formPanelProps = buildFormPanelProps({ } }, }) - +watchEffect(() => { + formPanelProps.title = status.value === 'add' ? '新建产品' : '修改产品' +}) defineExpose({ open(data?: GoodsTypes.SearchGoodsResult) { formPanelIns.value?.open(data?.id) diff --git a/src/pages/sys/endpoint/Endpoint.vue b/src/pages/sys/endpoint/Endpoint.vue index a0fd240..f276e2d 100644 --- a/src/pages/sys/endpoint/Endpoint.vue +++ b/src/pages/sys/endpoint/Endpoint.vue @@ -53,6 +53,7 @@ const actionColumn = reactive>({ { tooltip: '编辑', icon: 'Edit', + type: 'success', action({row}) { tplFormIns.value?.open(row) }, diff --git a/src/pages/sys/menus/Menus.vue b/src/pages/sys/menus/Menus.vue index d2f4fdd..8182ffc 100644 --- a/src/pages/sys/menus/Menus.vue +++ b/src/pages/sys/menus/Menus.vue @@ -76,6 +76,7 @@ const actionColumn = reactive>({ { tooltip: '编辑', icon: 'Edit', + type: 'success', action({row}) { menuFormIns.value?.open(row as MenuTypes.MenuForm) }, diff --git a/src/pages/sys/role/Role.vue b/src/pages/sys/role/Role.vue index 8919a36..223c78b 100644 --- a/src/pages/sys/role/Role.vue +++ b/src/pages/sys/role/Role.vue @@ -58,6 +58,7 @@ const actionColumn = reactive>({ { tooltip: '编辑', icon: 'Edit', + type: 'success', show({row}) { return row.id != '1' }, diff --git a/src/pages/sys/sn-config/SnConfig.vue b/src/pages/sys/sn-config/SnConfig.vue index 6309edd..299880d 100644 --- a/src/pages/sys/sn-config/SnConfig.vue +++ b/src/pages/sys/sn-config/SnConfig.vue @@ -54,6 +54,7 @@ const actionColumn = reactive>({ { tooltip: '编辑', icon: 'Edit', + type: 'success', action({row}) { snConfigFormIns.value?.open(row) }, diff --git a/src/pages/sys/task/Task.vue b/src/pages/sys/task/Task.vue index 37c5355..b052e90 100644 --- a/src/pages/sys/task/Task.vue +++ b/src/pages/sys/task/Task.vue @@ -100,6 +100,7 @@ const actionColumn = reactive>({ { tooltip: '编辑', icon: 'Edit', + type: 'success', show({row}) { return !row.builtin }, diff --git a/src/pages/sys/user/User.vue b/src/pages/sys/user/User.vue index 0744429..6a7c3e1 100644 --- a/src/pages/sys/user/User.vue +++ b/src/pages/sys/user/User.vue @@ -103,6 +103,7 @@ const actionColumn = reactive>({ { tooltip: '编辑', icon: 'Edit', + type: 'success', action({row}) { userFormIns.value?.open(row) }, diff --git a/src/pages/wh/in-order/InOrder.vue b/src/pages/wh/in-order/InOrder.vue index e287f46..297540a 100644 --- a/src/pages/wh/in-order/InOrder.vue +++ b/src/pages/wh/in-order/InOrder.vue @@ -86,6 +86,7 @@ const actionColumn = reactive { tooltip: '编辑', icon: 'Edit', + type: 'success', action({row}) { inOrderFormIns.value?.open(row) }, diff --git a/src/pages/wh/inventory/Inventory.vue b/src/pages/wh/inventory/Inventory.vue index b9fea5b..339caf2 100644 --- a/src/pages/wh/inventory/Inventory.vue +++ b/src/pages/wh/inventory/Inventory.vue @@ -96,6 +96,7 @@ const actionColumn = reactive