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. 35
      src/views/dataBoard/satisfactionEval/modules/EventStatistics/index.vue
  7. 27
      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. 64
      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) { export default function desensitizeSubstring(inputString, start, end) {
if(!inputString) {
return ''
}
// 保留部分非敏感信息,将敏感信息部分截取掉 // 保留部分非敏感信息,将敏感信息部分截取掉
let desensitizedString = inputString.substring(0, start) + "*".repeat(end - start) + inputString.substring(end); let desensitizedString = inputString.substring(0, start) + "*".repeat(end - start) + inputString.substring(end);
return desensitizedString; return desensitizedString;

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

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

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

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

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

@ -1,16 +1,21 @@
<template> <template>
<div> <div>
<Breadcrumb :list="breadcrumbList" /> <Breadcrumb :list="breadcrumbList"/>
<!-- <div class="main-title"> <!-- <div class="main-title">
<Title :text="`“${title}”画像匹配同类不满意人员`" noBg/> <Title :text="`“${title}”画像匹配同类不满意人员`" noBg/>
</div>--> </div>-->
<div class="table"> <div class="table">
<el-table :data="list"> <el-table :data="list"
<el-table-column label="序号" type="index" width="80" /> 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="电话"> <el-table-column prop="mobile" label="电话">
<template slot-scope="scope"> <template slot-scope="scope">
@ -18,7 +23,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="categoryNames" label="人员性质" /> <el-table-column prop="categoryNames" label="人员性质"/>
<el-table-column prop="gender" label="性别"> <el-table-column prop="gender" label="性别">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
@ -26,13 +31,13 @@
</template> </template>
</el-table-column> </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"> <el-table-column label="详情" width="90" align="center">
<template slot-scope="data"> <template slot-scope="data">
@ -42,7 +47,8 @@
</el-table> </el-table>
</div> </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> </div>
</template> </template>
@ -53,7 +59,7 @@ import Title from "@/views/dataBoard/satisfactionEval/components/Title";
export default { export default {
name: "dissatisfied", name: "dissatisfied",
components: { Breadcrumb, Pagination, Title }, components: {Breadcrumb, Pagination, Title},
data() { data() {
return { return {
queryParams: { queryParams: {
@ -72,10 +78,11 @@ export default {
}, },
], ],
monthOptions: new Array(12).fill(0).map((_, index) => { 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: [], list: [],
title: "", title: "",
loading: true
}; };
}, },
activated() { activated() {
@ -90,12 +97,14 @@ export default {
}, },
methods: { methods: {
getList() { 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.list = data.list;
this.total = data.total; 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); this.$router.push("/dataBoard/satisfactionEval/dissatisfiedPersonnel/detail?name=" + restName + "&user_id=" + restId);
}, },
}, },
@ -131,6 +140,7 @@ export default {
.main-title { .main-title {
margin: 25px 0 32px; margin: 25px 0 32px;
} }
.table { .table {
margin-top: 32px; margin-top: 32px;
} }

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

@ -1,5 +1,10 @@
<template> <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 class="title">12345政务热线事件办理情况</div>
<div @click="showList(curMonth.monthTime)" class="current"> <div @click="showList(curMonth.monthTime)" class="current">
@ -44,7 +49,8 @@ export default {
return { return {
eventList: [], eventList: [],
curMonth: '', curMonth: '',
monthTime: "" monthTime: "",
loading: true
} }
}, },
watch: { watch: {
@ -69,6 +75,7 @@ export default {
this.$refs.eventList.open(params) this.$refs.eventList.open(params)
}, },
getData() { getData() {
this.loading = true
let params = { let params = {
level: this.$store.state.chooseArea.chooseName.level, level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId 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.$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.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.eventList = data.filter(item => item.monthTime !== this.$moment().format('YYYY-MM')).reverse()
this.loading = false
}) })
} }
} }

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

@ -1,6 +1,13 @@
<template> <template>
<div class="event-statistics"> <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> </div>
</template> </template>
@ -11,7 +18,7 @@ export default {
name: "EventStatistics", name: "EventStatistics",
data() { data() {
return { return {
loading: true
} }
}, },
@ -29,6 +36,7 @@ export default {
}, },
methods: { methods: {
getData() { getData() {
this.loading = true
let params = { let params = {
level: this.$store.state.chooseArea.chooseName.level, level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId, orgId: this.$store.state.chooseArea.chooseName.orgId,
@ -38,7 +46,7 @@ export default {
this.initCharts(data) this.initCharts(data)
}) })
}, },
initCharts({orgList,series}) { initCharts({orgList, series}) {
let div = document.getElementById('eventStatisticsChart'); let div = document.getElementById('eventStatisticsChart');
this.myChart = echarts.init(div); this.myChart = echarts.init(div);
@ -118,12 +126,12 @@ export default {
textStyle: { textStyle: {
color: '#fff', color: '#fff',
}, },
formatter: function (params) { formatter: function (params) {
console.log(params) console.log(params)
var res='<div"><p>'+params[0].name+'</p></div>' var res = '<div"><p>' + params[0].name + '</p></div>'
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[i].seriesName+':'+params[i].data+'</p>' res += '<p>' + params[i].seriesName + ':' + params[i].data + '</p>'
} }
} }
return res; return res;
@ -173,14 +181,14 @@ export default {
}, },
boundaryGap: true, boundaryGap: true,
data: xData, data: xData,
},{ }, {
type: 'category', type: 'category',
data: xData, data: xData,
axisLine: {show:false}, axisLine: {show: false},
axisLabel: { axisLabel: {
show: false, show: false,
}, },
boundaryGap:true, boundaryGap: true,
} }
], ],
@ -217,12 +225,12 @@ export default {
} }
], ],
series: [ series: [
...seriesArray, ...seriesArray,
{ {
name: '', name: '',
type: 'bar', type: 'bar',
barWidth:100, barWidth: 100,
barGap: '-60%', barGap: '-60%',
data: barArray, data: barArray,
itemStyle: { itemStyle: {
@ -237,6 +245,7 @@ export default {
}; };
this.myChart.setOption(option); this.myChart.setOption(option);
window.addEventListener("resize", () => this.myChart.resize()); window.addEventListener("resize", () => this.myChart.resize());
this.loading = false
}, },
} }
} }

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

