mirror of https://github.com/halo-dev/halo-admin
feat: complete OptionsList.
parent
06b9225037
commit
98a1c342a4
|
@ -30,15 +30,45 @@ optionApi.save = options => {
|
|||
})
|
||||
}
|
||||
|
||||
optionApi.create = option => {
|
||||
return service({
|
||||
url: baseUrl,
|
||||
data: option,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
optionApi.delete = optionId => {
|
||||
return service({
|
||||
url: `${baseUrl}/${optionId}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
optionApi.get = optionId => {
|
||||
return service({
|
||||
url: `${baseUrl}/${optionId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
optionApi.update = (optionId, option) => {
|
||||
return service({
|
||||
url: `${baseUrl}/${optionId}`,
|
||||
data: option,
|
||||
method: 'put'
|
||||
})
|
||||
}
|
||||
|
||||
optionApi.type = {
|
||||
INTERNAL: {
|
||||
type: 'internal',
|
||||
value: 'INTERNAL',
|
||||
text: '系统'
|
||||
},
|
||||
CUSTOM: {
|
||||
type: 'custom',
|
||||
value: 'CUSTOM',
|
||||
text: '自定义'
|
||||
}
|
||||
}
|
||||
|
||||
export default optionApi
|
||||
export default optionApi
|
|
@ -300,13 +300,11 @@ export default {
|
|||
categoryApi.update(this.categoryToCreate.id, this.categoryToCreate).then(response => {
|
||||
this.$message.success('更新成功!')
|
||||
this.loadCategories()
|
||||
this.categoryToCreate = {}
|
||||
})
|
||||
} else {
|
||||
categoryApi.create(this.categoryToCreate).then(response => {
|
||||
this.$message.success('保存成功!')
|
||||
this.loadCategories()
|
||||
this.categoryToCreate = {}
|
||||
})
|
||||
}
|
||||
this.handleAddCategory()
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
<a-button
|
||||
type="primary"
|
||||
icon="plus"
|
||||
@click="()=>this.formVisible=true"
|
||||
>新增</a-button>
|
||||
</div>
|
||||
<div style="margin-top:15px">
|
||||
|
@ -115,13 +116,18 @@
|
|||
</span>
|
||||
<span
|
||||
slot="action"
|
||||
slot-scope="text, record"
|
||||
>
|
||||
<a href="javascript:void(0);">编辑</a>
|
||||
<a
|
||||
href="javascript:void(0);"
|
||||
@click="handleEditOption(record)"
|
||||
>编辑</a>
|
||||
<a-divider type="vertical" />
|
||||
<a-popconfirm
|
||||
:title="'你确定要永久删除该变量?'"
|
||||
okText="确定"
|
||||
cancelText="取消"
|
||||
@confirm="handleDeleteOption(record.id)"
|
||||
>
|
||||
<a href="javascript:;">删除</a>
|
||||
</a-popconfirm>
|
||||
|
@ -141,10 +147,38 @@
|
|||
</div>
|
||||
</div>
|
||||
</a-card>
|
||||
<a-modal
|
||||
v-model="formVisible"
|
||||
:title="formTitle"
|
||||
:afterClose="onFormClose"
|
||||
>
|
||||
<template slot="footer">
|
||||
<a-button
|
||||
key="submit"
|
||||
type="primary"
|
||||
@click="createOrUpdateOption()"
|
||||
>保存</a-button>
|
||||
</template>
|
||||
<a-alert
|
||||
v-if="optionToStage.type === optionType.INTERNAL.value"
|
||||
message="注意:在不知道系统变量的具体用途时,请不要随意修改!"
|
||||
banner
|
||||
closable
|
||||
/>
|
||||
<a-form layout="vertical">
|
||||
<a-form-item label="Key:">
|
||||
<a-input v-model="optionToStage.key" />
|
||||
</a-form-item>
|
||||
<a-form-item label="Value:">
|
||||
<a-input v-model="optionToStage.value" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import optionApi from '@/api/option'
|
||||
import { mapActions } from 'vuex'
|
||||
const columns = [
|
||||
{
|
||||
title: 'Key',
|
||||
|
@ -187,6 +221,7 @@ export default {
|
|||
return {
|
||||
optionType: optionApi.type,
|
||||
columns: columns,
|
||||
formVisible: false,
|
||||
pagination: {
|
||||
page: 1,
|
||||
size: 10,
|
||||
|
@ -199,6 +234,7 @@ export default {
|
|||
keyword: null,
|
||||
status: null
|
||||
},
|
||||
optionToStage: {},
|
||||
loading: false,
|
||||
options: []
|
||||
}
|
||||
|
@ -209,13 +245,17 @@ export default {
|
|||
option.typeProperty = this.optionType[option.type]
|
||||
return option
|
||||
})
|
||||
},
|
||||
formTitle() {
|
||||
return this.optionToStage.id ? '编辑' : '新增'
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.loadOptions()
|
||||
this.loadOptionsList()
|
||||
},
|
||||
methods: {
|
||||
loadOptions() {
|
||||
...mapActions(['loadOptions']),
|
||||
loadOptionsList() {
|
||||
this.loading = true
|
||||
this.queryParam.page = this.pagination.page - 1
|
||||
this.queryParam.size = this.pagination.size
|
||||
|
@ -229,16 +269,64 @@ export default {
|
|||
handleQuery() {
|
||||
this.handlePaginationChange(1, this.pagination.size)
|
||||
},
|
||||
handleDeleteOption(id) {
|
||||
optionApi.delete(id).then(response => {
|
||||
this.$message.success('删除成功!')
|
||||
this.loadOptionsList()
|
||||
this.loadOptions()
|
||||
})
|
||||
},
|
||||
handleEditOption(option) {
|
||||
this.optionToStage = option
|
||||
this.formVisible = true
|
||||
},
|
||||
handlePaginationChange(page, pageSize) {
|
||||
this.$log.debug(`Current: ${page}, PageSize: ${pageSize}`)
|
||||
this.pagination.page = page
|
||||
this.pagination.size = pageSize
|
||||
this.loadOptions()
|
||||
this.loadOptionsList()
|
||||
},
|
||||
handleResetParam() {
|
||||
this.queryParam.keyword = null
|
||||
this.queryParam.type = null
|
||||
this.handlePaginationChange(1, this.pagination.size)
|
||||
},
|
||||
onFormClose() {
|
||||
;(this.formVisible = false), (this.optionToStage = {})
|
||||
},
|
||||
createOrUpdateOption() {
|
||||
if (!this.optionToStage.key) {
|
||||
this.$notification['error']({
|
||||
message: '提示',
|
||||
description: 'Key 不能为空!'
|
||||
})
|
||||
return
|
||||
}
|
||||
if (!this.optionToStage.value) {
|
||||
this.$notification['error']({
|
||||
message: '提示',
|
||||
description: 'Value 不能为空!'
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.optionToStage.id) {
|
||||
optionApi.update(this.optionToStage.id, this.optionToStage).then(response => {
|
||||
this.$message.success('更新成功!')
|
||||
this.loadOptionsList()
|
||||
this.loadOptions()
|
||||
this.optionToStage = {}
|
||||
this.formVisible = false
|
||||
})
|
||||
} else {
|
||||
this.optionToStage.type = this.optionType.CUSTOM.value
|
||||
optionApi.create(this.optionToStage).then(response => {
|
||||
this.$message.success('保存成功!')
|
||||
this.loadOptionsList()
|
||||
this.loadOptions()
|
||||
this.optionToStage = {}
|
||||
this.formVisible = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue