Browse Source

新增加载遮罩

V1.0
战立标 2 years ago
parent
commit
75045b2c85
  1. 3
      src/utils/desensitization.js
  2. 22
      src/views/dataBoard/satisfactionEval/dissatisfied/detail.vue
  3. 14
      src/views/dataBoard/satisfactionEval/dissatisfied/index.vue
  4. 40
      src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/index.vue
  5. 12
      src/views/dataBoard/satisfactionEval/modules/EventSituation/index.vue
  6. 31
      src/views/dataBoard/satisfactionEval/modules/EventStatistics/index.vue
  7. 25
      src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue
  8. 16
      src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue
  9. 30
      src/views/dataBoard/satisfactionEval/modules/RiskStatistics/index.vue
  10. 8
      src/views/dataBoard/satisfactionEval/modules/SelfTrend/index.vue
  11. 12
      src/views/dataBoard/satisfactionEval/modules/TypesOfDissatisfaction/index.vue
  12. 7
      src/views/dataBoard/satisfactionEval/potentialPeople/details/xqwmz.vue
  13. 6
      src/views/dataBoard/satisfactionEval/potentialPeople/details/yxwxfw.vue
  14. 62
      src/views/dataBoard/satisfactionEval/potentialPeople/index.vue
  15. 10
      src/views/dataBoard/satisfactionEval/potentialPeople/sjwjj.vue
  16. 20
      src/views/dataBoard/satisfactionEval/potentialPeople/xqwmz.vue
  17. 37
      src/views/dataBoard/satisfactionEval/potentialPeople/yxwxfw.vue

3
src/utils/desensitization.js

