wxz 2 years ago
parent
commit
f1f003cfeb
  1. 300
      src/views/dataBoard/sida/cpts/fw05zc.vue
  2. 21
      src/views/dataBoard/sida/cpts/fwBarOption04.js
  3. 3
      src/views/dataBoard/sida/cpts/fwBarOption05.js
  4. 159
      src/views/dataBoard/sida/wt/event-detail.vue
  5. 9
      src/views/dataBoard/sida/wt/hiddenDanger-detail.vue
  6. 9
      src/views/dataBoard/sida/zy/gonggongList.vue
  7. 5
      src/views/dataBoard/sida/zy/peopleRes-detail.vue
  8. 177
      src/views/dataBoard/sida/zy/placeRes-detail.vue
  9. 2
      src/views/modules/base/community/roomDetail.vue
  10. 2
      src/views/modules/base/community/roomForm.vue
  11. 70
      src/views/modules/communityService/policy/policyList.vue

300
src/views/dataBoard/sida/cpts/fw05zc.vue

@ -1,135 +1,165 @@
<template>
<div class="m-zyqd">
<el-row :gutter="16">
<el-col :span="8"> <div class="kuangkuang"> <h3>发布政策数</h3> <h2>{{info.pub_policy_total}}</h2> </div> </el-col> <el-col :span="8"> <div class="kuangkuang"> <h3>指派服务数</h3> <h2>{{info.assign_service_total}}</h2> </div> </el-col> <el-col :span="8"> <div class="kuangkuang"> <h3>政策找人数</h3> <h2>{{info.policy_search_person_total}}</h2> </div> </el-col>
</el-row>
<div class="pieMain pieMain2">
<div class="pie"><screen-echarts-frame @myChartMethod="pieInitOk" ref="pieChart"></screen-echarts-frame></div>
</div>
</div>
</template>
<script>
import screenEchartsFrame from '@/views/dataBoard/cpts/screen-echarts-frame/index';
import { pieOption } from './fwBarOption05.js';
import { requestPostBi } from '@/js/dai/request-bipass';
export default {
props: {
orgId: {
type: String,
default: ''
},
searchDate: Array
},
data() {
return {
showNoData: false,
timer: null,
pieChart: '',
pieOption: {},
pieInitState: false,
pieData: [],
info: {}
};
},
components: {
screenEchartsFrame
},
mounted() {
this.init();
},
methods: {
async init() {
await this.getInfo();
this.getPie();
},
//
async getInfo() {
let url = 'policy_search_person';
this.$refs.pieChart.showLoading();
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id: this.orgId,
start_date: this.searchDate[0],
end_date: this.searchDate[1]
}
},
{
// mockId: 69463163,
}
);
this.$refs.pieChart.hideLoading();
if (code === 0) {
if (data && Array.isArray(data) && data.length > 0) {
let info = data[0];
this.info = {
...this.info,
...info
};
}
} else {
this.$message.error(msg);
}
},
selItem(selItem, selIndex) {
this.tabList.forEach((element, index) => {
if (index === selIndex) {
element.sel = true;
} else {
element.sel = false;
}
});
},
pieInitOk() {
this.pieInitState = true;
},
getPie() {
if (this.pieInitState) {
this.setPieData();
} else {
setTimeout(() => {
this.getPie();
}, 500);
}
},
setPieData() {
let data = [...this.info.child];
let pieData0 = [];
let pieData1 = [];
let pieData2 = [];
let pieData3 = [];
data.forEach((item, index) => {
pieData0.push(item.common_service_type_name);
pieData1.push(item.assign_service_num);
pieData2.push(item.pub_policy_num);
});
this.pieData = [pieData0, pieData1, pieData2];
this.iniPieChart();
},
//
async iniPieChart() {
this.$refs.pieChart.clear();
// pieChart
this.pieOption = pieOption();
this.pieOption.xAxis[0].data = this.pieData[0];
this.pieOption.series[0].data = this.pieData[1];
this.pieOption.series[1].data = this.pieData[2];
// this.pieOption.series[2].data = this.pieData[3];
this.$refs.pieChart.setOption(this.pieOption);
}
}
};
</script>
<style lang="scss" src="@/assets/scss/dataBoard/renfang/index.scss" scoped></style>
<style scoped>
.pieMain2{margin-left:0px!important}
</style>
<template>
<div class="m-zyqd">
<el-row :gutter="16">
<el-col :span="8">
<div class="kuangkuang">
<h3>发布政策数</h3>
<h2>{{info.pub_policy_total}}</h2>
</div>
</el-col>
<el-col :span="8">
<div class="kuangkuang">
<h3>指派服务数</h3>
<h2>{{info.assign_service_total}}</h2>
</div>
</el-col>
<el-col :span="8">
<div class="kuangkuang">
<h3>政策找人数</h3>
<h2>{{info.policy_search_person_total}}</h2>
</div>
</el-col>
</el-row>
<div class="pieMain pieMain2">
<div class="pie"><screen-echarts-frame @myChartMethod="pieInitOk" ref="pieChart"></screen-echarts-frame>
</div>
</div>
</div>
</template>
<script>
import screenEchartsFrame from '@/views/dataBoard/cpts/screen-echarts-frame/index';
import {
pieOption
} from './fwBarOption05.js';
import {
requestPostBi
} from '@/js/dai/request-bipass';
export default {
props: {
orgId: {
type: String,
default: ''
},
searchDate: Array
},
data() {
return {
showNoData: false,
timer: null,
pieChart: '',
pieOption: {},
pieInitState: false,
pieData: [],
info: {}
};
},
components: {
screenEchartsFrame
},
mounted() {
this.init();
},
methods: {
async init() {
await this.getInfo();
this.getPie();
},
//
async getInfo() {
let url = 'policy_search_person';
this.$refs.pieChart.showLoading();
const {
data,
code,
msg
} = await requestPostBi(
url, {
queryParam: {
org_id: this.orgId,
start_date: this.searchDate[0],
end_date: this.searchDate[1]
}
}, {
// mockId: 69463163,
}
);
this.$refs.pieChart.hideLoading();
if (code === 0) {
if (data && Array.isArray(data) && data.length > 0) {
let info = data[0];
this.info = {
...this.info,
...info
};
}
} else {
this.$message.error(msg);
}
},
selItem(selItem, selIndex) {
this.tabList.forEach((element, index) => {
if (index === selIndex) {
element.sel = true;
} else {
element.sel = false;
}
});
},
pieInitOk() {
this.pieInitState = true;
},
getPie() {
if (this.pieInitState) {
this.setPieData();
} else {
setTimeout(() => {
this.getPie();
}, 500);
}
},
setPieData() {
let data = [...this.info.child];
let pieData0 = [];
let pieData1 = [];
let pieData2 = [];
let pieData3 = [];
let i = 0;
data.forEach((item, index) => {
if ((item.assign_service_num > 0 || item.pub_policy_num > 0) && i < 10) {
pieData0.push(item.common_service_type_name);
pieData1.push(item.assign_service_num);
pieData2.push(item.pub_policy_num);
i++;
}
});
this.pieData = [pieData0, pieData1, pieData2];
this.iniPieChart();
},
//
async iniPieChart() {
this.$refs.pieChart.clear();
// pieChart
this.pieOption = pieOption();
this.pieOption.xAxis[0].data = this.pieData[0];
this.pieOption.series[0].data = this.pieData[1];
this.pieOption.series[1].data = this.pieData[2];
// this.pieOption.series[2].data = this.pieData[3];
this.$refs.pieChart.setOption(this.pieOption);
}
}
};
</script>
<style lang="scss" src="@/assets/scss/dataBoard/renfang/index.scss" scoped></style>
<style scoped>
.pieMain2 {
margin-left: 0px !important
}
</style>

