123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- <template>
- <a-spin :spinning="confirmLoading">
- <!-- 主表单区域 -->
- <a-form-model ref="form" :model="model" :rules="validatorRules">
- <#list columns as po><#rt/>
- <#if po_index % 2 == 0 ><#rt/>
- <a-row>
- <#if po.fieldName !='id'>
- <#list [po_index, po_index+1] as idx><#rt/>
- <#if idx lt columns?size>
- <a-col :xs="24" :sm="12">
- <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="${columns[idx].fieldName}" label="${columns[idx].filedComment}">
- <#if columns[idx].fieldType =='date'>
- <a-date-picker placeholder="请输入${columns[idx].filedComment}" style="width:100%" v-model="model.${columns[idx].fieldName}"/>
- <#elseif columns[idx].fieldType =='datetime'>
- <a-date-picker placeholder="请输入${columns[idx].filedComment}" style="width:100%" :showTime="true" valueFormat="YYYY-MM-DD HH:mm:ss" v-model="model.${columns[idx].fieldName}"/>
- <#elseif "int,decimal,double,"?contains(columns[idx].fieldType)>
- <a-input-number placeholder="请输入${columns[idx].filedComment}" style="width:100%" v-model="model.${columns[idx].fieldName}"/>
- <#else>
- <a-input placeholder="请输入${columns[idx].filedComment}" v-model="model.${columns[idx].fieldName}"/>
- </#if>
- </a-form-model-item>
- </a-col>
- </#if>
- </#list><#rt/>
- </#if><#rt/>
- </a-row>
- </#if><#rt/>
- </#list>
- </a-form-model>
- <!-- 子表单区域 -->
- <a-tabs v-model="activeKey" @change="handleChangeTabs">
- <#list subTables as sub><#rt/>
- <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index}]" :forceRender="true">
- <j-editable-table
- :ref="refKeys[${sub_index}]"
- :loading="${sub.entityName?uncap_first}Table.loading"
- :columns="${sub.entityName?uncap_first}Table.columns"
- :dataSource="${sub.entityName?uncap_first}Table.dataSource"
- :maxHeight="300"
- :rowNumber="true"
- :rowSelection="true"
- :actionButton="true"/>
- </a-tab-pane>
- </#list>
- </a-tabs>
- </a-spin>
- </template>
- <script>
- import { FormTypes } from '@/utils/JEditableTableUtil'
- import { JEditableTableModelMixin } from '@/mixins/JEditableTableModelMixin'
- export default {
- name: '${entityName}Form',
- mixins: [JEditableTableModelMixin],
- data() {
- return {
- // 新增时子表默认添加几行空数据
- addDefaultRowNum: 1,
- model: {
- //设置默认值
- },
- validatorRules: {
- <#list columns as po>
- <#if po.fieldName !='id'>
- <#if po.nullable =='N'>
- ${po.fieldName}: [{ required: true, message: '请输入${po.filedComment}!' }],
- </#if>
- </#if>
- </#list>
- },
- refKeys: [<#list subTables as sub>'${sub.entityName?uncap_first}', </#list>],
- activeKey: '${subTables[0].entityName?uncap_first}',
- <#list subTables as sub><#rt/>
- // ${sub.ftlDescription}
- ${sub.entityName?uncap_first}Table: {
- loading: false,
- dataSource: [],
- columns: [
- <#list sub.colums as col><#rt/>
- <#if col.filedComment !='外键'>
- {
- title: '${col.filedComment}',
- key: '${col.fieldName}',
- <#if col.fieldType =='date'>
- type: FormTypes.date,
- <#elseif col.fieldType =='datetime'>
- type: FormTypes.datetime,
- <#elseif "int,decimal,double,"?contains(col.fieldType)>
- type: FormTypes.inputNumber,
- <#else>
- type: FormTypes.input,
- </#if>
- defaultValue: '',
- placeholder: '请输入${'$'}{title}',
- <#if col.nullable =='N'>
- validateRules: [{ required: true, message: '${'$'}{title}不能为空' }],
- </#if>
- },
- </#if>
- </#list>
- ]
- },
- </#list>
- url: {
- add: "/${entityPackage}/${entityName?uncap_first}/add",
- edit: "/${entityPackage}/${entityName?uncap_first}/edit",
- <#list subTables as sub><#rt/>
- ${sub.entityName?uncap_first}: {
- list: '/${entityPackage}/${entityName?uncap_first}/query${sub.entityName}ByMainId'
- },
- </#list>
- }
- }
- },
- methods: {
- /** 调用完edit()方法之后会自动调用此方法 */
- editAfter() {
- // 加载子表数据
- if (this.model.id) {
- let params = { id: this.model.id }
- <#list subTables as sub><#rt/>
- this.requestSubTableData(this.url.${sub.entityName?uncap_first}.list, params, this.${sub.entityName?uncap_first}Table)
- </#list>
- }
- },
- /** 整理成formData */
- classifyIntoFormData(allValues) {
- let main = Object.assign(this.model, allValues.formValue)
- return {
- ...main, // 展开
- <#list subTables as sub><#rt/>
- ${sub.entityName?uncap_first}List: allValues.tablesValue[${sub_index}].values,
- </#list>
- }
- }
- }
- }
- </script>
- <style scoped>
- </style>
|