From 1094c29e03ee0efc7121babda0532c8138aa801f Mon Sep 17 00:00:00 2001
From: YangYuGang <1378265336@qq.com>
Date: 星期六, 08 三月 2025 20:20:54 +0800
Subject: [PATCH] 收货单、退货单页面添加

---
 src/views/tigerprojects/system/lowcode/setting/pageDetail.vue |  503 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 276 insertions(+), 227 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/setting/pageDetail.vue b/src/views/tigerprojects/system/lowcode/setting/pageDetail.vue
index 306d5e1..8161cf2 100644
--- a/src/views/tigerprojects/system/lowcode/setting/pageDetail.vue
+++ b/src/views/tigerprojects/system/lowcode/setting/pageDetail.vue
@@ -4,7 +4,7 @@
  * @version: 
  * @Date: 2024-05-30 22:00:44
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-17 11:14:27
+ * @LastEditTime: 2024-07-30 11:00:14
 -->
 <!-- eslint-disable prettier/prettier -->
 <template>
@@ -14,89 +14,14 @@
     content="杩欐槸浣庝唬鐮侀〉闈㈢鐞嗭紝鍦ㄨ繖鑳藉鏍规嵁瀹炰綋绫婚厤缃鍒犳敼鍔熻兘椤甸潰銆�"
     @back="goBack"
   >
-    <a-card title="鏌ヨ鏉′欢閰嶇疆" :bordered="false">
-      <BasicForm @register="register">
-        <template #add="{ field }">
-          <a-button
-            v-if="field"
-            class="mt-1 ml-1"
-            size="small"
-            @click="handleSelecNew"
-            preIcon="search|svg"
-          />
-          <EntityModal @register="registerNewAdd" @success="handleNewSuccess" />
-        </template>
-        <template #condAdd="{ field }">
-          <a-button
-            v-if="field"
-            class="mt-1 ml-1"
-            size="small"
-            @click="condAdd"
-            preIcon="add_blue|svg"
-          />
-        </template>
-        <template #subtract="{ field }">
-          <a-button
-            v-if="field"
-            class="mt-1 ml-1"
-            size="small"
-            @click="del(field)"
-            preIcon="subtract|svg"
-          />
-        </template>
-        <template #[item]="{ model, field }" v-for="(item, index) in searchSlots" :key="item">
-          <a-input-group compact>
-            <ApiSelect
-              style="width: 25%"
-              :api="getEntityPropertieList"
-              :params="{ StartWith: getFieldsValue().ASSEMBLY_NAME, Namespace: 'Tiger.Model' }"
-              v-model:value="model[field]"
-              resultField="items"
-              label-field="DisplayName"
-              valueField="Name"
-              @change="(value, option) => change(value, option, field)"
-            />
-            <a-input v-model:value="objInputs[field]" style="width: 55%" />
-            <Select
-              ref="select"
-              v-model:value="searchSelectVals[field]"
-              style="width: 20%"
-              :options="options"
-              :readonly="true"
-              @change="(value, option) => searchOnChange(value, option, field)"
-            />
-          </a-input-group>
-        </template>
-        <template #[item]="{ model, field }" v-for="item in swSlots" :key="item">
-          <a-switch v-model:checked="model[field]" />
-        </template>
-        <template #[item]="{ model, field }" v-for="item in searchApiSlots" :key="item">
-          <a-input v-model:value="model[field]" />
-        </template>
-        <template #[item]="{ model, field }" v-for="item in searchParamsSlots" :key="item">
-          <a-input v-model:value="model[field]" />
-        </template>
-        <template #[item]="{ model, field }" v-for="item in searchResultFieldSlots" :key="item">
-          <a-input v-model:value="model[field]" />
-        </template>
-        <template #[item]="{ model, field }" v-for="item in searchLabelFieldSlots" :key="item">
-          <a-input v-model:value="model[field]" />
-        </template>
-        <template #[item]="{ model, field }" v-for="item in searchValueFieldSlots" :key="item">
-          <a-input v-model:value="model[field]" />
-        </template>
-        <template #[item]="{ model, field }" v-for="item in searchOptionsSlots" :key="item">
-          <a-input v-model:value="model[field]" />
-        </template>
-        <template #[item]="{ model, field }" v-for="item in searchOnChangeSlots" :key="item">
-          <a-input v-model:value="model[field]" />
-        </template>
-        <template #[item]="{ model, field }" v-for="item in searchPOptionsSlots" :key="item">
-          <a-input v-model:value="model[field]" />
-        </template>
-      </BasicForm>
-    </a-card>
-    <a-card title="涓昏〃鏍奸厤缃�" :bordered="false" class="!mt-5">
+    <template #footer>
+      <a-tabs default-active-key="detail" v-model:activeKey="currentKey">
+        <a-tab-pane key="mainKey" tab="涓昏〃鏍奸厤缃�" />
+        <a-tab-pane key="searchKey" tab="鏌ヨ鏉′欢閰嶇疆" />
+        <a-tab-pane key="crudKey" tab="澧炲垹鏀归厤缃�" />
+      </a-tabs>
+    </template>
+    <a-card :bordered="false" v-show="currentKey == 'mainKey'">
       <div>
         <BasicForm @register="registerMain">
           <template #add="{ field }">