21
src/views/dataBoard/sida/cpts/fwBarOption04.js

@ -14,6 +14,18 @@ export function pieOption() {
trigger: 'axis',
axisPointer: {
type: 'shadow'
},
formatter: function(params) {
var relVal = params[0].name
for (var i = 0, l = params.length; i < l; i++) {
if (i == 0) {
relVal += '<br/>' + params[i].marker + params[i].value + '%'
} else {
relVal += '<br/>' + params[i].marker + params[i].value + ''
}
}
return relVal
}
},
legend: {
@ -43,7 +55,7 @@ export function pieOption() {
alignWithLabel: true
},
axisLabel: {
interval: 1,
interval: 0,
show: true,
textStyle: {
color: 'rgba(255,255,255,0.85)', //更改坐标轴文字颜色
@ -96,6 +108,13 @@ export function pieOption() {
emphasis: {
focus: 'series'
},
// label: {
// normal: {
// show: true,
// position: 'top',
// formatter: '{c} %'
// },
// },
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,

3
src/views/dataBoard/sida/cpts/fwBarOption05.js

@ -43,7 +43,7 @@ export function pieOption() {
alignWithLabel: true
},
axisLabel: {
interval: 3,
interval:0,
// rotate: 40,
show: true,
textStyle: {
@ -75,6 +75,7 @@ export function pieOption() {
},
}],
series: [{
realtimeSort: true,
name: '指派服务数',
type: 'bar',
barWidth: 12,

159
src/views/dataBoard/sida/wt/event-detail.vue

@ -29,8 +29,24 @@
</div>
<div class="row">
<div class="item" style="width: 100%;">
<div class="field">音频</div>
<div class="value">{{ info.attachment_url }}</div>
<div class="field">{{attachment_url.attachment_type}}</div>
<div class="value">
<template v-if="attachment_url.attachment_type_code=='image'">
<el-image style="min-width: 100px;max-width:200px;"
:src="attachment_url.attachment_url" :fit="fit"></el-image>
</template>
<template v-if="attachment_url.attachment_type_code=='audio'">
<audio :src="attachment_url.attachment_url">
您的浏览器不支持 audio 标签
</audio>
</template>
<template v-if="attachment_url.attachment_type_code=='video'">
<video :src="attachment_url.attachment_url" controls="controls">
您的浏览器不支持 video 标签
</video>
</template>
</div>
</div>
</div>
<div class="row">
@ -77,7 +93,8 @@
<i class="i-line"></i>
</div>
<el-timeline class="timeline">
<el-timeline-item v-for="(item, index) in progress" :key="index" :class="index == progress.length - 1 ? 'sucess' : ''">
<el-timeline-item v-for="(item, index) in progress" :key="index"
:class="index == progress.length - 1 ? 'sucess' : ''">
<div class="status-box">
<div class="status2" v-if="index == 0">回复</div>
<div class="status1" v-else>回复</div>
@ -101,77 +118,97 @@
</template>
<script>
import popup from '@/views/dataBoard/cpts/popup';
import { GaodeMap, Map } from '@antv/l7-maps';
import { requestPostBi } from '@/js/dai/request-bipass';
import popup from '@/views/dataBoard/cpts/popup';
import {
GaodeMap,
Map
} from '@antv/l7-maps';
import {
requestPostBi
} from '@/js/dai/request-bipass';
export default {
name: 'eventdetail',
props: {
detailId: {
type: String,
default: ''
export default {
name: 'eventdetail',
props: {
detailId: {
type: String,
default: ''
},
detailType: {
type: String,
default: ''
}
},
detailType: {
type: String,
default: ''
}
},
components: { popup },
created() {},
data() {
return {
progress: [],
info: {},
title: '事件'
};
},
components: {
popup
},
created() {
this.getApiData();
},
data() {
return {
progress: [],
info: {},
title: '事件',
attachment_url: {}
};
},
mounted() {
this.getApiData();
},
mounted() {
methods: {
handleClose() {
this.$emit('close');
},
async getApiData() {
this.getInfo();
},
methods: {
handleClose() {
this.$emit('close');
},
// id
async getInfo() {
let url = 'event_info';
this.title = '事件详情';
async getApiData() {
this.getInfo();
},
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
event_id: this.detailId
// id
async getInfo() {
let url = 'event_info';
this.title = '事件详情';
const {
data,
code,
msg
} = await requestPostBi(
url, {
queryParam: {
event_id: this.detailId
}
}, {
// mockId: 60235478,
}
},
{
// mockId: 60235478,
}
);
if (code === 0) {
this.info = { ...this.info, ...data[0] };
if (this.detailType == '治理事件') {
this.progress = this.info.progress;
);
if (code === 0) {
this.info = {
...this.info,
...data[0]
};
this.attachment_url = (JSON.parse(this.info.attachment_url))[0]
console.log("ddd", this.attachment_url)
if (this.detailType == '治理事件') {
this.progress = this.info.progress;
}
} else {
this.$message.error(msg);
}
} else {
this.$message.error(msg);
}
}
}
};
};
</script>
<style scoped>
.m-info .row .item .field {
width: 120px !important;
}
.m-info .row .item .field {
width: 120px !important;
}
</style>
<style lang="scss" src="@/assets/scss/dataBoard/popup-info.scss" scoped></style>
<style lang="scss" src="@/assets/scss/dataBoard/popup-info.scss" scoped></style>

9
src/views/dataBoard/sida/wt/hiddenDanger-detail.vue

@ -810,8 +810,11 @@
this.getInfo();
},
gettab() {
this.info.group_rental.forEach(item => {
this.getUserInfo(item.user_id);
let users=this.info.group_rental.split(",");
console.log("this.info.group_rental",users)
users.forEach(item => {
this.getUserInfo(item);
});
},
getUserInfo(id) {
@ -864,7 +867,7 @@
this.title = '群租房详情';
queryParam.room_id = this.detailId;
} else if (this.detailType == '发现问题') {
url = 'group_tenant_info';
url = 'hidden_danger_info';
this.title = '发现问题详情';
queryParam.hidden_danger_id = this.detailId;
}

9
src/views/dataBoard/sida/zy/gonggongList.vue

@ -1,5 +1,6 @@
<template>
<div>
<cpt-tb :col-list="colList" :loading="loading" :header="header" :list="list" :total="total"
@handleSizeChange="handleSizeChange" @handlePageNoChange="handlePageNoChange" @operate="showInfo"></cpt-tb>
<detail @close="detailId = ''" :detailId="detailId" :detailType="detailType" v-if="detailId != ''" />
@ -98,9 +99,9 @@
if (this.detailType == "volunteer") {
service_org_type = "ic_user_volunteer"
} else if (this.detailType == "community_org") {
service_org_type = "party_unit"
} else if (this.detailType == "party_unit") {
service_org_type = "community_org"
} else if (this.detailType == "party_unit") {
service_org_type = "party_unit"
}
this.loading = true;
const url = 'common_service_list';
@ -160,9 +161,9 @@
if (this.detailType == "volunteer") {
service_org_type = "ic_user_volunteer"
} else if (this.detailType == "community_org") {
service_org_type = "party_unit"
} else if (this.detailType == "party_unit") {
service_org_type = "community_org"
} else if (this.detailType == "party_unit") {
service_org_type = "party_unit"
}
const {
data,

5
src/views/dataBoard/sida/zy/peopleRes-detail.vue

@ -128,7 +128,8 @@
{{ item }}
</div>
</div>
<div v-if="currentTab == '个性服务'"><gexingList :id="detailId" :detailType="detailType"></gexingList></div>
<div v-if="currentTab == '个性服务'">
<gexingList :id="detailId" :detailType="detailType"></gexingList></div>
<div v-if="currentTab == '公共服务'"><gonggongList :id="detailId" :detailType="detailType" v-if="detailId != '' || detailType == '联建单位'"></gonggongList></div>
<div v-if="currentTab == '联建活动' && detailType == '联建单位'"><lianjianList :id="detailId" :detailType="detailType"></lianjianList></div>
</div>
@ -254,7 +255,7 @@ export default {
let mockId = 0;
let typeArr = { all: '全部', volunteer: '志愿者', community_org: '社区自组织', party_unit: '联建单位' };
console.log('this.detailId', this.detailId);
console.log('this.detailType', this.detailType);
this.title = typeArr[this.detailType] + '详情';
if (this.detailType == 'volunteer') {
url = 'resident_info';

177
src/views/dataBoard/sida/zy/placeRes-detail.vue

@ -54,96 +54,113 @@
</template>
<script>
import { Scene } from '@antv/l7';
import popup from '@/views/dataBoard/cpts/popup';
import { GaodeMap, Map } from '@antv/l7-maps';
import { requestPostBi } from '@/js/dai/request-bipass';
import {
Scene
} from '@antv/l7';
import popup from '@/views/dataBoard/cpts/popup';
import daiMap from "@/utils/dai-map";
import {
requestPostBi
} from '@/js/dai/request-bipass';
export default {
name: 'eventdetail',
props: {
detailId: {
type: String,
default: ''
export default {
name: 'eventdetail',
props: {
detailId: {
type: String,
default: ''
},
detailType: {
type: String,
default: ''
}
},
detailType: {
type: String,
default: ''
}
},
components: { popup },
created() {},
data() {
return {
progress: [],
info: {},
title: '事件',
currentTabIndex: 0,
startTabIndex: 0,
currentTabIndex2: 0,
startTabIndex2: 0
};
},
mounted() {
this.getInfo();
},
computed: {
currentTab() {
return this.tabList[this.currentTabIndex];
components: {
popup
},
currentTab2() {
return this.tabList2[this.currentTabIndex2];
}
},
methods: {
iniMap() {
const scene = new Scene({
id: 'map',
map: new GaodeMap({
pitch: 35.210526315789465,
style: 'dark',
center: [this.info.latitude, this.info.longitude],
// center: [120.00, 36.00],
zoom: 4.4
})
});
created() {},
data() {
return {
progress: [],
info: {},
title: '事件',
currentTabIndex: 0,
startTabIndex: 0,
currentTabIndex2: 0,
startTabIndex2: 0
};
},
mounted() {
this.getInfo();
},
handleClose() {
this.$emit('close');
computed: {
currentTab() {
return this.tabList[this.currentTabIndex];
},
currentTab2() {
return this.tabList2[this.currentTabIndex2];
}
},
methods: {
iniMap() {
let latitude = this.info.latitude;
let longitude = this.info.longitude;
let map = new daiMap(document.getElementById("map"), {
latitude,
longitude
}, {
zoom: 16.2, //
pitch: 43.5, //
rotation: 45, //
});
map.setCenter(latitude, longitude);
map.setMarker(latitude, longitude);
},
handleClose() {
this.$emit('close');
},
// id
async getInfo() {
let url = 'place_resources_intro';
let queryParam = {};
this.title = '场所详情';
queryParam.place_id = this.detailId;
queryParam.parent_place_type = this.detailType;
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: queryParam
},
{
// mockId: 70051004,
// id
async getInfo() {
let url = 'place_resources_intro';
let queryParam = {};
this.title = '场所详情';
queryParam.place_id = this.detailId;
if (this.detailType == "enterprise") {
queryParam.parent_place_type = "enterprise_inspect"
} else {
queryParam.parent_place_type = this.detailType;
}
const {
data,
code,
msg
} = await requestPostBi(
url, {
queryParam: queryParam
}, {
// mockId: 70051004,
}
);
if (code === 0) {
this.info = {
...this.info,
...data[0]
};
console.log('this.info', this.info);
this.iniMap();
} else {
this.$message.error(msg);
}
);
if (code === 0) {
this.info = { ...this.info, ...data[0] };
console.log('this.info', this.info);
this.iniMap();
} else {
this.$message.error(msg);
}
}
}
};
};
</script>
<style scoped>
.m-info .row .item .field {
width: 120px !important;
}
.m-info .row .item .field {
width: 120px !important;
}
</style>
<style lang="scss" src="@/assets/scss/dataBoard/popup-info.scss" scoped></style>
<style lang="scss" src="@/assets/scss/dataBoard/popup-info.scss" scoped></style>

2
src/views/modules/base/community/roomDetail.vue

@ -187,7 +187,7 @@ export default {
async loadHouseInfo () {
const url =
"/actual/base/communityHouse/getHouseDeatilById/" + this.houseId;
"/actual/base/communityHouse/getMaskedHouseDeatilById/" + this.houseId;
let params = {};
const { data, code, msg } = await requestPost(url, params);

2
src/views/modules/base/community/roomForm.vue

@ -269,7 +269,7 @@ export default {
async loadHouseInfo () {
const url = "/actual/base/communityHouse/getHouseDeatilById/" + this.houseId
const url = "/actual/base/communityHouse/getClearHouseDeatilById/" + this.houseId
let params = {}
const { data, code, msg } = await requestPost(url, params)

70
src/views/modules/communityService/policy/policyList.vue

@ -41,6 +41,7 @@
placeholder="请输入"
size="small"
class="u-item-width-normal"
clearable
/>
</el-form-item>
<el-form-item label="是否过期" prop="expiredFlag">
@ -121,6 +122,12 @@
>
导出</el-button
>
<el-button
type="primary"
size="small"
@click="deleteBatch"
>批量删除</el-button
>
</div>
<el-table
@ -195,7 +202,7 @@
label="政策发布时间"
>
<template slot-scope="scope">
<span>{{ scope.row.createdTime.substr(0, 10) }}</span>
<span>{{ scope.row.createdTime }}</span>
</template>
</el-table-column>
@ -370,6 +377,30 @@ export default {
this.getTableData();
},
methods: {
deleteBatch () {
if (this.selection.length > 0) {
this.$confirm("确认删除选择的楼栋?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.delPolicy()
})
.catch(err => {
if (err == "cancel") {
// this.$message({
// type: "info",
// message: ""
// });
}
});
} else {
this.$message.warning('请先选择要删除的楼栋')
}
},
handleSearch(val) {
console.log(this.formData);
this.pageNo = 1;
@ -494,7 +525,22 @@ export default {
type: "warning",
})
.then(() => {
this.delPolicy();
this.$http
.post("/governance/policy/deletePolicy", [row.id])
.then(({ data: res }) => {
console.log("row2", row);
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
console.log("row3", row);
this.$message.success("删除成功");
this.getTableData();
}
})
.catch((err) => {
console.log("row4", err);
return this.$message.error("网络错误");
});
})
.catch((err) => {
if (err == "cancel") {
@ -518,6 +564,26 @@ export default {
this.$message.error("操作失败!");
}
},
//
// async delPolicy() {
// if (this.selection.length === 0)
// return this.$message.error("");
// let policyIds = this.selection.map((item) => item.id);
// this.$http
// .post("/governance/policy/deletePolicy", policyIds)
// .then(({ data: res }) => {
// if (res.code !== 0) {
// return this.$message.error(res.msg);
// } else {
// this.$message.success("");
// this.getTableData();
// }
// })
// .catch((err) => {
// console.log("row4", err);
// return this.$message.error("");
// });
// },
selectAll(selection) {
this.selection = selection;
if (selection.length > 0) {

Loading…
Cancel
Save