| | |
| | | <template> |
| | | <el-dialog :title="titleMap[mode]" v-model="visible" :width="800" destroy-on-close @closed="$emit('closed')"> |
| | | <div class="modelTitle"> |
| | | <span>通知类型 {{addBusinessForm.businessName}}</span> |
| | | <span>服务商 {{addBusinessForm.notifyName}}</span> |
| | | <span>通知类型 {{addBusinessForm.name}}</span> |
| | | <span> |
| | | 服务商 |
| | | <el-select style="width: 80%" v-model="serviceproviders" disabled> |
| | | <el-option v-for="item in addBusinessForm.providerInfos" :key="item.id" :label="item.name" :value="item.id"/> |
| | | </el-select> |
| | | </span> |
| | | </div> |
| | | <el-form :model="addBusinessForm" :rules="addBusinessRules" :disabled="mode=='show'" ref="dialogForm" label-width="140px" label-position="center"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="请输入配置名称" prop="notifyTemplateName"> |
| | | <el-input v-model="addBusinessForm.notifyTemplateName" placeholder="模版名称" clearable></el-input> |
| | | <el-input v-model="addBusinessForm.pname" placeholder="模版名称" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24" v-for="item in addBusinessForm.properties"> |
| | | <el-form-item :label="item.name"> |
| | | <el-input v-model="addBusinessForm[item.property]" :placeholder="item.name" clearable></el-input> |
| | | <el-col :span="24" v-for="(item,index) in addBusinessForm.configuration"> |
| | | <el-form-item :label="item.pname" v-if="item.name != 'properties'"> |
| | | <el-input v-model="item.value" :placeholder="item.name" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="item.pname" v-if="item.name == 'properties'"> |
| | | <div class="array-content"> |
| | | <el-row v-for="(item1,index1) in item.value"> |
| | | <el-col v-for="(item2,index2) in item1" :span="7"> |
| | | <el-input v-model="item2.value" placeholder ="请输入" style="width: 76%;margin-right: 10px;"></el-input> |
| | | <el-icon style="vertical-align: -3px;"><ArrowRightBold /></el-icon> |
| | | </el-col> |
| | | <el-col :span="3" class="otherBtn"> |
| | | <el-button type="primary" size="small" plain @click="addpro(index,index1)" v-show="index1 == (item.value.length-1)">添加</el-button> |
| | | <el-button type="danger" size="small" style="margin-left:0;" plain @click="delData(index,index1)" v-show="index1 != (item.value.length-1)">删除</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import * as ElementPlusIconsVue from '@element-plus/icons-vue' |
| | | let icons = [] |
| | | for (const [key, component] of Object.entries(ElementPlusIconsVue)) { |
| | | icons.push(key) |
| | | } |
| | | export default { |
| | | emits: ['success', 'closed'], |
| | | data() { |
| | | return { |
| | | serviceproviders: "", |
| | | mode: "add", |
| | | titleMap: { |
| | | add: '新增', |
| | |
| | | isSaveing: false, |
| | | //表单数据 |
| | | addBusinessForm: { |
| | | providerInfos: [], |
| | | notifyTemplateName: "", |
| | | agentId: "", |
| | | title: "", |
| | |
| | | mounted() { |
| | | }, |
| | | methods: { |
| | | addpro(index,index1) { |
| | | this.addBusinessForm.configuration[index].value.push([ |
| | | {name: 'name', value: ''}, |
| | | {name: 'value', value: ''}, |
| | | {name: 'description', value: ''}, |
| | | ]) |
| | | }, |
| | | delData(index,index1) { |
| | | this.addBusinessForm.configuration[index].value.splice(index1,1); |
| | | }, |
| | | //显示 |
| | | open(mode='add'){ |
| | | this.mode = mode; |
| | |
| | | }, |
| | | //表单注入数据 |
| | | setData(data){ |
| | | if(data.configEntity == null) return; |
| | | var configuration = data.configEntity.configuration; |
| | | data.configuration = []; |
| | | for(var key in configuration) { |
| | | if(Array.isArray(configuration[key])) { |
| | | var value = configuration[key]; |
| | | var temArr = []; |
| | | value.forEach(item=> { |
| | | var setArr = []; |
| | | for(var key1 in item) { |
| | | setArr.push({ |
| | | name: key1, |
| | | value: item[key1] |
| | | }) |
| | | } |
| | | temArr.push(setArr); |
| | | }) |
| | | data.configuration.push({ |
| | | name: key, |
| | | value: temArr |
| | | }) |
| | | }else { |
| | | data.configuration.push({ |
| | | name: key, |
| | | value: configuration[key] |
| | | }) |
| | | } |
| | | } |
| | | data.properties.forEach(item=> { |
| | | data.configuration.forEach(item1=> { |
| | | if(item1.name == item.property) { |
| | | item1.pname = item.name; |
| | | } |
| | | }) |
| | | }) |
| | | console.log(data.configuration,data) |
| | | // for(var key in res.data.configEntity.configuration) { |
| | | // res.data.configEntity.configuration['name'] = key; |
| | | // res.data.configEntity.configuration['value'] = res.data.configEntity.configuration[key]; |
| | | // res.data.configEntity.configuration['type'] = res.data.id; |
| | | // } |
| | | //可以和上面一样单个注入,也可以像下面一样直接合并进去 |
| | | Object.assign(this.addBusinessForm, data); |
| | | console.log(this.addBusinessForm) |
| | | Object.assign(this.addBusinessForm,data); |
| | | |
| | | // this.$nextTick(()=> { |
| | | // this.serviceproviders = this.addBusinessForm.providerInfos[0].id; |
| | | // }) |
| | | // console.log(this.addBusinessForm) |
| | | } |
| | | } |
| | | }, |
| | | components: { |
| | | ...ElementPlusIconsVue |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | |
| | | } |
| | | .modelTitle span { |
| | | display: inline-block; |
| | | width:30%; |
| | | width:50%; |
| | | } |
| | | .array-content { |
| | | border: 1px solid #d8d8d8; |
| | | border-radius: 2px; |
| | | min-height: 200px; |
| | | width: 100%; |
| | | padding: 12px; |
| | | } |
| | | .otherBtn { |
| | | margin-bottom: 12px; |
| | | } |
| | | </style> |