Compare commits

...

2 Commits

Author SHA1 Message Date
clay 96da5c621f Merge remote-tracking branch 'origin/master' 2023-01-08 18:09:27 +08:00
clay 5abf7f02cd clay commit : 流程触发成功 2023-01-08 18:09:21 +08:00
3 changed files with 38 additions and 10 deletions

View File

@ -87,32 +87,38 @@
</el-aside> </el-aside>
<w-dialog clickClose closeFree width="800px" :showFooter="false" :border="false" title="表单预览" <w-dialog clickClose closeFree width="800px" :showFooter="false" :border="false" title="表单预览"
v-model="viewFormVisible"> v-model="viewFormVisible">
<el-radio-group v-model="formPreviewModel" @change="formPreviewModelChange">
<el-radio-button label="E">编辑</el-radio-button>
<el-radio-button label="R">查看</el-radio-button>
</el-radio-group>
<!--todo 表单渲染--> <!--todo 表单渲染-->
<form-render ref="form" :forms="forms" v-model="formData"/> <form-render-view v-if="viewFormVisibleRender" ref="form" :form-items="forms" v-model="formData" :is-preview="true" :model="formPreviewModel"/>
</w-dialog> </w-dialog>
</el-container> </el-container>
</template> </template>
<!--动态表单编辑器--> <!--动态表单编辑器-->
<script> <script>
import draggable from "vuedraggable"; import draggable from "vuedraggable";
import FormRender from '@/views/common/form/FormRender' import FormRenderView from '@/views/common/form/FormRenderView'
import FormDesignRender from '@/views/admin/layout/form/FormDesignRender' import FormDesignRender from '@/views/admin/layout/form/FormDesignRender'
import FormComponentConfig from '@/views/common/form/FormComponentConfig' import FormComponentConfig from '@/views/common/form/FormComponentConfig'
import {baseComponents} from '@/views/common/form/ComponentsConfigExport' import {baseComponents} from '@/views/common/form/ComponentsConfigExport'
export default { export default {
name: "FormDesign", name: "FormDesign",
components: {draggable, FormComponentConfig, FormDesignRender, FormRender}, components: {draggable, FormComponentConfig, FormDesignRender, FormRenderView},
data() { data() {
return { return {
formData: {}, formData: {},
libSelect: 0, libSelect: 0,
viewFormVisible: false, viewFormVisible: false,
viewFormVisibleRender: true,
isStart: false, isStart: false,
showMobile: true, showMobile: false,
baseComponents, baseComponents,
select: null, select: null,
drag: false, drag: false,
formPreviewModel:"R",
} }
}, },
computed: { computed: {
@ -132,6 +138,16 @@ export default {
} }
}, },
methods: { methods: {
formPreviewModelChange(){
//
this.viewFormVisibleRender= false
// nextTick
// tableShowfalsetrue
this.$nextTick(function(){
//
this.viewFormVisibleRender= true
})
},
copy(node, index) { copy(node, index) {
this.form.splice(index + 1, 0, Object.assign({}, node)) this.form.splice(index + 1, 0, Object.assign({}, node))
}, },

View File

@ -79,7 +79,7 @@ export default {
this.loadFormConfig(item.props.items) this.loadFormConfig(item.props.items)
}else { }else {
if (!item.perm){ if (!item.perm){
this.$set(item, 'perm', null) this.$set(item, 'perm', 'E')
} }
this.$set(this._value, item.id, this.value[item.id]) this.$set(this._value, item.id, this.value[item.id])
if(item.props.required){ if(item.props.required){

View File

@ -15,7 +15,7 @@
import FormDesignRender from '@/views/admin/layout/form/FormDesignRender' import FormDesignRender from '@/views/admin/layout/form/FormDesignRender'
export default { export default {
name: "FormViewRender", name: "FormRenderView",
components: {FormDesignRender}, components: {FormDesignRender},
props: { props: {
formItems: { formItems: {
@ -29,6 +29,18 @@ export default {
default: () => { default: () => {
return {} return {}
} }
},
model:{
type: String,
default:() => {
return "R"
}
},
isPreview:{
type: Boolean,
default:() => {
return false
}
} }
}, },
data() { data() {
@ -51,13 +63,15 @@ export default {
}, },
methods: { methods: {
loadFormConfig(formItems) { loadFormConfig(formItems) {
console.log(formItems)
formItems.forEach(item => { formItems.forEach(item => {
if (item.name === 'SpanLayout') { if (item.name === 'SpanLayout') {
this.loadFormConfig(item.props.items) this.loadFormConfig(item.props.items)
} else { } else {
this.$set(this._value, item.id, this.value[item.id]) this.$set(this._value, item.id, this.value[item.id])
if (item.props.required) { if (this.isPreview){
this.$set(item, 'perm', this.model)
}
if (item.props.required && this.model === "E") {
this.$set(this.rules, item.id, [{ this.$set(this.rules, item.id, [{
type: item.valueType === 'Array' ? 'array' : undefined, type: item.valueType === 'Array' ? 'array' : undefined,
required: true, required: true,
@ -68,8 +82,6 @@ export default {
}) })
} }
} }
} }
</script> </script>