Skip to content

Commit 7f39500

Browse files
committed
# Conflicts: # src/api/infra/codegen/index.ts # src/views/system/sensitiveWord/index.vue
2 parents d26e097 + 95a51ce commit 7f39500

39 files changed

+1700
-318
lines changed

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@
137137
"url": "https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues"
138138
},
139139
"homepage": "https://gitee.com/yudaocode/yudao-ui-admin-vue3",
140-
"packageManager": "[email protected]",
141140
"engines": {
142141
"node": ">= 16.0.0",
143142
"pnpm": ">=8.6.0"

src/api/crm/statistics/customer.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,18 @@ export interface CrmStatisticsCustomerDealCycleByUserRespVO {
6767
customerDealCount: number
6868
}
6969

70+
export interface CrmStatisticsCustomerDealCycleByAreaRespVO {
71+
areaName: string
72+
customerDealCycle: number
73+
customerDealCount: number
74+
}
75+
76+
export interface CrmStatisticsCustomerDealCycleByProductRespVO {
77+
productName: string
78+
customerDealCycle: number
79+
customerDealCount: number
80+
}
81+
7082
// 客户分析 API
7183
export const StatisticsCustomerApi = {
7284
// 1.1 客户总量分析(按日期)
@@ -138,5 +150,19 @@ export const StatisticsCustomerApi = {
138150
url: '/crm/statistics-customer/get-customer-deal-cycle-by-user',
139151
params
140152
})
153+
},
154+
// 6.2 获取客户成交周期(按用户)
155+
getCustomerDealCycleByArea: (params: any) => {
156+
return request.get({
157+
url: '/crm/statistics-customer/get-customer-deal-cycle-by-area',
158+
params
159+
})
160+
},
161+
// 6.2 获取客户成交周期(按用户)
162+
getCustomerDealCycleByProduct: (params: any) => {
163+
return request.get({
164+
url: '/crm/statistics-customer/get-customer-deal-cycle-by-product',
165+
params
166+
})
141167
}
142168
}

src/api/crm/statistics/funnel.ts

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import request from '@/config/axios'
2+
3+
export interface CrmStatisticFunnelRespVO {
4+
customerCount: number // 客户数
5+
businessCount: number // 商机数
6+
businessWinCount: number // 赢单数
7+
}
8+
9+
export interface CrmStatisticsBusinessSummaryByDateRespVO {
10+
time: string // 时间
11+
businessCreateCount: number // 商机数
12+
totalPrice: number | string // 商机金额
13+
}
14+
15+
export interface CrmStatisticsBusinessInversionRateSummaryByDateRespVO {
16+
time: string // 时间
17+
businessCount: number // 商机数量
18+
businessWinCount: number // 赢单商机数
19+
}
20+
21+
// 客户分析 API
22+
export const StatisticFunnelApi = {
23+
// 1. 获取销售漏斗统计数据
24+
getFunnelSummary: (params: any) => {
25+
return request.get({
26+
url: '/crm/statistics-funnel/get-funnel-summary',
27+
params
28+
})
29+
},
30+
// 2. 获取商机结束状态统计
31+
getBusinessSummaryByEndStatus: (params: any) => {
32+
return request.get({
33+
url: '/crm/statistics-funnel/get-business-summary-by-end-status',
34+
params
35+
})
36+
},
37+
// 3. 获取新增商机分析(按日期)
38+
getBusinessSummaryByDate: (params: any) => {
39+
return request.get({
40+
url: '/crm/statistics-funnel/get-business-summary-by-date',
41+
params
42+
})
43+
},
44+
// 4. 获取商机转化率分析(按日期)
45+
getBusinessInversionRateSummaryByDate: (params: any) => {
46+
return request.get({
47+
url: '/crm/statistics-funnel/get-business-inversion-rate-summary-by-date',
48+
params
49+
})
50+
},
51+
// 5. 获取商机列表(按日期)
52+
getBusinessPageByDate: (params: any) => {
53+
return request.get({
54+
url: '/crm/statistics-funnel/get-business-page-by-date',
55+
params
56+
})
57+
}
58+
}

