hgwms-2098 fix 系统权限弹窗修改
parent
ff3740b150
commit
f264d03008
|
|
@ -11,13 +11,14 @@
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
:model="formState"
|
:model="formState"
|
||||||
:rules="formRules"
|
:rules="formRules"
|
||||||
:label-col="labelCol"
|
layout="vertical"
|
||||||
:wrapper-col="wrapperCol"
|
|
||||||
>
|
>
|
||||||
|
<a-row :gutter="[16, 0]">
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item label="上级" name="parent">
|
<a-form-item label="上级" name="parent">
|
||||||
<a-tree-select
|
<a-tree-select
|
||||||
v-model:value="formState.parent"
|
v-model:value="formState.parent"
|
||||||
style="width: 100%;"
|
style="width: 100%"
|
||||||
:dropdown-style="{ maxHeight: '360px', overflow: 'auto' }"
|
:dropdown-style="{ maxHeight: '360px', overflow: 'auto' }"
|
||||||
:tree-data="state.powers"
|
:tree-data="state.powers"
|
||||||
placeholder="上级权限"
|
placeholder="上级权限"
|
||||||
|
|
@ -27,24 +28,55 @@
|
||||||
>
|
>
|
||||||
</a-tree-select>
|
</a-tree-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="title" label="名称" name="title">
|
<a-form-item ref="title" label="名称" name="title">
|
||||||
<a-input v-model:value="formState.title" />
|
<a-input v-model:value="formState.title" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item v-if="state.showComponent" ref="component" label="组件" name="component">
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item
|
||||||
|
v-if="state.showComponent"
|
||||||
|
ref="component"
|
||||||
|
label="组件"
|
||||||
|
name="component"
|
||||||
|
>
|
||||||
<a-input v-model:value="formState.component" />
|
<a-input v-model:value="formState.component" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item v-if="state.showPath" ref="path" label="路径" name="path">
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item
|
||||||
|
v-if="state.showPath"
|
||||||
|
ref="path"
|
||||||
|
label="路径"
|
||||||
|
name="path"
|
||||||
|
>
|
||||||
<a-input v-model:value="formState.path" />
|
<a-input v-model:value="formState.path" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item v-if="state.showCode" ref="code" label="标识" name="code">
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item
|
||||||
|
v-if="state.showCode"
|
||||||
|
ref="code"
|
||||||
|
label="标识"
|
||||||
|
name="code"
|
||||||
|
>
|
||||||
<a-input v-model:value="formState.code" />
|
<a-input v-model:value="formState.code" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item label="图标" name="icon">
|
<a-form-item label="图标" name="icon">
|
||||||
<pro-icon-picker v-model:modelValue="formState.icon"></pro-icon-picker>
|
<pro-icon-picker
|
||||||
|
v-model:modelValue="formState.icon"
|
||||||
|
></pro-icon-picker>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="i18n" label="i18n" name="i18n">
|
<a-form-item ref="i18n" label="i18n" name="i18n">
|
||||||
<a-input v-model:value="formState.i18n" />
|
<a-input v-model:value="formState.i18n" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="type" label="类型" name="type">
|
<a-form-item ref="type" label="类型" name="type">
|
||||||
<a-select v-model:value="formState.type" @change="change">
|
<a-select v-model:value="formState.type" @change="change">
|
||||||
<a-select-option value="0"> 目录 </a-select-option>
|
<a-select-option value="0"> 目录 </a-select-option>
|
||||||
|
|
@ -52,20 +84,31 @@
|
||||||
<a-select-option value="2"> 按钮 </a-select-option>
|
<a-select-option value="2"> 按钮 </a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="sort" label="排序" name="sort">
|
<a-form-item ref="sort" label="排序" name="sort">
|
||||||
<a-input-number v-model:value="formState.sort" />
|
<a-input-number
|
||||||
|
style="width: 100%"
|
||||||
|
v-model:value="formState.sort"
|
||||||
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item label="状态" name="enable">
|
<a-form-item label="状态" name="enable">
|
||||||
<a-switch v-model:checked="formState.enable" />
|
<a-switch v-model:checked="formState.enable" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
<a-form-item label="备注" name="remark">
|
<a-form-item label="备注" name="remark">
|
||||||
<a-textarea v-model:value="formState.remark" />
|
<a-textarea v-model:value="formState.remark" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
</a-form>
|
</a-form>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { message } from '@hwork/ant-design-vue';
|
import { message } from "@hwork/ant-design-vue";
|
||||||
import { edit, tree } from "@/api/module/power";
|
import { edit, tree } from "@/api/module/power";
|
||||||
import { defineComponent, reactive, ref, toRaw, watch } from "vue";
|
import { defineComponent, reactive, ref, toRaw, watch } from "vue";
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
|
|
@ -74,17 +117,16 @@ export default defineComponent({
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
},
|
},
|
||||||
record: {
|
record: {
|
||||||
type: Object
|
type: Object,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
emit: ["close"],
|
emit: ["close"],
|
||||||
setup(props, context) {
|
setup(props, context) {
|
||||||
|
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
depts: [],
|
depts: [],
|
||||||
showComponent: true,
|
showComponent: true,
|
||||||
showPath: true,
|
showPath: true,
|
||||||
showCode: false
|
showCode: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
|
|
@ -107,7 +149,7 @@ export default defineComponent({
|
||||||
formState.sort = props.record.sort;
|
formState.sort = props.record.sort;
|
||||||
formState.remark = props.record.remark;
|
formState.remark = props.record.remark;
|
||||||
formState.parent = props.record.parent;
|
formState.parent = props.record.parent;
|
||||||
if(formState.type === '2') {
|
if (formState.type === "2") {
|
||||||
state.showComponent = false;
|
state.showComponent = false;
|
||||||
state.showPath = false;
|
state.showPath = false;
|
||||||
state.showCode = true;
|
state.showCode = true;
|
||||||
|
|
@ -116,17 +158,19 @@ export default defineComponent({
|
||||||
state.showPath = true;
|
state.showPath = true;
|
||||||
state.showCode = false;
|
state.showCode = false;
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
|
||||||
const formRules = {
|
const formRules = {
|
||||||
title: [{ required: true, message: '请输入权限名称', trigger: 'blur'}],
|
title: [{ required: true, message: "请输入权限名称", trigger: "blur" }],
|
||||||
i18n: [{ required: true, message: '请输入 i18n', trigger: 'blur'}],
|
i18n: [{ required: true, message: "请输入 i18n", trigger: "blur" }],
|
||||||
type: [{ required: true, message: '请输入权限类型', trigger: 'blur'}],
|
type: [{ required: true, message: "请输入权限类型", trigger: "blur" }],
|
||||||
parent: [{ required: true, message: '请选择上级权限', trigger: 'change'}]
|
parent: [
|
||||||
|
{ required: true, message: "请选择上级权限", trigger: "change" },
|
||||||
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
const change = function (val) {
|
const change = function (val) {
|
||||||
if(val === '2') {
|
if (val === "2") {
|
||||||
state.showComponent = false;
|
state.showComponent = false;
|
||||||
state.showPath = false;
|
state.showPath = false;
|
||||||
state.showCode = true;
|
state.showCode = true;
|
||||||
|
|
@ -135,7 +179,7 @@ export default defineComponent({
|
||||||
state.showPath = true;
|
state.showPath = true;
|
||||||
state.showCode = false;
|
state.showCode = false;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
const submit = (e) => {
|
const submit = (e) => {
|
||||||
formRef.value
|
formRef.value
|
||||||
|
|
@ -143,18 +187,18 @@ export default defineComponent({
|
||||||
.then(() => {
|
.then(() => {
|
||||||
edit(toRaw(formState)).then((response) => {
|
edit(toRaw(formState)).then((response) => {
|
||||||
if (response.success) {
|
if (response.success) {
|
||||||
message.success({ content: '保存成功', duration: 1 }).then(()=>{
|
message.success({ content: "保存成功", duration: 1 }).then(() => {
|
||||||
cancel();
|
cancel();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
message.success({ content: '保存失败', duration: 1 }).then(()=>{
|
message.success({ content: "保存失败", duration: 1 }).then(() => {
|
||||||
cancel();
|
cancel();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
console.log('error', error);
|
console.log("error", error);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -165,14 +209,16 @@ export default defineComponent({
|
||||||
|
|
||||||
const loadPower = () => {
|
const loadPower = () => {
|
||||||
tree({}).then((response) => {
|
tree({}).then((response) => {
|
||||||
response.data = [{
|
response.data = [
|
||||||
|
{
|
||||||
id: "0",
|
id: "0",
|
||||||
title: "顶级菜单",
|
title: "顶级菜单",
|
||||||
children: response.data
|
children: response.data,
|
||||||
}]
|
},
|
||||||
|
];
|
||||||
state.powers = response.data;
|
state.powers = response.data;
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
loadPower();
|
loadPower();
|
||||||
|
|
||||||
|
|
@ -188,7 +234,12 @@ export default defineComponent({
|
||||||
labelCol: { span: 6 },
|
labelCol: { span: 6 },
|
||||||
wrapperCol: { span: 18 },
|
wrapperCol: { span: 18 },
|
||||||
|
|
||||||
replaceFields: {children:'children', title:'title', key:'id', value: 'id' }
|
replaceFields: {
|
||||||
|
children: "children",
|
||||||
|
title: "title",
|
||||||
|
key: "id",
|
||||||
|
value: "id",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,10 @@
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
:model="formState"
|
:model="formState"
|
||||||
:rules="formRules"
|
:rules="formRules"
|
||||||
:label-col="labelCol"
|
layout="vertical"
|
||||||
:wrapper-col="wrapperCol"
|
|
||||||
>
|
>
|
||||||
|
<a-row :gutter="[16, 0]">
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item label="上级" name="parent">
|
<a-form-item label="上级" name="parent">
|
||||||
<a-tree-select
|
<a-tree-select
|
||||||
v-model:value="formState.parent"
|
v-model:value="formState.parent"
|
||||||
|
|
@ -26,18 +27,28 @@
|
||||||
>
|
>
|
||||||
</a-tree-select>
|
</a-tree-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="title" label="名称" name="title">
|
<a-form-item ref="title" label="名称" name="title">
|
||||||
<a-input v-model:value="formState.title" />
|
<a-input v-model:value="formState.title" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="component" label="组件" name="component">
|
<a-form-item ref="component" label="组件" name="component">
|
||||||
<a-input v-model:value="formState.component" />
|
<a-input v-model:value="formState.component" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="path" label="路径" name="path">
|
<a-form-item ref="path" label="路径" name="path">
|
||||||
<a-input v-model:value="formState.path" />
|
<a-input v-model:value="formState.path" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="i18n" label="i18n" name="i18n">
|
<a-form-item ref="i18n" label="i18n" name="i18n">
|
||||||
<a-input v-model:value="formState.i18n" />
|
<a-input v-model:value="formState.i18n" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="type" label="类型" name="type">
|
<a-form-item ref="type" label="类型" name="type">
|
||||||
<a-select v-model:value="formState.type">
|
<a-select v-model:value="formState.type">
|
||||||
<a-select-option value="0"> 目录 </a-select-option>
|
<a-select-option value="0"> 目录 </a-select-option>
|
||||||
|
|
@ -45,20 +56,28 @@
|
||||||
<a-select-option value="2"> 按钮 </a-select-option>
|
<a-select-option value="2"> 按钮 </a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="sort" label="排序" name="sort">
|
<a-form-item ref="sort" label="排序" name="sort">
|
||||||
<a-input-number v-model:value="formState.sort" />
|
<a-input-number style="width: 100%" v-model:value="formState.sort" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item label="状态" name="enable">
|
<a-form-item label="状态" name="enable">
|
||||||
<a-switch v-model:checked="formState.enable" />
|
<a-switch v-model:checked="formState.enable" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
<a-form-item label="备注" name="remark">
|
<a-form-item label="备注" name="remark">
|
||||||
<a-textarea v-model:value="formState.remark" />
|
<a-textarea v-model:value="formState.remark" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
</a-form>
|
</a-form>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { message } from '@hwork/ant-design-vue';
|
import { message } from "@hwork/ant-design-vue";
|
||||||
import { save, tree } from "@/api/module/power";
|
import { save, tree } from "@/api/module/power";
|
||||||
import { defineComponent, reactive, ref, toRaw, watch } from "vue";
|
import { defineComponent, reactive, ref, toRaw, watch } from "vue";
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
|
|
@ -67,15 +86,14 @@ export default defineComponent({
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
},
|
},
|
||||||
record: {
|
record: {
|
||||||
type: Object
|
type: Object,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
emit: ["close"],
|
emit: ["close"],
|
||||||
setup(props, context) {
|
setup(props, context) {
|
||||||
|
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
depts: [],
|
depts: [],
|
||||||
})
|
});
|
||||||
|
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
|
|
||||||
|
|
@ -94,15 +112,19 @@ export default defineComponent({
|
||||||
formState.i18n = props.record.i18n;
|
formState.i18n = props.record.i18n;
|
||||||
formState.remark = props.record.remark;
|
formState.remark = props.record.remark;
|
||||||
formState.parent = props.record.parent;
|
formState.parent = props.record.parent;
|
||||||
})
|
});
|
||||||
|
|
||||||
const formRules = {
|
const formRules = {
|
||||||
title: [{ required: true, message: '请输入权限名称', trigger: 'blur'}],
|
title: [{ required: true, message: "请输入权限名称", trigger: "blur" }],
|
||||||
component: [{ required: true, message: '请输入路由组件', trigger: 'blur'}],
|
component: [
|
||||||
path: [{ required: true, message: '请输入路由地址', trigger: 'blur'}],
|
{ required: true, message: "请输入路由组件", trigger: "blur" },
|
||||||
i18n: [{ required: true, message: '请输入 i18n', trigger: 'blur'}],
|
],
|
||||||
type: [{ required: true, message: '请输入权限类型', trigger: 'blur'}],
|
path: [{ required: true, message: "请输入路由地址", trigger: "blur" }],
|
||||||
parent: [{ required: true, message: '请选择上级权限', trigger: 'change'}]
|
i18n: [{ required: true, message: "请输入 i18n", trigger: "blur" }],
|
||||||
|
type: [{ required: true, message: "请输入权限类型", trigger: "blur" }],
|
||||||
|
parent: [
|
||||||
|
{ required: true, message: "请选择上级权限", trigger: "change" },
|
||||||
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
const submit = (e) => {
|
const submit = (e) => {
|
||||||
|
|
@ -118,8 +140,8 @@ export default defineComponent({
|
||||||
const loadPower = () => {
|
const loadPower = () => {
|
||||||
tree({}).then((response) => {
|
tree({}).then((response) => {
|
||||||
state.powers = response.data;
|
state.powers = response.data;
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
loadPower();
|
loadPower();
|
||||||
|
|
||||||
|
|
@ -134,7 +156,12 @@ export default defineComponent({
|
||||||
labelCol: { span: 6 },
|
labelCol: { span: 6 },
|
||||||
wrapperCol: { span: 18 },
|
wrapperCol: { span: 18 },
|
||||||
|
|
||||||
replaceFields: {children:'children', title:'title', key:'id', value: 'id' }
|
replaceFields: {
|
||||||
|
children: "children",
|
||||||
|
title: "title",
|
||||||
|
key: "id",
|
||||||
|
value: "id",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,19 @@
|
||||||
<template>
|
<template>
|
||||||
<a-modal :open="visible" title="新增权限" cancelText="取消" okText="提交" @ok="submit" @cancel="cancel">
|
<a-modal
|
||||||
<a-form ref="formRef" :model="formState" :rules="formRules" :label-col="labelCol" :wrapper-col="wrapperCol">
|
:open="visible"
|
||||||
<a-row :gutter='[1,1]'>
|
title="新增权限"
|
||||||
|
cancelText="取消"
|
||||||
|
okText="提交"
|
||||||
|
@ok="submit"
|
||||||
|
@cancel="cancel"
|
||||||
|
>
|
||||||
|
<a-form
|
||||||
|
ref="formRef"
|
||||||
|
:model="formState"
|
||||||
|
:rules="formRules"
|
||||||
|
layout="vertical"
|
||||||
|
>
|
||||||
|
<a-row :gutter="[16, 0]">
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item ref="type" label="类型" name="type">
|
<a-form-item ref="type" label="类型" name="type">
|
||||||
<a-select v-model:value="formState.type" @change="change">
|
<a-select v-model:value="formState.type" @change="change">
|
||||||
|
|
@ -20,58 +32,76 @@
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
<a-col :span="12">
|
||||||
<a-form-item label="上级" name="parent">
|
<a-form-item label="上级" name="parent">
|
||||||
<a-tree-select v-model:value="formState.parent" style="width: 100%;"
|
<a-tree-select
|
||||||
:dropdown-style="{ maxHeight: '360px', overflow: 'auto' }" :tree-data="state.powers" placeholder="上级权限"
|
v-model:value="formState.parent"
|
||||||
replace tree-default-expand-all :replaceFields="replaceFields">
|
style="width: 100%"
|
||||||
|
:dropdown-style="{ maxHeight: '360px', overflow: 'auto' }"
|
||||||
|
:tree-data="state.powers"
|
||||||
|
placeholder="上级权限"
|
||||||
|
replace
|
||||||
|
tree-default-expand-all
|
||||||
|
:replaceFields="replaceFields"
|
||||||
|
>
|
||||||
</a-tree-select>
|
</a-tree-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="title" label="名称" name="title">
|
<a-form-item ref="title" label="名称" name="title">
|
||||||
<a-input v-model:value="formState.title" />
|
<a-input v-model:value="formState.title" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item v-if="state.showComponent" ref="component" label="组件" name="component">
|
</a-col>
|
||||||
|
<a-col :span="12" v-if="state.showComponent">
|
||||||
|
<a-form-item ref="component" label="组件" name="component">
|
||||||
<a-input v-model:value="formState.component" />
|
<a-input v-model:value="formState.component" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item v-if="state.showPath" ref="path" label="路径" name="path">
|
</a-col>
|
||||||
|
<a-col :span="12" v-if="state.showPath">
|
||||||
|
<a-form-item ref="path" label="路径" name="path">
|
||||||
<a-input v-model:value="formState.path" />
|
<a-input v-model:value="formState.path" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item v-if="state.showCode" ref="code" label="标识" name="code">
|
</a-col>
|
||||||
|
<a-col :span="12" v-if="state.showCode">
|
||||||
|
<a-form-item ref="code" label="标识" name="code">
|
||||||
<a-input v-model:value="formState.code" />
|
<a-input v-model:value="formState.code" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item label="图标" name="icon">
|
<a-form-item label="图标" name="icon">
|
||||||
<pro-icon-picker v-model:modelValue="formState.icon"></pro-icon-picker>
|
<pro-icon-picker
|
||||||
|
v-model:modelValue="formState.icon"
|
||||||
|
></pro-icon-picker>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="i18n" label="i18n" name="i18n">
|
<a-form-item ref="i18n" label="i18n" name="i18n">
|
||||||
<a-input v-model:value="formState.i18n" />
|
<a-input v-model:value="formState.i18n" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item ref="sort" label="排序" name="sort">
|
<a-form-item ref="sort" label="排序" name="sort">
|
||||||
<a-input-number v-model:value="formState.sort" />
|
<a-input-number style="width: 100%" v-model:value="formState.sort" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
<a-form-item label="状态" name="enable">
|
<a-form-item label="状态" name="enable">
|
||||||
<a-switch v-model:checked="formState.enable" />
|
<a-switch v-model:checked="formState.enable" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
<a-form-item label="备注" name="remark">
|
<a-form-item label="备注" name="remark">
|
||||||
<a-textarea v-model:value="formState.remark" />
|
<a-textarea v-model:value="formState.remark" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
</a-form>
|
</a-form>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {
|
import { message } from "@hwork/ant-design-vue";
|
||||||
message
|
import { save, tree } from "@/api/module/power";
|
||||||
} from "@hwork/ant-design-vue";
|
import { defineComponent, reactive, ref, toRaw, watch } from "vue";
|
||||||
import {
|
|
||||||
save,
|
|
||||||
tree
|
|
||||||
} from "@/api/module/power";
|
|
||||||
import {
|
|
||||||
defineComponent,
|
|
||||||
reactive,
|
|
||||||
ref,
|
|
||||||
toRaw,
|
|
||||||
watch
|
|
||||||
} from "vue";
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
props: {
|
props: {
|
||||||
visible: {
|
visible: {
|
||||||
|
|
@ -80,12 +110,11 @@
|
||||||
},
|
},
|
||||||
emit: ["close"],
|
emit: ["close"],
|
||||||
setup(props, context) {
|
setup(props, context) {
|
||||||
|
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
depts: [],
|
depts: [],
|
||||||
showComponent: true,
|
showComponent: true,
|
||||||
showPath: true,
|
showPath: true,
|
||||||
showCode: false
|
showCode: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
|
|
@ -98,31 +127,41 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
const formRules = {
|
const formRules = {
|
||||||
title: [{
|
title: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入权限名称",
|
message: "请输入权限名称",
|
||||||
trigger: "blur"
|
trigger: "blur",
|
||||||
}],
|
},
|
||||||
i18n: [{
|
],
|
||||||
|
i18n: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入 i18n",
|
message: "请输入 i18n",
|
||||||
trigger: "blur"
|
trigger: "blur",
|
||||||
}],
|
},
|
||||||
type: [{
|
],
|
||||||
|
type: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入权限类型",
|
message: "请输入权限类型",
|
||||||
trigger: "blur"
|
trigger: "blur",
|
||||||
}],
|
},
|
||||||
clientType: [{
|
],
|
||||||
|
clientType: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请选择权限终端类型",
|
message: "请选择权限终端类型",
|
||||||
trigger: "blur"
|
trigger: "blur",
|
||||||
}],
|
},
|
||||||
parent: [{
|
],
|
||||||
|
parent: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请选择上级权限",
|
message: "请选择上级权限",
|
||||||
trigger: "change"
|
trigger: "change",
|
||||||
}],
|
},
|
||||||
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
const submit = (e) => {
|
const submit = (e) => {
|
||||||
|
|
@ -131,17 +170,21 @@
|
||||||
.then(() => {
|
.then(() => {
|
||||||
save(toRaw(formState)).then((response) => {
|
save(toRaw(formState)).then((response) => {
|
||||||
if (response.success) {
|
if (response.success) {
|
||||||
message.success({
|
message
|
||||||
|
.success({
|
||||||
content: "保存成功",
|
content: "保存成功",
|
||||||
duration: 1
|
duration: 1,
|
||||||
}).then(() => {
|
})
|
||||||
|
.then(() => {
|
||||||
cancel();
|
cancel();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
message.success({
|
message
|
||||||
|
.success({
|
||||||
content: "保存失败",
|
content: "保存失败",
|
||||||
duration: 1
|
duration: 1,
|
||||||
}).then(() => {
|
})
|
||||||
|
.then(() => {
|
||||||
cancel();
|
cancel();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -159,17 +202,19 @@
|
||||||
|
|
||||||
const loadPower = () => {
|
const loadPower = () => {
|
||||||
tree({}).then((response) => {
|
tree({}).then((response) => {
|
||||||
response.data = [{
|
response.data = [
|
||||||
|
{
|
||||||
id: "0",
|
id: "0",
|
||||||
title: "顶级菜单",
|
title: "顶级菜单",
|
||||||
children: response.data
|
children: response.data,
|
||||||
}]
|
},
|
||||||
|
];
|
||||||
state.powers = response.data;
|
state.powers = response.data;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const change = function (val) {
|
const change = function (val) {
|
||||||
if (val === '2') {
|
if (val === "2") {
|
||||||
state.showComponent = false;
|
state.showComponent = false;
|
||||||
state.showPath = false;
|
state.showPath = false;
|
||||||
state.showCode = true;
|
state.showCode = true;
|
||||||
|
|
@ -178,7 +223,7 @@
|
||||||
state.showPath = true;
|
state.showPath = true;
|
||||||
state.showCode = false;
|
state.showCode = false;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
loadPower();
|
loadPower();
|
||||||
|
|
||||||
|
|
@ -192,10 +237,10 @@
|
||||||
formRules,
|
formRules,
|
||||||
|
|
||||||
labelCol: {
|
labelCol: {
|
||||||
span: 6
|
span: 6,
|
||||||
},
|
},
|
||||||
wrapperCol: {
|
wrapperCol: {
|
||||||
span: 18
|
span: 18,
|
||||||
},
|
},
|
||||||
|
|
||||||
replaceFields: {
|
replaceFields: {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue