From 0722ed252df917961b0da7b05cadebc4947e0bd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=98=E7=AB=8B=E6=A0=87?= <2658037827@qq.com> Date: Fri, 22 Sep 2023 15:43:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=BB=A1=E6=84=8F=E5=BA=A6?= =?UTF-8?q?=E5=AD=90=E9=A1=B5=E9=9D=A2=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/jwTool.js | 4 +- .../satisfactionEval/dissatisfied/detail.vue | 71 +++++-- .../satisfactionEval/dissatisfied/index.vue | 197 +++++++++++++----- .../dissatisfiedPersonnel/index.vue | 103 +++++---- .../modules/PersonnelPortrait/index.vue | 12 +- .../modules/PotentialPeople/index.vue | 6 +- .../potentialPeople/index.vue | 98 ++++++--- .../potentialPeople/sjwjj.vue | 101 +++------ .../potentialPeople/xqwmz.vue | 102 +++------ .../potentialPeople/yxwxfw.vue | 104 +++------ 10 files changed, 427 insertions(+), 371 deletions(-) diff --git a/src/utils/jwTool.js b/src/utils/jwTool.js index 5e797cf78..058e03e1f 100644 --- a/src/utils/jwTool.js +++ b/src/utils/jwTool.js @@ -3,7 +3,9 @@ import Vue from "vue"; const paramsFormat = function (params) { let strArray = [] for(let key in params) { - strArray.push(key+'='+params[key]) + if(params[key]) { + strArray.push(key+'='+params[key]) + } } return strArray.join('&') } diff --git a/src/views/dataBoard/satisfactionEval/dissatisfied/detail.vue b/src/views/dataBoard/satisfactionEval/dissatisfied/detail.vue index 6bd2b2eff..56e83fc80 100644 --- a/src/views/dataBoard/satisfactionEval/dissatisfied/detail.vue +++ b/src/views/dataBoard/satisfactionEval/dissatisfied/detail.vue @@ -15,15 +15,15 @@
事项详情

- 小区垃圾急需要处理,垃圾桶旁边垃圾堆积严重,现在已经影响居民的日常生活和出行,望有关部门能够重视。 + {{unsatisfiedMattersModel.reason}}

