Browse Source

动态表单配置

wxz_dy_form_config
wxz 2 years ago
parent
commit
d7c5309cee
  1. 45
      epmet-oper-web/src/views/modules/dyform/createFormItem.vue
  2. 38
      epmet-oper-web/src/views/modules/dyform/editFormItem.vue
  3. 14
      epmet-oper-web/src/views/modules/dyform/itemList.vue

45
epmet-oper-web/src/views/modules/dyform/createFormItem.vue

@ -1,6 +1,6 @@
<template>
<el-form :model="formModel" :rules="createRules" ref="createForm">
<el-form-item prop="customerId" label="客户" label-width="100px">
<el-form-item prop="customerId" label="客户" label-width="150px">
<el-select v-model="formModel.customerId" @change="onCustomerChanged" :disabled="customerIdFixed">
<el-option
v-for="item in customerList"
@ -10,7 +10,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="选择表单" prop="formId" label-width="100px">
<el-form-item label="选择表单" prop="formId" label-width="150px">
<el-select v-model="formModel.formId" clearable placeholder="请选择" @change="onFormChanged" :disabled="customerIdFixed">
<el-option
v-for="item in formList"
@ -20,7 +20,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="itemGroupId" label="分组" label-width="100px">
<el-form-item prop="itemGroupId" label="分组" label-width="150px">
<el-select v-model="formModel.itemGroupId" @change="onGroupChanged">
<el-option v-for="group in groupList"
:key="group.groupId"
@ -29,7 +29,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="parentItemId" label="父组件" label-width="100px">
<el-form-item prop="parentItemId" label="父组件" label-width="150px">
<el-select v-model="formModel.parentItemId">
<el-option v-for="pi in parentItemsList"
:key="pi.id"
@ -38,33 +38,41 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="tableName" label="数据库表名称" label-width="100px">
<el-form-item prop="tableName" label="数据库表名称" label-width="150px">
<el-input v-model="formModel.tableName"></el-input>
</el-form-item>
<el-form-item prop="columnName" label="数据库列名称" label-width="100px">
<el-form-item prop="columnName" label="数据库列名称" label-width="150px">
<el-input v-model="formModel.columnName"></el-input>
</el-form-item>
<el-form-item prop="label" label="名称" label-width="100px">
<el-form-item prop="label" label="名称" label-width="150px">
<el-input v-model="formModel.label" style="width: 198px"></el-input>
</el-form-item>
<el-form-item prop="required" label="是否必填" label-width="100px">
<el-form-item prop="required" label="是否必填" label-width="150px">
<el-checkbox v-model="formModel.required"></el-checkbox>
</el-form-item>
<el-form-item prop="itemType" label="组件类型" label-width="100px">
<el-form-item prop="exportFlag" label="是否用于导出" label-width="150px">
<el-checkbox v-model="formModel.exportFlag"></el-checkbox>
</el-form-item>
<el-form-item prop="policyFlag" label="是否用于政策找人" label-width="150px">
<el-checkbox v-model="formModel.policyFlag"></el-checkbox>
</el-form-item>
<el-form-item prop="itemType" label="组件类型" label-width="150px">
<el-select v-model="formModel.itemType" @change="onItemTypeChanged">
<el-option v-for="t in controls" :key="t.type" :value="t.type" :label="t.name"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="itemType" label="选项来源类型" label-width="100px">
<el-form-item prop="itemType" label="选项来源类型" label-width="150px">
<el-select v-model="formModel.optionSourceType" :disabled="optionSourceTypeDisabled">
<el-option v-for="t in optionSources" :key="t.type" :value="t.type" :label="t.name"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="itemType" label="选项来源" label-width="100px">
<el-form-item prop="itemType" label="选项来源" label-width="150px">
<el-input v-model="formModel.optionSourceValue" :disabled="optionSourceTypeDisabled"
placeholder="如果是为直接定义,格式请保持为: value1:label1,vaalue2:label2。如果是调用api则定义api地址(全为半角符号)"></el-input>
</el-form-item>
@ -90,7 +98,9 @@ export default {
itemType: null,
required: false,
optionSourceType: null,
optionSourceValue: null
optionSourceValue: null,
exportFlag: null,
policyFlag: null
},
customerIdFixed: false,
customerList: [],
@ -98,10 +108,10 @@ export default {
optionSourceTypeDisabled: false,
createRules: {
customerId: [
{ required: true, message: '客户为必填项' }
{required: true, message: '客户为必填项'}
],
formId: [
{ required: true, message: '表单为必填项' }
{required: true, message: '表单为必填项'}
],
itemGroupId: [
{required: true, message: '分组为必填项'}
@ -114,9 +124,10 @@ export default {
],
optionSourceType: [
{required: true, message: '选项来源类型为必填项'}
]
, optionSourceValue: [
{required: true, message: '选项来源为必填项'}
], exportFlag: [
{required: true, message: '是否可用于导出为必填项'}
], policyFlag: [
{required: true, message: '是否可用于政策找人为必填项'}
],
},

38
epmet-oper-web/src/views/modules/dyform/editFormItem.vue

@ -1,6 +1,6 @@
<template>
<el-form :model="formModel" :rules="createRules" ref="editForm">
<el-form-item prop="customerId" label="客户" label-width="100px">
<el-form-item prop="customerId" label="客户" label-width="150px">
<el-select v-model="formModel.customerId" @change="onCustomerChanged" :disabled="customerIdFixed">
<el-option
v-for="item in customerList"
@ -10,7 +10,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="选择表单" prop="formId" label-width="100px">
<el-form-item label="选择表单" prop="formId" label-width="150px">
<el-select v-model="formModel.formId" clearable placeholder="请选择" @change="onFormChanged" :disabled="customerIdFixed">
<el-option
v-for="item in formList"
@ -20,7 +20,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="itemGroupId" label="分组" label-width="100px">
<el-form-item prop="itemGroupId" label="分组" label-width="150px">
<el-select v-model="formModel.itemGroupId" @change="onGroupChanged">
<el-option v-for="group in groupList"
:key="group.groupId"
@ -29,7 +29,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="parentItemId" label="父组件" label-width="100px">
<el-form-item prop="parentItemId" label="父组件" label-width="150px">
<el-select v-model="formModel.parentItemId">
<el-option v-for="pi in parentItemsList"
:key="pi.id"
@ -38,33 +38,41 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="tableName" label="数据库表名称" label-width="100px">
<el-form-item prop="tableName" label="数据库表名称" label-width="150px">
<el-input v-model="formModel.tableName"></el-input>
</el-form-item>
<el-form-item prop="columnName" label="数据库列名称" label-width="100px">
<el-form-item prop="columnName" label="数据库列名称" label-width="150px">
<el-input v-model="formModel.columnName"></el-input>
</el-form-item>
<el-form-item prop="label" label="名称" label-width="100px">
<el-form-item prop="label" label="名称" label-width="150px">
<el-input v-model="formModel.label" style="width: 198px"></el-input>
</el-form-item>
<el-form-item prop="required" label="是否必填" label-width="100px">
<el-form-item prop="required" label="是否必填" label-width="150px">
<el-checkbox v-model="formModel.required"></el-checkbox>
</el-form-item>
<el-form-item prop="itemType" label="组件类型" label-width="100px">
<el-form-item prop="exportFlag" label="是否用于导出" label-width="150px">
<el-checkbox v-model="formModel.exportFlag"></el-checkbox>
</el-form-item>
<el-form-item prop="policyFlag" label="是否用于政策找人" label-width="150px">
<el-checkbox v-model="formModel.policyFlag"></el-checkbox>
</el-form-item>
<el-form-item prop="itemType" label="组件类型" label-width="150px">
<el-select v-model="formModel.itemType" @change="onItemTypeChanged">
<el-option v-for="t in controls" :key="t.type" :value="t.type" :label="t.name"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="itemType" label="选项来源类型" label-width="100px">
<el-form-item prop="itemType" label="选项来源类型" label-width="150px">
<el-select v-model="formModel.optionSourceType" :disabled="optionSourceTypeDisabled">
<el-option v-for="t in optionSources" :key="t.type" :value="t.type" :label="t.name"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="itemType" label="选项来源" label-width="100px">
<el-form-item prop="itemType" label="选项来源" label-width="150px">
<el-input v-model="formModel.optionSourceValue" :disabled="optionSourceTypeDisabled"
placeholder="如果是为直接定义,格式请保持为: value1:label1,vaalue2:label2。如果是调用api则定义api地址(全为半角符号)"></el-input>
</el-form-item>
@ -91,7 +99,9 @@ export default {
itemType: null,
required: false,
optionSourceType: null,
optionSourceValue: null
optionSourceValue: null,
exportFlag: null,
policyFlag: null
},
customerIdFixed: false,
customerList: [],
@ -118,6 +128,10 @@ export default {
]
, optionSourceValue: [
{required: true, message: '选项来源为必填项'}
], exportFlag: [
{required: true, message: '是否可用于导出为必填项'}
], policyFlag: [
{required: true, message: '是否可用于政策找人为必填项'}
],
},

14
epmet-oper-web/src/views/modules/dyform/itemList.vue

@ -88,6 +88,20 @@
prop="columnName"
label="数据库列名">
</el-table-column>
<el-table-column
prop="exportFlag"
label="是否用于导出">
<template v-slot="scope">
{{ scope.row.exportFlag === 1 ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column
prop="policyFlag"
label="是否用于政策找人">
<template v-slot="scope">
{{ scope.row.policyFlag === 1 ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column label="操作">
<template v-slot="scope">
<el-button type="text" @click="onDeleteSinglBtnClicked(scope.row.id)">删除</el-button>

Loading…
Cancel
Save