diff --git a/.github/actions/setup-node/action.yml b/.github/actions/setup-node/action.yml index d208b000a..445f30bec 100644 --- a/.github/actions/setup-node/action.yml +++ b/.github/actions/setup-node/action.yml @@ -6,7 +6,7 @@ runs: using: 'composite' steps: - name: Install pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v6 - name: Install Node.js uses: actions/setup-node@v6 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e17cb60dd..c1bc01c1c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: fetch-depth: 0 - name: Install pnpm - uses: pnpm/action-setup@v5 + uses: pnpm/action-setup@v6 with: run_install: false diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 2207ace28..4916d417a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -30,7 +30,7 @@ jobs: run: pnpm build:play - name: Sync Playground files - uses: SamKirkland/FTP-Deploy-Action@v4.3.6 + uses: SamKirkland/FTP-Deploy-Action@v4.4.0 with: server: ${{ secrets.PRO_FTP_HOST }} username: ${{ secrets.WEB_PLAYGROUND_FTP_ACCOUNT }} @@ -54,7 +54,7 @@ jobs: run: pnpm build:docs - name: Sync Docs files - uses: SamKirkland/FTP-Deploy-Action@v4.3.6 + uses: SamKirkland/FTP-Deploy-Action@v4.4.0 with: server: ${{ secrets.PRO_FTP_HOST }} username: ${{ secrets.WEBSITE_FTP_ACCOUNT }} @@ -85,7 +85,7 @@ jobs: run: pnpm run build:antd - name: Sync files - uses: SamKirkland/FTP-Deploy-Action@v4.3.6 + uses: SamKirkland/FTP-Deploy-Action@v4.4.0 with: server: ${{ secrets.PRO_FTP_HOST }} username: ${{ secrets.WEB_ANTD_FTP_ACCOUNT }} @@ -116,7 +116,7 @@ jobs: run: pnpm run build:ele - name: Sync files - uses: SamKirkland/FTP-Deploy-Action@v4.3.6 + uses: SamKirkland/FTP-Deploy-Action@v4.4.0 with: server: ${{ secrets.PRO_FTP_HOST }} username: ${{ secrets.WEB_ELE_FTP_ACCOUNT }} @@ -147,7 +147,7 @@ jobs: run: pnpm run build:naive - name: Sync files - uses: SamKirkland/FTP-Deploy-Action@v4.3.6 + uses: SamKirkland/FTP-Deploy-Action@v4.4.0 with: server: ${{ secrets.PRO_FTP_HOST }} username: ${{ secrets.WEB_NAIVE_FTP_ACCOUNT }} diff --git a/.github/workflows/issue-labeled.yml b/.github/workflows/issue-labeled.yml index 2feda4ef7..7a461e3b6 100644 --- a/.github/workflows/issue-labeled.yml +++ b/.github/workflows/issue-labeled.yml @@ -18,7 +18,7 @@ jobs: steps: - name: remove enhancement pending if: github.event.label.name == 'enhancement' - uses: actions-cool/issues-helper@v3 + uses: actions-cool/issues-helper-backup@d65454423c6fbbd20026b9b499d403f79422ac69 with: actions: 'remove-labels' token: ${{ secrets.GITHUB_TOKEN }} @@ -27,7 +27,7 @@ jobs: - name: remove bug pending if: github.event.label.name == 'bug' - uses: actions-cool/issues-helper@v3 + uses: actions-cool/issues-helper-backup@d65454423c6fbbd20026b9b499d403f79422ac69 with: actions: 'remove-labels' token: ${{ secrets.GITHUB_TOKEN }} @@ -36,7 +36,7 @@ jobs: - name: needs reproduction if: github.event.label.name == 'needs reproduction' - uses: actions-cool/issues-helper@v3 + uses: actions-cool/issues-helper-backup@d65454423c6fbbd20026b9b499d403f79422ac69 with: actions: 'create-comment, remove-labels' token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-tag.yml b/.github/workflows/release-tag.yml index 7258c11ff..a745510c0 100644 --- a/.github/workflows/release-tag.yml +++ b/.github/workflows/release-tag.yml @@ -3,60 +3,44 @@ name: Create Release Tag on: push: tags: - - 'v*.*.*' # Push events to matching v*, i.e. v1.0, v20.15.10 - -env: - HUSKY: '0' + - 'v*.*.*' + workflow_dispatch: + inputs: + tag: + description: 'Tag to create (e.g. v1.2.3)' + required: true + type: string permissions: - pull-requests: write contents: write jobs: - build: + release: name: Create Release if: github.repository == 'vbenjs/vue-vben-admin' runs-on: ubuntu-latest - strategy: - matrix: - node-version: [22] steps: - name: Checkout code uses: actions/checkout@v6 with: fetch-depth: 0 - # - name: Checkout code - # uses: actions/checkout@v6 - # with: - # fetch-depth: 0 - - # - name: Install pnpm - # uses: pnpm/action-setup@v4 - - # - name: Use Node.js ${{ matrix.node-version }} - # uses: actions/setup-node@v4 - # with: - # node-version: ${{ matrix.node-version }} - # cache: "pnpm" - - # - name: Install dependencies - # run: pnpm install --frozen-lockfile - - # - name: Test and Build - # run: | - # pnpm run test - # pnpm run build - - - name: version + - name: Extract version id: version run: | - tag=${GITHUB_REF/refs\/tags\//} - version=${tag#v} - major=${version%%.*} - echo "tag=${tag}" >> $GITHUB_OUTPUT - echo "version=${version}" >> $GITHUB_OUTPUT - echo "major=${major}" >> $GITHUB_OUTPUT + if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then + raw_tag="${{ inputs.tag }}" + else + raw_tag="${GITHUB_REF_NAME}" + fi + # Normalize: ensure v prefix + tag="${raw_tag}" + [[ "${tag:0:1}" != "v" ]] && tag="v${tag}" + version="${tag#v}" + major="${version%%.*}" + echo "tag=${tag}" >> "${GITHUB_OUTPUT}" + echo "version=${version}" >> "${GITHUB_OUTPUT}" + echo "major=${major}" >> "${GITHUB_OUTPUT}" - uses: release-drafter/release-drafter@v7 with: @@ -64,17 +48,3 @@ jobs: publish: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - # - name: force update major tag - # run: | - # git tag v${{ steps.version.outputs.major }} ${{ steps.version.outputs.tag }} -f - # git push origin refs/tags/v${{ steps.version.outputs.major }} -f - - # - name: Create Release for Tag - # id: release_tag - # uses: ncipollo/release-action@v1 - # with: - # token: ${{ secrets.GITHUB_TOKEN }} - # generateReleaseNotes: "true" - # body: | - # > Please refer to [CHANGELOG.md](https://github.com/vbenjs/vue-vben-admin/blob/main/CHANGELOG.md) for details. diff --git a/.gitignore b/.gitignore index 86d1f1f8a..20fba96c3 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ package-lock.json .VSCodeCounter **/backend-mock/data .omx +.pnpm-store # local env files .env.local .env.*.local @@ -57,3 +58,5 @@ vite.config.ts.* .claude .codex skills-lock.json +.atomcode +datalog diff --git a/.npmrc b/.npmrc index 6d28fabf4..7549542d7 100644 --- a/.npmrc +++ b/.npmrc @@ -1,13 +1 @@ registry=https://registry.npmmirror.com -public-hoist-pattern[]=lefthook -public-hoist-pattern[]=eslint -public-hoist-pattern[]=oxfmt -public-hoist-pattern[]=oxlint -public-hoist-pattern[]=stylelint -public-hoist-pattern[]=*postcss* -public-hoist-pattern[]=@commitlint/* -public-hoist-pattern[]=czg - -strict-peer-dependencies=false -auto-install-peers=true -dedupe-peer-dependents=true diff --git a/.vscode/settings.json b/.vscode/settings.json index 6132ff6cc..09e7312bb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -38,7 +38,7 @@ // lint && format "oxc.enable": true, - "oxc.typeAware": true, + "oxc.typeAware": false, "oxc.configPath": "oxlint.config.ts", "oxc.fmt.configPath": "oxfmt.config.ts", "eslint.useFlatConfig": true, diff --git a/apps/web-antd/src/adapter/component/index.ts b/apps/web-antd/src/adapter/component/index.ts index e2563bdd3..36ac97f92 100644 --- a/apps/web-antd/src/adapter/component/index.ts +++ b/apps/web-antd/src/adapter/component/index.ts @@ -136,8 +136,8 @@ const PreviewGroup = defineAsyncComponent(() => import('ant-design-vue/es/image').then((res) => res.ImagePreviewGroup), ); -const withDefaultPlaceholder = ( - component: T, +const withDefaultPlaceholder = ( + component: Component, type: 'input' | 'select', componentProps: Recordable = {}, ) => { @@ -711,7 +711,9 @@ async function initComponentAdapter() { modelValueProp: 'value', }), Input: withDefaultPlaceholder(Input, 'input'), - InputNumber: withDefaultPlaceholder(InputNumber, 'input'), + InputNumber: withDefaultPlaceholder(InputNumber, 'input', { + style: { width: '100%' }, + }), InputPassword: withDefaultPlaceholder(InputPassword, 'input'), Mentions: withDefaultPlaceholder(Mentions, 'input'), // 自定义主要按钮 diff --git a/apps/web-antd/src/api/iot/rule/data/sink/index.ts b/apps/web-antd/src/api/iot/rule/data/sink/index.ts index c4d1429ce..3c26df91d 100644 --- a/apps/web-antd/src/api/iot/rule/data/sink/index.ts +++ b/apps/web-antd/src/api/iot/rule/data/sink/index.ts @@ -150,14 +150,14 @@ export function getDataSinkPage(params: PageParam) { /** 查询数据流转目的详情 */ export function getDataSink(id: number) { - return requestClient.get( - `/iot/data-sink/get?id=${id}`, - ); + return requestClient.get(`/iot/data-sink/get?id=${id}`); } /** 查询数据流转目的(精简)列表 */ export function getDataSinkSimpleList() { - return requestClient.get('/iot/data-sink/simple-list'); + return requestClient.get( + '/iot/data-sink/simple-list', + ); } /** 新增数据流转目的 */ diff --git a/apps/web-antd/src/api/iot/thingmodel/index.ts b/apps/web-antd/src/api/iot/thingmodel/index.ts index dc42a85e9..2fb80be2e 100644 --- a/apps/web-antd/src/api/iot/thingmodel/index.ts +++ b/apps/web-antd/src/api/iot/thingmodel/index.ts @@ -195,7 +195,9 @@ export const ThingModelFormRules: Record = { trigger: 'blur', }, ], - accessMode: [{ required: true, message: '请选择读写类型', trigger: 'change' }], + accessMode: [ + { required: true, message: '请选择读写类型', trigger: 'change' }, + ], callType: [{ required: true, message: '请选择调用方式', trigger: 'change' }], eventType: [{ required: true, message: '请选择事件类型', trigger: 'change' }], }; diff --git a/apps/web-antd/src/api/mes/cal/calendar/index.ts b/apps/web-antd/src/api/mes/cal/calendar/index.ts index 2ecff82bd..817fce27e 100644 --- a/apps/web-antd/src/api/mes/cal/calendar/index.ts +++ b/apps/web-antd/src/api/mes/cal/calendar/index.ts @@ -20,5 +20,8 @@ export namespace MesCalCalendarApi { /** 查询排班日历列表 */ export function getCalendarList(params: any) { - return requestClient.get('/mes/cal/calendar/list', { params }); + return requestClient.get( + '/mes/cal/calendar/list', + { params }, + ); } diff --git a/apps/web-antd/src/api/mes/cal/holiday/index.ts b/apps/web-antd/src/api/mes/cal/holiday/index.ts index 846d7cf1f..79657487a 100644 --- a/apps/web-antd/src/api/mes/cal/holiday/index.ts +++ b/apps/web-antd/src/api/mes/cal/holiday/index.ts @@ -19,12 +19,18 @@ export namespace MesCalHolidayApi { /** 查询假期设置列表 */ export function getHolidayList(params?: MesCalHolidayApi.HolidayQuery) { - return requestClient.get('/mes/cal/holiday/list', { params }); + return requestClient.get( + '/mes/cal/holiday/list', + { params }, + ); } /** 根据日期查询假期设置 */ export function getHolidayByDay(day: string) { - return requestClient.get('/mes/cal/holiday/get-by-day', { params: { day } }); + return requestClient.get( + '/mes/cal/holiday/get-by-day', + { params: { day } }, + ); } /** 保存假期设置 */ diff --git a/apps/web-antd/src/api/mes/cal/plan/index.ts b/apps/web-antd/src/api/mes/cal/plan/index.ts index 0d3d326ee..f52a6ba16 100644 --- a/apps/web-antd/src/api/mes/cal/plan/index.ts +++ b/apps/web-antd/src/api/mes/cal/plan/index.ts @@ -22,7 +22,10 @@ export namespace MesCalPlanApi { /** 查询排班计划分页 */ export function getPlanPage(params: PageParam) { - return requestClient.get>('/mes/cal/plan/page', { params }); + return requestClient.get>( + '/mes/cal/plan/page', + { params }, + ); } /** 查询排班计划详情 */ diff --git a/apps/web-antd/src/api/mes/cal/plan/shift/index.ts b/apps/web-antd/src/api/mes/cal/plan/shift/index.ts index 91a9c93e0..f7828ab51 100644 --- a/apps/web-antd/src/api/mes/cal/plan/shift/index.ts +++ b/apps/web-antd/src/api/mes/cal/plan/shift/index.ts @@ -15,7 +15,9 @@ export namespace MesCalPlanShiftApi { /** 查询指定排班计划的班次列表 */ export function getPlanShiftListByPlan(planId: number) { - return requestClient.get(`/mes/cal/plan-shift/list-by-plan?planId=${planId}`); + return requestClient.get( + `/mes/cal/plan-shift/list-by-plan?planId=${planId}`, + ); } /** 新增计划班次 */ diff --git a/apps/web-antd/src/api/mes/cal/plan/team/index.ts b/apps/web-antd/src/api/mes/cal/plan/team/index.ts index 334978bf7..a513312c3 100644 --- a/apps/web-antd/src/api/mes/cal/plan/team/index.ts +++ b/apps/web-antd/src/api/mes/cal/plan/team/index.ts @@ -14,7 +14,9 @@ export namespace MesCalPlanTeamApi { /** 查询指定排班计划的班组列表 */ export function getPlanTeamListByPlan(planId: number) { - return requestClient.get(`/mes/cal/plan-team/list-by-plan?planId=${planId}`); + return requestClient.get( + `/mes/cal/plan-team/list-by-plan?planId=${planId}`, + ); } /** 新增计划班组关联 */ diff --git a/apps/web-antd/src/api/mes/cal/team/index.ts b/apps/web-antd/src/api/mes/cal/team/index.ts index 1bff23911..b3a125d83 100644 --- a/apps/web-antd/src/api/mes/cal/team/index.ts +++ b/apps/web-antd/src/api/mes/cal/team/index.ts @@ -16,7 +16,10 @@ export namespace MesCalTeamApi { /** 查询班组分页 */ export function getTeamPage(params: PageParam) { - return requestClient.get>('/mes/cal/team/page', { params }); + return requestClient.get>( + '/mes/cal/team/page', + { params }, + ); } /** 查询班组列表 */ diff --git a/apps/web-antd/src/api/mes/cal/team/member/index.ts b/apps/web-antd/src/api/mes/cal/team/member/index.ts index f8caad493..2608f67c3 100644 --- a/apps/web-antd/src/api/mes/cal/team/member/index.ts +++ b/apps/web-antd/src/api/mes/cal/team/member/index.ts @@ -26,17 +26,26 @@ export function deleteTeamMember(id: number) { /** 查询班组成员分页 */ export function getTeamMemberPage(params: PageParam) { - return requestClient.get>('/mes/cal/team-member/page', { params }); + return requestClient.get>( + '/mes/cal/team-member/page', + { params }, + ); } /** 查询指定班组的成员列表 */ export function getTeamMemberListByTeam(teamId: number) { - return requestClient.get('/mes/cal/team-member/list-by-team', { params: { teamId } }); + return requestClient.get( + '/mes/cal/team-member/list-by-team', + { params: { teamId } }, + ); } /** 查询多个班组的成员列表 */ export function getTeamMemberListByTeamIds(teamIds: number[]) { - return requestClient.get('/mes/cal/team-member/list-by-team', { - params: { teamIds: teamIds.join(',') }, - }); + return requestClient.get( + '/mes/cal/team-member/list-by-team', + { + params: { teamIds: teamIds.join(',') }, + }, + ); } diff --git a/apps/web-antd/src/api/mes/dv/checkplan/index.ts b/apps/web-antd/src/api/mes/dv/checkplan/index.ts index 8f946f664..feeac8a58 100644 --- a/apps/web-antd/src/api/mes/dv/checkplan/index.ts +++ b/apps/web-antd/src/api/mes/dv/checkplan/index.ts @@ -21,12 +21,17 @@ export namespace MesDvCheckPlanApi { /** 查询点检保养方案分页 */ export function getCheckPlanPage(params: PageParam) { - return requestClient.get>('/mes/dv/check-plan/page', { params }); + return requestClient.get>( + '/mes/dv/check-plan/page', + { params }, + ); } /** 查询点检保养方案详情 */ export function getCheckPlan(id: number) { - return requestClient.get(`/mes/dv/check-plan/get?id=${id}`); + return requestClient.get( + `/mes/dv/check-plan/get?id=${id}`, + ); } /** 新增点检保养方案 */ diff --git a/apps/web-antd/src/api/mes/dv/checkplan/machinery/index.ts b/apps/web-antd/src/api/mes/dv/checkplan/machinery/index.ts index 7e4d517c7..ad79aad23 100644 --- a/apps/web-antd/src/api/mes/dv/checkplan/machinery/index.ts +++ b/apps/web-antd/src/api/mes/dv/checkplan/machinery/index.ts @@ -16,11 +16,15 @@ export namespace MesDvCheckPlanMachineryApi { /** 查询指定方案的设备列表 */ export function getCheckPlanMachineryListByPlan(planId: number) { - return requestClient.get(`/mes/dv/check-plan-machinery/list-by-plan?planId=${planId}`); + return requestClient.get( + `/mes/dv/check-plan-machinery/list-by-plan?planId=${planId}`, + ); } /** 新增方案设备关联 */ -export function createCheckPlanMachinery(data: MesDvCheckPlanMachineryApi.CheckPlanMachinery) { +export function createCheckPlanMachinery( + data: MesDvCheckPlanMachineryApi.CheckPlanMachinery, +) { return requestClient.post('/mes/dv/check-plan-machinery/create', data); } diff --git a/apps/web-antd/src/api/mes/dv/checkplan/subject/index.ts b/apps/web-antd/src/api/mes/dv/checkplan/subject/index.ts index 827228f50..6d60b4a67 100644 --- a/apps/web-antd/src/api/mes/dv/checkplan/subject/index.ts +++ b/apps/web-antd/src/api/mes/dv/checkplan/subject/index.ts @@ -17,11 +17,15 @@ export namespace MesDvCheckPlanSubjectApi { /** 查询指定方案的项目列表 */ export function getCheckPlanSubjectListByPlan(planId: number) { - return requestClient.get(`/mes/dv/check-plan-subject/list-by-plan?planId=${planId}`); + return requestClient.get( + `/mes/dv/check-plan-subject/list-by-plan?planId=${planId}`, + ); } /** 新增方案项目关联 */ -export function createCheckPlanSubject(data: MesDvCheckPlanSubjectApi.CheckPlanSubject) { +export function createCheckPlanSubject( + data: MesDvCheckPlanSubjectApi.CheckPlanSubject, +) { return requestClient.post('/mes/dv/check-plan-subject/create', data); } diff --git a/apps/web-antd/src/api/mes/dv/checkrecord/index.ts b/apps/web-antd/src/api/mes/dv/checkrecord/index.ts index 27606f6e9..4edd79ca2 100644 --- a/apps/web-antd/src/api/mes/dv/checkrecord/index.ts +++ b/apps/web-antd/src/api/mes/dv/checkrecord/index.ts @@ -24,12 +24,17 @@ export namespace MesDvCheckRecordApi { /** 查询设备点检记录分页 */ export function getCheckRecordPage(params: PageParam) { - return requestClient.get>('/mes/dv/check-record/page', { params }); + return requestClient.get>( + '/mes/dv/check-record/page', + { params }, + ); } /** 查询设备点检记录详情 */ export function getCheckRecord(id: number) { - return requestClient.get(`/mes/dv/check-record/get?id=${id}`); + return requestClient.get( + `/mes/dv/check-record/get?id=${id}`, + ); } /** 新增设备点检记录 */ @@ -54,5 +59,7 @@ export function deleteCheckRecord(id: number) { /** 导出设备点检记录 */ export function exportCheckRecord(params: any) { - return requestClient.download('/mes/dv/check-record/export-excel', { params }); + return requestClient.download('/mes/dv/check-record/export-excel', { + params, + }); } diff --git a/apps/web-antd/src/api/mes/dv/checkrecord/line/index.ts b/apps/web-antd/src/api/mes/dv/checkrecord/line/index.ts index 64490c6dc..aae27a596 100644 --- a/apps/web-antd/src/api/mes/dv/checkrecord/line/index.ts +++ b/apps/web-antd/src/api/mes/dv/checkrecord/line/index.ts @@ -20,21 +20,30 @@ export namespace MesDvCheckRecordLineApi { /** 查询设备点检记录明细分页 */ export function getCheckRecordLinePage(params: PageParam) { - return requestClient.get>('/mes/dv/check-record-line/page', { params }); + return requestClient.get>( + '/mes/dv/check-record-line/page', + { params }, + ); } /** 查询设备点检记录明细详情 */ export function getCheckRecordLine(id: number) { - return requestClient.get(`/mes/dv/check-record-line/get?id=${id}`); + return requestClient.get( + `/mes/dv/check-record-line/get?id=${id}`, + ); } /** 新增设备点检记录明细 */ -export function createCheckRecordLine(data: MesDvCheckRecordLineApi.CheckRecordLine) { +export function createCheckRecordLine( + data: MesDvCheckRecordLineApi.CheckRecordLine, +) { return requestClient.post('/mes/dv/check-record-line/create', data); } /** 修改设备点检记录明细 */ -export function updateCheckRecordLine(data: MesDvCheckRecordLineApi.CheckRecordLine) { +export function updateCheckRecordLine( + data: MesDvCheckRecordLineApi.CheckRecordLine, +) { return requestClient.put('/mes/dv/check-record-line/update', data); } diff --git a/apps/web-antd/src/api/mes/dv/machinery/index.ts b/apps/web-antd/src/api/mes/dv/machinery/index.ts index 0ae46cb84..f57a77299 100644 --- a/apps/web-antd/src/api/mes/dv/machinery/index.ts +++ b/apps/web-antd/src/api/mes/dv/machinery/index.ts @@ -31,17 +31,24 @@ export namespace MesDvMachineryApi { /** 查询设备分页 */ export function getMachineryPage(params: PageParam) { - return requestClient.get>('/mes/dv/machinery/page', { params }); + return requestClient.get>( + '/mes/dv/machinery/page', + { params }, + ); } /** 查询设备精简列表 */ export function getMachinerySimpleList() { - return requestClient.get('/mes/dv/machinery/simple-list'); + return requestClient.get( + '/mes/dv/machinery/simple-list', + ); } /** 查询设备详情 */ export function getMachinery(id: number) { - return requestClient.get(`/mes/dv/machinery/get?id=${id}`); + return requestClient.get( + `/mes/dv/machinery/get?id=${id}`, + ); } /** 新增设备 */ @@ -72,7 +79,7 @@ export function importMachineryTemplate() { /** 导入设备 */ export function importMachinery(file: File, updateSupport: boolean) { return requestClient.upload( - '/mes/dv/machinery/import?updateSupport=' + updateSupport, + `/mes/dv/machinery/import?updateSupport=${updateSupport}`, { file }, ); } diff --git a/apps/web-antd/src/api/mes/dv/machinery/type/index.ts b/apps/web-antd/src/api/mes/dv/machinery/type/index.ts index d7992fc63..eddc2caa8 100644 --- a/apps/web-antd/src/api/mes/dv/machinery/type/index.ts +++ b/apps/web-antd/src/api/mes/dv/machinery/type/index.ts @@ -17,17 +17,24 @@ export namespace MesDvMachineryTypeApi { /** 查询设备类型列表 */ export function getMachineryTypeList(params?: any) { - return requestClient.get('/mes/dv/machinery-type/list', { params }); + return requestClient.get( + '/mes/dv/machinery-type/list', + { params }, + ); } /** 查询设备类型精简列表 */ export function getMachineryTypeSimpleList() { - return requestClient.get('/mes/dv/machinery-type/simple-list'); + return requestClient.get( + '/mes/dv/machinery-type/simple-list', + ); } /** 查询设备类型详情 */ export function getMachineryType(id: number) { - return requestClient.get(`/mes/dv/machinery-type/get?id=${id}`); + return requestClient.get( + `/mes/dv/machinery-type/get?id=${id}`, + ); } /** 新增设备类型 */ diff --git a/apps/web-antd/src/api/mes/dv/maintenrecord/index.ts b/apps/web-antd/src/api/mes/dv/maintenrecord/index.ts index 68f86da7d..3ebf305f8 100644 --- a/apps/web-antd/src/api/mes/dv/maintenrecord/index.ts +++ b/apps/web-antd/src/api/mes/dv/maintenrecord/index.ts @@ -24,12 +24,17 @@ export namespace MesDvMaintenRecordApi { /** 查询设备保养记录分页 */ export function getMaintenRecordPage(params: PageParam) { - return requestClient.get>('/mes/dv/mainten-record/page', { params }); + return requestClient.get>( + '/mes/dv/mainten-record/page', + { params }, + ); } /** 查询设备保养记录详情 */ export function getMaintenRecord(id: number) { - return requestClient.get(`/mes/dv/mainten-record/get?id=${id}`); + return requestClient.get( + `/mes/dv/mainten-record/get?id=${id}`, + ); } /** 新增设备保养记录 */ @@ -54,5 +59,7 @@ export function deleteMaintenRecord(id: number) { /** 导出设备保养记录 */ export function exportMaintenRecord(params: any) { - return requestClient.download('/mes/dv/mainten-record/export-excel', { params }); + return requestClient.download('/mes/dv/mainten-record/export-excel', { + params, + }); } diff --git a/apps/web-antd/src/api/mes/dv/maintenrecord/line/index.ts b/apps/web-antd/src/api/mes/dv/maintenrecord/line/index.ts index 36b45e57d..fa67f638a 100644 --- a/apps/web-antd/src/api/mes/dv/maintenrecord/line/index.ts +++ b/apps/web-antd/src/api/mes/dv/maintenrecord/line/index.ts @@ -19,21 +19,29 @@ export namespace MesDvMaintenRecordLineApi { /** 查询设备保养记录明细分页 */ export function getMaintenRecordLinePage(params: PageParam) { - return requestClient.get>('/mes/dv/mainten-record-line/page', { params }); + return requestClient.get< + PageResult + >('/mes/dv/mainten-record-line/page', { params }); } /** 查询设备保养记录明细详情 */ export function getMaintenRecordLine(id: number) { - return requestClient.get(`/mes/dv/mainten-record-line/get?id=${id}`); + return requestClient.get( + `/mes/dv/mainten-record-line/get?id=${id}`, + ); } /** 新增设备保养记录明细 */ -export function createMaintenRecordLine(data: MesDvMaintenRecordLineApi.MaintenRecordLine) { +export function createMaintenRecordLine( + data: MesDvMaintenRecordLineApi.MaintenRecordLine, +) { return requestClient.post('/mes/dv/mainten-record-line/create', data); } /** 修改设备保养记录明细 */ -export function updateMaintenRecordLine(data: MesDvMaintenRecordLineApi.MaintenRecordLine) { +export function updateMaintenRecordLine( + data: MesDvMaintenRecordLineApi.MaintenRecordLine, +) { return requestClient.put('/mes/dv/mainten-record-line/update', data); } diff --git a/apps/web-antd/src/api/mes/dv/repair/index.ts b/apps/web-antd/src/api/mes/dv/repair/index.ts index 1586ae02f..45a69fcfe 100644 --- a/apps/web-antd/src/api/mes/dv/repair/index.ts +++ b/apps/web-antd/src/api/mes/dv/repair/index.ts @@ -32,12 +32,17 @@ export namespace MesDvRepairApi { /** 查询维修工单分页 */ export function getRepairPage(params: PageParam) { - return requestClient.get>('/mes/dv/repair/page', { params }); + return requestClient.get>( + '/mes/dv/repair/page', + { params }, + ); } /** 查询维修工单详情 */ export function getRepair(id: number) { - return requestClient.get(`/mes/dv/repair/get?id=${id}`); + return requestClient.get( + `/mes/dv/repair/get?id=${id}`, + ); } /** 新增维修工单 */ diff --git a/apps/web-antd/src/api/mes/dv/repair/line/index.ts b/apps/web-antd/src/api/mes/dv/repair/line/index.ts index 414b167e8..cf951c5dd 100644 --- a/apps/web-antd/src/api/mes/dv/repair/line/index.ts +++ b/apps/web-antd/src/api/mes/dv/repair/line/index.ts @@ -20,12 +20,17 @@ export namespace MesDvRepairLineApi { /** 查询维修工单行分页 */ export function getRepairLinePage(params: PageParam) { - return requestClient.get>('/mes/dv/repair-line/page', { params }); + return requestClient.get>( + '/mes/dv/repair-line/page', + { params }, + ); } /** 查询维修工单行详情 */ export function getRepairLine(id: number) { - return requestClient.get(`/mes/dv/repair-line/get?id=${id}`); + return requestClient.get( + `/mes/dv/repair-line/get?id=${id}`, + ); } /** 新增维修工单行 */ diff --git a/apps/web-antd/src/api/mes/dv/subject/index.ts b/apps/web-antd/src/api/mes/dv/subject/index.ts index 85d21e92b..b74ba0ad4 100644 --- a/apps/web-antd/src/api/mes/dv/subject/index.ts +++ b/apps/web-antd/src/api/mes/dv/subject/index.ts @@ -19,17 +19,24 @@ export namespace MesDvSubjectApi { /** 查询点检保养项目分页 */ export function getSubjectPage(params: PageParam) { - return requestClient.get>('/mes/dv/subject/page', { params }); + return requestClient.get>( + '/mes/dv/subject/page', + { params }, + ); } /** 查询点检保养项目精简列表 */ export function getSubjectSimpleList() { - return requestClient.get('/mes/dv/subject/simple-list'); + return requestClient.get( + '/mes/dv/subject/simple-list', + ); } /** 查询点检保养项目详情 */ export function getSubject(id: number) { - return requestClient.get(`/mes/dv/subject/get?id=${id}`); + return requestClient.get( + `/mes/dv/subject/get?id=${id}`, + ); } /** 新增点检保养项目 */ diff --git a/apps/web-antd/src/api/mes/md/autocode/part/index.ts b/apps/web-antd/src/api/mes/md/autocode/part/index.ts index 2962ae55e..c64684c9b 100644 --- a/apps/web-antd/src/api/mes/md/autocode/part/index.ts +++ b/apps/web-antd/src/api/mes/md/autocode/part/index.ts @@ -34,16 +34,12 @@ export function getAutoCodePartListByRuleId(ruleId: number) { } /** 新增编码规则分段 */ -export function createAutoCodePart( - data: MesMdAutoCodePartApi.AutoCodePart, -) { +export function createAutoCodePart(data: MesMdAutoCodePartApi.AutoCodePart) { return requestClient.post('/mes/md/auto-code-part/create', data); } /** 修改编码规则分段 */ -export function updateAutoCodePart( - data: MesMdAutoCodePartApi.AutoCodePart, -) { +export function updateAutoCodePart(data: MesMdAutoCodePartApi.AutoCodePart) { return requestClient.put('/mes/md/auto-code-part/update', data); } diff --git a/apps/web-antd/src/api/mes/md/autocode/rule/index.ts b/apps/web-antd/src/api/mes/md/autocode/rule/index.ts index be4d81f2f..d33e6e0fc 100644 --- a/apps/web-antd/src/api/mes/md/autocode/rule/index.ts +++ b/apps/web-antd/src/api/mes/md/autocode/rule/index.ts @@ -21,9 +21,10 @@ export namespace MesMdAutoCodeRuleApi { /** 查询编码规则分页 */ export function getAutoCodeRulePage(params: PageParam) { - return requestClient.get< - PageResult - >('/mes/md/auto-code-rule/page', { params }); + return requestClient.get>( + '/mes/md/auto-code-rule/page', + { params }, + ); } /** 查询编码规则详情 */ @@ -34,16 +35,12 @@ export function getAutoCodeRule(id: number) { } /** 新增编码规则 */ -export function createAutoCodeRule( - data: MesMdAutoCodeRuleApi.AutoCodeRule, -) { +export function createAutoCodeRule(data: MesMdAutoCodeRuleApi.AutoCodeRule) { return requestClient.post('/mes/md/auto-code-rule/create', data); } /** 修改编码规则 */ -export function updateAutoCodeRule( - data: MesMdAutoCodeRuleApi.AutoCodeRule, -) { +export function updateAutoCodeRule(data: MesMdAutoCodeRuleApi.AutoCodeRule) { return requestClient.put('/mes/md/auto-code-rule/update', data); } diff --git a/apps/web-antd/src/api/mes/md/item/batchConfig/index.ts b/apps/web-antd/src/api/mes/md/item/batchConfig/index.ts index 29b48848c..676f02f75 100644 --- a/apps/web-antd/src/api/mes/md/item/batchConfig/index.ts +++ b/apps/web-antd/src/api/mes/md/item/batchConfig/index.ts @@ -30,8 +30,6 @@ export function getBatchConfigByItemId(itemId: number) { } /** 保存批次属性配置 */ -export function saveBatchConfig( - data: MesMdItemBatchConfigApi.BatchConfig, -) { +export function saveBatchConfig(data: MesMdItemBatchConfigApi.BatchConfig) { return requestClient.post('/mes/md/item-batch-config/save', data); } diff --git a/apps/web-antd/src/api/mes/md/unitmeasure/index.ts b/apps/web-antd/src/api/mes/md/unitmeasure/index.ts index 5556a022a..d90cc19c3 100644 --- a/apps/web-antd/src/api/mes/md/unitmeasure/index.ts +++ b/apps/web-antd/src/api/mes/md/unitmeasure/index.ts @@ -56,5 +56,7 @@ export function deleteUnitMeasure(id: number) { /** 导出计量单位 */ export function exportUnitMeasure(params: PageParam) { - return requestClient.download('/mes/md/unit-measure/export-excel', { params }); + return requestClient.download('/mes/md/unit-measure/export-excel', { + params, + }); } diff --git a/apps/web-antd/src/api/mes/tm/tool/index.ts b/apps/web-antd/src/api/mes/tm/tool/index.ts index 80881aad3..05bed4940 100644 --- a/apps/web-antd/src/api/mes/tm/tool/index.ts +++ b/apps/web-antd/src/api/mes/tm/tool/index.ts @@ -25,7 +25,9 @@ export namespace MesTmToolApi { /** 查询工具台账分页 */ export function getToolPage(params: PageParam) { - return requestClient.get>('/mes/tm/tool/page', { params }); + return requestClient.get>('/mes/tm/tool/page', { + params, + }); } /** 查询工具精简列表 */ diff --git a/apps/web-antd/src/api/mes/tm/tool/type/index.ts b/apps/web-antd/src/api/mes/tm/tool/type/index.ts index 7ef6b2c59..319f85f03 100644 --- a/apps/web-antd/src/api/mes/tm/tool/type/index.ts +++ b/apps/web-antd/src/api/mes/tm/tool/type/index.ts @@ -18,17 +18,24 @@ export namespace MesTmToolTypeApi { /** 查询工具类型分页 */ export function getToolTypePage(params: PageParam) { - return requestClient.get>('/mes/tm/tool-type/page', { params }); + return requestClient.get>( + '/mes/tm/tool-type/page', + { params }, + ); } /** 查询工具类型精简列表 */ export function getToolTypeSimpleList() { - return requestClient.get('/mes/tm/tool-type/simple-list'); + return requestClient.get( + '/mes/tm/tool-type/simple-list', + ); } /** 查询工具类型详情 */ export function getToolType(id: number) { - return requestClient.get(`/mes/tm/tool-type/get?id=${id}`); + return requestClient.get( + `/mes/tm/tool-type/get?id=${id}`, + ); } /** 新增工具类型 */ diff --git a/apps/web-antd/src/layouts/basic.vue b/apps/web-antd/src/layouts/basic.vue index e8715a895..17643627d 100644 --- a/apps/web-antd/src/layouts/basic.vue +++ b/apps/web-antd/src/layouts/basic.vue @@ -23,7 +23,7 @@ import { TenantDropdown, UserDropdown, } from '@vben/layouts'; -import { preferences } from '@vben/preferences'; +import { preferences, usePreferences } from '@vben/preferences'; import { useAccessStore, useUserStore } from '@vben/stores'; import { formatDateTime, openWindow } from '@vben/utils'; @@ -55,6 +55,7 @@ const showDot = computed(() => unreadCount.value > 0); const [HelpModal, helpModalApi] = useVbenModal({ connectedComponent: Help, }); +const { isDark } = usePreferences(); const menus = computed(() => [ { @@ -201,14 +202,57 @@ onMounted(() => { ); }); +const handleClick = (item: NotificationItem) => { + // 如果通知项有链接,点击时跳转 + if (item.link) { + navigateTo(item.link, item.query, item.state); + } +}; + +function navigateTo( + link: string, + query?: Record, + state?: Record, +) { + if (link.startsWith('http://') || link.startsWith('https://')) { + // 外部链接,在新标签页打开 + window.open(link, '_blank'); + } else { + // 内部路由链接,支持 query 参数和 state + router.push({ + path: link, + query: query || {}, + state, + }); + } +} + watch( () => ({ enable: preferences.app.watermark, content: preferences.app.watermarkContent, + isDark: isDark.value, }), - async ({ enable, content }) => { + async ({ enable, content, isDark: isDarkValue }) => { if (enable) { + const watermarkColor = isDarkValue + ? 'rgba(255, 255, 255, 0.12)' + : 'rgba(0, 0, 0, 0.12)'; + await updateWatermark({ + advancedStyle: { + colorStops: [ + { + color: watermarkColor, + offset: 0, + }, + { + color: watermarkColor, + offset: 1, + }, + ], + type: 'linear', + }, content: content || `${userStore.userInfo?.id} - ${userStore.userInfo?.nickname}`, @@ -233,6 +277,7 @@ watch( :description="userStore.userInfo?.email" :tag-text="userStore.userInfo?.username" @logout="handleLogout" + @clear-preferences-and-logout="handleLogout" />