@@ -155,12 +80,99 @@
             <a-switch v-model:checked="model[field]" />
           </template>
           <template #[item]="{ model, field }" v-for="item in mainIaSlots" :key="item">
-            <a-input v-model:value="model[field]" />
+            <!-- <a-input v-model:value="model[field]" /> -->
+            <CodeEditor v-model:value="model[field]" :mode="modeValue" :bordered="true" />
           </template>
         </BasicForm>
       </div>
     </a-card>
-    <a-card title="澧炲垹鏀归厤缃�" :bordered="false" class="!mt-5">
+    <a-card :bordered="false" v-show="currentKey == 'searchKey'">
+      <BasicForm @register="register">
+        <template #add="{ field }">
+          <a-button
+            v-if="field"
+            class="mt-1 ml-1"
+            size="small"
+            @click="handleSelecNew"
+            preIcon="search|svg"
+          />
+          <EntityModal @register="registerNewAdd" @success="handleNewSuccess" />
+        </template>
+        <template #condAdd="{ field }">
+          <a-button
+            v-if="field"
+            class="mt-1 ml-1"
+            size="small"
+            @click="condAdd(false)"
+            preIcon="add_blue|svg"
+          />
+        </template>
+        <template #subtract="{ field }">
+          <a-button
+            v-if="field"
+            class="mt-1 ml-1"
+            size="small"
+            @click="del(field)"
+            preIcon="subtract|svg"
+          />
+        </template>
+        <template #[item]="{ model, field }" v-for="(item, index) in searchSlots" :key="item">
+          <a-input-group compact>
+            <ApiSelect
+              v-if="IsSearch == 'Y'"
+              style="width: 25%"
+              :api="getEntityPropertieList"
+              :params="{ StartWith: getFieldsValue().ASSEMBLY_NAME, Namespace: 'Tiger.Model' }"
+              v-model:value="model[field]"
+              resultField="items"
+              label-field="DisplayName"
+              valueField="Name"
+              @change="(value, option) => change(value, option, field)"
+            />
+            <a-input v-if="IsSearch == 'N'" v-model:value="objInputs2[field]" style="width: 25%" />
+            <a-input v-model:value="objInputs[field]" style="width: 55%" />
+            <Select
+              ref="select"
+              v-model:value="searchSelectVals[field]"
+              style="width: 20%"
+              :options="options"
+              :readonly="true"
+              @change="(value, option) => searchOnChange(value, option, field)"
+            />
+          </a-input-group>
+        </template>
+        <template #[item]="{ model, field }" v-for="item in swSlots" :key="item">
+          <a-switch v-model:checked="model[field]" />
+        </template>
+        <template #[item]="{ model, field }" v-for="item in searchApiSlots" :key="item">
+          <a-input v-model:value="model[field]" />
+        </template>
+        <template #[item]="{ model, field }" v-for="item in searchParamsSlots" :key="item">
+          <!-- <a-input v-model:value="model[field]" /> -->
+          <CodeEditor v-model:value="model[field]" :mode="searchModeValue" :bordered="true" />
+        </template>
+        <template #[item]="{ model, field }" v-for="item in searchResultFieldSlots" :key="item">
+          <a-input v-model:value="model[field]" />
+        </template>
+        <template #[item]="{ model, field }" v-for="item in searchLabelFieldSlots" :key="item">
+          <a-input v-model:value="model[field]" />
+        </template>
+        <template #[item]="{ model, field }" v-for="item in searchValueFieldSlots" :key="item">
+          <a-input v-model:value="model[field]" />
+        </template>
+        <template #[item]="{ model, field }" v-for="item in searchOptionsSlots" :key="item">
+          <!-- <a-input v-model:value="model[field]" /> -->
+          <CodeEditor v-model:value="model[field]" :mode="searchModeValue" :bordered="true" />
+        </template>
+        <template #[item]="{ model, field }" v-for="item in searchOnChangeSlots" :key="item">
+          <a-input v-model:value="model[field]" />
+        </template>
+        <template #[item]="{ model, field }" v-for="item in searchPOptionsSlots" :key="item">
+          <a-input v-model:value="model[field]" />
+        </template>
+      </BasicForm>
+    </a-card>
+    <a-card :bordered="false" v-show="currentKey == 'crudKey'">
       <BasicForm @register="registerCrud">
         <template #add="{ field }">
           <a-button
@@ -233,7 +245,8 @@
           <a-input v-model:value="model[field]" />
         </template>
         <template #[item]="{ model, field }" v-for="item in crudParamsSlots" :key="item">
-          <a-input v-model:value="model[field]" />
+          <!-- <a-input v-model:value="model[field]" /> -->
+          <CodeEditor v-model:value="model[field]" :mode="searchModeValue" :bordered="true" />
         </template>
         <template #[item]="{ model, field }" v-for="item in crudResultFieldSlots" :key="item">
           <a-input v-model:value="model[field]" />
@@ -245,7 +258,8 @@
           <a-input v-model:value="model[field]" />
         </template>
         <template #[item]="{ model, field }" v-for="item in crudOptionsSlots" :key="item">
