Browse Source

Merge branch 'dev_pli_power_axis' of http://git.elinkit.com.cn:7070/r/epmet-oper-gov into dev_pli_power_axis

shibei_master
ZhaoTongYao 3 years ago
parent
commit
01cba855c2
  1. 1
      package.json
  2. 50
      src/utils/treeSelect.js
  3. 0
      src/views/modules/plugins/power/.gitkeep
  4. 670
      src/views/modules/plugins/power/poweraxis.vue

1
package.json

@ -16,6 +16,7 @@
"et:list": "gulp themes" "et:list": "gulp themes"
}, },
"dependencies": { "dependencies": {
"@riophae/vue-treeselect": "^0.4.0",
"@tinymce/tinymce-vue": "^4.0.4", "@tinymce/tinymce-vue": "^4.0.4",
"axios": "^0.19.0", "axios": "^0.19.0",
"babel-eslint": "^8.0.1", "babel-eslint": "^8.0.1",

50
src/utils/treeSelect.js

@ -0,0 +1,50 @@
/**
* 构造树型结构数据
* @param {*} data 数据源
* @param {*} id id字段 默认 'id'
* @param {*} parentId 父节点字段 默认 'parentId'
* @param {*} children 孩子节点字段 默认 'children'
*/
export function handleTree(data, id, parentId, children) {
let config = {
id: id || 'id',
parentId: parentId || 'parentId',
childrenList: children || 'children'
};
var childrenListMap = {};
var nodeIds = {};
var tree = [];
for (let d of data) {
let parentId = d[config.parentId];
if (childrenListMap[parentId] == null) {
childrenListMap[parentId] = [];
}
nodeIds[d[config.id]] = d;
childrenListMap[parentId].push(d);
}
for (let d of data) {
let parentId = d[config.parentId];
if (nodeIds[parentId] == null) {
tree.push(d);
}
}
for (let t of tree) {
adaptToChildrenList(t);
}
function adaptToChildrenList(o) {
if (childrenListMap[o[config.id]] !== null) {
o[config.childrenList] = childrenListMap[o[config.id]];
}
if (o[config.childrenList]) {
for (let c of o[config.childrenList]) {
adaptToChildrenList(c);
}
}
}
return tree;
}

0
src/views/modules/plugins/power/.gitkeep

670
src/views/modules/plugins/power/poweraxis.vue

@ -0,0 +1,670 @@
<template>
<div>
<el-form :model="queryParams" ref="queryForm" :inline="true">
<el-form-item label="所属组织" prop="deptName">
<el-cascader
:options="agencytree"
placeholder="请选择所属组织"
:props="{ expandTrigger: 'hover', label: 'orgName', value: 'orgId', children: 'subOrgList' }"
@change="changeQueryParams" />
</el-form-item>
<el-form-item label="部门名称" prop="deptName">
<el-input v-model="queryParams.axisName" placeholder="请输入部门名称" clearable size="small" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="initTreeData"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="addNewOrg"
>新增</el-button
>
</el-col>
</el-row>
<!-- 列表表格 -->
<el-table
height="500px"
:data="powerAxisTreeList"
:default-expand-all="isExpandAll"
v-if="refreshTable" row-key="id"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
<el-table-column prop="name" label="动力主轴"></el-table-column>
<el-table-column prop="categoryCode" :formatter="categoryCodeFormatter" label="类别" ></el-table-column>
<el-table-column prop="leaderName" label="负责人"></el-table-column>
<el-table-column prop="leaderMobile" label="联系方式" ></el-table-column>
<el-table-column prop="createdTime" label="创建时间" ></el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="row">
<el-button size="mini" type="danger" icon="el-icon-edit" @click="modify(row)">修改</el-button>
<el-button size="mini" type="warning" icon="el-icon-edit" @click="del(row)">删除</el-button>
<el-button size="mini" type="primary" icon="el-icon-user">负责人</el-button>
</template>
</el-table-column>
</el-table>
<!-- 新增弹窗 -->
<el-dialog
title="新增"
:visible.sync="addDialogBox"
width="30%"
:before-close="handleClose">
<el-form :model="addOrgForm" :rules="rules">
<el-form-item label="类别" prop="categoryCode">
<el-select v-model="addOrgForm.categoryCode" placeholder="请选择类别"
@change="handelChange">
<el-option
v-for="item in tagCategoryArr"
:key="item.categoryCode"
:label="item.categoryName"
:value="item.categoryCode">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="名称" prop="name">
<el-input v-model="addOrgForm.name" placeholder="请输入名称" style="width:250px"></el-input>
</el-form-item>
<!-- 下拉框组织的参数 -->
<el-form-item label="所属组织" v-show="orgListSwitch" prop="agencyId">
<el-cascader @change="handelAddAgency"
v-model="addOrgForm.agencyId"
:options="agencytree"
placeholder="请选择所属组织"
:props="{ expandTrigger: 'hover', label: 'orgName', value: 'orgId', children: 'subOrgList' }"
></el-cascader>
</el-form-item>
<!-- 网格党支部下拉框 -->
<el-form-item label="所属上级" v-show="GridPartyBranchSwitch" prop="pid">
<el-select v-model="addOrgForm.pid" placeholder="请选择所属上级">
<el-option
v-for="item in GridPartyBranchList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<!-- 党委下拉框 -->
<el-form-item label="所属上级" v-show="partyCommSwitch" prop="pid">
<el-select v-model="addOrgForm.pid" placeholder="请选择所属上级">
<el-option
v-for="item in PartyCommList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="排序">
<el-input-number v-model="addOrgForm.sort" :min="null" :max="10" label="请输入排序"></el-input-number>
</el-form-item>
</el-form>
<div>
<el-button @click="cancelAdd"> </el-button>
<el-button type="primary" @click="handelAdd"> </el-button>
</div>
</el-dialog>
<!-- 修改弹窗 -->
<el-dialog
title="修改"
:visible.sync="modifyPopSwitch"
width="30%"
:before-close="handleClose">
<el-form>
<el-form-item label="类别">
<el-select v-model="addOrgForm.categoryCode" placeholder="类别"
@change="handelChange">
<el-option
v-for="item in tagCategoryArr"
:key="item.categoryCode"
:label="item.categoryName"
:value="item.categoryCode">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="名称">
<el-input v-model="addOrgForm.name" placeholder="请输入名称" style="width:250px"></el-input>
</el-form-item>
<!-- 下拉框组织的参数 -->
<el-form-item label="所属组织" v-show="orgListSwitch">
<el-cascader
v-model="addOrgForm.agencyName"
:options="agencytree"
placeholder="请选择所属组织"
:props="{ expandTrigger: 'hover', label: 'orgName', value: 'orgId', children: 'subOrgList' }"
></el-cascader>
</el-form-item>
<!-- 网格党支部下拉框 -->
<el-form-item label="所属上级" v-show="GridPartyBranchSwitch">
<el-select v-model="addOrgForm.pid" placeholder="请选择所属上级">
<el-option
v-for="item in GridPartyBranchList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<!-- 党委下拉框 -->
<el-form-item label="所属上级" v-show="partyCommSwitch">
<el-select v-model="addOrgForm.pid" placeholder="请选择所属上级">
<el-option
v-for="item in PartyCommList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="排序">
<el-input-number v-model="addOrgForm.sort" :min="0" :max="10" label="请输入排序"></el-input-number>
</el-form-item>
</el-form>
<div>
<el-button @click="cancelModify"> </el-button>
<el-button type="primary" @click="submitModifyOrg"> </el-button>
</div>
</el-dialog>
<!-- 删除弹窗 -->
<el-dialog
title="确认删除"
:visible.sync="delWindow"
width="30%"
:before-close="handleClose"
>
<span>确认删除吗</span>
<div slot="footer" >
<el-button @click="canceldelWindow"> </el-button>
<el-button type="primary" @click="submitDelete"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { handleTree } from "@/utils/treeSelect";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
components: { Treeselect },
data(){
return{
//
delId:'',
// Id
customerId:'',
agencyId:'',
//
queryParams:{
// ID
agencyId: '',
//
axisName: '',
//
leaderName: ''
},
//
addOrgForm:{
id:'',
name:'',
customerId:'',
agencyId:'',
agencyName:'',
agencyType:'',
pid:'',
categoryCode:'',
sort:''
},
//
powerAxisTreeList: [],
//
tagCategoryArr: [],
//
agencytree: [],
//
GridPartyBranchList:[],
//
PartyCommList:[],
//
refreshTable: true,
//
isExpandAll: true,
//
addDialogBox:false,
//
orgListSwitch:false,
//
GridPartyBranchSwitch:false,
//
partyCommSwitch:false,
//
delWindow:false,
//
modifyPopSwitch:false,
rules:{
categoryCode:[
{ required: true, message: "上级部门不能为空", trigger: "blur" }
],
name:[
{ required: true, message: "上级部门不能为空", trigger: "blur" }
],
agencyId:[
{ required: true, message: "上级部门不能为空", trigger: "blur" }
],
pid:[
{ required: true, message: "上级部门不能为空", trigger: "blur" }
]
}
}
},
created(){
// this.getTreeList()
this.initTreeData()
this.getTagCategoryArr()
this.getAgencyTree()
},
mounted(){
this.customerId = localStorage.getItem('customerId')
this.agencyId = localStorage.getItem('agencyId')
},
methods:{
handelAdd(){
this.$refs['addOrgForm'].validate((valid) => {
if (valid) {
this.submitAddNewOrg()
}
})
},
//
async submitAddNewOrg(){
const url = '/pli/power/axisStruct/addOrg'
let params = {
name:this.addOrgForm.name,
sort:this.addOrgForm.sort,
customerId:this.customerId,
agencyId:this.addOrgForm.agencyId,
agencyName:this.addOrgForm.agencyName,
agencyType:this.addOrgForm.agencyType,
categoryCode:this.addOrgForm.categoryCode,
pid:this.addOrgForm.pid
}
const { data, code, msg } = await requestPost(url,params)
if (code === 0) {
this.$message.success("新增成功")
this.addDialogBox = false
this.orgListSwitch = false
this.GridPartyBranchSwitch = false
this.initTreeData()
this.addOrgFormRest()
} else {
this.$message.error(msg)
}
},
//
async getTagCategoryArr(){
const url = '/pli/power/axisTag/listSimple/struct'
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.tagCategoryArr = data
} else {
this.$message.error(msg)
}
},
//
async getAgencyTree(){
const url = '/data/aggregator/org/agencytree'
let params = {
agencyId:this.agencyId,
client:'gov'
}
const { data, code, msg } = await requestPost(url,params)
if (code === 0) {
let _data
if (data) {
_data = this.removeByOrgType(data, 'agency')
if (_data) {
this.agencytree = this.removeEmptySubOrgList(_data)
}
}
} else {
this.$message.error(msg)
}
},
//
async getGridPartyBranchList(){
const url = '/pli/power/axisStruct/GridPartyBranchList'
let params = {}
},
//
async initTreeData () {
const url = '/pli/power/axisStruct/list4Tree'
const { data, code, msg } = await requestPost(url, this.queryParams)
if (code === 0) {
this.powerAxisTreeList = handleTree(data, 'id', 'pid');
} else {
this.$message.error(msg)
}
},
//
async getGridPartyBranchList(){
const url = '/pli/power/axisStruct/GridPartyBranchList'
let params = {}
const { data, code, msg } = await requestPost(url,params)
if (code === 0) {
this.GridPartyBranchList = data
} else {
this.$message.error(msg)
}
},
//
async getPartyCommList(){
const url = '/pli/power/axisStruct/getPartyCommList'
let params = {}
const { data, code, msg } = await requestPost(url,params)
if (code === 0) {
this.PartyCommList = data
} else {
this.$message.error(msg)
}
},
// id
async queryModifyById(id){
const url = '/pli/power/axisStruct/queryModifyById/'+id
let params = {}
const { data, code, msg } = await requestPost(url,params)
if (code === 0) {
console.log(data)
this.addOrgForm.name = data.name
this.addOrgForm.customerId = data.customerId
this.addOrgForm.agencyId = data.agencyId
this.addOrgForm.agencyName = data.agencyName
this.addOrgForm.agencyType = data.agencyType
this.addOrgForm.pid = data.pid
this.addOrgForm.categoryCode = data.categoryCode
if(this.addOrgForm.categoryCode === 'community_party') {
this.orgListSwitch = true
this.GridPartyBranchSwitch = false
this.partyCommSwitch = false
}
if(this.addOrgForm.categoryCode === 'grid_party') {
this.orgListSwitch = false
this.GridPartyBranchSwitch = false
this.partyCommSwitch = true
this.getPartyCommList()
}
if(this.addOrgForm.categoryCode === 'group_party') {
this.GridPartyBranchSwitch = true
this.partyCommSwitch = false
this.getGridPartyBranchList()
}
this.addOrgForm.sort = data.sort
} else {
this.$message.error(msg)
}
},
//
async submitModifyOrg(){
const url = '/pli/power/axisStruct/modifyOrg'
let params = {
name:this.addOrgForm.name,
sort:this.addOrgForm.sort,
customerId:this.customerId,
agencyId:this.addOrgForm.agencyId,
agencyName:this.addOrgForm.agencyName,
agencyType:this.addOrgForm.agencyType,
categoryCode:this.addOrgForm.categoryCode,
pid:this.addOrgForm.pid,
id:this.addOrgForm.id
}
const { data, code, msg } = await requestPost(url,params)
if (code === 0) {
this.$message.success("修改成功")
this.modifyPopSwitch = false
this.addOrgFormRest()
this.initTreeData()
this.getTagCategoryArr()
this.getAgencyTree()
} else {
this.$message.error(msg)
}
},
// id
// async getPid(){
// const url = '/pli/power/axisStruct/getPid'
// let params = {}
// const { data, code, msg } = await requestPost(url,params)
// if (code === 0) {
// this.addOrgForm.pid = data
// } else {
// this.$message.error(msg)
// }
// },
//
addNewOrg(){
this.addDialogBox = true
this.addOrgForm.pid = ''
this.getTagCategoryArr()
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.name = ''
this.initTreeData()
},
/** 展开/折叠操作 */
// toggleExpandAll() {
// this.refreshTable = false;
// this.isExpandAll = !this.isExpandAll;
// this.$nextTick(() => {
// this.refreshTable = true;
// });
// },
//
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
this.addOrgFormRest()
this.orgListSwitch = false
this.GridPartyBranchSwitch = false
done();
})
.catch(_ => {});
},
//
cancelAdd(){
this.addDialogBox = false
this.orgListSwitch = false
this.GridPartyBranchSwitch = false
this.addOrgFormRest()
},
//
cancelModify(){
this.modifyPopSwitch = false
this.orgListSwitch = false
this.GridPartyBranchSwitch = false
this.addOrgFormRest()
},
//
addOrgFormRest(){
this.addOrgForm.name = ''
this.addOrgForm.customerId = ''
this.addOrgForm.sort = ''
this.addOrgForm.agencyId = '',
this.addOrgForm.agencyName = '',
this.addOrgForm.agencyType = '',
this.addOrgForm.pid = ''
this.addOrgForm.categoryCode = ''
},
//
handelChange(val){
this.addOrgForm.categoryCode = val
if (val === 'community_party') {
this.orgListSwitch = true
this.GridPartyBranchSwitch = false
this.partyCommSwitch = false
this.addOrgForm.pid = 0
}
if(val === 'grid_party') {
this.orgListSwitch = false
this.GridPartyBranchSwitch = false
this.partyCommSwitch = true
this.getPartyCommList()
this.addOrgForm.pid = ''
}
if(val === 'group_party') {
this.GridPartyBranchSwitch = true
this.partyCommSwitch = false
this.addOrgForm.pid = ''
this.getGridPartyBranchList()
}
},
//
del(row){
this.delWindow = true
this.delId = row.row.id
},
async submitDelete(){
const url = '/pli/power/axisStruct/deleteById/'+this.delId
let params = {}
const { data, code, msg } = await requestPost(url,params)
if (code === 0) {
this.$message.success("删除成功")
this.initTreeData()
this.delWindow = false
} else {
this.$message.error(msg)
}
},
//
canceldelWindow(){
this.delWindow = false
},
handelGridParty(val){
console.log(val)
},
categoryCodeFormatter (row, column) {
let ca = ''
this.tagCategoryArr.forEach((tagCategory) => {
if (tagCategory.categoryCode === row.categoryCode) {
ca = tagCategory.categoryName
}
})
return ca
},
removeEmptySubOrgList (orgArray) {
orgArray.forEach((orgInfo) => {
if (orgInfo && orgInfo.subOrgList) {
if (orgInfo.subOrgList.length === 0) {
orgInfo.subOrgList = undefined
} else {
this.removeEmptySubOrgList(orgInfo.subOrgList)
}
}
})
return orgArray;
},
//
modify(row){
this.modifyPopSwitch = true
this.queryModifyById(row.row.id)
this.addOrgForm.id = row.row.id
},
handelAddAgency(val){
if (val.length === 3) {
this.addOrgForm.agencyId = val[2]
} else {
this.addOrgForm.agencyId = val[1]
}
this.addOrgForm.agencyType = 'agency'
},
removeByOrgType (orgArray, orgType) {
if (orgArray && orgArray.length > 0) {
for (let p = orgArray.length - 1; p >= 0; p--) {
let orgInfo = orgArray[p]
if (orgInfo) {
if (orgInfo.orgType !== orgType) {
orgArray.splice(p, 1)
} else {
this.removeByOrgType(orgInfo.subOrgList, orgType)
}
}
}
}
return orgArray
},
changeQueryParams (item) {
console.log(item)
}
}
}
</script>
<style scoped>
</style>
Loading…
Cancel
Save