From 97e6d9a91d2c456319e803c79e72c5b4605715ce 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 1/7] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=BB=A1=E6=84=8F?= =?UTF-8?q?=E5=BA=A6=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 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 2/7] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=BB=A1=E6=84=8F?= =?UTF-8?q?=E5=BA=A6=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 @@ <div class="sub-title">事项详情</div> <div class="detail"> <p> - 小区垃圾急需要处理,垃圾桶旁边垃圾堆积严重,现在已经影响居民的日常生活和出行,望有关部门能够重视。 + {{unsatisfiedMattersModel.reason}} </p> <ul> - <li><span>事项来源:</span>省满意度调查</li> - <li><span>事项类型:</span>生态环境</li> - <li><span>所属月份:</span>2023-09</li> - <li><span>所属社区:</span>XXX社区</li> - <li><span>提交人:</span>张**</li> - <li><span>提交人电话:</span>133</li> + <li><span>事项来源:</span>{{unsatisfiedMattersModel.satisfactionSource}}</li> + <li><span>事项类型:</span>{{unsatisfiedMattersModel.satisfactionCategoryName}}</li> + <li><span>所属月份:</span>{{unsatisfiedMattersModel.satisfactionCategoryName}}</li> + <li><span>所属社区:</span>{{unsatisfiedMattersModel.organizationName}}</li> + <li><span>提交人:</span>{{unsatisfiedMattersModel.name}}</li> + <li><span>提交人电话:</span>{{unsatisfiedMattersModel.mobile}}</li> </ul> </div> </el-col> @@ -33,31 +33,31 @@ <div class="number-item"> <div class="text">12345投诉</div> <div class="num"> - <span class="orange">39</span> + <span class="orange">{{unsatisfiedHisCount.satisfaction_12345}}</span> 人 </div> </div> <div class="number-item"> <div class="text">省满意度调查</div> <div class="num"> - <span class="green">102</span> + <span class="green">{{unsatisfiedHisCount.satisfaction_province}}</span> 人 </div> </div> <div class="number-item"> <div class="text">社区满意度自评</div> <div class="num"> - <span class="light">273</span> + <span class="light">{{unsatisfiedHisCount.satisfaction_community}}</span> 人 </div> </div> </div> <div class="sub-title">回访记录</div> <div class="log"> - <div class="log-item" v-for="(item,index) in 3"> - <div class="name">杨建国(网格长)</div> - <div>2023-08-17</div> - <div>上门回访 <i class="el-icon-arrow-right"></i></div> + <div class="log-item" v-for="(item,index) in followUpRecordDetails"> + <div class="name">{{item.followUpUser}}({{item.roleName}})</div> + <div>{{item.followUpDate}}</div> + <div>{{item.followUpWay}} <i class="el-icon-arrow-right"></i></div> </div> </div> @@ -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 @@ <Breadcrumb :list="breadcrumbList"/> <div class="screen"> <el-form :model="queryParams" inline> + <el-date-picker + size="small" + popper-class="selectPopClass" + v-model="queryParams.month" + type="month" + value-format="yyyy-MM" + placeholder="按月度"> + </el-date-picker> - <el-select popper-class="selectPopClass" v-model="queryParams.month" 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.org" size="small" placeholder="按组织"> + <el-select + popper-class="selectPopClass" + clearable + v-model="queryParams.satisfactionSource" + size="small" + placeholder="按不满意事项来源" + @change="getSatisfactionCategoryOptions" + > <el-option - v-for="item in monthOptions" + v-for="item in satisfactionSourceOptions" :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-select + popper-class="selectPopClass" + clearable + v-model="queryParams.satisfactionCategory" + 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.matterType" size="small" placeholder="按不满意事项类型"> - <el-option - v-for="item in monthOptions" + v-for="item in satisfactionCategoryOptions" :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.mobile" size="small" placeholder="按人员电话"></el-input> + <el-button size="small" class="btn" type="primary" @click="search">查询</el-button> </el-form> </div> @@ -53,71 +65,90 @@ width="80"/> <el-table-column - prop="name" + prop="month" label="月度" width="114"/> <el-table-column - prop="address" + prop="organizationName" width="118" label="所属社区"/> <el-table-column - prop="address" + prop="satisfactionSource" width="168" label="事项来源"> - <template slot-scope="data"></template> + <template slot-scope="{row}"> + <span :style="{color: satisfactionSourceFormat(row.satisfactionSource).color}"> + {{ satisfactionSourceFormat(row.satisfactionSource).label }} + </span> + + </template> </el-table-column> <el-table-column - prop="address" - width="118" + prop="satisfactionCategoryName" + width="150" label="事项类型"/> <el-table-column - prop="address" + prop="reason" show-overflow-tooltip label="事项描述"/> <el-table-column - prop="address" + prop="createTime" width="197" label="提交时间"/> <el-table-column - prop="address" + prop="name" width="119" label="姓名"/> <el-table-column - prop="address" + prop="mobile" width="153" label="电话"/> <el-table-column - prop="address" + prop="completeFlag" width="118px" label="是否完成"> - <template slot-scope="data"></template> + <template slot-scope="{row}"> + <span :class="row.completeFlag==='是'?'light':'red'"> + {{ row.completeFlag }} + </span> + </template> </el-table-column> + <el-table-column - prop="address" + prop="followUpStatus" width="118px" label="是否回访"> - <template slot-scope="data"></template> + <template slot-scope="{row}"> + <span :class="row.followUpStatus==='是'?'light':'red'"> + {{ row.followUpStatus }} + </span> + </template> </el-table-column> <el-table-column - prop="address" + prop="dangerFlag" width="118px" label="消除风险"> - <template slot-scope="data"></template> + <template slot-scope="{row}"> + <span :class="row.dangerFlag==='是'?'light':'red'"> + {{ row.dangerFlag }} + </span> + + </template> </el-table-column> <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> @@ -127,11 +158,11 @@ <Pagination v-show="total>0" :total="total" - :page.sync="queryParams.pageNum" + :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> - <DissatisfiedDetail ref="detail"/> + <DissatisfiedDetail ref="detail" :id="id"/> </div> </template> @@ -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 @@ <div> <Breadcrumb :list="breadcrumbList"/> <div class="main-title"> - <Title text="“基础教育”画像匹配同类不满意人员" noBg/> + <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 From 61069694e008c9ecd09dfd67280c00247fac046b 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 16:09:31 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/scss/dataBoard/overview/index.scss | 6 ++--- .../dataBoard/overview/components/jdtphx.vue | 4 +-- .../modules/EventSituation/index.vue | 4 +-- .../modules/PersonnelPortrait/index.vue | 25 ++++++++++--------- .../modules/SelfTrend/index.vue | 2 +- .../modules/TypesOfDissatisfaction/index.vue | 4 +-- 6 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/assets/scss/dataBoard/overview/index.scss b/src/assets/scss/dataBoard/overview/index.scss index 69d4eda69..8d0150eaf 100644 --- a/src/assets/scss/dataBoard/overview/index.scss +++ b/src/assets/scss/dataBoard/overview/index.scss @@ -569,7 +569,6 @@ height: 40px; line-height: 40px; font-size: 14px; - font-family: PingFang SC; font-weight: 400; color: #A3B9DA; } @@ -583,11 +582,12 @@ height: 40px; line-height: 40px; width: 110px; - height: 14px; font-size: 14px; - font-family: PingFang SC; font-weight: 400; color: #FFFFFF; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } .tdbg1 { diff --git a/src/views/dataBoard/overview/components/jdtphx.vue b/src/views/dataBoard/overview/components/jdtphx.vue index 9919368e0..dbe6b842e 100644 --- a/src/views/dataBoard/overview/components/jdtphx.vue +++ b/src/views/dataBoard/overview/components/jdtphx.vue @@ -29,7 +29,7 @@ <div class="m-jdhx-card-content"> <div class="m-jdhx-card-content-item" v-for="(item,index) in houseList" :key="index"> <div class="m-jdhx-card-content-item-lable">{{item.name}}</div> - <div class="m-jdhx-card-content-item-value">{{item.num}}</div> + <div class="m-jdhx-card-content-item-value">{{item.ratio}}</div> </div> </div> </div> @@ -105,7 +105,7 @@ <div class="m-jdhx-card-content"> <div class="m-jdhx-card-content-item" v-for="(item,index) in riskList" :key="index"> <div class="m-jdhx-card-content-item-lable">{{item.riskName}}</div> - <div class="m-jdhx-card-content-item-value">{{item.riskNum}}人</div> + <div class="m-jdhx-card-content-item-value">{{item.riskNum}}</div> </div> </div> </div> diff --git a/src/views/dataBoard/satisfactionEval/modules/EventSituation/index.vue b/src/views/dataBoard/satisfactionEval/modules/EventSituation/index.vue index e904dd399..060c19ec1 100644 --- a/src/views/dataBoard/satisfactionEval/modules/EventSituation/index.vue +++ b/src/views/dataBoard/satisfactionEval/modules/EventSituation/index.vue @@ -113,7 +113,6 @@ export default { .cur-month-item { margin-left: 71px; - .txt { font-size: 16px; font-weight: 400; @@ -150,7 +149,8 @@ export default { .his-month-item { flex: 1; position: relative; - padding-left: 25px; + //padding-left: 25px; + text-align: center; &:after { content: ''; diff --git a/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue b/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue index dfb1cee8b..09cfd045b 100644 --- a/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue +++ b/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue @@ -3,36 +3,36 @@ <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"> +<!-- <el-select v-model="typeCondition" @change="getData" placeholder="请选择" class="select" popper-class="selectPopClass"> <el-option v-for="item in typeConditionList" :key="item.value" :label="item.label" :value="item.value"> </el-option> - </el-select> + </el-select>--> </div> <div class="portrait"> - <div class="tag yellow"> + <div class="tag yellow" v-if="gridName"> <div class="text">{{ gridName }}</div> </div> - <div class="tag blue"> + <div class="tag blue" v-if="ageClassification"> <div class="text">{{ ageClassification }}</div> </div> - <div class="tag red"> + <div class="tag red" v-if="residentTagName"> <div class="text">{{ residentTagName }}</div> </div> - <div class="tag light"> + <div class="tag light" v-if="monthIncomeLevel"> <div class="text">{{ monthIncomeLevel }}</div> </div> - <div class="tag green"> + <div class="tag green" v-if="cultureLevel"> <div class="text">{{ cultureLevel }}</div> </div> - <div class="tag orange"> + <div class="tag orange" v-if="marriageName"> <div class="text">{{ marriageName }}</div> </div> - <div class="tag purple"> + <div class="tag purple" v-if="gender"> <div class="text">{{ gender==='1'?'男':gender==='2'?'女':gender==='0'?'未知':'' }}</div> </div> </div> @@ -77,13 +77,15 @@ export default { watch: { "$store.state.chooseArea.chooseName"(val) { if (val.orgId) { - this.getDisKey() + // this.getDisKey() + this.getData(); } } }, mounted() { if (this.$store.state.chooseArea.chooseName.orgId) { - this.getDisKey() + // this.getDisKey() + this.getData(); } }, methods: { @@ -98,7 +100,6 @@ export default { this.$http.post('/sys/dict/data/dictlist', {'dictType': 'satisfaction_category'}).then(({data: {data}}) => { this.typeCondition = data[0].value this.typeConditionList = data - this.getData(); }) }, getData() { diff --git a/src/views/dataBoard/satisfactionEval/modules/SelfTrend/index.vue b/src/views/dataBoard/satisfactionEval/modules/SelfTrend/index.vue index 9cb614f1d..eb2ab027e 100644 --- a/src/views/dataBoard/satisfactionEval/modules/SelfTrend/index.vue +++ b/src/views/dataBoard/satisfactionEval/modules/SelfTrend/index.vue @@ -187,7 +187,7 @@ export default { yAxis: [ { type: 'value', - name: '单位:人', + name: '单位:' + (this.trendType === 1 ? '人' : '得分'), nameLocation: 'end', splitLine: { show: true, diff --git a/src/views/dataBoard/satisfactionEval/modules/TypesOfDissatisfaction/index.vue b/src/views/dataBoard/satisfactionEval/modules/TypesOfDissatisfaction/index.vue index 57d90f0d6..bdd3fe289 100644 --- a/src/views/dataBoard/satisfactionEval/modules/TypesOfDissatisfaction/index.vue +++ b/src/views/dataBoard/satisfactionEval/modules/TypesOfDissatisfaction/index.vue @@ -138,7 +138,7 @@ export default { } let legendName = ['省满意度调查\n各项不满意人数', '社区满意度自查\n各项不满意人数'] let series = [{ - name: "省满意度调查\n各项不满意人数", + name: this.resultType === 2?'12345热线\n事件上报人数':"省满意度调查\n各项不满意人数", type: "radar", symbol: "circle", symbolSize: 7, @@ -161,7 +161,7 @@ export default { data: [datavaule] }] if (this.resultType === 2) { - legendName = ['省满意度调查\n各项不满意人数'] + legendName = ['12345热线\n事件上报人数'] } else { series.push({ name: "社区满意度自查\n各项不满意人数", From a91a56e5397d54285726bca7f14e67747019fa82 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 17:19:42 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E4=BA=8B=E4=BB=B6&?= =?UTF-8?q?=E5=9B=9E=E8=AE=BF=20=E4=BA=BA=E6=88=BF=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E6=9B=B4=E6=96=B0=20tab=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E5=8F=8A=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/DynamicHumanRoomData.vue | 4 +- .../overview/components/EventAndFollowUp.vue | 5 +- .../overview/components/FollowUp.vue | 166 ++++++++++++++++++ .../overview/components/GridUpdateRanking.vue | 70 ++++++++ src/views/dataBoard/overview/index.vue | 59 ++++++- 5 files changed, 292 insertions(+), 12 deletions(-) create mode 100644 src/views/dataBoard/overview/components/FollowUp.vue create mode 100644 src/views/dataBoard/overview/components/GridUpdateRanking.vue diff --git a/src/views/dataBoard/overview/components/DynamicHumanRoomData.vue b/src/views/dataBoard/overview/components/DynamicHumanRoomData.vue index 00ff17177..66656817d 100644 --- a/src/views/dataBoard/overview/components/DynamicHumanRoomData.vue +++ b/src/views/dataBoard/overview/components/DynamicHumanRoomData.vue @@ -57,10 +57,10 @@ export default { <style scoped lang="scss"> @import "@/assets/scss/dataBoard/c/common.scss"; .dhrd { - padding: 20px 16px; + padding: 0 16px 20px; } .dhrd-list { - height: 200px; + height: 140px; overflow-y: auto; @include scrollBar .dhrd-item { diff --git a/src/views/dataBoard/overview/components/EventAndFollowUp.vue b/src/views/dataBoard/overview/components/EventAndFollowUp.vue index 8d4d7f6ee..69ed1c99f 100644 --- a/src/views/dataBoard/overview/components/EventAndFollowUp.vue +++ b/src/views/dataBoard/overview/components/EventAndFollowUp.vue @@ -1,8 +1,8 @@ <template> <div class="event"> - <div class="tabs"> +<!-- <div class="tabs"> <Tabs v-model="type" :list="typeList" @changeVal="typeChange"/> - </div> + </div>--> <div class="content"> <div class="total"> <div class="tit">事件总数</div> @@ -55,6 +55,7 @@ export default { lastSumNum: 0, processNum: 0, closedNum: 0, + closedRatio: 0, } }, watch: { diff --git a/src/views/dataBoard/overview/components/FollowUp.vue b/src/views/dataBoard/overview/components/FollowUp.vue new file mode 100644 index 000000000..bab5c39ef --- /dev/null +++ b/src/views/dataBoard/overview/components/FollowUp.vue @@ -0,0 +1,166 @@ +<template> + <div class="follow-up"> + <div class="content"> + <div class="left"> + <div class="total"> + <div class="tit">回访总数</div> + <div class="num"><span>{{ sumNum ? sumNum : 0 }}</span>个</div> + </div> + <div class="left-item"> + <div class="tit">电话回访</div> + <div class="num"><span>{{ mobileNum ? mobileNum : 0 }}</span>个</div> + </div> + <div class="left-item"> + <div class="tit">上门回访</div> + <div class="num"><span>{{ visitNum ? visitNum : 0 }}</span>个</div> + </div> + </div> + <div class="xc"> + <div class="tit">回访消除 <br/> 风险人数</div> + <div class="num blue">{{ notRiskyNum ? notRiskyNum : 0 }}</div> + </div> + </div> + </div> +</template> + +<script> +export default { + name: "FollowUp", + props: { + date: { + type: String, + default: '' + } + }, + data() { + return { + org: this.$store.state.chooseArea.chooseName, + typeList: [{ + label: '12345事件', + value: '12345' + }, { + label: '事件回访', + value: 'follow' + }], + type: 'follow', + sumNum: 0, + mobileNum: 0, + visitNum: 0, + notRiskyNum: 0, + } + }, + watch: { + "$store.state.chooseArea.chooseName"(val) { + if (val.orgId) { + this.getData() + } + }, + date() { + this.getData() + } + }, + mounted() { + if (this.org.orgId) { + this.getData() + } + }, + methods: { + getData() { + this.$http.get('/actual/base/streetOverview/eventAndFollowGroup?month=' + this.date + '&level=' + this.$store.state.chooseArea.chooseName.level + '&orgId=' + this.$store.state.chooseArea.chooseName.orgId + '&queryType=' + this.type).then(({data: {data}}) => { + this.sumNum = data.sumNum + this.mobileNum = data.mobileNum + this.visitNum = data.visitNum + this.notRiskyNum = data.notRiskyNum + }) + }, + typeChange(val) { + console.log(val,'val') + this.type = val + this.getData() + } + } +} +</script> + +<style scoped lang="scss"> +.follow-up { + padding: 10px 16px; +} +.content { + background: linear-gradient(90deg, rgba(1, 94, 234, 0.1) 0%, rgba(16, 50, 103, 0) 50%, rgba(1, 94, 234, 0.1) 100%); + padding: 40px 19px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.left { + border-right: 1px solid #96B1CE; + padding-right: 35px; + display: flex; + align-items: center; + justify-content: space-between; + + .total { + .tit { + font-size: 16px; + font-weight: 400; + color: #FFFFFF; + margin-bottom: 20px; + } + + .num { + font-size: 14px; + font-weight: 500; + color: #A3B9DA; + + span { + font-size: 36px; + font-weight: bold; + font-style: italic; + color: #08EBAE; + } + } + } + + .left-item { + margin-left: 24px; + .tit { + font-size: 14px; + font-weight: 400; + color: #A3B9DA; + line-height: 24px; + margin-bottom: 24px; + } + + .num { + font-size: 14px; + font-weight: 500; + color: #A3B9DA; + span { + font-size: 30px; + font-weight: bold; + font-style: italic; + color: #78C4F3; + } + } + } +} + +.xc { + .tit { + font-size: 16px; + font-weight: 400; + color: #FFFFFF; + line-height: 24px; + margin-bottom: 10px; + } + + .num { + font-size: 32px; + font-weight: bold; + font-style: italic; + color: #FFB73C; + } +} +</style> \ No newline at end of file diff --git a/src/views/dataBoard/overview/components/GridUpdateRanking.vue b/src/views/dataBoard/overview/components/GridUpdateRanking.vue new file mode 100644 index 000000000..ee2d9b217 --- /dev/null +++ b/src/views/dataBoard/overview/components/GridUpdateRanking.vue @@ -0,0 +1,70 @@ +<template> + <div class="m-subbox m-sqrfph"> + <div class="table"> + <div class="tr"> + <div class="th">排名</div> + <div class="th">社区</div> + <div class="th">房屋更新数</div> + <div class="th">人口更新数</div> + <div class="th">人房更新总数</div> + </div> + <div class="tr" v-for="(item,index) in pmList" :key="index"> + <div :class="index - 0 + 1 < 4 ? `td tdbg${index-0+1}` : 'td'"> + {{ index - 0 + 1 }} + </div> + <div class="td">{{ item.orgName }}</div> + <div class="td">{{ item.houseNum }}</div> + <div class="td">{{ item.residentNum }}</div> + <div class="td">{{ item.sumNum }}</div> + </div> + </div> + </div> +</template> +<script> +export default { + name: "GridUpdateRanking", + props: { + date: { + type: String, + default: '' + } + }, + data() { + return { + org: this.$store.state.chooseArea.chooseName, + pmList: [], + }; + }, + watch: { + "$store.state.chooseArea.chooseName"(val) { + if (val.orgId) { + this.getList() + } + }, + date() { + this.getList() + } + }, + mounted() { + if (this.org.orgId) { + this.getList() + } + }, + methods: { + getList() { + this.$http.get('/actual/base/streetOverview/residentHouseUpdateGroup?level=' + this.$store.state.chooseArea.chooseName.level + '&orgId=' + this.$store.state.chooseArea.chooseName.orgId).then(({data: {data}}) => { + this.pmList = data + }) + } + } +}; +</script> + +<style lang="scss" src="@/assets/scss/dataBoard/overview/index.scss" scoped/> +<style lang="scss" scoped> +.m-sqrfph { + padding-top: 0 !important; + height: 160px !important; +} + +</style> diff --git a/src/views/dataBoard/overview/index.vue b/src/views/dataBoard/overview/index.vue index a6b6eaa88..598fc17c3 100644 --- a/src/views/dataBoard/overview/index.vue +++ b/src/views/dataBoard/overview/index.vue @@ -86,7 +86,14 @@ <!-- 社区&网格--> <div v-if="currentLevel === 'community' || currentLevel === 'grid'" class="m-box"> <title-box text="人房数据动态更新"/> - <DynamicHumanRoomData/> + <Tabs + v-model="dynamicType" + :list="dynamicTypeList" + v-if="currentLevel === 'community'" + @changeVal="dynamicTypeChange" + /> + <DynamicHumanRoomData v-if="dynamicType === 1"/> + <GridUpdateRanking v-if="dynamicType === 2"/> </div> <!-- 社区概览--> <div v-if="currentLevel === 'community'" class="m-box"> @@ -118,7 +125,9 @@ /> </span> </title-box> - <EventAndFollowUp :date="sjhfDate"/> + <Tabs v-model="eventType" :list="eventTypeList" @changeVal="eventTypeChange"/> + <EventAndFollowUp :date="sjhfDate" v-if="eventType === 1"/> + <FollowUp :date="sjhfDate" v-if="eventType === 2"/> </div> <!-- 网格 --> <div v-if="currentLevel === 'grid'" class="m-box"> @@ -159,9 +168,12 @@ import sqrfph from "@/views/dataBoard/overview/components/sqrfph.vue"; import sq12345 from "@/views/dataBoard/overview/components/sq12345.vue"; import DynamicHumanRoomData from "@/views/dataBoard/overview/components/DynamicHumanRoomData.vue"; +import GridUpdateRanking from "@/views/dataBoard/overview/components/GridUpdateRanking.vue"; import CommunityResult from "@/views/dataBoard/overview/components/CommunityResult.vue"; import EventAndFollowUp from "@/views/dataBoard/overview/components/EventAndFollowUp.vue"; import RankingGridData from "@/views/dataBoard/overview/components/RankingGridData.vue"; +import FollowUp from "@/views/dataBoard/overview/components/FollowUp.vue"; +import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue"; import {requestPostBi} from "@/js/dai/request-bipass"; @@ -186,7 +198,10 @@ export default { DynamicHumanRoomData, CommunityResult, EventAndFollowUp, - RankingGridData + RankingGridData, + GridUpdateRanking, + FollowUp, + Tabs }, data() { @@ -213,6 +228,22 @@ export default { displayedResiId: "", displayedHouseId: "", + dynamicType: 1, + dynamicTypeList: [{ + value: 1, + label: '更新动态' + }, { + value: 2, + label: '网格更新排行' + }], + eventType: 1, + eventTypeList: [{ + value: 1, + label: '12345事件' + }, { + value: 2, + label: '事件回访' + }] }; }, @@ -220,20 +251,26 @@ export default { // const queryOrgId = getQueryPara("orgId"); // const queryOrgLevel = getQueryPara("orgLevel"); // this.init(queryOrgId, queryOrgLevel); - if(this.$store.state.chooseArea.chooseName.orgId) { + if (this.$store.state.chooseArea.chooseName.orgId) { this.getMapData() } }, watch: { - "$store.state.chooseArea.chooseName"(val){ - if(val.orgId) { + "$store.state.chooseArea.chooseName"(val) { + if (val.orgId) { this.getMapData() } } }, methods: { + dynamicTypeChange(val) { + this.dynamicType = val + }, + eventTypeChange(val) { + this.eventType = val + }, async init(queryOrgId, queryOrgLevel) { if (queryOrgId) { this.orgId = queryOrgId; @@ -284,7 +321,7 @@ export default { breadList.push(item); this.breadList = breadList; } - this.getMapData(item.orgId,item.orgLevel) + this.getMapData(item.orgId, item.orgLevel) }, // 点击搜索结果条目,在地图上显示点和详情弹窗 @@ -299,7 +336,7 @@ export default { }, //获取地图上显示的组织数据 - async getMapData(orgId=this.$store.state.chooseArea.chooseName.orgId,level=this.$store.state.chooseArea.chooseName.level) { + async getMapData(orgId = this.$store.state.chooseArea.chooseName.orgId, level = this.$store.state.chooseArea.chooseName.level) { const url = "org_map"; this.$http.post(`/gov/org/agency/maporg`, {orgId, level}).then(({data: {data}}) => { this.orgData = data; @@ -372,3 +409,9 @@ export default { src="@/assets/scss/dataBoard/overview/index.scss" scoped ></style> + +<style lang="scss" scoped> +.tabs { + padding: 16px; +} +</style> From ea3c0ecf78d96d308bbd95b51cc660595e0a3e5d 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 17:36:42 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=BB=E5=83=8F?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E4=BA=BA=E5=91=98=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dissatisfiedPersonnel/detail.vue | 40 +--- .../dissatisfiedPersonnel/index.vue | 11 +- .../modules/BusinessRecords.vue | 150 -------------- .../modules/EnjoyService.vue | 188 ------------------ .../dissatisfiedPersonnel/modules/Family.vue | 76 ------- .../modules/MatterDetails.vue | 93 --------- .../modules/PointsRecord.vue | 51 ----- .../modules/PersonnelPortrait/index.vue | 24 +-- 8 files changed, 22 insertions(+), 611 deletions(-) delete mode 100644 src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/BusinessRecords.vue delete mode 100644 src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/EnjoyService.vue delete mode 100644 src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/Family.vue delete mode 100644 src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/MatterDetails.vue delete mode 100644 src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/PointsRecord.vue diff --git a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/detail.vue b/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/detail.vue index bee4c3220..0b3447516 100644 --- a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/detail.vue +++ b/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/detail.vue @@ -3,50 +3,18 @@ <div class="breadcrumb"> <Breadcrumb :list="breadcrumbList"/> </div> - <el-row> - <el-col :span="10"> - <div class="sub-title">事项详情</div> - <MatterDetails/> - - <div class="sub-title">家庭关系</div> - <Family/> - </el-col> - <el-col :span="13" :offset="1"> - <div class="sub-title">居民各项业务记录</div> - <BusinessRecords/> - <el-row> - <el-col :span="12"> - <div class="sub-title">享受服务次数统计</div> - <EnjoyService/> - </el-col> - <el-col :span="11" :offset="1"> - <div class="sub-title">积分记录</div> - <PointsRecord/> - </el-col> - </el-row> - </el-col> - </el-row> - + <Personnel/> </div> </template> <script> import Breadcrumb from '@/views/dataBoard/satisfactionEval/components/Breadcrumb' -import MatterDetails from "./modules/MatterDetails" -import Family from "./modules/Family" -import BusinessRecords from "./modules/BusinessRecords" -import EnjoyService from "./modules/EnjoyService" -import PointsRecord from "./modules/PointsRecord" - +import Personnel from '@/views/dataBoard/cpts/personnel' export default { name: "dissatisfiedPersonnelDetail", components: { Breadcrumb, - MatterDetails, - Family, - BusinessRecords, - EnjoyService, - PointsRecord + Personnel }, data() { return { @@ -63,8 +31,6 @@ export default { } }, mounted() { - console.log(this.breadcrumbList, this.$route) - this.$set(this.breadcrumbList[2], 'name', this.$route.query.name) this.breadcrumbList[2].name = this.$route.query.name } diff --git a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/index.vue b/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/index.vue index 66dcb75f0..41b196f83 100644 --- a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/index.vue +++ b/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/index.vue @@ -1,9 +1,9 @@ <template> <div> <Breadcrumb :list="breadcrumbList"/> - <div class="main-title"> +<!-- <div class="main-title"> <Title :text="`“${title}”画像匹配同类不满意人员`" noBg/> - </div> + </div>--> <div class="table"> <el-table :data="list"> <el-table-column @@ -118,11 +118,11 @@ export default { getList() { this.$http.get('/governance/satisfactionOverview/satisfactionCrowdList?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => { this.list = data.list - this.total = total + this.total = data.total }) }, handleView({restName,restId}) { - this.$router.push('/dataBoard/satisfactionEval/dissatisfiedPersonnel/detail?name='+restName+'&id='+restId) + this.$router.push('/dataBoard/satisfactionEval/dissatisfiedPersonnel/detail?name='+restName+'&user_id='+restId) } } } @@ -156,4 +156,7 @@ export default { .main-title { margin: 25px 0 32px; } +.table { + margin-top: 32px; +} </style> \ No newline at end of file diff --git a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/BusinessRecords.vue b/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/BusinessRecords.vue deleted file mode 100644 index 64a501170..000000000 --- a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/BusinessRecords.vue +++ /dev/null @@ -1,150 +0,0 @@ -<template> - <div class="business-records"> - <Tabs v-model="type" :list="typeList" @changeVal="typeChange"/> - <div class="table"> - <el-table :data="list"> - <el-table-column - label="序号" - type="index" - width="80"/> - <el-table-column - label="评价周期" - prop="key" - width=""/> - <el-table-column - label="姓名" - prop="key" - width=""/> - <el-table-column - label="电话" - prop="key" - width=""/> - <el-table-column - label="不满意类型" - prop="key" - width=""/> - <el-table-column - label="不满意原因" - prop="key" - width=""/> - <el-table-column label="操作" width="90" align="center"> - <template slot-scope="data"> - <el-button type="text" @click="handleView">查看</el-button> - </template> - </el-table-column> - </el-table> - <Pagination - v-show="total>0" - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getList" - /> - </div> - </div> -</template> - -<script> -import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue"; - -export default { - name: "BusinessRecords", - components: {Tabs}, - data() { - return { - total: 10, - queryParams: { - pageNum: 0, - pageSize: 10, - }, - type: 1, - typeList: [{ - label: ' 12345投诉', - value: 1 - }, { - label: '省满意度调查', - value: 2 - }, { - label: '社区满意度自查', - value: 3 - }, { - label: '事件', - value: 4 - }, { - label: '需求', - value: 5 - }, { - label: '服务', - value: 6 - }, { - label: '回访记录', - value: 7 - }], - list: [{},{},{},{},{}] - } - }, - methods: { - typeChange() { - - }, - getList() { - - } - } -} -</script> - -<style scoped lang="scss"> -.business-records { - margin-bottom: 25px; -} -.table { - /deep/ .el-table td, /deep/ .el-table th, /deep/ .el-table tr { - padding: 14px !important; - border:none!important; - min-height: 52px; - - } - /deep/ .el-table td, /deep/ .el-table th { - background: none!important; - } - /deep/ .el-table td { - font-size: 14px; - font-weight: 400; - color: #FFFFFF; - text-shadow: 1px 2px 4px rgba(10,32,60,0.51); - } - - /deep/ .el-table tr { - background: none; - &:hover { - background-color: rgba(26, 149, 255, 0.3) !important; - } - - } - /deep/ .el-table__body-wrapper tr:nth-of-type(odd) { - background: rgba(14, 56, 115, 0.4); - } - - /deep/ .el-table { - background: none !important; - - &:before { - background: none; - } - } - /deep/ .el-table__header-wrapper tr { - color: #A3B9DA !important; - font-size: 14px; - font-weight: 400; - opacity: 0.76; - background: none; - &:hover { - background: none!important; - } - } - /deep/ .el-table__header-wrapper { - background: none!important; - } -} -</style> \ No newline at end of file diff --git a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/EnjoyService.vue b/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/EnjoyService.vue deleted file mode 100644 index 0e8ecee58..000000000 --- a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/EnjoyService.vue +++ /dev/null @@ -1,188 +0,0 @@ -<template> - <div className="event-statistics"> - <div id="enjoyServiceChart" style="height: 360px;"></div> - </div> -</template> - -<script> -import * as echarts from "echarts"; - -export default { - name: "EnjoyService", - data() { - return {} - }, - mounted() { - this.initCharts() - }, - methods: { - initCharts() { - let div = document.getElementById('enjoyServiceChart'); - this.myChart = echarts.init(div); - - let xData = ['岗位找人', '技能找人', '温暖找人', '服务找人']; - let tq = [300, 90, 48, 39]; - const max = Math.max(...tq) - - let barArray = new Array(xData.length).fill((parseInt(max / 100) + 1) * 100) - var option = { - title: { - show: false, - text: '', - x: 'center', - top: '15px', - textStyle: { - color: '#333333', - fontWeight: 500, - fontSize: 18, - }, - }, - tooltip: { - trigger: 'axis', - backgroundColor: 'rgba(13, 64, 71, 0.50)', - borderColor: 'rgba(143, 225, 252, 0.60)', - padding: 8, - textStyle: { - color: '#fff', - }, - formatter: function (params) { - console.log(params) - var res = '' - for (var i = 0; i < params.length; i++) { - if (params[i].seriesName != "") { - res += '<p>' + params[0].name + ':' + params[i].data + '</p>' - } - } - return res; - }, - }, - grid: { - top: '0', - left: '1%', - right: '2%', - bottom: '0', - containLabel: true - }, - yAxis: [ - { - type: 'category', - axisTick: { - show: false, - }, - splitLine: { - show: false, - }, - axisLine: { - lineStyle: { - color: '#323c41' - } - }, - axisLabel: { - align: 'right', - textStyle: { - fontSize: 12, - color: '#A3B9DA' - } - }, - boundaryGap: true, - data: xData, - }, { - type: 'category', - data: xData, - axisTick: { - show: false, - }, - axisLine: {show: false}, - axisLabel: { - show: false, - }, - boundaryGap: true, - - } - ], - - xAxis: [ - { - type: 'value', - splitLine: { - show: true, - lineStyle: { - color: 'rgba(4,187,255,0.18)', - type: 'dashed' - }, - }, - nameTextStyle: { - color: '#A3B9DA', - textStyle: { - fontSize: 12 - }, - align: 'center' - }, - axisLabel: { - show: true, - color: '#A3B9DA', - textStyle: { - fontSize: 12 - } - }, - axisTick: { - show: false - } - } - ], - series: [ - { - type: 'bar', - barWidth: 16, - itemStyle: { - // lenged文本 - opacity: 1, // 这个是 透明度 - color: new echarts.graphic.LinearGradient( - 1, - 0, - 0, - 0, - [ - { - offset: 0, - color: '#6EDDFE' // 0% 处的颜色 - }, - { - offset: 1, - color: '#0B1F57' // 100% 处的颜色 - } - ], - false - ) - }, - data: tq, //data.values - }, - { - name: '', - type: 'bar', - - barWidth: 66, - barGap: '-60%', - data: barArray, - itemStyle: { - normal: { - color: 'rgba(89,130,194,0.12)' - } - }, - zlevel: -1, - yAxisIndex: 1, - } - ], - }; - this.myChart.setOption(option); - window.addEventListener("resize", () => this.myChart.resize()); - }, - } -} -</script> - -<style scoped lang="scss"> -.event-statistics { - padding: 16px 16px; -} -</style> \ No newline at end of file diff --git a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/Family.vue b/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/Family.vue deleted file mode 100644 index 52af91e1a..000000000 --- a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/Family.vue +++ /dev/null @@ -1,76 +0,0 @@ -<template> - <div class="family"> - <div class="tag"> - <div>张三(户主)</div> - <div>入户状态:入户一致</div> - <div>居民分类:老年人</div> - </div> - <div class="tag"> - <div>张三(户主)</div> - <div>入户状态:入户一致</div> - <div>居民分类:老年人</div> - </div> - <div class="tag"> - <div>张三(户主)</div> - <div>入户状态:入户一致</div> - </div> - <div class="tag"> - <div>张三(户主)</div> - <div>入户状态:入户一致</div> - </div> - </div> -</template> - -<script> -export default { - name: "Family" -} -</script> - -<style scoped lang="scss"> -.family { - width: 464px; - height: 340px; - background: url('@/assets/images/manyidu/gx_bg.png') no-repeat center; - position: relative; - margin: 40px auto; -} -.tag { - font-size: 14px; - font-weight: 400; - color: #FFFFFF; - line-height: 22px; - padding: 18px 24px; - box-sizing: border-box; - position: absolute; - &:nth-of-type(1), - &:nth-of-type(2) { - background: url("@/assets/images/manyidu/gx_big.png") no-repeat center; - width: 180px; - height: 100px; - } - &:nth-of-type(3), - &:nth-of-type(4) { - background: url("@/assets/images/manyidu/gx_small.png") no-repeat center; - width: 180px; - height: 70px; - padding: 15px 24px; - } - &:nth-of-type(1) { - left: -98px; - top: 34px; - } - &:nth-of-type(2) { - right: -68px; - top: 34px; - } - &:nth-of-type(3) { - left: -91px; - bottom: 41px; - } - &:nth-of-type(4) { - right: -44px; - bottom: 41px; - } -} -</style> \ No newline at end of file diff --git a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/MatterDetails.vue b/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/MatterDetails.vue deleted file mode 100644 index b965bc1e4..000000000 --- a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/MatterDetails.vue +++ /dev/null @@ -1,93 +0,0 @@ -<template> - <div class="matter-details"> - <div class="user-img"> - <img src="@/assets/images/manyidu/dn_bg1.png" alt=""> - </div> - <div class="tags"> - <div class="tag red">满意度风险人员</div> - <div class="tag small">与子女同住</div> - <div class="tag">第三网格</div> - <div class="tag small">入户一致</div> - <div class="tag">13343999999</div> - <div class="tag">四季景园1号楼1单元101</div> - </div> - </div> -</template> - -<script> -export default { - name: "MatterDetails" -} -</script> - -<style scoped lang="scss"> -.matter-details { - width: 607px; - height: 372px; - background: url("@/assets/images/manyidu/dn_bg2.png") no-repeat center bottom; - position: relative; - margin: 12px auto 60px; -} -.user-img { - position: absolute; - left: calc(50% - 87px); - top: calc(50% - 37px); -} -.tag { - position: absolute; - background: url("@/assets/images/manyidu/dn_big.png") center no-repeat; - width: 108px; - height: 107px; - display: flex; - align-items: center; - justify-content: center; - font-size: 14px; - font-weight: 400; - color: #FFFFFF; - line-height: 16px; - box-sizing: border-box; - padding: 24px; - text-align: center; - word-break: break-all; - &.small { - width: 89px; - height: 89px; - background: url("@/assets/images/manyidu/dn_small.png") center no-repeat; - padding: 16px; - } - &.red { - background: url("@/assets/images/manyidu/dn_red.png") center no-repeat; - color: #FE0000; - } - &:nth-of-type(1) { - left: 0; - bottom: 15px; - } - - &:nth-of-type(2) { - left: 42px; - bottom: 185px; - } - - &:nth-of-type(3) { - left: 194px; - bottom: 245px; - } - - &:nth-of-type(4) { - left: 384px; - bottom: 240px; - } - - &:nth-of-type(5) { - left: 499px; - bottom: 157px; - } - - &:nth-of-type(6) { - left: 453px; - bottom: 10px; - } -} - -</style> \ No newline at end of file diff --git a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/PointsRecord.vue b/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/PointsRecord.vue deleted file mode 100644 index 75f41e47a..000000000 --- a/src/views/dataBoard/satisfactionEval/dissatisfiedPersonnel/modules/PointsRecord.vue +++ /dev/null @@ -1,51 +0,0 @@ -<template> - <div> - <div class="enjoy-service"> - <div class="enjoy-service-item" v-for="(item,index) in 5"> - <div class="num">+10</div> - <div class="info"> - <div class="title">便民服务-配餐服务</div> - <div class="time">2023-07-15 15:30:30</div> - </div> - </div> - </div> - </div> -</template> - -<script> -export default { - name: "PointsRecord" -} -</script> - -<style scoped lang="scss"> - -.enjoy-service { - padding-left: 26px; -} -.enjoy-service-item { - color: #FFFFFF; - display: flex; - padding: 14px 16px 14px; - margin-bottom: 8px; - background: #07266B; - .num { - font-size: 24px; - font-weight: 500; - line-height: 22px; - } - .info { - font-size: 14px; - margin-left: 40px; - .title { - font-weight: 500; - margin-bottom: 10px; - } - .time { - font-weight: 400; - color: #A3B9DA; - } - } -} - -</style> \ No newline at end of file diff --git a/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue b/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue index 09cfd045b..07f184d0e 100644 --- a/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue +++ b/src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue @@ -3,14 +3,14 @@ <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"> - <el-option - v-for="item in typeConditionList" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select>--> + <!-- <el-select v-model="typeCondition" @change="getData" placeholder="请选择" class="select" popper-class="selectPopClass"> + <el-option + v-for="item in typeConditionList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select>--> </div> <div class="portrait"> @@ -33,12 +33,12 @@ <div class="text">{{ marriageName }}</div> </div> <div class="tag purple" v-if="gender"> - <div class="text">{{ gender==='1'?'男':gender==='2'?'女':gender==='0'?'未知':'' }}</div> + <div class="text">{{ gender === '1' ? '男' : gender === '2' ? '女' : gender === '0' ? '未知' : '' }}</div> </div> </div> <div class="btn" @click="gotopage"> - <div>按画像匹配到同类:<span> <b>{{matchPeopleNum?matchPeopleNum:0}}</b>人</span></div> + <div>按画像匹配到同类:<span> <b>{{ matchPeopleNum ? matchPeopleNum : 0 }}</b>人</span></div> <i class="el-icon-arrow-right"></i> </div> </div> @@ -94,7 +94,7 @@ export default { this.getData() }, gotopage() { - this.$router.push('/dataBoard/satisfactionEval/dissatisfiedPersonnel?searchParams='+this.searchParams+'&title='+this.typeConditionList.filter(item=>item.value === this.typeCondition)[0].label) + this.$router.push('/dataBoard/satisfactionEval/dissatisfiedPersonnel?searchParams=' + this.searchParams) }, getDisKey() { this.$http.post('/sys/dict/data/dictlist', {'dictType': 'satisfaction_category'}).then(({data: {data}}) => { @@ -119,7 +119,7 @@ export default { this.residentTagName = data.residentTagName; this.matchPeopleNum = data.matchPeopleNum; - this.searchParams = JSON.stringify({...data,...params}) + this.searchParams = JSON.stringify({...data, ...params}) }) } } From 57ed9193eb3cf7c0636b158cae905851fba3e6df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=8B=A5=E6=99=A8?= <974220104@qq.com> Date: Fri, 22 Sep 2023 17:54:47 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E8=BF=94=E5=9B=9E=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/images/shuju/overview/go-back.png | Bin 0 -> 6273 bytes src/assets/scss/dataBoard/overview/index.scss | 5 +- src/router/index.js | 10 + .../cpts/personnel/modules/Family.vue | 51 +- src/views/dataBoard/overview/index.vue | 294 +++-- src/views/dataBoard/renfang/resi/class.vue | 1068 +++++------------ src/views/dataBoard/renfang/resi/classNew.vue | 747 ++++++++++++ .../dataBoard/renfang/resident/index.vue | 2 +- .../visualizing/components/dangyuan.vue | 4 +- .../visualizing/components/dibaorenyuan.vue | 8 +- .../visualizing/components/laonianren.vue | 4 +- .../visualizing/components/shiyerenyuan.vue | 10 +- .../visualizing/components/zhiyuanzhe.vue | 4 +- 13 files changed, 1309 insertions(+), 898 deletions(-) create mode 100644 src/assets/images/shuju/overview/go-back.png create mode 100644 src/views/dataBoard/renfang/resi/classNew.vue diff --git a/src/assets/images/shuju/overview/go-back.png b/src/assets/images/shuju/overview/go-back.png new file mode 100644 index 0000000000000000000000000000000000000000..0815318c1d43c6191771c95f90ddc5765b1aa96c GIT binary patch literal 6273 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 literal 0 HcmV?d00001 diff --git a/src/assets/scss/dataBoard/overview/index.scss b/src/assets/scss/dataBoard/overview/index.scss index 69d4eda69..a82c0ec4e 100644 --- a/src/assets/scss/dataBoard/overview/index.scss +++ b/src/assets/scss/dataBoard/overview/index.scss @@ -583,11 +583,12 @@ height: 40px; line-height: 40px; width: 110px; - height: 14px; + overflow: hidden; font-size: 14px; - font-family: PingFang SC; font-weight: 400; color: #FFFFFF; + text-overflow: ellipsis; + white-space: nowrap; } .tdbg1 { diff --git a/src/router/index.js b/src/router/index.js index b6c827ce0..e17779b66 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -208,6 +208,16 @@ export const dataBoardRoutes = { isTab: false, }, }, + { + path: "renfang/resi-class-new", + props: true, + component: () => import("@/views/dataBoard/renfang/resi/classNew"), + name: "dataBoard-renfang-resi-class", + meta: { + title: "居民分类列表", + isTab: false, + }, + }, { path: "renfang/resi-analyze", props: true, diff --git a/src/views/dataBoard/cpts/personnel/modules/Family.vue b/src/views/dataBoard/cpts/personnel/modules/Family.vue index 6fda2fc8c..0d54a50f4 100644 --- a/src/views/dataBoard/cpts/personnel/modules/Family.vue +++ b/src/views/dataBoard/cpts/personnel/modules/Family.vue @@ -97,36 +97,41 @@ export default { padding: 18px 24px; box-sizing: border-box; position: absolute; - &:nth-of-type(1), - &:nth-of-type(2) { - background: url("@/assets/images/manyidu/gx_big.png") no-repeat center; - background-size: 100% 100%; - width: 180px; - min-height: 100px; - } - &:nth-of-type(3), - &:nth-of-type(4) { - background: url("@/assets/images/manyidu/gx_small.png") no-repeat center; - background-size: 100% 100%; - width: 180px; - min-height: 100px; - padding: 15px 24px; - } + background: url("@/assets/images/manyidu/gx_big.png") no-repeat center; + background-size: 100% 100%; + width: 180px; + min-height: 80px; &:nth-of-type(1) { - left: -98px; - top: 34px; + left: -24px; + top: -24px; } &:nth-of-type(2) { - right: -68px; - top: 34px; + right: -24px; + top: -24px; } &:nth-of-type(3) { - left: -91px; - bottom: 41px; + left: -24px; + bottom: -20px; } &:nth-of-type(4) { - right: -44px; - bottom: 41px; + right: -24px; + top: 274px; + } + &:nth-of-type(5) { + left: -94px; + top: 74px; + } + &:nth-of-type(6) { + right: -94px; + top: 74px; + } + &:nth-of-type(7) { + left: -124px; + top: 174px; + } + &:nth-of-type(8) { + right: -124px; + top: 174px; } } .user-name { diff --git a/src/views/dataBoard/overview/index.vue b/src/views/dataBoard/overview/index.vue index a6b6eaa88..753be740c 100644 --- a/src/views/dataBoard/overview/index.vue +++ b/src/views/dataBoard/overview/index.vue @@ -1,147 +1,172 @@ <template> <div> - <cpt-bread - @tap="clickBreadItem" - v-if="breadList.length > 1" - :bread-list="breadList" - /> + <!-- <cpt-bread + @tap="clickBreadItem" + v-if="breadList.length > 1" + :bread-list="breadList" + /> --> <div class="g-row"> <div class="g-left"> <div class="m-box"> - <title-box :text="`${ - currentLevel === 'district'?'区': - currentLevel === 'street'?'街道': - currentLevel === 'community'?'社区': - currentLevel === 'grid'?'网格':'' - }介绍`"/> - <jdjs/> + <title-box + :text="`${ + currentLevel === 'district' + ? '区' + : currentLevel === 'street' + ? '街道' + : currentLevel === 'community' + ? '社区' + : currentLevel === 'grid' + ? '网格' + : '' + }介绍`" + /> + <jdjs /> </div> <div class="m-box"> - <title-box :text="`${ - currentLevel === 'district'?'区': - currentLevel === 'street'?'街道': - currentLevel === 'community'?'社区': - currentLevel === 'grid'?'网格':'' - }图谱画像`"/> - <jdtphx :id="orgId"/> + <title-box + :text="`${ + currentLevel === 'district' + ? '区' + : currentLevel === 'street' + ? '街道' + : currentLevel === 'community' + ? '社区' + : currentLevel === 'grid' + ? '网格' + : '' + }图谱画像`" + /> + <jdtphx :id="orgId" /> </div> </div> <div class="g-center"> <div class="m-map" style="overflow: hidden"> - <map-top/> + <map-top /> + <div v-if="breadList.length > 1" class="go-back" @click="goBackMap"> + <img src="~@/assets/images/shuju/overview/go-back.png" /> + </div> <grid-map - ref="map" - @clickAgency="clickAgencyItem" - :srcGridData="orgData" - @clickDotBtn="handleClickDotBtn" + ref="map" + @clickAgency="clickAgencyItem" + :srcGridData="orgData" + @clickDotBtn="handleClickDotBtn" /> </div> <div class="m-box m-rybox"> - <title-box text="XX街道网格员"/> - <jdwgy/> + <title-box text="XX街道网格员" /> + <jdwgy /> </div> </div> <div class="g-right"> <div class="m-box"> - <title-box text="人房数据统计"/> - <rfsjtj/> + <title-box text="人房数据统计" /> + <rfsjtj /> </div> <!-- 街道概览 --> - <div v-if="currentLevel === 'street' || currentLevel === 'district'" class="m-box"> + <div + v-if="currentLevel === 'street' || currentLevel === 'district'" + class="m-box" + > <title-box text="各社区人房数据更新排行"> <span class="date-span"> <el-date-picker - v-model="rfphDate" - format="yyyy-MM" - value-format="yyyy-MM" - @change="changeDate" - type="month" - :clearable="false" - placeholder="选择月" + v-model="rfphDate" + format="yyyy-MM" + value-format="yyyy-MM" + @change="changeDate" + type="month" + :clearable="false" + placeholder="选择月" > </el-date-picker> </span> </title-box> - <sqrfph :date="rfphDate"/> + <sqrfph :date="rfphDate" /> </div> - <div v-if="currentLevel === 'street' || currentLevel === 'district'" class="m-box"> + <div + v-if="currentLevel === 'street' || currentLevel === 'district'" + class="m-box" + > <title-box text="各社区12345投诉事件统计"> <span class="date-span"> <el-date-picker - v-model="sq12345Date" - format="yyyy-MM" - value-format="yyyy-MM" - type="month" - :clearable="false" - placeholder="选择月" + v-model="sq12345Date" + format="yyyy-MM" + value-format="yyyy-MM" + type="month" + :clearable="false" + placeholder="选择月" /> </span> </title-box> - <sq12345 :date="sq12345Date"/> + <sq12345 :date="sq12345Date" /> </div> <!-- 社区&网格--> - <div v-if="currentLevel === 'community' || currentLevel === 'grid'" class="m-box"> - <title-box text="人房数据动态更新"/> - <DynamicHumanRoomData/> + <div + v-if="currentLevel === 'community' || currentLevel === 'grid'" + class="m-box" + > + <title-box text="人房数据动态更新" /> + <DynamicHumanRoomData /> </div> <!-- 社区概览--> <div v-if="currentLevel === 'community'" class="m-box"> <title-box text="社区满意度自查结果"> <span class="date-span"> <el-date-picker - v-model="sqzcDate" - format="yyyy-MM" - value-format="yyyy-MM" - type="month" - :clearable="false" - placeholder="选择月" + v-model="sqzcDate" + format="yyyy-MM" + value-format="yyyy-MM" + type="month" + :clearable="false" + placeholder="选择月" /> </span> </title-box> - <CommunityResult :date="sqzcDate"/> + <CommunityResult :date="sqzcDate" /> </div> <div v-if="currentLevel === 'community'" class="m-box"> <title-box text="事件&回访"> <span class="date-span"> <el-date-picker - v-model="sjhfDate" - format="yyyy-MM" - value-format="yyyy-MM" - @change="changeDate" - type="month" - :clearable="false" - placeholder="选择月" + v-model="sjhfDate" + format="yyyy-MM" + value-format="yyyy-MM" + @change="changeDate" + type="month" + :clearable="false" + placeholder="选择月" /> </span> </title-box> - <EventAndFollowUp :date="sjhfDate"/> + <EventAndFollowUp :date="sjhfDate" /> </div> <!-- 网格 --> <div v-if="currentLevel === 'grid'" class="m-box"> <title-box text="社区网格数据更新情况排行"> <span class="date-span"> <el-date-picker - v-model="sqwggxDate" - format="yyyy-MM" - value-format="yyyy-MM" - @change="changeDate" - type="month" - :clearable="false" - placeholder="选择月" + v-model="sqwggxDate" + format="yyyy-MM" + value-format="yyyy-MM" + @change="changeDate" + type="month" + :clearable="false" + placeholder="选择月" /> </span> </title-box> - <RankingGridData :date="sqwggxDate"/> + <RankingGridData :date="sqwggxDate" /> </div> - </div> </div> - <cpt-loading v-show="false"/> + <cpt-loading v-show="false" /> </div> </template> @@ -163,10 +188,8 @@ import CommunityResult from "@/views/dataBoard/overview/components/CommunityResu import EventAndFollowUp from "@/views/dataBoard/overview/components/EventAndFollowUp.vue"; import RankingGridData from "@/views/dataBoard/overview/components/RankingGridData.vue"; - -import {requestPostBi} from "@/js/dai/request-bipass"; -import {requestPost} from "@/js/dai/request"; -import getQueryPara from "dai-js/modules/getQueryPara"; +import { requestPostBi } from "@/js/dai/request-bipass"; +import { requestPost } from "@/js/dai/request"; export default { name: "renfang", @@ -186,17 +209,17 @@ export default { DynamicHumanRoomData, CommunityResult, EventAndFollowUp, - RankingGridData + RankingGridData, }, data() { return { loading: false, - rfphDate: this.$moment().format('YYYY-MM'), - sq12345Date: this.$moment().format('YYYY-MM'), - sqzcDate: this.$moment().format('YYYY-MM'), - sjhfDate: this.$moment().format('YYYY-MM'), - sqwggxDate: this.$moment().format('YYYY-MM'), + rfphDate: this.$moment().format("YYYY-MM"), + sq12345Date: this.$moment().format("YYYY-MM"), + sqzcDate: this.$moment().format("YYYY-MM"), + sjhfDate: this.$moment().format("YYYY-MM"), + sqwggxDate: this.$moment().format("YYYY-MM"), orgData: { children: [], }, //当前组织对象 @@ -207,7 +230,9 @@ export default { { orgId: "", orgLevel: "", - meta: {title: "人房总览"}, + id: "", + level: "", + meta: { title: "人房总览" }, }, ], @@ -220,17 +245,17 @@ export default { // const queryOrgId = getQueryPara("orgId"); // const queryOrgLevel = getQueryPara("orgLevel"); // this.init(queryOrgId, queryOrgLevel); - if(this.$store.state.chooseArea.chooseName.orgId) { - this.getMapData() + if (this.$store.state.chooseArea.chooseName.orgId) { + this.getMapData(); } }, watch: { - "$store.state.chooseArea.chooseName"(val){ - if(val.orgId) { - this.getMapData() + "$store.state.chooseArea.chooseName"(val) { + if (val.orgId) { + this.getMapData(); } - } + }, }, methods: { @@ -261,7 +286,8 @@ export default { } }, - clickBreadItem({item}) { + clickBreadItem({ item }) { + console.log("item::", item); this.toBread(item); }, @@ -269,22 +295,30 @@ export default { this.toBread({ orgId: item.id, orgLevel: item.level, - meta: {title: item.name}, + meta: { title: item.name }, }); }, - + goBackMap() { + console.log( + "this.breadList[this.breadList.length - 2]::", + this.breadList[this.breadList.length - 2] + ); + this.clickAgencyItem(this.breadList[this.breadList.length - 2]); + }, toBread(item) { - const {orgId} = item; - const {breadList} = this; + console.log(item); + const { orgId } = item; + const { breadList } = this; let index = breadList.findIndex((val) => val.orgId === orgId); // return console.log(item, breadList, index); if (index >= 0) { this.breadList = breadList.slice(0, index + 1); } else { - breadList.push(item); + breadList.push({ ...item, id: item.orgId, level: item.orgLevel }); this.breadList = breadList; } - this.getMapData(item.orgId,item.orgLevel) + console.log("this.breadList::", this.breadList); + this.getMapData(item.orgId, item.orgLevel); }, // 点击搜索结果条目,在地图上显示点和详情弹窗 @@ -299,34 +333,39 @@ export default { }, //获取地图上显示的组织数据 - async getMapData(orgId=this.$store.state.chooseArea.chooseName.orgId,level=this.$store.state.chooseArea.chooseName.level) { + async getMapData( + orgId = this.$store.state.chooseArea.chooseName.orgId, + level = this.$store.state.chooseArea.chooseName.level + ) { const url = "org_map"; - this.$http.post(`/gov/org/agency/maporg`, {orgId, level}).then(({data: {data}}) => { - this.orgData = data; - this.orgId = this.orgData.org_id; - this.orgLevel = this.orgData.level; - this.currentLevel = this.orgData.agencyLevel; - }) + this.$http + .post(`/gov/org/agency/maporg`, { orgId, level }) + .then(({ data: { data } }) => { + this.orgData = data; + this.orgId = this.orgData.org_id; + this.orgLevel = this.orgData.level; + this.currentLevel = this.orgData.agencyLevel; + }); }, //获取地图上显示的组织数据 async getSubMapData() { const url = "sub_org_map"; - const {data, code, msg} = await requestPostBi( - url, - { - queryParam: { - org_id: this.orgId, - }, + const { data, code, msg } = await requestPostBi( + url, + { + queryParam: { + org_id: this.orgId, }, - { - // mockId: 61831860, - } + }, + { + // mockId: 61831860, + } ); if (code === 0) { - const {orgData} = this; + const { orgData } = this; orgData.children = data.map((item) => { return { ...item, @@ -337,7 +376,7 @@ export default { coordinates: item.coordinates || "", }; }); - this.orgData = {...orgData}; + this.orgData = { ...orgData }; } else { this.$message.error(msg); } @@ -351,7 +390,7 @@ export default { level: this.orgLevel, }; - const {data, code, msg} = await requestPost(url, params); + const { data, code, msg } = await requestPost(url, params); if (code === 0) { this.orgData = data; this.orgId = this.orgId; @@ -366,9 +405,24 @@ export default { }, }; </script> - +<style lang="scss" scoped> +.go-back { + position: absolute; + z-index: 100; + top: 100px; + left: 16px; + right: 0; + img { + height: 36px; + width: 36px; + } + img:hover { + cursor: pointer; + } +} +</style> <style - lang="scss" - src="@/assets/scss/dataBoard/overview/index.scss" - scoped + lang="scss" + src="@/assets/scss/dataBoard/overview/index.scss" + scoped ></style> diff --git a/src/views/dataBoard/renfang/resi/class.vue b/src/views/dataBoard/renfang/resi/class.vue index 2a8f4d827..015fa306e 100644 --- a/src/views/dataBoard/renfang/resi/class.vue +++ b/src/views/dataBoard/renfang/resi/class.vue @@ -1,746 +1,340 @@ <template> - <div class="g-pgi"> - <!-- 组织路由 --> - <cpt-bread - :separator="'/'" - @tap="handleClickBreadItem" - :breadList="breadList" - ></cpt-bread> - - <div class="m-title"> - <img class="title_img" src="@/assets/images/index/list-logo.png" alt /> - <div class="tip_title">{{ tableTitle }}</div> - <div class="title_line"></div> - - <div class="second-select" v-if="type == 'old'"> - <el-select - v-model="oldVal" - :popper-append-to-body="false" - placeholder="请选择年龄" - > - <el-option - v-for="item in oldList" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> -   - <el-select - v-model="searchParams.resideSituation" - :popper-append-to-body="false" - @change="changeSearch" - placeholder="请选择居住情况" - > - <el-option - v-for="item in resideArr" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> - </div> - <div class="second-select" v-if="type == 'dibao'"> - <el-select - v-model="searchParams.lowIncomeType" - :popper-append-to-body="false" - @change="changeSearch" - placeholder="请选择低保类型" - > - <el-option - v-for="item in lowIncomeTypeArr" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> -   - <el-select - v-model="searchParams.lowIncomeReason" - :popper-append-to-body="false" - @change="changeSearch" - placeholder="请选择低保原因" - > - <el-option - v-for="item in lowIncomeReasonArr" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> - </div> - <div class="second-select" v-if="type == 'zhiyuanzhe'"> - <el-select - v-model="oldVal" - :popper-append-to-body="false" - placeholder="请选择年龄" - > - <el-option - v-for="item in oldAllList" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> -   - <el-select - v-model="searchParams.gategoryCode" - :popper-append-to-body="false" - @change="changeSearch" - placeholder="请选择志愿者类型" - > - <el-option - v-for="item in volunteerArr" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> - </div> - <div class="second-select" v-if="type == 'dangyuan'"> - <el-select - v-model="oldVal" - :popper-append-to-body="false" - placeholder="请选择年龄" - > - <el-option - v-for="item in oldAllList" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> -   - <el-select - v-model="searchParams.cultureLevel" - :popper-append-to-body="false" - @change="changeSearch" - placeholder="请选择学历" - > - <el-option - v-for="item in PostDictonArr" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> - </div> - <div class="second-select" v-if="type == 'shiye'"> - <el-select - v-model="oldVal" - :popper-append-to-body="false" - @change="changeSearch" - placeholder="请选择年龄" - > - <el-option - v-for="item in oldAllList" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> -   - <el-select - v-model="searchParams.employmentWish" - :popper-append-to-body="false" - @change="changeSearch" - placeholder="请选择就业愿望" - > - <el-option - v-for="item in careerArr" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> -   - <el-select - v-model="searchParams.unemploymentReason" - :popper-append-to-body="false" - @change="changeSearch" - placeholder="请选择失业原因" - > - <el-option - v-for="item in unemploymentArr" - :key="item.value" - :label="item.label" - :value="item.value" - ></el-option> - </el-select> - </div> - <div - class="second-select" - v-if=" - type == 'fuwu' || - type == 'wennuan' || - type == 'jineng' || - type == 'gangwei' - " - > - <el-input - type="text" - v-model="searchParams.serviceOrgName" - placeholder="请输入服务方名称" - @blur="changeFwfmc" - /> - </div> - </div> - - <div class="g-listbox"> - <cpt-tb - :col-list="colList" - :loading="loading" - :header="header" - :list="list" - :total="total" - @handleSizeChange="handleSizeChange" - @handlePageNoChange="handlePageNoChange" - @operate="jumpPage" - ></cpt-tb> - </div> - </div> + <div class="g-pgi"> + <!-- 组织路由 --> + <cpt-bread :separator="'/'" @tap="handleClickBreadItem" :breadList="breadList"></cpt-bread> + + <div class="m-title"> + <img class="title_img" src="@/assets/images/index/list-logo.png" alt /> + <div class="tip_title">{{ tableTitle }}</div> + <div class="title_line"></div> + + <div class="second-select" v-if="type_id == 'special_popu'"> + <el-select v-model="subclassId" :popper-append-to-body="false" placeholder="请选择"> + <el-option v-for="item in subclassList" :key="item.value" :label="item.label" :value="item.value" @click.native="handleChangeDate(item.value)"></el-option> + </el-select> + </div> + </div> + + <div class="g-listbox"> + <cpt-tb + :col-list="colList" + :loading="loading" + :header="header" + :list="list" + :total="total" + @handleSizeChange="handleSizeChange" + @handlePageNoChange="handlePageNoChange" + @operate="showInfo" + ></cpt-tb> + </div> + + <resi-details @close="displayedResiId = ''" :resi-id="displayedResiId" v-if="displayedResiId" /> + </div> </template> <script> -import cptTb from "@/views/dataBoard/cpts/tb"; -import cptBread from "@/views/dataBoard/renfang/cpts/bread"; -import getQueryPara from "dai-js/modules/getQueryPara"; +import cptTb from '@/views/dataBoard/cpts/tb'; +import cptBread from '@/views/dataBoard/renfang/cpts/bread'; +import resiDetails from '@/views/dataBoard/cpts/resi-details'; +import { requestPostBi } from '@/js/dai/request-bipass'; +import getQueryPara from 'dai-js/modules/getQueryPara'; export default { - name: "resi-list", - - components: { - cptTb, - cptBread, - }, - - data() { - return { - breadList: [ - { - path: "/dataBoard/renfang/index", - meta: { - title: "人房总览", - }, - }, - { - path: "/dataBoard/renfang/visualizing", - meta: { - title: "", - }, - }, - { - meta: { - title: "居民列表", - }, - }, - ], - tableTitle: "居民列表", - pageType: "", - orgLevel: "", - org_id: "", - type_id: "", // 居民列表 - type_name: "", - loading: true, - pageSize: parseInt(localStorage.getItem("dataBoard_PageSize")) || 20, - pageNo: 1, - total: 0, - srcTableData: [], - list: [], - listData: [], - oldList: [ - { - label: "60-69岁", - value: ["60", "69"], - }, - { - label: "70-79岁", - value: ["70", "79"], - }, - { - label: "80-89岁", - value: ["80", "89"], - }, - { - label: "90岁以上", - value: ["90", "139"], - }, - ], - oldAllList: [ - { - label: "0-9岁", - value: ["0", "9"], - }, - { - label: "10-19岁", - value: ["10", "19"], - }, - { - label: "20-29岁", - value: ["20", "29"], - }, - { - label: "30-39岁", - value: ["30", "39"], - }, - { - label: "40-49岁", - value: ["40", "49"], - }, - { - label: "50-59岁", - value: ["50", "59"], - }, - { - label: "60-69岁", - value: ["60", "69"], - }, - { - label: "70-79岁", - value: ["70", "79"], - }, - { - label: "80-89岁", - value: ["80", "89"], - }, - { - label: "90岁以上", - value: ["90", "139"], - }, - ], - jzList: [ - { - label: "不知奥", - value: "90,120", - }, - ], - colList: [ - { - align: "left", - width: "5%", - }, - { - align: "left", - width: "10%", - }, - { - align: "left", - width: "20%", - }, - { - align: "left", - width: "20%", - }, - { - align: "left", - width: "15%", - }, - { - align: "left", - width: "10%", - }, - { - align: "left", - width: "5%", - }, - { - align: "left", - width: "10%", - }, - { - align: "left", - width: "10%", - }, - ], - header: [ - "序号", - "姓名", - "所属网格", - "所属房屋", - "联系电话", - "证件号", - "性别", - "出生日期", - "操作", - ], - type: null, - typeList: [ - { - type: "old", - name: "老年人", - url: "/actual/base/peopleRoomOverview/oldPeoplePageList", - }, - { - type: "dibao", - name: "低保人员", - url: "/actual/base/peopleRoomOverview/lowIncomePageList", - }, - { - type: "zhiyuanzhe", - name: "志愿者", - url: "/actual/base/peopleRoomOverview/volunteerPageList", - }, - { - type: "dangyuan", - name: "党员", - url: "/actual/base/peopleRoomOverview/partyPageList", - }, - { - type: "shiye", - name: "失业人员", - url: "/actual/base/peopleRoomOverview/unemployedPageList", - }, - { - type: "fuwu", - name: "服务找人分页查询", - url: "/actual/base/peopleRoomOverview/servicePageList", - }, - { - type: "wennuan", - name: "温暖找人查询", - url: "/actual/base/peopleRoomOverview/warmthPageList", - }, - { - type: "jineng", - name: "技能找人查询", - url: "/actual/base/peopleRoomOverview/skillPageList", - }, - { - type: "gangwei", - name: "岗位找人分页查询", - url: "/actual/base/peopleRoomOverview/postPageList", - }, - ], - oldVal: ["60", "69"], - jzVal: "", - searchParams: {}, - unemploymentArr: [], - PostDictonArr: [], - resideArr: [], - careerArr: [], - lowIncomeReasonArr: [], - lowIncomeTypeArr: [], - }; - }, - - activated() { - const query = this.$route.query; - this.org_id = query.org_id; - this.type = query.type; - this.type_id = query.type_id; - this.pageType = query.pageType; - this.type_name = query.type_name; - const type_name = query.type_name; - let title = type_name; - if (this.type == "jineng" || this.type == "gangwei") { - title = "失业人员"; - } - if (this.type == "wennuan" || this.type == "fuwu") { - title = "低保人员"; - } - this.type_name1 = title; - this.breadList[1].meta.title = title; - this.tableTitle = type_name + "居民列表"; - this.pageNo = 1; - const type = this.type; - if (type == "dibao") { - this.searchParams = { - lowIncomeType: null, // 低保类型 - lowIncomeReason: null, // 低保原因 - }; - } - if (type == "shiye") { - this.searchParams = { - employmentWish: null, // 就业愿望 - unemploymentReason: null, // 失业原因 - startAge: null, - endAge: null, - }; - } - if (type == "dangyuan") { - this.searchParams = { - cultureLevel: null, // 学历 - startAge: null, - endAge: null, - }; - } - if (type == "zhiyuan") { - this.searchParams = { - gategoryCode: null, // 志愿者类型 - startAge: null, - endAge: null, - }; - } - if ( - type == "fuwu" || - type == "wennuan" || - type == "jineng" || - type == "gangwei" - ) { - this.searchParams = { - serviceOrgName: null, // 服务方名称 - }; - } - this.getList(); - if (this.pageType != "normal") { - this.colList = [ - { - align: "left", - width: "5%", - }, - { - align: "left", - width: "15%", - }, - { - align: "left", - width: "20%", - }, - { - align: "left", - width: "15%", - }, - { - align: "left", - width: "15%", - }, - { - align: "left", - width: "15%", - }, - { - align: "left", - width: "10%", - }, - { - align: "left", - width: "10%", - }, - ]; - - this.header = [ - "序号", - "服务类型", - "服务事项", - "来源", - "服务时间", - "服务方", - "服务人数", - "操作", - ]; - } - // 字典 - this.getResideNation(); - this.getPostNation(); - this.getUnemployment(); - this.getCareer(); - this.getVolunteer(); - this.getLowIncomeReason(); - this.getLowIncomeType(); - }, - created() { - this.pageNo = 1; - }, - watch: { - $route(to, from) { - this.$router.go(0); - }, - oldVal: { - handler(newVal, oldVal) { - this.pageNo = 1; - const searchParams = { - startAge: newVal[0], - endAge: newVal[1], - }; - this.getList(searchParams); - }, - }, - searchParams(newVal, oldVal) { - this.getList(); - }, - }, - - methods: { - handleClickBreadItem({ item }) { - this.$router.push({ - path: item.path, - query: { - org_id: this.org_id, - type_id: this.type_id, - type_name: item.meta.title, - pageType: this.pageType, - type: this.type, - pageType: this.pageType, - }, - }); - }, - changeFwfmc(e) { - this.searchParams = { - serviceOrgName: e.target.value || null, - }; - this.getList(); - }, - changeSearch() { - this.getList(); - }, - jumpPage(index) { - let item = this.listData[index]; - this.$router.push({ - path: "/dataBoard/renfang/resident", - query: { - org_id: this.org_id, - type_id: this.type_id, - user_id: item.id, - type: this.type, - pageType: this.pageType, - type_name: this.type_name, - }, - }); - }, - handlePageNoChange(pageNo) { - this.pageNo = pageNo; - this.getList(); - }, - handleSizeChange(pageSize) { - localStorage.setItem("dataBoard_PageSize", pageSize); - this.pageSize = pageSize; - this.getList(); - }, - async getList(item) { - const { url } = this.typeList.filter((item) => item.type == this.type)[0]; - const sourceType = ["公共服务", "共性需求", "政策找人", "服务找人"]; - this.loading = true; - let queryParam = { - pageNo: this.pageNo, - pageSize: this.pageSize, - ...this.searchParams, - ...item, - }; - this.$http.post(url, queryParam).then(({ data: res }) => { - this.loading = false; - const { data, code, msg } = res; - const { list, total } = data; - const gender = ["未知", "男", "女"]; - if (code === 0) { - this.listData = list; - if (this.pageType == "normal") { - this.list = list.map((item, index) => { - return [ - index + 1, - item.name ? item.name : "--", - item.gridName ? item.gridName : "--", - item.fullName ? item.fullName : "--", - item.mobile ? item.mobile : "--", - item.idNum ? item.idNum : "--", - item.gender ? gender[item.gender] : "--", - item.birthday ? item.birthday : "--", - { type: "operate", list: ["查看"] }, - ]; - }); - } else { - this.list = list.map((item, index) => { - return [ - index + 1, - item.serviceCategoryKey ? item.serviceCategoryKey : "--", - item.serviceName ? item.serviceName : "--", - item.awardPoint ? sourceType[item.awardPoint] : "--", - item.serviceTimeStart ? item.serviceTimeStart : "--", - item.serviceOrgName ? item.serviceOrgName : "--", - item.servedPersonQty ? item.servedPersonQty : "--", - { type: "operate", list: ["查看"] }, - ]; - }); - } - this.total = total; - } else { - this.$message.error(msg); - } - }); - }, - async getResideNation() { - try { - const { data } = await this.$http.post("sys/dict/data/dictlist", { - dictType: "reside_situation", - }); - this.resideArr = data.data; - } catch (error) { - console.log(error, "获取居住情况字典"); - } - }, - // async getPostNation() { - // try { - // let { data } = await this.$http.post("sys/dict/data/dictlist", { - // dictType: "welfare_post", - // }); - // this.PostDictonArr = data.data; - // } catch (error) { - // console.log(error, "获取学历字典"); - // } - // }, - async getUnemployment() { - try { - const { data } = await this.$http.post("sys/dict/data/dictlist", { - dictType: "unemployment_cause", - }); - this.unemploymentArr = data.data; - } catch (error) { - console.log(error, "获取失业原因字典"); - } - }, - async getCareer() { - try { - const { data } = await this.$http.post("sys/dict/data/dictlist", { - dictType: "career_goals", - }); - this.careerArr = data.data; - } catch (error) { - console.log(error, "获取就业愿望字典"); - } - }, - async getVolunteer() { - try { - const { data } = await this.$http.post("sys/dict/data/dictlist", { - dictType: "VOLUNTEER_CATEGORY", - }); - this.volunteerArr = data.data; - } catch (error) { - console.log(error, "获取志愿者类别字典"); - } - }, - async getLowIncomeReason() { - try { - const { data } = await this.$http.post("sys/dict/data/dictlist", { - dictType: "low_income_reason", - }); - this.lowIncomeReasonArr = data.data; - } catch (error) { - console.log(error, "获取低保原因字典"); - } - }, - async getLowIncomeType() { - try { - const { data } = await this.$http.post("sys/dict/data/dictlist", { - dictType: "low_income_type", - }); - this.lowIncomeTypeArr = data.data; - } catch (error) { - console.log(error, "获取低保类型字典"); - } - }, - async getPostNation() { - try { - let { data } = await this.$http.post("sys/dict/data/education", { - formCode: "resi_base_info", - }); - this.PostDictonArr = data.data; - } catch (error) { - console.log(error, "获取学历字典"); - } - }, - }, - destroyed() { - console.log("我已经离开了!"); - }, + name: 'resi-list', + + components: { + cptTb, + cptBread, + resiDetails + }, + + data() { + return { + breadList: [ + { + type: 'back', + meta: { + title: '人房总览' + } + }, + { + meta: { + title: '居民类别' + } + } + ], + + tableTitle: '居民类别', + searchName: '', + pageType: '', + orgLevel: '', + org_id: '', + type_id: '', // 居民类别 + type_name: '', + loading: true, + pageSize: parseInt(localStorage.getItem('dataBoard_PageSize')) || 20, + pageNo: 1, + total: 0, + srcTableData: [], + list: [], + + colList: [ + { + align: 'left', + width: '5%' + }, + { + align: 'left', + width: '10%' + }, + { + align: 'left', + width: '20%' + }, + { + align: 'left', + width: '20%' + }, + { + align: 'left', + width: '15%' + }, + { + align: 'left', + width: '10%' + }, + { + align: 'left', + width: '5%' + }, + { + align: 'left', + width: '10%' + }, + { + align: 'left', + width: '10%' + } + ], + + header: ['序号', '姓名', '所属网格', '所属房屋', '联系电话', '证件号', '性别', '出生日期', '操作'], + + displayedResiId: '', + + subclassList: [], + subclassId: '' + }; + }, + + activated() { + this.org_id = getQueryPara('org_id'); + this.type_id = getQueryPara('type_id'); + this.pageType = getQueryPara('pageType'); + this.type_name = getQueryPara('type_name'); + const type_name = getQueryPara('type_name'); + this.breadList[1].meta.title = type_name + '居民列表'; + this.tableTitle = type_name + '居民列表'; + this.pageNo = 1; + this.getList(); + this.getCount(); + if (this.type_id == 'special_popu') { + this.getSubclass(); + } + }, + created() { + this.pageNo = 1; + }, + watch: { + $route(to, from) { + this.$router.go(0); + }, + subclassId: { + handler(newVal, oldVal) { + this.pageNo = 1; + this.getList(); + this.getCount(); + } + } + }, + + methods: { + handleClickBreadItem({ item }) { + if (item.type == 'back') { + this.$router.back(); + } + }, + + handleSearch() {}, + + showInfo(index) { + let item = this.srcTableData[index]; + this.displayedResiId = item.user_id; + }, + + handlePageNoChange(pageNo) { + this.pageNo = pageNo; + this.getList(); + }, + + handleSizeChange(pageSize) { + localStorage.setItem('dataBoard_PageSize', pageSize); + this.pageSize = pageSize; + this.getList(); + }, + + async getSubclass() { + console.log('=================getSubclass'); + const { org_id, type_id } = this; + this.loading = true; + + const url = 'special_type_list'; + + const { data, code, msg } = await requestPostBi( + url, + { + queryParam: { + org_id, + type_id + } + }, + { + // mockId: 62648939, + } + ); + + this.loading = false; + + if (code === 0) { + this.subclassList = data.map((item, index) => { + return { + label: item.type_name, + value: item.type_id + }; + }); + } else { + this.$message.error(msg); + } + }, + + async getList() { + const { org_id, type_id, subclassId, pageNo, pageSize } = this; + this.loading = true; + let url = ''; + let queryParam = {}; + if (this.pageType == 'normal') { + url = 'resident_class_list'; + queryParam = { + org_id, + type_id: subclassId || type_id, + pageNo, + pageSize + }; + } else { + url = 'resident_class_predict_list'; + queryParam = { + org_id, + resi_class_name: this.type_name, + page_num: pageNo, + page_size: pageSize + }; + } + + const { data, code, msg } = await requestPostBi( + url, + { + queryParam + }, + { + // mockId: 60069169, + } + ); + + this.loading = false; + + if (code === 0) { + this.srcTableData = data; + // this.total = data.total; + if (this.pageType == 'normal') { + this.list = data.map((item, index) => { + return [ + index + 1, + item.user_name ? item.user_name : '--', + item.grid ? item.grid : '--', + item.house ? item.house : '--', + item.telephone ? item.telephone : '--', + item.idcard ? item.idcard : '--', + item.gender ? item.gender : '--', + item.birthday ? item.birthday : '--', + + { type: 'operate', list: ['查看'] } + ]; + }); + } else { + this.list = data.map((item, index) => { + return [ + index + 1, + item.name ? item.name : '--', + item.grid ? item.grid : '--', + item.room ? item.room : '--', + item.telephone ? item.telephone : '--', + item.idcard ? item.idcard : '--', + item.gender ? item.gender : '--', + item.birthday ? item.birthday : '--', + + { type: 'operate', list: ['查看'] } + ]; + }); + } + } else { + this.$message.error(msg); + } + }, + + async getCount() { + const { org_id, type_id, subclassId, pageNo, pageSize } = this; + + let url = ''; + let queryParam = {}; + + if (this.pageType == 'normal') { + url = 'resident_class_list_total'; + queryParam = { + org_id, + type_id: subclassId || type_id, + pageNo, + pageSize + }; + } else { + url = 'resident_class_predict_total'; + queryParam = { + org_id, + resi_class_name: this.type_name, + page_num: pageNo, + page_size: pageSize + }; + } + + const { data, code, msg } = await requestPostBi( + url, + { + queryParam + }, + { + // mockId: 63070913, + } + ); + + if (code === 0) { + this.total = parseInt(data[0].count); + } else { + this.$message.error(msg); + } + } + }, + + destroyed() { + console.log('我已经离开了!'); + } }; </script> diff --git a/src/views/dataBoard/renfang/resi/classNew.vue b/src/views/dataBoard/renfang/resi/classNew.vue new file mode 100644 index 000000000..2a8f4d827 --- /dev/null +++ b/src/views/dataBoard/renfang/resi/classNew.vue @@ -0,0 +1,747 @@ +<template> + <div class="g-pgi"> + <!-- 组织路由 --> + <cpt-bread + :separator="'/'" + @tap="handleClickBreadItem" + :breadList="breadList" + ></cpt-bread> + + <div class="m-title"> + <img class="title_img" src="@/assets/images/index/list-logo.png" alt /> + <div class="tip_title">{{ tableTitle }}</div> + <div class="title_line"></div> + + <div class="second-select" v-if="type == 'old'"> + <el-select + v-model="oldVal" + :popper-append-to-body="false" + placeholder="请选择年龄" + > + <el-option + v-for="item in oldList" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> +   + <el-select + v-model="searchParams.resideSituation" + :popper-append-to-body="false" + @change="changeSearch" + placeholder="请选择居住情况" + > + <el-option + v-for="item in resideArr" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> + </div> + <div class="second-select" v-if="type == 'dibao'"> + <el-select + v-model="searchParams.lowIncomeType" + :popper-append-to-body="false" + @change="changeSearch" + placeholder="请选择低保类型" + > + <el-option + v-for="item in lowIncomeTypeArr" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> +   + <el-select + v-model="searchParams.lowIncomeReason" + :popper-append-to-body="false" + @change="changeSearch" + placeholder="请选择低保原因" + > + <el-option + v-for="item in lowIncomeReasonArr" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> + </div> + <div class="second-select" v-if="type == 'zhiyuanzhe'"> + <el-select + v-model="oldVal" + :popper-append-to-body="false" + placeholder="请选择年龄" + > + <el-option + v-for="item in oldAllList" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> +   + <el-select + v-model="searchParams.gategoryCode" + :popper-append-to-body="false" + @change="changeSearch" + placeholder="请选择志愿者类型" + > + <el-option + v-for="item in volunteerArr" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> + </div> + <div class="second-select" v-if="type == 'dangyuan'"> + <el-select + v-model="oldVal" + :popper-append-to-body="false" + placeholder="请选择年龄" + > + <el-option + v-for="item in oldAllList" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> +   + <el-select + v-model="searchParams.cultureLevel" + :popper-append-to-body="false" + @change="changeSearch" + placeholder="请选择学历" + > + <el-option + v-for="item in PostDictonArr" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> + </div> + <div class="second-select" v-if="type == 'shiye'"> + <el-select + v-model="oldVal" + :popper-append-to-body="false" + @change="changeSearch" + placeholder="请选择年龄" + > + <el-option + v-for="item in oldAllList" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> +   + <el-select + v-model="searchParams.employmentWish" + :popper-append-to-body="false" + @change="changeSearch" + placeholder="请选择就业愿望" + > + <el-option + v-for="item in careerArr" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> +   + <el-select + v-model="searchParams.unemploymentReason" + :popper-append-to-body="false" + @change="changeSearch" + placeholder="请选择失业原因" + > + <el-option + v-for="item in unemploymentArr" + :key="item.value" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> + </div> + <div + class="second-select" + v-if=" + type == 'fuwu' || + type == 'wennuan' || + type == 'jineng' || + type == 'gangwei' + " + > + <el-input + type="text" + v-model="searchParams.serviceOrgName" + placeholder="请输入服务方名称" + @blur="changeFwfmc" + /> + </div> + </div> + + <div class="g-listbox"> + <cpt-tb + :col-list="colList" + :loading="loading" + :header="header" + :list="list" + :total="total" + @handleSizeChange="handleSizeChange" + @handlePageNoChange="handlePageNoChange" + @operate="jumpPage" + ></cpt-tb> + </div> + </div> +</template> + +<script> +import cptTb from "@/views/dataBoard/cpts/tb"; +import cptBread from "@/views/dataBoard/renfang/cpts/bread"; +import getQueryPara from "dai-js/modules/getQueryPara"; + +export default { + name: "resi-list", + + components: { + cptTb, + cptBread, + }, + + data() { + return { + breadList: [ + { + path: "/dataBoard/renfang/index", + meta: { + title: "人房总览", + }, + }, + { + path: "/dataBoard/renfang/visualizing", + meta: { + title: "", + }, + }, + { + meta: { + title: "居民列表", + }, + }, + ], + tableTitle: "居民列表", + pageType: "", + orgLevel: "", + org_id: "", + type_id: "", // 居民列表 + type_name: "", + loading: true, + pageSize: parseInt(localStorage.getItem("dataBoard_PageSize")) || 20, + pageNo: 1, + total: 0, + srcTableData: [], + list: [], + listData: [], + oldList: [ + { + label: "60-69岁", + value: ["60", "69"], + }, + { + label: "70-79岁", + value: ["70", "79"], + }, + { + label: "80-89岁", + value: ["80", "89"], + }, + { + label: "90岁以上", + value: ["90", "139"], + }, + ], + oldAllList: [ + { + label: "0-9岁", + value: ["0", "9"], + }, + { + label: "10-19岁", + value: ["10", "19"], + }, + { + label: "20-29岁", + value: ["20", "29"], + }, + { + label: "30-39岁", + value: ["30", "39"], + }, + { + label: "40-49岁", + value: ["40", "49"], + }, + { + label: "50-59岁", + value: ["50", "59"], + }, + { + label: "60-69岁", + value: ["60", "69"], + }, + { + label: "70-79岁", + value: ["70", "79"], + }, + { + label: "80-89岁", + value: ["80", "89"], + }, + { + label: "90岁以上", + value: ["90", "139"], + }, + ], + jzList: [ + { + label: "不知奥", + value: "90,120", + }, + ], + colList: [ + { + align: "left", + width: "5%", + }, + { + align: "left", + width: "10%", + }, + { + align: "left", + width: "20%", + }, + { + align: "left", + width: "20%", + }, + { + align: "left", + width: "15%", + }, + { + align: "left", + width: "10%", + }, + { + align: "left", + width: "5%", + }, + { + align: "left", + width: "10%", + }, + { + align: "left", + width: "10%", + }, + ], + header: [ + "序号", + "姓名", + "所属网格", + "所属房屋", + "联系电话", + "证件号", + "性别", + "出生日期", + "操作", + ], + type: null, + typeList: [ + { + type: "old", + name: "老年人", + url: "/actual/base/peopleRoomOverview/oldPeoplePageList", + }, + { + type: "dibao", + name: "低保人员", + url: "/actual/base/peopleRoomOverview/lowIncomePageList", + }, + { + type: "zhiyuanzhe", + name: "志愿者", + url: "/actual/base/peopleRoomOverview/volunteerPageList", + }, + { + type: "dangyuan", + name: "党员", + url: "/actual/base/peopleRoomOverview/partyPageList", + }, + { + type: "shiye", + name: "失业人员", + url: "/actual/base/peopleRoomOverview/unemployedPageList", + }, + { + type: "fuwu", + name: "服务找人分页查询", + url: "/actual/base/peopleRoomOverview/servicePageList", + }, + { + type: "wennuan", + name: "温暖找人查询", + url: "/actual/base/peopleRoomOverview/warmthPageList", + }, + { + type: "jineng", + name: "技能找人查询", + url: "/actual/base/peopleRoomOverview/skillPageList", + }, + { + type: "gangwei", + name: "岗位找人分页查询", + url: "/actual/base/peopleRoomOverview/postPageList", + }, + ], + oldVal: ["60", "69"], + jzVal: "", + searchParams: {}, + unemploymentArr: [], + PostDictonArr: [], + resideArr: [], + careerArr: [], + lowIncomeReasonArr: [], + lowIncomeTypeArr: [], + }; + }, + + activated() { + const query = this.$route.query; + this.org_id = query.org_id; + this.type = query.type; + this.type_id = query.type_id; + this.pageType = query.pageType; + this.type_name = query.type_name; + const type_name = query.type_name; + let title = type_name; + if (this.type == "jineng" || this.type == "gangwei") { + title = "失业人员"; + } + if (this.type == "wennuan" || this.type == "fuwu") { + title = "低保人员"; + } + this.type_name1 = title; + this.breadList[1].meta.title = title; + this.tableTitle = type_name + "居民列表"; + this.pageNo = 1; + const type = this.type; + if (type == "dibao") { + this.searchParams = { + lowIncomeType: null, // 低保类型 + lowIncomeReason: null, // 低保原因 + }; + } + if (type == "shiye") { + this.searchParams = { + employmentWish: null, // 就业愿望 + unemploymentReason: null, // 失业原因 + startAge: null, + endAge: null, + }; + } + if (type == "dangyuan") { + this.searchParams = { + cultureLevel: null, // 学历 + startAge: null, + endAge: null, + }; + } + if (type == "zhiyuan") { + this.searchParams = { + gategoryCode: null, // 志愿者类型 + startAge: null, + endAge: null, + }; + } + if ( + type == "fuwu" || + type == "wennuan" || + type == "jineng" || + type == "gangwei" + ) { + this.searchParams = { + serviceOrgName: null, // 服务方名称 + }; + } + this.getList(); + if (this.pageType != "normal") { + this.colList = [ + { + align: "left", + width: "5%", + }, + { + align: "left", + width: "15%", + }, + { + align: "left", + width: "20%", + }, + { + align: "left", + width: "15%", + }, + { + align: "left", + width: "15%", + }, + { + align: "left", + width: "15%", + }, + { + align: "left", + width: "10%", + }, + { + align: "left", + width: "10%", + }, + ]; + + this.header = [ + "序号", + "服务类型", + "服务事项", + "来源", + "服务时间", + "服务方", + "服务人数", + "操作", + ]; + } + // 字典 + this.getResideNation(); + this.getPostNation(); + this.getUnemployment(); + this.getCareer(); + this.getVolunteer(); + this.getLowIncomeReason(); + this.getLowIncomeType(); + }, + created() { + this.pageNo = 1; + }, + watch: { + $route(to, from) { + this.$router.go(0); + }, + oldVal: { + handler(newVal, oldVal) { + this.pageNo = 1; + const searchParams = { + startAge: newVal[0], + endAge: newVal[1], + }; + this.getList(searchParams); + }, + }, + searchParams(newVal, oldVal) { + this.getList(); + }, + }, + + methods: { + handleClickBreadItem({ item }) { + this.$router.push({ + path: item.path, + query: { + org_id: this.org_id, + type_id: this.type_id, + type_name: item.meta.title, + pageType: this.pageType, + type: this.type, + pageType: this.pageType, + }, + }); + }, + changeFwfmc(e) { + this.searchParams = { + serviceOrgName: e.target.value || null, + }; + this.getList(); + }, + changeSearch() { + this.getList(); + }, + jumpPage(index) { + let item = this.listData[index]; + this.$router.push({ + path: "/dataBoard/renfang/resident", + query: { + org_id: this.org_id, + type_id: this.type_id, + user_id: item.id, + type: this.type, + pageType: this.pageType, + type_name: this.type_name, + }, + }); + }, + handlePageNoChange(pageNo) { + this.pageNo = pageNo; + this.getList(); + }, + handleSizeChange(pageSize) { + localStorage.setItem("dataBoard_PageSize", pageSize); + this.pageSize = pageSize; + this.getList(); + }, + async getList(item) { + const { url } = this.typeList.filter((item) => item.type == this.type)[0]; + const sourceType = ["公共服务", "共性需求", "政策找人", "服务找人"]; + this.loading = true; + let queryParam = { + pageNo: this.pageNo, + pageSize: this.pageSize, + ...this.searchParams, + ...item, + }; + this.$http.post(url, queryParam).then(({ data: res }) => { + this.loading = false; + const { data, code, msg } = res; + const { list, total } = data; + const gender = ["未知", "男", "女"]; + if (code === 0) { + this.listData = list; + if (this.pageType == "normal") { + this.list = list.map((item, index) => { + return [ + index + 1, + item.name ? item.name : "--", + item.gridName ? item.gridName : "--", + item.fullName ? item.fullName : "--", + item.mobile ? item.mobile : "--", + item.idNum ? item.idNum : "--", + item.gender ? gender[item.gender] : "--", + item.birthday ? item.birthday : "--", + { type: "operate", list: ["查看"] }, + ]; + }); + } else { + this.list = list.map((item, index) => { + return [ + index + 1, + item.serviceCategoryKey ? item.serviceCategoryKey : "--", + item.serviceName ? item.serviceName : "--", + item.awardPoint ? sourceType[item.awardPoint] : "--", + item.serviceTimeStart ? item.serviceTimeStart : "--", + item.serviceOrgName ? item.serviceOrgName : "--", + item.servedPersonQty ? item.servedPersonQty : "--", + { type: "operate", list: ["查看"] }, + ]; + }); + } + this.total = total; + } else { + this.$message.error(msg); + } + }); + }, + async getResideNation() { + try { + const { data } = await this.$http.post("sys/dict/data/dictlist", { + dictType: "reside_situation", + }); + this.resideArr = data.data; + } catch (error) { + console.log(error, "获取居住情况字典"); + } + }, + // async getPostNation() { + // try { + // let { data } = await this.$http.post("sys/dict/data/dictlist", { + // dictType: "welfare_post", + // }); + // this.PostDictonArr = data.data; + // } catch (error) { + // console.log(error, "获取学历字典"); + // } + // }, + async getUnemployment() { + try { + const { data } = await this.$http.post("sys/dict/data/dictlist", { + dictType: "unemployment_cause", + }); + this.unemploymentArr = data.data; + } catch (error) { + console.log(error, "获取失业原因字典"); + } + }, + async getCareer() { + try { + const { data } = await this.$http.post("sys/dict/data/dictlist", { + dictType: "career_goals", + }); + this.careerArr = data.data; + } catch (error) { + console.log(error, "获取就业愿望字典"); + } + }, + async getVolunteer() { + try { + const { data } = await this.$http.post("sys/dict/data/dictlist", { + dictType: "VOLUNTEER_CATEGORY", + }); + this.volunteerArr = data.data; + } catch (error) { + console.log(error, "获取志愿者类别字典"); + } + }, + async getLowIncomeReason() { + try { + const { data } = await this.$http.post("sys/dict/data/dictlist", { + dictType: "low_income_reason", + }); + this.lowIncomeReasonArr = data.data; + } catch (error) { + console.log(error, "获取低保原因字典"); + } + }, + async getLowIncomeType() { + try { + const { data } = await this.$http.post("sys/dict/data/dictlist", { + dictType: "low_income_type", + }); + this.lowIncomeTypeArr = data.data; + } catch (error) { + console.log(error, "获取低保类型字典"); + } + }, + async getPostNation() { + try { + let { data } = await this.$http.post("sys/dict/data/education", { + formCode: "resi_base_info", + }); + this.PostDictonArr = data.data; + } catch (error) { + console.log(error, "获取学历字典"); + } + }, + }, + destroyed() { + console.log("我已经离开了!"); + }, +}; +</script> + +<style lang="scss" src="@/assets/scss/dataBoard/listBox.scss" scoped></style> diff --git a/src/views/dataBoard/renfang/resident/index.vue b/src/views/dataBoard/renfang/resident/index.vue index 3838d6e25..79fc61011 100644 --- a/src/views/dataBoard/renfang/resident/index.vue +++ b/src/views/dataBoard/renfang/resident/index.vue @@ -37,7 +37,7 @@ export default { }, }, { - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", meta: { title: "居民列表", }, diff --git a/src/views/dataBoard/renfang/visualizing/components/dangyuan.vue b/src/views/dataBoard/renfang/visualizing/components/dangyuan.vue index 9e24764dd..a2075db31 100644 --- a/src/views/dataBoard/renfang/visualizing/components/dangyuan.vue +++ b/src/views/dataBoard/renfang/visualizing/components/dangyuan.vue @@ -157,7 +157,7 @@ export default { this.myChart1.setOption(option); this.myChart1.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "aged", @@ -247,7 +247,7 @@ export default { }; this.myChart1.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "aged", diff --git a/src/views/dataBoard/renfang/visualizing/components/dibaorenyuan.vue b/src/views/dataBoard/renfang/visualizing/components/dibaorenyuan.vue index ffb24a249..d52862e29 100644 --- a/src/views/dataBoard/renfang/visualizing/components/dibaorenyuan.vue +++ b/src/views/dataBoard/renfang/visualizing/components/dibaorenyuan.vue @@ -203,7 +203,7 @@ export default { this.myChart1.setOption(option); this.myChart1.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "mlsp", @@ -306,7 +306,7 @@ export default { this.myChart2.setOption(option); this.myChart2.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "mlsp", @@ -411,7 +411,7 @@ export default { this.myChart3.setOption(option); this.myChart3.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "mlsp", @@ -515,7 +515,7 @@ export default { this.myChart4.setOption(option); this.myChart4.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "mlsp", diff --git a/src/views/dataBoard/renfang/visualizing/components/laonianren.vue b/src/views/dataBoard/renfang/visualizing/components/laonianren.vue index 16f0d1540..b1a824e68 100644 --- a/src/views/dataBoard/renfang/visualizing/components/laonianren.vue +++ b/src/views/dataBoard/renfang/visualizing/components/laonianren.vue @@ -167,7 +167,7 @@ export default { this.myChart1.setOption(option); this.myChart1.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "aged", @@ -259,7 +259,7 @@ export default { }; this.myChart2.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "aged", diff --git a/src/views/dataBoard/renfang/visualizing/components/shiyerenyuan.vue b/src/views/dataBoard/renfang/visualizing/components/shiyerenyuan.vue index 9365f8f0a..5839174a6 100644 --- a/src/views/dataBoard/renfang/visualizing/components/shiyerenyuan.vue +++ b/src/views/dataBoard/renfang/visualizing/components/shiyerenyuan.vue @@ -221,7 +221,7 @@ export default { this.myChart1.setOption(option); this.myChart1.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "aged", @@ -324,7 +324,7 @@ export default { this.myChart2.setOption(option); this.myChart2.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "aged", @@ -429,7 +429,7 @@ export default { this.myChart3.setOption(option); this.myChart3.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "aged", @@ -533,7 +533,7 @@ export default { this.myChart4.setOption(option); this.myChart4.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "aged", @@ -637,7 +637,7 @@ export default { this.myChart5.setOption(option); this.myChart5.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "aged", diff --git a/src/views/dataBoard/renfang/visualizing/components/zhiyuanzhe.vue b/src/views/dataBoard/renfang/visualizing/components/zhiyuanzhe.vue index 37d4751dc..8b8efd926 100644 --- a/src/views/dataBoard/renfang/visualizing/components/zhiyuanzhe.vue +++ b/src/views/dataBoard/renfang/visualizing/components/zhiyuanzhe.vue @@ -157,7 +157,7 @@ export default { this.myChart1.setOption(option); this.myChart1.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "aged", @@ -249,7 +249,7 @@ export default { }; this.myChart2.on("click", (a, b) => { this.$router.push({ - path: "/dataBoard/renfang/resi-class", + path: "/dataBoard/renfang/resi-class-new", query: { org_id: this.org_id, type_id: "aged", From 71d8eced6c5f91b335a72dcea7c7e9d53c99d2c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=8B=A5=E6=99=A8?= <974220104@qq.com> Date: Fri, 22 Sep 2023 17:55:33 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dataBoard/overview/index.vue | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/views/dataBoard/overview/index.vue b/src/views/dataBoard/overview/index.vue index 753be740c..a3ea8083d 100644 --- a/src/views/dataBoard/overview/index.vue +++ b/src/views/dataBoard/overview/index.vue @@ -287,7 +287,6 @@ export default { }, clickBreadItem({ item }) { - console.log("item::", item); this.toBread(item); }, @@ -299,14 +298,9 @@ export default { }); }, goBackMap() { - console.log( - "this.breadList[this.breadList.length - 2]::", - this.breadList[this.breadList.length - 2] - ); this.clickAgencyItem(this.breadList[this.breadList.length - 2]); }, toBread(item) { - console.log(item); const { orgId } = item; const { breadList } = this; let index = breadList.findIndex((val) => val.orgId === orgId); @@ -317,7 +311,6 @@ export default { breadList.push({ ...item, id: item.orgId, level: item.orgLevel }); this.breadList = breadList; } - console.log("this.breadList::", this.breadList); this.getMapData(item.orgId, item.orgLevel); },