| | |
| | | * @version: |
| | | * @Date: 2024-06-18 15:09:48 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-07-03 14:36:19 |
| | | * @LastEditTime: 2024-07-22 16:02:35 |
| | | --> |
| | | <!-- |
| | | * _oo0oo_ |
| | |
| | | <a-button class="mr-4" type="info" @click="cancel"> 取消 </a-button> |
| | | <a-button type="primary" @click="submitAll"> 提交 </a-button> |
| | | </template> |
| | | <CustModal |
| | | @register="registerCust" |
| | | @success="custSuccess" |
| | | :type="cType" |
| | | :detailSlots="dtlSlots" |
| | | > |
| | | <!-- 用插槽自定义多表单 --> |
| | | <template #[item.name] v-for="item in dtlSlots" :key="item.name"> |
| | | <BasicForm @register="useFormData[item.name][0]" v-if="useFormData[item.name]"> |
| | | <!-- 用插槽自定义弹出选择框 --> |
| | | <template #[name]="{ field }" v-for="name in item.slots" :key="name"> |
| | | <a-button |
| | | class="mt-1 ml-1" |
| | | size="small" |
| | | @click="handleCustClick(field)" |
| | | :preIcon="item.preIcons[name]" |
| | | /> |
| | | <GeneralModal |
| | | @register="useModalData[name][0]" |
| | | @success="(d, u) => handleEntSuccess(d, u, item.name)" |
| | | /> |
| | | </template> |
| | | </BasicForm> |
| | | <!-- 自定义内容 --> |
| | | </template> |
| | | </CustModal> |
| | | <Suspense> |
| | | <CustModal |
| | | @register="registerCust" |
| | | @success="custSuccess" |
| | | :type="cType" |
| | | :detailSlots="dtlSlots" |
| | | :entityName="entityName" |
| | | > |
| | | <!-- 用插槽自定义多表单 --> |
| | | <template #[item.name] v-for="item in dtlSlots" :key="item.name"> |
| | | <BasicForm @register="useFormData[item.name][0]" v-if="useFormData[item.name]"> |
| | | <!-- 用插槽自定义弹出选择框 --> |
| | | <template #[name]="{ field }" v-for="name in item.slots" :key="name"> |
| | | <a-button |
| | | class="mt-1 ml-1" |
| | | size="small" |
| | | @click="handleCustClick(field)" |
| | | :preIcon="item.preIcons[name]" |
| | | /> |
| | | <GeneralModal |
| | | @register="useModalData[name][0]" |
| | | @success="(d, u) => handleEntSuccess(d, u, item.name)" |
| | | /> |
| | | </template> |
| | | </BasicForm> |
| | | <!-- 自定义内容 --> |
| | | </template> |
| | | </CustModal> |
| | | </Suspense> |
| | | </PageWrapper> |
| | | </template> |
| | | <script lang="ts" setup> |
| | |
| | | import dtl from './dtl.vue'; |
| | | import baseForm from './baseForm.vue'; |
| | | import GeneralModal from '/@/views/components/GeneralModal.vue'; |
| | | import { |
| | | AddAfterDelete, |
| | | AddListEntity, |
| | | DeleteWhere, |
| | | SaveEntity, |
| | | getEntity, |
| | | } from '/@/api/tigerapi/system'; |
| | | import { AddAfterDelete, SaveEntity } from '/@/api/tigerapi/system'; |
| | | import { useGlobSetting } from '/@/hooks/setting'; |
| | | import { useRoute, useRouter } from 'vue-router'; |
| | | import CustModal from '/@/views/components/CustModal.vue'; |
| | |
| | | } |
| | | const currentTab = getCurrentTab(); |
| | | const routeParams = ref(JSON.parse(decodeURI(route.params?.id as string))); |
| | | const entityName = ref(routeParams.value.Name); |
| | | // 从sessionStorage中读取参数并转换回对象 |
| | | const savedParams = sessionStorage.getItem(`${routeParams.value.sName}_params`); |
| | | const objParams = savedParams ? ref(JSON.parse(decodeURI(savedParams))) : ref({}); |
| | | const entityName = ref(routeParams.value.Name); |
| | | const titleInfo = ref({}); //getTitle(objParams.value.Name); |
| | | const isAllUpdate = ref(objParams.value.CODE != '0'); |
| | | const globSetting = useGlobSetting(); |
| | |
| | | let p = [] as Promise<any>[]; |
| | | for (i = 0; i < Keys.length; i++) { |
| | | p.push( |
| | | SaveEntity(validates[Keys[i]], unref(isAllUpdate), baseCards.value[i]['entityName']), |
| | | SaveEntity( |
| | | validates[Keys[i]], |
| | | unref(isAllUpdate), |
| | | baseCards.value[i]['entityName'], |
| | | `${objParams.value['IsExist']}='${validates[Keys[i]][objParams.value['IsExist']]}'`, |
| | | true, |
| | | ), |
| | | ); |
| | | } |
| | | await Promise.all(p); |
| | |
| | | objParams.value['drawers'].forEach((d) => { |
| | | let where = `${d['code']} = '${keyFieldValues.value[d['code']]}'`; |
| | | /* type: all-表示需要code的所有的值 */ |
| | | if(d['type'] == 'all'){ |
| | | where = `${d['code']} in (${data.value[d['keyName']].map(value => `'${value[d['code']]}'`).join(',')})`; |
| | | if (d['type'] == 'all' && data.value[d['keyName']].length > 0) { |
| | | where = `${d['code']} in (${data.value[d['keyName']].map((value) => `'${value[d['code']]}'`).join(',')})`; |
| | | } |
| | | data.value[d['name']].map((item) => { |
| | | item.ID = buildUUID(); |
| | | }); |
| | | AddAfterDelete( |
| | | d['name'], |
| | | data.value[d['name']], |
| | | where, |
| | | ).then((action) => { |
| | | /* 如果高级表单中关联的是ID(IsID == true),则不用初始化ID */ |
| | | if (!objParams.value['IsID']) { |
| | | data.value[d['name']].map((item) => { |
| | | item.ID = buildUUID(); |
| | | }); |
| | | } |
| | | AddAfterDelete(d['name'], data.value[d['name']], where).then((action) => { |
| | | if (action.IsSuccessed) { |
| | | cancel(); |
| | | } |
| | |
| | | }); |
| | | } else { |
| | | /* 如果自定义提交方法存在就用自定义提交 */ |
| | | custImport.value['default']()[0].SubmitAll(data); |
| | | custImport.value['default']()[0].SubmitAll(data, keyFieldValues, cancel); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | |
| | | var values = GetSelectSuccess(d, u); |
| | | selectVals.value = values; //保存弹出框选择的结果 |
| | | let _val = {}; |
| | | _val[d.returnFieldName] = values[d.returnFieldName]; |
| | | d.returnFieldName.map((x) => { |
| | | _val[x] = values[x]; |
| | | }); |
| | | useFormData.value[item][1].setFieldsValue(_val); |
| | | }); |
| | | } catch (e) {} |