diff --git a/src/api/infra/fileConfig/index.ts b/src/api/infra/fileConfig/index.ts index e88f825f162643e3938eafc55ba19f62e1c03af4..cd1dbe6ca6681bd9b8fba0ec8b495f5a04ce86b9 100644 --- a/src/api/infra/fileConfig/index.ts +++ b/src/api/infra/fileConfig/index.ts @@ -13,6 +13,7 @@ export interface FileClientConfig { accessSecret?: string enablePathStyleAccess?: boolean enablePublicAccess?: boolean + region?: string domain: string } diff --git a/src/api/system/shortlink/index.ts b/src/api/system/shortlink/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..c578f86fad54e87173ae90c5802574e8ed5ae897 --- /dev/null +++ b/src/api/system/shortlink/index.ts @@ -0,0 +1,145 @@ +import request from '@/config/axios' + +export interface ShortLinkVO { + id?: number + originalUrl: string + shortCode?: string + shortUrl?: string + title?: string + description?: string + expireTime?: number + status?: boolean + forever?: boolean + clickCount?: number + createTime?: Date + updateTime?: Date +} + +export interface ShortLinkPageReqVO extends PageParam { + originalUrl?: string + shortCode?: string + title?: string + status?: boolean + createTime?: Date[] +} + +export interface ShortLinkStatisticsVO { + id: number + shortCode: string + originalUrl: string + title: string + clickCount: number + todayClickCount: number + weekClickCount: number + monthClickCount: number + lastClickTime?: Date +} + +export interface ShortLinkClickLogVO { + id: number + shortCode: string + clickTime: Date + userIp: string + userAgent: string + referer?: string + country?: string + province?: string + city?: string +} + +export interface ShortLinkClickLogPageReqVO extends PageParam { + shortCode?: string + userIp?: string + clickTime?: Date[] +} + +// 查询短链列表 +export const getShortLinkPage = async (params: ShortLinkPageReqVO) => { + return await request.get({ url: `/system/short-link/page`, params }) +} + +// 查询短链详情 +export const getShortLink = async (id: number) => { + return await request.get({ url: `/system/short-link/get?id=` + id }) +} + +// 新增短链 +export const createShortLink = async (data: ShortLinkVO) => { + return await request.post({ url: `/system/short-link/create`, data }) +} + +// 修改短链 +export const updateShortLink = async (data: ShortLinkVO) => { + return await request.put({ url: `/system/short-link/update`, data }) +} + +// 删除短链 +export const deleteShortLink = async (id: number) => { + return await request.delete({ url: `/system/short-link/delete?id=` + id }) +} + +// 批量删除短链 +export const deleteShortLinkBatch = async (ids: number[]) => { + return await request.delete({ url: `/system/short-link/delete-batch`, data: ids }) +} + +// 更新短链状态 +export const updateShortLinkStatus = async (id: number, status: boolean) => { + const v = status ? 1 : 0 + return await request.put({ url: `/system/short-link/update-status?id=` + id + `&status=` + v }) +} + +// 导出短链 Excel +export const exportShortLink = async (params: ShortLinkPageReqVO) => { + return await request.download({ url: `/system/short-link/export-excel`, params }) +} + +// 批量生成短链 +export const batchCreateShortLink = async (urls: string[]) => { + return await request.post({ url: `/system/short-link/batch-create`, data: { urls } }) +} + +// 获取短链访问日志分页 +export const getShortLinkAccessLogPage = async (params: ShortLinkClickLogPageReqVO) => { + return await request.get({ url: `/system/short-link/access-log/page`, params }) +} + +// 获取短链主域名 +export const getShortLinkDomain = async () => { + return await request.get({ url: `/system/short-link/domain` }) +} + +// 修改短链主域名 +export const updateShortLinkDomain = async (newDomain: string) => { + return await request.put({ url: `/system/short-link/domain`, params: { newDomain } }) +} + +// 获取短链概览统计 +export const getShortLinkOverviewStats = async (params: { startTime?: string; endTime?: string }) => { + return await request.get({ url: `/system/short-link/statistics/overview`, params }) +} + +// 获取短链趋势统计 +export const getShortLinkTrendStats = async (days: number) => { + return await request.get({ url: `/system/short-link/statistics/trend`, params: { days } }) +} + +// 获取短链状态分布统计 +export const getShortLinkStatusStats = async () => { + return await request.get({ url: `/system/short-link/statistics/status` }) +} + +// 获取短链地域访问统计 +export const getShortLinkRegionStats = async (params: { startTime?: string; endTime?: string }) => { + return await request.get({ url: `/system/short-link/statistics/region`, params }) +} + +// 获取短链设备类型统计 +export const getShortLinkDeviceStats = async (params: { startTime?: string; endTime?: string }) => { + return await request.get({ url: `/system/short-link/statistics/device`, params }) +} + +// 获取短链访问时段统计 +export const getShortLinkHourStats = async (date?: string) => { + return await request.get({ url: `/system/short-link/statistics/hour`, params: { date } }) +} diff --git a/src/api/system/social/client/index.ts b/src/api/system/social/client/index.ts index bf13ab49f30518d39553c2256703f4fff8f5451c..32398229612704e4c1d2a2d322098481bbd3c135 100644 --- a/src/api/system/social/client/index.ts +++ b/src/api/system/social/client/index.ts @@ -8,6 +8,7 @@ export interface SocialClientVO { clientId: string clientSecret: string agentId: string + publicKey: string status: number } diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js b/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js index 126838717a3cd46a2cbdaafbb9bf2f38fd6d8a43..788e4d163f9204814f2e8c4713e4fd4e4aba4f8c 100644 --- a/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js +++ b/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js @@ -89,7 +89,6 @@ F.prototype.getPaletteEntries = function () { create.start(event, elementFactory.createParticipantShape()) } - assign(actions, { 'hand-tool': { group: 'tools', diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js b/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js index 8a5858887435ac235f6a7ecb56917c9d526104da..304875cedf18f65dda714f56a3e368df78e239bc 100644 --- a/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js +++ b/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js @@ -96,7 +96,6 @@ PaletteProvider.prototype.getPaletteEntries = function () { create.start(event, elementFactory.createParticipantShape()) } - assign(actions, { 'hand-tool': { group: 'tools', diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index 794778cad18ed8850aa9694b585eac503305138f..775c873b02de8b679d2a1ff8b9d77b47b26db51e 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -50,6 +50,29 @@ const remainingRouter: AppRouteRecordRaw[] = [ noTagsView: true } }, + { + path: '/system', + component: Layout, + name: 'SystemHidden', + meta: { + hidden: true + }, + children: [ + { + path: 'shortlink/statistics', + component: () => import('@/views/system/shortlink/statistics.vue'), + name: 'SystemShortLinkStatistics', + meta: { + noCache: true, + hidden: true, + canTo: true, + icon: 'ep:data-analysis', + title: '短链统计', + activeMenu: '/system/shortlink' + } + } + ] + }, { path: '/', component: Layout, diff --git a/src/views/bpm/processInstance/detail/PrintDialog.vue b/src/views/bpm/processInstance/detail/PrintDialog.vue index ab17f8c0ffef2a5141538f2d62faef84876aabba..fb8cd8bcb33e9eeddbffd71a6b9a4d2a48398543 100644 --- a/src/views/bpm/processInstance/detail/PrintDialog.vue +++ b/src/views/bpm/processInstance/detail/PrintDialog.vue @@ -30,7 +30,11 @@ const open = async (id: string) => { defineExpose({ open }) const parseFormFields = () => { - const formFieldsObj = decodeFields(printData.value.processInstance.processDefinition.formFields) + if (!printData.value) return + + const formFieldsObj = decodeFields( + printData.value.processInstance.processDefinition?.formFields || [] + ) const processVariables = printData.value.processInstance.formVariables let res: any = [] for (const item of formFieldsObj) { diff --git a/src/views/infra/fileConfig/FileConfigForm.vue b/src/views/infra/fileConfig/FileConfigForm.vue index 1b774ca65549ebf0f0026515897fef246b0e858b..34691d924a6e345e878e81357ccf8bcff04b463f 100644 --- a/src/views/infra/fileConfig/FileConfigForm.vue +++ b/src/views/infra/fileConfig/FileConfigForm.vue @@ -103,6 +103,10 @@ 私有 + + + + diff --git a/src/views/system/shortlink/AccessLogDialog.vue b/src/views/system/shortlink/AccessLogDialog.vue new file mode 100644 index 0000000000000000000000000000000000000000..91fdd2798e0bc2e9be6e41bf1a2819d2423a5ba8 --- /dev/null +++ b/src/views/system/shortlink/AccessLogDialog.vue @@ -0,0 +1,139 @@ + + + diff --git a/src/views/system/shortlink/BatchCreateDialog.vue b/src/views/system/shortlink/BatchCreateDialog.vue new file mode 100644 index 0000000000000000000000000000000000000000..a156034fd535615302248a048a6e840349fc4871 --- /dev/null +++ b/src/views/system/shortlink/BatchCreateDialog.vue @@ -0,0 +1,231 @@ + + + \ No newline at end of file diff --git a/src/views/system/shortlink/DomainDialog.vue b/src/views/system/shortlink/DomainDialog.vue new file mode 100644 index 0000000000000000000000000000000000000000..53b967b2f66f8ea4f183f3480a39c6fe76fc21bd --- /dev/null +++ b/src/views/system/shortlink/DomainDialog.vue @@ -0,0 +1,51 @@ + + + diff --git a/src/views/system/shortlink/ShortLinkForm.vue b/src/views/system/shortlink/ShortLinkForm.vue new file mode 100644 index 0000000000000000000000000000000000000000..73476f647a84e560622c980ec29657b7c5f79a60 --- /dev/null +++ b/src/views/system/shortlink/ShortLinkForm.vue @@ -0,0 +1,195 @@ + + + diff --git a/src/views/system/shortlink/StatisticsDialog.vue b/src/views/system/shortlink/StatisticsDialog.vue new file mode 100644 index 0000000000000000000000000000000000000000..4341ba3313ec1a0d1329f642d81ce7a2c02e92b8 --- /dev/null +++ b/src/views/system/shortlink/StatisticsDialog.vue @@ -0,0 +1,403 @@ + + + + + \ No newline at end of file diff --git a/src/views/system/shortlink/index.vue b/src/views/system/shortlink/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..29c6e123589db69f5334af5b07b91cc7a7764dfd --- /dev/null +++ b/src/views/system/shortlink/index.vue @@ -0,0 +1,349 @@ + + + diff --git a/src/views/system/shortlink/statistics.vue b/src/views/system/shortlink/statistics.vue new file mode 100644 index 0000000000000000000000000000000000000000..2a50ac4c92e6ecb1682daef8a3bf09a3ab64e8e6 --- /dev/null +++ b/src/views/system/shortlink/statistics.vue @@ -0,0 +1,317 @@ + + + + + + diff --git a/src/views/system/social/client/SocialClientForm.vue b/src/views/system/social/client/SocialClientForm.vue index cbfe195b509d0767da958b377c81a1d36b9b4631..dd83bb4183d5bed0b198172cd567183afc9cb11b 100644 --- a/src/views/system/social/client/SocialClientForm.vue +++ b/src/views/system/social/client/SocialClientForm.vue @@ -44,6 +44,9 @@ + + + { userType: undefined, clientId: undefined, clientSecret: undefined, + publicKey: undefined, agentId: undefined, status: 0 }