审批人完成

This commit is contained in:
clay
2022-01-07 16:42:34 +08:00
parent 41b6b9ba33
commit d6bca55436
3 changed files with 93 additions and 4 deletions

View File

@@ -5,5 +5,4 @@ ENV = 'staging'
# EBTS/测试环境 # EBTS/测试环境
#VUE_APP_BASE_API = '/dev-api' #VUE_APP_BASE_API = '/dev-api'
#VUE_APP_BASE_API = 'https://api.ebts.top/dev-api' VUE_APP_BASE_API = 'http://sistapi.hchyun.cn/dev-api'
VUE_APP_BASE_API = 'http://tapi.ebts.top/dev-api'

View File

@@ -134,8 +134,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="菜单权限"> <el-form-item label="文章类型">
<!-- <el-checkbox v-model="siteTypeExpand" @change="handleCheckedTreeExpand($event)">展开/折叠</el-checkbox>-->
<el-checkbox v-model="siteTypeNodeAll" @change="handleCheckedTreeNodeAll($event)">全选/全不选</el-checkbox> <el-checkbox v-model="siteTypeNodeAll" @change="handleCheckedTreeNodeAll($event)">全选/全不选</el-checkbox>
<el-checkbox v-model="siteTypeCheckStrictly" @change="handleCheckedTreeConnect($event)">父子联动 <el-checkbox v-model="siteTypeCheckStrictly" @change="handleCheckedTreeConnect($event)">父子联动
</el-checkbox> </el-checkbox>

View File

@@ -295,6 +295,25 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="24">
<el-form-item label="文章类型">
<el-checkbox v-model="siteTypeNodeAll" @change="handleCheckedTreeNodeAll($event)">全选/全不选</el-checkbox>
<el-checkbox v-model="siteTypeCheckStrictly" @change="handleCheckedTreeConnect($event)">父子联动
</el-checkbox>
<el-tree
class="tree-border"
:data="siteTypeOptions"
show-checkbox
ref="siteType"
node-key="dictCode"
:check-strictly="!siteTypeCheckStrictly"
empty-text="加载中请稍后"
:props="defaultsiteType"
></el-tree>
</el-form-item>
</el-col>
</el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注"> <el-form-item label="备注">
@@ -364,6 +383,9 @@ export default {
multiple: true, multiple: true,
// 显示搜索条件 // 显示搜索条件
showSearch: true, showSearch: true,
siteTypeExpand: false,
siteTypeNodeAll: false,
siteTypeCheckStrictly:false,
// 总条数 // 总条数
total: 0, total: 0,
// 用户表格数据 // 用户表格数据
@@ -388,6 +410,11 @@ export default {
postOptions: [], postOptions: [],
// 角色选项 // 角色选项
roleOptions: [], roleOptions: [],
siteTypeOptions: [],
defaultsiteType: {
children: "children",
label: "dictLabel",
},
// 表单参数 // 表单参数
form: {}, form: {},
defaultProps: { defaultProps: {
@@ -487,6 +514,7 @@ export default {
this.deptOptions = response.data; this.deptOptions = response.data;
}); });
}, },
// 筛选节点 // 筛选节点
filterNode(value, data) { filterNode(value, data) {
if (!value) return true; if (!value) return true;
@@ -512,13 +540,61 @@ export default {
row.status = row.status === "0" ? "1" : "0"; row.status = row.status === "0" ? "1" : "0";
}); });
}, },
getSiteTypeTree() {
this.getDicts('article_type').then(res => {
let sist = {
attribute2: 1,
dictCode: 0,
dictLabel: "信息网站",
children: [],
}
let lab = {
attribute2: 2,
dictCode: 1,
dictLabel: "lab实验室",
children: [],
}
let data = res.data
for (let i = 0; i < data.length; i++) {
if (data[i].attribute2 === 1) {
sist.children.push(data[i])
} else {
lab.children.push(data[i])
}
}
this.siteTypeOptions.push(sist)
this.siteTypeOptions.push(lab)
})
},
// 树权限(展开/折叠)
handleCheckedTreeExpand(value) {
let treeList = this.siteTypeOptions;
for (let i = 0; i < treeList.length; i++) {
this.$refs.siteType.store.nodesMap[treeList[i].id].expanded = value;
}
},
// 树权限(全选/全不选)
handleCheckedTreeNodeAll(value) {
this.$refs.siteType.setCheckedNodes(value ? this.siteTypeOptions : []);
},
// 树权限(父子联动)
handleCheckedTreeConnect(value,) {
this.siteTypeCheckStrictly = value ? true : false;
},
// 取消按钮 // 取消按钮
cancel() { cancel() {
this.open = false; this.open = false;
this.siteTypeExpand = false;
this.siteTypeNodeAll = false;
this.reset(); this.reset();
}, },
// 表单重置 // 表单重置
reset() { reset() {
this.siteTypeNodeAll = false;
this.siteTypeOptions = [];
this.siteTypeCheckStrictly = true;
this.form = { this.form = {
userId: undefined, userId: undefined,
deptId: undefined, deptId: undefined,
@@ -556,6 +632,7 @@ export default {
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.getTreeselect(); this.getTreeselect();
this.getSiteTypeTree();
getUser().then(response => { getUser().then(response => {
this.postOptions = response.posts; this.postOptions = response.posts;
this.roleOptions = response.roles; this.roleOptions = response.roles;
@@ -568,6 +645,7 @@ export default {
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
this.getTreeselect(); this.getTreeselect();
this.getSiteTypeTree();
const userId = row.userId || this.ids; const userId = row.userId || this.ids;
getUser(userId).then(response => { getUser(userId).then(response => {
this.form = response.data; this.form = response.data;
@@ -578,6 +656,9 @@ export default {
this.open = true; this.open = true;
this.title = "修改用户"; this.title = "修改用户";
this.form.password = ""; this.form.password = "";
this.$nextTick(() => {
this.$refs.siteType.setCheckedKeys(this.form.siteTypes);
});
}); });
}, },
/** 重置密码按钮操作 */ /** 重置密码按钮操作 */
@@ -591,8 +672,18 @@ export default {
}); });
}).catch(() => {}); }).catch(() => {});
}, },
// 所有菜单节点数据
getSiteTypeAllCheckedKeys() {
// 目前被选中的菜单节点
let checkedKeys = this.$refs.siteType.getCheckedKeys();
// 半选中的菜单节点
let halfCheckedKeys = this.$refs.siteType.getHalfCheckedKeys();
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
return checkedKeys;
},
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function() {
this.form.siteTypes = this.getSiteTypeAllCheckedKeys()
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.userId != undefined) { if (this.form.userId != undefined) {