Browse Source

合并dev分支代码

feature
SongZhen 2 years ago
parent
commit
353251156a
  1. 17
      src/views/dataBoard/cpts/personnel/index.vue
  2. 111
      src/views/dataBoard/cpts/personnel/modules/BusinessRecords.vue
  3. 172
      src/views/dataBoard/cpts/personnel/modules/EnjoyService.vue
  4. 85
      src/views/dataBoard/cpts/personnel/modules/Family.vue
  5. 62
      src/views/dataBoard/cpts/personnel/modules/MatterDetails.vue
  6. 39
      src/views/dataBoard/cpts/personnel/modules/PointsRecord.vue
  7. 120
      src/views/dataBoard/organizational/personnel/modules/businessTables/community.vue
  8. 127
      src/views/dataBoard/organizational/personnel/modules/businessTables/complaint.vue
  9. 105
      src/views/dataBoard/organizational/personnel/modules/businessTables/economize.vue
  10. 109
      src/views/dataBoard/organizational/personnel/modules/businessTables/give-service.vue
  11. 125
      src/views/dataBoard/organizational/personnel/modules/businessTables/reporting-events.vue
  12. 112
      src/views/dataBoard/organizational/personnel/modules/businessTables/resident.vue
  13. 45
      src/views/dataBoard/satisfactionEval/components/Tabs/index.vue

17
src/views/dataBoard/cpts/personnel/index.vue

@ -1,8 +1,5 @@
<template> <template>
<div> <div>
<div class="breadcrumb">
<Breadcrumb :list="breadcrumbList" />
</div>
<el-row> <el-row>
<el-col :span="10"> <el-col :span="10">
<div class="sub-title">事项详情</div> <div class="sub-title">事项详情</div>
@ -49,23 +46,9 @@ export default {
}, },
data() { data() {
return { return {
breadcrumbList: [
{
path: "/organizational/dangTree",
name: "党组织架构",
},
{
path: "",
name: "居民画像",
},
],
}; };
}, },
mounted() { mounted() {
console.log(this.breadcrumbList, this.$route);
this.$set(this.breadcrumbList[2], "name", this.$route.query.name);
this.breadcrumbList[2].name = this.$route.query.name;
}, },
}; };
</script> </script>

111
src/views/dataBoard/cpts/personnel/modules/BusinessRecords.vue

@ -1,72 +1,103 @@
<template> <template>
<div class="business-records"> <div class="business-records">
<Tabs v-model="type" :list="typeList" @changeVal="typeChange" /> <Tabs v-model="type" :list="typeList" @changeVal="typeChange" />
<div class="table"> <complaint @changeTotal="changeTotal" v-show="type == 1" />
<el-table :data="list"> <economize @changeTotal="changeTotal" v-show="type == 2" />
<el-table-column label="序号" type="index" width="80" /> <community @changeTotal="changeTotal" v-show="type == 3" />
<el-table-column label="评价周期" prop="key" width="" /> <reporting-events @changeTotal="changeTotal" v-show="type == 4" />
<el-table-column label="姓名" prop="key" width="" /> <resident @changeTotal="changeTotal" v-show="type == 5" />
<el-table-column label="电话" prop="key" width="" /> <giveService @changeTotal="changeTotal" v-show="type == 6" />
<el-table-column label="不满意类型" prop="key" width="" />
<el-table-column label="不满意原因" prop="key" width="" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
</div>
</div> </div>
</template> </template>
<script> <script>
import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue"; import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue";
import complaint from "@/views/dataBoard/organizational/personnel/modules/businessTables/complaint.vue";
import economize from "@/views/dataBoard/organizational/personnel/modules/businessTables/economize.vue";
import community from "@/views/dataBoard/organizational/personnel/modules/businessTables/community.vue";
import reportingEvents from "@/views/dataBoard/organizational/personnel/modules/businessTables/reporting-events.vue";
import resident from "@/views/dataBoard/organizational/personnel/modules/businessTables/resident.vue";
import giveService from "@/views/dataBoard/organizational/personnel/modules/businessTables/give-service.vue";
export default { export default {
name: "BusinessRecords", name: "BusinessRecords",
components: { Tabs }, components: {
Tabs,
complaint,
reportingEvents,
economize,
community,
resident,
giveService,
},
data() { data() {
return { return {
total: 10,
queryParams: {
pageNum: 0,
pageSize: 10,
},
type: 1, type: 1,
typeList: [ typeList: [
{ {
label: " 满意度", label: "12345投诉",
value: 1, value: 1,
}, },
{ {
label: "居民需求", label: "省满意度调查",
value: 2, value: 2,
}, },
{
label: "社区满意度自查",
value: 3,
},
{ {
label: "上报事件", label: "上报事件",
value: 4,
},
{
label: "居民需求",
value: 5,
},
{
label: "社区服务",
value: 6,
},
],
typeLists: [
{
label: "12345投诉",
value: 1,
},
{
label: "省满意度调查",
value: 2,
},
{
label: "社区满意度自查",
value: 3, value: 3,
}, },
// { {
// label: '', label: "上报事件",
// value: 4 value: 4,
// }, { },
// label: '', {
// value: 5 label: "居民需求",
// }, { value: 5,
// label: '', },
// value: 6 {
// }, { label: "社区服务",
// label: '访', value: 6,
// value: 7 },
// }
], ],
list: [{}, {}, {}, {}, {}],
}; };
}, },
created() {
},
methods: { methods: {
typeChange() {}, typeChange(e) {
getList() {}, this.type = e;
},
changeTotal(item) {
this.typeList[item.name].label = item.total
? `${this.typeLists[item.name].label}${item.total}`
: this.typeLists[item.name].label;
},
}, },
}; };
</script> </script>