src/api/infra/codegen/index.ts

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
import request from '@/config/axios'
2+
3+
export type CodegenTableVO = {
4+
id: number
5+
tableId: number
6+
isParentMenuIdValid: boolean
7+
dataSourceConfigId: number
8+
scene: number
9+
tableName: string
10+
tableComment: string
11+
remark: string
12+
moduleName: string
13+
businessName: string
14+
className: string
15+
classComment: string
16+
author: string
17+
createTime: Date
18+
updateTime: Date
19+
templateType: number
20+
parentMenuId: number
21+
}
22+
23+
export type CodegenColumnVO = {
24+
id: number
25+
tableId: number
26+
columnName: string
27+
dataType: string
28+
columnComment: string
29+
nullable: number
30+
primaryKey: number
31+
ordinalPosition: number
32+
javaType: string
33+
javaField: string
34+
dictType: string
35+
example: string
36+
createOperation: number
37+
updateOperation: number
38+
listOperation: number
39+
listOperationCondition: string
40+
listOperationResult: number
41+
htmlType: string
42+
}
43+
44+
export type DatabaseTableVO = {
45+
name: string
46+
comment: string
47+
}
48+
49+
export type CodegenDetailVO = {
50+
table: CodegenTableVO
51+
columns: CodegenColumnVO[]
52+
}
53+
54+
export type CodegenPreviewVO = {
55+
filePath: string
56+
code: string
57+
}
58+
59+
export type CodegenUpdateReqVO = {
60+
table: CodegenTableVO | any
61+
columns: CodegenColumnVO[]
62+
}
63+
64+
export type CodegenCreateListReqVO = {
65+
dataSourceConfigId: number
66+
tableNames: string[]
67+
}
68+
69+
// 查询列表代码生成表定义
70+
export const getCodegenTableList = (dataSourceConfigId: number) => {
71+
return request.get({ url: '/infra/codegen/table/list?dataSourceConfigId=' + dataSourceConfigId })
72+
}
73+
74+
// 查询列表代码生成表定义
75+
export const getCodegenTablePage = (params: PageParam) => {
76+
return request.get({ url: '/infra/codegen/table/page', params })
77+
}
78+
79+
// 查询详情代码生成表定义
80+
export const getCodegenTable = (id: number) => {
81+
return request.get({ url: '/infra/codegen/detail?tableId=' + id })
82+
}
83+
84+
// 新增代码生成表定义
85+
export const createCodegenTable = (data: CodegenCreateListReqVO) => {
86+
return request.post({ url: '/infra/codegen/create', data })
87+
}
88+
89+
// 修改代码生成表定义
90+
export const updateCodegenTable = (data: CodegenUpdateReqVO) => {
91+
return request.put({ url: '/infra/codegen/update', data })
92+
}
93+
94+
// 基于数据库的表结构,同步数据库的表和字段定义
95+
export const syncCodegenFromDB = (id: number) => {
96+
return request.put({ url: '/infra/codegen/sync-from-db?tableId=' + id })
97+
}
98+
99+
// 预览生成代码
100+
export const previewCodegen = (id: number) => {
101+
return request.get({ url: '/infra/codegen/preview?tableId=' + id })
102+
}
103+
104+
// 下载生成代码
105+
export const downloadCodegen = (id: number) => {
106+
return request.download({ url: '/infra/codegen/download?tableId=' + id })
107+
}
108+
109+
// 获得表定义
110+
export const getSchemaTableList = (params) => {
111+
return request.get({ url: '/infra/codegen/db/table/list', params })
112+
}
113+
114+
// 基于数据库的表结构,创建代码生成器的表定义
115+
export const createCodegenList = (data) => {
116+
return request.post({ url: '/infra/codegen/create-list', data })
117+
}
118+
119+
// 删除代码生成表定义
120+
export const deleteCodegenTable = (id: number) => {
121+
return request.delete({ url: '/infra/codegen/delete?tableId=' + id })
122+
}

