参数配置
This commit is contained in:
parent
62b0743abd
commit
7694ad47a7
|
|
@ -158,9 +158,24 @@ export default {
|
||||||
return await http.delete("crontab_log/remove_all", data);
|
return await http.delete("crontab_log/remove_all", data);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
swagger: {
|
config: {
|
||||||
list: async function (data = {}) {
|
list: async function (data = {}) {
|
||||||
return await http.get("swagger/json", data);
|
return await http.get("system_config/list", data);
|
||||||
},
|
},
|
||||||
}
|
info: async function (data = {}) {
|
||||||
|
return await http.get("system_config/list", data);
|
||||||
|
},
|
||||||
|
add: async function (data = {}) {
|
||||||
|
return await http.post("system_config/add", data);
|
||||||
|
},
|
||||||
|
edit: async function (data = {}) {
|
||||||
|
return await http.put("system_config/edit", data);
|
||||||
|
},
|
||||||
|
del: async function (data = {}) {
|
||||||
|
return await http.delete("system_config/del", data);
|
||||||
|
},
|
||||||
|
option: async function (data = {}) {
|
||||||
|
return await http.get("system_config/option", data);
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -118,6 +118,7 @@ function search(text) {
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.pi-icon-select {
|
.pi-icon-select {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pi-icon-select__wrapper.hasValue:deep(.el-input__icon) {
|
.pi-icon-select__wrapper.hasValue:deep(.el-input__icon) {
|
||||||
|
|
|
||||||
|
|
@ -547,10 +547,6 @@ function sort(prop, order) {
|
||||||
.extend-panel {
|
.extend-panel {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
flex-direction: column;
|
gap: 10px;
|
||||||
}
|
|
||||||
|
|
||||||
.right-panel > * + *, .left-panel > * + *, .extend-panel > * + * {
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -11,12 +11,14 @@ import errorHandler from "@/utils/errorHandler";
|
||||||
|
|
||||||
import piDialog from "@/components/piDialog"
|
import piDialog from "@/components/piDialog"
|
||||||
import piTable from "@/components/piTable"
|
import piTable from "@/components/piTable"
|
||||||
|
import piUpload from "@/components/piUpload"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
install(app: App) {
|
install(app: App) {
|
||||||
// 注册全局组件
|
// 注册全局组件
|
||||||
app.component('piDialog', piDialog)
|
app.component('piDialog', piDialog)
|
||||||
app.component('piTable', piTable)
|
app.component('piTable', piTable)
|
||||||
|
app.component('piUpload', piUpload)
|
||||||
|
|
||||||
//注册全局指令
|
//注册全局指令
|
||||||
app.directive('auth', auth)
|
app.directive('auth', auth)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
<template>
|
||||||
|
<pi-table ref="tableRef" :apiObj="api.system.config.list" @selection-change="selectionChange">
|
||||||
|
<template #do>
|
||||||
|
<el-button v-auth="'system_config:add'" type="primary" icon="el-icon-plus" @click="add"></el-button>
|
||||||
|
<el-button v-auth="'system_config:edit'" type="success" icon="el-icon-edit" @click="edit"
|
||||||
|
:disabled="selection.length!==1"></el-button>
|
||||||
|
<el-button v-auth="'system_config:del'" type="danger" plain icon="el-icon-delete"
|
||||||
|
:disabled="selection.length===0" @click="batch_del"></el-button>
|
||||||
|
</template>
|
||||||
|
<template #search>
|
||||||
|
<el-input v-model="search.config_name" placeholder="参数名称" clearable style="width: 200px;"></el-input>
|
||||||
|
<el-input v-model="search.config_key" placeholder="参数键名" clearable style="width: 200px;"></el-input>
|
||||||
|
<el-button type="primary" icon="el-icon-search" @click="upsearch"></el-button>
|
||||||
|
</template>
|
||||||
|
<el-table-column type="selection" width="50"></el-table-column>
|
||||||
|
<el-table-column label="ID" prop="config_id"></el-table-column>
|
||||||
|
<el-table-column label="参数名称" prop="config_name"></el-table-column>
|
||||||
|
<el-table-column label="参数键名" prop="config_key"></el-table-column>
|
||||||
|
<el-table-column label="参数键值" prop="config_value"></el-table-column>
|
||||||
|
<el-table-column label="备注" prop="remark"></el-table-column>
|
||||||
|
<el-table-column label="创建时间" prop="create_time"></el-table-column>
|
||||||
|
<el-table-column label="更新时间" prop="update_time"></el-table-column>
|
||||||
|
<el-table-column label="操作" fixed="right" align="right" width="170">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button-group>
|
||||||
|
<el-button text type="primary" size="small" @click="show(scope.row, scope.$index)">查看
|
||||||
|
</el-button>
|
||||||
|
<el-button v-auth="'system_config:edit'" text type="success" size="small"
|
||||||
|
@click="edit(scope.row, scope.$index)">编辑
|
||||||
|
</el-button>
|
||||||
|
<el-popconfirm title="确定删除吗?" @confirm="del(scope.row, scope.$index)">
|
||||||
|
<template #reference>
|
||||||
|
<el-button v-auth="'system_config:del'" text type="danger" size="small">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-popconfirm>
|
||||||
|
</el-button-group>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</pi-table>
|
||||||
|
<save-dialog v-if="dialogShow" ref="dialogRef" @success="tableRef.refresh()" @closed="dialogShow=false"></save-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import saveDialog from './save'
|
||||||
|
import api from "@/api/index"
|
||||||
|
import {getCurrentInstance, nextTick, ref} from "vue"
|
||||||
|
|
||||||
|
defineOptions({
|
||||||
|
name: "systemConfig"
|
||||||
|
})
|
||||||
|
|
||||||
|
const {proxy} = getCurrentInstance()
|
||||||
|
const tableRef = ref(null)
|
||||||
|
const dialogRef = ref(null)
|
||||||
|
|
||||||
|
let dialogShow = ref(false)
|
||||||
|
let selection = ref([])
|
||||||
|
let search = ref({
|
||||||
|
config_name: null,
|
||||||
|
config_key: null,
|
||||||
|
config_value: null,
|
||||||
|
remark: null,
|
||||||
|
})
|
||||||
|
|
||||||
|
//添加
|
||||||
|
function add() {
|
||||||
|
dialogShow.value = true
|
||||||
|
nextTick(() => {
|
||||||
|
dialogRef.value.open()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//编辑
|
||||||
|
async function edit(row) {
|
||||||
|
dialogShow.value = true
|
||||||
|
nextTick(() => {
|
||||||
|
dialogRef.value.open('edit', row)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//查看
|
||||||
|
async function show(row) {
|
||||||
|
dialogShow.value = true
|
||||||
|
nextTick(() => {
|
||||||
|
dialogRef.value.open('show', row)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//删除
|
||||||
|
async function del(row) {
|
||||||
|
const loading = proxy.$loading();
|
||||||
|
const res = await api.system.config.del({ids: [row.config_id]});
|
||||||
|
tableRef.value.refresh()
|
||||||
|
loading.close();
|
||||||
|
proxy.$message.success(res.msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
//批量删除
|
||||||
|
async function batch_del() {
|
||||||
|
proxy.$confirm(`确定删除选中的 ${selection.value.length} 项吗?如果删除项中含有子集将会被一并删除`, '提示', {
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
const loading = proxy.$loading();
|
||||||
|
const res = await api.system.config.del({ids: selection.value.map(item => item.config_id)});
|
||||||
|
tableRef.value.refresh()
|
||||||
|
loading.close();
|
||||||
|
proxy.$message.success(res.msg)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//表格选择后回调事件
|
||||||
|
function selectionChange(e) {
|
||||||
|
selection.value = e;
|
||||||
|
}
|
||||||
|
|
||||||
|
//搜索
|
||||||
|
function upsearch() {
|
||||||
|
tableRef.value.upData(search.value)
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
<template>
|
||||||
|
<el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')">
|
||||||
|
<el-form :model="form" :rules="rules" :disabled="mode==='show'" ref="formRef" label-width="100px">
|
||||||
|
<el-form-item label="参数名称" prop="config_name">
|
||||||
|
<el-input type="text" v-model="form.config_name" placeholder="请输入参数名称" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="参数键名" prop="config_key">
|
||||||
|
<el-input type="text" v-model="form.config_key" placeholder="请输入参数键名" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="参数键值" prop="config_value">
|
||||||
|
<el-input type="text" v-model="form.config_value" placeholder="请输入参数键值" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input type="text" v-model="form.remark" placeholder="请输入备注" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="visible=false">取 消</el-button>
|
||||||
|
<el-button v-if="mode!=='show'" type="primary" :loading="isSaveing" @click="submit()">保 存</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {getCurrentInstance, ref} from 'vue'
|
||||||
|
import api from "@/api/index"
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
open
|
||||||
|
})
|
||||||
|
const emit = defineEmits(['success', 'closed'])
|
||||||
|
const formRef = ref(null)
|
||||||
|
const {proxy} = getCurrentInstance()
|
||||||
|
|
||||||
|
let mode = ref('add')
|
||||||
|
let titleMap = ref({
|
||||||
|
add: '新增',
|
||||||
|
edit: '编辑',
|
||||||
|
show: '查看'
|
||||||
|
})
|
||||||
|
let visible = ref(false)
|
||||||
|
let isSaveing = ref(false)
|
||||||
|
let form = ref({
|
||||||
|
config_id: null,
|
||||||
|
config_name: null,
|
||||||
|
config_key: null,
|
||||||
|
config_value: null,
|
||||||
|
remark: null
|
||||||
|
})
|
||||||
|
const rules = ref({})
|
||||||
|
|
||||||
|
function open(m = 'add', data = null) {
|
||||||
|
mode.value = m
|
||||||
|
visible.value = true
|
||||||
|
Object.assign(form.value, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
async function submit() {
|
||||||
|
// 校验登录
|
||||||
|
const validate = await formRef.value.validate().catch(() => {
|
||||||
|
});
|
||||||
|
if (!validate) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
isSaveing.value = true;
|
||||||
|
const res = form.value.config_id ? await api.system.config.edit(form.value) : await api.system.config.add(form.value);
|
||||||
|
isSaveing.value = false
|
||||||
|
emit('success')
|
||||||
|
visible.value = false
|
||||||
|
proxy.$message.success(res.msg)
|
||||||
|
}
|
||||||
|
</script>
|
||||||
Loading…
Reference in New Issue