172
src/views/dataBoard/cpts/personnel/modules/EnjoyService.vue

@ -1,71 +1,95 @@
<template> <template>
<div className="event-statistics"> <div className="event-statistics">
<div id="enjoyServiceChart" style="height: 360px;"></div> <div id="enjoyServiceChart" style="height: 360px"></div>
</div> </div>
</template> </template>
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
function dataFormatter(arr) {
return arr.map((item) => {
return Number(item.classificationNum);
});
}
function dataFormatter1(arr) {
return arr.map((item) => {
return item.classification;
});
}
export default { export default {
name: "EnjoyService", name: "EnjoyService",
data() { data() {
return {} return {
dataArr: [],
nameArr: ["岗位找人", "技能找人", "温暖找人", "服务找人"],
};
}, },
mounted() { created() {
this.initCharts() this.getData();
}, },
mounted() {},
methods: { methods: {
getData() {
this.$http
.get("/actual/base/peopleRoomOverview/serviceNumber")
.then(({ data: res }) => {
this.dataArr = dataFormatter(res.data);
this.nameArr = dataFormatter1(res.data);
this.initCharts();
});
},
initCharts() { initCharts() {
let div = document.getElementById('enjoyServiceChart'); let div = document.getElementById("enjoyServiceChart");
this.myChart = echarts.init(div); this.myChart = echarts.init(div);
let xData = ['岗位找人', '技能找人', '温暖找人', '服务找人']; let xData = this.nameArr;
let tq = [300, 90, 48, 39]; let tq = this.dataArr;
const max = Math.max(...tq) const max = Math.max(...tq);
let barArray = new Array(xData.length).fill((parseInt(max / 100) + 1) * 100) let barArray = new Array(xData.length).fill(
(parseInt(max / 100) + 1) * 100
);
var option = { var option = {
title: { title: {
show: false, show: false,
text: '', text: "",
x: 'center', x: "center",
top: '15px', top: "15px",
textStyle: { textStyle: {
color: '#333333', color: "#333333",
fontWeight: 500, fontWeight: 500,
fontSize: 18, fontSize: 18,
}, },
}, },
tooltip: { tooltip: {
trigger: 'axis', trigger: "axis",
backgroundColor: 'rgba(13, 64, 71, 0.50)', backgroundColor: "rgba(13, 64, 71, 0.50)",
borderColor: 'rgba(143, 225, 252, 0.60)', borderColor: "rgba(143, 225, 252, 0.60)",
padding: 8, padding: 8,
textStyle: { textStyle: {
color: '#fff', color: "#fff",
}, },
formatter: function (params) { formatter: function (params) {
console.log(params) var res = "";
var res = ''
for (var i = 0; i < params.length; i++) { for (var i = 0; i < params.length; i++) {
if (params[i].seriesName != "") { if (params[i].seriesName != "") {
res += '<p>' + params[0].name + ':' + params[i].data + '</p>' res += "<p>" + params[0].name + ":" + params[i].value + "</p>";
} }
} }
return res; return res;
}, },
}, },
grid: { grid: {
top: '0', top: "0",
left: '1%', left: "1%",
right: '2%', right: "2%",
bottom: '0', bottom: "0",
containLabel: true containLabel: true,
}, },
yAxis: [ yAxis: [
{ {
type: 'category', type: "category",
axisTick: { axisTick: {
show: false, show: false,
}, },
@ -74,115 +98,115 @@ export default {
}, },
axisLine: { axisLine: {
lineStyle: { lineStyle: {
color: '#323c41' color: "#323c41",
} },
}, },
axisLabel: { axisLabel: {
align: 'right', align: "right",
textStyle: { textStyle: {
fontSize: 12, fontSize: 12,
color: '#A3B9DA' color: "#A3B9DA",
} },
}, },
boundaryGap: true, boundaryGap: true,
data: xData, data: xData,
}, { },
type: 'category', {
type: "category",
data: xData, data: xData,
axisTick: { axisTick: {
show: false, show: false,
}, },
axisLine: {show: false}, axisLine: { show: false },
axisLabel: { axisLabel: {
show: false, show: false,
}, },
boundaryGap: true, boundaryGap: true,
},
}
], ],
xAxis: [ xAxis: [
{ {
type: 'value', type: "value",
splitLine: { splitLine: {
show: true, show: true,
lineStyle: { lineStyle: {
color: 'rgba(4,187,255,0.18)', color: "rgba(4,187,255,0.18)",
type: 'dashed' type: "dashed",
}, },
}, },
nameTextStyle: { nameTextStyle: {
color: '#A3B9DA', color: "#A3B9DA",
textStyle: { textStyle: {
fontSize: 12 fontSize: 12,
}, },
align: 'center' align: "center",
}, },
axisLabel: { axisLabel: {
show: true, show: true,
color: '#A3B9DA', color: "#A3B9DA",
textStyle: { textStyle: {
fontSize: 12 fontSize: 12,
} },
}, },
axisTick: { axisTick: {
show: false show: false,
} },
} },
], ],
series: [ series: [
{ {
type: 'bar', type: "bar",
barWidth: 16, barWidth: 16,
itemStyle: { itemStyle: {
// lenged // lenged
opacity: 1, // opacity: 1, //
color: new echarts.graphic.LinearGradient( color: new echarts.graphic.LinearGradient(
1, 1,
0, 0,
0, 0,
0, 0,
[ [
{ {
offset: 0, offset: 0,
color: '#6EDDFE' // 0% color: "#6EDDFE", // 0%
}, },
{ {
offset: 1, offset: 1,
color: '#0B1F57' // 100% color: "#0B1F57", // 100%
} },
], ],
false false
) ),
}, },
data: tq, //data.values data: tq, //data.values
}, },
{ {
name: '', name: "",
type: 'bar', type: "bar",
barWidth: 66, barWidth: 66,
barGap: '-60%', barGap: "-60%",
data: barArray, data: barArray,
itemStyle: { itemStyle: {
normal: { normal: {
color: 'rgba(89,130,194,0.12)' color: "rgba(89,130,194,0.12)",
} },
}, },
zlevel: -1, zlevel: -1,
yAxisIndex: 1, yAxisIndex: 1,
} },
], ],
}; };
this.myChart.setOption(option); this.myChart.setOption(option);
window.addEventListener("resize", () => this.myChart.resize()); window.addEventListener("resize", () => this.myChart.resize());
}, },
} },
} };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.event-statistics { .event-statistics {
padding: 16px 16px; padding: 16px 16px;
} }
</style> </style>