@ -1,4 +1,7 @@
export default function desensitizeSubstring(inputString, start, end) {
if(!inputString) {
return ''
}
// 保留部分非敏感信息,将敏感信息部分截取掉
let desensitizedString = inputString.substring(0, start) + "*".repeat(end - start) + inputString.substring(end);
return desensitizedString;

22
src/views/dataBoard/satisfactionEval/dissatisfied/detail.vue

@ -16,9 +16,9 @@
<div class="detail">
<p>
{{unsatisfiedMattersModel.reason}}
</p>
</p>a
<ul>
<li><span>事项来源</span>{{unsatisfiedMattersModel.satisfactionSource}}</li>
<li><span>事项来源</span>{{satisfactionSourceOptions[unsatisfiedMattersModel.satisfactionSource]}}</li>
<li><span>事项类型</span>{{unsatisfiedMattersModel.satisfactionCategoryName}}</li>
<li><span>所属月份</span>{{unsatisfiedMattersModel.satisfactionCategoryName}}</li>
<li><span>所属社区</span>{{unsatisfiedMattersModel.organizationName}}</li>
@ -79,19 +79,11 @@ export default {
unsatisfiedMattersModel: '',
unsatisfiedHisCount: '',
followUpRecordDetails: '',
satisfactionSourceOptions: [{
value: 'satisfaction_12345',
label: '12345投诉',
color: '#FFB73C',
}, {
value: 'satisfaction_province',
label: '省满意度调查',
color: '#64C1FF'
}, {
value: 'satisfaction_community',
label: '社区满意度自查',
color: '#08EBAE'
}]
satisfactionSourceOptions: {
satisfaction_12345: '12345投诉',
satisfaction_province: '省满意度调查',
satisfaction_community: '社区满意度自查',
}
};
},
methods: {

14
src/views/dataBoard/satisfactionEval/dissatisfied/index.vue

@ -58,7 +58,12 @@
</div>
<div class="table">
<el-table :data="list">
<el-table :data="list"
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)"
>
<el-table-column
label="序号"
type="index"
@ -210,7 +215,8 @@ export default {
value: 'satisfaction_community',
label: '社区满意度自查',
color: '#08EBAE'
}]
}],
loading: true
}
},
mounted() {
@ -219,7 +225,7 @@ export default {
methods: {
getSatisfactionCategoryOptions() {
this.queryParams.satisfactionCategory = ''
if(!this.queryParams.satisfactionSource) {
if (!this.queryParams.satisfactionSource) {
this.satisfactionCategoryOptions = []
return
}
@ -242,9 +248,11 @@ export default {
this.getList();
},
getList() {
this.loading = true
this.$http.get('/governance/satisfactionDetailList/getUnsatisfiedMattersList?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => {
this.total = data.total
this.list = data.list
this.loading = false
})
},
getOrg() {

40
src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/index.vue

@ -1,16 +1,21 @@
<template>
<div>
<Breadcrumb :list="breadcrumbList" />
<Breadcrumb :list="breadcrumbList"/>
<!-- <div class="main-title">
<Title :text="`“${title}”画像匹配同类不满意人员`" noBg/>
</div>-->
<div class="table">
<el-table :data="list">
<el-table-column label="序号" type="index" width="80" />
<el-table :data="list"
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)"
>
<el-table-column label="序号" type="index" width="80"/>
<el-table-column prop="gridName" width="118" label="所属组织" />
<el-table-column prop="gridName" width="118" label="所属组织"/>
<el-table-column prop="restName" label="姓名"> </el-table-column>
<el-table-column prop="restName" label="姓名"></el-table-column>
<el-table-column prop="mobile" label="电话">
<template slot-scope="scope">
@ -18,7 +23,7 @@
</template>
</el-table-column>
<el-table-column prop="categoryNames" label="人员性质" />
<el-table-column prop="categoryNames" label="人员性质"/>
<el-table-column prop="gender" label="性别">
<template slot-scope="{ row }">
@ -26,13 +31,13 @@
</template>
</el-table-column>
<el-table-column prop="age" label="年龄" />
<el-table-column prop="age" label="年龄"/>
<el-table-column prop="cultureName" label="学历" />
<el-table-column prop="cultureName" label="学历"/>
<el-table-column prop="marriageName" label="婚姻" />
<el-table-column prop="marriageName" label="婚姻"/>
<el-table-column prop="monthIncomeLevel" label="月收入" />
<el-table-column prop="monthIncomeLevel" label="月收入"/>
<el-table-column label="详情" width="90" align="center">
<template slot-scope="data">
@ -42,7 +47,8 @@
</el-table>
</div>
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" />
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
</div>
</template>
@ -53,7 +59,7 @@ import Title from "@/views/dataBoard/satisfactionEval/components/Title";
export default {
name: "dissatisfied",
components: { Breadcrumb, Pagination, Title },
components: {Breadcrumb, Pagination, Title},
data() {
return {
queryParams: {
@ -72,10 +78,11 @@ export default {
},
],
monthOptions: new Array(12).fill(0).map((_, index) => {
return { label: index - 0 + 1 + "月", value: index - 0 + 1 };
return {label: index - 0 + 1 + "月", value: index - 0 + 1};
}),
list: [],
title: "",
loading: true
};
},
activated() {
@ -90,12 +97,14 @@ export default {
},
methods: {
getList() {
this.$http.get("/governance/satisfactionOverview/satisfactionCrowdList?" + this.$paramsFormat(this.queryParams)).then(({ data: { data } }) => {
this.loading = true
this.$http.get("/governance/satisfactionOverview/satisfactionCrowdList?" + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => {
this.list = data.list;
this.total = data.total;
this.loading = false
});
},
handleView({ restName, restId }) {
handleView({restName, restId}) {
this.$router.push("/dataBoard/satisfactionEval/dissatisfiedPersonnel/detail?name=" + restName + "&user_id=" + restId);
},
},
@ -131,6 +140,7 @@ export default {
.main-title {
margin: 25px 0 32px;
}
.table {
margin-top: 32px;
}

12
src/views/dataBoard/satisfactionEval/modules/EventSituation/index.vue

@ -1,5 +1,10 @@
<template>
<div>
<div
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)"
>
<div class="title">12345政务热线事件办理情况</div>
<div @click="showList(curMonth.monthTime)" class="current">
@ -44,7 +49,8 @@ export default {
return {
eventList: [],
curMonth: '',
monthTime: ""
monthTime: "",
loading: true
}
},
watch: {
@ -69,6 +75,7 @@ export default {
this.$refs.eventList.open(params)
},
getData() {
this.loading = true
let params = {
level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId
@ -76,6 +83,7 @@ export default {
this.$http.get('/governance/satisfactionOverview/do12345MonthGroup?' + this.$paramsFormat(params)).then(({data: {data}}) => {
this.curMonth = data.filter(item => item.monthTime === this.$moment().format('YYYY-MM'))[0]
this.eventList = data.filter(item => item.monthTime !== this.$moment().format('YYYY-MM')).reverse()
this.loading = false
})
}
}

31
src/views/dataBoard/satisfactionEval/modules/EventStatistics/index.vue

@ -1,6 +1,13 @@
<template>
<div class="event-statistics">
<div id="eventStatisticsChart" style="height: 293px;"></div>
<div
id="eventStatisticsChart"
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)"
style="height: 293px;"
/>
</div>
</template>
@ -11,7 +18,7 @@ export default {
name: "EventStatistics",
data() {
return {
loading: true
}
},
@ -29,6 +36,7 @@ export default {
},
methods: {
getData() {
this.loading = true
let params = {
level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId,
@ -38,7 +46,7 @@ export default {
this.initCharts(data)
})
},
initCharts({orgList,series}) {
initCharts({orgList, series}) {
let div = document.getElementById('eventStatisticsChart');
this.myChart = echarts.init(div);
@ -120,10 +128,10 @@ export default {
},
formatter: function (params) {
console.log(params)
var res='<div"><p>'+params[0].name+'</p></div>'
for(var i=0;i<params.length;i++){
if(params[i].seriesName!=""){
res+='<p>'+params[i].seriesName+':'+params[i].data+'</p>'
var res = '<div"><p>' + params[0].name + '</p></div>'
for (var i = 0; i < params.length; i++) {
if (params[i].seriesName != "") {
res += '<p>' + params[i].seriesName + ':' + params[i].data + '</p>'
}
}
return res;
@ -173,14 +181,14 @@ export default {
},
boundaryGap: true,
data: xData,
},{
}, {
type: 'category',
data: xData,
axisLine: {show:false},
axisLine: {show: false},
axisLabel: {
show: false,
},
boundaryGap:true,
boundaryGap: true,
}
],
@ -222,7 +230,7 @@ export default {
name: '',
type: 'bar',
barWidth:100,
barWidth: 100,
barGap: '-60%',
data: barArray,
itemStyle: {
@ -237,6 +245,7 @@ export default {
};
this.myChart.setOption(option);
window.addEventListener("resize", () => this.myChart.resize());
this.loading = false
},
}
}

25
src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue

@ -1,6 +1,10 @@
<template>
<div class="personnel-portrait">
<Tabs v-model="resultType" :list="resultTypeList" @changeVal="resultTypeChange" />
<div class="personnel-portrait"
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)">
<Tabs v-model="resultType" :list="resultTypeList" @changeVal="resultTypeChange"/>
<div class="screen">
<div class="txt">不满意人员画像</div>
<!-- <el-select v-model="typeCondition" @change="getData" placeholder="请选择" class="select" popper-class="selectPopClass">
@ -13,7 +17,10 @@
</el-select>-->
</div>
<div class="portrait">
<div
class="portrait">
<div class="tag yellow" v-if="gridName">
<div class="text">{{ gridName }}</div>
</div>
@ -54,7 +61,7 @@ import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue";
export default {
name: "PersonnelPortrait",
components: { Tabs },
components: {Tabs},
data() {
return {
resultType: "provinceAndSelf",
@ -79,6 +86,7 @@ export default {
residentTagName: "",
matchPeopleNum: 0,
searchParams: "",
loading: true
};
},
watch: {
@ -104,19 +112,20 @@ export default {
this.$router.push("/dataBoard/satisfactionEval/dissatisfiedPersonnel?searchParams=" + this.searchParams);
},
getDisKey() {
this.$http.post("/sys/dict/data/dictlist", { dictType: "satisfaction_category" }).then(({ data: { data } }) => {
this.$http.post("/sys/dict/data/dictlist", {dictType: "satisfaction_category"}).then(({data: {data}}) => {
this.typeCondition = data[0].value;
this.typeConditionList = data;
});
},
getData() {
this.loading = true
let params = {
level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId,
queryType: this.resultType,
category: this.typeCondition,
};
this.$http.get("/governance/satisfactionOverview/satisfactionCrowdPortrait?" + this.$paramsFormat(params)).then(({ data: { data } }) => {
this.$http.get("/governance/satisfactionOverview/satisfactionCrowdPortrait?" + this.$paramsFormat(params)).then(({data: {data}}) => {
this.gender = data.gender;
this.marriageName = data.marriageName;
this.ageClassification = data.ageClassification;
@ -125,8 +134,8 @@ export default {
this.monthIncomeLevel = data.monthIncomeLevel;
this.residentTagName = data.residentTagName;
this.matchPeopleNum = data.matchPeopleNum;
this.searchParams = JSON.stringify({ ...data, ...params });
this.loading = false
this.searchParams = JSON.stringify({...data, ...params});
});
},
},

16
src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue

@ -1,6 +1,11 @@
<template>
<div class="potential-people">
<div class="potential-people-item" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople')">
<div class="potential-people"
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)"
>
<div class="potential-people-item" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople?countType=event')">
<div class="icon">
<img src="@/assets/images/manyidu/qz_wjj.png" alt="">
</div>
@ -10,7 +15,7 @@
</div>
<div class="num"><span class="orange">{{ unSolvedNum ? unSolvedNum : 0 }}</span></div>
</div>
<div class="potential-people-item" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople')">
<div class="potential-people-item" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople?countType=demand')">
<div class="icon">
<img src="@/assets/images/manyidu/qz_wmz.png" alt="">
</div>
@ -20,7 +25,7 @@
</div>
<div class="num"><span class="green">{{ unFinishNum ? unFinishNum : 0 }}</span></div>
</div>
<div class="potential-people-item" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople')">
<div class="potential-people-item" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople?countType=service')">
<div class="icon">
<img src="@/assets/images/manyidu/qz_wx.png" alt="">
</div>
@ -41,6 +46,7 @@ export default {
noServiceNum: 0,
unFinishNum: 0,
unSolvedNum: 0,
loading: true
}
},
watch: {
@ -58,6 +64,7 @@ export default {
methods: {
getData() {
this.loading = true
let params = {
level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId
@ -66,6 +73,7 @@ export default {
this.noServiceNum = data.noServiceNum
this.unFinishNum = data.unFinishNum
this.unSolvedNum = data.unSolvedNum
this.loading = false
})
}
}

30
src/views/dataBoard/satisfactionEval/modules/RiskStatistics/index.vue

@ -1,5 +1,8 @@
<template>
<div>
<div v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)">
<div class="number-list">
<div class="number-item">
<div class="img">
@ -10,7 +13,7 @@
12345热线 <br>
投诉人数
</div>
<div class="num"><span>{{event12345Num?event12345Num:0}}</span> </div>
<div class="num"><span>{{ event12345Num ? event12345Num : 0 }}</span> </div>
</div>
</div>
@ -23,7 +26,7 @@
省满意度调查 <br>
不满意人数
</div>
<div class="num"><span>{{provinceSatisfactionNum?provinceSatisfactionNum:0}}</span> </div>
<div class="num"><span>{{ provinceSatisfactionNum ? provinceSatisfactionNum : 0 }}</span> </div>
</div>
</div>
@ -36,7 +39,7 @@
社区满意度自评 <br>
不满意人数
</div>
<div class="num"><span>{{selfInspectNum?selfInspectNum:0}}</span> </div>
<div class="num"><span>{{ selfInspectNum ? selfInspectNum : 0 }}</span> </div>
</div>
</div>
</div>
@ -46,28 +49,28 @@
本月回访 <br>
次数
</div>
<div class="num"><span class="grey">{{followMonthNum?followMonthNum:0}}</span> </div>
<div class="num"><span class="grey">{{ followMonthNum ? followMonthNum : 0 }}</span> </div>
</div>
<div class="number-item">
<div class="txt">
本月回访消除 <br>
风险人员数
</div>
<div class="num"><span class="green">{{followMonthNotRiskyNum?followMonthNotRiskyNum:0}}</span> </div>
<div class="num"><span class="green">{{ followMonthNotRiskyNum ? followMonthNotRiskyNum : 0 }}</span> </div>
</div>
<div class="number-item">
<div class="txt">
累计回访 <br>
次数
</div>
<div class="num"><span class="purple">{{followSumNum?followSumNum:0}}</span> </div>
<div class="num"><span class="purple">{{ followSumNum ? followSumNum : 0 }}</span> </div>
</div>
<div class="number-item">
<div class="txt">
累计回访消除 <br>
风险人员数
</div>
<div class="num"><span class="blue">{{followNotRiskyNum?followNotRiskyNum:0}}</span> </div>
<div class="num"><span class="blue">{{ followNotRiskyNum ? followNotRiskyNum : 0 }}</span> </div>
</div>
</div>
@ -86,6 +89,7 @@ export default {
followSumNum: 0,
provinceSatisfactionNum: 0,
selfInspectNum: 0,
loading: true
}
},
@ -103,11 +107,12 @@ export default {
},
methods: {
getData() {
this.loading = true
let params = {
level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId
}
this.$http.get('/governance/satisfactionOverview/satisfactionFollowGroup?'+this.$paramsFormat(params)).then(({data:{data}}) => {
this.$http.get('/governance/satisfactionOverview/satisfactionFollowGroup?' + this.$paramsFormat(params)).then(({data: {data}}) => {
this.event12345Num = data.event12345Num;
this.followMonthNotRiskyNum = data.followMonthNotRiskyNum;
this.followMonthNum = data.followMonthNum;
@ -115,6 +120,7 @@ export default {
this.followSumNum = data.followSumNum;
this.provinceSatisfactionNum = data.provinceSatisfactionNum;
this.selfInspectNum = data.selfInspectNum;
this.loading = false
})
}
}
@ -163,6 +169,7 @@ export default {
display: flex;
justify-content: space-between;
padding: 0 30px 39px;
.number-item {
.txt {
font-size: 14px;
@ -171,6 +178,7 @@ export default {
line-height: 24px;
margin-bottom: 16px;
}
.num {
font-size: 14px;
font-weight: 500;
@ -184,15 +192,19 @@ export default {
}
}
}
.grey {
color: #78C4F3;
}
.green {
color: #08EBAE;
}
.purple {
color: #A761FD;
}
.blue {
color: #356EFF;
}

8
src/views/dataBoard/satisfactionEval/modules/SelfTrend/index.vue

@ -1,5 +1,8 @@
<template>
<div class="self-trend">
<div class="self-trend" v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)">
<div class="screen">
<Tabs v-model="trendType" :list="trendTypeList" @changeVal="trendTypeChange"/>
</div>
@ -26,6 +29,7 @@ export default {
value: 2
}],
loading: true
}
},
watch: {
@ -48,6 +52,7 @@ export default {
}
},
getData() {
this.loading = true
let params = {
level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId,
@ -237,6 +242,7 @@ export default {
};
this.myChart.setOption(option, true);
window.addEventListener("resize", () => this.myChart.resize());
this.loading = false
},
}
}

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

@ -1,5 +1,10 @@
<template>
<div class="types-dissatisfaction">
<div class="types-dissatisfaction"
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)"
>
<div class="screen">
<Tabs v-model="resultType" :list="resultTypeList" @changeVal="resultTypeChange"/>
<el-select v-model="typeCondition"
@ -57,7 +62,7 @@ export default {
value: 5
},
],
loading: true
}
},
watch: {
@ -80,6 +85,7 @@ export default {
}
},
getData() {
this.loading = true
let params = {
level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId,
@ -187,7 +193,6 @@ export default {
data: [datavaule2]
})
}
console.log(this.resultType, series)
var option = {
tooltip: {
show: false,
@ -253,6 +258,7 @@ export default {
};
this.myChart.setOption(option, true);
window.addEventListener("resize", () => this.myChart.resize());
this.loading = false
},
}
}

7
src/views/dataBoard/satisfactionEval/potentialPeople/details/xqwmz.vue

@ -81,7 +81,7 @@
src="@/assets/images/manyidu/tc-title-icon.png"
/>
</div>
<div v-if="item.logList.length > 0">
<div v-if="logList.length > 0">
<!-- <el-card :class="{ 'box-card': source === 'visiual' }" style="min-height: calc(88vh - 50px); overflow: auto"> -->
<div class="m-process">
<div class="list">
@ -89,7 +89,7 @@
class="item"
:class="[index === 0 ? 'z-on' : '']"
:key="item.processId"
v-for="(item, index) in item.logList"
v-for="(item, index) in logList"
>
<div class="item-row">
@ -200,8 +200,8 @@ export default {
data() {
return {
item: {
logList: []
},
logList: [],
loading: false,
loading1: false,
activities: [],
@ -244,6 +244,7 @@ export default {
const {code, data, msg} = res.data;
if (code === 0) {
this.item = data;
this.logList = data.logList;
this.loading = false;
} else {
this.loading = false;

6
src/views/dataBoard/satisfactionEval/potentialPeople/details/yxwxfw.vue

@ -49,10 +49,10 @@
<el-col :span="11" v-loading="loading1" element-loading-text="加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 21, 64, 0.3)">
<div class="rightEvent m-info">
<div class="eventDetails"><img :width="18" :height="18" src="@/assets/images/manyidu/tc-title-icon.png" />办理进展</div>
<div v-if="item.logList.length > 0">
<div v-if="logList.length > 0">
<div class="m-process">
<div class="list">
<div class="item" :class="[index === 0 ? 'z-on' : '']" v-for="(item, index) in item.logList">
<div class="item" :class="[index === 0 ? 'z-on' : '']" v-for="(item, index) in logList">
<div class="item-row">
<div class="name">{{ item.serviceStatus }}</div>
<div class="date">
@ -108,6 +108,7 @@ export default {
data() {
return {
item: {},
logList: [],
loading: false,
loading1: false,
activities: [],
@ -147,6 +148,7 @@ export default {
const { code, data, msg } = res.data;
if (code === 0) {
this.item = data;
this.logList = data.logList;
this.loading = false;
} else {
this.loading = false;

62
src/views/dataBoard/satisfactionEval/potentialPeople/index.vue

@ -1,10 +1,10 @@
<template>
<div>
<Breadcrumb :list="breadcrumbList" />
<Breadcrumb :list="breadcrumbList"/>
<div class="screen">
<el-form :model="queryParams" inline>
<el-select popper-class="selectPopClass" v-model="queryParams.agencyId" size="small" placeholder="按组织">
<el-option v-for="item in orgOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option>
<el-option v-for="item in orgOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<el-input v-model="queryParams.name" clearable size="small" placeholder="按姓名"></el-input>
<el-input v-model="queryParams.mobile" clearable size="small" placeholder="按电话"></el-input>
@ -13,10 +13,15 @@
</div>
<div class="table">
<el-table :data="list">
<el-table-column label="序号" type="index" width="80" />
<el-table :data="list"
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)"
>
<el-table-column label="序号" type="index" width="80"/>
<el-table-column prop="name" label="上报人" />
<el-table-column prop="name" label="上报人"/>
<el-table-column prop="mobile" label="上报人电话">
<template slot-scope="scope">
@ -24,23 +29,32 @@
</template>
</el-table-column>
<el-table-column prop="agencyName" label="所属组织"> </el-table-column>
<el-table-column prop="agencyName" label="所属组织"></el-table-column>
<el-table-column prop="eventCount" sortable label="事件未解决数">
<template slot-scope="{ row }">
<el-button type="text" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople/sjwjj?reportUserId=' + row.reportUserId)">{{ row.eventCount }}</el-button>
<el-button type="text"
@click="$router.push('/dataBoard/satisfactionEval/potentialPeople/sjwjj?reportUserId=' + row.reportUserId)">
{{ row.eventCount }}
</el-button>
</template>
</el-table-column>
<el-table-column prop="demandCount" sortable label="需求未满足数">
<template slot-scope="{ row }">
<el-button type="text" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople/xqwmz?reportUserId=' + row.reportUserId)">{{ row.demandCount }}</el-button>
<el-button type="text"
@click="$router.push('/dataBoard/satisfactionEval/potentialPeople/xqwmz?reportUserId=' + row.reportUserId)">
{{ row.demandCount }}
</el-button>
</template>
</el-table-column>
<el-table-column prop="serviceCount" sortable label="应享未享数">
<template slot-scope="{ row }">
<el-button type="text" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople/yxwxfw?reportUserId=' + row.reportUserId)">{{ row.serviceCount }}</el-button>
<el-button type="text"
@click="$router.push('/dataBoard/satisfactionEval/potentialPeople/yxwxfw?reportUserId=' + row.reportUserId)">
{{ row.serviceCount }}
</el-button>
</template>
</el-table-column>
@ -53,7 +67,8 @@
</el-table>
</div>
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" />
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
</div>
</template>
@ -64,9 +79,10 @@ import Title from "@/views/dataBoard/satisfactionEval/components/Title";
export default {
name: "dissatisfied",
components: { Breadcrumb, Pagination, Title },
components: {Breadcrumb, Pagination, Title},
data() {
return {
loading: true,
queryParams: {
month: "",
org: "",
@ -90,11 +106,18 @@ export default {
},
],
monthOptions: new Array(12).fill(0).map((_, index) => {
return { label: index - 0 + 1 + "月", value: index - 0 + 1 };
return {label: index - 0 + 1 + "月", value: index - 0 + 1};
}),
list: [],
};
},
watch: {
"$route.query.countType" () {
if(this.$route.path === '/dataBoard/satisfactionEval/potentialPeople') {
this.getList();
}
}
},
mounted() {
this.getOrg();
},
@ -109,9 +132,9 @@ export default {
level: this.$store.state.chooseArea.chooseName.level,
};
this.$http.post(`/gov/org/agency/maporg`, params).then(async ({ data: { data } }) => {
this.$http.post(`/gov/org/agency/maporg`, params).then(async ({data: {data}}) => {
this.queryParams.agencyId = this.$store.state.chooseArea.chooseName.orgId;
let parent = { value: data.id, label: data.name };
let parent = {value: data.id, label: data.name};
this.orgOptions = [
parent,
...data.children.map((item) => {
@ -125,12 +148,19 @@ export default {
});
},
getList() {
this.$http.get("/governance/satisfactionDetailList/getPotentialDissatisfiedCountDetail?" + this.$paramsFormat(this.queryParams)).then(({ data: { data } }) => {
this.loading = true
let params = {
...this.queryParams,
countType: this.$route.query.countType
}
this.$http.get("/governance/satisfactionDetailList/getPotentialDissatisfiedCountDetail?" + this.$paramsFormat(params)).then(({data: {data}}) => {
this.list = data.list;
this.total = data.total;
this.loading = false
});
},
handleView(id) {},
handleView(id) {
},
},
};
</script>

10
src/views/dataBoard/satisfactionEval/potentialPeople/sjwjj.vue

@ -2,7 +2,12 @@
<div>
<Breadcrumb :list="breadcrumbList" />
<div class="table">
<el-table :data="list">
<el-table :data="list"
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)"
>
<el-table-column label="序号" type="index" width="80" />
<el-table-column prop="name" label="上报人" />
@ -70,6 +75,7 @@ export default {
list: [],
showDialog: false,
rowId: "",
loading: true
};
},
activated() {
@ -83,9 +89,11 @@ export default {
this.getList();
},
getList() {
this.loading = true
this.$http.get("/governance/satisfactionDetailList/getEventUnSolvedByUserId?" + this.$paramsFormat(this.queryParams)).then(({ data: { data } }) => {
this.list = data.list;
this.total = data.total;
this.loading = false
});
},
handleView({ id }) {

20
src/views/dataBoard/satisfactionEval/potentialPeople/xqwmz.vue

@ -3,7 +3,12 @@
<Breadcrumb :list="breadcrumbList"/>
<div class="table">
<el-table :data="list">
<el-table :data="list"
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)"
>
<el-table-column
label="序号"
type="index"
@ -15,7 +20,11 @@
<el-table-column
prop="demandUserMobile"
label="需求人电话"/>
label="需求人电话">
<template slot-scope="scope">
{{ $sensitive(scope.row.demandUserMobile, 3, 7) }}
</template>
</el-table-column>
<el-table-column
prop="agencyName"
@ -70,7 +79,7 @@ import xqwmz from "@/views/dataBoard/satisfactionEval/potentialPeople/details/xq
export default {
name: "dissatisfied",
components: {Breadcrumb, Pagination,Title,xqwmz},
components: {Breadcrumb, Pagination, Title, xqwmz},
data() {
return {
queryParams: {
@ -92,6 +101,7 @@ export default {
list: [],
showDialog: false,
rowId: '',
loading: true
}
},
activated() {
@ -105,12 +115,14 @@ export default {
this.getList();
},
getList() {
this.loading = true
this.$http.get('/governance/satisfactionDetailList/getUserDemandUnSolvedByUserId?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => {
this.list = data.list;
this.total = data.total;
this.loading = false
})
},
handleView({name,id}) {
handleView({name, id}) {
this.showDialog = true
this.rowId = id
},

37
src/views/dataBoard/satisfactionEval/potentialPeople/yxwxfw.vue

@ -1,11 +1,16 @@
<template>
<div>
<Breadcrumb :list="breadcrumbList" />
<Breadcrumb :list="breadcrumbList"/>
<div class="table">
<el-table :data="list">
<el-table-column label="序号" type="index" width="80" />
<el-table :data="list"
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.5)"
>
<el-table-column label="序号" type="index" width="80"/>
<el-table-column prop="name" label="服务对象姓名" />
<el-table-column prop="name" label="服务对象姓名"/>
<el-table-column prop="mobile" label="服务对象电话">
<template slot-scope="scope">
@ -13,13 +18,13 @@
</template>
</el-table-column>
<el-table-column prop="organizationName" label="所属组织"> </el-table-column>
<el-table-column prop="organizationName" label="所属组织"></el-table-column>
<el-table-column prop="serviceCategoryName" label="服务类型" />
<el-table-column prop="serviceCategoryName" label="服务类型"/>
<el-table-column prop="remark" show-overflow-tooltip label="服务描述" />
<el-table-column prop="serviceStatus" sortable label="是否已完成服务" />
<el-table-column prop="serviceTimeStart" sortable label="服务发起时间" />
<el-table-column prop="remark" show-overflow-tooltip label="服务描述"/>
<el-table-column prop="serviceStatus" sortable label="是否已完成服务"/>
<el-table-column prop="serviceTimeStart" sortable label="服务发起时间"/>
<el-table-column sortable label="详情">
<template slot-scope="{ row }">
<el-button type="text" @click="handleView(row)">查看</el-button>
@ -28,8 +33,9 @@
</el-table>
</div>
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" />
<yxwxfw :showDialog="showDialog" :id="rowId" @close="close" />
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
<yxwxfw :showDialog="showDialog" :id="rowId" @close="close"/>
</div>
</template>
@ -41,7 +47,7 @@ import yxwxfw from "@/views/dataBoard/satisfactionEval/potentialPeople/details/y
export default {
name: "dissatisfied",
components: { Breadcrumb, Pagination, Title, yxwxfw },
components: {Breadcrumb, Pagination, Title, yxwxfw},
data() {
return {
queryParams: {
@ -67,6 +73,7 @@ export default {
list: [],
showDialog: false,
rowId: "",
loading: true
};
},
activated() {
@ -80,13 +87,15 @@ export default {
this.getList();
},
getList() {
this.$http.get("/governance/satisfactionDetailList/getServiceNotEnjoyedByUserId?" + this.$paramsFormat(this.queryParams)).then(({ data: { data } }) => {
this.loading = true
this.$http.get("/governance/satisfactionDetailList/getServiceNotEnjoyedByUserId?" + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => {
this.list = data.list;
this.total = data.total;
this.loading = false
});
},
handleView({ id }) {
handleView({id}) {
this.showDialog = true;
this.rowId = id;
},

Loading…
Cancel
Save