From b6163e1bed94b4d02d1b6f01fdc2eb3f15ca22e3 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期一, 07 十月 2024 15:47:46 +0800
Subject: [PATCH] 保存默认工艺路线,工单批次优化

---
 src/views/tigerprojects/system/lowcode/normalDrawer.vue |   61 ++++++++++++++++++++----------
 1 files changed, 41 insertions(+), 20 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/normalDrawer.vue b/src/views/tigerprojects/system/lowcode/normalDrawer.vue
index d21e398..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,21 +93,39 @@
   });
 
   const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
+    showModal.value = false;
+    /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
+    let m = {} as any;
+    try {
+      m = await import(`./entityts/${data?.keyName}.ts`);
+    } catch (e) {}
     isUpdate.value = !!data?.isUpdate;
     ifSave.value = !!data?.ifSave;
     entityName.value = data?.entityName;
-    // formSchema.value = await fetchJson(
-    //   `${globSetting.downloadUrl}/LowCode/${unref(entityName)}/${
-    //     entityName.value
-    //   }_addEditform.json`,
-    // );
-    formSchema.value = data?.formJson;
+    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,
       });
@@ -124,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,
@@ -134,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 });
           }
@@ -158,8 +181,7 @@
   function handleItemSuccess(d, u, item) {
     /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
     try {
-      import(`./entityts/${getFieldsValue()[`${item.replace(/add/, '')}PSelect_0`]}.ts`
-      )
+      import(`./entityts/${getFieldsValue()[`${item.replace(/add/, '')}PSelect_0`]}.ts`)
         .then((m) => {
           const [{ GetSelectSuccess }] = m.default();
           setFieldsValue(GetSelectSuccess(d, u));
@@ -180,14 +202,13 @@
   function handleSelectItem(item) {
     /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */
     try {
-      import(`./entityts/${getFieldsValue()[`${item.replace(/add/, '')}PSelect_0`]}.ts`
-      )
+      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