85
src/views/dataBoard/cpts/personnel/modules/Family.vue

@ -1,44 +1,79 @@
<template> <template>
<div class="family"> <div class="family">
<div class="tag"> <div class="tag" v-for="item in data" :key="item.id">
<div>张三(户主)</div> <div>
<div>入户状态入户一致</div> {{ item.name }}
<div>居民分类老年人</div> <span v-if="item.houseHolderRel"
</div> >({{ item.houseHolderRel == "本人" ? "户主" : item.houseHolderRel }})
<div class="tag"> </span>
<div>张三(户主)</div> </div>
<div>入户状态入户一致</div> <div v-if="item.householdSituation">
<div>居民分类老年人</div> 入户状态{{ item.householdSituation }}
</div> </div>
<div class="tag"> <div>居民分类{{ getType(item.classificationOfInhabitantsList) }}</div>
<div>张三(户主)</div>
<div>入户状态入户一致</div>
</div>
<div class="tag">
<div>张三(户主)</div>
<div>入户状态入户一致</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: "Family" name: "Family",
} data() {
return {
data: [],
queryParam: {
type: "0",
},
};
},
computed: {
getType() {
return (arr) => {
let txt = "";
arr.forEach((item, index) => {
if (arr.length == index + 1) {
txt = txt + item;
} else {
txt = txt + item + ",";
}
});
return txt;
};
},
},
created() {
const query = this.$route.query;
this.queryParam.resid = query.user_id;
this.getDatas();
},
methods: {
getDatas() {
this.$http
.post(
"/actual/base/peopleRoomOverview/getFamilyRelationshipList?type=0&resid=" +
this.queryParam.resid,
this.queryParam
)
.then(({ data: res }) => {
this.data = res.data;
});
},
},
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.family { .family {
width: 464px; width: 464px;
height: 340px; height: 340px;
background: url('@/assets/images/manyidu/gx_bg.png') no-repeat center; background: url("@/assets/images/manyidu/gx_bg.png") no-repeat center;
position: relative; position: relative;
margin: 40px auto; margin: 40px auto;
} }
.tag { .tag {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
line-height: 22px; line-height: 22px;
padding: 18px 24px; padding: 18px 24px;
box-sizing: border-box; box-sizing: border-box;
@ -46,14 +81,16 @@ export default {
&:nth-of-type(1), &:nth-of-type(1),
&:nth-of-type(2) { &:nth-of-type(2) {
background: url("@/assets/images/manyidu/gx_big.png") no-repeat center; background: url("@/assets/images/manyidu/gx_big.png") no-repeat center;
background-size: 100% 100%;
width: 180px; width: 180px;
height: 100px; min-height: 100px;
} }
&:nth-of-type(3), &:nth-of-type(3),
&:nth-of-type(4) { &:nth-of-type(4) {
background: url("@/assets/images/manyidu/gx_small.png") no-repeat center; background: url("@/assets/images/manyidu/gx_small.png") no-repeat center;
background-size: 100% 100%;
width: 180px; width: 180px;
height: 70px; min-height: 100px;
padding: 15px 24px; padding: 15px 24px;
} }
&:nth-of-type(1) { &:nth-of-type(1) {
@ -73,4 +110,4 @@ export default {
bottom: 41px; bottom: 41px;
} }
} }
</style> </style>

62
src/views/dataBoard/cpts/personnel/modules/MatterDetails.vue

@ -1,23 +1,60 @@
<template> <template>
<div class="matter-details"> <div class="matter-details">
<div class="user-img"> <div class="user-img">
<img src="@/assets/images/manyidu/dn_bg1.png" alt=""> <img src="@/assets/images/manyidu/dn_bg1.png" alt="" />
</div> </div>
<div class="tags"> <div class="tags">
<div class="tag red">满意度风险人员</div> <div class="tag" v-if="data.name">{{ data.name }}</div>
<div class="tag small">与子女同住</div> <div class="tag red" v-if="data.riskyFlag == '1'">满意度风险人员</div>
<div class="tag">第三网格</div> <div class="tag small" v-if="data.gender">
<div class="tag small">入户一致</div> {{ genderArr[data.gender] }}
<div class="tag">13343999999</div> </div>
<div class="tag">四季景园1号楼1单元101</div> <div class="tag" v-if="data.gridName">{{ data.gridName }}</div>
<div class="tag small" v-if="data.idNum">
{{ data.idNum }}
</div>
<div class="tag" v-if="data.mobile">{{ data.mobile }}</div>
<div class="tag small" v-if="data.householdSituation">
{{ data.householdSituation }}
</div>
<div class="tag" v-if="data.birthday">
{{ data.birthday }}
</div>
<div class="tag" v-if="data.fullName">{{ data.fullName }}</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: "MatterDetails" name: "MatterDetails",
} data() {
return {
data: {},
queryParams: {},
genderArr: ["未知", "男", "女"],
};
},
created() {
const query = this.$route.query;
this.queryParams.resid = query.user_id;
this.getDatas();
},
methods: {
getDatas() {
this.$http
.post(
"/actual/base/peopleRoomOverview/getPersonalFile?resid=" +
this.queryParams.resid,
this.queryParams
)
.then(({ data: res }) => {
this.data = res.data;
});
},
},
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -43,7 +80,7 @@ export default {
justify-content: center; justify-content: center;
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
line-height: 16px; line-height: 16px;
box-sizing: border-box; box-sizing: border-box;
padding: 24px; padding: 24px;
@ -57,7 +94,7 @@ export default {
} }
&.red { &.red {
background: url("@/assets/images/manyidu/dn_red.png") center no-repeat; background: url("@/assets/images/manyidu/dn_red.png") center no-repeat;
color: #FE0000; color: #fe0000;
} }
&:nth-of-type(1) { &:nth-of-type(1) {
left: 0; left: 0;
@ -89,5 +126,4 @@ export default {
bottom: 10px; bottom: 10px;
} }
} }
</style>
</style>