@ -1,6 +1,10 @@
<template> <template>
<div class="personnel-portrait"> <div class="personnel-portrait"
<Tabs v-model="resultType" :list="resultTypeList" @changeVal="resultTypeChange" /> 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="screen">
<div class="txt">不满意人员画像</div> <div class="txt">不满意人员画像</div>
<!-- <el-select v-model="typeCondition" @change="getData" placeholder="请选择" class="select" popper-class="selectPopClass"> <!-- <el-select v-model="typeCondition" @change="getData" placeholder="请选择" class="select" popper-class="selectPopClass">
@ -13,7 +17,10 @@
</el-select>--> </el-select>-->
</div> </div>
<div class="portrait"> <div
class="portrait">
<div class="tag yellow" v-if="gridName"> <div class="tag yellow" v-if="gridName">
<div class="text">{{ gridName }}</div> <div class="text">{{ gridName }}</div>
</div> </div>
@ -42,7 +49,7 @@
按画像匹配到同类<span> 按画像匹配到同类<span>
<b>{{ matchPeopleNum ? matchPeopleNum : 0 }}</b <b>{{ matchPeopleNum ? matchPeopleNum : 0 }}</b
></span ></span
> >
</div> </div>
<i class="el-icon-arrow-right"></i> <i class="el-icon-arrow-right"></i>
</div> </div>
@ -54,7 +61,7 @@ import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue";
export default { export default {
name: "PersonnelPortrait", name: "PersonnelPortrait",
components: { Tabs }, components: {Tabs},
data() { data() {
return { return {
resultType: "provinceAndSelf", resultType: "provinceAndSelf",
@ -79,6 +86,7 @@ export default {
residentTagName: "", residentTagName: "",
matchPeopleNum: 0, matchPeopleNum: 0,
searchParams: "", searchParams: "",
loading: true
}; };
}, },
watch: { watch: {
@ -104,19 +112,20 @@ export default {
this.$router.push("/dataBoard/satisfactionEval/dissatisfiedPersonnel?searchParams=" + this.searchParams); this.$router.push("/dataBoard/satisfactionEval/dissatisfiedPersonnel?searchParams=" + this.searchParams);
}, },
getDisKey() { 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.typeCondition = data[0].value;
this.typeConditionList = data; this.typeConditionList = data;
}); });
}, },
getData() { getData() {
this.loading = true
let params = { let params = {
level: this.$store.state.chooseArea.chooseName.level, level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId, orgId: this.$store.state.chooseArea.chooseName.orgId,
queryType: this.resultType, queryType: this.resultType,
category: this.typeCondition, 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.gender = data.gender;
this.marriageName = data.marriageName; this.marriageName = data.marriageName;
this.ageClassification = data.ageClassification; this.ageClassification = data.ageClassification;
@ -125,8 +134,8 @@ export default {
this.monthIncomeLevel = data.monthIncomeLevel; this.monthIncomeLevel = data.monthIncomeLevel;
this.residentTagName = data.residentTagName; this.residentTagName = data.residentTagName;
this.matchPeopleNum = data.matchPeopleNum; this.matchPeopleNum = data.matchPeopleNum;
this.loading = false
this.searchParams = JSON.stringify({ ...data, ...params }); this.searchParams = JSON.stringify({...data, ...params});
}); });
}, },
}, },

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

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

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

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

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

