You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.9 KiB
69 lines
1.9 KiB
<template>
|
|
<div class="app-container">
|
|
<el-tabs v-model="activeKey" @tab-click="changeType">
|
|
<el-tab-pane v-for="it in tabList" :key="it.value" :label="it.label" :name="it.value"/>
|
|
</el-tabs>
|
|
<Editor v-model="currentConfig.configValue" placeholder="请输入内容" type="url"></Editor>
|
|
<el-button type="primary" class="mt20" @click="asyncOk">保存</el-button>
|
|
<el-button class="mt20 ml20" @click="getData">重置</el-button>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import {getConfigKey2, addOrUpdate} from '@/api/system/config'
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
//常见问题,隐私协议,联系客服
|
|
activeKey: 'mall.contact',
|
|
tabList: [
|
|
{label: '客服配置', value: 'mall.contact'},
|
|
{label: '隐私协议', value: 'mall.privacyAgreement'},
|
|
{label: '常见问题', value: 'mall.question'},
|
|
{label: '关于我们', value: 'mall.aboutUs'},
|
|
],
|
|
configList: [],
|
|
currentConfig: {
|
|
configValue: '',
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
changeType() {
|
|
this.currentConfig = this.configList.filter(it => it.configKey === this.activeKey)[0]
|
|
console.log(this.currentConfig)
|
|
},
|
|
getData() {
|
|
const funcArr = this.tabList.map(it => {
|
|
return getConfigKey2(it.value)
|
|
})
|
|
const list = []
|
|
Promise.all(funcArr).then(res => {
|
|
res.forEach((it, idx) => {
|
|
list.push(it.data ? it.data : {
|
|
configValue: '',
|
|
configType: 'N',
|
|
configKey: this.tabList[idx].value,
|
|
configName: this.tabList[idx].label,
|
|
configId: null
|
|
})
|
|
})
|
|
this.configList = list
|
|
this.changeType()
|
|
})
|
|
},
|
|
asyncOk() {
|
|
addOrUpdate(this.currentConfig).then(res=>{
|
|
this.$message.success('保存成功')
|
|
this.getData()
|
|
})
|
|
}
|
|
},
|
|
created() {
|
|
this.getData()
|
|
},
|
|
|
|
}
|
|
</script>
|