| | |
| | | <template>
|
| | | <avue-form v-model="form" :option="option" v-loading="loading" ref="form">
|
| | | <template :slot="item.prop + 'Label'" v-for="item in option.column">
|
| | | <div>
|
| | | <avue-form v-model="form" :option="option" v-loading="loading" ref="form" :style="{minHeight: loading ? '300px' : ''}">
|
| | | <template :slot="item.prop + 'Label'" v-for="item in slotColumnList">
|
| | | <span>
|
| | | <span>{{ item.label }} </span>
|
| | | <el-tooltip
|
| | |
| | | </span>
|
| | | </template>
|
| | | </avue-form>
|
| | | </div>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | |
| | | export default {
|
| | | name: "FormTemplate",
|
| | | props: {
|
| | | // 默认禁用元素
|
| | | disabledProp: {
|
| | | type: Array,
|
| | | default: () => ["id"],
|
| | |
| | | type: String,
|
| | | default: "",
|
| | | },
|
| | | // 修改回显的数据
|
| | | editForm: {
|
| | | type: Object,
|
| | | default: () => ({}),
|
| | | },
|
| | | // 表单类型(add, edit, detail)
|
| | | type: {
|
| | | type: String,
|
| | | default: "add",
|
| | | },
|
| | | dialogOpen: {
|
| | | type: Boolean,
|
| | | default: false,
|
| | | },
|
| | | // 自定义表单类型
|
| | | selfColumnType: {
|
| | | type: Object,
|
| | | default: () => ({}),
|
| | | },
|
| | | // 自定义表单属性
|
| | | selfColumnConfig: {
|
| | | type: Object,
|
| | | default: () => ({}),
|
| | |
| | | column: [],
|
| | | group: [],
|
| | | },
|
| | | loading: false,
|
| | | templateData: {},
|
| | | loading: true,
|
| | | columnType: {
|
| | | text: "input",
|
| | | combox: "select",
|
| | |
| | | date: "date",
|
| | | },
|
| | | // 假数据
|
| | | testItems: [
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "id",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "传值禁用功能",
|
| | | tooltips: "",
|
| | | type: "combox",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "state",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: true,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "接口禁用功能",
|
| | | tooltips: "",
|
| | | type: "combox",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "oldcode",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "el-icon-search",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "文本后缀测试",
|
| | | text: "前后缀功能",
|
| | | tooltips: "",
|
| | | type: "text",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "materialname",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: true,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "正则校验功能",
|
| | | tooltips: "请输入数字",
|
| | | type: "text",
|
| | | unique: false,
|
| | | verify: "/[0-9]/",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: [
|
| | | {
|
| | | attributes: {},
|
| | | key: "model_type",
|
| | | value: "模型",
|
| | | },
|
| | | {
|
| | | attributes: {},
|
| | | key: "part_type",
|
| | | value: "零件",
|
| | | },
|
| | | ],
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "dataSelect",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "直接返回下拉",
|
| | | tooltips: "",
|
| | | type: "combox",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: "formTemplateTest",
|
| | | customClass: null,
|
| | | data: [],
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "dictSelect",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "字典返回下拉",
|
| | | tooltips: "",
|
| | | type: "combox",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "firstfl",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "数字输入框",
|
| | | tooltips: "",
|
| | | type: "number",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "yyyy-MM-dd HH:mm:ss",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "datetime",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "日期时间选择器",
|
| | | tooltips: "",
|
| | | type: "datetime",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "time",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "时间选择器",
|
| | | tooltips: "",
|
| | | type: "date",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "false",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "xiaoshouwl",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "开关",
|
| | | tooltips: "",
|
| | | type: "truefalse",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "我是默认值",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "tuhao",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "默认值功能",
|
| | | tooltips: "提示",
|
| | | type: "text",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "xinghaoguige",
|
| | | hidden: false,
|
| | | keyAttr: true,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "属性关键值",
|
| | | tooltips: "",
|
| | | type: "text",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "jiliangdw",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | tip: "我是提示功能",
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: "jiliangdwname",
|
| | | suffix: "",
|
| | | text: "提示功能",
|
| | | tooltips: "",
|
| | | type: "text",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: "this.form.sum = this.form.fun1 + this.form.fun2",
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "fun1",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "参数1测试js",
|
| | | tooltips: "",
|
| | | type: "text",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: "this.form.sum = this.form.fun1 + this.form.fun2",
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "fun2",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: "hesuanfenleiname",
|
| | | suffix: "",
|
| | | text: "参数2测试js",
|
| | | tooltips: "",
|
| | | type: "text",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: "",
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "sum",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: true,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: "",
|
| | | suffix: "",
|
| | | text: "参数1参数2求和",
|
| | | tooltips: "",
|
| | | type: "text",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "textarea",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: false,
|
| | | referConfig: null,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: null,
|
| | | suffix: "",
|
| | | text: "文本域",
|
| | | tooltips: "",
|
| | | type: "textarea",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | {
|
| | | comboxKey: null,
|
| | | customClass: null,
|
| | | data: null,
|
| | | dateFormate: "",
|
| | | defaultValue: "",
|
| | | displayExtension: null,
|
| | | extendAttrMap: null,
|
| | | extendAttrString: null,
|
| | | field: "cz",
|
| | | hidden: false,
|
| | | keyAttr: false,
|
| | | prefix: "",
|
| | | readOnly: true,
|
| | | referConfig: true,
|
| | | required: false,
|
| | | selectLibFlag: "",
|
| | | showField: "depId",
|
| | | suffix: "",
|
| | | text: "参照",
|
| | | tooltips: "",
|
| | | type: "text",
|
| | | unique: false,
|
| | | verify: "",
|
| | | },
|
| | | ],
|
| | | // testItems: [
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "id",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "传值禁用功能",
|
| | | // tooltips: "",
|
| | | // type: "combox",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "state",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: true,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "接口禁用功能",
|
| | | // tooltips: "",
|
| | | // type: "combox",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "oldcode",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "el-icon-search",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "文本后缀测试",
|
| | | // text: "前后缀功能",
|
| | | // tooltips: "",
|
| | | // type: "text",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "materialname",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: true,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "正则校验功能",
|
| | | // tooltips: "请输入数字",
|
| | | // type: "text",
|
| | | // unique: false,
|
| | | // verify: "/[0-9]/",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: [
|
| | | // {
|
| | | // attributes: {},
|
| | | // key: "model_type",
|
| | | // value: "模型",
|
| | | // },
|
| | | // {
|
| | | // attributes: {},
|
| | | // key: "part_type",
|
| | | // value: "零件",
|
| | | // },
|
| | | // ],
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "dataSelect",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "直接返回下拉",
|
| | | // tooltips: "",
|
| | | // type: "combox",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: "formTemplateTest",
|
| | | // customClass: null,
|
| | | // data: [],
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "dictSelect",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "字典返回下拉",
|
| | | // tooltips: "",
|
| | | // type: "combox",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "firstfl",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "数字输入框",
|
| | | // tooltips: "",
|
| | | // type: "number",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "yyyy-MM-dd HH:mm:ss",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "datetime",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "日期时间选择器",
|
| | | // tooltips: "",
|
| | | // type: "datetime",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "time",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "时间选择器",
|
| | | // tooltips: "",
|
| | | // type: "date",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "false",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "xiaoshouwl",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "开关",
|
| | | // tooltips: "",
|
| | | // type: "truefalse",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "我是默认值",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "tuhao",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "默认值功能",
|
| | | // tooltips: "提示",
|
| | | // type: "text",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "xinghaoguige",
|
| | | // hidden: false,
|
| | | // keyAttr: true,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "属性关键值",
|
| | | // tooltips: "",
|
| | | // type: "text",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "jiliangdw",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // tip: "我是提示功能",
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: "jiliangdwname",
|
| | | // suffix: "",
|
| | | // text: "提示功能",
|
| | | // tooltips: "",
|
| | | // type: "text",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: "this.form.sum = this.form.fun1 + this.form.fun2",
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "fun1",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "参数1测试js",
|
| | | // tooltips: "",
|
| | | // type: "text",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: "this.form.sum = this.form.fun1 + this.form.fun2",
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "fun2",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: "hesuanfenleiname",
|
| | | // suffix: "",
|
| | | // text: "参数2测试js",
|
| | | // tooltips: "",
|
| | | // type: "text",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: "",
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "sum",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: true,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: "",
|
| | | // suffix: "",
|
| | | // text: "参数1参数2求和",
|
| | | // tooltips: "",
|
| | | // type: "text",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "textarea",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: false,
|
| | | // referConfig: null,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: null,
|
| | | // suffix: "",
|
| | | // text: "文本域",
|
| | | // tooltips: "",
|
| | | // type: "textarea",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // {
|
| | | // comboxKey: null,
|
| | | // customClass: null,
|
| | | // data: null,
|
| | | // dateFormate: "",
|
| | | // defaultValue: "",
|
| | | // displayExtension: null,
|
| | | // extendAttrMap: null,
|
| | | // extendAttrString: null,
|
| | | // field: "cz",
|
| | | // hidden: false,
|
| | | // keyAttr: false,
|
| | | // prefix: "",
|
| | | // readOnly: true,
|
| | | // referConfig: true,
|
| | | // required: false,
|
| | | // selectLibFlag: "",
|
| | | // showField: "depId",
|
| | | // suffix: "",
|
| | | // text: "参照",
|
| | | // tooltips: "",
|
| | | // type: "text",
|
| | | // unique: false,
|
| | | // verify: "",
|
| | | // },
|
| | | // ],
|
| | | trendsSpan: 8,
|
| | | defaultValue: {},
|
| | | // 表单属性
|
| | | attributes: [],
|
| | | // 表单元素
|
| | | items: [],
|
| | | slotColumnList: []
|
| | | };
|
| | | },
|
| | | mounted() {
|
| | | this.handleResize();
|
| | | },
|
| | | methods: {
|
| | | init(columnList) {
|
| | | if (Array.isArray(columnList)) {
|
| | | this.templateRender(columnList);
|
| | | } else {
|
| | | this.getFormTemplate();
|
| | | }
|
| | | },
|
| | | getFormTemplate() {
|
| | | this.loading = true;
|
| | | getFormTemplate({
|
| | | templateOid: this.templateOid,
|
| | | codeClassifyOid: this.codeClassifyOid,
|
| | | })
|
| | | .then((res) => {
|
| | | if (res.status === 200) {
|
| | | this.templateData = res.data;
|
| | | // 表单元素(过滤需要隐藏的属性)
|
| | | this.items = res.data.formDefineVO.items;
|
| | | this.templateRender();
|
| | | this.templateRender(res.data.formDefineVO.items);
|
| | | this.$emit("getFormTemplateEnd", res.data);
|
| | | }
|
| | | this.loading = false;
|
| | | })
|
| | | .catch((err) => {
|
| | | this.loading = false;
|
| | | console.log(err);
|
| | | });
|
| | | },
|
| | | templateRender() {
|
| | | templateRender(formItemList) {
|
| | | // 无需分组数据
|
| | | let column = [];
|
| | | let group = [];
|
| | | let dictKeys = [];
|
| | | this.items.forEach((formItem) => {
|
| | | let slotColumnList = []
|
| | | formItemList.forEach((formItem) => {
|
| | | formItem = this.resetFormConfig(formItem);
|
| | | if (formItem.type === "line") {
|
| | | group.push({
|
| | | label: formItem.text,
|
| | |
| | | if (formItem.type === "text") {
|
| | | message = "请输入";
|
| | | trigger = "blur";
|
| | | } else if (formItem.type === "file") {
|
| | | message = "请上传";
|
| | | }
|
| | | let columnItem = {
|
| | | label: formItem.text,
|
| | |
| | | tipPlacement: "right",
|
| | | comboxKey: formItem.comboxKey,
|
| | | display: !formItem.hidden,
|
| | | maxlength: formItem.maxlength,
|
| | | filterable: true,
|
| | | change: () => {
|
| | | this.changeFun(formItem.displayExtension, formItem.prop);
|
| | | },
|
| | | span: formItem.type === "textarea" ? 24 : this.trendsSpan,
|
| | | click: this.clickFun(formItem.referConfig),
|
| | | click: () => {
|
| | | this.clickFun(formItem.referConfig)
|
| | | },
|
| | | rules: [
|
| | | {
|
| | | required: formItem.required,
|
| | |
| | | value: "key",
|
| | | },
|
| | | };
|
| | | columnItem = this.resetFormConfig(columnItem);
|
| | | slotColumnList.push(columnItem)
|
| | | if (group.length === 0) {
|
| | | column.push(columnItem);
|
| | | } else {
|
| | | group[group.length - 1]["column"].push(columnItem);
|
| | | }
|
| | | });
|
| | | this.slotColumnList = slotColumnList
|
| | | this.$set(this.option, "column", column);
|
| | | this.$set(this.option, "group", group);
|
| | | this.formIndex++;
|
| | | this.loading = false
|
| | | this.geDictData(dictKeys);
|
| | | },
|
| | | // 使用传入的表单数据配置
|
| | | resetFormConfig(formItem) {
|
| | | for (const key in this.selfColumnConfig) {
|
| | | if (Object.hasOwnProperty.call(this.selfColumnConfig, key)) {
|
| | | const element = this.selfColumnConfig[key];
|
| | | formItem[key] = element;
|
| | | for (const configType in this.selfColumnConfig) {
|
| | | if (Object.hasOwnProperty.call(this.selfColumnConfig, configType)) {
|
| | | const element = this.selfColumnConfig[configType];
|
| | | if (configType === "function") {
|
| | | for (const attr in element) {
|
| | | if (Object.hasOwnProperty.call(element, attr)) {
|
| | | const fun = element[attr];
|
| | | formItem[attr] = fun(formItem);
|
| | | }
|
| | | }
|
| | | } else if (configType === "exchange") {
|
| | | for (const newAttr in element) {
|
| | | if (Object.hasOwnProperty.call(element, newAttr)) {
|
| | | const oldAttr = element[newAttr];
|
| | | formItem[newAttr] = formItem[oldAttr];
|
| | | }
|
| | | }
|
| | | } else if (configType === "directVoluation") {
|
| | | for (const attr in element) {
|
| | | if (Object.hasOwnProperty.call(element, attr)) {
|
| | | const value = element[attr];
|
| | | formItem[attr] = value;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | return formItem;
|
| | |
| | | // })
|
| | | },
|
| | | clickFun(referConfig) {
|
| | | console.log(123123);
|
| | | if (this.type === "detail") {
|
| | | return;
|
| | | }
|
| | |
| | | },
|
| | | },
|
| | | watch: {
|
| | | dialogOpen: {
|
| | | immediate: true,
|
| | | handler(newV) {
|
| | | if (newV) {
|
| | | this.getFormTemplate();
|
| | | }
|
| | | },
|
| | | },
|
| | | form: {
|
| | | deep: true,
|
| | | immediate: true,
|