Browse Source

合并featiure-dev分支代码

feature
PLUTO 2 years ago
parent
commit
ea43c30d1c
  1. BIN
      src/assets/images/home/dyzxhClick.png
  2. BIN
      src/assets/images/home/dyzxhTree.png
  3. BIN
      src/assets/images/home/lydxzClick.png
  4. BIN
      src/assets/images/home/lydxzTree.png
  5. 89
      src/components/GridTree/nodeWrap.vue
  6. 65
      src/components/JwTree/nodeWrap.vue
  7. 27
      src/components/NameSplit/index.vue
  8. 98
      src/components/Tree/nodeWrap.vue
  9. 71
      src/views/dataBoard/cpts/family/modules/EnjoyService.vue
  10. 2
      src/views/dataBoard/cpts/resi-details.vue
  11. 87
      src/views/dataBoard/organizational/dangTree/index.vue
  12. 90
      src/views/dataBoard/organizational/gridTree/index.vue
  13. 65
      src/views/dataBoard/organizational/jwTree/index.vue
  14. 4
      src/views/dataBoard/satisfactionEval/modules/TypesOfDissatisfaction/index.vue

BIN
src/assets/images/home/dyzxhClick.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
src/assets/images/home/dyzxhTree.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
src/assets/images/home/lydxzClick.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 14 KiB

BIN
src/assets/images/home/lydxzTree.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 24 KiB

89
src/components/GridTree/nodeWrap.vue

