Browse Source

Merge remote-tracking branch 'origin/master'

master
djz8236 2 years ago
parent
commit
9eaf3dda93
  1. 2
      supervise-risk-ui/.env.development
  2. 1
      supervise-risk-ui/src/views/index.vue
  3. 11
      warehousing-system/project_web/src/components/initial_value/storehouse.vue
  4. 262
      warehousing-system/project_web/src/components/instorehouse/purchase.vue
  5. 8
      warehousing-system/project_web/src/plugins/element.js
  6. 4
      warehousing-system/project_web/src/router/index.js
  7. 3
      warehousing-system/project_web/src/views/index8.vue
  8. 57
      yxt-supervise-cyf/docs/databases/create_table.sql
  9. 85
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/sysmenu/CyfSysMenuRest.java
  10. 12
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/sysuser/CyfSysUserMapper.xml
  11. 48
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/sysuser/CyfSysUserRest.java
  12. 108
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/sysuser/CyfSysUserService.java
  13. 2
      yxt-supervise-cyf/yxt-supervise-cyf-ui/.env.development
  14. 10
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/system/Role/role.js
  15. 84
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/system/functional/functional.js
  16. 123
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/system/menu/index.js
  17. 78
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/system/postManage/index.js
  18. 150
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/system/userManage/index.js
  19. 289
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/components/VehicleConfigurationSub/vehicleconfiguration.vue
  20. 1018
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/layout/components/Sidebar/index.vue
  21. 218
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/router/index.js
  22. 660
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/organizationManage/organizationManage.vue
  23. 853
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/RoleAdminister/RoleAdminister.vue
  24. 604
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/menuManage/menuManage.vue
  25. 694
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/organizationManage/organizationManage.vue
  26. 505
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/postManage/postManage.vue
  27. 65
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/userManage/userManage.vue
  28. 267
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/userManage/userManageAdd.vue
  29. 483
      yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/userManage/userManageList.vue

2
supervise-risk-ui/.env.development

@ -5,5 +5,5 @@ ENV = 'development'
VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址
VUE_APP_URL = "http://127.0.0.1:8112"
VUE_APP_URL = "http://192.168.1.105:8001"
##VUE_APP_URL = "http://120.46.172.184:8111"

1
supervise-risk-ui/src/views/index.vue

