From 85eda80c134bd051f1c620f3c8eac67b2e916fdf Mon Sep 17 00:00:00 2001 From: GaoF Date: Thu, 1 Aug 2024 17:09:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E8=B5=84=E6=96=99=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OperationalInformation/index.vue | 1 + src/hook/useFormHandler.js | 71 ++++- src/layout/components/tags.vue | 2 +- src/utils/useTabs.js | 2 +- src/views/basicData/brand/detail/index.vue | 49 ++-- .../client/detail/CustomerCategoryForm.vue | 10 +- src/views/basicData/client/detail/index.vue | 2 +- src/views/basicData/materiel/detail/index.vue | 91 ++---- .../basicData/publicAccount/detail/index.vue | 48 ++-- src/views/basicData/stash/detail/index.vue | 57 ++-- .../basicData/unit/columns/unitColumns.js | 41 ++- .../basicData/unit/detail/UnitGroupForm.vue | 4 +- src/views/basicData/unit/detail/index.vue | 261 ++++++++++-------- src/views/basicData/unit/index.vue | 155 ++++------- 14 files changed, 436 insertions(+), 358 deletions(-) diff --git a/src/components/OperationalInformation/index.vue b/src/components/OperationalInformation/index.vue index 9903a9f..8750e81 100644 --- a/src/components/OperationalInformation/index.vue +++ b/src/components/OperationalInformation/index.vue @@ -59,6 +59,7 @@ watch( () => props.detailData, () => { + console.log(props.detailData, 'props.detailData') detailDataProps.value = props.detailData }, { diff --git a/src/hook/useFormHandler.js b/src/hook/useFormHandler.js index 474e2c9..8471f88 100644 --- a/src/hook/useFormHandler.js +++ b/src/hook/useFormHandler.js @@ -1,6 +1,7 @@ import { useRoute, useRouter } from 'vue-router' import { cloneDeep } from 'lodash-es' import useTabs from '@/utils/useTabs' +import extendFieldApi from '@/api/base/extendfield/extendFieldApi' /** * 使用表单处理程序封装表单的提交、初始化和回退逻辑。 @@ -13,7 +14,14 @@ export default function useFormHandler(formItems, api) { const state = reactive({ PAGE_TYPE: '' }) - let detailData = reactive({}) + let extendFormData = ref({}) + // 操作信息 + let inform = reactive({ + createUserName: '', + createTime: '', + updateUserName: '', + updateTime: '' + }) // 初始化表单数据对象 let formData = reactive({}) @@ -86,7 +94,7 @@ export default function useFormHandler(formItems, api) { */ const handleBack = () => { useTabs.close(route) - router.go(-1) // 优化为通用的返回上一页操作 + // router.push('/basicData/unit') // 优化为通用的返回上一页操作 } /** @@ -107,6 +115,17 @@ export default function useFormHandler(formItems, api) { } } + // 操作信息 + for (let key in inform) { + if (res[key] !== undefined) { + inform[key] = res[key] + } + } + + // 扩展字段 + if (res.extJson) { + extendFormData.value = JSON.parse(res.extJson) + } return res } catch (error) { console.error('API request failed:', error) @@ -114,12 +133,58 @@ export default function useFormHandler(formItems, api) { } } + /** + * 扩展字段。 + */ + const getExtendField = async (model) => { + let extendData = [] + // 字段扩展 + const resExtendField = await extendFieldApi.extendFieldTypeList({ + enabledState: 'ENABLE', + model + }) + + console.log(resExtendField, 'resExtendField') + + if (resExtendField) { + resExtendField.forEach((item) => { + const showValues = JSON.parse(item.showValues) + let options = [] + showValues.forEach((value) => { + options.push({ + value: value.name, + label: value.name + }) + }) + extendData.push({ + label: item.name, + name: item.fieldName, + type: item.showType, + span: 6, + attrs: { + placeholder: '请输入内容', + options + } + }) + }) + + extendData.forEach((item) => { + if (item.fieldName) extendFormData.value[item.fieldName] = null + }) + return extendData + } else { + return [] + } + } + // 返回包含各种处理函数和状态的对象 return { formData, submitLoading, formRefs, - detailData, + inform, + extendFormData, + getExtendField, onSubmit, handleBack, fetchData, diff --git a/src/layout/components/tags.vue b/src/layout/components/tags.vue index 16abe77..cc03329 100644 --- a/src/layout/components/tags.vue +++ b/src/layout/components/tags.vue @@ -110,7 +110,7 @@ activeKey.value = to.path if (to.name) { vStore.pushViewTags(to) - // kStore.pushKeepLive(to.name) + kStore.pushKeepLive(to.name) } if (tagList.value.length - 1 > maxTabs.value) { const firstTag = tagList.value[1] diff --git a/src/utils/useTabs.js b/src/utils/useTabs.js index a8f582e..f23bd47 100644 --- a/src/utils/useTabs.js +++ b/src/utils/useTabs.js @@ -31,12 +31,12 @@ export default { close(tag) { const route = tag || router.currentRoute.value const store = viewTagsStore() - console.log(route, 'route') store.removeViewTags(route) iframeStore().removeIframeList(route) keepAliveStore().removeKeepLive(route.name) const tagList = store.viewTags const latestView = tagList.slice(-1)[0] + console.log(latestView, 'route') if (latestView) { router.push(latestView) } else { diff --git a/src/views/basicData/brand/detail/index.vue b/src/views/basicData/brand/detail/index.vue index a36ef10..fc2a040 100644 --- a/src/views/basicData/brand/detail/index.vue +++ b/src/views/basicData/brand/detail/index.vue @@ -15,21 +15,24 @@ /> - + + + + + + + + + + + + diff --git a/src/views/basicData/client/detail/CustomerCategoryForm.vue b/src/views/basicData/client/detail/CustomerCategoryForm.vue index ddbc88f..6e1d2b1 100644 --- a/src/views/basicData/client/detail/CustomerCategoryForm.vue +++ b/src/views/basicData/client/detail/CustomerCategoryForm.vue @@ -42,6 +42,9 @@ + + +