diff --git a/src/api/crm/business/index.ts b/src/api/crm/business/index.ts new file mode 100644 index 00000000..8af2a697 --- /dev/null +++ b/src/api/crm/business/index.ts @@ -0,0 +1,57 @@ +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 +} + +// 查询 CRM 商机列表 +export const getBusinessPage = async (params) => { + return await request.get({ url: `/crm/business/page`, params }) +} + +// 查询 CRM 商机列表,基于指定客户 +export const getBusinessPageByCustomer = async (params) => { + return await request.get({ url: `/crm/business/page-by-customer`, params }) +} + +// 查询 CRM 商机详情 +export const getBusiness = async (id: number) => { + return await request.get({ url: `/crm/business/get?id=` + id }) +} + +// 新增 CRM 商机 +export const createBusiness = async (data: BusinessVO) => { + return await request.post({ url: `/crm/business/create`, data }) +} + +// 修改 CRM 商机 +export const updateBusiness = async (data: BusinessVO) => { + return await request.put({ url: `/crm/business/update`, data }) +} + +// 删除 CRM 商机 +export const deleteBusiness = async (id: number) => { + return await request.delete({ url: `/crm/business/delete?id=` + id }) +} + +// 导出 CRM 商机 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/api/crm/contact/index.ts b/src/api/crm/contact/index.ts index 6ac5a01d..f983cb12 100644 --- a/src/api/crm/contact/index.ts +++ b/src/api/crm/contact/index.ts @@ -1,10 +1,3 @@ -/* - * @Author: zyna - * @Date: 2023-11-05 13:34:41 - * @LastEditTime: 2023-11-11 16:20:19 - * @FilePath: \yudao-ui-admin-vue3\src\api\crm\contact\index.ts - * @Description: - */ import request from '@/config/axios' export interface ContactVO { @@ -22,44 +15,53 @@ export interface ContactVO { id: number parentId: number qq: number - webchat: string + wechat: string sex: number - policyMakers: boolean + master: boolean creatorName: string updateTime?: Date createTime?: Date customerName: string + areaName: string + ownerUserName: string } -// 查询crm联系人列表 +// 查询 CRM 联系人列表 export const getContactPage = async (params) => { return await request.get({ url: `/crm/contact/page`, params }) } -// 查询crm联系人详情 +// 查询 CRM 联系人列表,基于指定客户 +export const getContactPageByCustomer = async (params: any) => { + return await request.get({ url: `/crm/contact/page-by-customer`, params }) +} + +// 查询 CRM 联系人详情 export const getContact = async (id: number) => { return await request.get({ url: `/crm/contact/get?id=` + id }) } -// 新增crm联系人 +// 新增 CRM 联系人 export const createContact = async (data: ContactVO) => { return await request.post({ url: `/crm/contact/create`, data }) } -// 修改crm联系人 +// 修改 CRM 联系人 export const updateContact = async (data: ContactVO) => { return await request.put({ url: `/crm/contact/update`, data }) } -// 删除crm联系人 +// 删除 CRM 联系人 export const deleteContact = async (id: number) => { return await request.delete({ url: `/crm/contact/delete?id=` + id }) } -// 导出crm联系人 Excel +// 导出 CRM 联系人 Excel export const exportContact = async (params) => { return await request.download({ url: `/crm/contact/export-excel`, params }) } -export const simpleAlllist = async () => { - return await request.get({ url: `/crm/contact/simpleAlllist` }) + +// 获得 CRM 联系人列表(精简) +export const getSimpleContactList = async () => { + return await request.get({ url: `/crm/contact/simple-all-list` }) } diff --git a/src/api/crm/contract/index.ts b/src/api/crm/contract/index.ts index bf438323..3498e843 100644 --- a/src/api/crm/contract/index.ts +++ b/src/api/crm/contract/index.ts @@ -22,32 +22,37 @@ export interface ContractVO { remark: string } -// 查询合同列表 +// 查询 CRM 合同列表 export const getContractPage = async (params) => { return await request.get({ url: `/crm/contract/page`, params }) } -// 查询合同详情 +// 查询 CRM 联系人列表,基于指定客户 +export const getContractPageByCustomer = async (params: any) => { + return await request.get({ url: `/crm/contract/page-by-customer`, params }) +} + +// 查询 CRM 合同详情 export const getContract = async (id: number) => { return await request.get({ url: `/crm/contract/get?id=` + id }) } -// 新增合同 +// 新增 CRM 合同 export const createContract = async (data: ContractVO) => { return await request.post({ url: `/crm/contract/create`, data }) } -// 修改合同 +// 修改 CRM 合同 export const updateContract = async (data: ContractVO) => { return await request.put({ url: `/crm/contract/update`, data }) } -// 删除合同 +// 删除 CRM 合同 export const deleteContract = async (id: number) => { return await request.delete({ url: `/crm/contract/delete?id=` + id }) } -// 导出合同 Excel +// 导出 CRM 合同 Excel export const exportContract = async (params) => { return await request.download({ url: `/crm/contract/export-excel`, params }) } diff --git a/src/api/crm/customer/index.ts b/src/api/crm/customer/index.ts index 59260cbc..5ef43950 100644 --- a/src/api/crm/customer/index.ts +++ b/src/api/crm/customer/index.ts @@ -62,3 +62,8 @@ export const deleteCustomer = async (id: number) => { export const exportCustomer = async (params) => { return await request.download({ url: `/crm/customer/export-excel`, params }) } + +// 客户列表 +export const queryAllList = async () => { + return await request.get({ url: `/crm/customer/query-all-list` }) +} 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/api/crm/permission/index.ts b/src/api/crm/permission/index.ts index 79f69451..c221b089 100644 --- a/src/api/crm/permission/index.ts +++ b/src/api/crm/permission/index.ts @@ -12,36 +12,60 @@ export interface PermissionVO { createTime?: Date } -// 查询团队成员列表 +/** + * CRM 业务类型枚举 + * + * @author HUIHUI + */ +export enum BizTypeEnum { + CRM_LEADS = 1, // 线索 + CRM_CUSTOMER = 2, // 客户 + CRM_CONTACT = 3, // 联系人 + CRM_BUSINESS = 5, // 商机 + CRM_CONTRACT = 6 // 合同 +} + +/** + * CRM 数据权限级别枚举 + */ +export enum PermissionLevelEnum { + OWNER = 1, // 负责人 + READ = 2, // 只读 + WRITE = 3 // 读写 +} + +// 获得数据权限列表(查询团队成员列表) export const getPermissionList = async (params) => { return await request.get({ url: `/crm/permission/list`, params }) } -// 新增团队成员 +// 创建数据权限(新增团队成员) export const createPermission = async (data: PermissionVO) => { return await request.post({ url: `/crm/permission/create`, data }) } -// 修改团队成员权限级别 +// 编辑数据权限(修改团队成员权限级别) export const updatePermission = async (data) => { return await request.put({ url: `/crm/permission/update`, data }) } -// 删除团队成员 -export const deletePermission = async (params) => { +// 删除数据权限(删除团队成员) +export const deletePermissionBatch = async (params) => { return await request.delete({ url: '/crm/permission/delete', params }) } -// 退出团队 -export const quitTeam = async (id) => { +// 删除自己的数据权限(退出团队) +export const deleteSelfPermission = async (id) => { return await request.delete({ url: '/crm/permission/quit-team?id=' + id }) } +// TODO @puhui999:调整下位置 // 领取公海数据 export const receive = async (data: { bizType: number; bizId: number }) => { return await request.put({ url: `/crm/permission/receive`, data }) } +// TODO @puhui999:调整下位置 // 数据放入公海 export const putPool = async (data: { bizType: number; bizId: number }) => { return await request.put({ url: `/crm/permission/put-pool`, data }) diff --git a/src/api/crm/receivable/index.ts b/src/api/crm/receivable/index.ts index 0828bf4b..a9812a76 100644 --- a/src/api/crm/receivable/index.ts +++ b/src/api/crm/receivable/index.ts @@ -6,46 +6,47 @@ export interface ReceivableVO { planId: number customerId: number contractId: number - checkStatus: number + auditStatus: number processInstanceId: number returnTime: Date returnType: string price: number ownerUserId: number - batchId: number sort: number - dataScope: number - dataScopeDeptIds: string - status: number remark: string } -// 查询回款管理列表 +// 查询回款列表 export const getReceivablePage = async (params) => { return await request.get({ url: `/crm/receivable/page`, params }) } -// 查询回款管理详情 +// 查询回款列表 +export const getReceivablePageByCustomer = async (params) => { + return await request.get({ url: `/crm/receivable/page-by-customer`, params }) +} + +// 查询回款详情 export const getReceivable = async (id: number) => { return await request.get({ url: `/crm/receivable/get?id=` + id }) } -// 新增回款管理 +// 新增回款 export const createReceivable = async (data: ReceivableVO) => { return await request.post({ url: `/crm/receivable/create`, data }) } -// 修改回款管理 +// 修改回款 export const updateReceivable = async (data: ReceivableVO) => { return await request.put({ url: `/crm/receivable/update`, data }) } -// 删除回款管理 +// 删除回款 export const deleteReceivable = async (id: number) => { return await request.delete({ url: `/crm/receivable/delete?id=` + id }) } -// 导出回款管理 Excel +// 导出回款 Excel export const exportReceivable = async (params) => { return await request.download({ url: `/crm/receivable/export-excel`, params }) } diff --git a/src/api/crm/receivablePlan/index.ts b/src/api/crm/receivable/plan/index.ts similarity index 88% rename from src/api/crm/receivablePlan/index.ts rename to src/api/crm/receivable/plan/index.ts index f80f0572..3ddbd7db 100644 --- a/src/api/crm/receivablePlan/index.ts +++ b/src/api/crm/receivable/plan/index.ts @@ -23,6 +23,11 @@ export const getReceivablePlanPage = async (params) => { return await request.get({ url: `/crm/receivable-plan/page`, params }) } +// 查询回款计划列表 +export const getReceivablePlanPageByCustomer = async (params) => { + return await request.get({ url: `/crm/receivable-plan/page-by-customer`, params }) +} + // 查询回款计划详情 export const getReceivablePlan = async (id: number) => { return await request.get({ url: `/crm/receivable-plan/get?id=` + id }) 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/api/infra/fileConfig/index.ts b/src/api/infra/fileConfig/index.ts index b72f18b7..ba400542 100644 --- a/src/api/infra/fileConfig/index.ts +++ b/src/api/infra/fileConfig/index.ts @@ -17,7 +17,7 @@ export interface FileClientConfig { export interface FileConfigVO { id: number name: string - storage: any + storage?: number master: boolean visible: boolean config: FileClientConfig diff --git a/src/api/infra/jobLog/index.ts b/src/api/infra/jobLog/index.ts index f429cd9e..dc80f1d9 100644 --- a/src/api/infra/jobLog/index.ts +++ b/src/api/infra/jobLog/index.ts @@ -7,8 +7,8 @@ export interface JobLogVO { handlerParam: string cronExpression: string executeIndex: string - beginTime: string - endTime: string + beginTime: Date + endTime: Date duration: string status: number createTime: string diff --git a/src/api/mall/promotion/article/index.ts b/src/api/mall/promotion/article/index.ts index 824958ad..9184c7af 100644 --- a/src/api/mall/promotion/article/index.ts +++ b/src/api/mall/promotion/article/index.ts @@ -17,7 +17,7 @@ export interface ArticleVO { } // 查询文章管理列表 -export const getArticlePage = async (params) => { +export const getArticlePage = async (params: any) => { return await request.get({ url: `/promotion/article/page`, params }) } diff --git a/src/api/mp/user/index.ts b/src/api/mp/user/index.ts index d954e9eb..b89acc7d 100644 --- a/src/api/mp/user/index.ts +++ b/src/api/mp/user/index.ts @@ -26,6 +26,6 @@ export const getUserPage = (query) => { // 同步公众号粉丝 export const syncUser = (accountId) => { return request.post({ - url: '/mp/tag/sync?accountId=' + accountId + url: '/mp/user/sync?accountId=' + accountId }) } diff --git a/src/api/system/dept/index.ts b/src/api/system/dept/index.ts index d995f13d..04d5c880 100644 --- a/src/api/system/dept/index.ts +++ b/src/api/system/dept/index.ts @@ -14,7 +14,7 @@ export interface DeptVO { // 查询部门(精简)列表 export const getSimpleDeptList = async (): Promise => { - return await request.get({ url: '/system/dept/list-all-simple' }) + return await request.get({ url: '/system/dept/simple-list' }) } // 查询部门列表 diff --git a/src/api/system/dict/dict.data.ts b/src/api/system/dict/dict.data.ts index 87e7dce7..f4286481 100644 --- a/src/api/system/dict/dict.data.ts +++ b/src/api/system/dict/dict.data.ts @@ -14,8 +14,8 @@ export type DictDataVO = { } // 查询字典数据(精简)列表 -export const listSimpleDictData = () => { - return request.get({ url: '/system/dict-data/list-all-simple' }) +export const getSimpleDictDataList = () => { + return request.get({ url: '/system/dict-data/simple-list' }) } // 查询字典数据列表 @@ -45,5 +45,5 @@ export const deleteDictData = (id: number) => { // 导出字典类型数据 export const exportDictData = (params) => { - return request.get({ url: '/system/dict-data/export', params }) + return request.download({ url: '/system/dict-data/export', params }) } diff --git a/src/api/system/dict/dict.type.ts b/src/api/system/dict/dict.type.ts index ed2969f1..eaa5fb6d 100644 --- a/src/api/system/dict/dict.type.ts +++ b/src/api/system/dict/dict.type.ts @@ -40,5 +40,5 @@ export const deleteDictType = (id: number) => { } // 导出字典类型 export const exportDictType = (params) => { - return request.get({ url: '/system/dict-type/export', params }) + return request.download({ url: '/system/dict-type/export', params }) } diff --git a/src/api/system/loginLog/index.ts b/src/api/system/loginLog/index.ts index f275c3e2..7296f257 100644 --- a/src/api/system/loginLog/index.ts +++ b/src/api/system/loginLog/index.ts @@ -7,6 +7,7 @@ export interface LoginLogVO { userId: number userType: number username: string + result: number status: number userIp: string userAgent: string diff --git a/src/api/system/mail/account/index.ts b/src/api/system/mail/account/index.ts index 9e10c92a..b8506b73 100644 --- a/src/api/system/mail/account/index.ts +++ b/src/api/system/mail/account/index.ts @@ -37,5 +37,5 @@ export const deleteMailAccount = async (id: number) => { // 获得邮箱账号精简列表 export const getSimpleMailAccountList = async () => { - return request.get({ url: '/system/mail-account/list-all-simple' }) + return request.get({ url: '/system/mail-account/simple-list' }) } diff --git a/src/api/system/menu/index.ts b/src/api/system/menu/index.ts index 4bb9a871..5a806682 100644 --- a/src/api/system/menu/index.ts +++ b/src/api/system/menu/index.ts @@ -20,7 +20,7 @@ export interface MenuVO { // 查询菜单(精简)列表 export const getSimpleMenusList = () => { - return request.get({ url: '/system/menu/list-all-simple' }) + return request.get({ url: '/system/menu/simple-list' }) } // 查询菜单列表 diff --git a/src/api/system/notify/message/index.ts b/src/api/system/notify/message/index.ts index 29036b95..e407c77d 100644 --- a/src/api/system/notify/message/index.ts +++ b/src/api/system/notify/message/index.ts @@ -13,6 +13,7 @@ export interface NotifyMessageVO { templateParams: string readStatus: boolean readTime: Date + createTime: Date } // 查询站内信消息列表 diff --git a/src/api/system/notify/template/index.ts b/src/api/system/notify/template/index.ts index cd0e1223..44355dff 100644 --- a/src/api/system/notify/template/index.ts +++ b/src/api/system/notify/template/index.ts @@ -6,7 +6,7 @@ export interface NotifyTemplateVO { nickname: string code: string content: string - type: number + type?: number params: string status: number remark: string diff --git a/src/api/system/post/index.ts b/src/api/system/post/index.ts index 405db387..0e6f2ca1 100644 --- a/src/api/system/post/index.ts +++ b/src/api/system/post/index.ts @@ -17,7 +17,7 @@ export const getPostPage = async (params: PageParam) => { // 获取岗位精简信息列表 export const getSimplePostList = async (): Promise => { - return await request.get({ url: '/system/post/list-all-simple' }) + return await request.get({ url: '/system/post/simple-list' }) } // 查询岗位详情 diff --git a/src/api/system/role/index.ts b/src/api/system/role/index.ts index 93636ff0..3325ddec 100644 --- a/src/api/system/role/index.ts +++ b/src/api/system/role/index.ts @@ -24,7 +24,7 @@ export const getRolePage = async (params: PageParam) => { // 查询角色(精简)列表 export const getSimpleRoleList = async (): Promise => { - return await request.get({ url: '/system/role/list-all-simple' }) + return await request.get({ url: '/system/role/simple-list' }) } // 查询角色详情 diff --git a/src/api/system/sms/smsChannel/index.ts b/src/api/system/sms/smsChannel/index.ts index f335628f..bcdaa7f9 100644 --- a/src/api/system/sms/smsChannel/index.ts +++ b/src/api/system/sms/smsChannel/index.ts @@ -19,7 +19,7 @@ export const getSmsChannelPage = (params: PageParam) => { // 获得短信渠道精简列表 export function getSimpleSmsChannelList() { - return request.get({ url: '/system/sms-channel/list-all-simple' }) + return request.get({ url: '/system/sms-channel/simple-list' }) } // 查询短信渠道详情 diff --git a/src/api/system/sms/smsTemplate/index.ts b/src/api/system/sms/smsTemplate/index.ts index 35cb489d..868ddd47 100644 --- a/src/api/system/sms/smsTemplate/index.ts +++ b/src/api/system/sms/smsTemplate/index.ts @@ -1,15 +1,15 @@ import request from '@/config/axios' export interface SmsTemplateVO { - id: number | null - type: number | null + id?: number + type?: number status: number code: string name: string content: string remark: string apiTemplateId: string - channelId: number | null + channelId?: number channelCode?: string params?: string[] createTime?: Date diff --git a/src/api/system/tenantPackage/index.ts b/src/api/system/tenantPackage/index.ts index 01d139e2..e01375a5 100644 --- a/src/api/system/tenantPackage/index.ts +++ b/src/api/system/tenantPackage/index.ts @@ -38,5 +38,5 @@ export const deleteTenantPackage = (id: number) => { } // 获取租户套餐精简信息列表 export const getTenantPackageList = () => { - return request.get({ url: '/system/tenant-package/get-simple-list' }) + return request.get({ url: '/system/tenant-package/simple-list' }) } diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index 689fec0d..beb6e515 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -77,5 +77,5 @@ export const updateUserStatus = (id: number, status: number) => { // 获取用户精简信息列表 export const getSimpleUserList = (): Promise => { - return request.get({ url: '/system/user/list-all-simple' }) + return request.get({ url: '/system/user/simple-list' }) } diff --git a/src/api/system/user/profile.ts b/src/api/system/user/profile.ts index b2623c8b..1e80e854 100644 --- a/src/api/system/user/profile.ts +++ b/src/api/system/user/profile.ts @@ -1,37 +1,25 @@ import request from '@/config/axios' -export interface ProfileDept { - id: number - name: string -} -export interface ProfileRole { - id: number - name: string -} -export interface ProfilePost { - id: number - name: string -} -export interface SocialUser { - id: number - type: number - openid: string - token: string - rawTokenInfo: string - nickname: string - avatar: string - rawUserInfo: string - code: string - state: string -} export interface ProfileVO { id: number username: string nickname: string - dept: ProfileDept - roles: ProfileRole[] - posts: ProfilePost[] - socialUsers: SocialUser[] + dept: { + id: number + name: string + } + roles: { + id: number + name: string + }[] + posts: { + id: number + name: string + }[] + socialUsers: { + type: number + openid: string + }[] email: string mobile: string sex: number diff --git a/src/components/AppLinkInput/AppLinkSelectDialog.vue b/src/components/AppLinkInput/AppLinkSelectDialog.vue new file mode 100644 index 00000000..a536ac13 --- /dev/null +++ b/src/components/AppLinkInput/AppLinkSelectDialog.vue @@ -0,0 +1,198 @@ + + + diff --git a/src/components/AppLinkInput/data.ts b/src/components/AppLinkInput/data.ts new file mode 100644 index 00000000..fd7780f1 --- /dev/null +++ b/src/components/AppLinkInput/data.ts @@ -0,0 +1,246 @@ +// APP 链接类型(需要特殊处理,例如商品详情) +export const enum APP_LINK_TYPE_ENUM { + // 拼团活动 + ACTIVITY_COMBINATION, + // 秒杀活动 + ACTIVITY_SECKILL, + // 文章详情 + ARTICLE_DETAIL, + // 优惠券详情 + COUPON_DETAIL, + // 自定义页面详情 + DIY_PAGE_DETAIL, + // 品类列表 + PRODUCT_CATEGORY_LIST, + // 商品列表 + PRODUCT_LIST, + // 商品详情 + PRODUCT_DETAIL_NORMAL, + // 拼团商品详情 + PRODUCT_DETAIL_COMBINATION, + // 积分商品详情 + PRODUCT_DETAIL_POINT, + // 秒杀商品详情 + PRODUCT_DETAIL_SECKILL +} + +// APP 链接列表(做一下持久化?) +export const APP_LINK_GROUP_LIST = [ + { + name: '商城', + links: [ + { + name: '首页', + path: '/pages/index/index' + }, + { + name: '商品分类', + path: '/pages/index/category', + type: APP_LINK_TYPE_ENUM.PRODUCT_CATEGORY_LIST + }, + { + name: '购物车', + path: '/pages/index/cart' + }, + { + name: '个人中心', + path: '/pages/index/user' + }, + { + name: '商品搜索', + path: '/pages/index/search' + }, + { + name: '自定义页面', + path: '/pages/index/page', + type: APP_LINK_TYPE_ENUM.DIY_PAGE_DETAIL + }, + { + name: '客服', + path: '/pages/chat/index' + }, + { + name: '系统设置', + path: '/pages/public/setting' + }, + { + name: '问题反馈', + path: '/pages/public/feedback' + }, + { + name: '常见问题', + path: '/pages/public/faq' + } + ] + }, + { + name: '商品', + links: [ + { + name: '商品列表', + path: '/pages/goods/list', + type: APP_LINK_TYPE_ENUM.PRODUCT_LIST + }, + { + name: '商品详情', + path: '/pages/goods/index', + type: APP_LINK_TYPE_ENUM.PRODUCT_DETAIL_NORMAL + }, + { + name: '拼团商品详情', + path: '/pages/goods/groupon', + type: APP_LINK_TYPE_ENUM.PRODUCT_DETAIL_COMBINATION + }, + { + name: '秒杀商品详情', + path: '/pages/goods/seckill', + type: APP_LINK_TYPE_ENUM.PRODUCT_DETAIL_SECKILL + }, + { + name: '积分商品详情', + path: '/pages/goods/score', + type: APP_LINK_TYPE_ENUM.PRODUCT_DETAIL_POINT + } + ] + }, + { + name: '营销活动', + links: [ + { + name: '拼团订单', + path: '/pages/activity/groupon/order' + }, + { + name: '营销商品', + path: '/pages/activity/index' + }, + { + name: '拼团活动', + path: '/pages/activity/groupon/list', + type: APP_LINK_TYPE_ENUM.ACTIVITY_COMBINATION + }, + { + name: '秒杀活动', + path: '/pages/activity/seckill/list', + type: APP_LINK_TYPE_ENUM.ACTIVITY_SECKILL + }, + { + name: '签到中心', + path: '/pages/app/sign' + }, + { + name: '积分商城', + path: '/pages/app/score-shop' + }, + { + name: '优惠券中心', + path: '/pages/coupon/list' + }, + { + name: '优惠券详情', + path: '/pages/coupon/detail', + type: APP_LINK_TYPE_ENUM.COUPON_DETAIL + }, + { + name: '文章详情', + path: '/pages/public/richtext', + type: APP_LINK_TYPE_ENUM.ARTICLE_DETAIL + } + ] + }, + { + name: '分销商城', + links: [ + { + name: '分销中心', + path: '/pages/commission/index' + }, + { + name: '申请分销商', + path: '/pages/commission/apply' + }, + { + name: '推广商品', + path: '/pages/commission/goods' + }, + { + name: '分销订单', + path: '/pages/commission/order' + }, + { + name: '分享记录', + path: '/pages/commission/share-log' + }, + { + name: '我的团队', + path: '/pages/commission/team' + } + ] + }, + { + name: '支付', + links: [ + { + name: '充值余额', + path: '/pages/pay/recharge' + }, + { + name: '充值记录', + path: '/pages/pay/recharge-log' + }, + { + name: '申请提现', + path: '/pages/pay/withdraw' + }, + { + name: '提现记录', + path: '/pages/pay/withdraw-log' + } + ] + }, + { + name: '用户中心', + links: [ + { + name: '用户信息', + path: '/pages/user/info' + }, + { + name: '用户订单', + path: '/pages/order/list' + }, + { + name: '售后订单', + path: '/pages/order/aftersale/list' + }, + { + name: '商品收藏', + path: '/pages/user/goods-collect' + }, + { + name: '浏览记录', + path: '/pages/user/goods-log' + }, + { + name: '地址管理', + path: '/pages/user/address/list' + }, + { + name: '发票管理', + path: '/pages/user/invoice/list' + }, + { + name: '用户佣金', + path: '/pages/user/wallet/commission' + }, + { + name: '用户余额', + path: '/pages/user/wallet/money' + }, + { + name: '用户积分', + path: '/pages/user/wallet/score' + } + ] + } +] diff --git a/src/components/AppLinkInput/index.vue b/src/components/AppLinkInput/index.vue new file mode 100644 index 00000000..a01386b9 --- /dev/null +++ b/src/components/AppLinkInput/index.vue @@ -0,0 +1,43 @@ + + diff --git a/src/components/DiyEditor/components/ComponentContainerProperty.vue b/src/components/DiyEditor/components/ComponentContainerProperty.vue index d6540354..a8187898 100644 --- a/src/components/DiyEditor/components/ComponentContainerProperty.vue +++ b/src/components/DiyEditor/components/ComponentContainerProperty.vue @@ -1,6 +1,6 @@ - + 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/ProductList/config.ts b/src/components/DiyEditor/components/mobile/ProductList/config.ts index 436de405..1f168323 100644 --- a/src/components/DiyEditor/components/mobile/ProductList/config.ts +++ b/src/components/DiyEditor/components/mobile/ProductList/config.ts @@ -1,6 +1,6 @@ import { ComponentStyle, DiyComponent } from '@/components/DiyEditor/util' -/** 商品卡片属性 */ +/** 商品栏属性 */ export interface ProductListProperty { // 布局类型:双列 | 三列 | 水平滑动 layoutType: 'twoCol' | 'threeCol' | 'horizSwiper' diff --git a/src/components/DiyEditor/components/mobile/ProductList/index.vue b/src/components/DiyEditor/components/mobile/ProductList/index.vue index 8a35628e..3ba63677 100644 --- a/src/components/DiyEditor/components/mobile/ProductList/index.vue +++ b/src/components/DiyEditor/components/mobile/ProductList/index.vue @@ -66,7 +66,7 @@ import { ProductListProperty } from './config' import * as ProductSpuApi from '@/api/mall/product/spu' -/** 商品卡片 */ +/** 商品栏 */ defineOptions({ name: 'ProductList' }) // 定义属性 const props = defineProps<{ property: ProductListProperty }>() diff --git a/src/components/DiyEditor/components/mobile/ProductList/property.vue b/src/components/DiyEditor/components/mobile/ProductList/property.vue index 872affc3..e9cf7c01 100644 --- a/src/components/DiyEditor/components/mobile/ProductList/property.vue +++ b/src/components/DiyEditor/components/mobile/ProductList/property.vue @@ -88,7 +88,7 @@ import { ProductListProperty } from './config' import { usePropertyForm } from '@/components/DiyEditor/util' import SpuShowcase from '@/views/mall/product/spu/components/SpuShowcase.vue' -// 商品卡片属性面板 +// 商品栏属性面板 defineOptions({ name: 'ProductListProperty' }) const props = defineProps<{ modelValue: ProductListProperty }>() diff --git a/src/components/DiyEditor/components/mobile/PromotionArticle/config.ts b/src/components/DiyEditor/components/mobile/PromotionArticle/config.ts new file mode 100644 index 00000000..c6270c2a --- /dev/null +++ b/src/components/DiyEditor/components/mobile/PromotionArticle/config.ts @@ -0,0 +1,25 @@ +import { ComponentStyle, DiyComponent } from '@/components/DiyEditor/util' + +/** 营销文章属性 */ +export interface PromotionArticleProperty { + // 文章编号 + id: number + // 组件样式 + style: ComponentStyle +} + +// 定义组件 +export const component = { + id: 'PromotionArticle', + name: '营销文章', + icon: 'ph:article-medium', + property: { + style: { + bgType: 'color', + bgColor: '', + marginLeft: 8, + marginRight: 8, + marginBottom: 8 + } as ComponentStyle + } +} as DiyComponent diff --git a/src/components/DiyEditor/components/mobile/PromotionArticle/index.vue b/src/components/DiyEditor/components/mobile/PromotionArticle/index.vue new file mode 100644 index 00000000..cca3635d --- /dev/null +++ b/src/components/DiyEditor/components/mobile/PromotionArticle/index.vue @@ -0,0 +1,27 @@ + + + + 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/components/mobile/PromotionCombination/config.ts b/src/components/DiyEditor/components/mobile/PromotionCombination/config.ts new file mode 100644 index 00000000..3ec2a75b --- /dev/null +++ b/src/components/DiyEditor/components/mobile/PromotionCombination/config.ts @@ -0,0 +1,64 @@ +import { ComponentStyle, DiyComponent } from '@/components/DiyEditor/util' + +/** 拼团属性 */ +export interface PromotionCombinationProperty { + // 布局类型:单列 | 三列 + layoutType: 'oneCol' | 'threeCol' + // 商品字段 + fields: { + // 商品名称 + name: PromotionCombinationFieldProperty + // 商品价格 + price: PromotionCombinationFieldProperty + } + // 角标 + badge: { + // 是否显示 + show: boolean + // 角标图片 + imgUrl: string + } + // 上圆角 + borderRadiusTop: number + // 下圆角 + borderRadiusBottom: number + // 间距 + space: number + // 拼团活动编号 + activityId: number + // 组件样式 + style: ComponentStyle +} +// 商品字段 +export interface PromotionCombinationFieldProperty { + // 是否显示 + show: boolean + // 颜色 + color: string +} + +// 定义组件 +export const component = { + id: 'PromotionCombination', + name: '拼团', + icon: 'mdi:account-group', + property: { + activityId: undefined, + layoutType: 'oneCol', + fields: { + name: { show: true, color: '#000' }, + price: { show: true, color: '#ff3000' } + }, + badge: { show: false, imgUrl: '' }, + borderRadiusTop: 8, + borderRadiusBottom: 8, + space: 8, + style: { + bgType: 'color', + bgColor: '', + marginLeft: 8, + marginRight: 8, + marginBottom: 8 + } as ComponentStyle + } +} as DiyComponent diff --git a/src/components/DiyEditor/components/mobile/PromotionCombination/index.vue b/src/components/DiyEditor/components/mobile/PromotionCombination/index.vue new file mode 100644 index 00000000..fe6f3a83 --- /dev/null +++ b/src/components/DiyEditor/components/mobile/PromotionCombination/index.vue @@ -0,0 +1,125 @@ + + + + diff --git a/src/components/DiyEditor/components/mobile/PromotionCombination/property.vue b/src/components/DiyEditor/components/mobile/PromotionCombination/property.vue new file mode 100644 index 00000000..ec09dc45 --- /dev/null +++ b/src/components/DiyEditor/components/mobile/PromotionCombination/property.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/src/components/DiyEditor/components/mobile/PromotionSeckill/config.ts b/src/components/DiyEditor/components/mobile/PromotionSeckill/config.ts new file mode 100644 index 00000000..800398be --- /dev/null +++ b/src/components/DiyEditor/components/mobile/PromotionSeckill/config.ts @@ -0,0 +1,64 @@ +import { ComponentStyle, DiyComponent } from '@/components/DiyEditor/util' + +/** 秒杀属性 */ +export interface PromotionSeckillProperty { + // 布局类型:单列 | 三列 + layoutType: 'oneCol' | 'threeCol' + // 商品字段 + fields: { + // 商品名称 + name: PromotionSeckillFieldProperty + // 商品价格 + price: PromotionSeckillFieldProperty + } + // 角标 + badge: { + // 是否显示 + show: boolean + // 角标图片 + imgUrl: string + } + // 上圆角 + borderRadiusTop: number + // 下圆角 + borderRadiusBottom: number + // 间距 + space: number + // 秒杀活动编号 + activityId: number + // 组件样式 + style: ComponentStyle +} +// 商品字段 +export interface PromotionSeckillFieldProperty { + // 是否显示 + show: boolean + // 颜色 + color: string +} + +// 定义组件 +export const component = { + id: 'PromotionSeckill', + name: '秒杀', + icon: 'mdi:calendar-time', + property: { + activityId: undefined, + layoutType: 'oneCol', + fields: { + name: { show: true, color: '#000' }, + price: { show: true, color: '#ff3000' } + }, + badge: { show: false, imgUrl: '' }, + borderRadiusTop: 8, + borderRadiusBottom: 8, + space: 8, + style: { + bgType: 'color', + bgColor: '', + marginLeft: 8, + marginRight: 8, + marginBottom: 8 + } as ComponentStyle + } +} as DiyComponent diff --git a/src/components/DiyEditor/components/mobile/PromotionSeckill/index.vue b/src/components/DiyEditor/components/mobile/PromotionSeckill/index.vue new file mode 100644 index 00000000..1b4113b6 --- /dev/null +++ b/src/components/DiyEditor/components/mobile/PromotionSeckill/index.vue @@ -0,0 +1,125 @@ + + + + diff --git a/src/components/DiyEditor/components/mobile/PromotionSeckill/property.vue b/src/components/DiyEditor/components/mobile/PromotionSeckill/property.vue new file mode 100644 index 00000000..87537822 --- /dev/null +++ b/src/components/DiyEditor/components/mobile/PromotionSeckill/property.vue @@ -0,0 +1,112 @@ + + + + + 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/components/DiyEditor/components/mobile/UserCard/config.ts b/src/components/DiyEditor/components/mobile/UserCard/config.ts new file mode 100644 index 00000000..7b337761 --- /dev/null +++ b/src/components/DiyEditor/components/mobile/UserCard/config.ts @@ -0,0 +1,21 @@ +import { ComponentStyle, DiyComponent } from '@/components/DiyEditor/util' + +/** 用户卡片属性 */ +export interface UserCardProperty { + // 组件样式 + style: ComponentStyle +} + +// 定义组件 +export const component = { + id: 'UserCard', + name: '用户卡片', + icon: 'mdi:user-card-details', + property: { + style: { + bgType: 'color', + bgColor: '', + marginBottom: 8 + } as ComponentStyle + } +} as DiyComponent diff --git a/src/components/DiyEditor/components/mobile/UserCard/index.vue b/src/components/DiyEditor/components/mobile/UserCard/index.vue new file mode 100644 index 00000000..14b447c6 --- /dev/null +++ b/src/components/DiyEditor/components/mobile/UserCard/index.vue @@ -0,0 +1,29 @@ + + + + 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 @@ + + + + + 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/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/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..0efc9371 --- /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 @@ + + + + + diff --git a/src/components/DiyEditor/util.ts b/src/components/DiyEditor/util.ts index a8d0e095..606e53a2 100644 --- a/src/components/DiyEditor/util.ts +++ b/src/components/DiyEditor/util.ts @@ -109,13 +109,19 @@ export const PAGE_LIBS = [ }, { name: '商品组件', extended: true, components: ['ProductCard', 'ProductList'] }, { - name: '会员组件', + name: '用户组件', extended: true, components: ['UserCard', 'UserOrder', 'UserWallet', 'UserCoupon'] }, { name: '营销组件', extended: true, - components: ['CombinationCard', 'SeckillCard', 'PointCard', 'CouponCard'] + components: [ + 'PromotionCombination', + 'PromotionSeckill', + 'PromotionPoint', + 'CouponCard', + 'PromotionArticle' + ] } ] as DiyComponentLibrary[] diff --git a/src/components/RouterSearch/index.vue b/src/components/RouterSearch/index.vue index c12385af..e9310b8f 100644 --- a/src/components/RouterSearch/index.vue +++ b/src/components/RouterSearch/index.vue @@ -1,5 +1,5 @@ - diff --git a/src/views/crm/contact/detail/index.vue b/src/views/crm/contact/detail/index.vue index 03bbb4e6..6a6e71bf 100644 --- a/src/views/crm/contact/detail/index.vue +++ b/src/views/crm/contact/detail/index.vue @@ -46,7 +46,7 @@ - + {{ contact.customerName }} @@ -63,33 +63,18 @@ - + - 活动 - 邮件 - 工商信息 - - - - 客户 - - - - 团队成员 - + 跟进记录 商机 - - - 合同 + 附件 + + + + 操作记录 - - - 回款 - - 回访 - 发票 @@ -105,10 +90,10 @@ import ContactBasicInfo from '@/views/crm/contact/detail/ContactBasicInfo.vue' import ContactDetails from '@/views/crm/contact/detail/ContactDetails.vue' import ContactForm from '@/views/crm/contact/ContactForm.vue' import { formatDate } from '@/utils/formatTime' -import * as CustomerApi from '@/api/crm/customer' // TODO 芋艿:后面在 review 么? -defineOptions({ name: 'ContactDetail' }) +defineOptions({ name: 'CrmContactDetail' }) + const { delView } = useTagsViewStore() // 视图操作 const route = useRoute() const { currentRoute } = useRouter() // 路由 diff --git a/src/views/crm/contact/index.vue b/src/views/crm/contact/index.vue index d81b0449..70ba4b8c 100644 --- a/src/views/crm/contact/index.vue +++ b/src/views/crm/contact/index.vue @@ -1,7 +1,6 @@ - - {{ customer.ownerUserName }} - - - {{ customer.creatorName }} - + {{ customer.ownerUserName }} + {{ customer.creatorName }} {{ customer.createTime ? formatDate(customer.createTime) : '空' }} @@ -87,9 +65,10 @@ 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']) +const activeNames = ref(['basicInfo', 'systemInfo']) // 展示的折叠面板 diff --git a/src/views/crm/customer/detail/index.vue b/src/views/crm/customer/detail/index.vue index c88137fa..f21a6ac3 100644 --- a/src/views/crm/customer/detail/index.vue +++ b/src/views/crm/customer/detail/index.vue @@ -1,142 +1,53 @@ - 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/views/crm/receivable/index.vue b/src/views/crm/receivable/index.vue index ac1def09..c5478c2f 100644 --- a/src/views/crm/receivable/index.vue +++ b/src/views/crm/receivable/index.vue @@ -17,15 +17,6 @@ class="!w-240px" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 搜索 重置 @@ -194,7 +60,7 @@ @@ -207,7 +73,7 @@ /> @@ -266,7 +132,7 @@ diff --git a/src/views/crm/receivablePlan/index.vue b/src/views/crm/receivable/plan/index.vue similarity index 65% rename from src/views/crm/receivablePlan/index.vue rename to src/views/crm/receivable/plan/index.vue index 2a18b931..decd79bc 100644 --- a/src/views/crm/receivablePlan/index.vue +++ b/src/views/crm/receivable/plan/index.vue @@ -26,96 +26,6 @@ class="!w-240px" /> - - - - - - - - - - - - - - - - - - - 搜索 重置 @@ -171,7 +81,7 @@ @@ -224,10 +134,10 @@ \ 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 @@ > - +