@ -137,7 +137,6 @@
</div>
</template>
</div>
<script>
import * as echarts from 'echarts'
import {

11
warehousing-system/project_web/src/components/initial_value/storehouse.vue

@ -95,12 +95,12 @@
</el-option>
</el-select>
<el-select size="small" class = "arriveClass" v-model="form.region2" placeholder="请选择市" @change = "cityChange($event)">
<el-select size="small" class = "arriveClass" v-model="form.region2" placeholder="请选择市" :disabled="changeCity" @change = "cityChange($event)">
<el-option v-for="(item,index) in form.cityList" :key="index" :label="item.name" :value="item.name">
</el-option>
</el-select>
<el-select size="small" class = "arriveClass" v-model="form.region3" placeholder="请选择区县">
<el-select size="small" class = "arriveClass" v-model="form.region3" :disabled="changeCounty" placeholder="请选择区县">
<el-option v-for="(item,index) in form.countyList" :key="index" :label="item.name" :value="item.name">
</el-option>
</el-select>
@ -194,6 +194,8 @@ export default {
pageSize: 10
},
total: 0,
changeCity: true,
changeCounty: true,
storehouseList: [],
storehouseDialogVisible: false,
title: '新增仓库',
@ -329,6 +331,9 @@ export default {
//
this.form.region2=''
this.form.region3=''
if(this.form.region2==='' || this.form.region3===''){
this.changeCounty=true
}
let cityCode = 0
let newCityArry = []
this.form.provinceList.forEach((item,index)=>{
@ -342,6 +347,7 @@ export default {
this.CITY.forEach((item,index)=>{
if(item.code == cityCode){
this.form.cityList.push(item)
this.changeCity=false
}
}) /* 市匹配成功*/
}
@ -362,6 +368,7 @@ export default {
this.XIAN.forEach((item,index)=>{
if(item.code == countyCode && item.cityCountyName == cityname){
this.form.countyList.push(item)
this.changeCounty=false
}
})
}

262
warehousing-system/project_web/src/components/instorehouse/purchase.vue

@ -85,7 +85,7 @@
</el-card>
<el-dialog title="添加采购订单" :visible.sync="addPurchaseDialogVisible" width="65%" @close="closeAddPurchaseDialog">
<!-- <el-dialog title="添加采购订单" :visible.sync="addPurchaseDialogVisible" width="75%">
<el-form :model="purchaseForm" :rules="rules" ref="addPurchaseRuleForm" label-width="100px" class="demo-ruleForm" :inline="true">
<el-form-item label="订单编号" prop="purchaseId">
<el-input :disabled="true" v-model="purchaseForm.purchaseId"></el-input>
@ -129,48 +129,144 @@
<el-button @click="addPurchaseDialogVisible = false"> </el-button>
<el-button type="primary" @click="addPurchase"> </el-button>
</div>
</el-dialog>
<el-dialog title="添加采购订单" :visible.sync="addPurchaseDialogVisible" width="65%" @close="closeAddPurchaseDialog">
<el-form :model="purchaseForm" :rules="rules" ref="addPurchaseRuleForm" label-width="100px" class="demo-ruleForm" :inline="true">
<el-form-item label="订单编号" prop="purchaseId">
<el-input :disabled="true" v-model="purchaseForm.purchaseId"></el-input>
</el-form-item>
<el-form-item label="商品名称" prop="product">
<el-select v-model="purchaseForm.product" placeholder="请选择" @change="getProductList">
<el-option
v-for="product in productList2"
:key="product.name"
:label="product.name"
:value="product.name">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="供应商" prop="supplier">
<el-select v-model="purchaseForm.supplier" placeholder="请选择" >
<el-option
v-for="supplier in supplierList"
:key="supplier.name"
:label="supplier.name"
:value="supplier.name">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="所属仓库" prop="storehouse">
<el-select v-model="purchaseForm.storehouse" placeholder="请选择" >
<el-option
v-for="storehouse in storehouseList"
:key="storehouse.name"
:label="storehouse.name"
:value="storehouse.name">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="商品数量" prop="count">
<el-input-number v-model="purchaseForm.count" controls-position="right" :min="1"></el-input-number>
</el-form-item>
</el-dialog> -->
<el-dialog title="添加采购订单" :visible.sync="addPurchaseDialogVisible" width="75%">
<div class="listconadd">
<el-form ref="dataForm" :model="purchaseForm" label-position="top" label-width="190px" class="formadd">
<div class="title" style="display: flex;align-items: center;justify-content: space-between;height:40px">
<div style="margin-left: 15px;">主体信息</div>
</div>
<el-row>
<el-col :span="3" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">订单日期</span>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item class="trightb_item">
<!-- <span>{{temp.bankName}}</span> -->
<el-input v-model="purchaseForm.orderNumber" placeholder="" clearable />
</el-form-item>
</el-col>
<el-col :span="3" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">订单编号</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item class="trightb_item" prop="purchaseId">
<el-input :disabled="true" v-model="purchaseForm.purchaseId"></el-input>
</el-form-item>
</el-col>
<el-col :span="3" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">供货商名称</span>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item prop="supplier" class="trightb_item">
<el-select v-model="purchaseForm.supplier" placeholder="请选择" >
<el-option
v-for="supplier in supplierList"
:key="supplier.name"
:label="supplier.name"
:value="supplier.name">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">采购申请人</span>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item class="trightb_item">
<el-input v-model="purchaseForm.propr" placeholder="采购申请人" clearable />
</el-form-item>
</el-col>
<el-col :span="3" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">客户名称</span>
</el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item class="trightb_item">
<el-select v-model="purchaseForm.storehouse" placeholder="请选择" >
<el-option
v-for="storehouse in storehouseList"
:key="storehouse.name"
:label="storehouse.name"
:value="storehouse.name">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">仓库名称</span>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item class="trightb_item">
<el-select v-model="purchaseForm.storehouse" placeholder="请选择" >
<el-option
v-for="storehouse in storehouseList"
:key="storehouse.name"
:label="storehouse.name"
:value="storehouse.name">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-collapse v-model="activeNames">
<el-collapse-item name="1">
<template slot="title" >
<span style="margin-left: 15px;">商品信息</span><span class="span" @click.stop="add()">添加</span>
</template>
<el-table :data="purchaseForm.commodityList" border style="width: 100%;"
:row-style="{height: '40px'}">
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column label="商品名称" prop="name" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.product" placeholder="请选择" >
<el-option
v-for="product in productList"
:key="product.name"
:label="product.name"
:value="product.name">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="商品编码" prop="number" align="center" />
<el-table-column label="单位" prop="unit" align="center" />
<el-table-column label="单价" prop="price" align="center">
</el-table-column>
<el-table-column label="重量" prop="weight" align="center">
</el-table-column>
<el-table-column label="操作" wid align="center" width="150">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="doCommoditylDel(scope.$index)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="addPurchaseDialogVisible = false"> </el-button>
<el-button type="primary" @click="addPurchase"> </el-button>
@ -237,6 +333,7 @@ export default {
},
total: 0,
purchaseList: [],
activeNames: ['1'],
addPurchaseDialogVisible: false,
updataPurchaseDialogVisible: false,
productList: [],
@ -251,7 +348,8 @@ export default {
supplier: '',
count: '',
storehouse: '',
status: ''
status: '',
commodityList:[]
},
rules: {
product: [
@ -399,7 +497,19 @@ export default {
this.$message.error('订单' + this.selectPurchaseList[i].purchaseId + '进行中')
}
}
}
},
doCommoditylDel(){
},
add(){
},
//
indexMethod(index) {
// var pagestart = (this.listQuery.current - 1) * this.listQuery.size
// var pageindex = index + 1 + pagestart
return index + 1
},
},
@ -412,6 +522,70 @@ export default {
}
</script>
<style>
<style scoped>
/deep/ .el-collapse-item__header {
height: 40px;
font-weight: bold;
font-size: 16px;
text-align: left;
color: #ffffff;
background-color: #0294d7;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0;
}
.trightb {
display: flex;
align-items: center;
text-align: center;
justify-content: center;
}
.trightb_item {
padding-top: 5px;
}
.span {
margin-left: 50px;
font-size: 15px;
font-weight: 400;
}
.formadd {
padding: 10px 40px 0 40px;
font-size: 16px;
}
.formadd .title {
font-weight: bold;
font-size: 16px;
background-color: #0294d7;
text-align: left;
color: #ffffff;
}
.first_row{
border-top: 1px solid #e0e3eb;
}
.formadd .el-row {
display: flex;
flex-wrap: wrap;
border-left: 1px solid #e0e3eb;
}
.formadd .el-row .el-col {
border-right: 1px solid #e0e3eb;
border-bottom: 1px solid #e0e3eb;
padding: 0 15px;
min-height: 42px;
line-height: 1;
}
.formadd .el-row .el-col .el-form-item {
margin-bottom: 0;
line-height: 42px;
}
.addinputw {
width: 80%;
line-height: 42px;
}
.el-input__inner {
height: 36px;
}
</style>

8
warehousing-system/project_web/src/plugins/element.js

@ -40,7 +40,9 @@ import {
Upload,
Divider,
InputNumber,
footer
Footer,
Collapse,
CollapseItem
} from 'element-ui'
Vue.use(Button)
@ -81,7 +83,9 @@ Vue.use(Checkbox)
Vue.use(Upload)
Vue.use(Divider)
Vue.use(InputNumber)
Vue.use(footer)
Vue.use(Footer)
Vue.use(Collapse)
Vue.use(CollapseItem)
// 将弹框组件挂载到Vue对象中 用户可以使用this关键字调用
Vue.prototype.$message = Message

4
warehousing-system/project_web/src/router/index.js

@ -29,9 +29,9 @@ Vue.use(VueRouter)
const routes = [
{ path: '/login', component: Login },
// { path: '/', redirect: '/login' },
{ path: '/', redirect: '/home' },
{ path: '/', redirect: '/index' },
{
path: '/home',
path: '/index',
component: Home,
redirect: '/index',
children: [

3
warehousing-system/project_web/src/views/index8.vue

@ -108,7 +108,6 @@
</div>
</template>
</div>
<script>
import * as echarts from 'echarts';
@ -422,6 +421,4 @@ export default {
}
}
}
canvas {}
</style>

57
yxt-supervise-cyf/docs/databases/create_table.sql

@ -383,6 +383,10 @@ CREATE TABLE `sys_user` (
`mobile` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号',
`userType` int(0) NULL DEFAULT NULL COMMENT '用户类型:1员工、2客户、3供应商',
`headImage` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户头像',
`roleSid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '角色 ',
`orgSid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '岗位',
`postSid` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '部门',
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '员工名',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
@ -781,3 +785,56 @@ CREATE TABLE `sys_role` (
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色' ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS `sys_menu_role`;
CREATE TABLE `sys_menu_role` (
`id` int(0) NOT NULL AUTO_INCREMENT,
`sid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sid',
`lockVersion` int(0) NOT NULL DEFAULT 0 COMMENT '记录版本,锁',
`createTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '记录创建时间',
`modifyTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '记录最后修改时间',
`isEnable` int(0) NOT NULL DEFAULT 1 COMMENT '记录是否可用,1:可用,0:不可用',
`state` int(0) NULL DEFAULT 1 COMMENT '隐藏本部门:隐藏本部门开启后,本部门将不会显示在公司通讯录中',
`isDelete` int(0) NULL DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注信息',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建者',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新者',
`menuSid` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单sid',
`roleSid` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '角色sid',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 14389 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '菜单与角色关联表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
`id` int(0) NOT NULL AUTO_INCREMENT,
`sid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sid',
`lockVersion` int(0) NOT NULL DEFAULT 0 COMMENT '记录版本,锁',
`createTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '记录创建时间',
`modifyTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '记录最后修改时间',
`isEnable` int(0) NOT NULL DEFAULT 1 COMMENT '记录是否可用,1:可用,0:不可用',
`state` int(0) NULL DEFAULT 1 COMMENT '隐藏本部门:隐藏本部门开启后,本部门将不会显示在公司通讯录中',
`isDelete` int(0) NULL DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注信息',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建者',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新者',
`name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单名称',
`menuUrl` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单路由路径(VUE)',
`pageUrl` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单对应的前端页面路径',
`iconUrl` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单图标地址',
`sourceSid` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '资源sid',
`isShow` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '是否显示,默认为1显示,0为不显示',
`sortNo` int(0) NULL DEFAULT NULL COMMENT '排序号',
`pSid` varchar(300) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '上级sid',
`pageUrlRedirect` int(0) NULL DEFAULT NULL COMMENT '前端页面路径重定向',
`pageName` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端页面名称(vue组件名)',
`pageAliasName` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端页面别名',
`menuType` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单类型(0左侧当行菜单,1页面中功能)',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 263 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '菜单表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

85
yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/sysmenu/CyfSysMenuRest.java

@ -88,6 +88,31 @@ public class CyfSysMenuRest {
List<SysMenuTreeVo> list = sysMenuService.listAllVoFor(query);
return rb.success().setData(list);
}
// @ApiOperation("根据资源sid查询所有数据列表 ")
// @PostMapping("/sourcemenutree")
// public ResultBean<List<Map<String, Object>>> sourcemenutree(@RequestBody SysMenuQuery query) {
// ResultBean<List<Map<String, Object>>> rb = ResultBean.fireFail();
// SysMenuRoleQuery orgRoleMenuQuery = new SysMenuRoleQuery();
// List<Map<String, Object>> list = new ArrayList<>();
// if (null == query)
// return rb.setData(list);
//
// //if业务角色存在,则查询业务角色的菜单列表,否则查询平台角色的菜单列表
// List<SysUserRoleVo> userRole = sysUserRoleService.selectByUserSid(query.getUserSid());
// List<String> roleSids = userRole.stream().map(s -> s.getRoleSid()).collect(Collectors.toList());
// for (String roleSid : roleSids) {
// Integer type = sysRoleService.fetchBySid(roleSid).getType();
// if (type == 1){
// orgRoleMenuQuery.setIsAdmin("1");
// }else {
// orgRoleMenuQuery.setIsAdmin("0");
// }
// }
// orgRoleMenuQuery.setRoleSids(roleSids);
// orgRoleMenuQuery.setSourceSid(query.getSourceSid());
// list = sysMenuRoleService.getSourceMenuTreeOfRoles(orgRoleMenuQuery, null);
// return rb.success().setData(list);
// }
@ApiOperation("根据资源sid查询所有数据列表 ")
@PostMapping("/sourcemenutree")
public ResultBean<List<Map<String, Object>>> sourcemenutree(@RequestBody SysMenuQuery query) {
@ -100,20 +125,42 @@ public class CyfSysMenuRest {
//if业务角色存在,则查询业务角色的菜单列表,否则查询平台角色的菜单列表
List<SysUserRoleVo> userRole = sysUserRoleService.selectByUserSid(query.getUserSid());
List<String> roleSids = userRole.stream().map(s -> s.getRoleSid()).collect(Collectors.toList());
for (String roleSid : roleSids) {
Integer type = sysRoleService.fetchBySid(roleSid).getType();
if (type == 1){
orgRoleMenuQuery.setIsAdmin("1");
}else {
orgRoleMenuQuery.setIsAdmin("0");
}
}
// for (String roleSid : roleSids) {
// Integer type = sysRoleService.fetchBySid(roleSid).getType();
// if (type == 1){
// orgRoleMenuQuery.setIsAdmin("1");
// }else {
// orgRoleMenuQuery.setIsAdmin("0");
// }
// }
orgRoleMenuQuery.setRoleSids(roleSids);
orgRoleMenuQuery.setSourceSid(query.getSourceSid());
//orgRoleMenuQuery.setSourceSid(query.getSourceSid());
list = sysMenuRoleService.getSourceMenuTreeOfRoles(orgRoleMenuQuery, null);
return rb.success().setData(list);
}
// @ApiOperation("根据角色sid条件查询所有数据列表")
// @PostMapping("/listAllByRoleSid")
// public ResultBean<List<SysMenuVo>> listAllByRoleSid(@RequestBody SysMenuQuery query) {
// ResultBean rb = ResultBean.fireFail();
// String roleSid = query.getRoleSid();
// if (StringUtils.isBlank(roleSid)) {
// ResultBean<List<SysMenuVo>> resultBean = new ResultBean<List<SysMenuVo>>();
// return resultBean.fail().setMessage("角色sid不能为空!");
// }
// List<SysSourceVo> sysSourceVos = sysSourceService.listVo();
// List<SysMenuVo> list = new ArrayList<>();
// for (SysSourceVo s : sysSourceVos) {
// SysMenuVo sysMenuVo = new SysMenuVo();
// sysMenuVo.setName(s.getSourceName());
// sysMenuVo.setSid(s.getSid());
// sysMenuVo.setChecked("1");
// query.setSourceSid(s.getSid());
// sysMenuVo.setChildren(sysMenuService.listAllByRoleSid(query));
// list.add(sysMenuVo);
// }
// return rb.success().setData(list);
// }
@ApiOperation("根据角色sid条件查询所有数据列表")
@PostMapping("/listAllByRoleSid")
public ResultBean<List<SysMenuVo>> listAllByRoleSid(@RequestBody SysMenuQuery query) {
@ -123,20 +170,18 @@ public class CyfSysMenuRest {
ResultBean<List<SysMenuVo>> resultBean = new ResultBean<List<SysMenuVo>>();
return resultBean.fail().setMessage("角色sid不能为空!");
}
List<SysSourceVo> sysSourceVos = sysSourceService.listVo();
List<SysMenuVo> list = new ArrayList<>();
for (SysSourceVo s : sysSourceVos) {
SysMenuVo sysMenuVo = new SysMenuVo();
sysMenuVo.setName(s.getSourceName());
sysMenuVo.setSid(s.getSid());
sysMenuVo.setChecked("1");
query.setSourceSid(s.getSid());
sysMenuVo.setChildren(sysMenuService.listAllByRoleSid(query));
list.add(sysMenuVo);
}
// for (SysSourceVo s : sysSourceVos) {
// SysMenuVo sysMenuVo = new SysMenuVo();
// sysMenuVo.setName(s.getSourceName());
// sysMenuVo.setSid(s.getSid());
// sysMenuVo.setChecked("1");
// query.setSourceSid(s.getSid());
list=sysMenuService.listAllByRoleSid(query);
//list.add(sysMenuVo);
// }
return rb.success().setData(list);
}
@ApiOperation("所有数据列表")
@GetMapping("/list")
public ResultBean<List<SysMenuVo>> list() {

12
yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/sysuser/CyfSysUserMapper.xml

@ -110,14 +110,20 @@
${ew.sqlSegment}
</where>
</select>
<!-- <select id="selectByUserName" resultType="com.yxt.supervise.cyf.api.sysuser.SysUser">-->
<!-- SELECT su.*-->
<!-- FROM sys_user su-->
<!-- left join sys_staffinfo si on si.sid = su.staffSid-->
<!-- where su.userName = #{param1}-->
<!-- and su.isDelete = 0-->
<!-- and su.userType = 1-->
<!-- and si.personTypeKey != '01'-->
<!-- </select>-->
<select id="selectByUserName" resultType="com.yxt.supervise.cyf.api.sysuser.SysUser">
SELECT su.*
FROM sys_user su
left join sys_staffinfo si on si.sid = su.staffSid
where su.userName = #{param1}
and su.isDelete = 0
and su.userType = 1
and si.personTypeKey != '01'
</select>
<select id="selectByUserNameApp" resultType="com.yxt.supervise.cyf.api.sysuser.SysUser">
SELECT su.*

48
yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/sysuser/CyfSysUserRest.java

@ -62,10 +62,10 @@ public class CyfSysUserRest {
@ApiOperation("登录")
@PostMapping("/doLogin")
public ResultBean doLogin(@RequestBody SysUser user) {
ResultBean rb =new ResultBean();
SysUserVo sysUserVo=sysUserService.getUser(user.getUserName(), user.getPassword());
if(sysUserVo.getUserName().equals("1")){
SysUser sysUser=sysUserService.getSysUser(user.getUserName(), user.getPassword());
ResultBean rb = new ResultBean();
SysUserVo sysUserVo = sysUserService.getUser(user.getUserName(), user.getPassword());
if (sysUserVo.getUserName().equals("1")) {
SysUser sysUser = sysUserService.getSysUser(user.getUserName(), user.getPassword());
StpUtil.login(sysUser.getId());
SaTokenInfo tokenInfo = StpUtil.getTokenInfo();
System.out.println(StpUtil.getTokenName());
@ -80,22 +80,25 @@ public class CyfSysUserRest {
/**
* 注销
*
* @return
*/
@ApiOperation("退出登录")
@RequestMapping("/signOut")
public ResultBean logout() {
ResultBean rb =new ResultBean();
ResultBean rb = new ResultBean();
StpUtil.logout();
return rb.setMsg("退出成功");
}
@ApiOperation("根据id查询用户和角色信息")
@GetMapping("/getUserById/{id}")
public ResultBean getUserById(@PathVariable String id) {
ResultBean rb=new ResultBean();
SysUserVo sysUser=sysUserService.getUserById(id);
public ResultBean getUserById(@PathVariable String id) {
ResultBean rb = new ResultBean();
SysUserVo sysUser = sysUserService.getUserById(id);
return rb.success().setData(sysUser);
}
@ApiOperation("根据条件分页查询数据的列表 ")
@PostMapping("/listPage")
public ResultBean<PagerVo<SysUserVo>> listPage(@RequestBody PagerQuery<SysUserQuery> pq) {
@ -505,6 +508,24 @@ public class CyfSysUserRest {
return rb.success().setData(vo);
}
// @PostMapping(value = "/loginDetails", headers = "token")
// @ApiOperation("根据token值获取登录后的用户信息")
// public ResultBean<SysUserVo> loginDetails(HttpServletRequest httpServletRequest) {
// String token = httpServletRequest.getHeader("token");
// if (StringUtils.isBlank(token)) {
// return new ResultBean<SysUserVo>().fail().setMsg("请重新登录");
// }
// String userName = redisUtil.get(token);
// if (StringUtils.isBlank(userName)) {
// return new ResultBean<SysUserVo>().fail().setMsg("请重新登录");
// }
// SysUser user = sysUserService.selectByUserName(userName);
// SysUserVo userInfoOneVo = sysUserService.selectUserOne(user);
// if (userInfoOneVo == null) {
// return new ResultBean<SysUserVo>().fail().setMsg("该用户不是公司员工");
// }
// return new ResultBean<SysUserVo>().success().setData(userInfoOneVo);
// }
@PostMapping(value = "/loginDetails", headers = "token")
@ApiOperation("根据token值获取登录后的用户信息")
public ResultBean<SysUserVo> loginDetails(HttpServletRequest httpServletRequest) {
@ -512,12 +533,13 @@ public class CyfSysUserRest {
if (StringUtils.isBlank(token)) {
return new ResultBean<SysUserVo>().fail().setMsg("请重新登录");
}
String userName = redisUtil.get(token);
if (StringUtils.isBlank(userName)) {
String id = StpUtil.getLoginIdAsString();
SysUser sysUser=sysUserService.getUserByUserId(id);
if (StringUtils.isBlank(sysUser.getUserName())) {
return new ResultBean<SysUserVo>().fail().setMsg("请重新登录");
}
SysUser user = sysUserService.selectByUserName(userName);
SysUserVo userInfoOneVo = sysUserService.selectUserOne(user);
SysUser user = sysUserService.selectByUserName(sysUser.getUserName());
SysUserVo userInfoOneVo = sysUserService.selectUsersOne(user);
if (userInfoOneVo == null) {
return new ResultBean<SysUserVo>().fail().setMsg("该用户不是公司员工");
}
@ -558,7 +580,7 @@ public class CyfSysUserRest {
@GetMapping("/selectUserInfoByUserSid/{userSid}/{orgSid}")
public ResultBean<SysUserInfoVo> selectUserInfoByUserSid(String userSid, String orgSid) {
ResultBean<SysUserInfoVo> rb = ResultBean.fireFail();
SysUserInfoVo sysUserInfoVo = sysUserService.selectUserInfoByUserSid(userSid,orgSid);
SysUserInfoVo sysUserInfoVo = sysUserService.selectUserInfoByUserSid(userSid, orgSid);
if (sysUserInfoVo == null) {
return rb.setData(new SysUserInfoVo()).setMsg("该用户未设置所属部门");
}

108
yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/sysuser/CyfSysUserService.java

@ -412,7 +412,112 @@ public class CyfSysUserService extends MybatisBaseService<CyfSysUserMapper, SysU
userInfoOneVo.setOrgList(orgList);
return userInfoOneVo;
}
public SysUserVo selectUsersOne(SysUser user) {
// 根据用户信息查询用户的角色信息
SysUserVo userInfoOneVo = new SysUserVo();
userInfoOneVo.setToken(user.getToken());
userInfoOneVo.setId(user.getId());
userInfoOneVo.setSid(user.getSid());
userInfoOneVo.setUserName(user.getUserName());
userInfoOneVo.setIsAdmin(user.getIsAdmin());
//类型为员工的组织机构信息
// SysStaffOrg sysStaffOrg = sysStaffOrgService.selectAllByStaffSid(user.getStaffSid()).getData();
// if (sysStaffOrg == null) {
// return null;
// }
userInfoOneVo.setRoleName("");
String dwjb = "";
userInfoOneVo.setName("系统管理员");
userInfoOneVo.setMobile("");
userInfoOneVo.setStaffSid("");
userInfoOneVo.setOrganizationName("无单位");
userInfoOneVo.setDepartmentName("无部门");
// 系统管理员(没有对应的人员和单位)
//是否是管理员:1管理员,2一般用户,0是超级管理员,3尚无单位人员
// if ("0".equals(user.getIsAdmin())) {
// userInfoOneVo.setName("系统管理员");
// userInfoOneVo.setMobile("");
// userInfoOneVo.setStaffSid("");
// userInfoOneVo.setOrganizationName("无单位");
// userInfoOneVo.setDepartmentName("无部门");
// } else {
// // 获取人员姓名
// SysStaffinfo staffVo = sysStaffinfoService.fetchBySid(user.getStaffSid());
// if (null != staffVo) {
// userInfoOneVo.setName(staffVo.getName());
// userInfoOneVo.setMobile(staffVo.getMobile());
// userInfoOneVo.setStaffSid(staffVo.getSid());
//// userInfoOneVo.setOrgNamePath(sysStaffOrg.getOrgNamePath());
//// userInfoOneVo.setOrgSidPath(sysStaffOrg.getOrgSidPath());
//
// }
// // 尚无单位人员,没有单位和部门信息
// if ("3".equals(user.getIsAdmin())) {
// userInfoOneVo.setOrganizationName("无单位");
// userInfoOneVo.setDepartmentName("无部门");
// } else {
// userInfoOneVo.setOrganizationName("无单位");
// userInfoOneVo.setDepartmentName("无部门");
// List<SysStaffOrgVo> orgVoList = sysStaffOrgService.getSysStaffOrgListByStaff(user.getStaffSid());
// SysStaffPostDetailsVo staffPostDetailsVo = sysStaffPostService.getPostByStaffSid(user.getStaffSid());
// userInfoOneVo.setPostSid(staffPostDetailsVo.getPostSid());
// userInfoOneVo.setPostName(staffPostDetailsVo.getName());
// if (orgVoList.size() > 0) {
// //类型为员工的组织机构信息
// SysStaffOrgVo sysStaffOrgVo = orgVoList.get(0);
// userInfoOneVo.setDepartmentName(sysStaffOrgVo.getOrgName());
// userInfoOneVo.setDepartmentSid(sysStaffOrgVo.getOrgSid());
// SysOrganization sysOrganizationOne = sysOrganizationService.fetchBySid(sysStaffOrgVo.getOrgSid());
// if (sysOrganizationOne != null) {
// String psid = sysOrganizationOne.getPsid();
// String name = sysOrganizationService.fetchBySid(psid).getName();
// userInfoOneVo.setPNameAndDepartmentNameAndPostName(name + "-" + sysStaffOrgVo.getOrgName());
// }
// userInfoOneVo.setOrganizationSid(sysStaffOrgVo.getOrgSid());
// userInfoOneVo.setOrganizationName(sysStaffOrgVo.getOrgName());
// userInfoOneVo.setOrgNamePath(sysStaffOrg.getOrgNamePath());
// userInfoOneVo.setOrgSidPath(sysStaffOrg.getOrgSidPath());
// //根据orgSidPath查询分公司sid=====
// userInfoOneVo.setDefaultOrgPath(sysStaffOrg.getOrgSidPath());
// userInfoOneVo.setDefaultOrgPathName(sysStaffOrg.getOrgNamePath());
// /* String orgSid = sysStaffOrgService.getOrgByOrgSid(sysStaffOrgVo.getOrgSid());
// SysOrganization sysOrganization = sysOrganizationService.fetchBySid(orgSid);
// if (sysOrganization != null) {
// userInfoOneVo.setDefaultOrgPathName(sysOrganization.getName());
// userInfoOneVo.setDefaultOrgPath(sysOrganization.getSid());
// } else {
// userInfoOneVo.setDefaultOrgPathName("暂无组织机构");
// }*/
// }
// }
// }
// 设置用户的角色sids
List<String> roleSids = this.getUserRoleSids(user.getSid());
userInfoOneVo.setRoleSids(roleSids);
String roleName = sysRoleService.selectByUserSid(user.getSid());
userInfoOneVo.setRoleName(roleName);
// List<SysStaffOrgVo> sysStaffOrgVos = sysStaffOrgService.selectByStaffS(user.getStaffSid());
List<OrgList> orgList = new ArrayList<>();
// if (sysStaffOrgVos.size() > 0) {
// for (SysStaffOrgVo vv : sysStaffOrgVos) {
// OrgList orgList1 = new OrgList();
// /*String orgSid = sysStaffOrgService.getOrgByOrgSid(vv.getOrgSid());
// SysOrganization sysOrganization = sysOrganizationService.fetchBySid(orgSid);
// if (sysOrganization != null) {
// orgList1.setOrgName(sysOrganization.getName());
// orgList1.setOrgPath(sysOrganization.getSid());
// } else {
// continue;
// }*/
// orgList1.setOrgPath(vv.getOrgSidPath());
// orgList1.setOrgName(vv.getOrgNamePath());
// orgList.add(orgList1);
// }
// }
userInfoOneVo.setOrgList(orgList);
return userInfoOneVo;
}
/**
* 手机端登录后设置token
*
@ -1129,4 +1234,7 @@ public class CyfSysUserService extends MybatisBaseService<CyfSysUserMapper, SysU
public List<String> getPost(String staffSid) {
return sysStaffPostService.getPost(staffSid);
}
public SysUser getUserByUserId(String id){
return baseMapper.selectOne(new QueryWrapper<SysUser>().eq("id",id));
}
}

2
yxt-supervise-cyf/yxt-supervise-cyf-ui/.env.development

@ -9,5 +9,5 @@ VUE_APP_BASE_API = '/api'
# VUE_APP_URL = "http://192.168.1.105:7101"
VUE_APP_URL = "http://192.168.1.107:7101"
VUE_APP_URL = "http://192.168.1.193:7101"
##VUE_APP_URL = "http://8.130.39.13:8112"

10
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/system/Role/role.js

@ -1,6 +1,6 @@
import request from '@/utils/request'
import qs from 'qs'
const tokens = window.sessionStorage.getItem('token')
const tokens = window.sessionStorage.getItem('tokenValue')
//
export function rolemenus(data) {
return request({
@ -14,7 +14,7 @@ export function rolemenus(data) {
export function getrolemenus(data) {
return request({
baseURL: '/api',
url: '/portal/v1/sysmenu/sourcemenutree',
url: '/cyf/sysmenu/sourcemenutree',
method: 'POST',
async: false,
// data: {userSid: data.userSid, sourceSid: '000011'},
@ -36,12 +36,12 @@ export function sourcesofrole(data) {
// 根据token值获取登录后的用户信息
export function loginDetails(data) {
return request({
baseURL: '/api',
url: '/portal/v1/sysuser/loginDetails',
url: '/cyf/sysuser/loginDetails',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
'Content-Type': 'application/json',
'token': tokens
}
})
}

84
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/system/functional/functional.js

@ -0,0 +1,84 @@
import request from '@/utils/request'
import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY'
let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function pageList(data) {
return request({
url: '/cyf/sysfunction/listAllVoForSource',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
//新增
export function savePost(data) {
return request({
url: '/cyf/sysfunction/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
//模块名称
export function sourceList(data) {
return request({
url: '/cyf/syssource/listAll',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 删除
export function delOrgroles(data) {
return request({
url: '/cyf/sysfunction/delBySids/'+ data.sid,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 修改
export function getSingleData(data){
return request({
url: '/cyf/sysfunction/fetchBySid/'+data.id,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
export function putOrgroles(data){
return request({
url: '/cyf/sysfunction/update/' +data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 功能是否可用状态
export function IsEnable(data){
return request({
url: '/cyf/sysfunction/updateIsEnable/' +data.sid+'/'+data.isEnable,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}

123
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/system/menu/index.js

@ -0,0 +1,123 @@
import request from '@/utils/request'
import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMDI3MDA3fQ.9bEgBzFW2g1CUT7s5VXxhNCa10cyU_WTCFeqpQje0iY'
let tokens = window.sessionStorage.getItem('token');
// //获取菜单 分页列表
// export function pageList(data) {
// return request({
// url: '/cyf/sysmenu/listAllVoForSource',
// method: 'POST',
// data: data,
// headers: {
// 'Content-Type': 'application/json',
// 'token': tokens
// }
// })
// }
//获取菜单 分页列表
export function pageList(data) {
return request({
url: '/cyf/sysmenu/listAllVoFor',
method: 'POST',
data: data,
headers: {
'Content-Type': 'application/json',
'token': tokens
}
})
}
// 新增保存 菜单信息
export function saveMenusInfo(data) {
return request({
url: '/cyf/sysmenu/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
// 修改保存 菜单信息
export function putMenusInfo(data) {
return request({
url: '/cyf/sysmenu/update/' + data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
//根据sid 删除单个 资源信息
export function delMenus(data) {
return request({
url: '/cyf/sysmenu/delBySids/' + data.sid,
method: 'get',
data: qs.stringify(data),
headers: {
'Content-Type': 'application/json',
'token': tokens
}
})
}
// 修改状态
export function IsEnable(data) {
return request({
url: '/cyf/sysmenu/updateIsEnable/' + data.sid + '/' + data.isEnable,
method: 'POST',
/* data: qs.stringify(data),*/
headers: {
'Content-Type': 'application/json',
'token': tokens
}
})
}
// 获取菜单 不分页列表
export function roleList(data) {
return request({
url: '/system/v1/menus/list',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
//获取菜单 分页列表
export function menusPageList(data) {
return request({
url: '/system/v1/menus/pagelist',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
//获取菜单 树形分页列表
export function menusTreelist(data) {
return request({
url: '/system/v1/menus/treelist',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
//根据sid 获取单个菜单 信息
export function getRoleInfo(data) {
return request({
url: '/system/v1/menus/' + data.sid,
method: 'GET',
data: qs.stringify(data)
})
}

78
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/system/postManage/index.js

@ -0,0 +1,78 @@
import request from '@/utils/request'
import qs from 'qs'
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjMwMTE1MjUwfQ.gtn_mVsbwH6ztl835rWmIY4DxeNmRe_TOt-Q0TdldIE'
let tokens = window.sessionStorage.getItem('token');
//获取菜单 分页列表
export function pageList(data) {
return request({
url: '/cyf/syspost/listPage',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 查询部门列表
export function orgList(data){
return request({
url: '/cyf/sysorganization/list',
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 新增
export function savePost(data){
return request({
url: '/cyf/syspost/save',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 修改
export function putOrgroles(data){
return request({
url: '/cyf/syspost/update/' +data.sid,
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 删除
export function delOrgroles(data){
return request({
url: '/cyf/syspost/delBySids/' + data.sids,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
export function pullDown(data){
return request({
url: '/cyf/dictcommon/typeValues',
method: 'get',
params: data
})
}
// 查询岗位列表
export function selectList(data){
return request({
url: '/cyf/syspost/selectList',
method: 'get',
params: data
})
}

150
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/api/system/userManage/index.js

@ -0,0 +1,150 @@
import request from '@/utils/request'
import qs from 'qs'
// 用户列表
//let tokens = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI2IiwiaXNzIjoiV0JLIiwiZXhwIjoxNjI5OTQxNjI1fQ.aOFOz0h7c8YQs-ti2GLpqeWu4AE9mifx_043hLJQf8g'
let tokens = window.sessionStorage.getItem('token');
export function userList(data){
return request({
url: '/cyf/sys/listPage',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 新增
export function userAdd(data){
return request({
url: '/cyf/sys/save',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 更新
export function userUpdata(data){
return request({
url: '/cyf/sys/update/' +data.sid,
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 删除
export function delUser(data){
return request({
url: '/cyf/sys/delBySid/' +data.sid,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 初始化密码
export function initPwd(data){
return request({
url: '/cyf/sys/initPwd/' +data.sid,
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 根据sid查询一条信息
export function userSingle(data){
return request({
url: '/cyf/sys/fetchBySid/' +data.sid,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 单条用户的角色列表
export function setRole(data){
return request({
url: '/cyf/sysrole/listAllByUserSid/' +data.sid,
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 角色列表
export function saveOrgRole(data){
return request({
url: '/cyf/sysuserrole/update',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 查询角色列表
export function roleList(data){
return request({
url: '/cyf/sysrole/listAll',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 查询部门列表
export function orgList(data){
return request({
url: '/cyf/sysorganization/list',
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 查询岗位列表
export function postList(data){
return request({
url: '/cyf/syspost/fetchByOrgSid/'+data.sid,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 获取验证码
export function getCode(data){
return request({
url: '/cyf/sys/sendMessageCode/'+data.phone,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
})
}
// 设置是否可用:isEnable:1可用,0不可用
export function setRoleEnable(data) {
return request({
url: '/cyf/sys/setIsEnable/' + data.sid + '/' + data.isEnable,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}

289
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/components/VehicleConfigurationSub/vehicleconfiguration.vue

@ -1,55 +1,89 @@
<template>
<div class="app-container">
<div class="listconadd">
<div class="">
<el-form ref="dataForm" :model="formobj" class="formaddcopy02">
<!-- <div class="headtitle"><span>系列{{ formobj.productLineValue }}<span style="margin-left: 20px">驱动{{ formobj.driveFormValue }}<span style="margin-left: 20px">功能{{ formobj.vehicleTypeValue }}<span style="margin-left: 20px">马力{{ formobj.powerValue }}</span></span></span></span></div>-->
<div class="headtitle_con">
<div class="headtitle">
{{ formobj.vehicleAlias }}
<div class="headtitle_jia">销售指导价:<span>{{ guidedPrice }} 万元</span></div>
<div class="headtitle_jia">
销售指导价:<span>{{ guidedPrice }} 万元</span>
</div>
<div class="icon_sty" @click="changeDown(false)" v-show="isDown">
<i class="el-icon-arrow-down"/>
<i class="el-icon-arrow-down" />
<span>展开</span>
</div>
<div class="icon_sty" @click="changeUp(true)" v-show="!isDown">
<i class="el-icon-arrow-up"/>
<i class="el-icon-arrow-up" />
<span>收起</span>
</div>
</div>
<el-row>
<el-col :span="5">
<div class="span-sty"><span>品牌</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.brandName }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.brandName
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>功能</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.vehicleTypeValue }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.vehicleTypeValue
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>系列</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.productLineValue }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.productLineValue
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>驱动</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.driveFormValue }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.driveFormValue
}}</span></el-form-item
>
</el-col>
<el-col :span="4">
<div class="span-sty"><span>马力</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.powerValue }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.powerValue
}}</span></el-form-item
>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<div class="span-sty"><span>版本</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.vehicleVersionValue }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.vehicleVersionValue
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>燃料</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.fuelTypeValue }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.fuelTypeValue
}}</span></el-form-item
>
</el-col>
<el-col :span="14">
<div class="span-sty"><span>变速箱</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.gearboxTypeValue }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.gearboxTypeValue
}}</span></el-form-item
>
</el-col>
</el-row>
</div>
@ -58,124 +92,230 @@
<el-row>
<el-col :span="5">
<div class="span-sty"><span>排放标准</span></div>
<el-form-item><span class="addinputInfo addinputwTwo">{{ formobj.emissionStandardValue }}</span>
<el-form-item
><span class="addinputInfo addinputwTwo">{{
formobj.emissionStandardValue
}}</span>
</el-form-item>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>发动机型号</span></div>
<el-form-item><span class="addinputInfo addinputwTwo">{{ formobj.engineTypeValue }}</span></el-form-item>
<el-form-item
><span class="addinputInfo addinputwTwo">{{
formobj.engineTypeValue
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>细分市场</span></div>
<el-form-item><span class="addinputInfo addinputwTwo">{{ formobj.marketSegmentsValue }}</span>
<el-form-item
><span class="addinputInfo addinputwTwo">{{
formobj.marketSegmentsValue
}}</span>
</el-form-item>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>规格型号</span></div>
<el-form-item><span class="addinputInfo addinputwTwo">{{ formobj.specifications }}</span></el-form-item>
<el-form-item
><span class="addinputInfo addinputwTwo">{{
formobj.specifications
}}</span></el-form-item
>
</el-col>
<el-col :span="4">
<div class="span-sty"><span>系别</span></div>
<el-form-item><span class="addinputInfo addinputwTwo">{{ formobj.departmentValue }}</span></el-form-item>
<el-form-item
><span class="addinputInfo addinputwTwo">{{
formobj.departmentValue
}}</span></el-form-item
>
</el-col>
</el-row>
<div class="headline">常用配置</div>
<el-row>
<el-col :span="5">
<div class="span-sty"><span>后桥</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.rearAxleValue }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.rearAxleValue
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>速比</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.rearAxleRatio }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.rearAxleRatio
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>轴距</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.wheelbase }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.wheelbase
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>悬架</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.suspension }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.suspension
}}</span></el-form-item
>
</el-col>
<el-col :span="4">
<div class="span-sty"><span>鞍座</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.saddle }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.saddle
}}</span></el-form-item
>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<div class="span-sty"><span>颜色</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.carColor }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.carColor
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>驾驶室</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.specification }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.specification
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>保险杠</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.bumper }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.bumper
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>燃料箱</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.fuelTank }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.fuelTank
}}</span></el-form-item
>
</el-col>
<el-col :span="4">
<div class="span-sty"><span>导流罩</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.baffleModel }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.baffleModel
}}</span></el-form-item
>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<div class="span-sty"><span>独立热源</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.independentSources }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.independentSources
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>缓速器</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.slowMachine }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.slowMachine
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>护轮罩</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.tireCover }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.tireCover
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>后视镜</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.rearViewMirror }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.rearViewMirror
}}</span></el-form-item
>
</el-col>
<el-col :span="4">
<div class="span-sty"><span>轮胎</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.tireSize }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.tireSize
}}</span></el-form-item
>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<div class="span-sty"><span>轮毂材质</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.hubMaterial }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.hubMaterial
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>空调</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.airConditioner }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.airConditioner
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>座椅</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.seat }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.seat
}}</span></el-form-item
>
</el-col>
<el-col :span="5">
<div class="span-sty"><span>多媒体</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.multimedia }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.multimedia
}}</span></el-form-item
>
</el-col>
<el-col :span="4">
<div class="span-sty"><span>配置包</span></div>
<el-form-item><span class="addinputInfo">{{ formobj.configuringBao }}</span></el-form-item>
<el-form-item
><span class="addinputInfo">{{
formobj.configuringBao
}}</span></el-form-item
>
</el-col>
</el-row>
<div class="headline">
更多配置
<div class="icon_sty" @click="changeDownOtherConfig(false)" v-show="isDownOther">
<i class="el-icon-arrow-down"/>
<div
class="icon_sty"
@click="changeDownOtherConfig(false)"
v-show="isDownOther"
>
<i class="el-icon-arrow-down" />
<span>展开</span>
</div>
<div class="icon_sty" @click="changeUpOtherConfig(true)" v-show="!isDownOther">
<i class="el-icon-arrow-up"/>
<div
class="icon_sty"
@click="changeUpOtherConfig(true)"
v-show="!isDownOther"
>
<i class="el-icon-arrow-up" />
<span>收起</span>
</div>
</div>
@ -191,78 +331,78 @@
</template>
<script>
import { selectExiCarConfig } from '@/api/vehicleModel/vehicleconfiguration.js'
import { selectExiCarConfig } from "@/api/vehicleModel/vehicleconfiguration.js";
export default {
name: 'chexingpeizhibiaozhun',
name: "chexingpeizhibiaozhun",
props: {
params: {
type: Object
}
type: Object,
},
},
data() {
return {
FormLoading: false,
priceValidity: '',
guidedPrice: '',
priceValidity: "",
guidedPrice: "",
formobj: {},
isDown: true,
isDownOther: true,
sid_list: {
modelSid: '',
configSid: '',
vehModelConfigSid: '',
userSid: window.sessionStorage.getItem('userSid')
}
}
modelSid: "",
configSid: "",
vehModelConfigSid: "",
userSid: window.sessionStorage.getItem("userSid"),
},
};
},
watch: {
params: {
deep: true,
immediate: false,
handler(newVal, oldVal) {
if (newVal.configSid !== '' && newVal.modelSid !== '') {
this.guidedPrice = newVal.guidedPrice
if (newVal.configSid !== "" && newVal.modelSid !== "") {
this.guidedPrice = newVal.guidedPrice;
selectExiCarConfig({
modelSid: newVal.modelSid,
configSid: newVal.configSid,
vehModelConfigSid: newVal.vehModelConfigSid
vehModelConfigSid: newVal.vehModelConfigSid,
}).then((response) => {
this.FormLoading = false
this.FormLoading = false;
if (response.success) {
this.formobj = response.data
this.formobj = response.data;
} else {
this.$message({
showClose: true,
message: '查看失败!',
type: 'error'
})
message: "查看失败!",
type: "error",
});
}
})
});
} else {
this.formobj = {}
this.guidedPrice = ''
this.formobj = {};
this.guidedPrice = "";
}
}
}
},
},
},
methods: {
//
changeDown(val) {
this.isDown = val
this.isDown = val;
},
changeUp(val) {
this.isDown = val
this.isDown = val;
},
//
changeDownOtherConfig(val) {
this.isDownOther = val
this.isDownOther = val;
},
changeUpOtherConfig(val) {
this.isDownOther = val
}
}
}
this.isDownOther = val;
},
},
};
</script>
<style scoped>
/* 标题头部的样式 */
@ -321,7 +461,8 @@ export default {
align-items: center;
}
.formaddcopy02 .headtitle_con .headtitle .icon_sty .el-icon-arrow-down, .el-icon-arrow-up {
.formaddcopy02 .headtitle_con .headtitle .icon_sty .el-icon-arrow-down,
.el-icon-arrow-up {
font-size: 14px;
text-align: center;
}

1018
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/layout/components/Sidebar/index.vue

File diff suppressed because it is too large

218
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/router/index.js

@ -62,23 +62,23 @@ export const constantRoutes = [{
}
},
{
path: '/business/rawMaterialProcure',
component: () =>
import('@/views/business/rawMaterialProcure/index.vue'),
name: 'index',
meta: {
title: '原料进销管理'
}
},
{
path: '/business/packagProcure',
component: () =>
import('@/views/business/packagProcure/index.vue'),
name: 'index',
meta: {
title: '包装物进销管理'
}
},
path: '/business/rawMaterialProcure',
component: () =>
import('@/views/business/rawMaterialProcure/index.vue'),
name: 'index',
meta: {
title: '原料进销管理'
}
},
{
path: '/business/packagProcure',
component: () =>
import('@/views/business/packagProcure/index.vue'),
name: 'index',
meta: {
title: '包装物进销管理'
}
},
]
},
@ -312,14 +312,6 @@ export const constantRoutes = [{
title: '库存管理'
},
children: [{
path: '/inventory/oilTankInfo',
component: () =>
import('@/views/inventory/oilTankInfo/index.vue'),
name: 'index',
meta: {
title: '油罐库存信息'
}
}, {
path: '/inventory/oilTankList',
component: () =>
import('@/views/inventory/oilTankList/index.vue'),
@ -345,14 +337,22 @@ export const constantRoutes = [{
title: '原油出库记录'
}
},
{
path: '/inventory/oilTankInfo',
component: () =>
import('@/views/inventory/oilTankInfo/index.vue'),
name: 'index',
meta: {
title: '油罐库存记录'
}
},
{
path: '/inventory/rawMaterialInBoundList',
component: () =>
import('@/views/inventory/rawMaterialInBoundList/index.vue'),
name: 'index',
meta: {
title: '原料入库登记'
title: '原料入库记'
}
},
{
@ -361,7 +361,7 @@ export const constantRoutes = [{
import('@/views/inventory/rawMaterialOutBoundList/index.vue'),
name: 'index',
meta: {
title: '原料出库记'
title: '原料出库记'
}
},
{
@ -370,7 +370,7 @@ export const constantRoutes = [{
import('@/views/inventory/rawMaterialInventoryList/index.vue'),
name: 'index',
meta: {
title: '原料盘库记'
title: '原料盘库记'
}
},
{
@ -379,7 +379,7 @@ export const constantRoutes = [{
import('@/views/inventory/packagInBoundList/index.vue'),
name: 'index',
meta: {
title: '包装物入库记'
title: '包装物入库记'
}
},
{
@ -388,7 +388,7 @@ export const constantRoutes = [{
import('@/views/inventory/packagOutBoundList/index.vue'),
name: 'index',
meta: {
title: '包装物出库记'
title: '包装物出库记'
}
},
{
@ -397,7 +397,7 @@ export const constantRoutes = [{
import('@/views/inventory/packagInventoryList/index.vue'),
name: 'index',
meta: {
title: '包装物盘库记'
title: '包装物盘库记'
}
},
{
@ -437,21 +437,153 @@ export const constantRoutes = [{
}
},
]
},
{
path: '/organizationManage',
}, , {
path: '/system',
component: Layout,
redirect: '/organizationManage',
redirect: null,
meta: {
title: '系统设置'
},
children: [{
path: '/organizationManage',
component: () =>
import('@/views/organizationManage/organizationManage.vue'),
name: 'organizationManage',
meta: {
title: '组织管理'
path: '/system/organizationManage',
component: () =>
import('@/views/system/organizationManage/organizationManage.vue'),
name: 'organizationManage',
meta: {
title: '组织管理'
}
},
{
path: '/system/userManage',
component: () =>
import('@/views/system/userManage/userManage.vue'),
name: 'userManage',
meta: {
title: '用户管理'
}
},
{
path: '/system/RoleAdminister',
component: () =>
import('@/views/system/RoleAdminister/RoleAdminister.vue'),
name: 'RoleAdminister',
meta: {
title: '角色管理'
}
},
{
path: '/system/postManage',
component: () =>
import('@/views/system/postManage/postManage.vue'),
name: 'postManage',
meta: {
title: '岗位管理'
}
},
{
path: '/system/menuManage',
component: () => import('@/views/system/menuManage/menuManage.vue'),
name: 'menuManage',
meta: {
title: '菜单管理'
}
}
}]
]
},
// {
// path: '/userManage',
// component: Layout,
// redirect: '/userManage',
// children: [{
// path: '/userManage',
// component: () =>
// import('@/views/userManage/userManage.vue'),
// name: 'userManage',
// meta: {
// title: '用户管理'
// }
// }]
// }, {
// path: '/RoleAdminister',
// component: Layout,
// redirect: '/RoleAdminister',
// children: [{
// path: '/RoleAdminister',
// component: () =>
// import('@/views/RoleAdminister/RoleAdminister.vue'),
// name: 'RoleAdminister',
// meta: {
// title: '角色管理'
// }
// }]
// }, {
// path: '/postManage',
// component: Layout,
// redirect: '/postManage',
// children: [{
// path: '/postManage',
// component: () =>
// import('@/views/postManage/postManage.vue'),
// name: 'postManage',
// meta: {
// title: '岗位管理'
// }
// }]
// }, {
// path: '/functional',
// component: Layout,
// redirect: '/functional',
// children: [{
// path: '/functional',
// component: () =>
// import('@/views/functional/functional.vue'),
// name: 'functional',
// meta: {
// title: '功能管理'
// }
// }]
// }, {
// path: '/sourceManage',
// component: Layout,
// redirect: '/sourceManage',
// children: [{
// path: '/sourceManage',
// component: () =>
// import('@/views/sourceManage/sourceManage.vue'),
// name: 'sourceManage',
// meta: {
// title: '资源管理'
// }
// }]
// }, {
// path: '/menuManage',
// component: Layout,
// redirect: '/menuManage',
// children: [{
// path: '/menuManage',
// component: () => import('@/views/menuManage/menuManage.vue'),
// name: 'menuManage',
// meta: {
// title: '菜单管理'
// }
// }]
// },
// {
// path: '/organizationManage',
// component: Layout,
// redirect: '/organizationManage',
// children: [{
// path: '/organizationManage',
// component: () =>
// import('@/views/organizationManage/organizationManage.vue'),
// name: 'organizationManage',
// meta: {
// title: '组织管理'
// }
// }]
// },
// {
// path: 'rawMaterialType',

660
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/organizationManage/organizationManage.vue

@ -1,660 +0,0 @@
<template>
<div class="container" style="display: flex;">
<div class="org-tree">
<el-tree :data="treedata" node-key="sid" :props="props" :default-expanded-keys="['fd6435f2-0005-11ec-a033-48452053aa33']" @node-click="handleNodeClick">
<span class="custom-tree-node" slot-scope="{ node, data }" @mouseenter="mouseenter(data)" @mouseleave="mouseleave(data)" @click.stop.native>
<span>{{ node.label || $store.getters.userInfo.Orgname }}</span>
<span v-show="data.del" class="handle">
<el-tooltip class="item" effect="dark" content="新增" placement="top-start">
<el-button type="text" size="mini" @click.stop="() => append(data)" icon="el-icon-circle-plus-outline">
</el-button>
</el-tooltip>
<!-- <el-tooltip v-show="data.sid" class="item" effect="dark" content="修改" placement="top-start">-->
<!-- <el-button type="text" size="mini" @click.stop="() => deit(data)" icon="el-icon-edit">-->
<!-- </el-button>-->
<!-- </el-tooltip>-->
<!-- <el-tooltip v-show="data.sid" class="item" effect="dark" content="删除" placement="top-start">-->
<!-- <el-button type="text" size="mini" @click.stop="() => remove(data)" icon="el-icon-delete">-->
<!-- </el-button>-->
<!-- </el-tooltip>-->
</span>
</span>
</el-tree>
</div>
<el-dialog title="编辑节点" :visible.sync="dialogVisible" width="50%" class="edit">
<table class="e-table" cellspacing="0">
<tr>
<td>组织名称</td>
<td>
<el-input v-model="form.name" style="width:300px"></el-input>
</td>
<td>组织编码</td>
<td>
<el-input v-model="form.orgCode" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>主管人员</td>
<td>
<el-select v-model="form.zgStaffSid" style="width:300px" filterable>
<el-option v-for="item in staffdata" :key="item.sid" :label="item.name" :value="item.sid"/>
</el-select>
</td>
<td>分管人员</td>
<td>
<el-select v-model="fgStaffSid" style="width:300px" filterable multiple>
<el-option v-for="item in staffdata2" :key="item.sid" :label="item.name" :value="item.sid"/>
</el-select>
</td>
</tr>
<tr>
<td>组织简称</td>
<td :colspan="3">
<el-input v-model="form.orgAbbre" style="width: 30%"></el-input>
</td>
</tr>
<tr>
<td>管理层级</td>
<td>
<el-select v-model="form.orgLevelValue" style="width:300px" placeholder="请选择" filterable @change="changeOrgLevel">
<el-option v-for="item in orgLevel_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</td>
<td>其他编码</td>
<td>
<el-input v-model="form.otherCode" style="width:300px" placeholder="与财务中客户编码相同"></el-input>
</td>
</tr>
<tr>
<td>组织地址</td>
<td>
<el-input v-model="form.addrs" style="width:300px"></el-input>
</td>
<td>组织属性</td>
<td>
<el-select v-model="form.orgAttributeValue" placeholder="请选择" filterable @change="changeOrgAttribute">
<el-option v-for="item in orgAttribute_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</td>
</tr>
<tr>
<td>组织联系人</td>
<td>
<el-input v-model="form.linkPerson" style="width:300px"></el-input>
</td>
<td>联系电话</td>
<td>
<el-input v-model="form.linkPhone" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>是否独立法人</td>
<td>
<el-radio v-model="form.isDept" :label="0"></el-radio>
<el-radio v-model="form.isDept" :label="1"></el-radio>
</td>
<td>排序号</td>
<td>
<el-input v-model="form.sort" style="width:300px"></el-input>
</td>
</tr>
</table>
<div slot="footer" class="text-center">
<el-button type="primary" @click="nodeSave()"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</div>
</el-dialog>
<div class="org-table" v-show="isshow == 'table'">
<div class="tab-header">
<el-form ref="form" :inline="true" :model="form" label-width="80px">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="组织名称">
<el-input v-model="page.params.name" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="onSearch()">查询</el-button>
<el-button @click="resetSearch()">重置</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- table -->
<el-table :data="tableData" default-expand-all border style="width: 100%;">
<el-table-column label="操作" align="center" width="160px">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="editRow(scope.row)">
编辑
</el-button>
<el-button type="danger" size="mini" @click.native.prevent="remove(scope.row)">
删除
</el-button>
</template>
</el-table-column>
<el-table-column prop="name" label="组织名称" align="center"></el-table-column>
<el-table-column prop="orgCode" label="组织编码" align="center"></el-table-column>
<!-- <el-table-column prop="zgNames" label="主管" align="center"></el-table-column>-->
<el-table-column prop="fgNames" label="分管" align="center"></el-table-column>
<!--<el-table-column prop="contactMan" label="联系人" align="center" width="100px"></el-table-column>-->
<el-table-column prop="linkPhone" label="联系人手机号" width="110" align="center">
</el-table-column>
<el-table-column prop="addrs" label="地址" align="center">
</el-table-column>
<el-table-column prop="sort" label="排序" align="center" width="50px">
</el-table-column>
<el-table-column prop="qrText" label="二维码" align="center" width="80px">
<template slot-scope="scope">
<el-button @click.native.prevent="lookRow(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination :total="page.total" :page.sync="page.current" :limit.sync="page.size" @pagination="pagination"/>
</div>
<div class="org-table" v-show="isshow == 'ewm'">
<div class="tab-header">
<el-form ref="form" :inline="true" :model="form" label-width="80px">
<el-row :gutter="20">
<el-col :span="16">
<h4 style="margin: 0;line-height: 32px;">组织二维码</h4>
</el-col>
<el-col :span="8">
<el-form-item style="float: right;">
<el-button type="primary" @click="Printewm"> </el-button>
<el-button @click="isshow = 'table'"> </el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- center -->
<div class="ewm" style="display: flex;justify-content: center; align-items: center;" ref="print">
<img style="width: 200px; height: 200px;" :src="ewmForm.qrFilePath" alt="">
<ul style="list-style:none; line-height: 32px; font-size: 16px;">
<li><label>组织名称: </label><span>{{ ewmForm.departmentName }}</span></li>
</ul>
</div>
</div>
<!-- 新增编辑页面 -->
<div class="org-table" v-show="isshow == 'edit'">
<div class="tab-header">
<el-form ref="form" :inline="true" :model="form" label-width="80px">
<el-row :gutter="20">
<el-col :span="16">
<h4 style="margin: 0;line-height: 32px;"> {{ dialogTitle }}组织信息</h4>
</el-col>
<el-col :span="8">
<el-form-item style="float: right;">
<el-button type="primary" @click="save()"> </el-button>
<el-button @click="isshow = 'table'"> </el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- center -->
<div class="ediut">
<table class="e-table" cellspacing="0">
<tr>
<td>组织名称</td>
<td>
<el-input v-model="form.name" style="width:300px"></el-input>
</td>
<td>组织编码</td>
<td>
<el-input v-model="form.orgCode" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>主管人员</td>
<td>
<el-select v-model="form.zgStaffSid" style="width:300px" filterable>
<el-option v-for="item in staffdata" :key="item.sid" :label="item.name" :value="item.sid"/>
</el-select>
</td>
<td>分管人员</td>
<td>
<el-select v-model="fgStaffSid" style="width:300px" filterable multiple>
<el-option v-for="item in staffdata2" :key="item.sid" :label="item.name" :value="item.sid"/>
</el-select>
</td>
</tr>
<tr>
<td>组织简称</td>
<td :colspan="3">
<el-input v-model="form.orgAbbre" style="width: 300px"></el-input>
</td>
</tr>
<tr>
<td>管理层级</td>
<td>
<el-select v-model="form.orgLevelValue" style="width:300px" placeholder="请选择" filterable @change="changeOrgLevel">
<el-option v-for="item in orgLevel_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</td>
<td>其他编码</td>
<td>
<el-input v-model="form.otherCode" style="width:300px" placeholder="与财务中客户编码相同"></el-input>
</td>
</tr>
<tr>
<td>组织地址</td>
<td>
<el-input v-model="form.addrs" style="width:300px"></el-input>
</td>
<td>组织属性</td>
<td>
<el-select v-model="form.orgAttributeValue" placeholder="请选择" filterable @change="changeOrgAttribute">
<el-option v-for="item in orgAttribute_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</td>
</tr>
<tr>
<td>组织联系人</td>
<td>
<el-input v-model="form.linkPerson" style="width:300px"></el-input>
</td>
<td>联系电话</td>
<td>
<el-input v-model="form.linkPhone" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>是否独立法人</td>
<td>
<el-radio v-model="form.isDept" :label="0"></el-radio>
<el-radio v-model="form.isDept" :label="1"></el-radio>
</td>
<td>排序号</td>
<td>
<el-input v-model="form.sort" style="width:300px"></el-input>
</td>
</tr>
</table>
</div>
</div>
<!-- <Position v-if="mapDialog" :address.sync="form.addrs" :maker-position.sync="form.jwd"
:dialog-visible.sync="mapDialog"/>-->
</div>
</template>
<script>
import {
addOrgTree,
delOrgtree,
getQrCode, getStaff,
getStaffName,
orgList,
pageList,
postOrgtree,
putOrgtree,
selectBySid
} from '@/api/system/departments/departments.js'
import { typeValues } from '@/api/system/roleAdminister/index'
import Position from '@/components/amap/amap.vue'
export default {
components: { Position },
data() {
return {
dialogVisible: false,
mapDialog: false,
dialogTitle: '',
props: {
label: 'name',
children: 'children'
},
nodeForm: {
sid: '',
name: '',
sortNo: ''
},
ewmForm: {
qrFilePath: '',
organizationName: '',
departmentName: '',
address: ''
},
orgAttribute_list: [],
orgLevel_list: [],
form: {
sid: '',
name: '',
orgCode: '',
/* jwd: '',*/
addrs: '',
zgStaffSid: '',
zgStaffName: '',
fgStaffSid: '',
fgStaffName: '',
linkPerson: '',
linkPhone: '',
sort: '',
isDept: '',
orgAbbre: '',
orgAttributeValue: '',
orgAttributeKey: '',
orgLevelValue: '',
orgLevelKey: '',
otherCode: ''
},
fgStaffSid: [],
formBackup: Object.assign({}, this.form),
isshow: 'table',
page: {
total: 0, //
current: 1, //
size: 10, //
params: {
name: '',
organizationSid: '',
psid: ''
}
},
tableData: [],
treedata: [],
staffdata: [],
staffdata2: [],
rules: {}
}
},
mounted() {
this.getOrgTree()
this.init()
},
methods: {
init() {
typeValues({ type: 'orgAttribute' }).then((res) => {
if (res.success) {
this.orgAttribute_list = res.data
}
})
typeValues({ type: 'orgLevel' }).then((res) => {
if (res.success) {
this.orgLevel_list = res.data
}
})
},
changeOrgLevel(value) {
let bb = null
this.orgLevel_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
value: e.dictValue,
key: e.dictKey
}
}
})
this.form.orgLevelValue = bb.value
this.form.orgLevelKey = bb.key
},
changeOrgAttribute(value) {
let bb = null
this.orgAttribute_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
this.form.orgAttributeKey = bb.key
},
pagination(val) { //
this.page.current = val.pageNum
this.page.size = val.pageSize
this.getPageList(this.page)
},
handleNodeClick(data) {
this.isshow = 'table'
this.page.params.organizationSid = this.$store.getters.userInfo.orgSid
this.page.params.psid = data.sid || 0
this.getPageList(this.page)
},
getPageList(data) { //
pageList(data).then(res => {
console.log('返回子级:',res)
this.tableData = res.data.records
this.page.total = res.data.total
})
},
getOrgTree() { //
orgList({}).then(res => {
this.treedata = res.data
})
},
save() {
if (this.fgStaffSid.length > 0) {
this.form.fgStaffSid = this.fgStaffSid.join()
} else {
this.form.fgStaffName = ''
this.form.fgStaffSid = ''
}
this.form.organizationSid = this.$store.getters.userInfo.orgSid
// this.form.dlxx = typeof(this.form.dlxx) == 'string' ? this.form.dlxx : this.form.dlxx.join()
if (this.form.sid) {
// console.log(this.form)
putOrgtree(this.form).then(res => {
if (res.success) {
this.isshow = 'table'
this.getOrgTree()
this.handleNodeClick({ sid: this.form.psid })
this.$message({
message: res.msg,
type: 'success'
})
}
})
} else {
addOrgTree(this.form).then(res => {
if (res.success) {
this.isshow = 'table'
this.getOrgTree()
this.handleNodeClick({ sid: this.form.psid })
this.$message({
message: res.msg,
type: 'success'
})
}
})
}
},
append(data) {
console.log(123456789, data)
this.dialogTitle = '新增'
this.isshow = 'edit'
this.fgStaffSid = []
this.form = Object.assign({}, this.formBackup)
this.form.psid = data.sid || 0
this.form.organizationSid = this.$store.getters.userInfo.orgSid
this.form.address = data.orgAddress || data.address
this.form.dlxx = data.gisInfo || data.dlxx
this.getStaff(data.sid)
this.getStaff2(data.sid)
},
editRow(row) {
this.getStaff(row.sid)
this.getStaff2(row.sid)
this.dialogTitle = '编辑'
this.isshow = 'edit'
this.fgStaffSid = []
selectBySid(row.sid).then((response) => {
if (response.success) {
this.form = response.data
this.form.fgStaffName = response.data.fgNames
this.form.fgStaffSid = response.data.fgStaffSid
if (this.form.fgStaffSid) {
this.fgStaffSid = response.data.fgStaffSid.split(',')
}
this.form.zgStaffName = response.data.zgNames
this.form.zgStaffSid = response.data.zgStaffSid
console.log('编辑回显的数据', this.form)
}
})
},
deit(data) { //
this.getStaff(data.sid)
this.getStaff2(data.sid)
console.log(data, 8888)
this.dialogVisible = true
this.form.sid = data.sid
// this.form.psid = null
this.form.name = data.name
this.form.orgCode = data.orgCode
/* this.form.jwd = data.jwd*/
this.form.addrs = data.addrs
this.form.linkPerson = data.linkPerson
this.form.linkPhone = data.linkPhone
this.form.sort = data.sort
this.form.zgStaffSid = data.zgSids
this.form.fgStaffSid = data.fgSids.split(',')
},
nodeSave() { //
console.log('这是保存nodeSave(0')
this.form.fgStaffSid = this.form.fgStaffSid.join()
postOrgtree(this.form).then(res => {
this.getOrgTree()
this.dialogVisible = false
this.$message({
message: res.msg,
type: 'success'
})
})
},
remove(data) {
this.$confirm('确定要删除该组织吗, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delOrgtree({ sid: data.sid }).then(res => {
this.getOrgTree()
this.handleNodeClick({ sid: data.psid })
this.$message({
message: res.msg,
type: 'success'
})
})
})
},
lookRow(row) { //
this.isshow = 'ewm'
getQrCode({ sid: row.sid }).then(res => {
this.ewmForm = res.data
})
},
Printewm() {
this.$print(this.$refs.print) // 使
},
mouseenter(data) {
this.$set(data, 'del', true)
},
mouseleave(data) {
this.$set(data, 'del', false)
},
onSearch() {
this.getPageList(this.page)
},
resetSearch() {
this.page.params.name = ''
this.getPageList(this.page)
},
//
getStaff(orgSid) {
getStaff({ deptSid: orgSid }).then((res) => {
if (res.success) {
this.staffdata = res.data
}
})
},
//
getStaff2(orgSid) {
getStaffName({ deptSid: orgSid }).then(res => {
this.staffdata2 = res.data
console.log('分管人员', this.staffdata2)
})
}
}
}
</script>
<style>
.el-icon-arrow-right:before {
content: '\e6e0';
color: #727272;
}
</style>
<style scoped="scoped" lang="scss">
.org-tree {
width: 240px;
min-height: 100%;
box-sizing: border-box;
/*padding-right: 10px;*/
border: 1px solid #edf1f7;
overflow: scroll;
}
.org-table {
flex: 1;
// padding-left: 10px;
margin: 0 10px;
border: 1px solid #edf1f7;
min-height: 100%;
overflow-y: scroll;
.ewm {
margin: 30px auto 0;
width: 560px;
}
.ediut {
margin: 30px auto 0;
/*width:750px;*/
}
}
.custom-tree-node {
position: relative;
overflow: hidden;
width: 100%;
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
padding-right: 8px;
}
.handle {
position: absolute;
right: 0;
.el-button--text {
font-size: 15px;
background-color: #FFFFFF;
}
}
.my-tabs {
margin-top: 10px;
}
.edit {
.el-form-item__label {
width: 100px !important;
display: inline-block !important;
}
.el-input {
width: 70%;
}
}
.td_left {
border-left: 0 solid #e6e9f0;
}
</style>

853
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/RoleAdminister/RoleAdminister.vue

@ -0,0 +1,853 @@
<template xmlns="">
<div>
<el-tabs class="my-tabs" v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="角色列表" name="roleList">
<div class="container">
<div class="tab-header">
<el-form ref="form" :inline="true" :model="search" label-width="80px">
<el-row :gutter="20">
<el-col :span="16">
<el-form-item label="角色名称">
<el-input v-model="search.name" clearable></el-input>
</el-form-item>
<el-button @click="getroleOrgList(1)">查询</el-button>
</el-col>
</el-row>
</el-form>
</div>
<!-- table -->
<el-table :data="roleTable" border style="width: 100%;">
<el-table-column label="序号" width="80px" type="index" align="center">
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<!-- <el-button @click="sourceMenus(scope.row)" type="primary" size="mini">资源授权</el-button> -->
<!-- <el-button @click="funMenus(scope.row)" type="primary" size="mini">功能授权</el-button> -->
<el-button @click="roleMenus(scope.row)" type="primary" size="mini">菜单授权</el-button>
<!-- <el-button @click="mobileMenus(scope.row)" type="primary" size="mini">移动端授权</el-button> -->
<el-button @click="editRow(scope.row)" type="primary" size="mini">修改</el-button>
<el-button @click="delRow(scope.row)" type="danger" size="mini">删除</el-button>
</template>
</el-table-column>
<el-table-column prop="name" label="角色名称" width="220px" align="center">
</el-table-column>
<!-- <el-table-column prop="postName" label="角色岗位" width="220px" align="center">
</el-table-column>
<el-table-column prop="roleTypeValue" label="组织层级" width="200px" align="center">
</el-table-column> -->
<el-table-column prop="code" label="编码" align="center"/>
<el-table-column prop="remarks" label="备注" align="center">
</el-table-column>
<!-- <el-table-column prop="isEnableName" label="是否可用" align="center">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isEnable"
active-value='1'
inactive-value='0'
active-color="#13ce66"
inactive-color="#ff4949"
@change="enabledChange($event,scope.row)">
</el-switch>
</template>
</el-table-column> -->
</el-table>
<pagination :total="page.total" :page.sync="page.current" :limit.sync="page.size" @pagination="pagination"/>
<!-- 编辑角色信息 -->
<el-dialog :title="dialogTitle + '角色信息'" :visible.sync="editDialog" width="40%">
<table class="e-table" cellspacing="0">
<!-- <tr>
<td>岗位</td>
<td>
<el-select v-model="roleForm.postSid" filterable style="width:300px" @change="changePost">
<el-option
v-for="(item, i) in postSidData"
:key="i"
:label="item.name"
:value="item.sid">
</el-option>
</el-select>
</td>
</tr> -->
<tr>
<td>角色名称</td>
<td>
<el-input v-model="roleForm.name" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>编码</td>
<td>
<el-input v-model="roleForm.code" style="width:300px"></el-input>
</td>
</tr>
<!-- <tr>
<td>组织层级</td>
<td>
<el-select v-model="roleForm.roleTypeValue" style="width:300px" @change="changeOrgName">
<el-option
v-for="(item, i) in roleTypeValue_list"
:key="i"
:label="item.dictValue"
:value="item.dictValue">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td>排序</td>
<td>
<el-input v-model="roleForm.sort" style="width:300px"></el-input>
</td>
</tr> -->
<tr>
<td>备注</td>
<td>
<el-input type="textarea" :autosize="{ minRows: 4, maxRows: 6}" v-model="roleForm.remarks"></el-input>
</td>
</tr>
</table>
<div style="margin-top: 20px; text-align: center;">
<el-button type="primary" @click="save()"> </el-button>
<el-button @click="editDialog = false"> </el-button>
</div>
</el-dialog>
<!-- 资源授权 -->
<el-dialog title="资源授权" :visible.sync="sourceDialog" width="50%">
<table class="e-table" cellspacing="0">
<tr>
<td>角色名称</td>
<td>
<el-input v-model="roleForm.name" readonly></el-input>
</td>
</tr>
<tr>
<td>可操作资源列表</td>
<td>
<el-tree v-loading="loading" :data="treedata" ref="sourceTree" show-checkbox accordion node-key="sid"
:default-expand-all='true'
:default-checked-keys="checkedId" :props="sourcedefaultProps" @check-change="checkchange">
</el-tree>
</td>
</tr>
</table>
<div slot="footer" class="text-center">
<el-button type="primary" @click="sourceSave"> </el-button>
<el-button @click="sourceDialog = false"> </el-button>
</div>
</el-dialog>
<!-- 功能授权 -->
<el-dialog title="功能授权" :visible.sync="funDialog" width="50%">
<table class="e-table" cellspacing="0">
<tr>
<td>角色名称</td>
<td>
<el-input v-model="roleForm.name" readonly></el-input>
</td>
</tr>
<tr>
<td>可操作功能列表</td>
<td>
<el-tree v-loading="loading" :data="treedata" ref="funTree" show-checkbox accordion node-key="sid"
:default-expand-all='true'
:default-checked-keys="checkedId" :props="defaultProps" @check-change="checkchange">
</el-tree>
</td>
</tr>
</table>
<div slot="footer" class="text-center">
<el-button type="primary" @click="funSave"> </el-button>
<el-button @click="funDialog = false"> </el-button>
</div>
</el-dialog>
<!-- 菜单授权 -->
<el-dialog title="菜单授权" :visible.sync="roleDialog" width="50%">
<table class="e-table" cellspacing="0">
<tr>
<td>角色名称</td>
<td>
<el-input v-model="roleForm.name" readonly></el-input>
</td>
</tr>
<tr>
<td>可操作菜单列表</td>
<td>
<div style="height:230px;line-height:120px;overflow:auto;overflow-x:hidden;">
<el-tree v-loading="loading" :data="treedata" ref="Tree" show-checkbox accordion node-key="sid"
:default-expand-all='true'
:default-checked-keys="checkedId"
:props="defaultProps"
@check-change="checkchange">
</el-tree>
</div>
</td>
</tr>
</table>
<div slot="footer" class="text-center">
<el-button type="primary" @click="getCheckedKeys"> </el-button>
<el-button @click="roleDialog = false"> </el-button>
</div>
</el-dialog>
<el-dialog title="移动端授权" :visible.sync="mobileDialog" width="50%">
<table class="e-table" cellspacing="0">
<tr>
<td>角色名称</td>
<td>
<el-input v-model="roleForm.name" readonly></el-input>
</td>
</tr>
<tr>
<td>可操作菜单列表</td>
<td>
<div style="height:230px;line-height:120px;overflow:auto;overflow-x:hidden;">
<el-tree v-loading="loading" :data="treedata" ref="mobileTree" show-checkbox accordion node-key="sid"
:default-expand-all="true"
:default-checked-keys="checkedId"
:props="defaultProps"
@check-change="checkchange">
</el-tree>
</div>
</td>
</tr>
</table>
<div slot="footer" class="text-center">
<el-button type="primary" @click="getCheckedMobile"> </el-button>
<el-button @click="mobileDialog = false"> </el-button>
</div>
</el-dialog>
</div>
</el-tab-pane>
<!-- 新增角色 -->
<el-tab-pane label="新增角色" name="addrole">
<el-card class="box-card">
<table class="e-table" cellspacing="0">
<!-- <tr>
<td>岗位</td>
<td>
<el-select v-model="roleForm.postSid" filterable style="width:300px" @change="changePost">
<el-option v-for="(item, i) in postSidData" :key="i" :label="item.name" :value="item.sid"></el-option>
</el-select>
</td>
</tr> -->
<tr>
<td>角色名称</td>
<td>
<el-input v-model="roleForm.name" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>编码</td>
<td>
<el-input v-model="roleForm.code" style="width:300px"></el-input>
</td>
</tr>
<!-- <tr>
<td>组织层级</td>
<td>
<el-select v-model="roleForm.roleTypeValue" style="width:300px" @change="changeOrgName">
<el-option v-for="(item, i) in roleTypeValue_list" :key="i" :label="item.dictValue"
:value="item.dictValue"></el-option>
</el-select>
<el-input v-model="roleForm.roleTypeValue" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>排序</td>
<td>
<el-input v-model="roleForm.sort" style="width:300px"></el-input>
</td>
</tr> -->
<tr>
<td>备注</td>
<td>
<el-input type="textarea" :autosize="{ minRows: 4, maxRows: 6}" v-model="roleForm.remarks"></el-input>
</td>
</tr>
</table>
<div style="margin-top: 20px; text-align: center;">
<el-button type="primary" @click="save()"> </el-button>
</div>
</el-card>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import {
delOrgroles,
funMenuTree,
postList,
putOrgroles,
roleMenuTree,
roleOrgList,
getRoleMenuList,
saveRoleMenuList,
savefunMenu,
saveorgrolemenus,
saveOrgroles,
saveSource,
setRoleEnable,
sourceMenuTree,
typeValues
} from '@/api/system/roleAdminister/index.js'
export default {
data() {
return {
dialogTitle: '',
activeName: 'roleList',
roleForm: {
name: '',
code: '',
sort: '',
type: '2',
postSid: '',
remarks: '',
roleType:'',
roleTypeValue:''
},
formBackup: {},
search: {
name: ''
},
page: {
total: 0, //
current: 1, //
size: 10 //
},
roleTable: [],
postSidData: [],
roleTypeValue_list: [], //
editDialog: false,
//
loading: false,
defaultProps: {
children: 'children',
label: 'name'
},
checkedId: [], //
treedata: [], //
chace: [],
roleDialog: false,
Thisrow: {},
//
sourceDialog: false,
sourcetreedata: [],
sourcedefaultProps: {
children: 'children',
label: 'sourceName'
},
//
funDialog: false,
//
mobileDialog: false
};
},
mounted() {
this.formBackup = Object.assign({}, this.roleForm)
this.getroleOrgList()
this.getPostList()
this.getType()
},
methods: {
pagination(val) { //
this.page.current = val.pageNum
this.page.size = val.pageSize
this.getroleOrgList()
},
getPostList() {
postList().then((res) => {
if (res.code === '200') {
this.postSidData = res.data
}
})
},
getType() {
typeValues({
type: 'roleType'
}).then((res) => {
if (res.code === '200') {
this.roleTypeValue_list = res.data
console.log('下拉框请求组织层级', res.data)
}
})
},
//
getroleOrgList(flag) {
if (flag == '1') {
this.page.current = 1
}
let params = this.page
params.params = this.search
roleOrgList(params).then(res => {
this.page.total = res.data.total
this.roleTable = res.data.records
for (let i = 0; i < this.roleTable.length; i++) {
if (this.roleTable[i].isEnable == '1') {
this.roleTable[i].isEnableName = '是'
} else {
this.roleTable[i].isEnableName = '否'
}
}
})
},
changeOrgName(value) {
const choosetItem = this.roleTypeValue_list.filter((item) => item.dictValue === value)
this.roleForm.roleType = choosetItem[0].dictKey
console.log('组织层级',this.roleForm.roleType,this.roleForm.roleTypeValue)
},
changePost(value) {
const choosetItem = this.postSidData.filter((item) => item.sid === value)
this.roleForm.name = choosetItem[0].name
},
handleClick(tab, event) {
if (tab.name == 'addrole') {
this.dialogTitle = '新增'
this.roleForm = Object.assign({}, this.formBackup)
} else {
this.getroleOrgList()
}
},
editRow(row) {
this.dialogTitle = '编辑'
this.editDialog = true
this.roleForm = Object.assign({}, row)
},
delRow(row) {
this.$confirm('确定要删除该角色吗, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delOrgroles({
sid: row.sid
}).then(res => {
this.getroleOrgList()
this.$message({
type: 'success',
message: '删除成功!'
});
})
})
},
//
save() {
if (this.roleForm.sid) {
putOrgroles(this.roleForm).then(res => {
if (res.code == '200') {
this.getroleOrgList()
this.editDialog = false
this.$message({
message: res.msg,
type: 'success'
})
}
})
} else {
saveOrgroles(this.roleForm).then(res => {
if (res.code == '200') {
this.$message({
message: res.msg,
type: 'success'
})
this.activeName = "roleList"
this.getroleOrgList()
}
})
}
},
//
enabledChange(value, row) {
setRoleEnable({
sid: row.sid,
isEnable: value
}).then(res => {
this.$message({
type: 'success',
message: res.msg
});
})
},
sourceMenus(row) {
this.sourceDialog = true
this.checkedId = []
this.roleForm.name = row.name
this.Thisrow = row
this.loading = true
let params = {
roleSid: row.sid
}
sourceMenuTree(params).then(res => {
let data1 = res.data
for (let i = 0; i < data1.length; i++) {
if (data1[i].checked == 0) {
this.checkedId.push(data1[i].sid)
}
}
this.treedata = res.data
this.loading = false
})
},
funMenus(row) {
this.funDialog = true
this.checkedId = []
this.roleForm.name = row.name
this.Thisrow = row
this.loading = true
let params = {
roleSid: row.sid
}
funMenuTree(params).then(res => {
let data1 = res.data
for (let i = 0; i < data1.length; i++) {
if (data1[i].checked == 0) {
this.checkedId.push(data1[i].sid)
}
for (let j = 0; j < data1[i].children.length; j++) {
let data2 = data1[i].children
if (data2[j].checked == 0) {
this.checkedId.push(data2[j].sid)
}
for (let k = 0; k < data2[j].children.length; k++) {
let data3 = data2[j].children
if (data3[k].checked == 0) {
this.checkedId.push(data3[k].sid)
}
}
}
}
this.treedata = res.data
this.loading = false
})
},
//
roleMenus(row) {
this.roleDialog = true
this.checkedId = []
this.roleForm.name = row.name
this.Thisrow = row
this.loading = true
let params = {
roleSid: row.sid
}
roleMenuTree(params).then(res => {
let data1 = res.data
//
for (let i = 0; i < data1.length; i++) {
if (data1[i].children) {
// data2
let data2 = data1[i].children
for (let j = 0; j < data2.length; j++) {
//
if (data2[j].children) {
// data3
const data3 = data2[j].children
for (let k = 0; k < data3.length; k++) {
//
if (data3[k].children) {
const data4 = data3[k].children
for (let l = 0; l < data4.length; l++) {
if (data4[l].checked == 0) {
this.checkedId.push(data4[l].sid)
}
}
}
//
if (data3[k].children.length == 0 && data3[k].checked == 0) {
this.checkedId.push(data3[k].sid)
}
}
}
//
if (data2[j].children.length == 0 && data2[j].checked == 0) {
this.checkedId.push(data2[j].sid)
}
}
}
}
// for (let i = 0; i < data1.length; i++) {
// if (data1[i].checked == 0) {
// this.checkedId.push(data1[i].sid)
// }
// for (let j = 0; j < data1[i].children.length; j++) {
// let data2 = data1[i].children
// if (data2[j].checked == 0) {
// this.checkedId.push(data2[j].sid)
// }
// for (let k = 0; k < data2[j].children.length; k++) {
// let data3 = data2[j].children
// if (data3[k].checked == 0) {
// this.checkedId.push(data3[k].sid)
// }
// }
// }
// }
console.log('112233', this.checkedId)
this.treedata = res.data
this.getTreeParentNode(res.data, this.checkedId)
this.getTreeParentid(res.data)
this.loading = false
})
},
mobileMenus(row) {
this.mobileDialog = true
this.checkedId = []
this.roleForm.name = row.name
this.Thisrow = row
this.loading = true
getRoleMenuList(row.sid).then(res => {
let data1 = res.data
//
for (let i = 0; i < data1.length; i++) {
if (data1[i].children) {
// data2
let data2 = data1[i].children
for (let j = 0; j < data2.length; j++) {
//
if (data2[j].children) {
// data3
const data3 = data2[j].children
for (let k = 0; k < data3.length; k++) {
//
if (data3[k].children) {
const data4 = data3[k].children
for (let l = 0; l < data4.length; l++) {
if (data4[l].checked == 0) {
this.checkedId.push(data4[l].sid)
}
}
}
//
if (data3[k].children.length == 0 && data3[k].checked == 0) {
this.checkedId.push(data3[k].sid)
}
}
}
//
if (data2[j].children.length == 0 && data2[j].checked == 0) {
this.checkedId.push(data2[j].sid)
}
}
}
}
// for (let i = 0; i < data1.length; i++) {
// if (data1[i].checked == 0) {
// this.checkedId.push(data1[i].sid)
// }
// for (let j = 0; j < data1[i].children.length; j++) {
// let data2 = data1[i].children
// if (data2[j].checked == 0) {
// this.checkedId.push(data2[j].sid)
// }
// for (let k = 0; k < data2[j].children.length; k++) {
// let data3 = data2[j].children
// if (data3[k].checked == 0) {
// this.checkedId.push(data3[k].sid)
// }
// }
// }
// }
console.log('112233', this.checkedId)
this.treedata = res.data
this.getTreeParentNode(res.data, this.checkedId)
// this.getTreeParentid(res.data)
this.loading = false
})
},
mobileMenus(row) {
this.mobileDialog = true
this.checkedId = []
this.roleForm.name = row.name
this.Thisrow = row
this.loading = true
getRoleMenuList(row.sid).then(res => {
let data1 = res.data
//
for (let i = 0; i < data1.length; i++) {
if (data1[i].children) {
// data2
let data2 = data1[i].children
for (let j = 0; j < data2.length; j++) {
//
if (data2[j].children) {
// data3
const data3 = data2[j].children
for (let k = 0; k < data3.length; k++) {
//
if (data3[k].children) {
const data4 = data3[k].children
for (let l = 0; l < data4.length; l++) {
if (data4[l].checked == 0) {
this.checkedId.push(data4[l].sid)
}
}
}
//
if (data3[k].children.length == 0 && data3[k].checked == 0) {
this.checkedId.push(data3[k].sid)
}
}
}
//
if (data2[j].children.length == 0 && data2[j].checked == 0) {
this.checkedId.push(data2[j].sid)
}
}
}
}
// for (let i = 0; i < data1.length; i++) {
// if (data1[i].checked == 0) {
// this.checkedId.push(data1[i].sid)
// }
// for (let j = 0; j < data1[i].children.length; j++) {
// let data2 = data1[i].children
// if (data2[j].checked == 0) {
// this.checkedId.push(data2[j].sid)
// }
// for (let k = 0; k < data2[j].children.length; k++) {
// let data3 = data2[j].children
// if (data3[k].checked == 0) {
// this.checkedId.push(data3[k].sid)
// }
// }
// }
// }
console.log('112233', this.checkedId)
this.treedata = res.data
this.getTreeParentNode(res.data, this.checkedId)
// this.getTreeParentid(res.data)
this.loading = false
})
},
//
getTreeParentNode(menus, ids) {
for (var i = 0; i < menus.length; i++) {
if (menus[i].children && menus[i].children.length !== 0) {
this.getTreeParentNode(menus[i].children, ids)
} else if (menus[i].isCheck) {
ids.push(menus[i].sid)
}
}
},
// ID
getTreeParentid(menus) {
for (var i = 0; i < menus.length; i++) {
this.chace.push(menus[i].sid)
}
},
//
setHalfCheckedNodes(sid) {
const node = this.$refs['Tree'].getNode(sid)
console.log('11111', sid)
console.log('11111', node)
if (node) { // checkedtrue
node.indeterminate = true
}
},
//
sourceSave() {
let _this = this
let sourceMenus = this.$refs.sourceTree.getCheckedKeys()
let params = {
sorceSid: sourceMenus.toString(),
roleSid: _this.Thisrow.sid
}
saveSource(params).then(res => {
this.sourceDialog = false
this.$message({
message: res.msg,
type: 'success'
})
})
},
//
funSave() {
let _this = this
let funMenus = this.$refs.funTree.getCheckedKeys()
let params = {
functionSid: funMenus.toString(),
roleSid: _this.Thisrow.sid
}
savefunMenu(params).then(res => {
this.funDialog = false
this.$message({
message: res.msg,
type: 'success'
})
})
},
//
getCheckedKeys() {
let _this = this
let roleMenus = []
roleMenus = this.$refs.Tree.getCheckedNodes(false, true)
// roleMenus = this.$refs.Tree.getCheckedKeys()
console.log('已选节点、半选节点node', roleMenus)
const roleMenus_sid = []
for (var i = 0; i < roleMenus.length; i++) {
roleMenus_sid.push(roleMenus[i].sid)
}
console.log('已选节点、半选节点sid', roleMenus_sid)
// let parentTrue = this.$refs.Tree.getHalfCheckedKeys()
// for (let i = 0; i < parentTrue.length; i++) {
// for (let j = 0; j < this.chace.length; j++) {
// if (parentTrue[i] == this.chace[j]) {
// parentTrue.splice(i, 1);
// }
// }
// }
let params = {
menuSid: roleMenus_sid.toString(),
roleSid: _this.Thisrow.sid
}
saveorgrolemenus(params).then(res => {
this.roleDialog = false
this.$message({
message: res.msg,
type: 'success'
})
})
},
getCheckedMobile() {
let _this = this
let roleMenus = []
roleMenus = this.$refs.mobileTree.getCheckedNodes(false, true)
// roleMenus = this.$refs.Tree.getCheckedKeys()
console.log('已选节点、半选节点node', roleMenus)
const roleMenus_sid = []
for (var i = 0; i < roleMenus.length; i++) {
roleMenus_sid.push(roleMenus[i].sid)
}
console.log('已选节点、半选节点sid', roleMenus_sid)
// let parentTrue = this.$refs.Tree.getHalfCheckedKeys()
// for (let i = 0; i < parentTrue.length; i++) {
// for (let j = 0; j < this.chace.length; j++) {
// if (parentTrue[i] == this.chace[j]) {
// parentTrue.splice(i, 1);
// }
// }
// }
let params = {
menuSid: roleMenus_sid.toString(),
roleSid: _this.Thisrow.sid
}
saveRoleMenuList(params).then((res) => {
if (res.success) {
this.mobileDialog = false
this.$message({ showClose: true, message: res.msg, type: 'success' })
}
})
},
checkchange() {
}
}
};
</script>
<style scoped="scoped">
.my-tabs {
margin-top: 10px;
}
</style>

604
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/menuManage/menuManage.vue

@ -0,0 +1,604 @@
<template>
<el-tabs v-model="activeName" class="my-tabs" type="card" @tab-click="handleClick">
<el-tab-pane label="菜单列表" name="roleList">
<div class="content">
<!--<div class="tab-header">-->
<!-- <el-form :inline="true" :model="form" class="demo-form-inline">
<el-row :gutter="20">
<el-col :span="18">
<el-form-item label="菜单名称">
<el-input v-model="page.params.name" placeholder="菜单名称" clearable/>
</el-form-item>
<el-form-item label="资源名称">
&lt;!&ndash;<el-select v-model="page.sourceSid" @change="$forceUpdate()" :disabled="isadd">
<el-option
v-for="(item, i) in sourceNameData"
:key="i"
:label="item.sourceName"
:value="item.sid">
</el-option>
</el-select>&ndash;&gt;
<el-input v-model="page.params.sourceName" placeholder="资源名称" clearable/>
</el-form-item>
<el-button type="primary" @click="getPageList">查询</el-button>
</el-col>-->
<!-- <el-col :span="6">
<el-form-item style="float: right;">
<el-button type="primary" @click="getSorting">保存排序</el-button>
</el-form-item>
</el-col>-->
<!--</el-row>
</el-form>-->
<!-- </div>-->
<!-- table -->
<div class="table-describe clearfix">
<h4 style="color:#000;">菜单列表</h4>
</div>
<div class="listconadd">
<el-table ref="multipleTable" :data="tableData" border style="width: 100%; margin-bottom: 100px;" row-key="sid"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}">
<el-table-column prop="name" label="菜单名称" width="220" />
<el-table-column label="操作" width="260" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="add(scope.row)">
添加子菜单
</el-button>
<el-button v-if="scope.row.isSource == '0'" type="primary" size="mini" @click="editRow(scope.row)">
修改
</el-button>
<el-button v-if="scope.row.isSource == '0'" type="danger" size="mini"
@click.native.prevent="deleteRow(scope.row)">
删除
</el-button>
</template>
</el-table-column>
<!--<el-table-column prop="sourceName" label="资源名称" align="center"></el-table-column>-->
<!-- <el-table-column prop="sortNo" sortable label="排序" align="center" width="100">
<template slot-scope="scope">
<el-input v-model="scope.row.sortNo" size="mini"/>
</template>
</el-table-column>-->
<el-table-column prop="menuUrl" label="菜单路由" align="center" />
<el-table-column prop="pageUrl" label="前端页面路径" align="center" />
<el-table-column prop="pageName" label="前端页面名称" align="center" />
<!-- <el-table-column prop="isEnable" label="可见性" align="center">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isEnable"
active-color="#13ce66"
inactive-color="#ff4949"
active-value="1"
inactive-value="0"
@change="enabledChange(scope.row.isEnable,scope.row)"
/>
</template>
</el-table-column> -->
</el-table>
</div>
</div>
<!-- <pagination :total="page.total" :page.sync="page.current" :limit.sync="page.size" @pagination="pagination"/> -->
<!-- 编辑功能信息 -->
<el-dialog :title="dialogTitle + '菜单信息'" :visible.sync="editDialog" width="40%">
<table class="e-table" cellspacing="0">
<tr>
<td>上级菜单</td>
<td>
<el-input v-model="form.pname" :disabled="true" style="width:300px" />
</td>
</tr>
<!-- <tr>
<td>资源名称</td>
<td>
<el-select v-model="form.sourceSid" :disabled="isadd" @change="$forceUpdate()">
<el-option
v-for="(item, i) in sourceNameData"
:key="i"
:label="item.sourceName"
:value="item.sid"
/>
</el-select>
</td>
</tr> -->
<tr>
<td>菜单名称</td>
<td>
<el-input v-model="form.name" />
</td>
</tr>
<tr>
<td>菜单路由</td>
<td>
<el-input v-model="form.menuUrl" />
</td>
</tr>
<tr>
<td>菜单图片路径</td>
<td>
<el-input v-model="form.iconUrl" />
</td>
</tr>
<tr>
<td>前端页面名称</td>
<td>
<el-input v-model="form.pageName" />
</td>
</tr>
<tr>
<td>前端页面路径</td>
<td>
<el-input v-model="form.pageUrl" />
</td>
</tr>
<!-- <tr>
<td>是否可见</td>
<td>
<el-radio-group v-model="form.isShow">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</td>
</tr>
<tr>
<td>排序号</td>
<td>
<el-input v-model="form.sortNo"/>
</td>
</tr> -->
<tr>
<td>备注</td>
<td>
<el-input v-model="form.remarks" />
</td>
</tr>
</table>
<div style="margin-top: 20px; text-align: center;">
<el-button type="primary" @click="save()"> </el-button>
<el-button @click="editDialog = false"> </el-button>
</div>
</el-dialog>
</el-tab-pane>
<el-tab-pane label="新增菜单" name="addrole">
<!-- 添加 -->
<!--<el-dialog :title="dialogTitle + '菜单管理'" :visible.sync="editDialog" width="40%">-->
<table class="e-table" cellspacing="0">
<tr>
<td>上级菜单</td>
<td>
<el-input v-model="form.pname" :disabled="true" style="width:300px" />
</td>
</tr>
<!-- <tr>
<td>资源名称</td>
<td>
<el-select v-model="form.sourceSid" :disabled="isadd" @change="$forceUpdate()" style="width:300px">
<el-option
v-for="(item, i) in sourceNameData"
:key="i"
:label="item.sourceName"
:value="item.sid"
/>
</el-select>
</td>
</tr> -->
<tr>
<td>菜单名称</td>
<td>
<el-input v-model="form.name" style="width:300px" />
</td>
</tr>
<tr>
<td>菜单路由</td>
<td>
<el-input v-model="form.menuUrl" style="width:300px" />
</td>
</tr>
<tr>
<td>菜单图片路径</td>
<td>
<el-input v-model="form.iconUrl" style="width:300px" />
</td>
</tr>
<tr>
<td>前端页面名称</td>
<td>
<el-input v-model="form.pageName" style="width:300px" />
</td>
</tr>
<tr>
<td>前端页面路径</td>
<td>
<el-input v-model="form.pageUrl" style="width:300px" />
</td>
</tr>
<!-- <tr>
<td>是否可见</td>
<td>
<el-radio-group v-model="form.isShow">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</td>
</tr>
<tr>
<td>排序号</td>
<td>
<el-input v-model="form.sortNo" style="width:300px"/>
</td>
</tr> -->
<tr>
<td>备注</td>
<td>
<el-input v-model="form.remarks" style="width:300px" />
</td>
</tr>
</table>
<div style="margin-top: 20px; text-align: center;">
<el-button type="primary" @click="save()">保存</el-button>
</div>
</el-tab-pane>
</el-tabs>
</template>
<script>
import {
pageList,
menusTreelist,
saveMenusInfo,
putMenusInfo,
delMenus,
IsEnable
} from '@/api/system/menu/index.js'
import {
sourceList
} from '@/api/system/functional/functional.js'
export default {
data() {
return {
activeName: 'roleList',
editDialog: false,
dialogTitle: '',
checked: '',
form: {
psid: '',
pname: '顶级菜单',
name: "",
iconUrl: '',
menuUrl: '',
pageName: '',
pageUrl: '',
remarks: '',
},
formBackup: Object.assign({}, this.form),
tableData: [],
page: {
current: 1,
size: 10,
total: 0,
params: {
name: '',
psid: '',
sourceName: '',
sourceSid: ''
}
},
rank: '1',
sourceNameData: [], //
isadd: false
}
},
mounted() {
this.getPageList()
this.getsourceList()
// getsourceList().then(res => {
// this.sourceNameData = res.data
// })
},
methods: {
pagination(val) { //
this.page.current = val.pageNum
this.page.size = val.pageSize
this.getPageList()
},
resetSearch() { //
this.page.params = this.pageBackup
},
getPageList() { //
pageList(this.page).then((res) => {
console.log('这里是条件查询', this.page)
const treedata = res.data
console.log('菜单列表', res)
this.tableData = treedata
this.page.total = res.data.total
})
},
//
getsourceList() {
const params = {}
sourceList(params).then(res => {
this.sourceNameData = res.data
this.loading = false
})
},
handleClick(tab, event) {
if (tab.name == 'addrole') {
this.form = {
psid: '',
pname: '顶级菜单',
name: "",
iconUrl: '',
menuUrl: '',
pageName: '',
pageUrl: '',
remarks: '',
}
this.dialogTitle = '新增'
this.roleForm = Object.assign({}, this.formBackup)
} else {
this.getPageList()
}
},
add(row) {
this.activeName = 'addrole'
// if(row == 0){
// this.isadd = false
// }else{
// this.isadd = true
// }
// this.dialogTitle = ''
// this.editDialog = true
this.form = Object.assign({}, this.formBackup)
this.form.isShow = 1
// this.form.psid = row.sid || 0
this.form.pname = row.name || '顶级菜单'
this.form.sourceSid = row.sourceSid || ''
if (row.isSource == '1') {
this.form.psid = 0
} else {
this.form.psid = row.sid
}
},
editRow(row) {
this.dialogTitle = '编辑'
this.editDialog = true
this.form = Object.assign({}, row)
this.form.isShow = 1
this.form.pname = row.psid == '0' ? '顶级菜单' : row.pname
},
save() {
console.log('菜单列表', this.form)
if (this.form.sid) {
putMenusInfo(this.form).then(res => {
this.editDialog = false
this.getPageList(this.page)
this.$message({
message: res.msg,
type: 'success'
})
})
} else {
//
saveMenusInfo(this.form).then(res => {
this.activeName = 'roleList'
this.getPageList()
this.$message({
message: res.msg,
type: 'success'
})
})
}
this.form = {
psid: '',
pname: '顶级菜单',
name: "",
iconUrl: '',
menuUrl: '',
pageName: '',
pageUrl: '',
remarks: '',
}
},
deleteRow(row) {
this.$confirm('确定要删除该菜单吗, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delMenus({
sid: row.sid
}).then(res => {
this.getPageList(this.page)
this.$message({
type: 'success',
message: '删除成功!'
})
})
})
},
//
enabledChange(value, row) {
IsEnable({
sid: row.sid,
isEnable: value
}).then(res => {
this.$message({
type: 'success',
message: res.msg
})
})
},
//
getSorting() {
},
retname(sid) {
obj = this.sourceNameData.find((item) => {
return item.sid == sid //
})
return obj.name
}
}
}
</script>
<style>
.el-input__inner {
line-height: 32px;
height: 32px;
}
</style>
<style scoped="scoped" lang="scss">
.el-pagination.is-background .btn-next,
.el-pagination.is-background .btn-prev {
padding: 0 20px;
border: 1px solid #ccc;
border-radius: 2px;
background-color: #FFFFFF;
}
.el-icon-arrow-left:before,
.el-icon-arrow-right:before {
content: '下一页';
color: #727272;
}
.el-icon-arrow-left:before {
content: '上一页';
}
.content {
width: 100%;
padding-top: 10px;
font-size: 16px;
color: #fff;
box-sizing: border-box;
}
.shouye {
position: absolute;
top: -3px;
left: 100px;
font-size: 16px;
color: #0395d8;
font-weight: bold;
}
.placename {
position: absolute;
top: -3px;
left: 210px;
font-size: 16px;
color: #fff;
font-weight: bold;
}
.right_cont {
width: 100%;
height: 645px;
background-color: #fff;
margin: 0;
padding: 15px;
box-sizing: border-box;
}
.cont_head {
height: 40px;
width: 97%;
margin-left: 1.5%;
background-color: #f7f9fc;
overflow: hidden;
}
.cont_head p {
float: left;
color: #000;
line-height: 40px;
margin-left: 50px;
}
.cont_head input {
float: left;
height: 24px;
width: 147px;
margin-top: 6px;
border: 1px solid #e6e9f0;
border-radius: 5px;
-webkit-appearance: none;
outline: none;
}
.cont_head select {
float: left;
height: 28px;
width: 147px;
margin-top: 6px;
border: 1px solid #e6e9f0;
border-radius: 5px;
outline: none;
}
.chaxun {
height: 28px;
width: 85px;
line-height: 0px;
background-color: #018ad2;
margin-top: 6px;
text-align: center;
padding: 0;
float: right;
margin-right: 6px;
}
.tishi {
width: 80%;
margin: auto;
tr {
height: 50px;
}
td {
border: 1px solid #e6e9f0;
text-align: center;
}
td:first-child {
background-color: #f7f9fc;
}
input {
width: 80%;
height: 30px;
border: 1px solid #e6e9f0;
}
textarea {
width: 80%;
height: 100px;
border: 1px solid #e6e9f0;
margin-top: 10px;
margin-bottom: 6px;
}
select {
width: 80%;
height: 30px;
border: 1px solid #e6e9f0;
}
}
.my-tabs {
margin-top: 10px;
}
</style>

694
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/organizationManage/organizationManage.vue

@ -0,0 +1,694 @@
<template>
<div class="container" style="display: flex;">
<div class="org-tree">
<el-tree :data="treedata" node-key="sid" :props="props"
:default-expanded-keys="['fd6435f2-0005-11ec-a033-48452053aa33']" @node-click="handleNodeClick">
<span class="custom-tree-node" slot-scope="{ node, data }" @mouseenter="mouseenter(data)"
@mouseleave="mouseleave(data)" @click.stop.native>
<span>{{ node.label || $store.getters.userInfo.Orgname }}</span>
<span v-show="data.del" class="handle">
<el-tooltip class="item" effect="dark" content="新增" placement="top-start">
<el-button type="text" size="mini" @click.stop="() => append(data)" icon="el-icon-circle-plus-outline">
</el-button>
</el-tooltip>
<el-tooltip v-show="data.sid" class="item" effect="dark" content="修改" placement="top-start">
<el-button type="text" size="mini" @click.stop="() => deit(data)" icon="el-icon-edit">
</el-button>
</el-tooltip>
<el-tooltip v-show="data.sid" class="item" effect="dark" content="删除" placement="top-start">
<el-button type="text" size="mini" @click.stop="() => remove(data)" icon="el-icon-delete">
</el-button>
</el-tooltip>
</span>
</span>
</el-tree>
</div>
<el-dialog title="编辑节点" :visible.sync="dialogVisible" width="50%" class="edit">
<table class="e-table" cellspacing="0">
<tr>
<td>组织名称</td>
<td>
<el-input v-model="form.name" style="width:300px"></el-input>
</td>
<td>组织编码</td>
<td>
<el-input v-model="form.orgCode" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>主管人员</td>
<td>
<el-select v-model="form.zgStaffSid" style="width:300px" filterable>
<el-option v-for="item in staffdata" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
</td>
<td>分管人员</td>
<td>
<el-select v-model="fgStaffSid" style="width:300px" filterable multiple>
<el-option v-for="item in staffdata2" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
</td>
</tr>
<tr>
<td>组织简称</td>
<td :colspan="3">
<el-input v-model="form.orgAbbre" style="width: 30%"></el-input>
</td>
</tr>
<tr>
<td>管理层级</td>
<td>
<el-select v-model="form.orgLevelValue" style="width:300px" placeholder="请选择" filterable
@change="changeOrgLevel">
<el-option v-for="item in orgLevel_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictValue"></el-option>
</el-select>
</td>
<td>其他编码</td>
<td>
<el-input v-model="form.otherCode" style="width:300px" placeholder="与财务中客户编码相同"></el-input>
</td>
</tr>
<tr>
<td>组织地址</td>
<td>
<el-input v-model="form.addrs" style="width:300px"></el-input>
</td>
<td>组织属性</td>
<td>
<el-select v-model="form.orgAttributeValue" placeholder="请选择" filterable @change="changeOrgAttribute">
<el-option v-for="item in orgAttribute_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictValue"></el-option>
</el-select>
</td>
</tr>
<tr>
<td>组织联系人</td>
<td>
<el-input v-model="form.linkPerson" style="width:300px"></el-input>
</td>
<td>联系电话</td>
<td>
<el-input v-model="form.linkPhone" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>是否独立法人</td>
<td>
<el-radio v-model="form.isDept" :label="0"></el-radio>
<el-radio v-model="form.isDept" :label="1"></el-radio>
</td>
<td>排序号</td>
<td>
<el-input v-model="form.sort" style="width:300px"></el-input>
</td>
</tr>
</table>
<div slot="footer" class="text-center">
<el-button type="primary" @click="nodeSave()"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</div>
</el-dialog>
<div class="org-table" v-show="isshow == 'table'">
<div class="tab-header">
<el-form ref="form" :inline="true" :model="form" label-width="80px">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="组织名称">
<el-input v-model="page.params.name" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="onSearch()">查询</el-button>
<el-button @click="resetSearch()">重置</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- table -->
<el-table :data="tableData" default-expand-all border style="width: 100%;">
<el-table-column label="操作" align="center" width="160px">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="editRow(scope.row)">
编辑
</el-button>
<el-button type="danger" size="mini" @click.native.prevent="remove(scope.row)">
删除
</el-button>
</template>
</el-table-column>
<el-table-column prop="name" label="组织名称" align="center"></el-table-column>
<el-table-column prop="orgCode" label="组织编码" align="center"></el-table-column>
<!-- <el-table-column prop="zgNames" label="主管" align="center"></el-table-column>-->
<el-table-column prop="fgNames" label="分管" align="center"></el-table-column>
<!--<el-table-column prop="contactMan" label="联系人" align="center" width="100px"></el-table-column>-->
<el-table-column prop="linkPhone" label="联系人手机号" width="110" align="center">
</el-table-column>
<el-table-column prop="addrs" label="地址" align="center">
</el-table-column>
<el-table-column prop="sort" label="排序" align="center" width="50px">
</el-table-column>
<el-table-column prop="qrText" label="二维码" align="center" width="80px">
<template slot-scope="scope">
<el-button @click.native.prevent="lookRow(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination :total="page.total" :page.sync="page.current" :limit.sync="page.size" @pagination="pagination" />
</div>
<div class="org-table" v-show="isshow == 'ewm'">
<div class="tab-header">
<el-form ref="form" :inline="true" :model="form" label-width="80px">
<el-row :gutter="20">
<el-col :span="16">
<h4 style="margin: 0;line-height: 32px;">组织二维码</h4>
</el-col>
<el-col :span="8">
<el-form-item style="float: right;">
<el-button type="primary" @click="Printewm"> </el-button>
<el-button @click="isshow = 'table'"> </el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- center -->
<div class="ewm" style="display: flex;justify-content: center; align-items: center;" ref="print">
<img style="width: 200px; height: 200px;" :src="ewmForm.qrFilePath" alt="">
<ul style="list-style:none; line-height: 32px; font-size: 16px;">
<li><label>组织名称: </label><span>{{ ewmForm.departmentName }}</span></li>
</ul>
</div>
</div>
<!-- 新增编辑页面 -->
<div class="org-table" v-show="isshow == 'edit'">
<div class="tab-header">
<el-form ref="form" :inline="true" :model="form" label-width="80px">
<el-row :gutter="20">
<el-col :span="16">
<h4 style="margin: 0;line-height: 32px;"> {{ dialogTitle }}组织信息</h4>
</el-col>
<el-col :span="8">
<el-form-item style="float: right;">
<el-button type="primary" @click="save()"> </el-button>
<el-button @click="isshow = 'table'"> </el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- center -->
<div class="ediut">
<table class="e-table" cellspacing="0">
<tr>
<td>组织名称</td>
<td>
<el-input v-model="form.name" style="width:300px"></el-input>
</td>
<td>组织编码</td>
<td>
<el-input v-model="form.orgCode" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>主管人员</td>
<td>
<el-select v-model="form.zgStaffSid" style="width:300px" filterable>
<el-option v-for="item in staffdata" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
</td>
<td>分管人员</td>
<td>
<el-select v-model="fgStaffSid" style="width:300px" filterable multiple>
<el-option v-for="item in staffdata2" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
</td>
</tr>
<tr>
<td>组织简称</td>
<td :colspan="3">
<el-input v-model="form.orgAbbre" style="width: 300px"></el-input>
</td>
</tr>
<tr>
<td>管理层级</td>
<td>
<el-select v-model="form.orgLevelValue" style="width:300px" placeholder="请选择" filterable
@change="changeOrgLevel">
<el-option v-for="item in orgLevel_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictValue"></el-option>
</el-select>
</td>
<td>其他编码</td>
<td>
<el-input v-model="form.otherCode" style="width:300px" placeholder="与财务中客户编码相同"></el-input>
</td>
</tr>
<tr>
<td>组织地址</td>
<td>
<el-input v-model="form.addrs" style="width:300px"></el-input>
</td>
<td>组织属性</td>
<td>
<el-select v-model="form.orgAttributeValue" placeholder="请选择" filterable @change="changeOrgAttribute">
<el-option v-for="item in orgAttribute_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictValue"></el-option>
</el-select>
</td>
</tr>
<tr>
<td>组织联系人</td>
<td>
<el-input v-model="form.linkPerson" style="width:300px"></el-input>
</td>
<td>联系电话</td>
<td>
<el-input v-model="form.linkPhone" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>是否独立法人</td>
<td>
<el-radio v-model="form.isDept" :label="0"></el-radio>
<el-radio v-model="form.isDept" :label="1"></el-radio>
</td>
<td>排序号</td>
<td>
<el-input v-model="form.sort" style="width:300px"></el-input>
</td>
</tr>
</table>
</div>
</div>
<!-- <Position v-if="mapDialog" :address.sync="form.addrs" :maker-position.sync="form.jwd"
:dialog-visible.sync="mapDialog"/>-->
</div>
</template>
<script>
import {
addOrgTree,
delOrgtree,
getQrCode,
getStaff,
getStaffName,
orgList,
pageList,
postOrgtree,
putOrgtree,
selectBySid
} from '@/api/system/departments/departments.js'
import {
typeValues
} from '@/api/system/roleAdminister/index'
import Position from '@/components/amap/amap.vue'
export default {
components: {
Position
},
data() {
return {
dialogVisible: false,
mapDialog: false,
dialogTitle: '',
props: {
label: 'name',
children: 'children'
},
nodeForm: {
sid: '',
name: '',
sortNo: ''
},
ewmForm: {
qrFilePath: '',
organizationName: '',
departmentName: '',
address: ''
},
orgAttribute_list: [],
orgLevel_list: [],
form: {
sid: '',
name: '',
orgCode: '',
/* jwd: '',*/
addrs: '',
zgStaffSid: '',
zgStaffName: '',
fgStaffSid: '',
fgStaffName: '',
linkPerson: '',
linkPhone: '',
sort: '',
isDept: '',
orgAbbre: '',
orgAttributeValue: '',
orgAttributeKey: '',
orgLevelValue: '',
orgLevelKey: '',
otherCode: ''
},
fgStaffSid: [],
formBackup: Object.assign({}, this.form),
isshow: 'table',
page: {
total: 0, //
current: 1, //
size: 10, //
params: {
name: '',
organizationSid: '',
psid: ''
}
},
tableData: [],
treedata: [],
staffdata: [],
staffdata2: [],
rules: {}
}
},
mounted() {
this.getOrgTree()
this.init()
},
methods: {
init() {
typeValues({
type: 'orgAttribute'
}).then((res) => {
if (res.success) {
this.orgAttribute_list = res.data
}
})
typeValues({
type: 'orgLevel'
}).then((res) => {
if (res.success) {
this.orgLevel_list = res.data
}
})
},
changeOrgLevel(value) {
let bb = null
this.orgLevel_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
value: e.dictValue,
key: e.dictKey
}
}
})
this.form.orgLevelValue = bb.value
this.form.orgLevelKey = bb.key
},
changeOrgAttribute(value) {
let bb = null
this.orgAttribute_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
this.form.orgAttributeKey = bb.key
},
pagination(val) { //
this.page.current = val.pageNum
this.page.size = val.pageSize
this.getPageList(this.page)
},
handleNodeClick(data) {
this.isshow = 'table'
this.page.params.organizationSid = window.sessionStorage.getItem('orgSid')
this.page.params.psid = data.sid || 0
this.getPageList(this.page)
},
getPageList(data) { //
pageList(data).then(res => {
console.log('返回子级:', res)
this.tableData = res.data.records
this.page.total = res.data.total
})
},
getOrgTree() { //
orgList({}).then(res => {
console.log('getOrgTree>>>:', res.data)
this.treedata = res.data
})
},
save() {
if (this.fgStaffSid.length > 0) {
this.form.fgStaffSid = this.fgStaffSid.join()
} else {
this.form.fgStaffName = ''
this.form.fgStaffSid = ''
}
this.form.organizationSid = window.sessionStorage.getItem('orgSid')
// this.form.dlxx = typeof(this.form.dlxx) == 'string' ? this.form.dlxx : this.form.dlxx.join()
if (this.form.sid) {
// console.log(this.form)
putOrgtree(this.form).then(res => {
if (res.success) {
this.isshow = 'table'
this.getOrgTree()
this.handleNodeClick({
sid: this.form.psid
})
this.$message({
message: res.msg,
type: 'success'
})
}
})
} else {
addOrgTree(this.form).then(res => {
if (res.success) {
this.isshow = 'table'
this.getOrgTree()
this.handleNodeClick({
sid: this.form.psid
})
this.$message({
message: res.msg,
type: 'success'
})
}
})
}
},
append(data) {
console.log(123456789, data)
this.dialogTitle = '新增'
this.isshow = 'edit'
this.fgStaffSid = []
this.form = Object.assign({}, this.formBackup)
this.form.psid = data.sid || 0
this.form.organizationSid = window.sessionStorage.getItem('orgSid')
this.form.address = data.orgAddress || data.address
this.form.dlxx = data.gisInfo || data.dlxx
this.getStaff(data.sid)
this.getStaff2(data.sid)
},
editRow(row) {
this.getStaff(row.sid)
this.getStaff2(row.sid)
this.dialogTitle = '编辑'
this.isshow = 'edit'
this.fgStaffSid = []
selectBySid(row.sid).then((response) => {
if (response.success) {
this.form = response.data
this.form.fgStaffName = response.data.fgNames
this.form.fgStaffSid = response.data.fgStaffSid
if (this.form.fgStaffSid) {
this.fgStaffSid = response.data.fgStaffSid.split(',')
}
this.form.zgStaffName = response.data.zgNames
this.form.zgStaffSid = response.data.zgStaffSid
console.log('编辑回显的数据', this.form)
}
})
},
deit(data) { //
this.getStaff(data.sid)
this.getStaff2(data.sid)
console.log(data, 8888)
this.dialogVisible = true
this.form.sid = data.sid
// this.form.psid = null
this.form.name = data.name
this.form.orgCode = data.orgCode
/* this.form.jwd = data.jwd*/
this.form.addrs = data.addrs
this.form.linkPerson = data.linkPerson
this.form.linkPhone = data.linkPhone
this.form.sort = data.sort
// this.form.zgStaffSid = data.zgSids
// this.form.fgStaffSid = data.fgSids.split(',')
},
nodeSave() { //
console.log('这是保存nodeSave(0')
// this.form.fgStaffSid = this.form.fgStaffSid.join()
postOrgtree(this.form).then(res => {
this.getOrgTree()
this.dialogVisible = false
this.$message({
message: res.msg,
type: 'success'
})
})
},
remove(data) {
console.log('remove>>>', data)
this.$confirm('确定要删除该组织吗, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delOrgtree({
sid: data.sid
}).then(res => {
this.getOrgTree()
this.handleNodeClick({
sid: data.psid
})
this.$message({
message: res.msg,
type: 'success'
})
})
})
},
lookRow(row) { //
this.isshow = 'ewm'
getQrCode({
sid: row.sid
}).then(res => {
this.ewmForm = res.data
})
},
Printewm() {
this.$print(this.$refs.print) // 使
},
mouseenter(data) {
this.$set(data, 'del', true)
},
mouseleave(data) {
this.$set(data, 'del', false)
},
onSearch() {
this.getPageList(this.page)
},
resetSearch() {
this.page.params.name = ''
this.getPageList(this.page)
},
//
getStaff(orgSid) {
getStaff({
deptSid: orgSid
}).then((res) => {
if (res.success) {
this.staffdata = res.data
}
})
},
//
getStaff2(orgSid) {
getStaffName({
deptSid: orgSid
}).then(res => {
this.staffdata2 = res.data
console.log('分管人员', this.staffdata2)
})
}
}
}
</script>
<style>
.el-icon-arrow-right:before {
content: '\e6e0';
color: #727272;
}
</style>
<style scoped="scoped" lang="scss">
.org-tree {
width: 240px;
min-height: 100%;
box-sizing: border-box;
/*padding-right: 10px;*/
border: 1px solid #edf1f7;
overflow: scroll;
}
.org-table {
flex: 1;
// padding-left: 10px;
margin: 0 10px;
border: 1px solid #edf1f7;
min-height: 100%;
overflow-y: scroll;
.ewm {
margin: 30px auto 0;
width: 560px;
}
.ediut {
margin: 30px auto 0;
/*width:750px;*/
}
}
.custom-tree-node {
position: relative;
overflow: hidden;
width: 100%;
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
padding-right: 8px;
}
.handle {
position: absolute;
right: 0;
.el-button--text {
font-size: 15px;
background-color: #FFFFFF;
}
}
.my-tabs {
margin-top: 10px;
}
.edit {
.el-form-item__label {
width: 100px !important;
display: inline-block !important;
}
.el-input {
width: 70%;
}
}
.td_left {
border-left: 0 solid #e6e9f0;
}
</style>

505
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/postManage/postManage.vue

@ -0,0 +1,505 @@
<template>
<el-tabs class="my-tabs" v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="岗位列表" name="roleList">
<div class="container">
<div class="tab-header">
<el-form ref="form" :inline="true" :model="search" label-width="80px">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="岗位名称">
<el-input v-model="search.name" clearable></el-input>
</el-form-item>
<!-- <el-form-item label="所属部门">
<el-select v-model="search.orgSid" placeholder="请选择" clearable @clear="handleClear">
<el-option hidden :key="search.orgSid" :label="orgName" :value="search.orgSid"></el-option>
<el-tree v-loading="loading" :data="treedata" ref="Tree" show-checkbox accordion node-key="sid"
:default-checked-keys="checkedId"
:default-expand-all='true' :check-strictly='true' :props="defaultProps"
@check-change="checkchange"
>
</el-tree>
</el-select>
</el-form-item> -->
<el-button @click="getList(1)">查询</el-button>
</el-col>
</el-row>
</el-form>
</div>
<!-- table -->
<el-table :data="roleTable" border style="width: 100%;">
<el-table-column label="序号" width="50px" type="index" align="center">
</el-table-column>
<el-table-column label="操作" width="220px" align="center">
<template slot-scope="scope">
<el-button @click="editRow(scope.row)" type="primary" size="mini"> 修改</el-button>
<el-button @click="delRow(scope.row)" type="danger" size="mini"> 删除</el-button>
</template>
</el-table-column>
<el-table-column prop="name" label="岗位名称" align="center"></el-table-column>
<el-table-column prop="parentName" label="上级岗位名称" align="center"></el-table-column>
<el-table-column prop="postCode" label="岗位编码" align="center"></el-table-column>
<el-table-column prop="postLevel" label="职级" align="center"></el-table-column>
<!-- <el-table-column prop="orgName" label="所属部门" align="center"></el-table-column> -->
</el-table>
<pagination :total="page.total" :page.sync="page.current" :limit.sync="page.size" @pagination="pagination"/>
<!-- 编辑岗位信息 -->
<el-dialog :title="dialogTitle + '岗位信息'" :visible.sync="editDialog" width="40%">
<table class="e-table" cellspacing="0">
<tr>
<td>上级岗位</td>
<td> <!-- @change="changeParentSid" -->
<el-select v-model="roleForm.parentSid" filterable clearable placeholder="请选择"
style="width:300px">
<el-option v-for="item in parentSidList" :key="item.sid" :label="item.name"
:value="item.sid">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td>岗位名称</td>
<td>
<el-input v-model="roleForm.name" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>岗位职级</td>
<td>
<el-select v-model="roleForm.postLevel" @change="changeUPpostLevel" filterable placeholder="请选择" style="width:300px">
<el-option v-for="item in postLevelList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td>岗位编码</td>
<td>
<el-input v-model="roleForm.postCode" style="width:300px"></el-input>
</td>
</tr>
<!--<tr>
<td>备注</td>
<td>
<el-input type="textarea" :autosize="{ minRows: 4, maxRows: 6}" v-model="roleForm.remarks"></el-input>
</td>
</tr>-->
<!-- <tr>
<td>选择部门(单选)</td>
<td>
<el-tree
:data="treedata1"
show-checkbox
node-key="sid"
ref="Tree1"
:default-expand-all='true'
:check-strictly='true'
:default-checked-keys="checkedId1"
:props="defaultProps"
@check-change="checkchange1"
>
</el-tree>
</td>
</tr> -->
</table>
<div style="margin-top: 20px; text-align: center;">
<el-button type="primary" @click="save()"> </el-button>
<el-button @click="editDialog = false"> </el-button>
</div>
</el-dialog>
</div>
</el-tab-pane>
<!-- 新增岗位信息 -->
<el-tab-pane label="新增岗位" name="addrole">
<el-card class="box-card">
<table class="e-table" cellspacing="0">
<tr>
<td>上级岗位</td>
<td> <!-- @change="changeParentSid" -->
<el-select v-model="roleForm.parentSid" filterable clearable placeholder="请选择"
style="width:300px">
<el-option v-for="item in parentSidList" :key="item.sid" :label="item.name"
:value="item.sid">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td>岗位名称</td>
<td>
<el-input v-model="roleForm.name" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>岗位职级</td>
<td>
<el-select v-model="roleForm.postLevel" @change="changePostLevel" filterable placeholder="请选择"
style="width:300px">
<el-option v-for="item in postLevelList" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td>岗位编码</td>
<td>
<el-input v-model="roleForm.postCode" style="width:300px"></el-input>
</td>
</tr>
<!--<tr>
<td>备注</td>
<td> <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 6}" v-model="roleForm.remarks"></el-input></td>
</tr>-->
<!-- <tr>
<td>选择部门(单选)</td>
<td>
<el-tree
:data="treedata2"
show-checkbox
node-key="sid"
ref="Tree2"
:default-expand-all='true'
:check-strictly='true'
:default-checked-keys="checkedId2"
:props="defaultProps"
@check-change="checkchange2"
>
</el-tree>
</td>
</tr> -->
</table>
<div style="margin-top: 20px; text-align: center;">
<el-button type="primary" @click="save()"> </el-button>
</div>
</el-card>
</el-tab-pane>
</el-tabs>
</template>
<script>
import {delOrgroles, orgList, pageList, pullDown, putOrgroles, savePost,selectList} from '@/api/system/postManage/index.js'
export default {
data() {
return {
dialogTitle: '',
activeName: 'roleList',
roleForm: {
remarks: "",
roleName: "",
postCode: '',
orgSid: '',
postLevel: '',
postLevelKey: '',
parentSid:''
},
formBackup: {},
search: {
name: '',
orgSid: ''
},
orgName: '',
page: {
total: 0, //
current: 1, //
size: 10, //
},
roleTable: [],
editDialog: false,
//
loading: false,
defaultProps: {
children: 'children',
label: 'name'
},
// orgdata:[], //
checkedId: [],
checkedId1: [],
checkedId2: [],
treedata: [],
treedata1: [],
treedata2: [],
postLevelList: [],
parentSidList: [],
// chace: [],
// roleDialog: false,
// Thisrow: {},
// orgListAll:[]
};
},
mounted() {
this.formBackup = Object.assign({}, this.roleForm),
this.getList()
this.getOrgList()
this.postLevel()
this.getParent()
},
methods: {
pagination(val) { //
this.page.current = val.pageNum
this.page.size = val.pageSize
this.getList()
},
//
getList(flag) {
if (flag == '1') {
this.page.current = 1
}
let params = this.page
params.params = this.search
pageList(params).then(res => {
this.page.total = res.data.total
this.roleTable = res.data.records
})
},
postLevel(){
pullDown({ psid: 0, type: 'postLevel' }).then((res)=>{
if(res.code==='200'){
this.postLevelList=res.data
}
})
},
getParent(){
selectList().then((res)=>{
if(res.code==='200'){
this.parentSidList=res.data
}
})
},
changePostLevel(value){
let bb = null
this.postLevelList.forEach((e) => {
if (e.dictKey == value) {
bb = {
name: e.dictValue,
value: e.dictKey
}
}
})
this.roleForm.postLevel=bb.name
this.roleForm.postLevelKey=bb.value
},
changeUPpostLevel(value){
let bb = null
this.postLevelList.forEach((e) => {
if (e.dictKey == value) {
bb = {
name: e.dictValue,
value: e.dictKey
}
}
})
this.roleForm.postLevel=bb.name
this.roleForm.postLevelKey=bb.value
},
handleClick(tab, event) {
if (tab.name == 'addrole') {
this.dialogTitle = '新增'
this.roleForm = Object.assign({}, this.formBackup)
} else {
this.getList()
}
},
editRow(row) {
this.dialogTitle = '编辑'
this.editDialog = true
console.log(row)
this.roleForm = Object.assign({}, row)
this.checkedId1 = [this.roleForm.orgSid]
},
delRow(row) {
this.$confirm('确定要删除该岗位吗, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let params = {
sids: row.sid
}
delOrgroles(params).then(res => {
this.getList()
this.$message({
type: 'success',
message: '删除成功!'
});
})
})
},
//
save() {
if (this.roleForm.sid) {
// let orgSid = this.$refs.Tree1.getCheckedKeys()
// this.roleForm.orgSid = orgSid.toString()
putOrgroles(this.roleForm).then(res => {
if (res.code == '200') {
this.getList()
this.editDialog = false
this.$message({
message: res.msg,
type: 'success'
})
}
})
} else {
// let orgSid = this.$refs.Tree2.getCheckedKeys()
// this.roleForm.orgSid = orgSid.toString()
savePost(this.roleForm).then(res => {
if (res.code == '200') {
this.getList()
this.activeName = "roleList"
this.$message({
message: res.msg,
type: 'success'
})
let arr = []
// this.$refs.Tree2.setCheckedKeys(arr);
}
})
}
this.reset()
},
reset() {
this.roleForm = {
remarks: "",
roleName: "",
orgSid: ''
};
this.search = {
name: '',
orgSid: ''
}
},
//
getOrgList(row) {
this.roleDialog = true
this.checkedId = []
// this.roleForm.roleName = row.roleName
this.Thisrow = row
this.loading = true
let params = {
// roleSid: row.sid,
// userType: '2'
}
orgList(params).then(res => {
this.treedata = res.data
this.treedata1 = res.data
this.treedata2 = res.data
// this.getTreeParentNode(res.data, this.checkedId)
// this.getTreeParentid(res.data)
this.loading = false
})
},
// //
// getTreeParentNode(menus, ids) {
// for (var i = 0; i < menus.length; i++) {
// if (menus[i].children && menus[i].children.length != 0) {
// this.getTreeParentNode(menus[i].children, ids)
// } else if (menus[i].isCheck) {
// ids.push(menus[i].sid)
// }
// }
// },
// // ID
// getTreeParentid(menus) {
// for (var i = 0; i < menus.length; i++) {
// this.chace.push(menus[i].sid)
// }
// },
// getCheckedKeys() {
// let _this = this
// let roleMenus = []
// this.$refs.Tree.getCheckedKeys().forEach(val => {
// roleMenus.push({
// menuSid: val,
// orgSid: _this.$store.getters.userInfo.orgSid,
// roleSid: _this.Thisrow.sid
// })
// })
// let parentTrue = this.$refs.Tree.getHalfCheckedKeys()
// for (let i = 0; i < parentTrue.length; i++) {
// for (let j = 0; j < this.chace.length; j++) {
// if (parentTrue[i] == this.chace[j]) {
// parentTrue.splice(i, 1);
// }
// }
// }
// parentTrue.forEach(val => {
// roleMenus.push({
// menuSid: val,
// orgSid: _this.$store.getters.userInfo.orgSid,
// roleSid: _this.Thisrow.sid
// })
// })
// saveorgrolemenus({
// roleSid: _this.Thisrow.sid,
// roleMenus: roleMenus
// }).then(res => {
// this.roleDialog = false
// this.$message({
// message: res.msg,
// type: 'success'
// })
// })
// },
checkchange(data, checked, indeterminate) {
if (checked) {
this.search.orgSid = data.sid
this.orgName = data.name
let arr = []
arr = [data.sid];
this.$refs.Tree.setCheckedKeys(arr);
return;
}
},
checkchange1(data, checked, indeterminate) {
if (checked) {
this.roleForm.orgSid = data.sid
// this.orgName = data.name
let arr = []
arr = [data.sid];
this.$refs.Tree1.setCheckedKeys(arr);
return;
}
},
checkchange2(data, checked, indeterminate) {
if (checked) {
this.roleForm.orgSid = data.sid
// this.orgName = data.name
let arr = []
arr = [data.sid];
this.$refs.Tree2.setCheckedKeys(arr);
return;
}
},
handleClear() {
//
this.orgName = ''
this.search.orgSid = ''
let arr = []
this.$refs.Tree.setCheckedKeys(arr);
}
}
};
</script>
<style scoped>
.el-select > .el-input {
display: block;
width: 300px;
}
/deep/ .tab-header .el-select {
width: 180px;
}
.my-tabs {
margin-top: 10px;
}
</style>

65
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/userManage/userManage.vue

@ -0,0 +1,65 @@
<template>
<div>
<el-tabs class="my-tabs" v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="用户列表" name="roleList">
<user-manage-list :dataObj='dataObj' @status='isShow' @item='listObj'></user-manage-list>
</el-tab-pane>
<!-- <el-tab-pane label="新增用户" name="addrole">
<user-manage-add @status='isShow' :dataObj='childObj'></user-manage-add>
</el-tab-pane>-->
</el-tabs>
</div>
</template>
<script>
import userManageList from './userManageList.vue'
import userManageAdd from './userManageAdd.vue'
export default {
components: {
userManageList: userManageList,
userManageAdd: userManageAdd,
},
data() {
return {
activeName: 'roleList',
editDialog: false,
dataObj: {
isShow: ''
},
childObj: {}
};
},
mounted() {
},
methods: {
handleClick(tab, event) {
if (tab.name == 'addrole') {
this.dialogTitle = '新增'
// this.roleForm = Object.assign({}, this.formBackup)
} else {
// this.getroleOrgList()
}
},
isShow(val) {
if (!val) {
this.activeName = 'roleList'
this.dataObj.isShow = false
this.dataObj.isShow = true
} else {
this.activeName = 'addrole'
}
},
listObj(val) {
this.childObj = val
}
}
};
</script>
<style scoped="scoped">
.my-tabs {
margin-top: 10px;
}
</style>

267
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/userManage/userManageAdd.vue

@ -0,0 +1,267 @@
<template>
<div>
<el-card class="box-card">
<table class="e-table" cellspacing="0">
<tr>
<td>姓名</td>
<td>
<el-input v-model="form.name" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>用户类型</td>
<td>
<el-select v-model="form.userType" @change="$forceUpdate()" style="width:300px">
<el-option
v-for="(item, i) in userTypeData"
:key="i"
:label="item.name"
:value="item.value">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td>部门</td>
<td>
<el-select v-model="form.deptSid" placeholder="请选择" style="width:300px">
<el-option hidden :key="form.deptSid" :label="orgName" :value="form.deptSid"></el-option>
<el-tree :data="treedata" ref="Tree" show-checkbox accordion node-key="sid"
:default-checked-keys="checkedId"
:default-expand-all='true' :check-strictly='true' :props="defaultProps"
@check-change="checkchange"
>
</el-tree>
</el-select>
<!--<el-select v-model="form.deptSid" @change="$forceUpdate()">
<el-option
v-for="(item, i) in treedata"
:key="i"
:label="item.name"
:value="item.sid">
</el-option>
</el-select>-->
</td>
</tr>
<tr>
<td>岗位</td>
<td>
<el-select v-model="form.postSid" @change="$forceUpdate()" style="width:300px">
<el-option
v-for="(item, i) in postSidData"
:key="i"
:label="item.name"
:value="item.sid">
</el-option>
</el-select>
<!--<el-input v-model="form.postSid"></el-input>-->
</td>
</tr>
<tr>
<td>手机号码</td>
<td>
<el-input v-model="form.mobile" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>手机验证码</td>
<td>
<el-input v-model="form.verificationCode" placeholder="请输入验证码" style="width:300px">
<el-button v-show="showCode" slot="append" @click.native="getIdentifying">获取验证码</el-button>
<el-button v-show="!showCode" slot="append">{{phoneCodeCount}} s</el-button>
</el-input>
<!--<el-input v-model="form.verificationCode"></el-input>-->
</td>
</tr>
</table>
<div style="margin-top: 20px; text-align: center;">
<el-button type="primary" @click="save()"> </el-button>
<!--<el-button type="warning" @click="cancel()"> </el-button>-->
</div>
</el-card>
</div>
</template>
<script>
import {userAdd, userUpdata, userSingle, orgList, postList, getCode} from '@/api/system/userManage/index.js'
export default {
data() {
return {
form: {
sid: '',
name: '',
userType: '',
deptSid: '',
postSid: '',
mobile: '',
verificationCode: ''
},
form1: {
sid: '',
},
userTypeData: [{
value: '1',
name: '员工'
}, {
value: '2',
name: '客户'
}, {
value: '3',
name: '供应商'
}],
treedata: [],
checkedId: [],
orgName: '',
defaultProps: {
children: 'children',
label: 'name'
},
postSidData: [],
showCode: true,
phoneCodeCount: '',
timer: null,
};
},
props: ['dataObj'],
watch: {
dataObj: {
handler(val) {
this.form1.sid = val.sid
this.getUserSingle()
this.getOrgList()
},
deep: true,
},
},
mounted() {
this.getOrgList()
},
methods: {
getUserSingle() {
userSingle(this.form1).then(res => {
if (res.code == '200') {
this.form.sid = res.data.sid
this.form.name = res.data.name
this.form.userType = res.data.userType
this.form.deptSid = res.data.deptSid
this.orgName = res.data.departmentName
this.form.postSid = res.data.postSid
this.form.mobile = res.data.mobile
}
})
},
//
getOrgList(row) {
// this.roleDialog = true
this.checkedId = []
this.Thisrow = row
this.loading = true
let params = {}
orgList(params).then(res => {
this.treedata = res.data
})
},
checkchange(data, checked, indeterminate) {
if (checked) {
this.form.deptSid = data.sid
this.orgName = data.name
let arr = []
arr = [data.sid];
this.$refs.Tree.setCheckedKeys(arr);
this.form.postSid = ''
this.getPost(data.sid)
return;
}
},
getPost(orgSid) {
let params = {
sid: orgSid
}
postList(params).then(res => {
this.postSidData = res.data
})
},
save() {
if (this.form.sid) {
userUpdata(this.form).then(res => {
if (res.code == '200') {
this.$message({
message: res.msg,
type: 'success'
})
this.$emit('status', false)
}
})
} else {
let orgSid = this.$refs.Tree.getCheckedKeys()
this.form.deptSid = orgSid.toString()
userAdd(this.form).then(res => {
if (res.code == '200') {
this.$message({
message: res.msg,
type: 'success'
})
this.$emit('status', false)
}
})
let arr = []
this.$refs.Tree.setCheckedKeys(arr);
}
this.reset()
},
reset() {
this.form = {
sid: '',
name: '',
userType: '',
deptSid: '',
postSid: '',
mobile: '',
verificationCode: ''
}
},
//
getIdentifying() {
if (this.form.mobile == "") {
this.$alert('请填写手机号码', '', {
confirmButtonText: '确定'
})
return;
}
//
const TIME_COUNT = 60;
if (!this.timer) {
this.phoneCodeCount = TIME_COUNT;
this.showCode = false;
this.timer = setInterval(() => {
if (this.phoneCodeCount > 0 && this.phoneCodeCount <= TIME_COUNT) {
this.phoneCodeCount--;
} else {
this.showCode = true;
clearInterval(this.timer);
this.timer = null;
}
}, 1000)
}
let obj = {
phone: this.form.mobile,
}
getCode(obj).then(res => {
if (res.code == '200') {
this.orginTranceNo = res.data.tranceNo;
}
})
},
cancel() {
this.$emit('status', false)
}
}
}
</script>
<style>
</style>

483
yxt-supervise-cyf/yxt-supervise-cyf-ui/src/views/system/userManage/userManageList.vue

@ -0,0 +1,483 @@
<template>
<div>
<div class="tab-header">
<el-form ref="form" :inline="true" :model="search" label-width="80px">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="用户名">
<el-input v-model="search.userName" clearable></el-input>
</el-form-item>
<el-form-item label="姓名">
<el-input v-model="search.name" clearable></el-input>
</el-form-item>
<el-form-item label="角色">
<el-select v-model="search.roleSid" filterable clearable placeholder="请选择">
<el-option v-for="item in roleListAll" :key="item.sid" :label="item.name" :value="item.sid"></el-option>
</el-select>
</el-form-item>
<el-form-item label="部门">
<el-input v-model="search.orgName" clearable></el-input>
<!-- <el-select v-model="search.roleSid" clearable placeholder="请选择">-->
<!-- <el-option v-for="(item,i) in roleListAll" :key="i" :label="item.name" :value="item.sid"></el-option>-->
<!-- </el-select>-->
</el-form-item>
<el-button @click="getOrgUserList(1)">查询</el-button>
</el-col>
</el-row>
</el-form>
</div>
<!-- table -->
<el-table :data="userTable" border style="width: 100%;">
<el-table-column label="序号" width="80px" type="index" align="center">
</el-table-column>
<el-table-column label="操作" width="300px" align="center">
<template slot-scope="scope">
<el-button @click="setRole(scope.row)" type="primary" size="mini">
设置角色
</el-button>
<el-button @click="initPwd(scope.row)" type="danger" size="mini">
初始化密码
</el-button>
<!-- <el-button @click="del(scope.row)" type="danger" size="mini">
删除
</el-button>-->
</template>
</el-table-column>
<el-table-column prop="userName" label="用户名" align="center">
<template slot-scope="scope">
<!-- <span class="tablerow-click" @click="userinfoChange(scope.row)">-->{{ scope.row.userName }}<!--</span>-->
</template>
</el-table-column>
<el-table-column prop="roleName" label="用户类型" align="center"></el-table-column>
<el-table-column prop="name" label="姓名" width="120px" align="center"></el-table-column>
<el-table-column prop="departmentName" label="部门" align="center"></el-table-column>
<el-table-column prop="postName" label="岗位" align="center"></el-table-column>
<!-- <el-table-column prop="isEnable" label="是否可用" align="center">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isEnable"
active-value='1'
inactive-value='0'
active-color="#13ce66"
inactive-color="#ff4949"
@change="enabledChange($event,scope.row)">
</el-switch>
</template>
</el-table-column> -->
</el-table>
<pagination :total="page.total" :page.sync="page.current" :limit.sync="page.size" @pagination="pagination"/>
<!-- 角色设置 -->
<el-dialog title="设置角色" :visible.sync="roleDialog" width="30%">
<el-form :model="roleForm" :rules="rules" ref="roleForm">
<el-form-item label="角色名称" :label-width="formLabelWidth" prop="roleSid">
<el-select v-model="roleForm.roleSid" placeholder="请选择" filterable multiple>
<el-option v-for="(item,i) in roleList" :key="i" :label="item.name" :value="item.sid"></el-option>
</el-select>
<!--<el-button type="primary" size='mini' @click="toNav('RoleAdminister')" style="margin-left: 10px;" circle icon="el-icon-plus"></el-button>-->
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveRole('roleForm')"> </el-button>
<el-button @click="roleDialog = false"> </el-button>
</div>
</el-dialog>
<!-- 部门设置 -->
<el-dialog title="部门设置" :visible.sync="bm_Dialog" width="30%">
<el-form :model="bm_Form" :rules="rules" ref="bm_Form">
<el-form-item label="部门名称" :label-width="formLabelWidth" prop="departmentSid">
<!-- <el-select v-model="bm_Form.departmentSid" placeholder="请选择">
<el-option v-for="item in bm_List"
:key="item.departmentSid"
:label="item.departmentName"
:value="item.departmentSid"
></el-option>
</el-select> -->
<el-cascader
v-model="bm_Form.departmentSid"
:options="treedata"
:props="props"></el-cascader>
<el-button type="primary" size='mini' @click="toNav('deptManage')" style="margin-left: 10px;" circle
icon="el-icon-plus"></el-button>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveOrg('bm_Form')"> </el-button>
<el-button @click="bm_Dialog = false"> </el-button>
</div>
</el-dialog>
<!-- 编辑信息 -->
<el-dialog title="编辑用户信息" :visible.sync="editDialog" width="40%">
<table class="e-table" cellspacing="0">
<tr>
<td>姓名</td>
<td>
<el-input v-model="form.name" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>用户类型</td>
<td>
<el-select v-model="form.userTypeKey" @change="$forceUpdate()" style="width:300px">
<el-option v-for="(item, i) in userTypeData" :key="i" :label="item.name" :value="item.value">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td>部门</td>
<td>
<el-select v-model="form.deptSid" placeholder="请选择" @change="$forceUpdate()" style="width:300px">
<el-option hidden :key="form.deptSid" :label="orgName" :value="form.deptSid"></el-option>
<el-tree :data="treedata" ref="Tree" show-checkbox accordion node-key="sid" :default-checked-keys="checkedId" :default-expand-all='true' :check-strictly='true' :props="defaultProps" @check-change="checkchange">
</el-tree>
</el-select>
</td>
</tr>
<tr>
<td>岗位</td>
<td>
<el-select v-model="form.postSid" @change="$forceUpdate()" style="width:300px">
<el-option v-for="(item, i) in postSidData" :key="i" :label="item.name" :value="item.sid"></el-option>
</el-select>
<!--<el-input v-model="form.postSid"></el-input>-->
</td>
</tr>
<tr>
<td>手机号码</td>
<td>
<el-input v-model="form.userName" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>手机验证码</td>
<td>
<el-input v-model="form.verificationCode" placeholder="请输入验证码" style="width:300px">
<el-button v-show="showCode" slot="append" @click.native="getIdentifying">获取验证码</el-button>
<el-button v-show="!showCode" slot="append">{{ phoneCodeCount }} s</el-button>
</el-input>
</td>
</tr>
</table>
<div style="margin-top: 20px; text-align: center;">
<el-button type="primary" @click="save()"> </el-button>
<el-button @click="editDialog = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
userList,
delUser,
initPwd,
setRole,
orgList,
postList,
saveOrgRole,
roleList,
setRoleEnable,
userUpdata
} from '@/api/system/userManage/index.js'
export default {
data() {
return {
editDialog: false,
form: {},
userTypeData: [{
value: '1',
name: '员工'
}, {
value: '2',
name: '客户'
}, {
value: '3',
name: '供应商'
}],
checkedId: [],
orgName: '',
defaultProps: {
children: 'children',
label: 'name'
},
showCode: true,
postSidData: [],
phoneCodeCount: '',
timer: null,
roleListAll: [],
search: {
name: '',
userName: '',
roleSid: ''
},
props: {
value: 'sid',
label: 'name',
children: 'orgDepartmentVoList'
},
treedata: null,
page: {
total: 0, //
current: 1, //
size: 10 //
},
userTable: [],
clientTable: [],
//
formLabelWidth: '100',
roleDialog: false,
roleList: [],
roleForm: {
roleSid: '',
userSid: ''
},
//
bm_Dialog: false,
postSid: '',
bm_Form: { departmentSid: '' },
bm_List: [],
rules: {
roleSid: [{ required: true, message: '请选择角色名称', trigger: 'blur' }],
departmentSid: [{ required: true, message: '请选择部门名称', trigger: 'blur' }]
}
}
},
props: ['dataObj'],
watch: {
dataObj: {
handler(val) {
this.getOrgUserList()
},
deep: true
}
},
mounted() {
this.getOrgUserList()
this.getRoleList()
this.getOrgTree()
this.getOrgList()
},
methods: {
// +
getOrgUserList(flag) {
if (flag === '1') {
this.page.current = 1
}
let params = this.page
params.params = this.search
userList(params).then(res => {
this.page.total = res.data.total
this.userTable = res.data.records
})
},
getRoleList() {
var param = {}
roleList(param).then(res => {
if (res.code === '200') {
this.roleListAll = res.data
}
})
},
//
pagination(val) {
this.page.current = val.pageNum
this.page.size = val.pageSize
this.getOrgUserList()
},
getOrgTree() { //
function treeArr(data) {
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
if (data[i].orgDepartmentVoList.length > 0) {
treeArr(data[i].orgDepartmentVoList)
} else {
delete data[i].orgDepartmentVoList
}
}
}
}
// getOrgTree({organizationSid: this.$store.getters.userInfo.orgSid}).then(res => {
// let tree = res.data[0].orgDepartmentVoList
// treeArr(tree)
// this.treedata = tree
// })
},
// ID
setRole(row) {
this.roleForm.roleSid = []
this.roleDialog = true
this.roleForm.sid = row.sid
this.roleForm.userSid = row.sid
setRole(this.roleForm).then(res => {
this.roleList = res.data
for (let i = 0; i < res.data.length; i++) {
if (res.data[i].checked === '0') {
this.roleForm.roleSid.push(res.data[i].sid)
}
}
// this.roleForm.roleSid = res.data.filter(item=> item.checked =='0')
})
},
//
saveRole(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.roleForm.roleSid = this.roleForm.roleSid.toString()
saveOrgRole(this.roleForm).then(res => {
if (res.code === '200') {
this.roleDialog = false
this.getOrgUserList()
this.$message({
message: res.msg,
type: 'success'
})
}
})
} else {
return false
}
})
},
//
saveOrg(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
let params = { //
departmentSid: this.bm_Form.departmentSid[this.bm_Form.departmentSid.length - 1],
staffSid: this.bm_Form.staffSid
}
saveDepartment(params).then(res => {
if (res.code === '200') {
this.getOrgUserList()
this.bm_Dialog = false
this.$message({
message: res.msg,
type: 'success'
})
}
})
} else {
return false
}
});
},
//
save(formName) {
this.form.userType = this.form.userTypeKey;
userUpdata(this.form).then(res => {
if (res.code === '200') {
this.getOrgUserList()
this.bm_Dialog = false
this.$message({
message: res.msg,
type: 'success'
})
this.editDialog = false
}
this.reset()
})
},
initPwd(row) {
this.$confirm('此操作将初始化该用户密码, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
initPwd({sid: row.sid}).then(res => {
this.$message({
type: 'success',
message: res.msg
})
})
})
},
//
userinfoChange(row) {
var postSid = row.postSid
this.editDialog = true
this.form = Object.assign({}, row)
this.postSid = postSid
this.$nextTick(() => {
this.$refs.Tree.setChecked(this.form.departmentSid, true, true)
})
// this.$emit('status',true)
// this.$emit('item',row)
},
//
del(row) {
this.$confirm('此操作将删除该用户, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delUser({ sid: row.sid }).then(res => {
this.$message({
type: 'success',
message: res.msg
});
this.getOrgUserList()
})
})
},
toNav(src) {
this.$router.push('/' + src)
},
//
getOrgList(row) {
// this.roleDialog = true
this.checkedId = []
this.Thisrow = row
this.loading = true
let params = {}
orgList(params).then(res => {
this.treedata = res.data
})
},
checkchange(data, checked, indeterminate) {
if (checked) {
this.form.deptSid = data.sid
this.orgName = data.name
let arr = []
arr = [data.sid]
this.$refs.Tree.setCheckedKeys(arr)
this.form.postSid = ''
this.getPost(data.sid)
return
}
},
getPost(orgSid) {
let params = {
sid: orgSid
}
postList(params).then(res => {
this.postSidData = res.data
})
this.form.postSid = this.postSid
},
reset() {
this.form = {}
},
enabledChange(value, row) {
setRoleEnable({
sid: row.sid,
isEnable: value
}).then(res => {
this.$message({
type: 'success',
message: res.msg
});
})
}
}
}
</script>
<style scoped="scoped">
.el-select > .el-input {
display: block;
width: 300px;
}
</style>
Loading…
Cancel
Save