@ -17,20 +17,32 @@
<div class="condition-node-box">
<div class="auto-judge">
<div v-if="getOnerSixLevelFlag(item)">
<div class="wgdzb">
<div :class="[item.children && item.children.length > 0 ? 'wgdzbHover' : 'wgdzb']">
<nameSplit :item="item" areaName="organizationName" peopleName="name" />
</div>
<div v-if="item._children" style="text-align: center" @click="getChildrenData(item, index, nodeConfig.children)">
<img v-if="item.children && item.children.length > 0" :src="require('@/assets/images/home/sh.png')" alt="" />
<img v-else :src="require('@/assets/images/home/zk.png')" alt="" />
</div>
</div>
<div v-if="item.level === 'building_chief'">
<div class="lydxz">
<div :class="[item.children && item.children.length > 0 ? 'lydxzHover' : 'lydxz']">
<nameSplit :item="item" areaName="organizationName" peopleName="name" />
</div>
<div v-if="item._children" style="text-align: center" @click="getChildrenData(item, index, nodeConfig.children)">
<img v-if="item.children && item.children.length > 0" :src="require('@/assets/images/home/sh.png')" alt="" />
<img v-else :src="require('@/assets/images/home/zk.png')" alt="" />
</div>
</div>
<div v-if="item.level === 'unit_chief'">
<div @click="gotoPersonnel(item)" :class="[item.categoryWarn === 'red' ? 'dyzxhRed' : item.categoryWarn === 'yellow' ? 'dyzxhYellow' : item.categoryWarn === 'green' ? 'dyzxhGreen' : 'dyzxh']" :title="item.organizationName">
<div @click="gotoPersonnel(item)" :class="[item.categoryWarn === 'red' ? 'dyzxhRed' : item.categoryWarn === 'yellow' ? 'dyzxhYellow' : item.categoryWarn === 'green' ? 'dyzxhGreen' : '', item.children && item.children.length > 0 ? 'dyzxhHover' : 'dyzxh']" :title="item.organizationName">
<!-- {{ spliceNameFun(item.organizationName, 3) }} -->
{{ item.organizationName }}
</div>
<div v-if="item._children" style="text-align: center" @click="getChildrenData(item, index, nodeConfig.children)">
<img v-if="item.children && item.children.length > 0" :src="require('@/assets/images/home/sh.png')" alt="" />
<img v-else :src="require('@/assets/images/home/zk.png')" alt="" />
</div>
</div>
</div>
</div>
@ -96,6 +108,20 @@ export default {
}
}
},
getChildrenData(item, idx, arr) {
arr.forEach((element, index) => {
if (index === idx) {
if (element.children) {
element._children = element.children;
element.children = null;
} else {
element.children = element._children;
}
} else {
element.children = null;
}
});
},
gotoPersonnel(item) {
const grandPid = this.findParentParentId(this.nodeConfig, item.pid);
const name = item.organizationName ? item.organizationName : "四号楼二单元302";
@ -119,7 +145,7 @@ export default {
@mixin lastLevel {
@include spanLevel;
@include normalLevel;
height: 118px;
height: 137px;
width: 30px;
margin-top: -12px;
background-size: 100%;
@ -157,50 +183,85 @@ export default {
.auto-judge {
.wgdzb {
@include spanLevel;
width: 132px;
height: 96px;
min-width: 120px;
height: 126px;
text-align: center;
padding-top: 5px;
padding-top: 9px;
background-image: url(~@/assets/images/home/zbbg.png);
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
// background-size: 100%;
}
.wgdzbHover {
@include spanLevel;
min-width: 120px;
height: 126px;
text-align: center;
padding-top: 9px;
background-image: url(~@/assets/images/home/zbbgClick.png);
// background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.lydxz {
@include spanLevel;
// @include normalLevel;
text-align: center;
width: 216px;
height: 50px;
padding-top: 5px;
min-width: 120px;
height: 126px;
padding-top: 25px;
background-image: url(~@/assets/images/home/lydxzTree.png);
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.lydxzHover {
@include spanLevel;
// @include normalLevel;
text-align: center;
min-width: 120px;
height: 126px;
padding-top: 25px;
background-image: url(~@/assets/images/home/lydxzClick.png);
background-repeat: no-repeat;
background-position: center;
}
.dyzxh {
@include lastLevel;
background-image: url(~@/assets/images/home/dyzxhTree.png);
background-repeat: no-repeat;
}
.dyzxhHover {
@include lastLevel;
background-image: url(~@/assets/images/home/dyzxhClick.png);
background-repeat: no-repeat;
}
.dyzxhGreen {
@include lastLevel;
background-image: url(~@/assets/images/home/gridGreen.png);
background-repeat: no-repeat;
}
.dyzxhRed {
@include lastLevel;
background-image: url(~@/assets/images/home/gridRed.png);
background-repeat: no-repeat;
}
.dyzxhYellow {
@include lastLevel;
background-image: url(~@/assets/images/home/gridYellow.png);
background-repeat: no-repeat;
}
.lxjt {
@include spanLevel;
display: flex;
align-items: center;
justify-content: space-around;
height: 118px;
height: 137px;
width: 30px;
writing-mode: tb-rl;
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhTree.png);
background-size: 100%;
background-repeat: no-repeat;
}
}
</style>

65
src/components/JwTree/nodeWrap.vue

@ -26,7 +26,7 @@
</div>
</div>
<div v-if="item.level === 'building_chief'">
<div :class="[tem.children && item.children.length > 0 ? 'lydxzHover' : 'lydxz']">
<div :class="[item.children && item.children.length > 0 ? 'lydxzHover' : 'lydxz']">
<nameSplit :item="item" areaName="organizationName" peopleName="name" pageName="居委组织架构" />
</div>
<div v-if="item._children" style="text-align: center" @click="getChildrenData(item, index, nodeConfig.children)">
@ -35,7 +35,7 @@
</div>
</div>
<div v-if="item.level === 'unit_chief' || item.level === 'public_welfare_post'">
<div @click="gotoPersonnel(item.resiId, '居委组织架构')" class="dyzxh gotoDesc" :title="item.organizationName">
<div @click="gotoPersonnel(item.resiId, '居委组织架构')" :class="[item.children && item.children.length > 0 ? 'dyzxhHover' : 'dyzxh', 'gotoDesc']" :title="item.organizationName">
{{ spliceNameFun(item.organizationName, 3) }}
</div>
<div v-if="item._children" style="text-align: center" @click="getChildrenData(item, index, nodeConfig.children)">
@ -93,14 +93,6 @@ export default {
},
getChildrenData(item, idx, arr) {
// if (!item._children) {
// this.$message({
// message: "",
// type: "error",
// });
// return;
// }
// arritem_childrenitem.children
arr.forEach((element, index) => {
if (index === idx) {
if (element.children) {
@ -169,63 +161,80 @@ export default {
.auto-judge {
.wgdzb {
@include spanLevel;
width: 90px;
min-width: 120px;
height: 126px;
text-align: center;
padding-top: 5px;
padding-top: 9px;
background-image: url(~@/assets/images/home/zbbg.png);
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
// background-size: 100%;
}
.wgdzbHover {
@include spanLevel;
width: 90px;
min-width: 120px;
height: 126px;
text-align: center;
padding-top: 5px;
padding-top: 9px;
background-image: url(~@/assets/images/home/zbbgClick.png);
background-size: 100%;
// background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.lydxz {
@include spanLevel;
// @include normalLevel;
text-align: center;
width: 90px;
height: 98px;
padding-top: 5px;
min-width: 120px;
height: 126px;
padding-top: 25px;
background-image: url(~@/assets/images/home/lydxzTree.png);
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.lydxzHover {
@include spanLevel;
// @include normalLevel;
text-align: center;
width: 90px;
height: 98px;
padding-top: 5px;
min-width: 120px;
height: 126px;
padding-top: 25px;
background-image: url(~@/assets/images/home/lydxzClick.png);
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.dyzxh {
@include spanLevel;
@include normalLevel;
height: 118px;
height: 137px;
width: 30px;
writing-mode: tb-rl;
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhTree.png);
background-size: 100%;
background-repeat: no-repeat;
}
.dyzxhHover {
@include spanLevel;
@include normalLevel;
height: 137px;
width: 30px;
writing-mode: tb-rl;
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhClick.png);
background-repeat: no-repeat;
}
.lxjt {
@include spanLevel;
display: flex;
align-items: center;
justify-content: space-around;
height: 118px;
height: 137px;
width: 30px;
writing-mode: tb-rl;
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhTree.png);
background-size: 100%;
background-repeat: no-repeat;
}
}
</style>

27
src/components/NameSplit/index.vue

@ -1,11 +1,13 @@
<template>
<div class="node-com">
<div v-if="!flag" class="nodeTitle" :title="getAllName(item[areaName])">{{ spliceNameFun(item[areaName], 4) }}</div>
<div v-if="!flag" class="nodeTitle" :title="getAllName(item[areaName])">{{ spliceNameFun(item[areaName], 8) }}</div>
<div class="name_more peoName" v-if="item[peopleName] && !item[peopleName].includes(',')" @click="gotoPersonnel(item.resiId)" :title="getAllName(item[peopleName])">{{ spliceNameFun(item[peopleName], 12) }}</div>
<div class="name_more" v-if="item[peopleName] && item[peopleName].includes(',')">
<span v-for="(i, k) in getItemNameArr(item[peopleName])" :key="i" @click="gotoPersonnel(item.resiId.split(',')[k])" :title="getAllName(i)">{{ spliceNameFun(i, 12) }}{{ k === getItemNameArr(item[peopleName]).length - 1 ? "" : "," }}</span>
<popTips :item="item" :pageName="pageName" />
<!-- 多个人员展示 -->
<!-- <popTips :item="item" :pageName="pageName" /> -->
</div>
<div v-if="item.partyOrgLevel < 9" class="peoPosition">({{ getPeopositionMap(item.partyOrgLevel) }})</div>
</div>
</template>
@ -43,26 +45,39 @@ export default {
},
getItemNameArr(str) {
return str.split(",").slice(0, 2);
return str.split(",").slice(0, 1);
},
spliceNameFun(row, num) {
return row;
return row.substring(0, num);
},
gotoPersonnel(id) {
if (id) {
this.$router.push({ path: `/organizational/orgPersonnel/${this.pageName}`, query: { user_id: id } });
} else {
this.$message.error("无法跳转!");
this.$message.error("该人员暂无居民信息!");
}
},
getPeopositionMap(type) {
const positionMap = new Map([
[1, "省委"],
[2, "市委"],
[3, "区委书记"],
[4, "党工委书记"],
[5, "党委书记"],
[6, "党总支书记"],
[7, "支部书记"],
[8, "组长"],
]);
return positionMap.get(type);
},
},
};
</script>
<style scope lang="scss">
.node-com {
padding: 0 12px;
// padding: 0 12px;
.nodeTitle {
font-size: 16px;
font-family: PingFang SC;

98
src/components/Tree/nodeWrap.vue

@ -17,19 +17,31 @@
<div class="condition-node-box">
<div class="auto-judge">
<div v-if="item.laneLevel >= 2 && item.laneLevel <= 7 && item.partyOrgLevel < 8">
<div class="wgdzb" @click="getChildrenData(item)">
<div :class="[item.children && item.children.length > 0 ? 'wgdzbHover' : 'wgdzb']">
<nameSplit :item="item" areaName="partyOrgName" peopleName="principalName" pageName="党组织架构" />
</div>
<div v-if="item._children" style="text-align: center" @click="getChildrenData(item, index, nodeConfig.children)">
<img v-if="item.children && item.children.length > 0" :src="require('@/assets/images/home/sh.png')" alt="" />
<img v-else :src="require('@/assets/images/home/zk.png')" alt="" />
</div>
</div>
<div v-if="item.partyOrgLevel === 8">
<div class="lydxz" @click="">
<div :class="[item.children && item.children.length > 0 ? 'lydxzHover' : 'lydxz']">
<nameSplit :item="item" areaName="partyOrgName" peopleName="principalName" pageName="党组织架构" />
</div>
<div v-if="item._children" style="text-align: center" @click="getChildrenData(item, index, nodeConfig.children)">
<img v-if="item.children && item.children.length > 0" :src="require('@/assets/images/home/sh.png')" alt="" />
<img v-else :src="require('@/assets/images/home/zk.png')" alt="" />
</div>
</div>
<div v-if="item.partyOrgLevel === 9">
<div class="dyzxh">
<div :class="[item.children && item.children.length > 0 ? 'dyzxhHover' : 'dyzxh']">
<nameSplit :item="item" :flag="flag" areaName="partyOrgName" peopleName="partyOrgName" pageName="党组织架构" />
</div>
<div v-if="item._children" style="text-align: center" @click="getChildrenData(item, index, nodeConfig.children)">
<img v-if="item.children && item.children.length > 0" :src="require('@/assets/images/home/sh.png')" alt="" />
<img v-else :src="require('@/assets/images/home/zk.png')" alt="" />
</div>
</div>
<div class="lxjtWrap" v-if="item.partyOrgLevel === 10">
<popHomeTip :item="item" pageName="党组织架构" />
@ -63,13 +75,19 @@ export default {
computed: {},
watch: {},
methods: {
getChildrenData(item) {
if (item.children) {
item._children = item.children;
item.children = null;
} else {
item.children = item._children;
}
getChildrenData(item, idx, arr) {
arr.forEach((element, index) => {
if (index === idx) {
if (element.children) {
element._children = element.children;
element.children = null;
} else {
element.children = element._children;
}
} else {
element.children = null;
}
});
},
},
};
@ -94,7 +112,7 @@ export default {
display: inline-block;
width: 168px;
height: 164px;
padding-top: 10px;
// padding-top: 10px;
text-align: center;
background-image: url(~@/assets/images/home/firstLevel.png);
background-size: 100%;
@ -103,44 +121,78 @@ export default {
.auto-judge {
.wgdzb {
@include spanLevel;
width: 90px;
height: 128px;
min-width: 120px;
height: 126px;
text-align: center;
padding-top: 5px;
padding-top: 9px;
background-image: url(~@/assets/images/home/zbbg.png);
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.wgdzbHover {
@include spanLevel;
min-width: 120px;
height: 126px;
text-align: center;
padding-top: 9px;
background-image: url(~@/assets/images/home/zbbgClick.png);
// background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.lydxz {
@include spanLevel;
// @include normalLevel;
text-align: center;
width: 216px;
height: 50px;
padding-top: 5px;
min-width: 120px;
height: 126px;
padding-top: 25px;
background-image: url(~@/assets/images/home/lydxzTree.png);
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
}
.lydxzHover {
@include spanLevel;
// @include normalLevel;
text-align: center;
min-width: 120px;
height: 126px;
padding-top: 25px;
background-image: url(~@/assets/images/home/lydxzClick.png);
background-repeat: no-repeat;
background-position: center;
}
.dyzxh {
@include spanLevel;
@include normalLevel;
height: 118px;
height: 137px;
width: 30px;
writing-mode: tb-rl;
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhTree.png);
background-size: 100%;
background-repeat: no-repeat;
}
.dyzxhHover {
@include spanLevel;
@include normalLevel;
height: 137px;
width: 30px;
writing-mode: tb-rl;
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhClick.png);
background-repeat: no-repeat;
}
.lxjt {
@include spanLevel;
display: flex;
align-items: center;
justify-content: space-around;
height: 118px;
height: 137px;
width: 30px;
writing-mode: tb-rl;
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhTree.png);
background-size: 100%;
background-repeat: no-repeat;
}
}
</style>

71
src/views/dataBoard/cpts/family/modules/EnjoyService.vue

@ -1,17 +1,55 @@
<template>
<div class="table">
<el-table v-if="list.length > 0" :data="list" max-height="390px" height="390px">
<el-table
v-if="list.length > 0"
:data="list"
max-height="390px"
height="390px"
>
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="变更人" prop="resiName" width="140" />
<el-table-column label="变更人" prop="resiName" />
<el-table-column label="变更类型" prop="typeName" width="" />
<el-table-column label="变更前" prop="beforeChange" width="120" />
<el-table-column label="变更后" prop="afterChange" width="120" />
<el-table-column label="变更前" prop="beforeChange" width="120">
<template slot-scope="scope">
<div>
<el-tooltip
class="item"
effect="dark"
:content="scope.row.beforeChange"
placement="top-start"
>
<span>{{ scope.row.beforeChange }}</span>
</el-tooltip>
</div>
</template>
</el-table-column>
<el-table-column label="变更后" prop="afterChange" width="120" >
<template slot-scope="scope">
<div>
<el-tooltip
class="item"
effect="dark"
:content="scope.row.afterChange"
placement="top-start"
>
<span>{{ scope.row.afterChange }}</span>
</el-tooltip>
</div>
</template>
</el-table-column>
<el-table-column label="操作人" prop="operatorName" width="120" />
<el-table-column label="调整时间" prop="changeTime" width="190" />
</el-table>
<div v-else style="width: 100%; height: 100%; text-align: center; padding-top: 120px">
<img width="268px" height="128px" src="~@/assets/images/overview/zanwu.png" />
<div
v-else
style="width: 100%; height: 100%; text-align: center; padding-top: 120px"
>
<img
width="268px"
height="128px"
src="~@/assets/images/overview/zanwu.png"
/>
<div style="color: #fff">暂无数据</div>
</div>
</div>
@ -53,15 +91,20 @@ export default {
1: "已回访",
};
//
this.$http.get("/actual/base/peopleRoomOverview/houseResidentChangeRecord?houseId=" + this.houseId).then(({ data: res }) => {
this.list = res.data.map((item) => {
return {
...item,
completeFlag: completeFlags[item.completeFlag],
};
this.$http
.get(
"/actual/base/peopleRoomOverview/houseResidentChangeRecord?houseId=" +
this.houseId
)
.then(({ data: res }) => {
this.list = res.data.map((item) => {
return {
...item,
completeFlag: completeFlags[item.completeFlag],
};
});
this.total = res.data.length;
});
this.total = res.data.length;
});
},
},
};

2
src/views/dataBoard/cpts/resi-details.vue

@ -52,7 +52,7 @@
</div>
<div class="item">
<div class="field">证件号</div>
<div class="value">{{ info.idcard ? info.idcard : "" }}</div>
<div class="value">{{ info.idcard ? $sensitive(info.idcard, 0, 14) : "" }}</div>
</div>
<div class="item">
<div class="field">备注</div>

87
src/views/dataBoard/organizational/dangTree/index.vue

@ -2,7 +2,7 @@
<div class="wrap">
<!-- v-on:wheel="zoomSize" :style="'transform: scale(' + nowVal / 100 + ');'" -->
<div class="content">
<div v-for="(item, index) in levelArr" :key="item" :class="[item > 9 ? 'lastLevel1' : '', item === 9 ? 'lastLevel' : '', `flowLevel-${index + 1}`]" :style="{ height: item === 8 ? '90px' : '', lineHeight: item === 8 ? '90px' : '' }">
<div v-for="(item, index) in levelArr" :key="item" :class="[item > 9 ? 'lastLevel1' : '', item === 9 ? 'lastLevel' : '', `flowLevel-${index + 1}`]" :style="{ height: item === 8 ? '180px' : '', lineHeight: item === 8 ? '180px' : '' }">
<div :class="[item === 8 ? 'otherTop' : '']">{{ getTitleNameMapFun(item) }}</div>
</div>
<el-row>
@ -10,7 +10,7 @@
<div class="contentList"></div>
</el-col>
<el-col :span="20">
<div class="dingflow-design" v-loading="loading" element-loading-text="加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 21, 64, 0.3)">
<div class="dingflow-design" :style="{ height: treeHeight + 'px' }" v-loading="loading" element-loading-text="加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 21, 64, 0.3)">
<nodeWrap :nodeConfig.sync="nodeConfig"></nodeWrap>
</div>
</el-col>
@ -29,13 +29,14 @@ export default {
nowVal: 100,
nodeConfig: {},
zoom: 0,
treeHeight: 300,
};
},
watch: {
"$store.state.chooseArea.chooseName"(n, v) {
if (n.orgId) {
this.levelArr = [];
this.nodeConfig = {};
// this.levelArr = [];
// this.nodeConfig = {};
// this.getTreeData();
}
},
@ -65,6 +66,7 @@ export default {
//
getDataPLevel(data) {
console.log("data", data);
data.forEach((item) => {
this.levelArr.push(item.partyOrgLevel);
if (item.children && item.children.length > 0) {
@ -72,6 +74,7 @@ export default {
}
});
const myArray = [...new Set(this.levelArr)];
this.treeHeight = myArray.length * 180 + 220;
this.levelArr = this.getLevelArrNum(myArray);
},
@ -87,7 +90,7 @@ export default {
this.hideChildrenData(item._children);
}
});
console.log(newData);
this.nodeConfig = newData[0];
},
//
@ -103,9 +106,8 @@ export default {
this.$message.error("暂无数据");
return;
}
// this.nodeConfig = data[0];
this.hideChildrenData(data);
this.getDataPLevel(data);
this.hideChildrenData(data);
this.loading = false;
} else {
this.loading = false;
@ -144,7 +146,7 @@ export default {
};
</script>
<style lang="scss">
<style lang="scss" scoped>
@mixin flowLevwlCommon {
position: absolute;
width: 100%;
@ -175,12 +177,12 @@ export default {
}
.lastLevel {
height: 145px !important;
margin-top: -45px !important;
height: 180px !important;
// margin-top: -45px !important;
}
.lastLevel1 {
height: 145px !important;
margin-top: -37px !important;
height: 180px !important;
// margin-top: -37px !important;
}
.flowLevel-1 {
@ -210,19 +212,19 @@ export default {
.flowLevel-6,
.flowLevel-7 {
@include flowLevwlCommon;
height: 160px;
height: 180px;
}
.flowLevel-2 {
top: 181px;
line-height: 110px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 26px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -232,15 +234,15 @@ export default {
}
.flowLevel-3 {
top: 329px;
line-height: 120px;
top: 379px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 31px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -250,15 +252,15 @@ export default {
}
.flowLevel-4 {
top: 475px;
line-height: 128px;
top: 578px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -268,15 +270,15 @@ export default {
}
.flowLevel-5 {
top: 623px;
line-height: 130px;
top: 776px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -286,15 +288,14 @@ export default {
}
.flowLevel-6 {
top: 771px;
line-height: 130px;
top: 974px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -304,15 +305,15 @@ export default {
}
.flowLevel-7 {
top: 922px;
line-height: 130px;
top: 1172px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -323,22 +324,22 @@ export default {
.otherTop {
&::after {
top: 15px !important;
top: 60px !important;
}
}
.flowLevel-8 {
@include flowLevwlCommon;
top: 1070px;
top: 1370px;
height: 90px;
line-height: 90px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 14px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -349,16 +350,16 @@ export default {
.flowLevel-9 {
@include flowLevwlCommon;
top: 1179px;
height: 135px;
line-height: 135px;
top: 1569px;
height: 160px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -369,16 +370,16 @@ export default {
.flowLevel-10 {
@include flowLevwlCommon;
top: 1338px;
height: 135px;
line-height: 135px;
top: 1766px;
height: 180px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;

90
src/views/dataBoard/organizational/gridTree/index.vue

@ -2,7 +2,7 @@
<div class="wrap">
<!-- v-on:wheel="zoomSize" :style="'transform: scale(' + nowVal / 100 + ');'" -->
<div class="content">
<div v-for="(item, index) in levelArr" :key="item" :class="[item === 'unit_chief' ? 'lastLevel' : '', `flowLevel-${index + 1}`]" :style="{ height: item === 'building_chief' ? '90px' : '', lineHeight: item === 'building_chief' ? '90px' : '' }">
<div v-for="(item, index) in levelArr" :key="item" :class="[item === 'unit_chief' ? 'lastLevel' : '', `flowLevel-${index + 1}`]" :style="{ height: item === 'building_chief' ? '180px' : '', lineHeight: item === 'building_chief' ? '180px' : '' }">
<div :class="[item === 'building_chief' ? 'otherTop' : '']">{{ getTitleNameMapFun(item) }}</div>
</div>
<el-row>
@ -10,7 +10,7 @@
<div class="contentList"></div>
</el-col>
<el-col :span="20">
<div class="dingflow-design" v-loading="loading" element-loading-text="加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 21, 64, 0.3)">
<div class="dingflow-design" :style="{ height: treeHeight + 'px' }" v-loading="loading" element-loading-text="加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 21, 64, 0.3)">
<nodeWrapGrid :nodeConfig.sync="nodeConfig"></nodeWrapGrid>
</div>
</el-col>
@ -28,14 +28,15 @@ export default {
levelArr: [],
nowVal: 100,
nodeConfig: {},
treeHeight: 300,
};
},
computed: {},
watch: {
"$store.state.chooseArea.chooseName"(n, v) {
if (n.orgId) {
this.levelArr = [];
this.nodeConfig = {};
// this.levelArr = [];
// this.nodeConfig = {};
// this.getTreeData();
}
},
@ -80,8 +81,25 @@ export default {
}
});
const myArray = [...new Set(this.levelArr)];
this.treeHeight = myArray.length * 180 + 200;
this.levelArr = this.getLevelArrNum(myArray);
},
hideChildrenData(data) {
const newData = [...data];
newData.forEach((item) => {
if (item.laneLevel === 1) {
this.hideChildrenData(item.children);
}
if (item.children && item.children.length > 0 && item.laneLevel >= 2) {
item._children = item.children;
item.children = null;
this.hideChildrenData(item._children);
}
});
this.nodeConfig = newData[0];
},
//
getTreeData() {
this.loading = true;
@ -95,8 +113,8 @@ export default {
this.$message.error("暂无数据");
return;
}
this.nodeConfig = data[0];
this.getDataPLevel(data);
this.hideChildrenData(data);
this.loading = false;
} else {
this.loading = false;
@ -133,7 +151,7 @@ export default {
};
</script>
<style lang="scss">
<style lang="scss" scoped>
@mixin flowLevwlCommon {
position: absolute;
width: 100%;
@ -165,7 +183,7 @@ export default {
.lastLevel {
height: 145px !important;
margin-top: -45px !important;
// margin-top: -45px !important;
}
.flowLevel-1 {
@ -195,19 +213,19 @@ export default {
.flowLevel-6,
.flowLevel-7 {
@include flowLevwlCommon;
height: 126px;
height: 180px;
}
.flowLevel-2 {
top: 181px;
line-height: 110px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 26px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -217,15 +235,15 @@ export default {
}
.flowLevel-3 {
top: 329px;
line-height: 120px;
top: 379px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 31px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -235,15 +253,15 @@ export default {
}
.flowLevel-4 {
top: 475px;
line-height: 128px;
top: 578px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -253,15 +271,15 @@ export default {
}
.flowLevel-5 {
top: 623px;
line-height: 130px;
top: 776px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -271,15 +289,15 @@ export default {
}
.flowLevel-6 {
top: 771px;
line-height: 130px;
top: 974px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -289,15 +307,15 @@ export default {
}
.flowLevel-7 {
top: 922px;
line-height: 130px;
top: 1171px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -308,22 +326,22 @@ export default {
.otherTop {
&::after {
top: 15px !important;
top: 60px !important;
}
}
.flowLevel-8 {
@include flowLevwlCommon;
top: 1070px;
height: 90px;
line-height: 90px;
top: 1371px;
height: 180px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 14px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -335,14 +353,14 @@ export default {
.flowLevel-9 {
@include flowLevwlCommon;
top: 1179px;
height: 135px;
line-height: 135px;
height: 180px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -354,15 +372,15 @@ export default {
.flowLevel-10 {
@include flowLevwlCommon;
top: 1338px;
height: 135px;
line-height: 135px;
height: 180px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;

65
src/views/dataBoard/organizational/jwTree/index.vue

@ -2,7 +2,7 @@
<div class="wrap">
<!-- v-on:wheel="zoomSize" :style="'transform: scale(' + nowVal / 100 + ');'" -->
<div class="content">
<div v-for="(item, index) in levelArr" :key="item" :class="[item === 'unit_chief' ? 'lastLevel' : '', item === 'public_welfare_post' ? 'lastLevel1' : '', `flowLevel-${index + 1}`]" :style="{ height: item === 'building_chief' ? '150px' : '', lineHeight: item === 'building_chief' ? '150px' : '' }">
<div v-for="(item, index) in levelArr" :key="item" :class="[item === 'unit_chief' ? 'lastLevel' : '', item === 'public_welfare_post' ? 'lastLevel1' : '', `flowLevel-${index + 1}`]" :style="{ height: item === 'building_chief' ? '180px' : '', lineHeight: item === 'building_chief' ? '180px' : '' }">
<div :class="[item === 'building_chief' ? 'otherTop' : '']">{{ getTitleNameMapFun(item) }}</div>
</div>
<el-row>
@ -35,8 +35,8 @@ export default {
watch: {
"$store.state.chooseArea.chooseName"(n, v) {
if (n.orgId) {
this.levelArr = [];
this.nodeConfig = {};
// this.levelArr = [];
// this.nodeConfig = {};
// this.getTreeData();
}
},
@ -83,7 +83,7 @@ export default {
}
});
const myArray = [...new Set(this.levelArr)];
this.treeHeight = myArray.length * 180 + 100;
this.treeHeight = myArray.length * 180 + 220;
this.levelArr = this.getLevelArrNum(myArray);
},
@ -154,7 +154,7 @@ export default {
};
</script>
<style lang="scss">
<style lang="scss" scoped>
@mixin flowLevwlCommon {
position: absolute;
width: 100%;
@ -185,12 +185,12 @@ export default {
}
.lastLevel {
height: 160px !important;
margin-top: -45px !important;
height: 180px !important;
// margin-top: -45px !important;
}
.lastLevel1 {
height: 145px !important;
margin-top: -37px !important;
height: 180px !important;
// margin-top: -37px !important;
}
.flowLevel-1 {
@ -220,7 +220,7 @@ export default {
.flowLevel-6,
.flowLevel-7 {
@include flowLevwlCommon;
height: 180px;
height: 180px !important;
}
.flowLevel-2 {
@ -243,14 +243,14 @@ export default {
.flowLevel-3 {
top: 379px;
line-height: 185px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 62px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -261,14 +261,14 @@ export default {
.flowLevel-4 {
top: 577px;
line-height: 128px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 43px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -279,6 +279,7 @@ export default {
.flowLevel-5 {
top: 775px;
height: 180px !important;
line-height: 130px;
div {
@ -286,7 +287,7 @@ export default {
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -296,15 +297,16 @@ export default {
}
.flowLevel-6 {
top: 991px;
line-height: 171px;
top: 974px;
line-height: 180px;
height: 180px !important;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 55px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -314,15 +316,16 @@ export default {
}
.flowLevel-7 {
top: 1161px;
line-height: 130px;
top: 1172px;
line-height: 180px;
height: 180px !important;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -333,22 +336,22 @@ export default {
.otherTop {
&::after {
top: 43px !important;
top: 60px !important;
}
}
.flowLevel-8 {
@include flowLevwlCommon;
top: 1070px;
top: 1371px;
height: 90px;
line-height: 90px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 14px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -359,16 +362,16 @@ export default {
.flowLevel-9 {
@include flowLevwlCommon;
top: 1179px;
top: 1568px;
height: 135px;
line-height: 135px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;
@ -379,16 +382,16 @@ export default {
.flowLevel-10 {
@include flowLevwlCommon;
top: 1338px;
top: 1738px;
height: 135px;
line-height: 135px;
line-height: 180px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
top: 60px;
left: 15px;
width: 180px;
height: 60px;

4
src/views/dataBoard/satisfactionEval/modules/TypesOfDissatisfaction/index.vue

@ -30,7 +30,7 @@ export default {
value: 2,
},
],
typeCondition: 1,
typeCondition: 5,
typeConditionList: [
{
label: "本月",
@ -145,7 +145,7 @@ export default {
max: datamax[i],
axisLabel: {
show: i === 0,
color:'rgba(255,255,255,1)',
color: "rgba(58,128,231,0.36)",
formatter: function (value) {
return Math.floor(value);
},

Loading…
Cancel
Save