| | |
| | | <template> |
| | | <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid"> |
| | | <div :id="'UI-dynamic-'+areasName+componentVO.oid" class="UI-dynamic"> |
| | | <avue-form v-model="form" :option="option"> |
| | | <template v-for="item in slotData" :slot="item.prop + 'Label'"> |
| | | <span> |
| | |
| | | </span> |
| | | </template> |
| | | <template slot="menuForm"> |
| | | <dynamic-button type="form" :butttonList="componentVO.buttons" @buttonClick="buttonClick"></dynamic-button> |
| | | <dynamic-button :butttonList="componentVO.buttons" type="form" @buttonClick="buttonClick"></dynamic-button> |
| | | </template> |
| | | |
| | | <template v-for="item in slotData" :slot="item.prop + ''"> |
| | | <vciWebRefer v-if="item.type == 'refer'" |
| | | :key="item.prop" |
| | | referType="master" |
| | | :ref="'referFormRef'+item.prop" |
| | | :data-key="item.prop" |
| | | :disabled="item.disabled || false" |
| | | :display="item.display || true" |
| | |
| | | :reloadFormKey="(item.referConfig.useFormKey && item.referConfig.formValues && item.referConfig.formValues[item.referConfig.useFormKey]) || ''" |
| | | :text="item.referConfig.showProp" |
| | | :value="item.prop || item.value" |
| | | @setReferValue="setReferValue" |
| | | :ref="'referFormRef'+item.prop"> |
| | | referType="master" |
| | | @setReferValue="setReferValue"> |
| | | |
| | | </vciWebRefer> |
| | | <quill-editor ref="customQuillEditor" v-model="content" :options="editorOption" class="editor"> |
| | | </quill-editor> |
| | | </template> |
| | | </avue-form> |
| | | </div> |
| | |
| | | import vciWebRefer from '@/components/refer/vciWebRefer' |
| | | import VciWebRefer from "@/components/refer/vciWebRefer"; |
| | | import {verifyNull, verifySlash} from "@/util/validate"; |
| | | |
| | | const toolbarOptions = [ |
| | | ['bold', 'italic', 'underline', 'strike'], // toggled buttons |
| | | ['blockquote', 'code-block'], |
| | | |
| | | [{'header': 1}, {'header': 2}], // custom button values |
| | | [{'list': 'ordered'}, {'list': 'bullet'}], |
| | | [{'script': 'sub'}, {'script': 'super'}], // superscript/subscript |
| | | [{'indent': '-1'}, {'indent': '+1'}], // outdent/indent |
| | | [{'direction': 'rtl'}], // text direction |
| | | |
| | | [{'size': ['small', false, 'large', 'huge']}], // custom dropdown |
| | | [{'header': [1, 2, 3, 4, 5, 6, false]}], |
| | | |
| | | [{'color': []}, {'background': []}], // dropdown with defaults from theme |
| | | [{'font': []}], |
| | | [{'align': []}], |
| | | ['link', 'image', 'video'], |
| | | ['clean'] // remove formatting button |
| | | ]; |
| | | export default { |
| | | name: "dynamic-form", |
| | | components: {VciWebRefer}, |
| | |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | sourceData:{ |
| | | sourceData: { |
| | | //所属区域的上一区域选中数据 |
| | | type:Object, |
| | | type: Object, |
| | | default: {} |
| | | }, |
| | | dataStore:{ |
| | | dataStore: { |
| | | //弹窗时按钮所属区域选中数据 |
| | | type:Array, |
| | | type: Array, |
| | | default: [] |
| | | }, |
| | | paramVOS: { |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | form: {} |
| | | form: {}, |
| | | content: '', |
| | | editorOption: { |
| | | placeholder: '你想说什么?', |
| | | modules: { |
| | | imageResize: { |
| | | displayStyles: { |
| | | backgroundColor: 'black', |
| | | border: 'none', |
| | | color: 'white' |
| | | }, |
| | | modules: ['Resize', 'DisplaySize', 'Toolbar'] |
| | | }, |
| | | toolbar: { |
| | | container: toolbarOptions, // 工具栏 |
| | | handlers: { |
| | | 'image': function (value) { |
| | | if (value) { |
| | | document.querySelector('#quillEditorQiniu .avatar-uploader input').click() |
| | | } else { |
| | | this.quill.format('image', false); |
| | | } |
| | | }, |
| | | 'video': function (value) { |
| | | if (value) { |
| | | document.querySelector('#quillEditorQiniu .avatar-uploader input').click() |
| | | } else { |
| | | this.quill.format('video', false); |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | return this.getColumnData() |
| | | } |
| | | }, |
| | | watch:{ |
| | | slotData:{ |
| | | handler(newV){ |
| | | this.getDictList(newV) |
| | | watch: { |
| | | slotData: { |
| | | handler(newV) { |
| | | this.getDictList(newV) |
| | | }, |
| | | immediate: true, |
| | | }, |
| | |
| | | deep: true, |
| | | immediate: true, |
| | | }, |
| | | sourceData:{ |
| | | sourceData: { |
| | | handler(newval) { |
| | | //源数据有变化时变更当前区域数据 |
| | | console.log(this.areasName); |
| | |
| | | methods: { |
| | | //转化数据 |
| | | formColumn(formList) { |
| | | return formList.map(item => { |
| | | const typeValue = item.type === 'text' ? 'input' : item.type === 'combox' ? 'select' : item.type; |
| | | return formList.map(item => { |
| | | const typeValue = item.type === 'text' ? 'input' : item.type === 'combox' ? 'select' : item.type; |
| | | |
| | | const focusFunc = item.type === 'refer' ? (i) => { |
| | | const focusFunc = item.type === 'refer' ? (i) => { |
| | | |
| | | } : undefined; |
| | | } : undefined; |
| | | |
| | | |
| | | return { |
| | | label: item.text, |
| | | prop: item.field, |
| | | type: typeValue, |
| | | labelWidth:item.text.length >= 6 ? 115 : 90, |
| | | value: item.defaultValue, |
| | | dicData: item.type === 'combox' ? item.dicData : item.dicUrl, |
| | | readonly: item.readOnly, |
| | | disabled: item.disabled, |
| | | display: !item.hidden, |
| | | labelSuffix: item.suffix, |
| | | suffixIcon: item.prefix, |
| | | placeholder: item.placeholder, |
| | | clearable: item.clearable, |
| | | tip: item.tooltips, |
| | | keyAttr: item.keyAttr, |
| | | focus:focusFunc, |
| | | referConfig:item.referConfig, |
| | | rules: [{ |
| | | required: item.required, |
| | | message: `请输入${item.text}!`, |
| | | trigger: "blur" |
| | | }] |
| | | }; |
| | | }); |
| | | return { |
| | | label: item.text, |
| | | prop: item.field, |
| | | type: typeValue, |
| | | labelWidth: item.text.length >= 6 ? 115 : 90, |
| | | value: item.defaultValue, |
| | | dicData: item.type === 'combox' ? item.dicData : item.dicUrl, |
| | | readonly: item.readOnly, |
| | | disabled: item.disabled, |
| | | display: !item.hidden, |
| | | labelSuffix: item.suffix, |
| | | suffixIcon: item.prefix, |
| | | placeholder: item.placeholder, |
| | | clearable: item.clearable, |
| | | tip: item.tooltips, |
| | | keyAttr: item.keyAttr, |
| | | focus: focusFunc, |
| | | referConfig: item.referConfig, |
| | | rules: [{ |
| | | required: item.required, |
| | | message: `请输入${item.text}!`, |
| | | trigger: "blur" |
| | | }] |
| | | }; |
| | | }); |
| | | }, |
| | | |
| | | //数据判空 |