-          <a-input v-model:value="model[field]" />
+          <!-- <a-input v-model:value="model[field]" /> -->
+          <CodeEditor v-model:value="model[field]" :mode="searchModeValue" :bordered="true" />
         </template>
         <template #[item]="{ model, field }" v-for="item in crudOnChangeSlots" :key="item">
           <a-input v-model:value="model[field]" />
@@ -264,7 +278,7 @@
 </template>
 <script lang="ts" setup>
   import { BasicForm, FormSchema, useForm } from '/@/components/Form';
-  import { nextTick, onMounted, ref, unref } from 'vue';
+  import { onMounted, ref, unref } from 'vue';
   import { Card, InputGroup, Select, Input, Switch } from 'ant-design-vue';
   import { ApiSelect } from '/@/components/Form/index';
   import { useRoute, useRouter } from 'vue-router';
@@ -273,7 +287,6 @@
   import { newFormSchema, crudSchemas, mainSchemas } from './setting.data';
   import { useTabs } from '/@/hooks/web/useTabs';
   import EntityModal from '/@/views/components/EntityModal.vue';
-  import { buildUUID } from '/@/utils/uuid';
   import { SelectTypes } from 'ant-design-vue/es/select';
   import { useMultipleTabStore } from '/@/store/modules/multipleTab';
   import { useModal } from '/@/components/Modal';
@@ -281,11 +294,15 @@
   import { EntityPropertie, SYS_LOW_CODE } from '/@/api/tigerapi/model/systemModel';
   import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
   import { useUserStore } from '/@/store/modules/user';
+  import { CodeEditor, MODE } from '/@/components/CodeEditor';
+  import { Tabs } from 'ant-design-vue';
 
   const ACard = Card;
   const AInputGroup = InputGroup;
   const AInput = Input;
   const ASwitch = Switch;
+  const ATabs = Tabs;
+  const currentKey = ref('mainKey');
   const route = useRoute();
   const go = useGo();
   const objParams = ref(JSON.parse(decodeURI(route.params?.id as string)));
@@ -362,6 +379,7 @@
   /* 鏌ヨ */
   const SearchEntName = ref('');
   const objInputs = ref({} as { [key: string]: any });
+  const objInputs2 = ref({} as { [key: string]: any });
   const searchProperties = ref([] as EntityPropertie[]);
   const searchSlots = ref([] as string[]);
   const searchSelectVals = ref({} as { [key: string]: any });
@@ -374,6 +392,8 @@
   const searchOptionsSlots = ref([] as string[]);
   const searchOnChangeSlots = ref([] as string[]);
   const searchPOptionsSlots = ref([] as string[]);
+  const searchModeValue = ref<MODE>(MODE.JSON);
+  const IsSearch = ref('Y');
   /* 涓昏〃 */
   const MainEntName = ref('');
   const mainSelectVals = ref({} as { [key: string]: any });
@@ -384,6 +404,7 @@
   const mainsSwSlots = ref([] as string[]);
   const mainwSwSlots = ref([] as string[]);
   const mainIaSlots = ref([] as string[]);
+  const modeValue = ref<MODE>(MODE.JAVASCRIPT);
   /* 澧炲垹鏀� */
   const CrudEntName = ref('');
   const crudInputs = ref({} as { [key: string]: any });