src/components/DictSelect/src/DictSelect.vue

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import { getBoolDictOptions, getIntDictOptions, getStrDictOptions } from '@/util
3333
3434
// 接受父组件参数
3535
interface Props {
36-
modelValue?: any //
3736
dictType: string // 字典类型
3837
valueType: string // 字典值类型
3938
}

src/components/FormCreate/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import MyFormCreateDesigner from './src/MyFormCreateDesigner.vue'
21
import { useFormCreateDesigner } from './src/useFormCreateDesigner'
32

4-
export { MyFormCreateDesigner, useFormCreateDesigner }
3+
export { useFormCreateDesigner }

src/components/FormCreate/src/MyFormCreateDesigner.vue

Lines changed: 0 additions & 33 deletions
This file was deleted.

src/components/FormCreate/src/config/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ import { useUploadImgRule } from './useUploadImgRule'
33
import { useUploadImgsRule } from './useUploadImgsRule'
44
import { useDictSelectRule } from './useDictSelectRule'
55
import { useUserSelectRule } from './useUserSelectRule'
6+
import { useEditorRule } from './useEditorRule'
67

78
export {
89
useUploadFileRule,
910
useUploadImgRule,
1011
useUploadImgsRule,
1112
useDictSelectRule,
12-
useUserSelectRule
13+
useUserSelectRule,
14+
useEditorRule
1315
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
const selectRule = [
2+
{ type: 'switch', field: 'multiple', title: '是否多选' },
3+
{
4+
type: 'switch',
5+
field: 'disabled',
6+
title: '是否禁用'
7+
},
8+
{ type: 'switch', field: 'clearable', title: '是否可以清空选项' },
9+
{
10+
type: 'switch',
11+
field: 'collapseTags',
12+
title: '多选时是否将选中值按文字的形式展示'
13+
},
14+
{
15+
type: 'inputNumber',
16+
field: 'multipleLimit',
17+
title: '多选时用户最多可以选择的项目数,为 0 则不限制',
18+
props: { min: 0 }
19+
},
20+
{
21+
type: 'input',
22+
field: 'autocomplete',
23+
title: 'autocomplete 属性'
24+
},
25+
{ type: 'input', field: 'placeholder', title: '占位符' },
26+
{
27+
type: 'switch',
28+
field: 'filterable',
29+
title: '是否可搜索'
30+
},
31+
{ type: 'switch', field: 'allowCreate', title: '是否允许用户创建新条目' },
32+
{
33+
type: 'input',
34+
field: 'noMatchText',
35+
title: '搜索条件无匹配时显示的文字'
36+
},
37+
{
38+
type: 'switch',
39+
field: 'remote',
40+
title: '其中的选项是否从服务器远程加载'
41+
},
42+
{
43+
type: 'Struct',
44+
field: 'remoteMethod',
45+
title: '自定义远程搜索方法'
46+
},
47+
{ type: 'input', field: 'noDataText', title: '选项为空时显示的文字' },
48+
{
49+
type: 'switch',
50+
field: 'reserveKeyword',
51+
title: '多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词'
52+
},
53+
{
54+
type: 'switch',
55+
field: 'defaultFirstOption',
56+
title: '在输入框按下回车,选择第一个匹配项'
57+
},
58+
{
59+
type: 'switch',
60+
field: 'popperAppendToBody',
61+
title: '是否将弹出框插入至 body 元素',
62+
value: true
63+
},
64+
{
65+
type: 'switch',
66+
field: 'automaticDropdown',
67+
title: '对于不可搜索的 Select,是否在输入框获得焦点后自动弹出选项菜单'
68+
}
69+
]
70+
71+
export default selectRule

0 commit comments

Comments
 (0)