Files
gva/QMPlusVuePage/src/view/superAdmin/autoCode/index.vue

159 lines
5.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div>
<!-- 开发中功能若您发现这块代码可以研究可以无视 -->
<!-- 此版本为简单版 -->
<!-- 结构体基础配置 -->
<el-form ref="form" :model="form" label-width="100px" :inline="true">
<el-form-item label="结构名称" :span="8">
<el-input v-model="form.structName"></el-input>
</el-form-item>
<el-form-item label="结构类型" :span="8">
<el-select v-model="form.structType" multiple placeholder="请选择结构类型(多选)">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-form>
<!-- 组件列表 -->
<div class="button-box clearflex">
<el-button @click="editAndAddComponent()" type="primary">新增组件</el-button>
</div>
<el-table
:data="form.components"
border stripe>
<el-table-column
type="index"
label="序列"
width="180">
</el-table-column>
<el-table-column
prop="componentName"
label="组件名"
width="180">
</el-table-column>
<el-table-column
prop="componentType"
label="组件数据类型"
width="180">
</el-table-column>
<el-table-column
prop="componentShowType"
label="组件展示类型">
</el-table-column>
<el-table-column
prop="dictionaryName"
label="字典名称(选)">
</el-table-column>
<el-table-column
label="操作">
<template slot-scope="scope">
<el-button @click="editAndAddComponent(scope.row)">编辑</el-button>
<el-popover
placement="top"
width="160"
v-model="scope.row.visible">
<p>这是一段内容这是一段内容确定删除吗</p>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="scope.row.visible = false">取消</el-button>
<el-button type="primary" size="mini" @click="deleteComponent(scope.$index)">确定</el-button>
</div>
<el-button slot="reference">删除</el-button>
</el-popover>
</template>
</el-table-column>
</el-table>
<!-- 组件列表 -->
<div class="button-box clearflex">
<el-button @click="enterForm" type="primary">提交</el-button>
</div>
<!-- 组件弹窗 -->
<el-dialog title="组件内容" :visible.sync="dialogFlag">
<ComponentDialog :dialogMiddle="dialogMiddle" />
<div slot="footer" class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="enterDialog"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
const componentTemplate={
componentName:"",
componentType:"",
componentShowType:"",
dictionaryName:"",
isMultiple:false,
nideDictionary:false,
visible:false,
componentDictionary:[]
}
import ComponentDialog from "@/view/superAdmin/autoCode/component/componentDialog.vue"
export default {
name:"autoCode",
data(){
return{
addFlag:"",
form:{
structName:"",
structType:[],
components:[]
},
options:[
{label:"表格类型",value:"grid"},
{label:"表单类型",value:"form"}
],
dialogMiddle:{},
bk:{},
dialogFlag:false
}
},
components:{
ComponentDialog
},
methods:{
editAndAddComponent(item){
this.dialogFlag = true
if(item){
this.addFlag="edit"
this.bk=JSON.parse(JSON.stringify(item))
this.dialogMiddle = item
}else{
this.addFlag="add"
this.dialogMiddle = JSON.parse(JSON.stringify(componentTemplate))
}
},
enterDialog(){
if(this.addFlag=="add"){
this.form.components.push(this.dialogMiddle)
}
this.dialogFlag = false
},
closeDialog(){
if(this.addFlag=="edit"){
this.dialogMiddle = this.bk
}
this.dialogFlag = false
},
deleteComponent(index){
this.form.components.splice(index,1)
},
enterForm(){
console.log(this.form)
}
}
}
</script>
<style scope lang="scss">
.button-box {
padding: 10px 20px;
.el-button {
float: right;
}
}
</style>