From 2700b08c6978dc2f921b4b4f8088e315dc7e8084 Mon Sep 17 00:00:00 2001 From: ljlleo Date: Fri, 24 Nov 2023 14:21:21 +0800 Subject: [PATCH 01/64] =?UTF-8?q?=E5=95=86=E6=9C=BA=E3=80=81=E5=95=86?= =?UTF-8?q?=E6=9C=BA=E7=8A=B6=E6=80=81=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/crm/business/index.ts | 52 ++++ src/api/crm/businessStatusType/index.ts | 48 +++ src/views/crm/business/BusinessForm.vue | 281 ++++++++++++++++++ src/views/crm/business/index.vue | 207 +++++++++++++ .../BusinessStatusTypeForm.vue | 173 +++++++++++ src/views/crm/businessStatusType/index.vue | 171 +++++++++++ 6 files changed, 932 insertions(+) create mode 100644 src/api/crm/business/index.ts create mode 100644 src/api/crm/businessStatusType/index.ts create mode 100644 src/views/crm/business/BusinessForm.vue create mode 100644 src/views/crm/business/index.vue create mode 100644 src/views/crm/businessStatusType/BusinessStatusTypeForm.vue create mode 100644 src/views/crm/businessStatusType/index.vue diff --git a/src/api/crm/business/index.ts b/src/api/crm/business/index.ts new file mode 100644 index 00000000..89cd871f --- /dev/null +++ b/src/api/crm/business/index.ts @@ -0,0 +1,52 @@ +import request from '@/config/axios' + +export interface BusinessVO { + id: number + name: string + statusTypeId: number + statusId: number + contactNextTime: Date + customerId: number + dealTime: Date + price: number + discountPercent: number + productPrice: number + remark: string + ownerUserId: number + roUserIds: string + rwUserIds: string + endStatus: number + endRemark: string + contactLastTime: Date + followUpStatus: number +} + +// 查询商机列表 +export const getBusinessPage = async (params) => { + return await request.get({ url: `/crm/business/page`, params }) +} + +// 查询商机详情 +export const getBusiness = async (id: number) => { + return await request.get({ url: `/crm/business/get?id=` + id }) +} + +// 新增商机 +export const createBusiness = async (data: BusinessVO) => { + return await request.post({ url: `/crm/business/create`, data }) +} + +// 修改商机 +export const updateBusiness = async (data: BusinessVO) => { + return await request.put({ url: `/crm/business/update`, data }) +} + +// 删除商机 +export const deleteBusiness = async (id: number) => { + return await request.delete({ url: `/crm/business/delete?id=` + id }) +} + +// 导出商机 Excel +export const exportBusiness = async (params) => { + return await request.download({ url: `/crm/business/export-excel`, params }) +} diff --git a/src/api/crm/businessStatusType/index.ts b/src/api/crm/businessStatusType/index.ts new file mode 100644 index 00000000..cc4b46aa --- /dev/null +++ b/src/api/crm/businessStatusType/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +export interface BusinessStatusTypeVO { + id: number + name: string + deptIds: number[] + status: boolean +} + +// 查询商机状态类型列表 +export const getBusinessStatusTypePage = async (params) => { + return await request.get({ url: `/crm/business-status-type/page`, params }) +} + +// 查询商机状态类型详情 +export const getBusinessStatusType = async (id: number) => { + return await request.get({ url: `/crm/business-status-type/get?id=` + id }) +} + +// 新增商机状态类型 +export const createBusinessStatusType = async (data: BusinessStatusTypeVO) => { + return await request.post({ url: `/crm/business-status-type/create`, data }) +} + +// 修改商机状态类型 +export const updateBusinessStatusType = async (data: BusinessStatusTypeVO) => { + return await request.put({ url: `/crm/business-status-type/update`, data }) +} + +// 删除商机状态类型 +export const deleteBusinessStatusType = async (id: number) => { + return await request.delete({ url: `/crm/business-status-type/delete?id=` + id }) +} + +// 导出商机状态类型 Excel +export const exportBusinessStatusType = async (params) => { + return await request.download({ url: `/crm/business-status-type/export-excel`, params }) +} + +// 获取商机状态类型信息列表 +export const getBusinessStatusTypeList = async () => { + return await request.get({ url: `/crm/business-status-type/get-simple-list` }) +} + +// 根据类型ID获取商机状态信息列表 +export const getBusinessStatusListByTypeId = async (typeId: number) => { + return await request.get({ url: `/crm/business-status-type/get-status-list?typeId=` + typeId }) +} diff --git a/src/views/crm/business/BusinessForm.vue b/src/views/crm/business/BusinessForm.vue new file mode 100644 index 00000000..04f1cf5d --- /dev/null +++ b/src/views/crm/business/BusinessForm.vue @@ -0,0 +1,281 @@ + + diff --git a/src/views/crm/business/index.vue b/src/views/crm/business/index.vue new file mode 100644 index 00000000..c1c63fa1 --- /dev/null +++ b/src/views/crm/business/index.vue @@ -0,0 +1,207 @@ + + + diff --git a/src/views/crm/businessStatusType/BusinessStatusTypeForm.vue b/src/views/crm/businessStatusType/BusinessStatusTypeForm.vue new file mode 100644 index 00000000..2ba71128 --- /dev/null +++ b/src/views/crm/businessStatusType/BusinessStatusTypeForm.vue @@ -0,0 +1,173 @@ + + diff --git a/src/views/crm/businessStatusType/index.vue b/src/views/crm/businessStatusType/index.vue new file mode 100644 index 00000000..7b2725f3 --- /dev/null +++ b/src/views/crm/businessStatusType/index.vue @@ -0,0 +1,171 @@ + + + From b95b8008f7356aac7c57a0548e1e7d6c605bf987 Mon Sep 17 00:00:00 2001 From: Marvin <454846659@qq.com> Date: Sat, 25 Nov 2023 03:52:59 +0800 Subject: [PATCH 02/64] =?UTF-8?q?feat:=20=E8=8F=9C=E5=8D=95=E5=8F=B3?= =?UTF-8?q?=E4=B8=8A=E8=A7=92=E5=8A=A0=E4=B8=80=E4=B8=AA=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/RouterSearch/index.vue | 32 ++++++++++++++++++++++++++- src/layout/components/ToolHeader.vue | 5 +++++ src/store/modules/app.ts | 2 ++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/components/RouterSearch/index.vue b/src/components/RouterSearch/index.vue index c12385af..2499dafe 100644 --- a/src/components/RouterSearch/index.vue +++ b/src/components/RouterSearch/index.vue @@ -1,5 +1,5 @@ + + diff --git a/src/components/DiyEditor/components/mobile/PromotionArticle/property.vue b/src/components/DiyEditor/components/mobile/PromotionArticle/property.vue new file mode 100644 index 00000000..c3bcb21b --- /dev/null +++ b/src/components/DiyEditor/components/mobile/PromotionArticle/property.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/src/components/DiyEditor/util.ts b/src/components/DiyEditor/util.ts index a8d0e095..2eb10f92 100644 --- a/src/components/DiyEditor/util.ts +++ b/src/components/DiyEditor/util.ts @@ -116,6 +116,6 @@ export const PAGE_LIBS = [ { name: '营销组件', extended: true, - components: ['CombinationCard', 'SeckillCard', 'PointCard', 'CouponCard'] + components: ['CombinationCard', 'SeckillCard', 'PointCard', 'CouponCard', 'PromotionArticle'] } ] as DiyComponentLibrary[] From c2e8eaed605ab44af5c3f960288e4c4d1b25230f Mon Sep 17 00:00:00 2001 From: Marvin <454846659@qq.com> Date: Sat, 25 Nov 2023 22:56:31 +0800 Subject: [PATCH 06/64] =?UTF-8?q?feat:=20=E6=96=87=E4=BB=B6=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=A2=9E=E5=8A=A0=E5=9B=BE=E7=89=87=E7=9A=84=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E5=92=8C=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/infra/file/index.vue | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/views/infra/file/index.vue b/src/views/infra/file/index.vue index a3aa7db6..16c2e223 100644 --- a/src/views/infra/file/index.vue +++ b/src/views/infra/file/index.vue @@ -50,7 +50,17 @@ - + + + Date: Sun, 26 Nov 2023 12:02:08 +0000 Subject: [PATCH 07/64] =?UTF-8?q?!334=20feat:=20=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=20review=20=E4=BF=AE=E6=94=B9=20*=20feat:=20?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E9=85=8D=E7=BD=AE=20review=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20*=20feat:=20=E5=AE=A2=E6=88=B7=E9=85=8D=E7=BD=AE=20?= =?UTF-8?q?review=20=E4=BF=AE=E6=94=B9=20*=20feat:=20=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=20review=20=E4=BF=AE=E6=94=B9=20*=20feat:=20?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E9=85=8D=E7=BD=AE=20review=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20*=20feat:=20=E5=AE=A2=E6=88=B7=E9=85=8D=E7=BD=AE=20?= =?UTF-8?q?review=20=E4=BF=AE=E6=94=B9=20*=20feat:=20=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=20review=20=E4=BF=AE=E6=94=B9=20*=20feat:=20?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E9=85=8D=E7=BD=AE=20review=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/crm/customerLimitConfig/index.ts | 14 +++ .../index.ts | 5 +- src/views/crm/clue/ClueForm.vue | 18 +++- .../CustomerLimitConfigForm.vue | 2 +- .../CustomerLimitConfigList.vue} | 18 ++-- .../customerLimitConfig.ts | 4 + .../crm/config/customerLimitConfig/index.vue | 19 +++++ .../customerPoolConfig}/index.vue | 52 ++++++------ .../customer/detail/CustomerDetailsTop.vue | 85 +++++++++++++++++++ src/views/crm/customer/detail/index.vue | 74 +--------------- .../customerLimitConfig/customerLimitConf.ts | 14 --- src/views/crm/customerLimitConfig/index.vue | 20 ----- 12 files changed, 181 insertions(+), 144 deletions(-) rename src/api/crm/{customerPoolConf => customerPoolConfig}/index.ts (67%) rename src/views/crm/{ => config}/customerLimitConfig/CustomerLimitConfigForm.vue (98%) rename src/views/crm/{customerLimitConfig/CustomerLimitConfDetails.vue => config/customerLimitConfig/CustomerLimitConfigList.vue} (87%) create mode 100644 src/views/crm/config/customerLimitConfig/customerLimitConfig.ts create mode 100644 src/views/crm/config/customerLimitConfig/index.vue rename src/views/crm/{customerPoolConf => config/customerPoolConfig}/index.vue (70%) create mode 100644 src/views/crm/customer/detail/CustomerDetailsTop.vue delete mode 100644 src/views/crm/customerLimitConfig/customerLimitConf.ts delete mode 100644 src/views/crm/customerLimitConfig/index.vue diff --git a/src/api/crm/customerLimitConfig/index.ts b/src/api/crm/customerLimitConfig/index.ts index 22fde3ea..86776326 100644 --- a/src/api/crm/customerLimitConfig/index.ts +++ b/src/api/crm/customerLimitConfig/index.ts @@ -9,6 +9,20 @@ export interface CustomerLimitConfigVO { dealCountEnabled?: boolean } +/** + * 客户限制配置类型 + */ +export enum LimitConfType { + /** + * 拥有客户数限制 + */ + CUSTOMER_QUANTITY_LIMIT = 1, + /** + * 锁定客户数限制 + */ + CUSTOMER_LOCK_LIMIT = 2 +} + // 查询客户限制配置列表 export const getCustomerLimitConfigPage = async (params) => { return await request.get({ url: `/crm/customer-limit-config/page`, params }) diff --git a/src/api/crm/customerPoolConf/index.ts b/src/api/crm/customerPoolConfig/index.ts similarity index 67% rename from src/api/crm/customerPoolConf/index.ts rename to src/api/crm/customerPoolConfig/index.ts index 8234ba36..3cd8ef28 100644 --- a/src/api/crm/customerPoolConf/index.ts +++ b/src/api/crm/customerPoolConfig/index.ts @@ -1,4 +1,5 @@ import request from '@/config/axios' +import { ConfigVO } from '@/api/infra/config' export interface CustomerPoolConfigVO { enabled?: boolean @@ -14,6 +15,6 @@ export const getCustomerPoolConfig = async () => { } // 更新客户公海规则设置 -export const updateCustomerPoolConfig = async (data: ConfigVO) => { - return await request.put({ url: `/crm/customer-pool-config/update`, data }) +export const saveCustomerPoolConfig = async (data: ConfigVO) => { + return await request.put({ url: `/crm/customer-pool-config/save`, data }) } diff --git a/src/views/crm/clue/ClueForm.vue b/src/views/crm/clue/ClueForm.vue index 4321f952..f0cfcab6 100644 --- a/src/views/crm/clue/ClueForm.vue +++ b/src/views/crm/clue/ClueForm.vue @@ -10,9 +10,15 @@ - - + + + diff --git a/src/views/crm/customerPoolConf/index.vue b/src/views/crm/config/customerPoolConfig/index.vue similarity index 70% rename from src/views/crm/customerPoolConf/index.vue rename to src/views/crm/config/customerPoolConfig/index.vue index 5fa98711..c7db3301 100644 --- a/src/views/crm/customerPoolConf/index.vue +++ b/src/views/crm/config/customerPoolConfig/index.vue @@ -23,7 +23,7 @@ - + 不启用 启用 @@ -36,7 +36,11 @@ 天未成交 - + 不提醒 提醒 @@ -52,11 +56,10 @@ diff --git a/src/views/crm/customer/detail/index.vue b/src/views/crm/customer/detail/index.vue index c88137fa..59b18c5b 100644 --- a/src/views/crm/customer/detail/index.vue +++ b/src/views/crm/customer/detail/index.vue @@ -1,69 +1,5 @@ From cec8582a90e1c6fd3e0ae22aca60093c70768a9b Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 26 Nov 2023 20:18:33 +0800 Subject: [PATCH 08/64] =?UTF-8?q?crm=EF=BC=9Acode=20review=20=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/crm/clue/ClueForm.vue | 1 + .../customerLimitConfig/customerLimitConfig.ts | 4 ---- .../crm/customer/detail/CustomerBasicInfo.vue | 4 +++- .../crm/customer/detail/CustomerDetails.vue | 4 +++- ...rDetailsTop.vue => CustomerDetailsHeader.vue} | 16 ++++++++++------ src/views/crm/customer/detail/index.vue | 4 ++-- 6 files changed, 19 insertions(+), 14 deletions(-) delete mode 100644 src/views/crm/config/customerLimitConfig/customerLimitConfig.ts rename src/views/crm/customer/detail/{CustomerDetailsTop.vue => CustomerDetailsHeader.vue} (90%) diff --git a/src/views/crm/clue/ClueForm.vue b/src/views/crm/clue/ClueForm.vue index f0cfcab6..1b2637c9 100644 --- a/src/views/crm/clue/ClueForm.vue +++ b/src/views/crm/clue/ClueForm.vue @@ -10,6 +10,7 @@ + import * as CustomerApi from '@/api/crm/customer' -const { customer } = defineProps<{ customer: CustomerApi.CustomerVO }>() +const { customer } = defineProps<{ + customer: CustomerApi.CustomerVO +}>() diff --git a/src/views/crm/customer/detail/CustomerDetails.vue b/src/views/crm/customer/detail/CustomerDetails.vue index 67beae94..f7c92ca2 100644 --- a/src/views/crm/customer/detail/CustomerDetails.vue +++ b/src/views/crm/customer/detail/CustomerDetails.vue @@ -87,7 +87,9 @@ import * as CustomerApi from '@/api/crm/customer' import { DICT_TYPE } from '@/utils/dict' import { formatDate } from '@/utils/formatTime' -const { customer } = defineProps<{ customer: CustomerApi.CustomerVO }>() +const { customer } = defineProps<{ + customer: CustomerApi.CustomerVO +}>() // 展示的折叠面板 const activeNames = ref(['basicInfo', 'systemInfo']) diff --git a/src/views/crm/customer/detail/CustomerDetailsTop.vue b/src/views/crm/customer/detail/CustomerDetailsHeader.vue similarity index 90% rename from src/views/crm/customer/detail/CustomerDetailsTop.vue rename to src/views/crm/customer/detail/CustomerDetailsHeader.vue index 509d0a27..6e14c829 100644 --- a/src/views/crm/customer/detail/CustomerDetailsTop.vue +++ b/src/views/crm/customer/detail/CustomerDetailsHeader.vue @@ -7,7 +7,7 @@
- + 编辑 更改成交状态 @@ -70,16 +70,20 @@ diff --git a/src/views/crm/customer/detail/index.vue b/src/views/crm/customer/detail/index.vue index 59b18c5b..e6c9e9a9 100644 --- a/src/views/crm/customer/detail/index.vue +++ b/src/views/crm/customer/detail/index.vue @@ -1,5 +1,5 @@ diff --git a/src/views/crm/business/index.vue b/src/views/crm/business/index.vue new file mode 100644 index 00000000..c1c63fa1 --- /dev/null +++ b/src/views/crm/business/index.vue @@ -0,0 +1,207 @@ + + + diff --git a/src/views/crm/businessStatusType/BusinessStatusTypeForm.vue b/src/views/crm/businessStatusType/BusinessStatusTypeForm.vue new file mode 100644 index 00000000..2ba71128 --- /dev/null +++ b/src/views/crm/businessStatusType/BusinessStatusTypeForm.vue @@ -0,0 +1,173 @@ + + diff --git a/src/views/crm/businessStatusType/index.vue b/src/views/crm/businessStatusType/index.vue new file mode 100644 index 00000000..7b2725f3 --- /dev/null +++ b/src/views/crm/businessStatusType/index.vue @@ -0,0 +1,171 @@ + + + From 3c19cb1a85b8bec70ce07da17eed2829c632c500 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 25 Nov 2023 12:01:35 +0800 Subject: [PATCH 13/64] =?UTF-8?q?crm=EF=BC=9Acode=20review=20=E5=95=86?= =?UTF-8?q?=E6=9C=BA=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/crm/business/BusinessForm.vue | 20 ++++----- .../BusinessStatusTypeForm.vue | 44 ++++++++----------- 2 files changed, 28 insertions(+), 36 deletions(-) diff --git a/src/views/crm/business/BusinessForm.vue b/src/views/crm/business/BusinessForm.vue index 04f1cf5d..53f5cb8d 100644 --- a/src/views/crm/business/BusinessForm.vue +++ b/src/views/crm/business/BusinessForm.vue @@ -10,6 +10,7 @@ + - + import * as BusinessApi from '@/api/crm/business' import * as BusinessStatusTypeApi from '@/api/crm/businessStatusType' -import * as CustomerApi from "@/api/crm/customer"; +import * as CustomerApi from '@/api/crm/customer' import { DICT_TYPE } from '@/utils/dict' -import {ElTable} from "element-plus"; +import { ElTable } from 'element-plus' const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 @@ -233,10 +229,12 @@ const resetForm = () => { } formRef.value?.resetFields() } -const changeBusinessStatusType = async (id) => { - // 加载商机状态列表 - businessStatusList.value = await BusinessStatusTypeApi.getBusinessStatusListByTypeId(id) + +/** 加载商机状态列表 */ +const changeBusinessStatusType = async (typeId: number) => { + businessStatusList.value = await BusinessStatusTypeApi.getBusinessStatusListByTypeId(typeId) } + const queryParams = reactive({ pageNo: 1, pageSize: 10, diff --git a/src/views/crm/businessStatusType/BusinessStatusTypeForm.vue b/src/views/crm/businessStatusType/BusinessStatusTypeForm.vue index 2ba71128..edf41966 100644 --- a/src/views/crm/businessStatusType/BusinessStatusTypeForm.vue +++ b/src/views/crm/businessStatusType/BusinessStatusTypeForm.vue @@ -23,22 +23,12 @@ - + - + @@ -50,10 +40,13 @@ @@ -69,8 +62,8 @@ diff --git a/src/views/crm/customerPoolConf/index.vue b/src/views/crm/config/customerPoolConfig/index.vue similarity index 70% rename from src/views/crm/customerPoolConf/index.vue rename to src/views/crm/config/customerPoolConfig/index.vue index 5fa98711..c7db3301 100644 --- a/src/views/crm/customerPoolConf/index.vue +++ b/src/views/crm/config/customerPoolConfig/index.vue @@ -23,7 +23,7 @@ - + 不启用 启用 @@ -36,7 +36,11 @@ 天未成交 - + 不提醒 提醒 @@ -52,11 +56,10 @@ diff --git a/src/views/crm/customer/detail/index.vue b/src/views/crm/customer/detail/index.vue index c88137fa..59b18c5b 100644 --- a/src/views/crm/customer/detail/index.vue +++ b/src/views/crm/customer/detail/index.vue @@ -1,69 +1,5 @@ From 24773a6eaae8bcd91c83de5c1753c26b20725f27 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 26 Nov 2023 20:18:33 +0800 Subject: [PATCH 15/64] =?UTF-8?q?crm=EF=BC=9Acode=20review=20=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/crm/clue/ClueForm.vue | 1 + .../customerLimitConfig/customerLimitConfig.ts | 4 ---- .../crm/customer/detail/CustomerBasicInfo.vue | 4 +++- .../crm/customer/detail/CustomerDetails.vue | 4 +++- ...rDetailsTop.vue => CustomerDetailsHeader.vue} | 16 ++++++++++------ src/views/crm/customer/detail/index.vue | 4 ++-- 6 files changed, 19 insertions(+), 14 deletions(-) delete mode 100644 src/views/crm/config/customerLimitConfig/customerLimitConfig.ts rename src/views/crm/customer/detail/{CustomerDetailsTop.vue => CustomerDetailsHeader.vue} (90%) diff --git a/src/views/crm/clue/ClueForm.vue b/src/views/crm/clue/ClueForm.vue index f0cfcab6..1b2637c9 100644 --- a/src/views/crm/clue/ClueForm.vue +++ b/src/views/crm/clue/ClueForm.vue @@ -10,6 +10,7 @@ + import * as CustomerApi from '@/api/crm/customer' -const { customer } = defineProps<{ customer: CustomerApi.CustomerVO }>() +const { customer } = defineProps<{ + customer: CustomerApi.CustomerVO +}>() diff --git a/src/views/crm/customer/detail/CustomerDetails.vue b/src/views/crm/customer/detail/CustomerDetails.vue index 67beae94..f7c92ca2 100644 --- a/src/views/crm/customer/detail/CustomerDetails.vue +++ b/src/views/crm/customer/detail/CustomerDetails.vue @@ -87,7 +87,9 @@ import * as CustomerApi from '@/api/crm/customer' import { DICT_TYPE } from '@/utils/dict' import { formatDate } from '@/utils/formatTime' -const { customer } = defineProps<{ customer: CustomerApi.CustomerVO }>() +const { customer } = defineProps<{ + customer: CustomerApi.CustomerVO +}>() // 展示的折叠面板 const activeNames = ref(['basicInfo', 'systemInfo']) diff --git a/src/views/crm/customer/detail/CustomerDetailsTop.vue b/src/views/crm/customer/detail/CustomerDetailsHeader.vue similarity index 90% rename from src/views/crm/customer/detail/CustomerDetailsTop.vue rename to src/views/crm/customer/detail/CustomerDetailsHeader.vue index 509d0a27..6e14c829 100644 --- a/src/views/crm/customer/detail/CustomerDetailsTop.vue +++ b/src/views/crm/customer/detail/CustomerDetailsHeader.vue @@ -7,7 +7,7 @@
- + 编辑 更改成交状态 @@ -70,16 +70,20 @@ diff --git a/src/views/crm/customer/detail/index.vue b/src/views/crm/customer/detail/index.vue index 59b18c5b..e6c9e9a9 100644 --- a/src/views/crm/customer/detail/index.vue +++ b/src/views/crm/customer/detail/index.vue @@ -1,5 +1,5 @@ - + 不启用 启用 @@ -36,7 +36,11 @@ 天未成交 - + 不提醒 提醒 @@ -52,11 +56,10 @@ diff --git a/src/views/crm/customer/detail/index.vue b/src/views/crm/customer/detail/index.vue index c88137fa..59b18c5b 100644 --- a/src/views/crm/customer/detail/index.vue +++ b/src/views/crm/customer/detail/index.vue @@ -1,69 +1,5 @@ From ae8cb9218cc4b236daecf9361c8cea74bffc9fad Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 26 Nov 2023 20:18:33 +0800 Subject: [PATCH 23/64] =?UTF-8?q?crm=EF=BC=9Acode=20review=20=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/crm/clue/ClueForm.vue | 1 + .../customerLimitConfig/customerLimitConfig.ts | 4 ---- .../crm/customer/detail/CustomerBasicInfo.vue | 4 +++- .../crm/customer/detail/CustomerDetails.vue | 4 +++- ...rDetailsTop.vue => CustomerDetailsHeader.vue} | 16 ++++++++++------ src/views/crm/customer/detail/index.vue | 4 ++-- 6 files changed, 19 insertions(+), 14 deletions(-) delete mode 100644 src/views/crm/config/customerLimitConfig/customerLimitConfig.ts rename src/views/crm/customer/detail/{CustomerDetailsTop.vue => CustomerDetailsHeader.vue} (90%) diff --git a/src/views/crm/clue/ClueForm.vue b/src/views/crm/clue/ClueForm.vue index f0cfcab6..1b2637c9 100644 --- a/src/views/crm/clue/ClueForm.vue +++ b/src/views/crm/clue/ClueForm.vue @@ -10,6 +10,7 @@ + import * as CustomerApi from '@/api/crm/customer' -const { customer } = defineProps<{ customer: CustomerApi.CustomerVO }>() +const { customer } = defineProps<{ + customer: CustomerApi.CustomerVO +}>() diff --git a/src/views/crm/customer/detail/CustomerDetails.vue b/src/views/crm/customer/detail/CustomerDetails.vue index 67beae94..f7c92ca2 100644 --- a/src/views/crm/customer/detail/CustomerDetails.vue +++ b/src/views/crm/customer/detail/CustomerDetails.vue @@ -87,7 +87,9 @@ import * as CustomerApi from '@/api/crm/customer' import { DICT_TYPE } from '@/utils/dict' import { formatDate } from '@/utils/formatTime' -const { customer } = defineProps<{ customer: CustomerApi.CustomerVO }>() +const { customer } = defineProps<{ + customer: CustomerApi.CustomerVO +}>() // 展示的折叠面板 const activeNames = ref(['basicInfo', 'systemInfo']) diff --git a/src/views/crm/customer/detail/CustomerDetailsTop.vue b/src/views/crm/customer/detail/CustomerDetailsHeader.vue similarity index 90% rename from src/views/crm/customer/detail/CustomerDetailsTop.vue rename to src/views/crm/customer/detail/CustomerDetailsHeader.vue index 509d0a27..6e14c829 100644 --- a/src/views/crm/customer/detail/CustomerDetailsTop.vue +++ b/src/views/crm/customer/detail/CustomerDetailsHeader.vue @@ -7,7 +7,7 @@
- + 编辑 更改成交状态 @@ -70,16 +70,20 @@ diff --git a/src/views/crm/customer/detail/index.vue b/src/views/crm/customer/detail/index.vue index 59b18c5b..e6c9e9a9 100644 --- a/src/views/crm/customer/detail/index.vue +++ b/src/views/crm/customer/detail/index.vue @@ -1,5 +1,5 @@ diff --git a/src/views/crm/customer/detail/index.vue b/src/views/crm/customer/detail/index.vue index 13d33972..4a115a7f 100644 --- a/src/views/crm/customer/detail/index.vue +++ b/src/views/crm/customer/detail/index.vue @@ -1,16 +1,16 @@ - diff --git a/src/views/crm/customer/index.vue b/src/views/crm/customer/index.vue index 210691b9..edad31b1 100644 --- a/src/views/crm/customer/index.vue +++ b/src/views/crm/customer/index.vue @@ -72,17 +72,10 @@ - - - 搜索 - - - - 重置 - + 搜索 + 重置 - - 新增 + 新增 - - 导出 + 导出 @@ -102,7 +94,13 @@ - + + + - +
diff --git a/src/components/DiyEditor/components/mobile/ImageBar/property.vue b/src/components/DiyEditor/components/mobile/ImageBar/property.vue index 58af1bc8..d8163615 100644 --- a/src/components/DiyEditor/components/mobile/ImageBar/property.vue +++ b/src/components/DiyEditor/components/mobile/ImageBar/property.vue @@ -13,7 +13,7 @@
- + diff --git a/src/components/DiyEditor/components/mobile/MagicCube/property.vue b/src/components/DiyEditor/components/mobile/MagicCube/property.vue index 57c0af79..fe938e5b 100644 --- a/src/components/DiyEditor/components/mobile/MagicCube/property.vue +++ b/src/components/DiyEditor/components/mobile/MagicCube/property.vue @@ -17,7 +17,7 @@
- + diff --git a/src/components/DiyEditor/components/mobile/MenuGrid/property.vue b/src/components/DiyEditor/components/mobile/MenuGrid/property.vue index e09dd318..b92e2099 100644 --- a/src/components/DiyEditor/components/mobile/MenuGrid/property.vue +++ b/src/components/DiyEditor/components/mobile/MenuGrid/property.vue @@ -38,7 +38,7 @@
- + diff --git a/src/components/DiyEditor/components/mobile/MenuList/property.vue b/src/components/DiyEditor/components/mobile/MenuList/property.vue index 270ca261..0ed6035c 100644 --- a/src/components/DiyEditor/components/mobile/MenuList/property.vue +++ b/src/components/DiyEditor/components/mobile/MenuList/property.vue @@ -31,7 +31,7 @@ - + diff --git a/src/components/DiyEditor/components/mobile/MenuSwiper/property.vue b/src/components/DiyEditor/components/mobile/MenuSwiper/property.vue index 2175d57e..31e158ce 100644 --- a/src/components/DiyEditor/components/mobile/MenuSwiper/property.vue +++ b/src/components/DiyEditor/components/mobile/MenuSwiper/property.vue @@ -48,7 +48,7 @@ - + diff --git a/src/components/DiyEditor/components/mobile/NoticeBar/property.vue b/src/components/DiyEditor/components/mobile/NoticeBar/property.vue index 11e7f4b7..a3eefebe 100644 --- a/src/components/DiyEditor/components/mobile/NoticeBar/property.vue +++ b/src/components/DiyEditor/components/mobile/NoticeBar/property.vue @@ -35,7 +35,7 @@
- +
diff --git a/src/components/DiyEditor/components/mobile/TabBar/property.vue b/src/components/DiyEditor/components/mobile/TabBar/property.vue index eefdf54a..a7634a5b 100644 --- a/src/components/DiyEditor/components/mobile/TabBar/property.vue +++ b/src/components/DiyEditor/components/mobile/TabBar/property.vue @@ -88,7 +88,7 @@
- + diff --git a/src/components/DiyEditor/components/mobile/TitleBar/property.vue b/src/components/DiyEditor/components/mobile/TitleBar/property.vue index 3e4dac2d..941e6d92 100644 --- a/src/components/DiyEditor/components/mobile/TitleBar/property.vue +++ b/src/components/DiyEditor/components/mobile/TitleBar/property.vue @@ -92,7 +92,7 @@ - + diff --git a/src/utils/index.ts b/src/utils/index.ts index 10f57567..6ee53e71 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,3 +1,5 @@ +import { toNumber } from 'lodash-es' + /** * * @param component 需要注册的组件 @@ -263,3 +265,23 @@ export const calculateRelativeRate = (value?: number, reference?: number) => { return ((100 * ((value || 0) - reference)) / reference).toFixed(0) } + +/** + * 获取链接的参数值 + * @param key 参数键名 + * @param urlStr 链接地址,默认为当前浏览器的地址 + */ +export const getUrlValue = (key: string, urlStr: string = location.href): string => { + if (!urlStr || !key) return '' + const url = new URL(decodeURIComponent(urlStr)) + return url.searchParams.get(key) ?? '' +} + +/** + * 获取链接的参数值(值类型) + * @param key 参数键名 + * @param urlStr 链接地址,默认为当前浏览器的地址 + */ +export const getUrlNumberValue = (key: string, urlStr: string = location.href): number => { + return toNumber(getUrlValue(key, urlStr)) +} diff --git a/src/views/mall/product/category/components/ProductCategorySelect.vue b/src/views/mall/product/category/components/ProductCategorySelect.vue index 179a6a3b..c1810f5d 100644 --- a/src/views/mall/product/category/components/ProductCategorySelect.vue +++ b/src/views/mall/product/category/components/ProductCategorySelect.vue @@ -20,8 +20,12 @@ import { propTypes } from '@/utils/propTypes' defineOptions({ name: 'ProductCategorySelect' }) const props = defineProps({ - modelValue: oneOfType([propTypes.number.def(undefined), propTypes.array.def([])]).def(undefined), // 选中的ID - multiple: propTypes.bool.def(false) // 是否多选 + // 选中的ID + modelValue: oneOfType([Number, Array]), + // 是否多选 + multiple: propTypes.bool.def(false), + // 上级品类的编号 + parentId: propTypes.number.def(undefined) }) /** 选中的分类 ID */ @@ -38,10 +42,10 @@ const selectCategoryId = computed({ const emit = defineEmits(['update:modelValue']) /** 初始化 **/ -const categoryList = ref([]) // 分类树 +const categoryList = ref([]) // 分类树 onMounted(async () => { // 获得分类树 - const data = await ProductCategoryApi.getCategoryList({}) + const data = await ProductCategoryApi.getCategoryList({ parentId: props.parentId }) categoryList.value = handleTree(data, 'id', 'parentId') }) From 915702183d4998cd0413a7f3f917c100d61f3f3c Mon Sep 17 00:00:00 2001 From: Marvin <454846659@qq.com> Date: Fri, 1 Dec 2023 09:50:39 +0800 Subject: [PATCH 32/64] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=86=85=E5=AE=B9=E9=A1=B9=EF=BC=8C=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=97=B6=E5=B1=95=E7=A4=BA=EF=BC=8Cpdf=E6=97=B6=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E5=88=B0=E9=A2=84=E8=A7=88=EF=BC=8C=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/infra/file/index.vue | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/views/infra/file/index.vue b/src/views/infra/file/index.vue index 16c2e223..15e4c6de 100644 --- a/src/views/infra/file/index.vue +++ b/src/views/infra/file/index.vue @@ -50,17 +50,7 @@ - - - + + + + Date: Fri, 1 Dec 2023 09:53:41 +0800 Subject: [PATCH 33/64] =?UTF-8?q?feat:=20=E8=B7=B3=E8=BD=AC=E5=88=B0?= =?UTF-8?q?=E4=BE=8B=E5=A4=96=E4=B8=80=E4=B8=AA=E6=A0=87=E7=AD=BE=E9=A1=B5?= =?UTF-8?q?=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/infra/file/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/infra/file/index.vue b/src/views/infra/file/index.vue index 15e4c6de..36e521ac 100644 --- a/src/views/infra/file/index.vue +++ b/src/views/infra/file/index.vue @@ -70,7 +70,7 @@ preview-teleported fit="cover" /> - 预览 + 预览 下载 From b4ba1043d6d8d65b63df1c4d08188d9bab9a13a9 Mon Sep 17 00:00:00 2001 From: owen Date: Fri, 1 Dec 2023 18:57:46 +0800 Subject: [PATCH 34/64] eslint --- src/api/infra/demo/demo01/index.ts | 2 +- src/api/infra/demo/demo02/index.ts | 2 +- src/api/infra/demo/demo03/erp/index.ts | 2 +- src/api/infra/demo/demo03/inner/index.ts | 10 +++++++--- src/api/infra/demo/demo03/normal/index.ts | 10 +++++++--- src/components/RouterSearch/index.vue | 9 +++++++-- src/layout/components/ToolHeader.vue | 2 +- src/views/crm/businessStatusType/index.vue | 2 +- .../customerLimitConfig/CustomerLimitConfigForm.vue | 4 ++-- src/views/infra/codegen/EditTable.vue | 6 +++++- src/views/infra/demo/demo01/Demo01ContactForm.vue | 2 +- src/views/infra/demo/demo02/Demo02CategoryForm.vue | 2 +- src/views/infra/demo/demo03/erp/Demo03StudentForm.vue | 2 +- .../demo/demo03/erp/components/Demo03CourseForm.vue | 2 +- .../demo/demo03/erp/components/Demo03CourseList.vue | 8 ++++---- .../demo/demo03/erp/components/Demo03GradeForm.vue | 2 +- .../demo/demo03/erp/components/Demo03GradeList.vue | 8 ++++---- .../infra/demo/demo03/inner/Demo03StudentForm.vue | 2 +- .../demo/demo03/inner/components/Demo03CourseForm.vue | 6 +++--- .../demo/demo03/inner/components/Demo03CourseList.vue | 2 +- .../demo/demo03/inner/components/Demo03GradeForm.vue | 8 ++++---- .../demo/demo03/inner/components/Demo03GradeList.vue | 2 +- .../infra/demo/demo03/normal/Demo03StudentForm.vue | 2 +- .../demo/demo03/normal/components/Demo03CourseForm.vue | 6 +++--- .../demo/demo03/normal/components/Demo03GradeForm.vue | 8 ++++---- 25 files changed, 64 insertions(+), 47 deletions(-) diff --git a/src/api/infra/demo/demo01/index.ts b/src/api/infra/demo/demo01/index.ts index 1a4b01ca..e34a05d1 100644 --- a/src/api/infra/demo/demo01/index.ts +++ b/src/api/infra/demo/demo01/index.ts @@ -37,4 +37,4 @@ export const deleteDemo01Contact = async (id: number) => { // 导出示例联系人 Excel export const exportDemo01Contact = async (params) => { return await request.download({ url: `/infra/demo01-contact/export-excel`, params }) -} \ No newline at end of file +} diff --git a/src/api/infra/demo/demo02/index.ts b/src/api/infra/demo/demo02/index.ts index 21e45c90..30e16863 100644 --- a/src/api/infra/demo/demo02/index.ts +++ b/src/api/infra/demo/demo02/index.ts @@ -34,4 +34,4 @@ export const deleteDemo02Category = async (id: number) => { // 导出示例分类 Excel export const exportDemo02Category = async (params) => { return await request.download({ url: `/infra/demo02-category/export-excel`, params }) -} \ No newline at end of file +} diff --git a/src/api/infra/demo/demo03/erp/index.ts b/src/api/infra/demo/demo03/erp/index.ts index d408b630..a2ab5398 100644 --- a/src/api/infra/demo/demo03/erp/index.ts +++ b/src/api/infra/demo/demo03/erp/index.ts @@ -88,4 +88,4 @@ export const deleteDemo03Grade = async (id: number) => { // 获得学生班级 export const getDemo03Grade = async (id: number) => { return await request.get({ url: `/infra/demo03-student/demo03-grade/get?id=` + id }) -} \ No newline at end of file +} diff --git a/src/api/infra/demo/demo03/inner/index.ts b/src/api/infra/demo/demo03/inner/index.ts index f15ee1dc..e3663078 100644 --- a/src/api/infra/demo/demo03/inner/index.ts +++ b/src/api/infra/demo/demo03/inner/index.ts @@ -42,12 +42,16 @@ export const exportDemo03Student = async (params) => { // 获得学生课程列表 export const getDemo03CourseListByStudentId = async (studentId) => { - return await request.get({ url: `/infra/demo03-student/demo03-course/list-by-student-id?studentId=` + studentId }) + return await request.get({ + url: `/infra/demo03-student/demo03-course/list-by-student-id?studentId=` + studentId + }) } // ==================== 子表(学生班级) ==================== // 获得学生班级 export const getDemo03GradeByStudentId = async (studentId) => { - return await request.get({ url: `/infra/demo03-student/demo03-grade/get-by-student-id?studentId=` + studentId }) -} \ No newline at end of file + return await request.get({ + url: `/infra/demo03-student/demo03-grade/get-by-student-id?studentId=` + studentId + }) +} diff --git a/src/api/infra/demo/demo03/normal/index.ts b/src/api/infra/demo/demo03/normal/index.ts index f15ee1dc..e3663078 100644 --- a/src/api/infra/demo/demo03/normal/index.ts +++ b/src/api/infra/demo/demo03/normal/index.ts @@ -42,12 +42,16 @@ export const exportDemo03Student = async (params) => { // 获得学生课程列表 export const getDemo03CourseListByStudentId = async (studentId) => { - return await request.get({ url: `/infra/demo03-student/demo03-course/list-by-student-id?studentId=` + studentId }) + return await request.get({ + url: `/infra/demo03-student/demo03-course/list-by-student-id?studentId=` + studentId + }) } // ==================== 子表(学生班级) ==================== // 获得学生班级 export const getDemo03GradeByStudentId = async (studentId) => { - return await request.get({ url: `/infra/demo03-student/demo03-grade/get-by-student-id?studentId=` + studentId }) -} \ No newline at end of file + return await request.get({ + url: `/infra/demo03-student/demo03-grade/get-by-student-id?studentId=` + studentId + }) +} diff --git a/src/components/RouterSearch/index.vue b/src/components/RouterSearch/index.vue index 2499dafe..e9310b8f 100644 --- a/src/components/RouterSearch/index.vue +++ b/src/components/RouterSearch/index.vue @@ -29,7 +29,12 @@ :class="showTopSearch ? 'w-220px ml2' : 'w-0'" @change="handleChange" > - + @@ -73,7 +78,7 @@ function remoteMethod(data) { function handleChange(path) { router.push({ path }) - hiddenTopSearch(); + hiddenTopSearch() } function hiddenTopSearch() { diff --git a/src/layout/components/ToolHeader.vue b/src/layout/components/ToolHeader.vue index 8eae6855..0b8d00d5 100644 --- a/src/layout/components/ToolHeader.vue +++ b/src/layout/components/ToolHeader.vue @@ -65,7 +65,7 @@ export default defineComponent({ {screenfull.value ? ( ) : undefined} - {search.value ? () : undefined} + {search.value ? : undefined} {size.value ? ( ) : undefined} diff --git a/src/views/crm/businessStatusType/index.vue b/src/views/crm/businessStatusType/index.vue index 7b2725f3..3f7389be 100644 --- a/src/views/crm/businessStatusType/index.vue +++ b/src/views/crm/businessStatusType/index.vue @@ -95,7 +95,7 @@ const list = ref([]) // 列表的数据 const total = ref(0) // 列表的总页数 const queryParams = reactive({ pageNo: 1, - pageSize: 10, + pageSize: 10 }) const queryFormRef = ref() // 搜索的表单 const exportLoading = ref(false) // 导出的加载中 diff --git a/src/views/crm/config/customerLimitConfig/CustomerLimitConfigForm.vue b/src/views/crm/config/customerLimitConfig/CustomerLimitConfigForm.vue index e7dee69f..da37e556 100644 --- a/src/views/crm/config/customerLimitConfig/CustomerLimitConfigForm.vue +++ b/src/views/crm/config/customerLimitConfig/CustomerLimitConfigForm.vue @@ -12,9 +12,9 @@ v-model="formData.userIds" :data="userTree" :props="defaultProps" - check-on-click-node multiple filterable + check-on-click-node node-key="id" placeholder="请选择规则适用人群" /> @@ -25,8 +25,8 @@ :data="deptTree" :props="defaultProps" multiple - check-strictly filterable + check-strictly node-key="id" placeholder="请选择规则适用部门" /> diff --git a/src/views/infra/codegen/EditTable.vue b/src/views/infra/codegen/EditTable.vue index c94e0da6..f8473e36 100644 --- a/src/views/infra/codegen/EditTable.vue +++ b/src/views/infra/codegen/EditTable.vue @@ -8,7 +8,11 @@ - + diff --git a/src/views/infra/demo/demo01/Demo01ContactForm.vue b/src/views/infra/demo/demo01/Demo01ContactForm.vue index 0452a3c0..5d28112a 100644 --- a/src/views/infra/demo/demo01/Demo01ContactForm.vue +++ b/src/views/infra/demo/demo01/Demo01ContactForm.vue @@ -123,4 +123,4 @@ const resetForm = () => { } formRef.value?.resetFields() } - \ No newline at end of file + diff --git a/src/views/infra/demo/demo02/Demo02CategoryForm.vue b/src/views/infra/demo/demo02/Demo02CategoryForm.vue index 9002d5ee..f4c5f8e2 100644 --- a/src/views/infra/demo/demo02/Demo02CategoryForm.vue +++ b/src/views/infra/demo/demo02/Demo02CategoryForm.vue @@ -111,4 +111,4 @@ const getDemo02CategoryTree = async () => { root.children = handleTree(data, 'id', 'parentId') demo02CategoryTree.value.push(root) } - \ No newline at end of file + diff --git a/src/views/infra/demo/demo03/erp/Demo03StudentForm.vue b/src/views/infra/demo/demo03/erp/Demo03StudentForm.vue index 29f1370d..758c7e5d 100644 --- a/src/views/infra/demo/demo03/erp/Demo03StudentForm.vue +++ b/src/views/infra/demo/demo03/erp/Demo03StudentForm.vue @@ -118,4 +118,4 @@ const resetForm = () => { } formRef.value?.resetFields() } - \ No newline at end of file + diff --git a/src/views/infra/demo/demo03/erp/components/Demo03CourseForm.vue b/src/views/infra/demo/demo03/erp/components/Demo03CourseForm.vue index de1c06de..9d3888d8 100644 --- a/src/views/infra/demo/demo03/erp/components/Demo03CourseForm.vue +++ b/src/views/infra/demo/demo03/erp/components/Demo03CourseForm.vue @@ -96,4 +96,4 @@ const resetForm = () => { } formRef.value?.resetFields() } - \ No newline at end of file + diff --git a/src/views/infra/demo/demo03/erp/components/Demo03CourseList.vue b/src/views/infra/demo/demo03/erp/components/Demo03CourseList.vue index 7e06ee64..9d5e2705 100644 --- a/src/views/infra/demo/demo03/erp/components/Demo03CourseList.vue +++ b/src/views/infra/demo/demo03/erp/components/Demo03CourseList.vue @@ -11,7 +11,7 @@ - + - - + + \ No newline at end of file + diff --git a/src/views/infra/demo/demo03/erp/components/Demo03GradeForm.vue b/src/views/infra/demo/demo03/erp/components/Demo03GradeForm.vue index abba0032..56872949 100644 --- a/src/views/infra/demo/demo03/erp/components/Demo03GradeForm.vue +++ b/src/views/infra/demo/demo03/erp/components/Demo03GradeForm.vue @@ -96,4 +96,4 @@ const resetForm = () => { } formRef.value?.resetFields() } - \ No newline at end of file + diff --git a/src/views/infra/demo/demo03/erp/components/Demo03GradeList.vue b/src/views/infra/demo/demo03/erp/components/Demo03GradeList.vue index b12f1889..e57cb3a4 100644 --- a/src/views/infra/demo/demo03/erp/components/Demo03GradeList.vue +++ b/src/views/infra/demo/demo03/erp/components/Demo03GradeList.vue @@ -11,7 +11,7 @@ - + - - + + \ No newline at end of file + diff --git a/src/views/infra/demo/demo03/inner/Demo03StudentForm.vue b/src/views/infra/demo/demo03/inner/Demo03StudentForm.vue index fe9327b9..98c1b7bf 100644 --- a/src/views/infra/demo/demo03/inner/Demo03StudentForm.vue +++ b/src/views/infra/demo/demo03/inner/Demo03StudentForm.vue @@ -150,4 +150,4 @@ const resetForm = () => { } formRef.value?.resetFields() } - \ No newline at end of file + diff --git a/src/views/infra/demo/demo03/inner/components/Demo03CourseForm.vue b/src/views/infra/demo/demo03/inner/components/Demo03CourseForm.vue index 87057513..77da45ff 100644 --- a/src/views/infra/demo/demo03/inner/components/Demo03CourseForm.vue +++ b/src/views/infra/demo/demo03/inner/components/Demo03CourseForm.vue @@ -9,7 +9,7 @@ > - + + + TODO 待开发 @@ -34,6 +35,7 @@ import ContactList from '@/views/crm/contact/components/ContactList.vue' // 联 import ContractList from '@/views/crm/contract/components/ContractList.vue' // 合同列表 import BusinessList from '@/views/crm/business/components/BusinessList.vue' // 商机列表 import ReceivableList from '@/views/crm/receivable/components/ReceivableList.vue' // 回款列表 +import ReceivablePlanList from '@/views/crm/receivable/plan/components/ReceivablePlanList.vue' // 回款计划列表 import PermissionList from '@/views/crm/permission/components/PermissionList.vue' // 团队成员列表(权限) import { BizTypeEnum } from '@/api/crm/permission' diff --git a/src/views/crm/receivable/ReceivableForm.vue b/src/views/crm/receivable/ReceivableForm.vue index c338fe97..60206bf7 100644 --- a/src/views/crm/receivable/ReceivableForm.vue +++ b/src/views/crm/receivable/ReceivableForm.vue @@ -43,7 +43,7 @@ diff --git a/src/views/crm/receivablePlan/ReceivablePlanForm.vue b/src/views/crm/receivable/plan/ReceivablePlanForm.vue similarity index 99% rename from src/views/crm/receivablePlan/ReceivablePlanForm.vue rename to src/views/crm/receivable/plan/ReceivablePlanForm.vue index bbc0379c..29897b15 100644 --- a/src/views/crm/receivablePlan/ReceivablePlanForm.vue +++ b/src/views/crm/receivable/plan/ReceivablePlanForm.vue @@ -88,7 +88,7 @@ diff --git a/src/views/crm/receivablePlan/index.vue b/src/views/crm/receivable/plan/index.vue similarity index 66% rename from src/views/crm/receivablePlan/index.vue rename to src/views/crm/receivable/plan/index.vue index 2d0cf612..decd79bc 100644 --- a/src/views/crm/receivablePlan/index.vue +++ b/src/views/crm/receivable/plan/index.vue @@ -26,96 +26,6 @@ class="!w-240px" /> - - - - - - - - - - - - - - - - - - - 搜索 重置 @@ -224,10 +134,10 @@ + + diff --git a/src/components/DiyEditor/components/mobile/UserCard/property.vue b/src/components/DiyEditor/components/mobile/UserCard/property.vue new file mode 100644 index 00000000..43dfad2c --- /dev/null +++ b/src/components/DiyEditor/components/mobile/UserCard/property.vue @@ -0,0 +1,17 @@ + + + + + From 2c1edfa781c549742a014213c6840f00dd432fe3 Mon Sep 17 00:00:00 2001 From: owen Date: Fri, 1 Dec 2023 23:34:19 +0800 Subject: [PATCH 40/64] =?UTF-8?q?=E8=90=A5=E9=94=80=EF=BC=9A=E9=80=82?= =?UTF-8?q?=E9=85=8D=E5=95=86=E5=9F=8E=E8=A3=85=E4=BF=AE=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E3=80=90=E7=94=A8=E6=88=B7=E8=AE=A2=E5=8D=95=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/mobile/UserCard/config.ts | 2 -- .../components/mobile/UserOrder/config.ts | 23 +++++++++++++++++++ .../components/mobile/UserOrder/index.vue | 13 +++++++++++ .../components/mobile/UserOrder/property.vue | 17 ++++++++++++++ src/components/DiyEditor/util.ts | 2 +- 5 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 src/components/DiyEditor/components/mobile/UserOrder/config.ts create mode 100644 src/components/DiyEditor/components/mobile/UserOrder/index.vue create mode 100644 src/components/DiyEditor/components/mobile/UserOrder/property.vue diff --git a/src/components/DiyEditor/components/mobile/UserCard/config.ts b/src/components/DiyEditor/components/mobile/UserCard/config.ts index b4676005..7b337761 100644 --- a/src/components/DiyEditor/components/mobile/UserCard/config.ts +++ b/src/components/DiyEditor/components/mobile/UserCard/config.ts @@ -15,8 +15,6 @@ export const component = { style: { bgType: 'color', bgColor: '', - marginLeft: 8, - marginRight: 8, marginBottom: 8 } as ComponentStyle } diff --git a/src/components/DiyEditor/components/mobile/UserOrder/config.ts b/src/components/DiyEditor/components/mobile/UserOrder/config.ts new file mode 100644 index 00000000..f9c5a6db --- /dev/null +++ b/src/components/DiyEditor/components/mobile/UserOrder/config.ts @@ -0,0 +1,23 @@ +import { ComponentStyle, DiyComponent } from '@/components/DiyEditor/util' + +/** 用户订单属性 */ +export interface UserOrderProperty { + // 组件样式 + style: ComponentStyle +} + +// 定义组件 +export const component = { + id: 'UserOrder', + name: '用户订单', + icon: 'ep:list', + property: { + style: { + bgType: 'color', + bgColor: '', + marginLeft: 8, + marginRight: 8, + marginBottom: 8 + } as ComponentStyle + } +} as DiyComponent diff --git a/src/components/DiyEditor/components/mobile/UserOrder/index.vue b/src/components/DiyEditor/components/mobile/UserOrder/index.vue new file mode 100644 index 00000000..450ae548 --- /dev/null +++ b/src/components/DiyEditor/components/mobile/UserOrder/index.vue @@ -0,0 +1,13 @@ + + + + diff --git a/src/components/DiyEditor/components/mobile/UserOrder/property.vue b/src/components/DiyEditor/components/mobile/UserOrder/property.vue new file mode 100644 index 00000000..42df7410 --- /dev/null +++ b/src/components/DiyEditor/components/mobile/UserOrder/property.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/src/components/DiyEditor/util.ts b/src/components/DiyEditor/util.ts index 9f75aaa8..606e53a2 100644 --- a/src/components/DiyEditor/util.ts +++ b/src/components/DiyEditor/util.ts @@ -109,7 +109,7 @@ export const PAGE_LIBS = [ }, { name: '商品组件', extended: true, components: ['ProductCard', 'ProductList'] }, { - name: '会员组件', + name: '用户组件', extended: true, components: ['UserCard', 'UserOrder', 'UserWallet', 'UserCoupon'] }, From c058048face364b0e84d9bb076144bf86dfc3e87 Mon Sep 17 00:00:00 2001 From: owen Date: Fri, 1 Dec 2023 23:40:07 +0800 Subject: [PATCH 41/64] =?UTF-8?q?=E8=90=A5=E9=94=80=EF=BC=9A=E9=80=82?= =?UTF-8?q?=E9=85=8D=E5=95=86=E5=9F=8E=E8=A3=85=E4=BF=AE=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E3=80=90=E7=94=A8=E6=88=B7=E8=B5=84=E4=BA=A7=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/mobile/UserWallet/config.ts | 23 +++++++++++++++++++ .../components/mobile/UserWallet/index.vue | 15 ++++++++++++ .../components/mobile/UserWallet/property.vue | 17 ++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 src/components/DiyEditor/components/mobile/UserWallet/config.ts create mode 100644 src/components/DiyEditor/components/mobile/UserWallet/index.vue create mode 100644 src/components/DiyEditor/components/mobile/UserWallet/property.vue diff --git a/src/components/DiyEditor/components/mobile/UserWallet/config.ts b/src/components/DiyEditor/components/mobile/UserWallet/config.ts new file mode 100644 index 00000000..4e0955f5 --- /dev/null +++ b/src/components/DiyEditor/components/mobile/UserWallet/config.ts @@ -0,0 +1,23 @@ +import { ComponentStyle, DiyComponent } from '@/components/DiyEditor/util' + +/** 用户资产属性 */ +export interface UserWalletProperty { + // 组件样式 + style: ComponentStyle +} + +// 定义组件 +export const component = { + id: 'UserWallet', + name: '用户资产', + icon: 'ep:wallet-filled', + property: { + style: { + bgType: 'color', + bgColor: '', + marginLeft: 8, + marginRight: 8, + marginBottom: 8 + } as ComponentStyle + } +} as DiyComponent diff --git a/src/components/DiyEditor/components/mobile/UserWallet/index.vue b/src/components/DiyEditor/components/mobile/UserWallet/index.vue new file mode 100644 index 00000000..b00d3105 --- /dev/null +++ b/src/components/DiyEditor/components/mobile/UserWallet/index.vue @@ -0,0 +1,15 @@ + + + + diff --git a/src/components/DiyEditor/components/mobile/UserWallet/property.vue b/src/components/DiyEditor/components/mobile/UserWallet/property.vue new file mode 100644 index 00000000..549367e3 --- /dev/null +++ b/src/components/DiyEditor/components/mobile/UserWallet/property.vue @@ -0,0 +1,17 @@ + + + + + From 3c8ffc8c21c6297263ad0b3a980c1bc07c8adc87 Mon Sep 17 00:00:00 2001 From: owen Date: Fri, 1 Dec 2023 23:58:57 +0800 Subject: [PATCH 42/64] =?UTF-8?q?=E8=90=A5=E9=94=80=EF=BC=9A=E9=80=82?= =?UTF-8?q?=E9=85=8D=E5=95=86=E5=9F=8E=E8=A3=85=E4=BF=AE=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E3=80=90=E7=94=A8=E6=88=B7=E5=8D=A1=E5=88=B8=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/mobile/UserCoupon/config.ts | 23 +++++++++++++++++++ .../components/mobile/UserCoupon/index.vue | 15 ++++++++++++ .../components/mobile/UserCoupon/property.vue | 17 ++++++++++++++ .../components/mobile/UserWallet/index.vue | 2 +- 4 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/components/DiyEditor/components/mobile/UserCoupon/config.ts create mode 100644 src/components/DiyEditor/components/mobile/UserCoupon/index.vue create mode 100644 src/components/DiyEditor/components/mobile/UserCoupon/property.vue diff --git a/src/components/DiyEditor/components/mobile/UserCoupon/config.ts b/src/components/DiyEditor/components/mobile/UserCoupon/config.ts new file mode 100644 index 00000000..92eba9b6 --- /dev/null +++ b/src/components/DiyEditor/components/mobile/UserCoupon/config.ts @@ -0,0 +1,23 @@ +import { ComponentStyle, DiyComponent } from '@/components/DiyEditor/util' + +/** 用户卡券属性 */ +export interface UserCouponProperty { + // 组件样式 + style: ComponentStyle +} + +// 定义组件 +export const component = { + id: 'UserCoupon', + name: '用户卡券', + icon: 'ep:ticket', + property: { + style: { + bgType: 'color', + bgColor: '', + marginLeft: 8, + marginRight: 8, + marginBottom: 8 + } as ComponentStyle + } +} as DiyComponent diff --git a/src/components/DiyEditor/components/mobile/UserCoupon/index.vue b/src/components/DiyEditor/components/mobile/UserCoupon/index.vue new file mode 100644 index 00000000..27ad310a --- /dev/null +++ b/src/components/DiyEditor/components/mobile/UserCoupon/index.vue @@ -0,0 +1,15 @@ + + + + diff --git a/src/components/DiyEditor/components/mobile/UserCoupon/property.vue b/src/components/DiyEditor/components/mobile/UserCoupon/property.vue new file mode 100644 index 00000000..f902e04e --- /dev/null +++ b/src/components/DiyEditor/components/mobile/UserCoupon/property.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/src/components/DiyEditor/components/mobile/UserWallet/index.vue b/src/components/DiyEditor/components/mobile/UserWallet/index.vue index b00d3105..0efc9371 100644 --- a/src/components/DiyEditor/components/mobile/UserWallet/index.vue +++ b/src/components/DiyEditor/components/mobile/UserWallet/index.vue @@ -1,6 +1,6 @@ -