QM303176530
5 years ago
1 changed files with 179 additions and 0 deletions
@ -0,0 +1,179 @@ |
|||
<template> |
|||
<div> |
|||
<el-form :model="dialogMiddle" :inline="true" > |
|||
<el-form-item label="组件名称" label-width="80" :span="8"> |
|||
<el-input v-model="dialogMiddle.componentName" autocomplete="off"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="数据类型" label-width="80" :span="8"> |
|||
<el-select v-model="dialogMiddle.componentType" placeholder="请选择活动区域"> |
|||
<el-option |
|||
v-for="item in typeOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="展示类型" label-width="80" :span="8"> |
|||
<el-select v-model="dialogMiddle.componentShowType" placeholder="请选择活动区域"> |
|||
<el-option |
|||
v-for="item in showTypeOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="字典Key" label-width="80" :span="8"> |
|||
<el-input v-model="dialogMiddle.dictionaryName" autocomplete="off"></el-input> |
|||
</el-form-item> |
|||
<div> |
|||
<el-form-item label="是否多选" label-width="80"> |
|||
<el-switch |
|||
v-model="dialogMiddle.isMultiple" |
|||
active-text="多选" |
|||
inactive-text="单选"> |
|||
</el-switch> |
|||
</el-form-item> |
|||
</div> |
|||
<div> |
|||
<el-form-item label="是否使用字典" label-width="80"> |
|||
<el-switch |
|||
v-model="dialogMiddle.nideDictionary" |
|||
active-text="使用" |
|||
inactive-text="不使用"> |
|||
</el-switch> |
|||
</el-form-item> |
|||
</div> |
|||
</el-form> |
|||
<div class="button-box clearflex"> |
|||
<el-button @click="addDictionary" type="primary">新增组件</el-button> |
|||
</div> |
|||
<el-table |
|||
:data="dialogMiddle.componentDictionary" |
|||
stripe |
|||
style="width: 100%"> |
|||
<el-table-column |
|||
label="展示值" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<el-input v-model="scope.row.label"></el-input> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
label="交互值" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<el-input v-model="scope.row.value"></el-input> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
label="操作" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<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="deleteRow(scope)">确定</el-button> |
|||
</div> |
|||
<el-button type="text" slot="reference">删除</el-button> |
|||
</el-popover> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
const dictionaryTemplate = { |
|||
label:"", |
|||
value:"", |
|||
visible:false |
|||
} |
|||
export default { |
|||
name:"ComponentDialog", |
|||
props:{ |
|||
dialogMiddle:{ |
|||
type:Object, |
|||
default:function(){ |
|||
return {} |
|||
} |
|||
} |
|||
}, |
|||
data(){ |
|||
return{ |
|||
visible:false, |
|||
typeOptions:[ |
|||
{ |
|||
label:"字符串", |
|||
value:"string" |
|||
}, |
|||
{ |
|||
label:"整型", |
|||
value:"int" |
|||
}, |
|||
{ |
|||
label:"布尔值", |
|||
value:"bool" |
|||
}, |
|||
{ |
|||
label:"浮点型", |
|||
value:"float64" |
|||
}, |
|||
{ |
|||
label:"时间", |
|||
value:"time.Time" |
|||
}, |
|||
], |
|||
showTypeOptions:[ |
|||
{ |
|||
label:"单选框", |
|||
value:"radio" |
|||
}, |
|||
{ |
|||
label:"多选框", |
|||
value:"checkBox" |
|||
}, |
|||
{ |
|||
label:"输入框", |
|||
value:"input" |
|||
}, |
|||
{ |
|||
label:"计数器", |
|||
value:"inputNumber" |
|||
}, |
|||
{ |
|||
label:"选择器", |
|||
value:"select" |
|||
}, |
|||
{ |
|||
label:"级联选择器", |
|||
value:"cascader" |
|||
}, |
|||
{ |
|||
label:"开关", |
|||
value:"switch" |
|||
}, |
|||
{ |
|||
label:"时间日期选择器", |
|||
value:"datePicker" |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
methods:{ |
|||
addDictionary(){ |
|||
this.dialogMiddle.componentDictionary.push({...dictionaryTemplate}) |
|||
}, |
|||
deleteRow(row){ |
|||
this.dialogMiddle.componentDictionary.splice(row.$index,1) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss"> |
|||
|
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue