Commit af74f95e authored by “yiyousong”'s avatar “yiyousong”

feat: 添加角色分配菜单

parent 50688879
...@@ -137,6 +137,14 @@ export const refreshResource = (data) => { ...@@ -137,6 +137,14 @@ export const refreshResource = (data) => {
data, data,
}); });
}; };
// 资源分组
export const getResourceGroup = (data) => {
return request({
url: `/bill/resource/group`,
method: "post",
data,
});
};
/** /**
* 区县接入系统 * 区县接入系统
*/ */
...@@ -236,6 +244,15 @@ export const addRoleMenu = (data) => { ...@@ -236,6 +244,15 @@ export const addRoleMenu = (data) => {
}); });
}; };
// 获取角色菜单
export const getRoleMenuList = (data) => {
return request({
url: `/bill/role/auth/editMenu`,
method: "post",
data,
});
};
/** /**
* 用户管理 * 用户管理
*/ */
......
...@@ -55,9 +55,9 @@ ...@@ -55,9 +55,9 @@
<!-- 新增 --> <!-- 新增 -->
<AddAccess <AddAccess
ref="AddAccess" ref="AddAccess"
:addVisible.sync="show" :show.sync="show"
:title="title" :title="title"
@addSuccess="getAccessList" @success="getAccessList"
></AddAccess> ></AddAccess>
<AccessSystem <AccessSystem
ref="AccessSystem" ref="AccessSystem"
......
...@@ -147,13 +147,13 @@ export default { ...@@ -147,13 +147,13 @@ export default {
// }); // });
this.areaInfo.accessSystemList = this.accessSystemList; this.areaInfo.accessSystemList = this.accessSystemList;
let res = await saveAccess(this.areaInfo); let res = await saveAccess(this.areaInfo);
this.loading = false;
let { code, msg } = res.data; let { code, msg } = res.data;
if (code === 1) { if (code === 1) {
this.$message.success(msg); this.$message.success(msg);
this.$emit("success"); this.$emit("success");
this.handleClose(); this.handleClose();
} }
this.loading = false;
}, },
async delSystem({ row, $index }) { async delSystem({ row, $index }) {
if (row.id) { if (row.id) {
......
...@@ -98,7 +98,11 @@ ...@@ -98,7 +98,11 @@
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button> <el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="small" type="primary" @click="handleOk" <el-button
size="small"
type="primary"
:loading="loading"
@click="handleOk"
>确 定</el-button >确 定</el-button
> >
</span> </span>
...@@ -131,7 +135,7 @@ export default { ...@@ -131,7 +135,7 @@ export default {
required: true, required: true,
default: "", default: "",
}, },
addVisible: { show: {
type: Boolean, type: Boolean,
required: true, required: true,
default: false, default: false,
...@@ -140,6 +144,7 @@ export default { ...@@ -140,6 +144,7 @@ export default {
data() { data() {
return { return {
api: process.env.VUE_APP_API_BASE_URL, api: process.env.VUE_APP_API_BASE_URL,
loading: false,
fileList: [], fileList: [],
preview: false, preview: false,
filepaths: [], filepaths: [],
...@@ -178,10 +183,10 @@ export default { ...@@ -178,10 +183,10 @@ export default {
...mapState("user", ["areaTree"]), ...mapState("user", ["areaTree"]),
Visible: { Visible: {
get() { get() {
return this.addVisible; return this.show;
}, },
set(val) { set(val) {
this.$emit("update:addVisible", val); this.$emit("update:show", val);
}, },
}, },
initTree() { initTree() {
...@@ -193,6 +198,7 @@ export default { ...@@ -193,6 +198,7 @@ export default {
handleOk() { handleOk() {
this.$refs.form.validate(async (valid) => { this.$refs.form.validate(async (valid) => {
if (valid) { if (valid) {
this.loading = true;
let res = await saveAccess({ let res = await saveAccess({
...this.form, ...this.form,
tag: this.form.tag.join(","), tag: this.form.tag.join(","),
...@@ -200,9 +206,10 @@ export default { ...@@ -200,9 +206,10 @@ export default {
let { code, msg } = res.data; let { code, msg } = res.data;
if (code === 1) { if (code === 1) {
this.$message.success(msg); this.$message.success(msg);
this.$emit("addSuccess"); this.$emit("success");
this.handleClose(); this.handleClose();
} }
this.loading = false;
} }
}); });
}, },
......
...@@ -47,7 +47,11 @@ ...@@ -47,7 +47,11 @@
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button> <el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="small" type="primary" @click="handleOk" <el-button
size="small"
type="primary"
:loading="loading"
@click="handleOk"
>确 定</el-button >确 定</el-button
> >
</span> </span>
...@@ -73,6 +77,7 @@ export default { ...@@ -73,6 +77,7 @@ export default {
}, },
data() { data() {
return { return {
loading: false,
form: { form: {
systemName: "", systemName: "",
systemCode: "", systemCode: "",
...@@ -104,6 +109,7 @@ export default { ...@@ -104,6 +109,7 @@ export default {
handleOk() { handleOk() {
this.$refs.form.validate(async (valid) => { this.$refs.form.validate(async (valid) => {
if (valid) { if (valid) {
this.loading = true;
let res = await saveSystem(this.form); let res = await saveSystem(this.form);
let { code, msg } = res.data; let { code, msg } = res.data;
if (code === 1) { if (code === 1) {
...@@ -111,6 +117,7 @@ export default { ...@@ -111,6 +117,7 @@ export default {
this.$emit("success"); this.$emit("success");
this.handleClose(); this.handleClose();
} }
this.loading = false;
} }
}); });
}, },
......
...@@ -198,7 +198,11 @@ ...@@ -198,7 +198,11 @@
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button> <el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="small" type="primary" @click="handleOk" <el-button
size="small"
type="primary"
:loading="loading"
@click="handleOk"
>确 定</el-button >确 定</el-button
> >
</span> </span>
...@@ -242,6 +246,7 @@ export default { ...@@ -242,6 +246,7 @@ export default {
data() { data() {
return { return {
iconJson, iconJson,
loading: false,
defaultProps: { defaultProps: {
children: "childList", children: "childList",
label: "name", label: "name",
...@@ -297,6 +302,7 @@ export default { ...@@ -297,6 +302,7 @@ export default {
handleOk() { handleOk() {
this.$refs.form.validate(async (valid) => { this.$refs.form.validate(async (valid) => {
if (valid) { if (valid) {
this.loading = true;
let res = await saveMenu(this.form); let res = await saveMenu(this.form);
let { code, msg } = res.data; let { code, msg } = res.data;
if (code === 1) { if (code === 1) {
...@@ -304,6 +310,7 @@ export default { ...@@ -304,6 +310,7 @@ export default {
this.$emit("success"); this.$emit("success");
this.handleClose(); this.handleClose();
} }
this.loading = false;
} }
}); });
}, },
......
...@@ -65,10 +65,10 @@ ...@@ -65,10 +65,10 @@
<!-- 新增参数 --> <!-- 新增参数 -->
<AddParameter <AddParameter
ref="AddParameter" ref="AddParameter"
:addVisible.sync="addVisible" :show.sync="addVisible"
:title="title" :title="title"
:dict="dict" :dict="dict"
@addSuccess="getParamList" @success="getParamList"
></AddParameter> ></AddParameter>
</div> </div>
</template> </template>
......
...@@ -90,7 +90,11 @@ ...@@ -90,7 +90,11 @@
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button> <el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="small" type="primary" @click="handleOk" <el-button
size="small"
type="primary"
:loading="loading"
@click="handleOk"
>确 定</el-button >确 定</el-button
> >
</span> </span>
...@@ -107,7 +111,7 @@ export default { ...@@ -107,7 +111,7 @@ export default {
required: true, required: true,
default: "", default: "",
}, },
addVisible: { show: {
type: Boolean, type: Boolean,
required: true, required: true,
default: false, default: false,
...@@ -122,6 +126,7 @@ export default { ...@@ -122,6 +126,7 @@ export default {
}, },
data() { data() {
return { return {
loading: false,
form: { form: {
name: "", // 参数名称 name: "", // 参数名称
firstOrganize: "", // 一级组织 firstOrganize: "", // 一级组织
...@@ -147,10 +152,10 @@ export default { ...@@ -147,10 +152,10 @@ export default {
computed: { computed: {
Visible: { Visible: {
get() { get() {
return this.addVisible; return this.show;
}, },
set(val) { set(val) {
this.$emit("update:addVisible", val); this.$emit("update:show", val);
}, },
}, },
}, },
...@@ -159,13 +164,15 @@ export default { ...@@ -159,13 +164,15 @@ export default {
handleOk() { handleOk() {
this.$refs.form.validate(async (valid) => { this.$refs.form.validate(async (valid) => {
if (valid) { if (valid) {
this.loading = true;
let res = await saveParam(this.form); let res = await saveParam(this.form);
let { code, msg } = res.data; let { code, msg } = res.data;
if (code === 1) { if (code === 1) {
this.$message.success(msg); this.$message.success(msg);
this.$emit("addSuccess"); this.$emit("success");
this.handleClose(); this.handleClose();
} }
this.loading = false;
} }
}); });
}, },
......
...@@ -137,12 +137,12 @@ export default { ...@@ -137,12 +137,12 @@ export default {
url: this.form.urls.map((v) => v.value).join(","), url: this.form.urls.map((v) => v.value).join(","),
}); });
let { code, msg } = res.data; let { code, msg } = res.data;
this.loading = false;
if (code == 1) { if (code == 1) {
this.$message.success(msg); this.$message.success(msg);
this.$emit("success"); this.$emit("success");
this.handleClose(); this.handleClose();
} }
this.loading = false;
} }
}); });
}, },
......
...@@ -55,29 +55,38 @@ ...@@ -55,29 +55,38 @@
<!-- 新增 --> <!-- 新增 -->
<AddRole <AddRole
ref="AddRole" ref="AddRole"
:addVisible.sync="show" :show.sync="show"
:title="title" :title="title"
@addSuccess="getRoleList" @success="getRoleList"
></AddRole> ></AddRole>
<!-- 分配资源 --> <!-- 分配资源 -->
<ApportionRes <ApportionRes
ref="ApportionRes" ref="ApportionRes"
:addVisible.sync="resShow" :show.sync="resShow"
@addSuccess="getRoleList" @success="getRoleList"
></ApportionRes> ></ApportionRes>
<!-- 分配菜单 -->
<ApportionMenu
ref="ApportionMenu"
:menuTree="menuTree"
:show.sync="menuShow"
:roleInfo="roleInfo"
></ApportionMenu>
</div> </div>
</template> </template>
<script> <script>
import TableHeader from "@/components/TableHeader.vue"; import TableHeader from "@/components/TableHeader.vue";
import { getRoleList, deleteRole } from "@/api/system"; import { getRoleList, deleteRole, getMenuTreeselect } from "@/api/system";
import AddRole from "./components/AddRole.vue"; import AddRole from "./components/AddRole.vue";
import ApportionRes from "./components/ApportionRes.vue"; import ApportionRes from "./components/ApportionRes.vue";
import ApportionMenu from "./components/ApportionMenu.vue";
export default { export default {
components: { components: {
TableHeader, TableHeader,
AddRole, AddRole,
ApportionRes, ApportionRes,
ApportionMenu,
}, },
data() { data() {
return { return {
...@@ -119,7 +128,7 @@ export default { ...@@ -119,7 +128,7 @@ export default {
{ {
label: "操作", label: "操作",
align: "center", align: "center",
width: "200", width: "260",
formatter: (row) => { formatter: (row) => {
return ( return (
<div class="flex justify-center gap-4"> <div class="flex justify-center gap-4">
...@@ -129,6 +138,12 @@ export default { ...@@ -129,6 +138,12 @@ export default {
> >
分配资源 分配资源
</span> </span>
<span
class="primary cursor-pointer"
onClick={() => this.apportionMenu(row)}
>
分配菜单
</span>
<span <span
class="primary cursor-pointer" class="primary cursor-pointer"
onClick={() => this.handleEdit(row)} onClick={() => this.handleEdit(row)}
...@@ -150,22 +165,37 @@ export default { ...@@ -150,22 +165,37 @@ export default {
name: "", name: "",
}, },
tableData: [], tableData: [],
menuTree: [], // 菜单树
current: 1, current: 1,
size: 10, size: 10,
total: 0, total: 0,
loading: false, loading: false,
selectRows: [], selectRows: [],
show: false, show: false,
menuShow: false,
title: "新增", title: "新增",
dict: {}, // 字典 dict: {}, // 字典
resShow: false, resShow: false,
roleInfo: {},
}; };
}, },
created() { created() {
this.getRoleList(); this.getRoleList();
this.getMenuTreeselect();
}, },
computed: {}, computed: {},
methods: { methods: {
// 获取菜单树
async getMenuTreeselect() {
let res = await getMenuTreeselect({
page: 1,
size: -1,
});
if (res.data.code == 1) {
let { result } = res.data.data;
this.menuTree = result;
}
},
async getRoleList() { async getRoleList() {
this.loading = true; this.loading = true;
let res = await getRoleList({ let res = await getRoleList({
...@@ -251,6 +281,12 @@ export default { ...@@ -251,6 +281,12 @@ export default {
this.$refs.ApportionRes.onAdd(row.id); this.$refs.ApportionRes.onAdd(row.id);
this.resShow = true; this.resShow = true;
}, },
// 分配菜单
apportionMenu(row) {
this.roleInfo = row;
this.$refs.ApportionMenu.onAdd(row);
this.menuShow = true;
},
}, },
}; };
</script> </script>
......
...@@ -31,7 +31,11 @@ ...@@ -31,7 +31,11 @@
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button> <el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="small" type="primary" @click="handleOk" <el-button
size="small"
type="primary"
:loading="loading"
@click="handleOk"
>确 定</el-button >确 定</el-button
> >
</span> </span>
...@@ -49,7 +53,7 @@ export default { ...@@ -49,7 +53,7 @@ export default {
required: true, required: true,
default: "", default: "",
}, },
addVisible: { show: {
type: Boolean, type: Boolean,
required: true, required: true,
default: false, default: false,
...@@ -57,6 +61,7 @@ export default { ...@@ -57,6 +61,7 @@ export default {
}, },
data() { data() {
return { return {
loading: false,
form: { form: {
name: "", name: "",
remark: "", remark: "",
...@@ -69,10 +74,10 @@ export default { ...@@ -69,10 +74,10 @@ export default {
computed: { computed: {
Visible: { Visible: {
get() { get() {
return this.addVisible; return this.show;
}, },
set(val) { set(val) {
this.$emit("update:addVisible", val); this.$emit("update:show", val);
}, },
}, },
}, },
...@@ -81,13 +86,15 @@ export default { ...@@ -81,13 +86,15 @@ export default {
handleOk() { handleOk() {
this.$refs.form.validate(async (valid) => { this.$refs.form.validate(async (valid) => {
if (valid) { if (valid) {
this.loading = true;
let res = await addRole(this.form); let res = await addRole(this.form);
let { code, msg } = res.data; let { code, msg } = res.data;
if (code === 1) { if (code === 1) {
this.$message.success(msg); this.$message.success(msg);
this.$emit("addSuccess"); this.$emit("success");
this.handleClose(); this.handleClose();
} }
this.loading = false;
} }
}); });
}, },
......
<template>
<div>
<el-dialog
title="分配角色菜单"
:destroy-on-close="true"
:visible.sync="Visible"
width="30%"
@close="handleClose"
:close-on-click-modal="false"
top="10vh"
>
<el-form ref="form" :model="form" size="small" label-width="100px">
<el-form-item label="角色名称">
<el-input readonly :value="roleInfo.name"></el-input>
</el-form-item>
<el-form-item label="菜单权限">
<el-checkbox v-model="isExpand" @change="handleCheckedTreeExpand"
>展开/折叠</el-checkbox
>
<el-checkbox v-model="isNodeAll" @change="handleCheckedTreeNodeAll"
>全选/全不选</el-checkbox
>
<el-checkbox v-model="checkStrictly">父子联动</el-checkbox>
<el-tree
class="tree-border"
:data="menuTree"
show-checkbox
ref="menu"
node-key="id"
:check-strictly="!checkStrictly"
:props="defaultProps"
></el-tree>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button>
<el-button
size="small"
:loading="loading"
type="primary"
@click="handleOk"
>确 定</el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
import { addRoleMenu, getRoleMenuList } from "@/api/system";
export default {
components: {},
props: {
show: {
type: Boolean,
required: true,
default: false,
},
roleInfo: {
type: Object,
required: true,
default: () => {},
},
menuTree: {
type: Array,
required: true,
default: () => [],
},
},
data() {
return {
loading: false,
userMenuList: [], // 用户资源列表
// menuTree: [], // 菜单树
isExpand: false,
isNodeAll: false,
checkStrictly: true,
defaultProps: {
label: "label",
children: "children",
},
form: {
menuIdList: [],
roleId: "",
},
};
},
computed: {
Visible: {
get() {
return this.show;
},
set(val) {
this.$emit("update:show", val);
},
},
},
methods: {
// 获取角色菜单列表
async getRoleMenuList() {
let res = await getRoleMenuList({
roleId: this.form.roleId,
page: 1,
size: -1,
});
if (res.data.code == 1) {
let { data } = res.data;
let ids = this.getRoleMenuIdList(data);
ids.forEach((v) => {
this.$nextTick(() => {
this.$refs.menu.setChecked(v, true, false);
});
});
}
},
// 确定
async handleOk() {
this.loading = true;
let res = await addRoleMenu({
roleId: this.form.roleId,
menuIdList: this.getMenuAllCheckedKeys(),
});
let { code, msg } = res.data;
if (code === 1) {
this.$message.success(msg || "添加成功");
this.$emit("success");
this.handleClose();
}
this.loading = false;
},
// 所有菜单节点数据
getMenuAllCheckedKeys() {
// 目前被选中的菜单节点
let checkedKeys = this.$refs.menu.getCheckedKeys();
// 半选中的菜单节点
let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
return [...halfCheckedKeys, ...checkedKeys];
},
// 树权限(展开/折叠)
handleCheckedTreeExpand(value) {
let treeList = this.menuTree;
for (let i = 0; i < treeList.length; i++) {
this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
}
},
// 树权限(全选/全不选)
handleCheckedTreeNodeAll(value) {
this.$refs.menu.setCheckedNodes(value ? this.menuTree : []);
},
// 新增
async onAdd(row) {
Object.assign(this.form, this.$options.data().form);
this.form.roleId = row.id;
this.getRoleMenuList();
},
// 重置
handleRest() {
this.isNodeAll = false;
this.$refs.menu.setCheckedNodes([]);
},
// 关闭
handleClose() {
this.handleRest();
this.Visible = false;
},
// 获取角色菜单id列表
getRoleMenuIdList(data) {
let result = [];
let getData = (list) => {
list.forEach((item) => {
result.push(item.id);
if (item.children && item.children.length > 0) {
getData(item.children);
}
});
};
getData(data);
return result;
},
},
};
</script>
<style lang="less" scoped>
:deep(.el-dialog__body) {
max-height: 620px;
overflow: auto;
}
.tree-border {
margin-top: 5px;
border: 1px solid #e5e6e7;
background: #fff none;
border-radius: 4px;
}
</style>
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
@change="onChange($event, v)" @change="onChange($event, v)"
> >
<el-row> <el-row>
<el-col :span="12" v-for="item in v.list" :key="item.id"> <el-col :span="6" v-for="item in v.list" :key="item.id">
<el-checkbox :label="item.id">{{ item.name }}</el-checkbox> <el-checkbox :label="item.id">{{ item.name }}</el-checkbox>
</el-col> </el-col>
</el-row> </el-row>
...@@ -32,7 +32,11 @@ ...@@ -32,7 +32,11 @@
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button> <el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="small" type="primary" @click="handleOk" <el-button
size="small"
type="primary"
:loading="loading"
@click="handleOk"
>确 定</el-button >确 定</el-button
> >
</span> </span>
...@@ -42,14 +46,14 @@ ...@@ -42,14 +46,14 @@
<script> <script>
import { import {
getResourceList,
getRoleResourceList, getRoleResourceList,
addRoleResource, addRoleResource,
getResourceGroup,
} from "@/api/system"; } from "@/api/system";
export default { export default {
components: {}, components: {},
props: { props: {
addVisible: { show: {
type: Boolean, type: Boolean,
required: true, required: true,
default: false, default: false,
...@@ -57,6 +61,7 @@ export default { ...@@ -57,6 +61,7 @@ export default {
}, },
data() { data() {
return { return {
loading: false,
resourceList: {}, resourceList: {},
userResourceList: [], // 用户资源列表 userResourceList: [], // 用户资源列表
form: { form: {
...@@ -68,23 +73,24 @@ export default { ...@@ -68,23 +73,24 @@ export default {
computed: { computed: {
Visible: { Visible: {
get() { get() {
return this.addVisible; return this.show;
}, },
set(val) { set(val) {
this.$emit("update:addVisible", val); this.$emit("update:show", val);
}, },
}, },
}, },
methods: { methods: {
// 获取资源列表 // 获取资源分组
async getResourceList() { async getResourceGroup() {
let res = await getResourceList({ let res = await getResourceGroup({
page: 1, page: 1,
size: -1, size: -1,
}); });
if (res.data.code == 1) { if (res.data.code == 1) {
let { data } = res.data.data; let { data } = res.data.data;
this.resourceList = this.groupByAuth(data); let group = this.formatGroup(data);
this.resourceList = group;
} }
}, },
...@@ -102,37 +108,53 @@ export default { ...@@ -102,37 +108,53 @@ export default {
} }
}, },
// 权限分组 // 权限分组
groupByAuth(list) { // groupByAuth(list) {
// let group = {};
// list.forEach((item) => {
// let name = item.name.split("-")[0];
// if (!group[name]) {
// group[name] = {
// isIndeterminate: false,
// checkAll: false,
// list: [],
// };
// }
// group[name].list.push(item);
// });
// return group;
// },
// 格式化分组
formatGroup(data) {
let group = {}; let group = {};
list.forEach((item) => { Object.keys(data).forEach((key) => {
let name = item.name.split("-")[0]; group[key] = {
if (!group[name]) {
group[name] = {
isIndeterminate: false, isIndeterminate: false,
checkAll: false, checkAll: false,
list: [], list: [],
}; };
} group[key].list.push(...data[key]);
group[name].list.push(item);
}); });
return group; return group;
}, },
// 确定 // 确定
async handleOk() { async handleOk() {
this.loading = true;
let res = await addRoleResource(this.form); let res = await addRoleResource(this.form);
let { code } = res.data; let { code } = res.data;
if (code === 1) { if (code === 1) {
this.$message.success("添加成功"); this.$message.success("添加成功");
this.$emit("addSuccess"); this.$emit("success");
this.handleClose(); this.handleClose();
} }
this.loading = false;
}, },
// 新增 // 新增
onAdd(roleId) { onAdd(roleId) {
Object.assign(this.form, this.$options.data().form); Object.assign(this.form, this.$options.data().form);
this.form.roleId = roleId; this.form.roleId = roleId;
this.getResourceList(); this.getResourceGroup();
this.getRoleResourceList(roleId); this.getRoleResourceList(roleId);
}, },
......
...@@ -47,10 +47,10 @@ ...@@ -47,10 +47,10 @@
<!-- 新增参数 --> <!-- 新增参数 -->
<AddTask <AddTask
ref="AddTask" ref="AddTask"
:addVisible.sync="addVisible" :show.sync="addVisible"
:title="title" :title="title"
:dict="dict" :dict="dict"
@addSuccess="getTaskList" @success="getTaskList"
></AddTask> ></AddTask>
</div> </div>
</template> </template>
......
...@@ -125,7 +125,11 @@ ...@@ -125,7 +125,11 @@
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button> <el-button size="small" @click="handleRest">重 置</el-button>
<el-button size="small" type="primary" @click="handleOk" <el-button
size="small"
type="primary"
:loading="loading"
@click="handleOk"
>确 定</el-button >确 定</el-button
> >
</span> </span>
...@@ -142,7 +146,7 @@ export default { ...@@ -142,7 +146,7 @@ export default {
required: true, required: true,
default: "", default: "",
}, },
addVisible: { show: {
type: Boolean, type: Boolean,
required: true, required: true,
default: false, default: false,
...@@ -157,6 +161,7 @@ export default { ...@@ -157,6 +161,7 @@ export default {
}, },
data() { data() {
return { return {
loading: false,
days: {}, // 号数 days: {}, // 号数
weeks: {}, // 周 weeks: {}, // 周
form: { form: {
...@@ -184,10 +189,10 @@ export default { ...@@ -184,10 +189,10 @@ export default {
computed: { computed: {
Visible: { Visible: {
get() { get() {
return this.addVisible; return this.show;
}, },
set(val) { set(val) {
this.$emit("update:addVisible", val); this.$emit("update:show", val);
}, },
}, },
}, },
...@@ -205,13 +210,15 @@ export default { ...@@ -205,13 +210,15 @@ export default {
handleOk() { handleOk() {
this.$refs.form.validate(async (valid) => { this.$refs.form.validate(async (valid) => {
if (valid) { if (valid) {
this.loading = true;
let res = await saveTask(this.form); let res = await saveTask(this.form);
let { code, msg } = res.data; let { code, msg } = res.data;
if (code === 1) { if (code === 1) {
this.$message.success(msg); this.$message.success(msg);
this.$emit("addSuccess"); this.$emit("success");
this.handleClose(); this.handleClose();
} }
this.loading = false;
} }
}); });
}, },
......
...@@ -49,7 +49,7 @@ import { getRoleList, saveUser } from "@/api/system"; ...@@ -49,7 +49,7 @@ import { getRoleList, saveUser } from "@/api/system";
export default { export default {
components: {}, components: {},
props: { props: {
addVisible: { show: {
type: Boolean, type: Boolean,
required: true, required: true,
default: false, default: false,
...@@ -69,10 +69,10 @@ export default { ...@@ -69,10 +69,10 @@ export default {
computed: { computed: {
Visible: { Visible: {
get() { get() {
return this.addVisible; return this.show;
}, },
set(val) { set(val) {
this.$emit("update:addVisible", val); this.$emit("update:show", val);
}, },
}, },
}, },
...@@ -103,13 +103,13 @@ export default { ...@@ -103,13 +103,13 @@ export default {
mobile, mobile,
roleIds: roleIds.join(","), roleIds: roleIds.join(","),
}); });
this.loading = false;
let { code, msg } = res.data; let { code, msg } = res.data;
if (code == 1) { if (code == 1) {
this.$message.success(msg); this.$message.success(msg);
this.$emit("addSuccess"); this.$emit("success");
this.handleClose(); this.handleClose();
} }
this.loading = false;
} }
}); });
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment