From 7c8f7d570f4e5027f604dd15a561525891ac0378 Mon Sep 17 00:00:00 2001 From: "KONGDY-PC\\Kongdy" Date: Mon, 23 Oct 2023 10:37:39 +0800 Subject: [PATCH 01/38] =?UTF-8?q?=E6=BB=A1=E5=87=8F=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../promotion/rewardActivity/RewardForm.vue | 195 ++++++++++++++++ .../mall/promotion/rewardActivity/index.vue | 213 ++++++++++++++++++ 2 files changed, 408 insertions(+) create mode 100644 src/views/mall/promotion/rewardActivity/RewardForm.vue create mode 100644 src/views/mall/promotion/rewardActivity/index.vue diff --git a/src/views/mall/promotion/rewardActivity/RewardForm.vue b/src/views/mall/promotion/rewardActivity/RewardForm.vue new file mode 100644 index 00000000..375aff7a --- /dev/null +++ b/src/views/mall/promotion/rewardActivity/RewardForm.vue @@ -0,0 +1,195 @@ + + diff --git a/src/views/mall/promotion/rewardActivity/index.vue b/src/views/mall/promotion/rewardActivity/index.vue new file mode 100644 index 00000000..7a05c9fc --- /dev/null +++ b/src/views/mall/promotion/rewardActivity/index.vue @@ -0,0 +1,213 @@ + + From ca385bc08e10bde121423aa9e422dad03ab81c14 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Wed, 25 Oct 2023 11:14:00 +0800 Subject: [PATCH 02/38] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=88=97=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=B8=AD=E7=9A=84=20table#header=20=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8D=E5=88=B7=E6=96=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mall/trade/order/detail/index.vue | 16 ++++++++-------- src/views/mall/trade/order/index.vue | 18 +++++++++++++----- src/views/member/user/detail/UserOrderList.vue | 3 ++- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/views/mall/trade/order/detail/index.vue b/src/views/mall/trade/order/detail/index.vue index 38b9342e..67e54767 100644 --- a/src/views/mall/trade/order/detail/index.vue +++ b/src/views/mall/trade/order/detail/index.vue @@ -16,7 +16,7 @@ - + {{ formData.brokerageUser?.nickname }} @@ -26,7 +26,7 @@ - + {{ formData.receiverMobile }}
- + {{ formData.receiverAreaName }} {{ formData.receiverDetailAddress }} - + {{ deliveryExpressList.find((item) => item.id === formData.logisticsId)?.name }} - + {{ formData.logisticsNo }} - + {{ formatDate(formData.deliveryTime) }} - +
- + {{ pickUpStore?.name }}
diff --git a/src/views/mall/trade/order/index.vue b/src/views/mall/trade/order/index.vue index e08715df..c892292a 100644 --- a/src/views/mall/trade/order/index.vue +++ b/src/views/mall/trade/order/index.vue @@ -125,10 +125,10 @@ @@ -81,7 +81,11 @@ const props = defineProps({ fileType: propTypes.array.def(['image/jpeg', 'image/png', 'image/gif']), // 图片类型限制 ==> 非必传(默认为 ["image/jpeg", "image/png", "image/gif"]) height: propTypes.string.def('150px'), // 组件高度 ==> 非必传(默认为 150px) width: propTypes.string.def('150px'), // 组件宽度 ==> 非必传(默认为 150px) - borderradius: propTypes.string.def('8px') // 组件边框圆角 ==> 非必传(默认为 8px) + borderradius: propTypes.string.def('8px'), // 组件边框圆角 ==> 非必传(默认为 8px) + // 是否显示删除按钮 + showDelete: propTypes.bool.def(true), + // 是否显示按钮文字 + showBtnText: propTypes.bool.def(true) }) const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index aa260cf1..70dc5b2f 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -459,6 +459,34 @@ const remainingRouter: AppRouteRecordRaw[] = [ component: () => import('@/views/pay/cashier/index.vue') } ] + }, + { + path: '/diy', + name: 'DiyCenter', + meta: { hidden: true }, + component: Layout, + children: [ + { + path: 'template/decorate/:id', + name: 'DiyTemplateDecorate', + meta: { + title: '模板装修', + noCache: true, + hidden: true + }, + component: () => import('@/views/mall/promotion/diy/template/decorate.vue') + }, + { + path: 'page/decorate/:id', + name: 'DiyPageDecorate', + meta: { + title: '页面装修', + noCache: true, + hidden: true + }, + component: () => import('@/views/mall/promotion/diy/page/decorate.vue') + } + ] } ] diff --git a/src/views/mall/promotion/diy/page/DiyPageForm.vue b/src/views/mall/promotion/diy/page/DiyPageForm.vue new file mode 100644 index 00000000..e0cb18b6 --- /dev/null +++ b/src/views/mall/promotion/diy/page/DiyPageForm.vue @@ -0,0 +1,114 @@ + + diff --git a/src/views/mall/promotion/diy/page/decorate.vue b/src/views/mall/promotion/diy/page/decorate.vue new file mode 100644 index 00000000..76336bc4 --- /dev/null +++ b/src/views/mall/promotion/diy/page/decorate.vue @@ -0,0 +1,99 @@ + + diff --git a/src/views/mall/promotion/diy/page/index.vue b/src/views/mall/promotion/diy/page/index.vue new file mode 100644 index 00000000..6436c2f7 --- /dev/null +++ b/src/views/mall/promotion/diy/page/index.vue @@ -0,0 +1,189 @@ + + + diff --git a/src/views/mall/promotion/diy/template/DiyTemplateForm.vue b/src/views/mall/promotion/diy/template/DiyTemplateForm.vue new file mode 100644 index 00000000..e4289f65 --- /dev/null +++ b/src/views/mall/promotion/diy/template/DiyTemplateForm.vue @@ -0,0 +1,115 @@ + + diff --git a/src/views/mall/promotion/diy/template/decorate.vue b/src/views/mall/promotion/diy/template/decorate.vue new file mode 100644 index 00000000..9c7500b2 --- /dev/null +++ b/src/views/mall/promotion/diy/template/decorate.vue @@ -0,0 +1,134 @@ + + diff --git a/src/views/mall/promotion/diy/template/index.vue b/src/views/mall/promotion/diy/template/index.vue new file mode 100644 index 00000000..dcf13698 --- /dev/null +++ b/src/views/mall/promotion/diy/template/index.vue @@ -0,0 +1,225 @@ + + + From 0c81a0d96a07fe473a1fac7636e64e84b2bb4062 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 29 Oct 2023 22:29:03 +0800 Subject: [PATCH 10/38] =?UTF-8?q?code=20review=EF=BC=9A=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E8=A1=A8=E7=9A=84=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/crm/contract/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/crm/contract/index.vue b/src/views/crm/contract/index.vue index 7a8211be..1670c418 100644 --- a/src/views/crm/contract/index.vue +++ b/src/views/crm/contract/index.vue @@ -166,7 +166,7 @@ import download from '@/utils/download' import * as ContractApi from '@/api/crm/contract' import ContractForm from './ContractForm.vue' -defineOptions({ name: 'Contract' }) +defineOptions({ name: 'CrmContract' }) const message = useMessage() // 消息弹窗 const { t } = useI18n() // 国际化 From 55a961e86265a1c2b37874dfd076b60935de6964 Mon Sep 17 00:00:00 2001 From: jason <2667446@qq.com> Date: Sun, 29 Oct 2023 23:48:10 +0800 Subject: [PATCH 11/38] =?UTF-8?q?=E8=BD=AC=E8=B4=A6=20-=20=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=90=8E=E5=8F=B0=E6=96=B0=E5=A2=9E=E8=BD=AC=E8=B4=A6?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/pay/demo/transfer/index.ts | 25 +++ src/api/pay/transfer/index.ts | 18 +++ src/utils/dict.ts | 2 + src/views/pay/demo/{ => order}/index.vue | 0 .../pay/demo/transfer/DemoTransferForm.vue | 122 ++++++++++++++ src/views/pay/demo/transfer/index.vue | 152 ++++++++++++++++++ src/views/pay/transfer/CreatePayTransfer.vue | 141 ++++++++++++++++ .../WalletRechargePackageForm.vue | 2 +- 8 files changed, 461 insertions(+), 1 deletion(-) create mode 100644 src/api/pay/demo/transfer/index.ts create mode 100644 src/api/pay/transfer/index.ts rename src/views/pay/demo/{ => order}/index.vue (100%) create mode 100644 src/views/pay/demo/transfer/DemoTransferForm.vue create mode 100644 src/views/pay/demo/transfer/index.vue create mode 100644 src/views/pay/transfer/CreatePayTransfer.vue diff --git a/src/api/pay/demo/transfer/index.ts b/src/api/pay/demo/transfer/index.ts new file mode 100644 index 00000000..a95b0d5c --- /dev/null +++ b/src/api/pay/demo/transfer/index.ts @@ -0,0 +1,25 @@ +import request from '@/config/axios' + +export interface DemoTransferVO { + price: number + type: number + userName: string + alipayLogonId: string + openid: string +} + +// 创建示例转账单 +export function createDemoTransfer(data: DemoTransferVO) { + return request.post({ + url: '/pay/demo-transfer/create', + data: data + }) +} + +// 获得示例订单分页 +export function getDemoTransferPage(query: PageParam) { + return request.get({ + url: '/pay/demo-transfer/page', + params: query + }) +} diff --git a/src/api/pay/transfer/index.ts b/src/api/pay/transfer/index.ts new file mode 100644 index 00000000..4b2f3154 --- /dev/null +++ b/src/api/pay/transfer/index.ts @@ -0,0 +1,18 @@ +import request from '@/config/axios' + +export interface TransferVO { + appId: number + channelCode: string + merchantTransferId: string + type: number + price: number + subject: string + userName: string + alipayLogonId: string + openid: string +} + +// 新增转账单 +export const createTransfer = async (data: TransferVO) => { + return await request.post({ url: `/pay/transfer/create`, data }) +} diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 489d8e4b..12d01507 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -143,6 +143,8 @@ export enum DICT_TYPE { PAY_REFUND_STATUS = 'pay_refund_status', // 退款订单状态 PAY_NOTIFY_STATUS = 'pay_notify_status', // 商户支付回调状态 PAY_NOTIFY_TYPE = 'pay_notify_type', // 商户支付回调状态 + PAY_TRANSFER_STATUS = 'pay_transfer_status', // 转账订单状态 + PAY_TRANSFER_TYPE = 'pay_transfer_type', // 转账订单状态 // ========== MP 模块 ========== MP_AUTO_REPLY_REQUEST_MATCH = 'mp_auto_reply_request_match', // 自动回复请求匹配类型 diff --git a/src/views/pay/demo/index.vue b/src/views/pay/demo/order/index.vue similarity index 100% rename from src/views/pay/demo/index.vue rename to src/views/pay/demo/order/index.vue diff --git a/src/views/pay/demo/transfer/DemoTransferForm.vue b/src/views/pay/demo/transfer/DemoTransferForm.vue new file mode 100644 index 00000000..e5448f10 --- /dev/null +++ b/src/views/pay/demo/transfer/DemoTransferForm.vue @@ -0,0 +1,122 @@ + + diff --git a/src/views/pay/demo/transfer/index.vue b/src/views/pay/demo/transfer/index.vue new file mode 100644 index 00000000..7d0d8bad --- /dev/null +++ b/src/views/pay/demo/transfer/index.vue @@ -0,0 +1,152 @@ + + + diff --git a/src/views/pay/transfer/CreatePayTransfer.vue b/src/views/pay/transfer/CreatePayTransfer.vue new file mode 100644 index 00000000..5f0ea166 --- /dev/null +++ b/src/views/pay/transfer/CreatePayTransfer.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/src/views/pay/wallet/rechargePackage/WalletRechargePackageForm.vue b/src/views/pay/wallet/rechargePackage/WalletRechargePackageForm.vue index f538b78c..0153225e 100644 --- a/src/views/pay/wallet/rechargePackage/WalletRechargePackageForm.vue +++ b/src/views/pay/wallet/rechargePackage/WalletRechargePackageForm.vue @@ -90,7 +90,7 @@ const submitForm = async () => { // 提交请求 formLoading.value = true try { - const data = formData.value as unknown as WalletRechargePackageApi.WalletRechargePackageVO + const data = { ...formData.value } data.payPrice = yuanToFen(data.payPrice) data.bonusPrice = yuanToFen(data.bonusPrice) if (formType.value === 'create') { From c269cab6b2bf17ca0edcb9c8bc1a5b07a53a6664 Mon Sep 17 00:00:00 2001 From: lzy <7783739+lzyyd@user.noreply.gitee.com> Date: Mon, 30 Oct 2023 06:20:16 +0000 Subject: [PATCH 12/38] =?UTF-8?q?update=20src/layout/components/Message/sr?= =?UTF-8?q?c/Message.vue.=20fix:=20=20=E5=A4=84=E7=90=86=E7=AB=99=E5=86=85?= =?UTF-8?q?=E4=BF=A1=E5=86=85=E5=AE=B9=E8=BF=87=E5=A4=9A=E5=9B=9E=E6=98=BE?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lzy <7783739+lzyyd@user.noreply.gitee.com> --- src/layout/components/Message/src/Message.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/layout/components/Message/src/Message.vue b/src/layout/components/Message/src/Message.vue index 28f796b3..3019df29 100644 --- a/src/layout/components/Message/src/Message.vue +++ b/src/layout/components/Message/src/Message.vue @@ -53,7 +53,7 @@ onMounted(() => { -
+ -
+
@@ -88,6 +88,7 @@ onMounted(() => { } .message-list { + height: 400px; display: flex; flex-direction: column; From 2b84de7e0927371a2c5271886bc1612a07fc6497 Mon Sep 17 00:00:00 2001 From: liuhongfeng <291117974@qq.com> Date: Mon, 30 Oct 2023 21:32:50 +0800 Subject: [PATCH 13/38] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91?= =?UTF-8?q?=E8=B4=9F=E8=B4=A3=E4=BA=BA=20=E3=80=90=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E3=80=91=E8=A7=84=E8=8C=83=E5=91=BD=E5=90=8D=EF=BC=9A=E6=9C=9F?= =?UTF-8?q?=E6=95=B0=EF=BC=9AindexNo-=E3=80=8Bperiod?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/crm/receivablePlan/index.ts | 2 +- src/views/crm/receivable/ReceivableForm.vue | 32 ++++++---- src/views/crm/receivable/index.vue | 13 +++-- .../crm/receivablePlan/ReceivablePlanForm.vue | 45 ++++++++------ src/views/crm/receivablePlan/index.vue | 58 +++++++++++-------- 5 files changed, 90 insertions(+), 60 deletions(-) diff --git a/src/api/crm/receivablePlan/index.ts b/src/api/crm/receivablePlan/index.ts index 178b21b5..f80f0572 100644 --- a/src/api/crm/receivablePlan/index.ts +++ b/src/api/crm/receivablePlan/index.ts @@ -2,7 +2,7 @@ import request from '@/config/axios' export interface ReceivablePlanVO { id: number - indexNo: number + period: number receivableId: number status: number checkStatus: string diff --git a/src/views/crm/receivable/ReceivableForm.vue b/src/views/crm/receivable/ReceivableForm.vue index 2b9278fe..4ac9136a 100644 --- a/src/views/crm/receivable/ReceivableForm.vue +++ b/src/views/crm/receivable/ReceivableForm.vue @@ -54,15 +54,22 @@ - + + + - + - - + + + + @@ -85,10 +92,11 @@ From 881c4f3a2932ff4892bf09e6de9f790d5f93d9c6 Mon Sep 17 00:00:00 2001 From: owen Date: Tue, 31 Oct 2023 16:01:22 +0800 Subject: [PATCH 14/38] =?UTF-8?q?=E8=90=A5=E9=94=80=EF=BC=9A=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E5=95=86=E5=9F=8E=E8=A3=85=E4=BF=AE=201.=20=E6=8B=86?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E9=9D=A2=E8=AE=BE=E8=AE=A1=E7=94=A8=E7=9A=84?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3=202.=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A8=A1=E6=9D=BF=E7=9A=84=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=203.=20=E5=A2=9E=E5=8A=A0=E5=94=AF=E4=B8=80?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E6=A0=A1=E9=AA=8C=204.=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=BC=96=E8=BE=91=E5=99=A8=EF=BC=8C=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E9=80=89=E4=B8=AD=E7=BB=84=E4=BB=B6=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mall/promotion/diy/page.ts | 10 +++++ src/api/mall/promotion/diy/template.ts | 17 ++++++++ src/components/DiyEditor/index.vue | 31 +++++++++++++-- .../mall/promotion/diy/page/decorate.vue | 5 ++- .../mall/promotion/diy/template/decorate.vue | 39 ++++++++++++++----- 5 files changed, 88 insertions(+), 14 deletions(-) diff --git a/src/api/mall/promotion/diy/page.ts b/src/api/mall/promotion/diy/page.ts index 255015d2..1cd34282 100644 --- a/src/api/mall/promotion/diy/page.ts +++ b/src/api/mall/promotion/diy/page.ts @@ -33,3 +33,13 @@ export const updateDiyPage = async (data: DiyPageVO) => { export const deleteDiyPage = async (id: number) => { return await request.delete({ url: `/promotion/diy-page/delete?id=` + id }) } + +// 获得装修页面属性 +export const getDiyPageProperty = async (id: number) => { + return await request.get({ url: `/promotion/diy-page/get-property?id=` + id }) +} + +// 更新装修页面属性 +export const updateDiyPageProperty = async (data: DiyPageVO) => { + return await request.put({ url: `/promotion/diy-page/update-property`, data }) +} diff --git a/src/api/mall/promotion/diy/template.ts b/src/api/mall/promotion/diy/template.ts index 72eea41c..f8d4bc80 100644 --- a/src/api/mall/promotion/diy/template.ts +++ b/src/api/mall/promotion/diy/template.ts @@ -1,4 +1,5 @@ import request from '@/config/axios' +import { DiyPageVO } from '@/api/mall/promotion/diy/page' export interface DiyTemplateVO { id?: number @@ -10,6 +11,10 @@ export interface DiyTemplateVO { property: string } +export interface DiyTemplatePropertyVO extends DiyTemplateVO { + pages: DiyPageVO[] +} + // 查询装修模板列表 export const getDiyTemplatePage = async (params: any) => { return await request.get({ url: `/promotion/diy-template/page`, params }) @@ -39,3 +44,15 @@ export const deleteDiyTemplate = async (id: number) => { export const useDiyTemplate = async (id: number) => { return await request.put({ url: `/promotion/diy-template/use?id=` + id }) } + +// 获得装修模板属性 +export const getDiyTemplateProperty = async (id: number) => { + return await request.get({ + url: `/promotion/diy-template/get-property?id=` + id + }) +} + +// 更新装修模板属性 +export const updateDiyTemplateProperty = async (data: DiyTemplateVO) => { + return await request.put({ url: `/promotion/diy-template/update-property`, data }) +} diff --git a/src/components/DiyEditor/index.vue b/src/components/DiyEditor/index.vue index 520cd497..f0fed316 100644 --- a/src/components/DiyEditor/index.vue +++ b/src/components/DiyEditor/index.vue @@ -59,7 +59,7 @@ }" > >(cloneDeep(NAVIGATION_BAR_C const tabBarComponent = ref>(cloneDeep(TAB_BAR_COMPONENT)) // 选中的组件,默认选中顶部导航栏 -const selectedComponent = ref>(unref(pageConfigComponent)) +const selectedComponent = ref>() // 选中的组件索引 const selectedComponentIndex = ref(-1) // 组件列表 const pageComponents = ref[]>([]) // 定义属性 const props = defineProps<{ + // 页面配置,支持Json字符串 modelValue: string | PageConfig + // 标题 title: string - libs: DiyComponentLibrary[] // 组件库 + // 组件库 + libs: DiyComponentLibrary[] + // 是否显示顶部导航栏 showNavigationBar: boolean + // 是否显示底部导航菜单 showTabBar: boolean + // 是否显示页面配置 + showPageConfig: boolean }>() // 监听传入的页面配置 @@ -255,6 +262,8 @@ const handleSave = () => { // 处理页面选中:显示属性表单 const handlePageSelected = (event: any) => { + if (!props.showPageConfig) return + // 配置了样式 page-prop-area 的元素,才显示页面设置 if (includes(event?.target?.classList, 'page-prop-area')) { handleComponentSelected(unref(pageConfigComponent)) @@ -351,6 +360,22 @@ const handlePreview = () => { message.warning('开发中~') emits('preview') } + +// 设置默认选中的组件 +const setDefaultSelectedComponent = () => { + if (props.showPageConfig) { + selectedComponent.value = unref(pageConfigComponent) + } else if (props.showNavigationBar) { + selectedComponent.value = unref(navigationBarComponent) + } else if (props.showTabBar) { + selectedComponent.value = unref(tabBarComponent) + } +} +watch( + () => [props.showPageConfig, props.showNavigationBar, props.showTabBar], + () => setDefaultSelectedComponent() +) +onMounted(() => setDefaultSelectedComponent()) diff --git a/src/views/pay/transfer/index.vue b/src/views/pay/transfer/index.vue new file mode 100644 index 00000000..b901f34b --- /dev/null +++ b/src/views/pay/transfer/index.vue @@ -0,0 +1,267 @@ + + + + + From de62a7a5b7d4a2fecb36c992ffd107023e4d489a Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 3 Nov 2023 18:44:56 +0800 Subject: [PATCH 20/38] =?UTF-8?q?bugfix=EF=BC=9A=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=E6=8E=89=20uno=20=E7=9A=84=20transformerVariantGroup=EF=BC=8C?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=20vite=20=E7=9B=91=E6=8E=A7=E5=88=B0=20css?= =?UTF-8?q?=20=E5=8F=98=E5=8C=96=EF=BC=8C=E5=AF=BC=E8=87=B4=20Login.vue=20?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=97=B6=E7=9A=84=E9=87=8D=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- uno.config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uno.config.ts b/uno.config.ts index 8b874a4a..d1467319 100644 --- a/uno.config.ts +++ b/uno.config.ts @@ -1,5 +1,5 @@ import { defineConfig, toEscapedSelector as e, presetUno } from 'unocss' -import transformerVariantGroup from '@unocss/transformer-variant-group' +// import transformerVariantGroup from '@unocss/transformer-variant-group' export default defineConfig({ // ...UnoCSS options @@ -101,7 +101,7 @@ ${selector}:after { ] ], presets: [presetUno({ dark: 'class', attributify: false })], - transformers: [transformerVariantGroup()], + // transformers: [transformerVariantGroup()], shortcuts: { 'wh-full': 'w-full h-full' } From 23f483ac452c6f140b399351918caaffb54c7129 Mon Sep 17 00:00:00 2001 From: Wanwan <913752709@qq.com> Date: Sat, 4 Nov 2023 03:21:01 +0800 Subject: [PATCH 21/38] =?UTF-8?q?feat:=20=E5=AE=A2=E6=88=B7=E8=AF=A6?= =?UTF-8?q?=E6=83=85=20+=20review=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/crm/customer/index.ts | 24 +- src/router/modules/remaining.ts | 18 ++ src/views/crm/clue/ClueForm.vue | 5 +- src/views/crm/clue/index.vue | 2 +- src/views/crm/customer/CustomerForm.vue | 233 +++++++++++------- .../crm/customer/detail/CustomerBasicInfo.vue | 18 ++ .../crm/customer/detail/CustomerDetails.vue | 91 +++++++ src/views/crm/customer/detail/index.vue | 154 ++++++++++++ src/views/crm/customer/index.vue | 70 +++++- 9 files changed, 508 insertions(+), 107 deletions(-) create mode 100644 src/views/crm/customer/detail/CustomerBasicInfo.vue create mode 100644 src/views/crm/customer/detail/CustomerDetails.vue create mode 100644 src/views/crm/customer/detail/index.vue diff --git a/src/api/crm/customer/index.ts b/src/api/crm/customer/index.ts index 0cbba590..59260cbc 100644 --- a/src/api/crm/customer/index.ts +++ b/src/api/crm/customer/index.ts @@ -1,13 +1,14 @@ import request from '@/config/axios' export interface CustomerVO { - id: number + id?: number name: string industryId: number level: number source: number - followUpStatus: boolean - lockStatus: boolean + followUpStatus?: boolean + lockStatus?: boolean + dealStatus?: boolean mobile: string telephone: string website: string @@ -16,13 +17,20 @@ export interface CustomerVO { email: string description: string remark: string - ownerUserId: number - roUserIds: string - rwUserIds: string - areaId: number + ownerUserId?: number + ownerUserName?: string + ownerUserDept?: string + roUserIds?: string + rwUserIds?: string + areaId?: number + areaName?: string detailAddress: string - contactLastTime: Date + contactLastTime?: Date contactNextTime: Date + createTime?: Date + updateTime?: Date + creator?: string + creatorName?: string } // 查询客户列表 diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index 70dc5b2f..58eb1733 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -487,6 +487,24 @@ const remainingRouter: AppRouteRecordRaw[] = [ component: () => import('@/views/mall/promotion/diy/page/decorate.vue') } ] + }, + { + path: '/crm', + component: Layout, + name: 'CrmCenter', + meta: { hidden: true }, + children: [ + { + path: 'customer/detail/:id', + name: 'CrmCustomerDetail', + meta: { + title: '客户详情', + noCache: true, + hidden: true + }, + component: () => import('@/views/crm/customer/detail/index.vue') + } + ] } ] diff --git a/src/views/crm/clue/ClueForm.vue b/src/views/crm/clue/ClueForm.vue index 877b26d9..4321f952 100644 --- a/src/views/crm/clue/ClueForm.vue +++ b/src/views/crm/clue/ClueForm.vue @@ -10,7 +10,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -46,7 +46,6 @@ + diff --git a/src/views/crm/customer/detail/CustomerDetails.vue b/src/views/crm/customer/detail/CustomerDetails.vue new file mode 100644 index 00000000..f6215224 --- /dev/null +++ b/src/views/crm/customer/detail/CustomerDetails.vue @@ -0,0 +1,91 @@ + + + diff --git a/src/views/crm/customer/detail/index.vue b/src/views/crm/customer/detail/index.vue new file mode 100644 index 00000000..e5c8ef43 --- /dev/null +++ b/src/views/crm/customer/detail/index.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/src/views/crm/customer/index.vue b/src/views/crm/customer/index.vue index ace56dac..073bf8cb 100644 --- a/src/views/crm/customer/index.vue +++ b/src/views/crm/customer/index.vue @@ -1,7 +1,6 @@