2 changed files with 311 additions and 0 deletions
@ -0,0 +1,30 @@ |
|||
import axios from '@/libs/api.request' |
|||
|
|||
/** |
|||
* 获取菜单列表数据 |
|||
* @returns {wx.RequestTask | never} |
|||
*/ |
|||
export const getList = (params) => { |
|||
return axios.request({ |
|||
url: 'config/index', |
|||
method: 'get' |
|||
}) |
|||
} |
|||
|
|||
export const editIndex = (id) => { |
|||
return axios.request({ |
|||
url: 'config/editIndex', |
|||
method: 'get', |
|||
params: { |
|||
id: id |
|||
} |
|||
}) |
|||
} |
|||
|
|||
export const add = (data) => { |
|||
return axios.request({ |
|||
url: 'config/add', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
@ -0,0 +1,281 @@ |
|||
<style lang="less" scoped> |
|||
|
|||
</style> |
|||
<style> |
|||
.status-normal { |
|||
color: green; /* 正常状态的颜色 */ |
|||
} |
|||
|
|||
.status-closed { |
|||
color: red; /* 关闭状态的颜色 */ |
|||
} |
|||
</style> |
|||
<template> |
|||
<div> |
|||
<Row> |
|||
<Col span="24"> |
|||
<Card> |
|||
<div> |
|||
<Table :loading="listLoading" :columns="columnsList" :data="tableData" border disabled-hover></Table> |
|||
</div> |
|||
<!-- <div class="margin-top-15" style="text-align: center"> |
|||
<Page :total="tableShow.listCount" :current="tableShow.currentPage" |
|||
:page-size="tableShow.pageSize" @on-change="changePage" |
|||
@on-page-size-change="changeSize" show-elevator show-sizer show-total></Page> |
|||
</div> --> |
|||
</Card> |
|||
</Col> |
|||
</Row> |
|||
<Modal v-model="modalSetting.show" width="668" :styles="{top: '30px'}" @on-visible-change="doCancel"> |
|||
<p slot="header" style="color:#2d8cf0"> |
|||
<Icon type="md-alert"></Icon> |
|||
<span>编辑{{formItem.name}}</span> |
|||
</p> |
|||
<Form ref="myForm" :rules="ruleValidate" :model="formItem" :label-width="80" v-if="formItem.id==1"> |
|||
<FormItem label="邮箱类型" prop="item1.title"> |
|||
<Input v-model="formItem.item1.title" disabled placeholder="请输入邮箱类型"></Input> |
|||
</FormItem> |
|||
<FormItem label="邮箱账号" prop="item1.email"> |
|||
<Input v-model="formItem.item1.email" placeholder="请输入邮箱账号"></Input> |
|||
</FormItem> |
|||
<FormItem label="密钥" prop="item1.token"> |
|||
<Input v-model="formItem.item1.token" placeholder="请输入密钥"></Input> |
|||
</FormItem> |
|||
<div style="border: 1px solid #ccc;"></div> |
|||
<br /> |
|||
<FormItem label="邮箱类型" prop="item2.title"> |
|||
<Input v-model="formItem.item2.title" disabled placeholder="请输入邮箱类型"></Input> |
|||
</FormItem> |
|||
<FormItem label="邮箱账号" prop="item2.email"> |
|||
<Input v-model="formItem.item2.email" placeholder="请输入邮箱账号"></Input> |
|||
</FormItem> |
|||
<FormItem label="密钥" prop="item2.token"> |
|||
<Input v-model="formItem.item2.token" placeholder="请输入密钥"></Input> |
|||
</FormItem> |
|||
</Form> |
|||
<Form ref="myForm1" :rules="ruleValidate1" :model="formItem" :label-width="80" v-if="formItem.id==2"> |
|||
<FormItem label="API地址" prop="item3.api_url"> |
|||
<Input v-model="formItem.item3.api_url" placeholder="请输入API地址"></Input> |
|||
</FormItem> |
|||
<FormItem label="账号" prop="item3.username"> |
|||
<Input v-model="formItem.item3.username" placeholder="请输入账号"></Input> |
|||
</FormItem> |
|||
<FormItem label="密码" prop="item3.password"> |
|||
<Input v-model="formItem.item3.password" placeholder="请输入密码"></Input> |
|||
</FormItem> |
|||
</Form> |
|||
<div slot="footer"> |
|||
<Button type="text" @click="cancel" class="margin-right-10">取消</Button> |
|||
<Button type="primary" @click="submit" :loading="modalSetting.loading">确定</Button> |
|||
</div> |
|||
</Modal> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { getList, editIndex, add } from '@/api/configuration' |
|||
|
|||
const editButton = (vm, h, currentRow, index) => { |
|||
if (vm.buttonShow.edit) { |
|||
return h('Button', { |
|||
props: { |
|||
type: 'primary' |
|||
}, |
|||
style: { |
|||
margin: '0 5px' |
|||
}, |
|||
on: { |
|||
'click': () => { |
|||
editIndex(currentRow.id).then(response => { |
|||
console.log(response) |
|||
vm.formItem.name = response.data.data.data.name |
|||
vm.formItem.id = response.data.data.data.id |
|||
vm.formItem.item2 = response.data.data.data.content[1] |
|||
if (response.data.data.data.id === 1) { |
|||
vm.formItem.item1 = response.data.data.data.content[0] |
|||
} else { |
|||
vm.formItem.item3 = response.data.data.data.content[0] |
|||
} |
|||
}) |
|||
vm.modalSetting.show = true |
|||
vm.modalSetting.index = index |
|||
} |
|||
} |
|||
}, vm.$t('edit_button')) |
|||
} |
|||
} |
|||
|
|||
export default { |
|||
name: 'system_user', |
|||
data () { |
|||
return { |
|||
columnsList: [ |
|||
{ |
|||
title: 'ID编号', |
|||
type: 'index', |
|||
width: 80, |
|||
align: 'center' |
|||
}, |
|||
{ |
|||
title: '配置名称', |
|||
align: 'center', |
|||
key: 'name', |
|||
Width: 200 |
|||
}, |
|||
{ |
|||
title: '配置标识', |
|||
align: 'center', |
|||
key: 'title', |
|||
Width: 200 |
|||
}, |
|||
{ |
|||
title: '状态', |
|||
align: 'center', |
|||
key: 'status', |
|||
width: 100, |
|||
render: (h, params) => { |
|||
const statusClass = params.row.status === 1 ? 'status-normal' : 'status-closed' |
|||
const statusText = params.row.status === 1 ? '√' : 'X' |
|||
return h('span', { class: statusClass }, statusText) |
|||
} |
|||
}, |
|||
{ |
|||
title: '操作', |
|||
align: 'center', |
|||
width: 200, |
|||
render: (h, params) => { |
|||
return h('div', [ |
|||
editButton(this, h, params.row, params.index) |
|||
// deleteButton(this, h, params.row, params.index) |
|||
]) |
|||
} |
|||
} |
|||
], |
|||
tableData: [], |
|||
// tableShow: { |
|||
// currentPage: 1, |
|||
// pageSize: 10, |
|||
// listCount: 0 |
|||
// }, |
|||
searchConf: { |
|||
type: '', |
|||
keywords: '', |
|||
status: '' |
|||
}, |
|||
modalSetting: { |
|||
show: false, |
|||
loading: false, |
|||
index: 0 |
|||
}, |
|||
formItem: { |
|||
item1: {}, |
|||
item2: {}, |
|||
item3: {}, |
|||
name: '', |
|||
id: 0 |
|||
}, |
|||
ruleValidate: { |
|||
title: [ |
|||
{ required: true, message: '邮箱类型不能为空', trigger: 'blur' } |
|||
], |
|||
email: [ |
|||
{ required: true, message: '邮箱账号不能为空', trigger: 'blur' } |
|||
], |
|||
token: [ |
|||
{ required: true, message: '密钥不能为空', trigger: 'blur' } |
|||
] |
|||
}, |
|||
ruleValidate1: { |
|||
api_url: [ |
|||
{ required: true, message: 'API地址不能为空', trigger: 'blur' } |
|||
], |
|||
username: [ |
|||
{ required: true, message: '账号不能为空', trigger: 'blur' } |
|||
], |
|||
password: [ |
|||
{ required: true, message: '密码不能为空', trigger: 'blur' } |
|||
] |
|||
}, |
|||
buttonShow: { |
|||
edit: true, |
|||
del: true, |
|||
changeStatus: true |
|||
}, |
|||
listLoading: false |
|||
} |
|||
}, |
|||
created () { |
|||
let vm = this |
|||
vm.getList() |
|||
}, |
|||
methods: { |
|||
alertAdd () { |
|||
// let vm = this |
|||
// getGroups().then(response => { |
|||
// vm.groupList = response.data.data.list |
|||
// }) |
|||
this.modalSetting.show = true |
|||
}, |
|||
submit () { |
|||
let vm = this |
|||
this.$refs[vm.formItem.id === 1 ? 'myForm' : 'myForm1'].validate((valid) => { |
|||
console.log(vm.formItem) |
|||
if (valid) { |
|||
vm.modalSetting.loading = true |
|||
const data = { id: vm.formItem.id, content: [] } |
|||
if (vm.formItem.id === 1) { |
|||
data.content.push(vm.formItem.item1, vm.formItem.item2) |
|||
} else { |
|||
data.content.push(vm.formItem.item3) |
|||
} |
|||
|
|||
console.log(data) |
|||
add(data).then(response => { |
|||
console.log(response) |
|||
// vm.groupList = response.data.data.list |
|||
if (response.data.code === 1) { |
|||
vm.$Message.success('修改成功') |
|||
vm.modalSetting.show = false |
|||
} else { |
|||
vm.$Message.success(response.data.msg) |
|||
} |
|||
}).catch(() => { |
|||
vm.modalSetting.show = false |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
cancel () { |
|||
this.modalSetting.show = false |
|||
}, |
|||
doCancel (data) { |
|||
// if (!data) { |
|||
// this.formItem.id = 0 |
|||
// this.$refs['myForm'].resetFields() |
|||
this.modalSetting.loading = false |
|||
// this.modalSetting.index = 0 |
|||
// } |
|||
}, |
|||
// changePage (page) { |
|||
// this.tableShow.currentPage = page |
|||
// this.getList() |
|||
// }, |
|||
// changeSize (size) { |
|||
// this.tableShow.pageSize = size |
|||
// this.getList() |
|||
// }, |
|||
// search () { |
|||
// this.tableShow.currentPage = 1 |
|||
// this.getList() |
|||
// }, |
|||
getList () { |
|||
let vm = this |
|||
vm.listLoading = true |
|||
getList().then(response => { |
|||
vm.tableData = response.data.data.list |
|||
// vm.tableShow.listCount = response.data.data.count |
|||
vm.listLoading = false |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
Loading…
Reference in new issue