| | |
| | | * @version: |
| | | * @Date: 2024-05-30 22:00:44 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-07-17 11:14:27 |
| | | * @LastEditTime: 2024-07-23 15:17:45 |
| | | --> |
| | | <!-- eslint-disable prettier/prettier --> |
| | | <template> |
| | |
| | | <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]" /> |
| | | <!-- <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]" /> |
| | |
| | | <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]" /> |
| | | <!-- <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]" /> |
| | |
| | | <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-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]" /> |
| | |
| | | <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]" /> |
| | |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { BasicForm, FormSchema, useForm } from '/@/components/Form'; |
| | | import { nextTick, onMounted, ref, unref } from 'vue'; |
| | | import { h, nextTick, 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'; |
| | |
| | | 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'; |
| | | |
| | | const ACard = Card; |
| | | const AInputGroup = InputGroup; |
| | |
| | | const searchOptionsSlots = ref([] as string[]); |
| | | const searchOnChangeSlots = ref([] as string[]); |
| | | const searchPOptionsSlots = ref([] as string[]); |
| | | const searchModeValue = ref<MODE>(MODE.JSON); |
| | | /* 主表 */ |
| | | const MainEntName = ref(''); |
| | | const mainSelectVals = ref({} as { [key: string]: any }); |
| | |
| | | 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 }); |
| | |
| | | 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); |
| | | 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')); |
| | | 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') { |
| | |
| | | [`Switch${Number(i) + 1}`]: searchForms[i]['ifShow'], |
| | | }); |
| | | 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']; |
| | | 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({ |
| | |
| | | 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') { |
| | |
| | | [`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']; |
| | | 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({ |
| | |
| | | /* 主表加载 */ |
| | | 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, |
| | | }); |
| | | for (const i in objs) { |
| | | mainCondAdd(); |
| | | setFieldsValueMain({ |
| | |
| | | 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) { |
| | |
| | | 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'); |
| | | } |
| | | |
| | | /** |
| | |
| | | }, |
| | | { |
| | | 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}`, |