提交 cf226cf6 authored 作者: 龙菲's avatar 龙菲

角色管理

上级 3e183f69
......@@ -88,6 +88,16 @@ export function upadateUser(data) {
})
}
// 删除用户
export function deleteUser(data) {
return request({
url: '/sys/user',
method: 'delete',
data
})
}
// 以用户行为统计排序分页查询资源
export function getListByPageSort(data) {
return request({
......@@ -106,3 +116,44 @@ export function getBarMap(params) {
})
}
// 增加角色
export function addRole(data) {
return request({
url: '/sys/role',
method: 'post',
data
})
}
// 修改角色
export function upadateRole(data) {
return request({
url: 'sys/role',
method: 'put',
data
})
}
// 删除角色
export function deleteRole(id) {
return request({
url: '/sys/role/'+id,
method: 'delete',
})
}
// 获取所有目录菜单树
export function getPermissionTreeAll(params) {
return request({
url: '/sys/permission/tree/all',
method: 'get',
params
})
}
export function getPermissionById(id) {
return request({
url: `/sys/permission/${id}`,
method: 'get',
})
}
import {
login,
logout,
getMenu
getMenu,
getPermissionTreeAll
} from '@/api/user'
import {
getToken,
......@@ -25,6 +26,7 @@ const getDefaultState = () => {
menu: getLocalMenu(),
name: '',
avatar: '',
permissionTree: []
}
}
......@@ -48,7 +50,10 @@ const mutations = {
},
SET_MENU: (state, menu) => {
state.menu = menu
}
},
SET_PERMISSION_TREE_ALL: (state, permissionTree) => {
state.permissionTree = permissionTree
},
}
const actions = {
......@@ -143,7 +148,7 @@ const actions = {
}
return obj
}
commit('SET_MENU', menuObj)
setLocalMenu(menuObj)
resolve()
......@@ -153,6 +158,19 @@ const actions = {
})
},
// 获取权限树所有
getPermissionTreeAll({
commit
}) {
return new Promise(resolve => {
getPermissionTreeAll().then(res => {
commit('SET_PERMISSION_TREE_ALL', res.data)
resolve(res.data)
}).catch(err => {
reject(err)
})
})
},
}
......
......@@ -8,6 +8,7 @@ export const title = [{
prop: "keyword",
label: "关键词",
columnAlign: 'center',
showOverFlowToolTip: true,
},
{
prop: "type",
......
......@@ -13,51 +13,16 @@
</div>
<div class="dialog-content">
<el-form :model="dialogForm" class="basic-info">
<el-form-item label="名称" :label-width="formLabelWidth">
<el-form-item label="角色名称" :label-width="formLabelWidth">
<el-input
v-model="dialogForm.name"
autocomplete="off"
placeholder="请输入文献名称"
placeholder="请输入角色名称"
></el-input>
</el-form-item>
<el-form-item label="作者" :label-width="formLabelWidth">
<el-input
v-model="dialogForm.authors"
autocomplete="off"
placeholder="请输入作者"
></el-input>
</el-form-item>
<el-form-item label="文献来源" :label-width="formLabelWidth">
<el-input
v-model="dialogForm.source"
autocomplete="off"
placeholder="请输入文献来源"
></el-input>
</el-form-item>
<el-form-item label="出版/发布日期" :label-width="formLabelWidth">
<el-date-picker
style="width: 100%"
v-model="dialogForm.date"
type="date"
placeholder="请选择出版/发布日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item label="状态" :label-width="formLabelWidth">
<el-switch v-model="status"> </el-switch>
</el-form-item>
<el-form-item label="文件" :label-width="formLabelWidth">
<ManualUploader
:files="files"
:fileLimit="1"
:fileSize="50"
listType="text"
:fileType="['pdf']"
ref="pdf"
/>
</el-form-item>
<el-form-item label="备注" :label-width="formLabelWidth">
<el-input
type="textarea"
......@@ -68,6 +33,15 @@
>
</el-input>
</el-form-item>
<el-form-item label="权限" :label-width="formLabelWidth">
<el-tree
:data="permissionTree"
show-checkbox
:props="props"
@check-change="handleCheckChange"
>
</el-tree>
</el-form-item>
</el-form>
</div>
<div class="dialog-footer">
......@@ -80,15 +54,9 @@
</template>
<script>
import { addLiterature, editLiterature } from "@/api/literature";
import ManualUploader from "@/components/Uploader/ManualUploader.vue";
import { mapGetters } from "vuex";
import { uploadFile } from "@/utils/file";
import { addRole, editRole, getPermissionTreeAll,getPermissionById } from "@/api/user";
export default {
name: "InfoEditDialog",
components: {
ManualUploader,
},
props: {
visible: {
type: Boolean,
......@@ -100,29 +68,27 @@ export default {
},
},
computed: {
...mapGetters(["userInfo"]),
title() {
if (this.dialogForm.literatureId) {
return "修改文献";
if (this.dialogForm.id) {
return "修改角色信息";
} else {
return "添加文献";
return "添加新角色";
}
},
},
watch: {
form: {
handler: function (value) {
debugger
let that = this;
that.dialogForm = JSON.parse(JSON.stringify(value));
// 编辑状态
if (that.dialogForm.literatureId) {
if (that.dialogForm.id) {
// 回填状态
that.status = Boolean(Number(that.dialogForm.status));
// 回填文件
if (that.dialogForm.files) {
that.files = that.dialogForm.files;
}
// let perm = await getPermissionById
that.getPer()
}
},
immediate: true,
......@@ -143,8 +109,21 @@ export default {
status: false,
files: [], //文献文件
dialogVisible: false,
permissionTree: [],
props: {
value: "id",
label: "title",
children: "children",
checkStrictly: true,
},
};
},
async created() {
let res = await getPermissionTreeAll();
this.permissionTree = res.data
console.log(this.permissionTree);
// console.log(res);
},
methods: {
handlePreview({ type, file }) {
console.log(type, file);
......@@ -160,30 +139,16 @@ export default {
async handleSubmit() {
let params = JSON.parse(JSON.stringify(this.dialogForm));
// 回填文件
let file = this.$refs.pdf.getFiles();
let formData = new FormData();
if (file[0].status == "ready") {
formData.append("files", file[0].raw);
let upLoadRes = await uploadFile(formData);
if (upLoadRes.code == 0) {
params.pdfFile = upLoadRes.data[0].fileId;
} else {
this.$message.error("上传失败!:" + upLoadRes.data.msg);
}
} else if (file[0].status == "success") {
params.pdfFile = file[0].fileId;
}
// 修改状态
params.status = this.status ? 1 : 0;
if (params.literatureId) {
let res = await editLiterature(params);
let res = await editRole(params);
if (res.code == 0) {
this.$message.success("修改成功!");
this.reload();
}
} else {
let res = await addLiterature(params);
let res = await addRole(params);
if (res.code == 0) {
this.$message.success("添加成功!");
this.reload();
......@@ -204,6 +169,16 @@ export default {
})
.catch((_) => {});
},
handleCheckChange(data, checked, indeterminate) {
console.log(data, checked, indeterminate);
},
async getPer(){
let res = await getPermissionById(this.dialogForm.id)
debugger
console.log(res);
}
},
};
</script>
......
......@@ -38,6 +38,14 @@
clearable
></el-input>
</el-form-item>
<el-form-item label="昵称" :label-width="formLabelWidth">
<el-input
v-model="dialogForm.nickName"
autocomplete="off"
placeholder="请输入昵称"
clearable
></el-input>
</el-form-item>
<el-form-item label="真实姓名" :label-width="formLabelWidth">
<el-input
v-model="dialogForm.realName"
......@@ -49,7 +57,7 @@
<el-form-item label="所属部门" :label-width="formLabelWidth">
<el-cascader
style="width: 100%"
v-model="dialogForm.deptNo"
v-model="dialogForm.deptId"
:options="orgTreeData"
:props="optionProps"
placeholder="请选择所属部门"
......@@ -113,6 +121,8 @@ export default {
if (that.dialogForm.id) {
// 回填状态
that.status = Boolean(Number(that.dialogForm.status));
// 回填部门
that.dialogForm.deptId = [that.dialogForm.deptId];
}
},
immediate: true,
......@@ -132,7 +142,7 @@ export default {
data() {
var validatePass = (rule, value, callback) => {
if (value === "") {
callback(new Error("请输入密码"));
callback(new Error("请输入密码"));
} else {
var pattern =
/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&*`~()-+=]+$)(?![0-9\\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*`~()-+=]{8,30}$/;
......@@ -142,7 +152,7 @@ export default {
"密码长度至少8位,至少含数字,大写字母,小写字母,特殊符其中三种"
)
);
}
}
callback();
}
};
......@@ -247,7 +257,11 @@ export default {
// 修改状态
params.status = this.status ? 1 : 0;
console.log(22, params);
return;
// return;
// 处理馆藏单位
if (params.deptId instanceof Array) {
params.deptId = params.deptId[params.deptId.length - 1];
}
if (params.id) {
let res = await upadateUser(params);
if (res.code == 0) {
......
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论