From ce374a9f4920a2d0e5ebe81a9872436088db6d55 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期五, 07 三月 2025 15:57:34 +0800 Subject: [PATCH] 高级页面主Form日期字段转换格式,否则出错 --- src/views/tigerprojects/system/lowcode/normalDrawer.vue | 86 ++++++++++++++++++++++++++---------------- 1 files changed, 53 insertions(+), 33 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/normalDrawer.vue b/src/views/tigerprojects/system/lowcode/normalDrawer.vue index d597a63..140dfaa 100644 --- a/src/views/tigerprojects/system/lowcode/normalDrawer.vue +++ b/src/views/tigerprojects/system/lowcode/normalDrawer.vue @@ -36,7 +36,7 @@ @register="registerDrawer" showFooter :title="getTitle" - width="600px" + width="580px" @ok="handleSubmit" > <BasicForm @register="registerForm"> @@ -49,7 +49,8 @@ preIcon="search|svg" /> <GeneralModal - @register="registerItemAdd" + v-if="showModal" + @register="useModaldata[item][0]" @success="(d, u) => handleItemSuccess(d, u, item)" /> </template> @@ -57,16 +58,18 @@ </BasicDrawer> </template> <script lang="ts" setup> - import { ref, computed, unref, onMounted } from 'vue'; + import { ref, computed, unref, onMounted, nextTick } from 'vue'; import { BasicForm, FormSchema, useForm } from '/@/components/Form/index'; import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; import { useGlobSetting } from '/@/hooks/setting'; import GeneralModal from '/@/views/components/GeneralModal.vue'; import { SaveEntity, fetchJson, formatValues } from '/@/api/tigerapi/system'; import { useModal } from '/@/components/Modal'; - import { isNullOrUnDef } from '/@/utils/is'; + import { isNullOrUnDef, isTimeViaRegExp8601 } from '/@/utils/is'; import { useMessage } from '/@/hooks/web/useMessage'; import { useI18n } from '/@/hooks/web/useI18n'; + import { useUserStore } from '/@/store/modules/user'; + import { dateUtil } from '/@/utils/dateUtil'; const emit = defineEmits(['success', 'register']); const { t } = useI18n(); @@ -78,7 +81,8 @@ const formSchema = ref([]); const crudColSlots = ref<any>([]); const isExistSql = ref(''); - const [registerItemAdd, { openModal: openItemModal }] = useModal(); + const useModaldata = ref({}); + const showModal = ref(false); const [registerForm, { resetFields, setFieldsValue, getFieldsValue, validate }] = useForm({ labelWidth: 140, schemas: formSchema as unknown as FormSchema[], @@ -89,32 +93,47 @@ }); const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { + showModal.value = false; /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */ + let m = {} as any; try { - import(`./entityts/${data?.name}.ts`) - .then((m) => { - const [{ GetCrudForm }] = m.default(); - isUpdate.value = !!data?.isUpdate; - ifSave.value = !!data?.ifSave; - entityName.value = data?.entityName; - formSchema.value = GetCrudForm(data?.name, data?.data, data.record); - crudColSlots.value = data?.crudColSlots; - isExistSql.value = data?.isExistSql; - resetFields(); - setDrawerProps({ confirmLoading: false }); - - if (unref(isUpdate)) { - setFieldsValue({ - ...data.record, - }); - } else { - if (!isNullOrUnDef(data?.keyFieldValues)) { - setFieldsValue(data?.keyFieldValues); - } - } - }) - .catch(() => {}); + m = await import(`./entityts/${data?.keyName}.ts`); } catch (e) {} + isUpdate.value = !!data?.isUpdate; + ifSave.value = !!data?.ifSave; + entityName.value = data?.entityName; + formSchema.value = !isNullOrUnDef(m.default) + ? m.default()[0].GetCrudForm(data?.name, data?.data, data.record) + : data?.formJson; + crudColSlots.value = data?.crudColSlots; + isExistSql.value = data?.isExistSql; + /* 濡傛灉鎻掓Ы鍒楄〃涓嶄负绌猴紝鍒欏垵濮嬪寲妯℃�佺獥鍙� */ + if (!isNullOrUnDef(crudColSlots.value) && crudColSlots.value.length > 0) { + await nextTick(); + crudColSlots.value.forEach((d) => { + useModaldata.value[d] = useModal(); + }); + showModal.value = true; + } + resetFields(); + setDrawerProps({ confirmLoading: false }); + + if (unref(isUpdate)) { + /* 寰幆瀛楁鍚嶏紝鍒ゆ柇濡傛灉鏄椂闂寸殑灏辫浆鎹㈡垚dayjs鏍煎紡锛屽惁鍒欐椂闂撮�夋嫨鍣ㄤ細鍑洪敊 */ + const Keys = Object.getOwnPropertyNames(data.record); + for (const k in Keys) { + if (!isNullOrUnDef(data.record[Keys[k]]) && isTimeViaRegExp8601(data.record[Keys[k]])) { + data.record[Keys[k]] = dateUtil(data.record[Keys[k]]); //杞崲鎴恉ayjs鏍煎紡 + } + } + setFieldsValue({ + ...data.record, + }); + } else { + if (!isNullOrUnDef(data?.keyFieldValues)) { + setFieldsValue(data?.keyFieldValues); + } + } }); const getTitle = computed(() => (!unref(isUpdate) ? '鏂板' : '缂栬緫')); @@ -127,7 +146,8 @@ values = formatValues(values); setDrawerProps({ confirmLoading: true }); // TODO custom api - if (!unref(ifSave)) { + if (unref(ifSave)) { + values.AUTH_ORG = useUserStore().getUserInfo.orgCode; //淇濆瓨 SaveEntity( values, @@ -137,7 +157,7 @@ ).then((action) => { if (action.IsSuccessed) { closeDrawer(); - emit('success'); + emit('success', values, { isUpdate: isUpdate.value }); } else { createErrorModal({ title: t('sys.api.errorTip'), content: action.Message }); } @@ -185,10 +205,10 @@ import(`./entityts/${getFieldsValue()[`${item.replace(/add/, '')}PSelect_0`]}.ts`) .then((m) => { const [{ OpenSelectItem }] = m.default(); - OpenSelectItem(openItemModal); + OpenSelectItem(useModaldata.value[item][1].openModal); }) - .catch(() => { - openItemModal(true, { + .catch((err) => { + useModaldata.value[item][1].openModal(true, { title: '鐗╂枡鍒楄〃', schemas: [ { -- Gitblit v1.9.3