@ -1,5 +1,8 @@
<template> <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"> <div class="screen">
<Tabs v-model="trendType" :list="trendTypeList" @changeVal="trendTypeChange"/> <Tabs v-model="trendType" :list="trendTypeList" @changeVal="trendTypeChange"/>
</div> </div>
@ -26,6 +29,7 @@ export default {
value: 2 value: 2
}], }],
loading: true
} }
}, },
watch: { watch: {
@ -48,6 +52,7 @@ export default {
} }
}, },
getData() { getData() {
this.loading = true
let params = { let params = {
level: this.$store.state.chooseArea.chooseName.level, level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId, orgId: this.$store.state.chooseArea.chooseName.orgId,
@ -237,6 +242,7 @@ export default {
}; };
this.myChart.setOption(option, true); this.myChart.setOption(option, true);
window.addEventListener("resize", () => this.myChart.resize()); window.addEventListener("resize", () => this.myChart.resize());
this.loading = false
}, },
} }
} }

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

@ -1,5 +1,10 @@
<template> <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"> <div class="screen">
<Tabs v-model="resultType" :list="resultTypeList" @changeVal="resultTypeChange"/> <Tabs v-model="resultType" :list="resultTypeList" @changeVal="resultTypeChange"/>
<el-select v-model="typeCondition" <el-select v-model="typeCondition"
@ -57,7 +62,7 @@ export default {
value: 5 value: 5
}, },
], ],
loading: true
} }
}, },
watch: { watch: {
@ -80,6 +85,7 @@ export default {
} }
}, },
getData() { getData() {
this.loading = true
let params = { let params = {
level: this.$store.state.chooseArea.chooseName.level, level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId, orgId: this.$store.state.chooseArea.chooseName.orgId,
@ -187,7 +193,6 @@ export default {
data: [datavaule2] data: [datavaule2]
}) })
} }
console.log(this.resultType, series)
var option = { var option = {
tooltip: { tooltip: {
show: false, show: false,
@ -253,6 +258,7 @@ export default {
}; };
this.myChart.setOption(option, true); this.myChart.setOption(option, true);
window.addEventListener("resize", () => this.myChart.resize()); 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" src="@/assets/images/manyidu/tc-title-icon.png"
/> />
</div> </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"> --> <!-- <el-card :class="{ 'box-card': source === 'visiual' }" style="min-height: calc(88vh - 50px); overflow: auto"> -->
<div class="m-process"> <div class="m-process">
<div class="list"> <div class="list">
@ -89,7 +89,7 @@
class="item" class="item"
:class="[index === 0 ? 'z-on' : '']" :class="[index === 0 ? 'z-on' : '']"
:key="item.processId" :key="item.processId"
v-for="(item, index) in item.logList" v-for="(item, index) in logList"
> >
<div class="item-row"> <div class="item-row">
@ -200,8 +200,8 @@ export default {
data() { data() {
return { return {
item: { item: {
logList: []
}, },
logList: [],
loading: false, loading: false,
loading1: false, loading1: false,
activities: [], activities: [],
@ -244,6 +244,7 @@ export default {
const {code, data, msg} = res.data; const {code, data, msg} = res.data;
if (code === 0) { if (code === 0) {
this.item = data; this.item = data;
this.logList = data.logList;
this.loading = false; this.loading = false;
} else { } else {
this.loading = false; 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)"> <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="rightEvent m-info">
<div class="eventDetails"><img :width="18" :height="18" src="@/assets/images/manyidu/tc-title-icon.png" />办理进展</div> <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="m-process">
<div class="list"> <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="item-row">
<div class="name">{{ item.serviceStatus }}</div> <div class="name">{{ item.serviceStatus }}</div>
<div class="date"> <div class="date">
@ -108,6 +108,7 @@ export default {
data() { data() {
return { return {
item: {}, item: {},
logList: [],
loading: false, loading: false,
loading1: false, loading1: false,
activities: [], activities: [],
@ -147,6 +148,7 @@ export default {
const { code, data, msg } = res.data; const { code, data, msg } = res.data;
if (code === 0) { if (code === 0) {
this.item = data; this.item = data;
this.logList = data.logList;
this.loading = false; this.loading = false;
} else { } else {
this.loading = false; this.loading = false;

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

@ -1,10 +1,10 @@
<template> <template>
<div> <div>
<Breadcrumb :list="breadcrumbList" /> <Breadcrumb :list="breadcrumbList"/>
<div class="screen"> <div class="screen">
<el-form :model="queryParams" inline> <el-form :model="queryParams" inline>
<el-select popper-class="selectPopClass" v-model="queryParams.agencyId" size="small" placeholder="按组织"> <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-select>
<el-input v-model="queryParams.name" clearable size="small" placeholder="按姓名"></el-input> <el-input v-model="queryParams.name" clearable size="small" placeholder="按姓名"></el-input>
<el-input v-model="queryParams.mobile" clearable size="small" placeholder="按电话"></el-input> <el-input v-model="queryParams.mobile" clearable size="small" placeholder="按电话"></el-input>
@ -13,10 +13,15 @@
</div> </div>
<div class="table"> <div class="table">
<el-table :data="list"> <el-table :data="list"
<el-table-column label="序号" type="index" width="80" /> 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="上报人电话"> <el-table-column prop="mobile" label="上报人电话">
<template slot-scope="scope"> <template slot-scope="scope">
@ -24,36 +29,46 @@
</template> </template>
</el-table-column> </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="事件未解决数"> <el-table-column prop="eventCount" sortable label="事件未解决数">
<template slot-scope="{ row }"> <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> </template>
</el-table-column> </el-table-column>
<el-table-column prop="demandCount" sortable label="需求未满足数"> <el-table-column prop="demandCount" sortable label="需求未满足数">
<template slot-scope="{ row }"> <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> </template>
</el-table-column> </el-table-column>
<el-table-column prop="serviceCount" sortable label="应享未享数"> <el-table-column prop="serviceCount" sortable label="应享未享数">
<template slot-scope="{ row }"> <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> </template>
</el-table-column> </el-table-column>
<el-table-column prop="countAll" sortable label="总数"> <el-table-column prop="countAll" sortable label="总数">
<template slot-scope="{ row }" <template slot-scope="{ row }"
>{{ row.countAll }} >{{ row.countAll }}
<!-- <el-button type="text"></el-button>--> <!-- <el-button type="text"></el-button>-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </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> </div>
</template> </template>
@ -64,9 +79,10 @@ import Title from "@/views/dataBoard/satisfactionEval/components/Title";
export default { export default {
name: "dissatisfied", name: "dissatisfied",
components: { Breadcrumb, Pagination, Title }, components: {Breadcrumb, Pagination, Title},
data() { data() {
return { return {
loading: true,
queryParams: { queryParams: {
month: "", month: "",
org: "", org: "",
@ -90,11 +106,18 @@ export default {
}, },
], ],
monthOptions: new Array(12).fill(0).map((_, index) => { 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: [], list: [],
}; };
}, },
watch: {
"$route.query.countType" () {
if(this.$route.path === '/dataBoard/satisfactionEval/potentialPeople') {
this.getList();
}
}
},
mounted() { mounted() {
this.getOrg(); this.getOrg();
}, },
@ -109,9 +132,9 @@ export default {
level: this.$store.state.chooseArea.chooseName.level, 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; 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 = [ this.orgOptions = [
parent, parent,
...data.children.map((item) => { ...data.children.map((item) => {
@ -125,12 +148,19 @@ export default {
}); });
}, },
getList() { 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.list = data.list;
this.total = data.total; this.total = data.total;
this.loading = false
}); });
}, },
handleView(id) {}, handleView(id) {
},
}, },
}; };
</script> </script>

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

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

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

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

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

@ -1,11 +1,16 @@
<template> <template>
<div> <div>
<Breadcrumb :list="breadcrumbList" /> <Breadcrumb :list="breadcrumbList"/>
<div class="table"> <div class="table">
<el-table :data="list"> <el-table :data="list"
<el-table-column label="序号" type="index" width="80" /> 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="服务对象电话"> <el-table-column prop="mobile" label="服务对象电话">
<template slot-scope="scope"> <template slot-scope="scope">
@ -13,13 +18,13 @@
</template> </template>
</el-table-column> </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="remark" show-overflow-tooltip label="服务描述"/>
<el-table-column prop="serviceStatus" sortable label="是否已完成服务" /> <el-table-column prop="serviceStatus" sortable label="是否已完成服务"/>
<el-table-column prop="serviceTimeStart" sortable label="服务发起时间" /> <el-table-column prop="serviceTimeStart" sortable label="服务发起时间"/>
<el-table-column sortable label="详情"> <el-table-column sortable label="详情">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-button type="text" @click="handleView(row)">查看</el-button> <el-button type="text" @click="handleView(row)">查看</el-button>
@ -28,8 +33,9 @@
</el-table> </el-table>
</div> </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"
<yxwxfw :showDialog="showDialog" :id="rowId" @close="close" /> @pagination="getList"/>
<yxwxfw :showDialog="showDialog" :id="rowId" @close="close"/>
</div> </div>
</template> </template>
@ -41,7 +47,7 @@ import yxwxfw from "@/views/dataBoard/satisfactionEval/potentialPeople/details/y
export default { export default {
name: "dissatisfied", name: "dissatisfied",
components: { Breadcrumb, Pagination, Title, yxwxfw }, components: {Breadcrumb, Pagination, Title, yxwxfw},
data() { data() {
return { return {
queryParams: { queryParams: {
@ -67,6 +73,7 @@ export default {
list: [], list: [],
showDialog: false, showDialog: false,
rowId: "", rowId: "",
loading: true
}; };
}, },
activated() { activated() {
@ -80,13 +87,15 @@ export default {
this.getList(); this.getList();
}, },
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.list = data.list;
this.total = data.total; this.total = data.total;
this.loading = false
}); });
}, },
handleView({ id }) { handleView({id}) {
this.showDialog = true; this.showDialog = true;
this.rowId = id; this.rowId = id;
}, },

Loading…
Cancel
Save