@@ -465,108 +486,130 @@
       getEntity({
         sqlcmd: "ID ='" + objParams.value.ID + "'",
         entityName: 'SYS_LOW_CODE',
-        order: ''
+        order: '',
       }).then((data) => {
         /* 鏌ヨ鍔犺浇 */
-        var searchForms = JSON.parse(data.Data.Items[0].SEARCH_FORM_JSON);
+        const searchData = JSON.parse(data.Data.Items[0].SEARCH_FORM_JSON);
+        var searchForms = isNullOrEmpty(searchData.fields) ? searchData : searchData.fields;
         SearchEntName.value = data.Data.Items[0].SEARCH_ASSY_NAME;
-        setFieldsValue({ ASSEMBLY_NAME: data.Data.Items[0].SEARCH_ASSY_NAME });
-        searchForms = searchForms.filter((item) => !item['field'].toString().startsWith(SearchEntName.value) && !item['field'].toString().endsWith('PSelect_0'));
+        setFieldsValue({
+          ASSEMBLY_NAME: data.Data.Items[0].SEARCH_ASSY_NAME,
+          IsSearch: searchData.search ? 'Y' : 'N',
+        });
+        IsSearch.value = searchData.search ? 'Y' : 'N';
+        searchForms = searchForms.filter(
+          (item) =>
+            !item['field'].toString().startsWith(SearchEntName.value) &&
+            !item['field'].toString().endsWith('PSelect_0'),
+        );
         for (const i in searchForms) {
-          condAdd();
-            if (searchForms[i]['component'] == 'ApiSelect') {
-              addApiSelectOption(`${SearchEntName.value}${Number(i) + 1}a`, 'search');
-              setFieldsValue({
-                [`ApiSelect${SearchEntName.value}${Number(i) + 1}a`]:
-                  searchForms[i]['componentProps']['api'],
-                [`Params${SearchEntName.value}${Number(i) + 1}a`]: JSON.stringify(
-                  searchForms[i]['componentProps']['params'],
-                ),
-                [`Result${SearchEntName.value}${Number(i) + 1}a`]:
-                  searchForms[i]['componentProps']['resultField'],
-                [`Label${SearchEntName.value}${Number(i) + 1}a`]:
-                  searchForms[i]['componentProps']['labelField'],
-                [`Value${SearchEntName.value}${Number(i) + 1}a`]:
-                  searchForms[i]['componentProps']['valueField'],
-              });
-            }
-            if (searchForms[i]['component'] == 'Select') {
-              addSelectOption(`${SearchEntName.value}${Number(i) + 1}a`, 'search');
-              setFieldsValue({
-                [`XSelect${SearchEntName.value}${Number(i) + 1}a`]: JSON.stringify(
-                  searchForms[i]['componentProps']['options'],
-                ),
-                [`XOnChange${SearchEntName.value}${Number(i) + 1}a`]:
-                  searchForms[i]['componentProps']['onChange'],
-              });
-            }
+          condAdd(true);
+          if (searchForms[i]['component'] == 'ApiSelect') {
+            addApiSelectOption(`${SearchEntName.value}${Number(i) + 1}a`, 'search');
             setFieldsValue({
-              [`${SearchEntName.value}${Number(i) + 1}a`]: searchForms[i]['field'],
-              [`InputNumber${Number(i) + 1}`]: searchForms[i]['colProps'].span,
-              [`Switch${Number(i) + 1}`]: searchForms[i]['ifShow'],
+              [`ApiSelect${SearchEntName.value}${Number(i) + 1}a`]:
+                searchForms[i]['componentProps']['api'],
+              [`Params${SearchEntName.value}${Number(i) + 1}a`]: JSON.stringify(
+                searchForms[i]['componentProps']['params'],
+              ),
+              [`Result${SearchEntName.value}${Number(i) + 1}a`]:
+                searchForms[i]['componentProps']['resultField'],
+              [`Label${SearchEntName.value}${Number(i) + 1}a`]:
+                searchForms[i]['componentProps']['labelField'],
+              [`Value${SearchEntName.value}${Number(i) + 1}a`]:
+                searchForms[i]['componentProps']['valueField'],
             });
-            objInputs.value[`${SearchEntName.value}${Number(i) + 1}a`] = searchForms[i]['label'];
-            searchSelectVals.value[`${SearchEntName.value}${Number(i) + 1}a`] = searchForms[i]['comp']? searchForms[i]['comp']: searchForms[i]['component'];
-            if(searchForms[i]['comp']){
-              addPopSelectOption(`${SearchEntName.value}${Number(i) + 1}a`, 'search');
-              setFieldsValue({
-                [`PSelect${SearchEntName.value}${Number(i) + 1}a`]: searchForms[i]['entityName'],
-              });
-            }
+          }
+          if (searchForms[i]['component'] == 'Select') {
+            addSelectOption(`${SearchEntName.value}${Number(i) + 1}a`, 'search');
+            setFieldsValue({
+              [`XSelect${SearchEntName.value}${Number(i) + 1}a`]: JSON.stringify(
+                searchForms[i]['componentProps']['options'],
+              ),
+              [`XOnChange${SearchEntName.value}${Number(i) + 1}a`]:
+                searchForms[i]['componentProps']['onChange'],
+            });
+          }
+          setFieldsValue({
+            [`${SearchEntName.value}${Number(i) + 1}a`]: searchForms[i]['field'],
+            [`InputNumber${Number(i) + 1}`]: searchForms[i]['colProps'].span,
+            [`Switch${Number(i) + 1}`]: searchForms[i]['ifShow'],
+          });
+          objInputs.value[`${SearchEntName.value}${Number(i) + 1}a`] = searchForms[i]['label'];
+          objInputs2.value[`${SearchEntName.value}${Number(i) + 1}a`] = searchForms[i]['field'];
+          searchSelectVals.value[`${SearchEntName.value}${Number(i) + 1}a`] = searchForms[i]['comp']
+            ? searchForms[i]['comp']
+            : searchForms[i]['component'];
+          if (searchForms[i]['comp']) {
+            addPopSelectOption(`${SearchEntName.value}${Number(i) + 1}a`, 'search');
+            setFieldsValue({
+              [`PSelect${SearchEntName.value}${Number(i) + 1}a`]: searchForms[i]['entityName'],
+            });
+          }
         }
         /* 澧炲垹鏀瑰姞杞� */
         var crudForms = JSON.parse(data.Data.Items[0].FORM_JSON);
         CrudEntName.value = data.Data.Items[0].CRUD_ASSY_NAME;
         setFieldsValueCrud({ crudAssemblyName: data.Data.Items[0].CRUD_ASSY_NAME });
-        crudForms = crudForms.filter((item) => !item['field'].toString().startsWith(CrudEntName.value) && !item['field'].toString().endsWith('PSelect_0'));
+        crudForms = crudForms.filter(
+          (item) =>
+            !item['field'].toString().startsWith(CrudEntName.value) &&
+            !item['field'].toString().endsWith('PSelect_0'),
+        );
         for (const i in crudForms) {
           crudCondAdd();
-            if (crudForms[i]['component'] == 'ApiSelect') {
-              addApiSelectOption(`${CrudEntName.value}${Number(i) + 1}a`, 'crud');
-              setFieldsValueCrud({
-                [`ApiSelect${CrudEntName.value}${Number(i) + 1}a`]:
-                  crudForms[i]['componentProps']['api'],
-                [`Params${CrudEntName.value}${Number(i) + 1}a`]: JSON.stringify(
-                  crudForms[i]['componentProps']['params'],
-                ),
-                [`Result${CrudEntName.value}${Number(i) + 1}a`]:
-                  crudForms[i]['componentProps']['resultField'],
-                [`Label${CrudEntName.value}${Number(i) + 1}a`]:
-                  crudForms[i]['componentProps']['labelField'],
-                [`Value${CrudEntName.value}${Number(i) + 1}a`]:
-                  crudForms[i]['componentProps']['valueField'],
-              });
-            }
-            if (crudForms[i]['component'] == 'Select') {
-              addSelectOption(`${CrudEntName.value}${Number(i) + 1}a`, 'crud');
-              setFieldsValueCrud({
-                [`XSelect${CrudEntName.value}${Number(i) + 1}a`]: JSON.stringify(
-                  crudForms[i]['componentProps']['options'],
-                ),
-                [`XOnChange${CrudEntName.value}${Number(i) + 1}a`]:
-                  crudForms[i]['componentProps']['onChange'],
-              });
-            }
+          if (crudForms[i]['component'] == 'ApiSelect') {
+            addApiSelectOption(`${CrudEntName.value}${Number(i) + 1}a`, 'crud');
             setFieldsValueCrud({
-              [`${CrudEntName.value}${Number(i) + 1}a`]: crudForms[i]['field'],
-              [`InputNumber${Number(i) + 1}`]: crudForms[i]['colProps'].span,
-              [`Switch${Number(i) + 1}`]: crudForms[i]['show'],
-              [`rSwitch${Number(i) + 1}`]: crudForms[i]['required'],
+              [`ApiSelect${CrudEntName.value}${Number(i) + 1}a`]:
+                crudForms[i]['componentProps']['api'],
+              [`Params${CrudEntName.value}${Number(i) + 1}a`]: JSON.stringify(
+                crudForms[i]['componentProps']['params'],
+              ),
+              [`Result${CrudEntName.value}${Number(i) + 1}a`]:
+                crudForms[i]['componentProps']['resultField'],
+              [`Label${CrudEntName.value}${Number(i) + 1}a`]:
+                crudForms[i]['componentProps']['labelField'],
+              [`Value${CrudEntName.value}${Number(i) + 1}a`]:
+                crudForms[i]['componentProps']['valueField'],
             });
-            crudInputs.value[`${CrudEntName.value}${Number(i) + 1}a`] = crudForms[i]['label'];
-            crudSelectVals.value[`${CrudEntName.value}${Number(i) + 1}a`] = crudForms[i]['comp']? crudForms[i]['comp']: crudForms[i]['component'];
-            if(crudForms[i]['comp']){
-              addPopSelectOption(`${CrudEntName.value}${Number(i) + 1}a`, 'crud');
-              setFieldsValueCrud({
-                [`PSelect${CrudEntName.value}${Number(i) + 1}a`]: crudForms[i]['entityName'],
-              });
-            }
-            crudIsExistVals.value[`${CrudEntName.value}${Number(i) + 1}a`] = crudForms[i]['isexist'];
+          }
+          if (crudForms[i]['component'] == 'Select') {
+            addSelectOption(`${CrudEntName.value}${Number(i) + 1}a`, 'crud');
+            setFieldsValueCrud({
+              [`XSelect${CrudEntName.value}${Number(i) + 1}a`]: JSON.stringify(
+                crudForms[i]['componentProps']['options'],
+              ),
+              [`XOnChange${CrudEntName.value}${Number(i) + 1}a`]:
+                crudForms[i]['componentProps']['onChange'],
+            });
+          }
+          setFieldsValueCrud({
+            [`${CrudEntName.value}${Number(i) + 1}a`]: crudForms[i]['field'],
+            [`InputNumber${Number(i) + 1}`]: crudForms[i]['colProps'].span,
+            [`Switch${Number(i) + 1}`]: crudForms[i]['show'],
+            [`rSwitch${Number(i) + 1}`]: crudForms[i]['required'],
+          });
+          crudInputs.value[`${CrudEntName.value}${Number(i) + 1}a`] = crudForms[i]['label'];
+          crudSelectVals.value[`${CrudEntName.value}${Number(i) + 1}a`] = crudForms[i]['comp']
+            ? crudForms[i]['comp']
+            : crudForms[i]['component'];
+          if (crudForms[i]['comp']) {
+            addPopSelectOption(`${CrudEntName.value}${Number(i) + 1}a`, 'crud');
+            setFieldsValueCrud({
+              [`PSelect${CrudEntName.value}${Number(i) + 1}a`]: crudForms[i]['entityName'],
+            });
+          }
+          crudIsExistVals.value[`${CrudEntName.value}${Number(i) + 1}a`] = crudForms[i]['isexist'];
         }
         /* 涓昏〃鍔犺浇 */
         var objs = JSON.parse(data.Data.Items[0].BASE_FORM_JSON);
         MainEntName.value = data.Data.Items[0].ASSEMBLY_NAME;
-        setFieldsValueMain({ MainAssemblyName: MainEntName.value, BY_ORG:data.Data.Items[0].BY_ORG });
+        setFieldsValueMain({
+          MainAssemblyName: MainEntName.value,
+          BY_ORG: data.Data.Items[0].BY_ORG,
+          CODE_NAME: data.Data.Items[0].CODE_NAME
+        });
         for (const i in objs) {
           mainCondAdd();
           setFieldsValueMain({
@@ -596,7 +639,7 @@
 
       /* 鏌ヨ鏉′欢Json */
       const Keys = Object.getOwnPropertyNames(values);
-      var searchjsons = [];
+      var searchjsons = { search: getFieldsValue().IsSearch == 'Y', fields: [] as any[] };
       var _json = {};
       var _n = 0;
       let firstField = '';
@@ -604,7 +647,12 @@
         console.log(`${k}:${Keys[k]}`);
         if (Keys[k].toString().startsWith(getFieldsValue().ASSEMBLY_NAME)) {
           firstField = Keys[k];
-          _json['field'] = isNullOrEmpty(values[Keys[k]]) ? '' : values[Keys[k]];
+          _json['field'] =
+            getFieldsValue().IsSearch == 'N'
+              ? objInputs2.value[Keys[k]]
+              : isNullOrEmpty(values[Keys[k]])
+                ? ''
+                : values[Keys[k]];
           _json['label'] = objInputs.value[Keys[k]];
           _json['defaultValue'] = '';
           _json['component'] = searchSelectVals.value[Keys[k]];
@@ -639,17 +687,17 @@
             _json['component'] = 'Input';
             _json['comp'] = 'PoPSelect';
             _json['entityName'] = values[`PSelect${firstField}`];
-            searchjsons.push(_json);
+            searchjsons.fields.push(_json);
             _json = {};
             _json['field'] = `${firstField}PSelect_0`;
             _json['label'] = '1';
             _json['defaultValue'] = values[`PSelect${firstField}`];
             _json['component'] = 'Input';
-            _json['colProps'] = { span: 4 };
+            _json['colProps'] = { span: 1 };
             _json['ifShow'] = true;
             _json['colSlot'] = `${firstField}add`;
           }
-          searchjsons.push(_json);
+          searchjsons.fields.push(_json);
           _json = {};
           _n = 0;
         }
@@ -657,7 +705,7 @@
       console.log(JSON.stringify(searchjsons));
       /* 涓昏〃鏍糐son */
       const mKeys = Object.getOwnPropertyNames(mainvalues);
-      var mjsons = [];
+      var mjsons = [] as any[];
       var mjson = {};
       var i = 0;
       for (const k in mKeys) {
@@ -767,7 +815,7 @@
         }
       }
       console.log(JSON.stringify(cjsons));
-      var entity: SYS_LOW_CODE = {
+      var entity = {
         ID: objParams.value.ID,
         CREATE_USER: useUserStore().getUserInfo.userId as string,
         UPDATE_USER: useUserStore().getUserInfo.userId as string,
@@ -778,6 +826,7 @@
         CRUD_ASSY_NAME: getFieldsValueCrud().crudAssemblyName,
         SEARCH_ASSY_NAME: getFieldsValue().ASSEMBLY_NAME,
         BY_ORG: getFieldsValueMain().BY_ORG,
+        CODE_NAME: getFieldsValueMain().CODE_NAME,
       };
       SaveEntity(entity, unref(objParams.value.Update) == '1', 'SYS_LOW_CODE').then((action) => {
         if (action.IsSuccessed) {
@@ -802,7 +851,7 @@
   /**
    * @description: 鏌ヨ閰嶇疆绫诲悕閫夋嫨鎸夐挳鏂规硶
    * @return {*}
-   */  
+   */
   function handleSelecNew() {
     openNewModal(true, {
       data: 'content',
@@ -813,7 +862,7 @@
   /**
    * @description: 涓昏〃閰嶇疆绫诲悕閫夋嫨鎸夐挳鏂规硶
    * @return {*}
-   */  
+   */
   function mainSelectAssy() {
     openMainModal(true, {
       data: 'content',
@@ -824,7 +873,7 @@
   /**
    * @description: 澧炲垹鏀归厤缃被鍚嶉�夋嫨鎸夐挳鏂规硶
    * @return {*}
-   */  
+   */
   function handleSelectCrud() {
     openCrudModal(true, {
       data: 'content',
@@ -837,7 +886,7 @@
    * @param {*} d
    * @param {*} u
    * @return {*}
-   */  
+   */
   async function mainAssySuccess(d, u) {
     setFieldsValueMain({
       MainAssemblyName: d.values['val'],
@@ -881,7 +930,7 @@
    * @param {*} option
    * @param {*} field
    * @return {*}
-   */  
+   */
   function change(value, option, field) {
     console.log(value, option, field);
     objInputs.value[field] = option.label;
@@ -902,7 +951,7 @@
    * @param {*} option
    * @param {*} field
    * @return {*}
-   */  
+   */
   function searchOnChange(value, option, field) {
     console.log(value, option, field);
     if (value == 'ApiSelect') {
@@ -927,14 +976,14 @@
       delPSelectOption(field, 'search');
     }
   }
-  
+
   /**
    * @description: 澧炲垹鏀圭粍浠堕�夋嫨浜嬩欢
    * @param {*} value
    * @param {*} option
    * @param {*} field
    * @return {*}
-   */  
+   */
   function componentChange(value, option, field) {
     console.log(value, option, field);
     if (value == 'ApiSelect') {
@@ -965,7 +1014,7 @@
    * @param {*} field
    * @param {*} type
    * @return {*}
-   */  
+   */
   function addApiSelectOption(field: string, type: string) {
     const appendData: FormSchema[] = [
       {
@@ -973,35 +1022,35 @@
         component: 'Input',
         label: `api`,
         slot: `Api${field}`,
-        colProps: { span: 5 },
+        colProps: { span: 6 },
       },
       {
         field: `Params${field}`,
         component: 'Input',
         label: 'params',
         slot: `Params_${field}`,
-        colProps: { span: 6 },
+        colProps: { span: 18 },
       },
       {
         field: `Result${field}`,
         component: 'Input',
         label: 'resultField',
         slot: `ResultField${field}`,
-        colProps: { span: 5 },
+        colProps: { span: 8 },
       },
       {
         field: `Label${field}`,
         component: 'Input',
         label: 'labelField',
         slot: `LabelField${field}`,
-        colProps: { span: 4 },
+        colProps: { span: 8 },
       },
       {
         field: `Value${field}`,
         component: 'Input',
         label: 'valueField',
         slot: `ValueField${field}`,
-        colProps: { span: 4 },
+        colProps: { span: 8 },
       },
     ];
     switch (type) {
@@ -1020,7 +1069,7 @@
    * @description: 澧炲垹鏀笰piSelect鎻掓Ы鏁版嵁娣诲姞
    * @param {*} field
    * @return {*}
-   */  
+   */
   function crudSlotsPush(field: string) {
     crudApiSlots.value.push(`Api${field}`);
     crudParamsSlots.value.push(`Params_${field}`);
@@ -1028,12 +1077,12 @@
     crudLabelFieldSlots.value.push(`LabelField${field}`);
     crudValueFieldSlots.value.push(`ValueField${field}`);
   }
-  
+
   /**
    * @description: 鏌ヨApiSelect鎻掓Ы鏁版嵁娣诲姞
    * @param {*} field
    * @return {*}
-   */  
+   */
   function searchSlotsPush(field: string) {
     searchApiSlots.value.push(`Api${field}`);
     searchParamsSlots.value.push(`Params_${field}`);
@@ -1047,7 +1096,7 @@
    * @param {*} field
    * @param {*} type
    * @return {*}
-   */  
+   */
   function delApiSelectOption(field: string, type: string) {
     const removeData: string[] = [
       `ApiSelect${field}`,
@@ -1076,7 +1125,7 @@
    * @description: 澧炲垹鏀规彃妲藉垹闄ら」
    * @param {*} field
    * @return {*}
-   */  
+   */
   function crudSlotsSplice(field: string) {
     crudApiSlots.value = crudApiSlots.value.filter((item) => item !== `Api${field}`);
     crudParamsSlots.value = crudParamsSlots.value.filter((item) => item !== `Params_${field}`);
@@ -1090,12 +1139,12 @@
       (item) => item !== `ValueField${field}`,
     );
   }
-  
+
   /**
    * @description: 澧炲垹鏀规彃妲藉垹闄ら」
    * @param {*} field
    * @return {*}
-   */  
+   */
   function searchSlotsSplice(field: string) {
     searchApiSlots.value = searchApiSlots.value.filter((item) => item !== `Api${field}`);
     searchParamsSlots.value = searchParamsSlots.value.filter((item) => item !== `Params_${field}`);
@@ -1148,7 +1197,7 @@
    * @param {*} field
    * @param {*} type
    * @return {*}
-   */  
+   */
   function delSelectOption(field: string, type: string) {
     const removeData: string[] = [`XSelect${field}`, `XOnChange${field}`];
     switch (type) {
@@ -1171,7 +1220,7 @@
    * @description: 鏌ヨSelect鎻掓Ы鏁版嵁娣诲姞
    * @param {*} field
    * @return {*}
-   */  
+   */
   function searchSelSlotsPush(field: string) {
     searchOptionsSlots.value.push(`Select_${field}`);
     searchOptionsSlots.value.push(`OnChange_${field}`);
@@ -1181,7 +1230,7 @@
    * @description: 鏌ヨ鎻掓Ы鍒犻櫎椤�
    * @param {*} field
    * @return {*}
-   */  
+   */
   function searchSelSlotsSplice(field: string) {
     searchOptionsSlots.value = searchOptionsSlots.value.filter(
       (item) => item !== `Select_${field}`,
@@ -1195,7 +1244,7 @@
    * @description: 澧炲垹鏀筍elect鎻掓Ы鏁版嵁娣诲姞
    * @param {*} field
    * @return {*}
-   */  
+   */
   function crudSelSlotsPush(field: string) {
     crudOptionsSlots.value.push(`Select_${field}`);
     crudOnChangeSlots.value.push(`OnChange_${field}`);
@@ -1217,7 +1266,7 @@
    * @param {*} field
    * @param {*} type
    * @return {*}
-   */  
+   */
   function addPopSelectOption(field: string, type: string) {
     const appendData: FormSchema[] = [
       {
@@ -1244,7 +1293,7 @@
    * @description: 鏌ヨPopSelect鎻掓Ы鏁版嵁娣诲姞
    * @param {*} field
    * @return {*}
-   */  
+   */
   function searchPSelSlotsPush(field: string) {
     searchPOptionsSlots.value.push(`PSelect_${field}`);
   }
@@ -1253,7 +1302,7 @@
    * @description: 澧炲垹鏀筆opSelect鎻掓Ы鏁版嵁娣诲姞
    * @param {*} field
    * @return {*}
-   */  
+   */
   function crudPSelSlotsPush(field: string) {
     crudPOptionsSlots.value.push(`PSelect_${field}`);
   }
@@ -1276,7 +1325,7 @@
    * @description: 鏌ヨ鎻掓Ы鍒犻櫎椤�
    * @param {*} field
    * @return {*}
-   */  
+   */
   function searchPSelSlotsSplice(field: string) {
     searchPOptionsSlots.value = searchPOptionsSlots.value.filter(
       (item) => item !== `PSelect_${field}`,
@@ -1287,7 +1336,7 @@
    * @description: 澧炲垹鏀规彃妲藉垹闄ら」
    * @param {*} field
    * @return {*}
-   */  
+   */
   function crudPSelSlotsSplice(field: string) {
     crudPOptionsSlots.value = crudPOptionsSlots.value.filter((item) => item !== `PSelect_${field}`);
   }
@@ -1297,8 +1346,10 @@
   const j = ref(1);
   /**
    * @description: 鎵归噺娣诲姞 鏌ヨ閰嶇疆
+   * @param {boolean} isMounted - 鏄惁鎸傝浇鏃惰繘鍏ユ柟娉�
    */
-  function condAdd() {
+  function condAdd(isMounted: boolean) {
+    IsSearch.value = isMounted ? IsSearch.value : getFieldsValue().IsSearch;
     appendSchemaByField(
       [
         {
@@ -1320,14 +1371,14 @@
           field: `InputNumber${n.value}`,
           component: 'InputNumber',
           label: '鍒楀',
-          colProps: { span: 3 },
+          colProps: { span: 4 },
         },
         {
           field: `${n.value}`,
           component: 'Input',
           label: ' ',
           slot: 'subtract',
-          colProps: { span: 4 },
+          colProps: { span: 3 },
         },
       ],
       '',
@@ -1352,15 +1403,15 @@
     if (searchSlots.value.length == 0) {
       n.value = 1;
     }
-    delApiSelectOption(`${CrudEntName.value}${field}a`, 'search');
-    delSelectOption(`${CrudEntName.value}${field}a`, 'search');
-    delPSelectOption(`${CrudEntName.value}${field}a`, 'search');
+    delApiSelectOption(`${SearchEntName.value}${field}a`, 'search');
+    delSelectOption(`${SearchEntName.value}${field}a`, 'search');
+    delPSelectOption(`${SearchEntName.value}${field}a`, 'search');
   }
 
   /**
    * @description: 涓昏〃閰嶇疆
    * @return {*}
-   */  
+   */
   function mainCondAdd() {
     appendSchemaByFieldMain(
       [
@@ -1395,14 +1446,14 @@
         },
         {
           field: `InputTextArea${m.value}`,
-          component: 'InputTextArea',
+          component: 'Input',
           label: '鑷畾涔夋覆鏌�',
           slot: `mainwIa${m.value}`,
           colProps: { span: 21 },
-          componentProps: {
-            placeholder: '璇风紪杈戞覆鏌撲唬鐮�',
-            rows: 4,
-          },
+          // componentProps: {
+          //   placeholder: '璇风紪杈戞覆鏌撲唬鐮�',
+          //   rows: 4,
+          // },
         },
         {
           field: `${m.value}`,
@@ -1447,7 +1498,7 @@
   /**
    * @description: 澧炲垹鏀归厤缃�
    * @return {*}
-   */  
+   */
   function crudCondAdd() {
     appendSchemaByFieldCrud(
       [
@@ -1457,7 +1508,7 @@
           label: '瀛楁' + j.value,
           // required: true,
           slot: 'crudfac' + j.value,
-          colProps: { span: 12 },
+          colProps: { span: 11 },
         },
         {
           field: `Switch${j.value}`,
@@ -1477,7 +1528,7 @@
           field: `InputNumber${j.value}`,
           component: 'InputNumber',
           label: '鍒楀',
-          colProps: { span: 3 },
+          colProps: { span: 4 },
         },
         {
           field: `${j.value}`,
@@ -1527,5 +1578,3 @@
     padding-bottom: 48px;
   }
 </style>
-: { values: any[]; }: any: { values: any[]; }: any: { values: any[]; }: any: any: any: any: any:
-any: any

--
Gitblit v1.9.3