From e35a32e985a2ebf1e6a3bf4a33d656c64d557c7c Mon Sep 17 00:00:00 2001 From: qsh <> Date: Tue, 11 Jun 2024 20:29:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/clue/clueCache.js | 11 +++ src/api/clue/index.js | 36 +++++++ src/components/Form/src/Form.vue | 8 +- .../Form/src/components/useRenderCheckbox.tsx | 6 +- .../Form/src/components/useRenderRadio.tsx | 6 +- .../Form/src/components/useRenderSelect.tsx | 10 +- src/components/SSTable/index.vue | 73 ++++++--------- src/components/Search/src/Search.vue | 87 ++++++++--------- src/hooks/web/useCrudSchemas.ts | 6 +- src/utils/index.ts | 11 +++ src/views/Clue/Pool/Comp/DrawerClue.vue | 27 +++--- src/views/Clue/Pool/index.vue | 93 +++++++++++++++---- 12 files changed, 233 insertions(+), 141 deletions(-) create mode 100644 src/api/clue/clueCache.js create mode 100644 src/api/clue/index.js diff --git a/src/api/clue/clueCache.js b/src/api/clue/clueCache.js new file mode 100644 index 0000000..9c9349e --- /dev/null +++ b/src/api/clue/clueCache.js @@ -0,0 +1,11 @@ +import request from '@/config/axios' + +// 查询用户配置 +export const getClueCache = async (params) => { + return await request.get({ url: '/admin-api/crm/param-user-setting/get-by-user', params }) +} + +// 保存用户配置 +export const setClueCache = async (data) => { + return await request.post({ url: '/admin-api/crm/param-user-setting/save', data }) +} diff --git a/src/api/clue/index.js b/src/api/clue/index.js new file mode 100644 index 0000000..c142494 --- /dev/null +++ b/src/api/clue/index.js @@ -0,0 +1,36 @@ +import request from '@/config/axios' + +// 查询(精简)列表 +export const getSimpleClueList = async () => { + return await request.get({ url: '/admin-api/crm/sch-clue/list-all-simple' }) +} + +// 查询列表 +export const getCluePage = async (params) => { + return await request.get({ url: '/admin-api/crm/sch-clue/page', params }) +} + +// 查询详情 +export const getClue = async (id) => { + return await request.get({ url: '/admin-api/crm/sch-clue/get?id=' + id }) +} + +// 新增 +export const createClue = async (data) => { + return await request.post({ url: '/admin-api/crm/sch-clue/create', data: data }) +} + +// 修改 +export const updateClue = async (params) => { + return await request.put({ url: '/admin-api/crm/sch-clue/update', data: params }) +} + +// 删除 +export const deleteClue = async (id) => { + return await request.delete({ url: '/admin-api/crm/sch-clue/delete?id=' + id }) +} + +// 通用查询数量 +export const getClueCount = async () => { + return await request.get({ url: '/admin-api/crm/sch-clue/get-clue-num' }) +} diff --git a/src/components/Form/src/Form.vue b/src/components/Form/src/Form.vue index 4c2a1b3..7fc5dd1 100644 --- a/src/components/Form/src/Form.vue +++ b/src/components/Form/src/Form.vue @@ -181,11 +181,7 @@ export default defineComponent({ const slotsMap: Recordable = { ...setItemComponentSlots(slots, item?.componentProps?.slots, item.field) } - if ( - item?.component !== 'SelectV2' && - item?.component !== 'Cascader' && - item?.componentProps?.options - ) { + if (item?.component !== 'SelectV2' && item?.component !== 'Cascader' && item?.options) { slotsMap.default = () => renderOptions(item) } @@ -236,6 +232,8 @@ export default defineComponent({ vModel={formModel.value[item.field]} {...(autoSetPlaceholder && setTextPlaceholder(item))} {...setComponentProps(item)} + format={item.component == 'DatePicker' ? 'YYYY-MM-DD' : null} + value-format={item.component == 'DatePicker' ? 'YYYY-MM-DD' : null} style={baseSty + item.componentProps?.style} // eslint-disable-next-line prettier/prettier {...(notRenderOptions.includes(item?.component as string) && item?.componentProps?.options diff --git a/src/components/Form/src/components/useRenderCheckbox.tsx b/src/components/Form/src/components/useRenderCheckbox.tsx index e151839..c3e71fb 100644 --- a/src/components/Form/src/components/useRenderCheckbox.tsx +++ b/src/components/Form/src/components/useRenderCheckbox.tsx @@ -5,12 +5,12 @@ import { defineComponent } from 'vue' export const useRenderCheckbox = () => { const renderCheckboxOptions = (item: FormSchema) => { // 如果有别名,就取别名 - const labelAlias = item?.componentProps?.optionsAlias?.labelField - const valueAlias = item?.componentProps?.optionsAlias?.valueField + const labelAlias = item?.componentProps?.optionsAlias?.labelField || 'id' + const valueAlias = item?.componentProps?.optionsAlias?.valueField || 'name' const Com = (item.component === 'Checkbox' ? ElCheckbox : ElCheckboxButton) as ReturnType< typeof defineComponent > - return item?.componentProps?.options?.map((option) => { + return item?.options?.map((option) => { const { ...other } = option return ( diff --git a/src/components/Form/src/components/useRenderRadio.tsx b/src/components/Form/src/components/useRenderRadio.tsx index d1005ca..c3aae80 100644 --- a/src/components/Form/src/components/useRenderRadio.tsx +++ b/src/components/Form/src/components/useRenderRadio.tsx @@ -5,12 +5,12 @@ import { defineComponent } from 'vue' export const useRenderRadio = () => { const renderRadioOptions = (item: FormSchema) => { // 如果有别名,就取别名 - const labelAlias = item?.componentProps?.optionsAlias?.labelField - const valueAlias = item?.componentProps?.optionsAlias?.valueField + const labelAlias = item?.componentProps?.optionsAlias?.labelField || 'id' + const valueAlias = item?.componentProps?.optionsAlias?.valueField || 'name' const Com = (item.component === 'Radio' ? ElRadio : ElRadioButton) as ReturnType< typeof defineComponent > - return item?.componentProps?.options?.map((option) => { + return item?.options?.map((option) => { const { ...other } = option return ( diff --git a/src/components/Form/src/components/useRenderSelect.tsx b/src/components/Form/src/components/useRenderSelect.tsx index 59b72e6..f222785 100644 --- a/src/components/Form/src/components/useRenderSelect.tsx +++ b/src/components/Form/src/components/useRenderSelect.tsx @@ -9,12 +9,12 @@ export const useRenderSelect = (slots: Slots) => { const renderSelectOptions = (item: FormSchema) => { // 如果有别名,就取别名 const labelAlias = item?.componentProps?.optionsAlias?.labelField - return item?.componentProps?.options?.map((option) => { - if (option?.options?.length) { + return item?.options?.map((option) => { + if (option?.length) { return ( {() => { - return option?.options?.map((v) => { + return option?.map((v) => { return renderSelectOptionItem(item, v) }) }} @@ -29,8 +29,8 @@ export const useRenderSelect = (slots: Slots) => { // 渲染 select option item const renderSelectOptionItem = (item: FormSchema, option: ComponentOptions) => { // 如果有别名,就取别名 - const labelAlias = item?.componentProps?.optionsAlias?.labelField - const valueAlias = item?.componentProps?.optionsAlias?.valueField + const labelAlias = item?.componentProps?.optionsAlias?.labelField || 'id' + const valueAlias = item?.componentProps?.optionsAlias?.valueField || 'name' const { label, value, ...other } = option diff --git a/src/components/SSTable/index.vue b/src/components/SSTable/index.vue index bcdfeb0..5440bf7 100644 --- a/src/components/SSTable/index.vue +++ b/src/components/SSTable/index.vue @@ -28,7 +28,7 @@ @end="onDragEnd" > @@ -48,9 +48,8 @@