@@ -33,31 +33,31 @@
12345投诉
- 39 + {{unsatisfiedHisCount.satisfaction_12345}}
省满意度调查
- 102 + {{unsatisfiedHisCount.satisfaction_province}}
社区满意度自评
- 273 + {{unsatisfiedHisCount.satisfaction_community}}
回访记录
-
-
杨建国(网格长)
-
2023-08-17
-
上门回访
+
+
{{item.followUpUser}}({{item.roleName}})
+
{{item.followUpDate}}
+
{{item.followUpWay}}
@@ -75,15 +75,42 @@ export default { components: {Title}, data() { return { - dialogVisible: false + dialogVisible: false, + unsatisfiedMattersModel: '', + unsatisfiedHisCount: '', + followUpRecordDetails: '', + satisfactionSourceOptions: [{ + value: 'satisfaction_12345', + label: '12345投诉', + color: '#FFB73C', + }, { + value: 'satisfaction_province', + label: '省满意度调查', + color: '#64C1FF' + }, { + value: 'satisfaction_community', + label: '社区满意度自查', + color: '#08EBAE' + }] }; }, methods: { handleClose(done) { this.dialogVisible = false }, - open() { + open(id) { this.dialogVisible = true + this.getDetail(id) + }, + getDetail(id) { + this.$http.post('/governance/satisfactionDetailList/getUnsatisfiedMattersDetailInfo', id).then(({data: {data}}) => { + this.unsatisfiedMattersModel = data.unsatisfiedMattersModel + this.unsatisfiedHisCount = data.unsatisfiedHisCount + this.followUpRecordDetails = data.followUpRecordDetails + if(this.unsatisfiedMattersModel.satisfactionSource) { + this.unsatisfiedMattersModel.satisfactionSource = satisfactionSourceOptions.filter(item => item.value === this.unsatisfiedMattersModel.satisfactionSource)[0].label + } + }) } } } @@ -137,14 +164,17 @@ export default { line-height: 32px; margin: 0 0 10px; } + ul { margin: 0; padding: 0; list-style-type: none; } + li { color: #FFFFFF; line-height: 28px; + span { color: #9CB4D3 } @@ -156,16 +186,19 @@ export default { display: flex; justify-content: space-between; margin-bottom: 30px; + .text { font-size: 14px; font-weight: 400; color: #A3B9DA; margin-bottom: 17px; } + .num { font-size: 14px; font-weight: 400; color: #A3B9DA; + span { font-size: 32px; font-weight: bold; @@ -173,17 +206,22 @@ export default { } } } + .orange { color: #FFB73C; } + .green { color: #08EBAE; } + .light { color: #7FCEFF; } + .log { padding-left: 26px; + .log-item { display: flex; justify-content: space-between; @@ -191,6 +229,7 @@ export default { color: #fff; background: url("@/assets/images/manyidu/hf_line.png") bottom center no-repeat; padding: 9px 0; + .name { flex: 0 0 33.33333%; } diff --git a/src/views/dataBoard/satisfactionEval/dissatisfied/index.vue b/src/views/dataBoard/satisfactionEval/dissatisfied/index.vue index bb8e51eeb..3ecbdd4ce 100644 --- a/src/views/dataBoard/satisfactionEval/dissatisfied/index.vue +++ b/src/views/dataBoard/satisfactionEval/dissatisfied/index.vue @@ -3,45 +3,57 @@
+ + - + - + - + - - - - - - - 查询 + + 查询
@@ -53,71 +65,90 @@ width="80"/> - + - + + - + - + @@ -127,11 +158,11 @@ - +
@@ -146,15 +177,16 @@ export default { data() { return { queryParams: { - month: '', - org: '', - matterSource: '', - matterType: '', - name: '', - tel: '', - pageNum: 1, + month: this.$moment().format('YYYY-MM'), + agencyId: "", + satisfactionSource: "", + satisfactionCategory: "", + name: "", + mobile: "", + pageNo: 1, pageSize: 10, }, + id: {}, total: 0, breadcrumbList: [{ path: '/dataBoard/satisfactionEval/index', @@ -163,18 +195,80 @@ export default { path: '', name: '不满意事项列表' }], - monthOptions: new Array(12).fill(0).map((_, index) => { - return {label: (index - 0 + 1) + '月', value: (index - 0 + 1)} - }), - list: [{}, {}, {}] + orgOptions: [], + satisfactionCategoryOptions: [], + list: [], + satisfactionSourceOptions: [{ + value: 'satisfaction_12345', + label: '12345投诉', + color: '#FFB73C', + }, { + value: 'satisfaction_province', + label: '省满意度调查', + color: '#64C1FF' + }, { + value: 'satisfaction_community', + label: '社区满意度自查', + color: '#08EBAE' + }] } }, + mounted() { + this.getOrg() + }, methods: { + getSatisfactionCategoryOptions() { + this.queryParams.satisfactionCategory = '' + if(!this.queryParams.satisfactionSource) { + this.satisfactionCategoryOptions = [] + return + } + this.$http.get('/governance/satisfactionDetailList/getUnsatisfiedCategory?satisfactionSource=' + this.queryParams.satisfactionSource).then(({data: {data}}) => { + this.satisfactionCategoryOptions = data.map(item => { + return { + label: item.categoryName, + value: item.categoryCode + } + }) + }) + + }, + satisfactionSourceFormat(val) { + let satisfactionSource = this.satisfactionSourceOptions.filter(item => item.value === val)[0] + return satisfactionSource ? satisfactionSource : '' + }, + search() { + this.queryParams.pageNo = 1 + this.getList(); + }, getList() { + this.$http.get('/governance/satisfactionDetailList/getUnsatisfiedMattersList?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => { + this.total = data.total + this.list = data.list + }) + }, + getOrg() { + let params = { + orgId: this.$store.state.chooseArea.chooseName.orgId, + level: this.$store.state.chooseArea.chooseName.level + } + 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} + this.orgOptions = [parent, ...data.children.map(item => { + return { + value: item.id, + label: item.name + } + })] + this.getList() + }) }, - handleView() { - this.$refs.detail.open() + handleView(id) { + console.log(id) + this.id = id + this.$refs.detail.open(id) } } } @@ -204,18 +298,23 @@ export default { height: 32px; } } + .orange { color: #FFB73C; } + .blue { color: #64C1FF; } + .green { color: #08EBAE; } + .light { color: #3CF5FF; } + .red { color: #F95619; } diff --git a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/index.vue b/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/index.vue index b68467cd3..66dcb75f0 100644 --- a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/index.vue +++ b/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/index.vue @@ -2,7 +2,7 @@
- + <Title :text="`“${title}”画像匹配同类不满意人员`" noBg/> </div> <div class="table"> <el-table :data="list"> @@ -12,71 +12,52 @@ width="80"/> <el-table-column - prop="name" - label="月度" - width="114"/> - - <el-table-column - prop="address" + prop="gridName" width="118" - label="所属社区"/> + label="所属组织"/> <el-table-column - prop="address" - width="168" - label="事项来源"> + prop="restName" + label="姓名"> <template slot-scope="data"></template> </el-table-column> <el-table-column - prop="address" - width="118" - label="事项类型"/> + prop="mobile" + label="电话"/> - <el-table-column - prop="address" - show-overflow-tooltip - label="事项描述"/> <el-table-column - prop="address" - width="197" - label="提交时间"/> + prop="categoryNames" + label="人员性质"/> <el-table-column - prop="address" - width="119" - label="姓名"/> + prop="gender" + label="性别"> + <template slot-scope="{row}"> + {{row.gender === '1'?'男':row.gender === '2'?'女':row.gender === '0'?'未知':''}} + </template> + </el-table-column> <el-table-column - prop="address" - width="153" - label="电话"/> + prop="age" + label="年龄"/> <el-table-column - prop="address" - width="118px" - label="是否完成"> - <template slot-scope="data"></template> - </el-table-column> + prop="cultureLevel" + label="学历"/> <el-table-column - prop="address" - width="118px" - label="是否回访"> - <template slot-scope="data"></template> - </el-table-column> + prop="marriageName" + label="婚姻"/> <el-table-column - prop="address" - width="118px" - label="消除风险"> - <template slot-scope="data"></template> - </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"> - <el-button type="text" @click="handleView">查看</el-button> + <el-button type="text" @click="handleView(data.row)">查看</el-button> </template> </el-table-column> @@ -86,7 +67,7 @@ <Pagination v-show="total>0" :total="total" - :page.sync="queryParams.pageNum" + :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> @@ -101,17 +82,11 @@ import Title from "@/views/dataBoard/satisfactionEval/components/Title" export default { name: "dissatisfied", - components: {Breadcrumb, Pagination,Title}, + components: {Breadcrumb, Pagination, Title}, data() { return { queryParams: { - month: '', - org: '', - matterSource: '', - matterType: '', - name: '', - tel: '', - pageNum: 1, + pageNo: 1, pageSize: 10, }, total: 0, @@ -125,14 +100,29 @@ export default { monthOptions: new Array(12).fill(0).map((_, index) => { return {label: (index - 0 + 1) + '月', value: (index - 0 + 1)} }), - list: [{}, {}, {}] + list: [], + title: '' } }, + activated() { + this.title = this.$route.query.title + let searchParams = JSON.parse(this.$route.query.searchParams) + console.log(searchParams) + this.queryParams = { + ...this.queryParams, + ...searchParams + } + this.getList() + }, methods: { getList() { - + this.$http.get('/governance/satisfactionOverview/satisfactionCrowdList?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => { + this.list = data.list + this.total = total + }) }, - handleView({name,id}) { + handleView({restName,restId}) { + this.$router.push('/dataBoard/satisfactionEval/dissatisfiedPersonnel/detail?name='+restName+'&id='+restId) } } } @@ -162,6 +152,7 @@ export default { height: 32px; } } + .main-title { margin: 25px 0 32px; } diff --git a/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue b/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue index 6ffd06d18..dfb1cee8b 100644 --- a/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue +++ b/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue @@ -37,7 +37,7 @@ </div> </div> - <div class="btn" @click="$router.push('/dataBoard/satisfactionEval/dissatisfiedPersonnel')"> + <div class="btn" @click="gotopage"> <div>按画像匹配到同类:<span> <b>{{matchPeopleNum?matchPeopleNum:0}}</b>人</span></div> <i class="el-icon-arrow-right"></i> </div> @@ -61,7 +61,7 @@ export default { label: '按12345热线投诉结果', value: '12345' }], - typeCondition: 1, + typeCondition: '', typeConditionList: [], gender: "", marriageName: "", @@ -70,7 +70,8 @@ export default { gridName: "", monthIncomeLevel: "", residentTagName: "", - matchPeopleNum: 0 + matchPeopleNum: 0, + searchParams: '' } }, watch: { @@ -90,6 +91,9 @@ export default { this.resultType = val this.getData() }, + gotopage() { + this.$router.push('/dataBoard/satisfactionEval/dissatisfiedPersonnel?searchParams='+this.searchParams+'&title='+this.typeConditionList.filter(item=>item.value === this.typeCondition)[0].label) + }, getDisKey() { this.$http.post('/sys/dict/data/dictlist', {'dictType': 'satisfaction_category'}).then(({data: {data}}) => { this.typeCondition = data[0].value @@ -113,6 +117,8 @@ export default { this.monthIncomeLevel = data.monthIncomeLevel; this.residentTagName = data.residentTagName; this.matchPeopleNum = data.matchPeopleNum; + + this.searchParams = JSON.stringify({...data,...params}) }) } } diff --git a/src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue b/src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue index abe79d71c..4223950e9 100644 --- a/src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue +++ b/src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue @@ -1,6 +1,6 @@ <template> <div class="potential-people"> - <div class="potential-people-item" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople/sjwjj')"> + <div class="potential-people-item" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople')"> <div class="icon"> <img src="@/assets/images/manyidu/qz_wjj.png" alt=""> </div> @@ -10,7 +10,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/xqwmz')"> + <div class="potential-people-item" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople')"> <div class="icon"> <img src="@/assets/images/manyidu/qz_wmz.png" alt=""> </div> @@ -20,7 +20,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/yxwxfw')"> + <div class="potential-people-item" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople')"> <div class="icon"> <img src="@/assets/images/manyidu/qz_wx.png" alt=""> </div> diff --git a/src/views/dataBoard/satisfactionEval/potentialPeople/index.vue b/src/views/dataBoard/satisfactionEval/potentialPeople/index.vue index 64c136837..34c4ff51a 100644 --- a/src/views/dataBoard/satisfactionEval/potentialPeople/index.vue +++ b/src/views/dataBoard/satisfactionEval/potentialPeople/index.vue @@ -3,26 +3,17 @@ <Breadcrumb :list="breadcrumbList"/> <div class="screen"> <el-form :model="queryParams" inline> - <el-select popper-class="selectPopClass" v-model="queryParams.org" size="small" placeholder="按组织"> + <el-select popper-class="selectPopClass" v-model="queryParams.agencyId" size="small" placeholder="按组织"> <el-option - v-for="item in monthOptions" + v-for="item in orgOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> - - <el-select popper-class="selectPopClass" v-model="queryParams.matterType" size="small" placeholder="按不满意类型"> - <el-option - v-for="item in monthOptions" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - <el-input v-model="queryParams.name" size="small" placeholder="按姓名"></el-input> - <el-input v-model="queryParams.tel" size="small" placeholder="按电话"></el-input> - <el-button size="small" class="btn" type="primary">查询</el-button> + <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-button size="small" class="btn" type="primary" @click="search">查询</el-button> </el-form> </div> @@ -38,41 +29,56 @@ label="上报人"/> <el-table-column - prop="key" + prop="mobile" label="上报人电话"/> <el-table-column - prop="key" + prop="agencyName" label="所属组织"> </el-table-column> <el-table-column - prop="key" + prop="eventCount" sortable - label="事件未解决数"/> + label="事件未解决数"> + <template slot-scope="{row}"> + <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="key" + prop="demandCount" sortable - label="需求未满足数"/> + label="需求未满足数"> + <template slot-scope="{row}"> + <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="key" + prop="serviceCount" sortable - label="应享未享数"/> + label="应享未享数"> + <template slot-scope="{row}"> + <el-button type="text" @click="$router.push('/dataBoard/satisfactionEval/potentialPeople/yxwxfw?reportUserId='+row.reportUserId)">{{ row.serviceCount }}</el-button> + </template> + </el-table-column> <el-table-column - prop="key" + prop="countAll" sortable - label="总数"/> - + label="总数"> + <template slot-scope="{row}">{{ row.countAll }} +<!-- <el-button type="text"></el-button>--> + </template> + </el-table-column> </el-table> </div> <Pagination v-show="total>0" :total="total" - :page.sync="queryParams.pageNum" + :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> @@ -87,7 +93,7 @@ import Title from "@/views/dataBoard/satisfactionEval/components/Title" export default { name: "dissatisfied", - components: {Breadcrumb, Pagination,Title}, + components: {Breadcrumb, Pagination, Title}, data() { return { queryParams: { @@ -97,9 +103,10 @@ export default { matterType: '', name: '', tel: '', - pageNum: 1, + pageNo: 1, pageSize: 10, }, + orgOptions: [], total: 0, breadcrumbList: [{ path: '/dataBoard/satisfactionEval/index', @@ -111,14 +118,43 @@ export default { monthOptions: new Array(12).fill(0).map((_, index) => { return {label: (index - 0 + 1) + '月', value: (index - 0 + 1)} }), - list: [{}, {}, {}] + list: [] } }, + mounted() { + this.getOrg() + }, methods: { + search() { + this.queryParams.pageNo = 1 + this.getList(); + }, + getOrg() { + let params = { + orgId: this.$store.state.chooseArea.chooseName.orgId, + level: this.$store.state.chooseArea.chooseName.level + } + + 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} + this.orgOptions = [parent, ...data.children.map(item => { + return { + value: item.id, + label: item.name + } + })] + this.getList() + }) + }, getList() { - + this.$http.get('/governance/satisfactionDetailList/getPotentialDissatisfiedCountDetail?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => { + this.list = data.list; + this.total = data.total; + }) }, - handleView({name,id}) { + handleView(id) { + } } } diff --git a/src/views/dataBoard/satisfactionEval/potentialPeople/sjwjj.vue b/src/views/dataBoard/satisfactionEval/potentialPeople/sjwjj.vue index 9aab8d589..9a198aa5c 100644 --- a/src/views/dataBoard/satisfactionEval/potentialPeople/sjwjj.vue +++ b/src/views/dataBoard/satisfactionEval/potentialPeople/sjwjj.vue @@ -1,32 +1,6 @@ <template> <div> <Breadcrumb :list="breadcrumbList"/> - <div class="screen"> - <el-form :model="queryParams" inline> - - <el-select popper-class="selectPopClass" v-model="queryParams.org" size="small" placeholder="按组织"> - <el-option - v-for="item in monthOptions" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - - <el-select popper-class="selectPopClass" v-model="queryParams.matterSource" size="small" placeholder="按事件类型"> - <el-option - v-for="item in monthOptions" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - <el-input v-model="queryParams.name" size="small" placeholder="按上报人姓名"></el-input> - <el-input v-model="queryParams.tel" size="small" placeholder="按上报人电话"></el-input> - <el-input v-model="queryParams.tel" size="small" placeholder="按事件描述关键词"></el-input> - <el-button size="small" class="btn" type="primary">查询</el-button> - </el-form> - </div> <div class="table"> <el-table :data="list"> <el-table-column @@ -39,40 +13,40 @@ label="上报人"/> <el-table-column - prop="key" + prop="mobile" label="上报人电话"/> <el-table-column - prop="key" + prop="agencyName" label="所属组织"> </el-table-column> <el-table-column - prop="key" + prop="categoryName" label="事件类型"/> <el-table-column - prop="key" + prop="eventContent" show-overflow-tooltip label="事件描述"/> <el-table-column - prop="key" + prop="latestProcessingStatus" label="最新办理状态"/> <el-table-column - prop="key" + prop="latestProcessingTime" sortable label="最近办理时间"/> <el-table-column - prop="key" + prop="happenTime" sortable label="事件上报时间"/> <el-table-column sortable label="详情"> - <template> - <el-button type="text">查看</el-button> + <template slot-scope="{row}"> + <el-button type="text" @click="handleView(row.id,row.name)">查看</el-button> </template> </el-table-column> @@ -82,7 +56,7 @@ <Pagination v-show="total>0" :total="total" - :page.sync="queryParams.pageNum" + :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> @@ -101,32 +75,39 @@ export default { data() { return { queryParams: { - month: '', - org: '', - matterSource: '', - matterType: '', - name: '', - tel: '', - pageNum: 1, + reportUserId: this.$route.query.reportUserId, + pageNo: 1, pageSize: 10, }, total: 0, breadcrumbList: [{ path: '/dataBoard/satisfactionEval/index', name: '满意度评价' + }, { + path: '/dataBoard/satisfactionEval/potentialPeople', + name: '潜在不满意数' }, { path: '', - name: '事件未解决人数' + name: '事件未解决数' }], - monthOptions: new Array(12).fill(0).map((_, index) => { - return {label: (index - 0 + 1) + '月', value: (index - 0 + 1)} - }), - list: [{}, {}, {}] + list: [] } }, + activated() { + this.queryParams.reportUserId = this.$route.query.reportUserId + this.queryParams.pageNo = 1 + this.getList(); + }, methods: { + search() { + this.queryParams.pageNo = 1 + this.getList(); + }, getList() { - + this.$http.get('/governance/satisfactionDetailList/getEventUnSolvedByUserId?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => { + this.list = data.list; + this.total = data.total; + }) }, handleView({name,id}) { } @@ -137,25 +118,7 @@ export default { <style scoped lang="scss"> @import "@/assets/scss/dataBoard/table.scss"; -.screen { - margin: 25px 0 40px; - - .el-select, .el-input { - width: 150px; - margin-right: 4px; - border: 1px solid #126AC5; - border-radius: 2px; - - /deep/ .el-input__inner { - background: none; - border: none; - color: #fff; - } - } - - .btn { - margin-left: 46px; - height: 32px; - } +.table { + margin-top: 40px; } </style> \ No newline at end of file diff --git a/src/views/dataBoard/satisfactionEval/potentialPeople/xqwmz.vue b/src/views/dataBoard/satisfactionEval/potentialPeople/xqwmz.vue index 80e542e88..d8e2d7a54 100644 --- a/src/views/dataBoard/satisfactionEval/potentialPeople/xqwmz.vue +++ b/src/views/dataBoard/satisfactionEval/potentialPeople/xqwmz.vue @@ -1,33 +1,6 @@ <template> <div> <Breadcrumb :list="breadcrumbList"/> - <div class="screen"> - <el-form :model="queryParams" inline> - - - <el-select popper-class="selectPopClass" v-model="queryParams.org" size="small" placeholder="按组织"> - <el-option - v-for="item in monthOptions" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - - <el-select popper-class="selectPopClass" v-model="queryParams.matterSource" size="small" placeholder="按需求类型"> - <el-option - v-for="item in monthOptions" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - <el-input v-model="queryParams.name" size="small" placeholder="按需求人姓名"></el-input> - <el-input v-model="queryParams.tel" size="small" placeholder="按需求人电话"></el-input> - <el-input v-model="queryParams.tel" size="small" placeholder="按需求描述关键词"></el-input> - <el-button size="small" class="btn" type="primary">查询</el-button> - </el-form> - </div> <div class="table"> <el-table :data="list"> @@ -37,41 +10,41 @@ width="80"/> <el-table-column - prop="name" + prop="demandUserName" label="需求人"/> <el-table-column - prop="key" + prop="demandUserMobile" label="需求人电话"/> <el-table-column - prop="key" + prop="agencyName" label="所属组织"> </el-table-column> <el-table-column - prop="key" + prop="content" show-overflow-tooltip label="需求描述"/> <el-table-column - prop="key" + prop="latestProcessingStatus" label="最新办理状态"/> <el-table-column - prop="key" + prop="latestProcessingTime" sortable label="最近办理时间"/> <el-table-column - prop="key" + prop="reportTime" sortable label="需求提交时间"/> <el-table-column sortable label="详情"> - <template> - <el-button type="text">查看</el-button> + <template slot-scope="{row}"> + <el-button type="text" @click="handleView(row.id,row.name)">查看</el-button> </template> </el-table-column> @@ -81,7 +54,7 @@ <Pagination v-show="total>0" :total="total" - :page.sync="queryParams.pageNum" + :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> @@ -100,32 +73,39 @@ export default { data() { return { queryParams: { - month: '', - org: '', - matterSource: '', - matterType: '', - name: '', - tel: '', - pageNum: 1, + reportUserId: this.$route.query.reportUserId, + pageNo: 1, pageSize: 10, }, total: 0, breadcrumbList: [{ path: '/dataBoard/satisfactionEval/index', name: '满意度评价' + }, { + path: '/dataBoard/satisfactionEval/potentialPeople', + name: '潜在不满意数' }, { path: '', - name: '需求未满足人数' + name: '需求未满足数' }], - monthOptions: new Array(12).fill(0).map((_, index) => { - return {label: (index - 0 + 1) + '月', value: (index - 0 + 1)} - }), - list: [{}, {}, {}] + list: [] } }, + activated() { + this.queryParams.reportUserId = this.$route.query.reportUserId + this.queryParams.pageNo = 1 + this.getList(); + }, methods: { + search() { + this.queryParams.pageNo = 1 + this.getList(); + }, getList() { - + this.$http.get('/governance/satisfactionDetailList/getUserDemandUnSolvedByUserId?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => { + this.list = data.list; + this.total = data.total; + }) }, handleView({name,id}) { } @@ -136,25 +116,7 @@ export default { <style scoped lang="scss"> @import "@/assets/scss/dataBoard/table.scss"; -.screen { - margin: 25px 0 40px; - - .el-select, .el-input { - width: 150px; - margin-right: 4px; - border: 1px solid #126AC5; - border-radius: 2px; - - /deep/ .el-input__inner { - background: none; - border: none; - color: #fff; - } - } - - .btn { - margin-left: 46px; - height: 32px; - } +.table { + margin-top: 40px; } </style> \ No newline at end of file diff --git a/src/views/dataBoard/satisfactionEval/potentialPeople/yxwxfw.vue b/src/views/dataBoard/satisfactionEval/potentialPeople/yxwxfw.vue index c34045808..6e30b0c85 100644 --- a/src/views/dataBoard/satisfactionEval/potentialPeople/yxwxfw.vue +++ b/src/views/dataBoard/satisfactionEval/potentialPeople/yxwxfw.vue @@ -1,32 +1,6 @@ <template> <div> <Breadcrumb :list="breadcrumbList"/> - <div class="screen"> - <el-form :model="queryParams" inline> - <el-select popper-class="selectPopClass" v-model="queryParams.org" size="small" placeholder="按组织"> - <el-option - v-for="item in monthOptions" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - - <el-select popper-class="selectPopClass" v-model="queryParams.matterSource" size="small" placeholder="按服务类型"> - <el-option - v-for="item in monthOptions" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - <el-input v-model="queryParams.name" size="small" placeholder="按服务对象姓名"></el-input> - <el-input v-model="queryParams.tel" size="small" placeholder="按服务对象电话"></el-input> - <el-input v-model="queryParams.tel" size="small" placeholder="按服务描述关键词"></el-input> - <el-button size="small" class="btn" type="primary">查询</el-button> - </el-form> - </div> - <div class="table"> <el-table :data="list"> <el-table-column @@ -39,40 +13,35 @@ label="服务对象姓名"/> <el-table-column - prop="key" + prop="mobile" label="服务对象电话"/> <el-table-column - prop="key" + prop="organizationName" label="所属组织"> </el-table-column> <el-table-column - prop="key" + prop="serviceCategoryName" label="服务类型"/> <el-table-column - prop="key" + prop="remark" show-overflow-tooltip label="服务描述"/> - <el-table-column - prop="key" - label="是否符合政策条件"/> - - <el-table-column - prop="key" + prop="serviceStatus" sortable label="是否已完成服务"/> <el-table-column - prop="key" + prop="serviceTimeStart" sortable label="服务发起时间"/> <el-table-column sortable label="详情"> - <template> - <el-button type="text">查看</el-button> + <template slot-scope="{row}"> + <el-button type="text" @click="handleView(row.id,row.name)">查看</el-button> </template> </el-table-column> @@ -82,7 +51,7 @@ <Pagination v-show="total>0" :total="total" - :page.sync="queryParams.pageNum" + :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> @@ -101,32 +70,39 @@ export default { data() { return { queryParams: { - month: '', - org: '', - matterSource: '', - matterType: '', - name: '', - tel: '', - pageNum: 1, + pageNo: 1, pageSize: 10, }, total: 0, breadcrumbList: [{ path: '/dataBoard/satisfactionEval/index', name: '满意度评价' + }, { + path: '/dataBoard/satisfactionEval/potentialPeople', + name: '潜在不满意数' }, { path: '', - name: '应享未享服务人数' + name: '应享未享服务数' }], - monthOptions: new Array(12).fill(0).map((_, index) => { - return {label: (index - 0 + 1) + '月', value: (index - 0 + 1)} - }), - list: [{}, {}, {}] + + list: [] } }, + activated() { + this.queryParams.reportUserId = this.$route.query.reportUserId + this.queryParams.pageNo = 1 + this.getList(); + }, methods: { + search() { + this.queryParams.pageNo = 1 + this.getList(); + }, getList() { - + this.$http.get('/governance/satisfactionDetailList/getServiceNotEnjoyedByUserId?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => { + this.list = data.list; + this.total = data.total; + }) }, handleView({name,id}) { } @@ -137,25 +113,7 @@ export default { <style scoped lang="scss"> @import "@/assets/scss/dataBoard/table.scss"; -.screen { - margin: 25px 0 40px; - - .el-select, .el-input { - width: 150px; - margin-right: 4px; - border: 1px solid #126AC5; - border-radius: 2px; - - /deep/ .el-input__inner { - background: none; - border: none; - color: #fff; - } - } - - .btn { - margin-left: 46px; - height: 32px; - } +.table { + margin-top: 40px; } </style> \ No newline at end of file