39
src/views/dataBoard/cpts/personnel/modules/PointsRecord.vue

@ -1,11 +1,11 @@
<template> <template>
<div> <div>
<div class="enjoy-service"> <div class="enjoy-service">
<div class="enjoy-service-item" v-for="(item,index) in 5"> <div class="enjoy-service-item" v-for="(item, index) in data">
<div class="num">+10</div> <div class="num">+{{ item.classificationNum }}</div>
<div class="info"> <div class="info">
<div class="title">便民服务-配餐服务</div> <div class="title">{{ item.classification }}</div>
<div class="time">2023-07-15 15:30:30</div> <div class="time">{{ item.recordTime }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -14,21 +14,37 @@
<script> <script>
export default { export default {
name: "PointsRecord" name: "PointsRecord",
} data() {
return {
data:[],
};
},
created() {
this.getData();
},
methods: {
getData() {
this.$http
.get("/actual/base/peopleRoomOverview/recorHistory")
.then(({ data: res }) => {
this.data = res.data;
});
},
},
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.enjoy-service { .enjoy-service {
padding-left: 26px; padding-left: 26px;
} }
.enjoy-service-item { .enjoy-service-item {
color: #FFFFFF; color: #ffffff;
display: flex; display: flex;
padding: 14px 16px 14px; padding: 14px 16px 14px;
margin-bottom: 8px; margin-bottom: 8px;
background: #07266B; background: #07266b;
.num { .num {
font-size: 24px; font-size: 24px;
font-weight: 500; font-weight: 500;
@ -43,9 +59,8 @@ export default {
} }
.time { .time {
font-weight: 400; font-weight: 400;
color: #A3B9DA; color: #a3b9da;
} }
} }
} }
</style>
</style>

120
src/views/dataBoard/organizational/personnel/modules/businessTables/community.vue

@ -0,0 +1,120 @@
<template>
<div class="table">
<el-table :data="list" max-height="375px" height="375px">
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="不满意事项类型" prop="scope" width="190" />
<el-table-column label="不满意事项描述" prop="problemDesc" width="" />
<el-table-column label="办理状态" prop="completeFlag" width="120" />
<el-table-column label="是否回访" prop="isReturn" width="120" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "community",
data() {
return {
queryParams: {
residList: [],
},
list: [],
total: 0,
};
},
created() {
const query = this.$route.query;
this.queryParams.residList[0] = query.user_id;
this.getList();
},
mounted() {},
methods: {
getList() {
// (-2-1访0访/访1访)
const completeFlags = {
"-2": "未知",
"-1": "不接受回访",
0: "接受回访/待回访",
1: "已回访",
};
//
this.$http
.post(
"/actual/base/peopleRoomOverview/communitySatisfactionPageList",
this.queryParams
)
.then(({ data: res }) => {
this.list = res.data.map((item) => {
return {
...item,
completeFlag: completeFlags[item.completeFlag],
};
});
this.total = res.data.length;
this.$emit("changeTotal", { name: 2, total: this.total });
});
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

127
src/views/dataBoard/organizational/personnel/modules/businessTables/complaint.vue

@ -0,0 +1,127 @@
<template>
<div class="table">
<el-table :data="list" max-height="375px" height="375px">
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="事件类型" prop="categorycode" width="" />
<el-table-column label="事件描述" prop="eventcontent" width="" />
<el-table-column label="办理状态" prop="status" width="" />
<el-table-column label="接收时间" prop="happentime" width="180" />
<el-table-column label="标记" prop="marktype" width="" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
<Pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
export default {
name: "complaint",
data() {
return {
queryParams: {
pageNo: 1,
pageSize: 10,
eventType: "3",
residList: [],
},
list: [],
total: 0,
};
},
created() {},
mounted() {
const query = this.$route.query;
this.queryParams.residList[0] = query.user_id;
this.getList();
},
methods: {
getList() {
//
const statusArr = {
processing: "处理中",
closed_case: "已办结",
};
const marktypes = ["普通事件", "难点读点", "矛盾纠纷", "自身问题"];
this.$http
.post("/actual/base/peopleRoomOverview/eventPageList", this.queryParams)
.then(({ data: res }) => {
this.list = res.data.list.map((item) => {
return {
...item,
status: item.status?statusArr[item.status]:null,
marktype: marktypes[item.marktype],
};
});
this.total = res.data.total;
this.$emit("changeTotal", { name: 0, total: this.total });
});
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

105
src/views/dataBoard/organizational/personnel/modules/businessTables/economize.vue

@ -0,0 +1,105 @@
<template>
<div class="table">
<el-table :data="list" max-height="375px" height="375px">
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="不满意事项类型" prop="scope" width="190" />
<el-table-column label="不满意事项描述" prop="problemDesc" width="" />
<el-table-column label="办理状态" prop="completeFlag" width="120" />
<el-table-column label="是否回访" prop="isReturn" width="120" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "economize",
data() {
return {
queryParams: {
residList: [],
},
list: [],
total: 0,
};
},
created() {},
mounted() {
const query = this.$route.query;
this.queryParams.residList[0] = query.user_id;
this.getList();
},
methods: {
getList() {
//
this.$http
.post("/actual/base/peopleRoomOverview/provincialSatisfactionPageList", this.queryParams)
.then(({ data: res }) => {
this.list = res.data;
this.total = res.data.length;
this.$emit("changeTotal", { name: 1, total: this.total });
});
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

109
src/views/dataBoard/organizational/personnel/modules/businessTables/give-service.vue

@ -0,0 +1,109 @@
<template>
<div class="table">
<el-table :data="list" max-height="375px" height="375px">
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="需求类型" prop="serviceCategoryKey" width="" />
<el-table-column label="事件描述" prop="serviceName" width="" />
<el-table-column label="服务情况" prop="state" width="" />
<el-table-column label="创建时间" prop="serviceTimeStart" width="180" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "give-service",
data() {
return {
queryParams: {
residList: [],
},
list: [],
total: 0,
};
},
created() {},
mounted() {
const query = this.$route.query;
this.queryParams.residList[0] = query.user_id;
this.getList();
},
methods: {
getList() {
//
this.$http
.post("/actual/base/peopleRoomOverview/communityServicePageList", this.queryParams)
.then(({ data: res }) => {
this.list = res.data.map((item) => {
return {
...item,
};
});
this.total = res.data.length;
this.$emit("changeTotal", { name: 5, total: this.total });
});
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

125
src/views/dataBoard/organizational/personnel/modules/businessTables/reporting-events.vue

@ -0,0 +1,125 @@
<template>
<div class="table">
<el-table :data="list" max-height="375px" height="375px">
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="事件类型" prop="categorycode" width="" />
<el-table-column label="事件描述" prop="eventcontent" width="" />
<el-table-column label="办理状态" prop="status" width="" />
<el-table-column label="接收时间" prop="happentime" width="180" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
<Pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
export default {
name: "reporting-events",
data() {
return {
queryParams: {
pageNo: 1,
pageSize: 10,
residList: [],
},
list: [],
total: 0,
};
},
created() {},
mounted() {
const query = this.$route.query;
this.queryParams.residList[0] = query.user_id;
this.getList();
},
methods: {
getList() {
//
const statusArr = {
processing: "处理中",
closed_case: "已办结",
};
const marktypes = ["普通事件", "难点读点", "矛盾纠纷", "自身问题"];
this.$http
.post("/actual/base/peopleRoomOverview/eventPageList", this.queryParams)
.then(({ data: res }) => {
this.list = res.data.list.map((item) => {
return {
...item,
status: item.status?statusArr[item.status]:null,
marktype: marktypes[item.marktype],
};
});
this.total = res.data.total;
this.$emit("changeTotal", { name: 3, total: this.total });
});
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

112
src/views/dataBoard/organizational/personnel/modules/businessTables/resident.vue

@ -0,0 +1,112 @@
<template>
<div class="table">
<el-table :data="list" max-height="375px" height="375px">
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="需求类型" prop="categoryName" width="" />
<el-table-column label="需求描述" prop="content" width="" />
<el-table-column label="办理情况" prop="status" width="" />
<el-table-column label="上报时间" prop="reportTime" width="180" />
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "complaint",
data() {
return {
queryParams: {
residList: [],
},
list: [],
total: 0,
};
},
created() {
const query = this.$route.query;
this.queryParams.residList[0] = query.user_id;
this.getList();
},
mounted() {},
methods: {
getList() {
//
this.$http
.post(
"/actual/base/peopleRoomOverview/demandOfResidentsPageList",
this.queryParams
)
.then(({ data: res }) => {
this.list = res.data.map((item) => {
return {
...item,
};
});
this.total = res.data.length;
this.$emit("changeTotal", { name: 4, total: this.total });
});
},
},
};
</script>
<style scoped lang="scss">
.business-records {
margin-bottom: 25px;
}
.table {
/deep/ .el-table td,
/deep/ .el-table th,
/deep/ .el-table tr {
padding: 14px !important;
border: none !important;
min-height: 52px;
}
/deep/ .el-table td,
/deep/ .el-table th {
background: none !important;
}
/deep/ .el-table td {
font-size: 14px;
font-weight: 400;
color: #ffffff;
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51);
}
/deep/ .el-table tr {
background: none;
&:hover {
background-color: rgba(26, 149, 255, 0.3) !important;
}
}
/deep/ .el-table__body-wrapper tr:nth-of-type(odd) {
background: rgba(14, 56, 115, 0.4);
}
/deep/ .el-table {
background: none !important;
&:before {
background: none;
}
}
/deep/ .el-table__header-wrapper tr {
color: #a3b9da !important;
font-size: 14px;
font-weight: 400;
opacity: 0.76;
background: none;
&:hover {
background: none !important;
}
}
/deep/ .el-table__header-wrapper {
background: none !important;
}
}
</style>

45
src/views/dataBoard/satisfactionEval/components/Tabs/index.vue

@ -1,8 +1,13 @@
<template> <template>
<div class="tabs"> <div class="tabs">
<div class="tab" :class="value2 === item.value?'cur':''" <div
v-for="(item,index) in list" @click="tabClick(index)" :key="index"> class="tab"
{{item.label}} :class="value2 === item.value ? 'cur' : ''"
v-for="(item, index) in list"
@click="tabClick(index)"
:key="item.value"
>
{{ item.label }}
</div> </div>
</div> </div>
</template> </template>
@ -11,31 +16,31 @@
export default { export default {
name: "Tabs", name: "Tabs",
props: { props: {
list:{ list: {
type: Array, type: Array,
default: () => [] default: () => [],
},
value: {
type: [String, Number],
default: "",
}, },
value:{
type: [String,Number],
default: ''
}
}, },
data() { data() {
return { return {
value2: this.value, value2: this.value,
} };
}, },
mounted() { mounted() {
this.value2 = this.value this.value2 = this.value;
}, },
methods: { methods: {
tabClick(index) { tabClick(index) {
this.value2 = this.list[index].value this.value2 = this.list[index].value;
this.$emit('changeVal',this.value2) this.$emit("changeVal", this.value2);
this.$emit('changeLabel',this.list[index].label) this.$emit("changeLabel", this.list[index].label);
} },
} },
} };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -46,15 +51,15 @@ export default {
padding: 10px 11px; padding: 10px 11px;
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #96B1CE; color: #96b1ce;
min-width: 120px; min-width: 120px;
background: url("@/assets/images/manyidu/tab.png") repeat-x top left; background: url("@/assets/images/manyidu/tab.png") repeat-x top left;
margin-right: 4px; margin-right: 4px;
text-align: center; text-align: center;
&.cur { &.cur {
color: #FFFFFF; color: #ffffff;
background: url("@/assets/images/manyidu/tab_cur.png") repeat-x top left; background: url("@/assets/images/manyidu/tab_cur.png") repeat-x top left;
} }
} }
} }
</style> </style>

Loading…
Cancel
Save