员工岗位修改
This commit is contained in:
parent
4e3da40fdb
commit
b3c432c35d
|
|
@ -262,15 +262,6 @@ export default {
|
|||
return await http.post(this.url,data);
|
||||
}
|
||||
},
|
||||
/*update: {
|
||||
name: "更新岗位",
|
||||
req: async function(id, data){
|
||||
return await http.put(
|
||||
`${config.API_URL}/system/post_role/${id}/`,
|
||||
data
|
||||
);
|
||||
}
|
||||
},*/
|
||||
delete: {
|
||||
name: "删除岗位",
|
||||
req: async function(id){
|
||||
|
|
|
|||
|
|
@ -603,7 +603,8 @@ const routes = [
|
|||
"meta": {
|
||||
"title": "相关证书",
|
||||
"icon": "el-icon-menu",
|
||||
"hidden": true
|
||||
"hidden": true,
|
||||
"perms": ["certificates"]
|
||||
},
|
||||
"component": "hrm/certificate"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,199 +1,259 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<el-aside width="40%">
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<div style="margin-right: 20px">岗位列表</div>
|
||||
<el-button type="primary" icon="el-icon-plus" @click="add"></el-button>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe highlightCurrentRow @row-click="rowClick"
|
||||
:hidePagination="true">
|
||||
<!-- <el-table-column type="selection" width="50"></el-table-column> -->
|
||||
<el-table-column label="" type="index"></el-table-column>
|
||||
<el-table-column label="名称" prop="name" width="120"></el-table-column>
|
||||
<el-table-column label="标识" prop="code" width="60"></el-table-column>
|
||||
<el-table-column label="最短在岗(h)" prop="min_hour" width="100"></el-table-column>
|
||||
<el-table-column label="最长在岗(h)" prop="max_hour" width="100"></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="right">
|
||||
<template #default="scope">
|
||||
<el-button type="warning" link size="small" @click="table_edit(scope.row)">编辑
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-aside>
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<div style="margin-right: 20px">岗位权限</div>
|
||||
<el-button type="primary" icon="el-icon-plus" @click="addPostRole"></el-button>
|
||||
<el-button type="danger" plain icon="el-icon-delete" @click="delPostRole"></el-button>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<scTable ref="table2" :apiObj="apiObj2" row-key="id" stripe :hidePagination="true">
|
||||
<!-- <el-table-column type="selection" width="50"></el-table-column> -->
|
||||
<el-table-column label="" type="index"></el-table-column>
|
||||
<el-table-column label="所属岗位" prop="post" min-width="80">
|
||||
<template #default="scope">{{scope.row.post_.name}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="拥有角色" prop="role" min-width="80">
|
||||
<template #default="scope">{{scope.row.role_.name}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="权限范围" prop="data_range" min-width="80">
|
||||
<template #default="scope">{{options[scope.row.data_range]}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="right">
|
||||
<template #default="scope">
|
||||
<el-button type="warning" link size="small" @click="postRoleEdit(scope.row)">编辑
|
||||
</el-button>
|
||||
<el-button type="warning" link size="small" @click="postRoleDel(scope.row)">删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-container>
|
||||
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
|
||||
@closed="dialog.save=false"></save-dialog>
|
||||
<save-role-dialog v-if="dialog.roleSave" ref="saveRoleDialog" @success="handleSaveRoleSuccess"
|
||||
@closed="dialog.roleSave=false"></save-role-dialog>
|
||||
|
||||
<el-container>
|
||||
<el-aside width="40%">
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<div style="margin-right: 20px">岗位列表</div>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
@click="add"
|
||||
></el-button>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:apiObj="apiObj"
|
||||
row-key="id"
|
||||
stripe
|
||||
highlightCurrentRow
|
||||
@row-click="rowClick"
|
||||
:hidePagination="true"
|
||||
>
|
||||
<!-- <el-table-column type="selection" width="50"></el-table-column> -->
|
||||
<el-table-column label="" type="index"></el-table-column>
|
||||
<el-table-column
|
||||
label="名称"
|
||||
prop="name"
|
||||
width="120"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="标识"
|
||||
prop="code"
|
||||
width="60"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="最短在岗(h)"
|
||||
prop="min_hour"
|
||||
width="100"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="最长在岗(h)"
|
||||
prop="max_hour"
|
||||
width="100"
|
||||
></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="right">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="warning"
|
||||
link
|
||||
size="small"
|
||||
@click="table_edit(scope.row)"
|
||||
>编辑
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-aside>
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<div style="margin-right: 20px">岗位权限</div>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
@click="addPostRole"
|
||||
></el-button>
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
@click="delPostRole"
|
||||
></el-button>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table2"
|
||||
:apiObj="apiObj2"
|
||||
row-key="id"
|
||||
stripe
|
||||
:hidePagination="true"
|
||||
>
|
||||
<!-- <el-table-column type="selection" width="50"></el-table-column> -->
|
||||
<el-table-column label="" type="index"></el-table-column>
|
||||
<el-table-column label="所属岗位" prop="post" min-width="80">
|
||||
<template #default="scope">{{ scope.row.post_.name }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="拥有角色" prop="role" min-width="80">
|
||||
<template #default="scope">{{ scope.row.role_.name }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="权限范围" prop="data_range" min-width="80">
|
||||
<template #default="scope">{{
|
||||
options[scope.row.data_range]
|
||||
}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="right">
|
||||
<template #default="scope">
|
||||
|
||||
<el-button
|
||||
type="warning"
|
||||
link
|
||||
size="small"
|
||||
@click="postRoleDel(scope.row)"
|
||||
>删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-container>
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
ref="saveDialog"
|
||||
@success="handleSaveSuccess"
|
||||
@closed="dialog.save = false"
|
||||
></save-dialog>
|
||||
<save-role-dialog
|
||||
v-if="dialog.roleSave"
|
||||
ref="saveRoleDialog"
|
||||
@success="handleSaveRoleSuccess"
|
||||
@closed="dialog.roleSave = false"
|
||||
></save-role-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import saveDialog from './post_form.vue'
|
||||
import saveRoleDialog from './post_role_form.vue'
|
||||
export default {
|
||||
name: 'listSon',
|
||||
components: {
|
||||
saveDialog,
|
||||
saveRoleDialog,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
apiObj: this.$API.system.post.list,
|
||||
apiObj2: this.$API.system.postrole.list,
|
||||
dialog: {
|
||||
save: false,
|
||||
roleSave: false,
|
||||
},
|
||||
selection: [],
|
||||
postId:'',
|
||||
options: {
|
||||
10: "全部",
|
||||
20: "自定义",
|
||||
30: "同级及以下",
|
||||
40: "本级及以下",
|
||||
50: "本级",
|
||||
60: "仅本人"
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
rowClick(row) {
|
||||
let params = {
|
||||
post: row.id
|
||||
};
|
||||
this.postId = row.id;
|
||||
this.$refs.table2.reload(params)
|
||||
},
|
||||
//窗口新增
|
||||
add() {
|
||||
this.dialog.save = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.saveDialog.open()
|
||||
})
|
||||
},
|
||||
//窗口编辑
|
||||
table_edit(row) {
|
||||
this.dialog.save = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.saveDialog.open('edit').setData(row)
|
||||
})
|
||||
},
|
||||
//批量删除
|
||||
async batch_del() {
|
||||
var confirmRes = await this.$confirm(`确定删除选中的 ${this.selection.length} 项吗?`, '提示', {
|
||||
type: 'warning',
|
||||
confirmButtonText: '删除',
|
||||
confirmButtonClass: 'el-button--danger'
|
||||
}).catch(() => {
|
||||
})
|
||||
import saveDialog from "./post_form.vue";
|
||||
import saveRoleDialog from "./post_role_form.vue";
|
||||
export default {
|
||||
name: "listSon",
|
||||
components: {
|
||||
saveDialog,
|
||||
saveRoleDialog,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
apiObj: this.$API.system.post.list,
|
||||
apiObj2: this.$API.system.postrole.list,
|
||||
dialog: {
|
||||
save: false,
|
||||
roleSave: false,
|
||||
},
|
||||
selection: [],
|
||||
postId: "",
|
||||
options: {
|
||||
10: "全部",
|
||||
20: "自定义",
|
||||
30: "同级及以下",
|
||||
40: "本级及以下",
|
||||
50: "本级",
|
||||
60: "仅本人",
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
rowClick(row) {
|
||||
let params = {
|
||||
post: row.id,
|
||||
};
|
||||
this.apiObj2 = this.$API.system.postrole.list;
|
||||
this.postId = row.id;
|
||||
this.$refs.table2.reload(params);
|
||||
},
|
||||
//窗口新增
|
||||
add() {
|
||||
this.dialog.save = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.saveDialog.open();
|
||||
});
|
||||
},
|
||||
//窗口编辑
|
||||
table_edit(row) {
|
||||
this.dialog.save = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.saveDialog.open("edit").setData(row);
|
||||
});
|
||||
},
|
||||
//批量删除
|
||||
async batch_del() {
|
||||
var confirmRes = await this.$confirm(
|
||||
`确定删除选中的 ${this.selection.length} 项吗?`,
|
||||
"提示",
|
||||
{
|
||||
type: "warning",
|
||||
confirmButtonText: "删除",
|
||||
confirmButtonClass: "el-button--danger",
|
||||
}
|
||||
).catch(() => {});
|
||||
|
||||
if (!confirmRes) {
|
||||
return false
|
||||
}
|
||||
if (!confirmRes) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var ids = this.selection.map(v => v.id)
|
||||
this.$refs.table.removeKeys(ids)
|
||||
this.$message.success("操作成功")
|
||||
var ids = this.selection.map((v) => v.id);
|
||||
this.$refs.table.removeKeys(ids);
|
||||
this.$message.success("操作成功");
|
||||
},
|
||||
//新增岗位后更新数据
|
||||
handleSaveSuccess(data, mode) {
|
||||
//为了减少网络请求,直接变更表格内存数据
|
||||
if (mode == "add") {
|
||||
this.$refs.table.unshiftRow(data);
|
||||
} else if (mode == "edit") {
|
||||
this.$refs.table.updateKey(data);
|
||||
}
|
||||
|
||||
},
|
||||
//新增岗位后更新数据
|
||||
handleSaveSuccess(data, mode) {
|
||||
//为了减少网络请求,直接变更表格内存数据
|
||||
if (mode == 'add') {
|
||||
this.$refs.table.unshiftRow(data)
|
||||
} else if (mode == 'edit') {
|
||||
this.$refs.table.updateKey(data)
|
||||
}
|
||||
|
||||
//当然也可以暴力的直接刷新表格
|
||||
// this.$refs.table.refresh()
|
||||
},
|
||||
//新增岗位关系后更新数据
|
||||
handleSaveRoleSuccess() {
|
||||
this.$refs.table2.refresh()
|
||||
},
|
||||
addPostRole(){
|
||||
this.dialog.roleSave = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.saveRoleDialog.open("add").setData({postId:this.postId})
|
||||
})
|
||||
},
|
||||
postRoleEdit(row){
|
||||
this.dialog.roleSave = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.saveRoleDialog.open("edit").setData(row)
|
||||
})
|
||||
},
|
||||
delPostRole(){
|
||||
|
||||
},
|
||||
closed(){
|
||||
this.dialog.save = false;
|
||||
this.dialog.roleSave = false;
|
||||
this.postId = '';
|
||||
this.$refs.table2.refresh();
|
||||
},
|
||||
postRoleDel(row){
|
||||
this.$confirm(`确定删除选中的岗位关系吗?`, '提示', {
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$API.system.postrole.delete.req(row.id).then(res=>{
|
||||
if(res.err_msg){
|
||||
this.$message.error(res.err_msg)
|
||||
}else{
|
||||
const loading = this.$loading();
|
||||
this.$refs.table2.refresh();
|
||||
loading.close();
|
||||
this.$message.success("操作成功")
|
||||
}
|
||||
})
|
||||
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
//当然也可以暴力的直接刷新表格
|
||||
// this.$refs.table.refresh()
|
||||
},
|
||||
//新增岗位关系后更新数据
|
||||
handleSaveRoleSuccess() {
|
||||
this.$refs.table2.refresh();
|
||||
},
|
||||
addPostRole() {
|
||||
this.dialog.roleSave = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.saveRoleDialog.open("add").setData({ postId: this.postId });
|
||||
});
|
||||
},
|
||||
postRoleEdit(row) {
|
||||
this.dialog.roleSave = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.saveRoleDialog.open("edit").setData(row);
|
||||
});
|
||||
},
|
||||
delPostRole() {},
|
||||
closed() {
|
||||
this.dialog.save = false;
|
||||
this.dialog.roleSave = false;
|
||||
this.postId = "";
|
||||
this.$refs.table2.refresh();
|
||||
},
|
||||
postRoleDel(row) {
|
||||
this.$confirm(`确定删除选中的岗位关系吗?`, "提示", {
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
this.$API.system.postrole.delete.req(row.id).then((res) => {
|
||||
if (res.err_msg) {
|
||||
this.$message.error(res.err_msg);
|
||||
} else {
|
||||
const loading = this.$loading();
|
||||
this.$refs.table2.refresh();
|
||||
loading.close();
|
||||
this.$message.success("操作成功");
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
|
|
|||
|
|
@ -133,6 +133,7 @@ export default {
|
|||
},
|
||||
//表单提交方法
|
||||
async submit() {
|
||||
|
||||
var valid = await this.$refs.form.validate().catch(() => {});
|
||||
if (!valid) {
|
||||
return false;
|
||||
|
|
@ -140,11 +141,9 @@ export default {
|
|||
this.isSaveing = true;
|
||||
try {
|
||||
let res;
|
||||
if (this.mode === "add") {
|
||||
|
||||
res = await this.$API.system.postrole.create.req(this.form);
|
||||
} else if (this.mode === "edit") {
|
||||
res = await this.$API.system.postrole.update.req(this.form.id, this.form);
|
||||
}
|
||||
|
||||
this.isSaveing = false;
|
||||
this.$emit("success", this.form, this.mode);
|
||||
this.visible = false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue