Browse Source

Merge branch 'test' into prod

shibei_master
jiangyy 4 years ago
parent
commit
599737485f
  1. 4
      .env.development
  2. 4
      public/index.html
  3. 19
      src/assets/scss/modules/visual/distributionAnalyze.scss
  4. 2
      src/assets/scss/modules/visual/issue-info.scss
  5. 7
      src/assets/scss/modules/visual/resibuzz.scss
  6. 2
      src/views/modules/communityParty/elegant/index.vue
  7. 238
      src/views/modules/communityService/dqfwzx/cpts/edit.vue
  8. 6
      src/views/modules/visual/basicinfo/basicInfoMain.vue
  9. 239
      src/views/modules/visual/communityGovern/distributionAnalyze.vue
  10. 3
      src/views/modules/visual/communityGovern/processAnalyze.vue
  11. 11
      src/views/modules/visual/communityGovern/resibuzz.vue
  12. 13
      src/views/modules/visual/communityGovern/typeAnalyze.vue
  13. 170
      src/views/modules/visual/communityParty/community.vue
  14. 80
      src/views/modules/visual/communityParty/party.vue
  15. 6
      src/views/modules/visual/components/screen-map/index.vue
  16. 6
      src/views/modules/visual/components/screen-table/index.vue
  17. 2
      src/views/modules/visual/measure/service.vue
  18. 6
      src/views/modules/workSys/mapConfig.vue

4
.env.development

@ -1,7 +1,9 @@
NODE_ENV=development NODE_ENV=development
# VUE_APP_API_SERVER = https://epmet-test.elinkservice.cn/api # VUE_APP_API_SERVER = https://epmet-test.elinkservice.cn/api
VUE_APP_API_SERVER = http://192.168.1.140/api VUE_APP_API_SERVER = http://192.168.1.140/api
# VUE_APP_API_SERVER = http://192.168.51.36:8080/api
#家中开发连级的后端服务
# VUE_APP_API_SERVER = https://epmet-dev.elinkservice.cn:41080/api
# VUE_APP_API_SERVER = https://epmet-dev.elinkservice.cn/api # VUE_APP_API_SERVER = https://epmet-dev.elinkservice.cn/api
VUE_APP_NODE_ENV=dev VUE_APP_NODE_ENV=dev
#项目根路径 #项目根路径

4
public/index.html

@ -40,8 +40,8 @@
<script> <script>
window.SITE_CONFIG['apiURL'] = 'http://192.168.1.140/api' window.SITE_CONFIG['apiURL'] = 'http://192.168.1.140/api'
// window.SITE_CONFIG['apiURL'] = 'https://epmet-test.elinkservice.cn/api' // window.SITE_CONFIG['apiURL'] = 'https://epmet-test.elinkservice.cn/api'
// window.SITE_CONFIG['apiURL'] = 'http://118.190.150.119:41080/api' // window.SITE_CONFIG['apiURL'] = 'http://118.190.150.119:41080/api'
// window.SITE_CONFIG['apiURL'] = 'https://epmet-dev.elinkservice.cn/api' // window.SITE_CONFIG['apiURL'] = 'https://epmet-dev.elinkservice.cn/api'
</script> </script>
<% } %> <% } %>
<!-- 集成测试环境 dev --> <!-- 集成测试环境 dev -->

19
src/assets/scss/modules/visual/distributionAnalyze.scss

@ -28,7 +28,7 @@
display: block; display: block;
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 20px;
.second-title-label { .second-title-label {
position: relative; position: relative;
padding-left: 40px; padding-left: 40px;
@ -117,11 +117,11 @@
flex-direction: row; flex-direction: row;
// flex-wrap: wrap; // flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
height: calc(100vh - 230px); height: calc(100vh - 190px);
.g-l { .g-l {
width: 40%; width: 40%;
height: calc(100vh - 240px); height: calc(100vh - 200px);
.echart-line { .echart-line {
margin-left: 30px; margin-left: 30px;
@ -135,16 +135,25 @@
width: 100%; width: 100%;
height: 90%; height: 90%;
} }
> img {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
} }
} }
.g-r { .g-r {
width: 55%; width: 55%;
height: calc(100vh - 250px); height: calc(100vh - 210px);
.r-map { .r-map {
position: relative; position: relative;
height: calc(100vh - 250px - 50px); height: calc(100vh - 210px - 50px);
width: 100%; width: 100%;
.map { .map {

2
src/assets/scss/modules/visual/issue-info.scss

@ -74,7 +74,7 @@
display: flex; display: flex;
padding-left: 15px; padding-left: 15px;
.info-title-2 { .info-title-2 {
width: 90px; width: 100px;
flex: 0 0 1; flex: 0 0 1;
font-size: 14px; font-size: 14px;
} }

7
src/assets/scss/modules/visual/resibuzz.scss

@ -52,9 +52,10 @@
} }
} }
.status-select { .status-select {
position: absolute; margin-left: 10px;
top: 20px; // position: absolute;
right: 10px; // top: 20px;
// right: 10px;
} }
.second-select:last-child { .second-select:last-child {
margin-left: 0; margin-left: 0;

2
src/views/modules/communityParty/elegant/index.vue

@ -120,7 +120,7 @@
</el-card> </el-card>
<el-dialog <el-dialog
title="居民需求分类" title="党员风采"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="40%" width="40%"
append-to-body append-to-body

238
src/views/modules/communityService/dqfwzx/cpts/edit.vue

@ -173,67 +173,95 @@
:key="'staff' + index" :key="'staff' + index"
v-for="(item, index) in dataForm.matterList" v-for="(item, index) in dataForm.matterList"
> >
<el-input <div class="item-info">
class="item_width_1" <el-input
maxlength="50" class="item_width_1"
show-word-limit maxlength="50"
placeholder="事项名" show-word-limit
v-model="item.matterName" placeholder="事项名"
:disabled="item.matterId != undefined" v-model="item.matterName"
/> :disabled="item.matterId != undefined"
/>
<el-select
style="margin-left: 10px" <el-select
v-model="item.appointmentType" style="margin-left: 10px"
filterable v-model="item.appointmentType"
placeholder="预约类型" filterable
:disabled="item.matterId != undefined" placeholder="预约类型"
> :disabled="item.matterId != undefined"
<el-option
v-for="item in appointmentTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
> >
</el-option> <el-option
</el-select> v-for="item in appointmentTypeOptions"
:key="item.value"
<el-time-select :label="item.label"
style="margin-left: 10px" :value="item.value"
v-model="item.startTime" >
:picker-options="{ </el-option>
start: '00:00', </el-select>
step: '00:30',
end: '24:00', <el-time-select
}" style="margin-left: 10px"
placeholder="开始时间" v-model="item.startTime"
:disabled="item.matterId != undefined" :picker-options="{
> start: '00:00',
</el-time-select> step: '00:30',
<span style="margin: 0 5px"></span> end: '24:00',
<el-time-select }"
v-model="item.endTime" placeholder="开始时间"
:picker-options="{ :disabled="item.matterId != undefined"
start: '00:00', >
step: '00:30', </el-time-select>
end: '24:00', <span style="margin: 0 5px"></span>
minTime: item.startTime, <el-time-select
}" v-model="item.endTime"
placeholder="结束时间" :picker-options="{
:disabled="item.matterId != undefined" start: '00:00',
> step: '00:30',
</el-time-select> end: '24:00',
minTime: item.startTime,
<el-button }"
style="margin-left: 10px" placeholder="结束时间"
size="small" :disabled="item.matterId != undefined"
@click="handleDelStaff(index)" >
>删除</el-button </el-time-select>
> </div>
<div class="item-pic">
<el-upload
:disabled="item.matterId != undefined"
class="avatar-uploader"
:action="uploadUlr"
:data="{ customerId: customerId }"
:show-file-list="false"
:on-success="
(response, file, fileList) =>
handleImgSuccess(index, response, file, fileList)
"
:before-upload="beforeImgUpload"
>
<img
v-if="item.matterImg"
:src="item.matterImg"
style="width: 50px; height: 50px"
class="function-icon"
/>
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
<div class="hint">事项封面图片小于1M</div>
<el-button
style="margin-left: auto"
size="small"
@click="handleDelStaff(index)"
>删除</el-button
>
</div>
</div> </div>
<div class="item-add"> <div class="item-add">
<el-button size="small" @click="handleAddStaff">添加</el-button> <el-button size="small" type="warning" @click="handleAddStaff"
>添加</el-button
>
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
@ -266,6 +294,9 @@ let loading; // 加载动画
export default { export default {
data() { data() {
return { return {
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2",
customerId: "",
formType: "add", // addeditdetail formType: "add", // addeditdetail
btnDisable: false, btnDisable: false,
@ -342,14 +373,39 @@ export default {
watch: {}, watch: {},
async mounted() { async mounted() {
this.customerId = localStorage.getItem("customerId");
this.initMap(); this.initMap();
}, },
methods: { methods: {
handleImgSuccess(index, res, file) {
if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url);
this.dataForm.matterList[index].matterImg = res.data.url;
} else {
this.$message.error(res.msg);
}
},
beforeImgUpload(file) {
const isLt1M = file.size / 1024 / 1024 < 1;
if (!isLt1M) {
this.$message.error("上传图片大小不能超过 1MB!");
}
return isLt1M;
},
handleAddStaff() { handleAddStaff() {
this.dataForm.matterList = [ this.dataForm.matterList = [
...this.dataForm.matterList, ...this.dataForm.matterList,
{ matterName: "", appointmentType: "", startTime: "", endTime: "" }, {
matterName: "",
appointmentType: "",
matterImg: "",
startTime: "",
endTime: "",
},
]; ];
}, },
handleDelStaff(index) { handleDelStaff(index) {
@ -482,9 +538,28 @@ export default {
this.dataForm.partyServiceCenterId = this.partyServiceCenterId; this.dataForm.partyServiceCenterId = this.partyServiceCenterId;
} }
const matterList = this.dataForm.matterList.filter(
(item) => !item.matterId
);
if (
matterList.some(
(item) =>
!item.matterImg ||
!item.matterName ||
!item.appointmentType ||
!item.startTime ||
!item.endTime
)
) {
return this.$message({
type: "warning",
message: "请补充完整可预约事项信息",
});
}
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
...this.dataForm, ...this.dataForm,
matterList: this.dataForm.matterList.filter((item) => !item.matterId), matterList,
}); });
if (code === 0) { if (code === 0) {
@ -580,9 +655,48 @@ export default {
width: 650px; width: 650px;
.item { .item {
display: flex; .item-info {
justify-content: space-around; display: flex;
margin-bottom: 7px; justify-content: space-around;
margin-bottom: 7px;
}
.item-pic {
display: flex;
align-items: center;
.hint {
font-size: 14px;
color: #999999;
margin-left: 10px;
}
.avatar-uploader {
::v-deep .el-upload {
cursor: pointer;
position: relative;
overflow: hidden;
}
img {
object-fit: cover;
}
.el-upload:hover {
border-color: #409eff;
}
.avatar {
width: 50px;
height: 50px;
display: block;
}
.avatar-uploader-icon {
border: 1px dashed #d9d9d9;
border-radius: 6px;
font-size: 28px;
color: #8c939d;
width: 50px;
height: 50px;
line-height: 50px;
text-align: center;
}
}
}
} }
.item-add { .item-add {
} }

6
src/views/modules/visual/basicinfo/basicInfoMain.vue

@ -549,11 +549,11 @@ const vueGis = {
// //
setZoom (agencyLevel) { setZoom (agencyLevel) {
if (agencyLevel === 'district') { if (agencyLevel === 'district') {
this.zoom = 14 this.zoom = 12
} else if (agencyLevel === 'street') { } else if (agencyLevel === 'street') {
this.zoom = 15 this.zoom = 13
} else if (agencyLevel === 'community') { } else if (agencyLevel === 'community') {
this.zoom = 16 this.zoom = 14
} }
}, },

239
src/views/modules/visual/communityGovern/distributionAnalyze.vue

@ -4,31 +4,32 @@
<div class="card-title"> <div class="card-title">
<img src="@/assets/img/shuju/title-tip.png" /> <img src="@/assets/img/shuju/title-tip.png" />
<span>项目分布分析</span> <span>项目分布分析</span>
</div>
<div class="second-title">
<div class="second-title-label">不同事件类别在不同时间段的变化和分布</div>
<div class="second-select cascader">
<el-cascader class="customer_cascader"
ref="myCascader"
v-model="agencyIdArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeAgency"></el-cascader>
</div>
<div class="second-select">
<el-date-picker v-model="timeRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
prefix-icon="el-icon-caret-bottom"
value-format="yyyy-MM-dd"
@change="handleSelectChange">
</el-date-picker>
<div class="second-title">
<div class="second-select cascader">
<el-cascader class="customer_cascader"
ref="myCascader"
v-model="agencyIdArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeAgency"></el-cascader>
</div>
<div class="second-select">
<el-date-picker v-model="timeRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
prefix-icon="el-icon-caret-bottom"
value-format="yyyy-MM-dd"
@change="handleSelectChange">
</el-date-picker>
</div>
</div> </div>
</div> </div>
@ -36,19 +37,21 @@
<div class="g-cpt-resi"> <div class="g-cpt-resi">
<div class="g-l"> <div class="g-l">
<screen-echarts-frame class="echart-line" <screen-echarts-frame v-if="!showNoData"
class="echart-line"
@myChartMethod="lineInitOk" @myChartMethod="lineInitOk"
ref="lineChart"></screen-echarts-frame> ref="lineChart"></screen-echarts-frame>
<div v-else
class="echart-line">
<img src="../../../../assets/img/modules/visual/noData.png" />
</div>
<!-- <div class="table-status" <!-- <div class="table-status"
v-if="loading"> v-if="loading">
<screen-loading>加载中</screen-loading> <screen-loading>加载中</screen-loading>
</div> </div>
<div class="table-status" <div class="table-status"
v-if="lineList.length == 0 && !loading"> v-if="lineList.length == 0 && !loading">
<div class="no-data">
<img src="../../../../assets/img/modules/visual/noData.png"
class="no-data-img" />
</div>
</div> --> </div> -->
</div> </div>
@ -208,6 +211,7 @@ export default {
await this.getAgencylist()// await this.getAgencylist()//
await nextTick(500) await nextTick(500)
await this.loadOrgData() await this.loadOrgData()
await this.getApiData(); await this.getApiData();
}, },
@ -237,6 +241,15 @@ export default {
if (month2 < 10) { if (month2 < 10) {
month2 = '0' + month2; month2 = '0' + month2;
} }
if (month < 10) {
month = '0' + month;
}
if (day < 10) {
day = '0' + day;
}
if (day2 < 10) {
day2 = '0' + day2;
}
var t2 = year2 + '-' + month2 + '-' + day2; var t2 = year2 + '-' + month2 + '-' + day2;
var t1 = year + '-' + month + '-' + day; var t1 = year + '-' + month + '-' + day;
// let t3 = formate(t2, style); // let t3 = formate(t2, style);
@ -250,9 +263,19 @@ export default {
}, },
async getApiData () { async getApiData () {
await this.getLineChart()
await this.getLine()
await this.loadMapData(); await this.loadMapData();
this.assignData()
},
assignData () {
if (!this.showNoData) {
this.getLine()
}
this.loadMap()
this.isfirstInit = false
}, },
// //
@ -349,18 +372,19 @@ export default {
const { data, code, msg } = await requestPost(url, params); const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.legendArray = [] this.legendArray = []
if (data.above) { if (data.under === 0 || data.under) {
this.under = data.under this.under = data.under
this.legendArray.push( this.legendArray.push(
{ {
color: this.colorArray[0], color: this.colorArray[0],
name: data.under + '以下' name: data.under + '以下'
} }
) )
} }
if (data.above) { if (data.above === 0 || data.above) {
this.above = data.above this.above = data.above
this.legendArray.push( this.legendArray.push(
{ {
@ -371,7 +395,7 @@ export default {
this.legendArray.push( this.legendArray.push(
{ {
color: this.colorArray[2], color: this.colorArray[2],
name: data.above + '以上' name: data.above + '以上'
} }
) )
} }
@ -392,21 +416,22 @@ export default {
item.latitude = agencyItem.latitude item.latitude = agencyItem.latitude
item.coordinates = agencyItem.coordinates item.coordinates = agencyItem.coordinates
if (this.under) { if (this.under === 0 || this.under) {
if (item.count < this.under || item.count === this.under) { if (item.count < this.under || item.count === this.under) {
item.color = this.colorArray[0] item.color = this.colorArray[0]
item.fillColor = this.colorFillArray[0] item.fillColor = this.colorFillArray[0]
} } else {
if (this.above === 0 || this.above) {
if (this.above) { if (item.count > this.under && item.count < this.above) {
if (item.count > this.under && item.count < this.above) { item.color = this.colorArray[1]
item.color = this.colorArray[1] item.fillColor = this.colorFillArray[1]
item.fillColor = this.colorFillArray[1] } else {
} else { item.color = this.colorArray[2]
item.color = this.colorArray[2] item.fillColor = this.colorFillArray[2]
item.fillColor = this.colorFillArray[2] }
} }
} }
} }
break break
} }
@ -416,8 +441,7 @@ export default {
}); });
console.log(this.mapList) console.log(this.mapList)
this.loadMap()
this.isfirstInit = false
} else { } else {
this.$message.error(msg); this.$message.error(msg);
@ -442,7 +466,7 @@ export default {
}, },
getLine () { getLine () {
if (this.lineInitState) { if (this.lineInitState) {
this.getLineChart() this.assignLineChart()
} else { } else {
setTimeout(() => { setTimeout(() => {
this.getLine() this.getLine()
@ -451,9 +475,13 @@ export default {
}, },
// 线 // 线
async getLineChart () { async getLineChart () {
this.$refs.lineChart.clear() if (!this.showNoData) {
this.$refs.lineChart.clear()
this.$refs.lineChart.showLoading()
}
const _that = this const _that = this
this.$refs.lineChart.showLoading()
const url = "/gov/project/project/projectdistributionanalysisleft"; const url = "/gov/project/project/projectdistributionanalysisleft";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/project/project/projectdistributionanalysisleft"; // const url = "http://yapi.elinkservice.cn/mock/245/gov/project/project/projectdistributionanalysisleft";
let params = { let params = {
@ -463,28 +491,20 @@ export default {
}; };
const { data, code, msg } = await requestPost(url, params); const { data, code, msg } = await requestPost(url, params);
this.$refs.lineChart.hideLoading() if (!this.showNoData) {
this.$refs.lineChart.hideLoading()
}
if (code === 0) { if (code === 0) {
// pieChart
this.lineOption = lineOption()
if (data && data.length > 0) { if (data && data.length > 0) {
this.lineList = data this.lineList = data
this.loadCategoryData() this.showNoData = false
this.$refs.lineChart.setOption(this.lineOption, true)
this.$refs.lineChart.setOption({
xAxis: { data: this.xaxis },
legend: { data: this.legend },
series: this.series
}, true)
} else { } else {
this.lineList = [] this.lineList = []
this.showNoData = true
} }
this.loadCategoryData()
} else { } else {
this.$message.error(msg); this.$message.error(msg);
@ -492,60 +512,75 @@ export default {
}, },
assignLineChart () {
// pieChart
this.lineOption = lineOption()
this.$refs.lineChart.setOption(this.lineOption, true)
this.$refs.lineChart.setOption({
xAxis: { data: this.xaxis },
legend: { data: this.legend },
series: this.series
}, true)
},
//线 //线
loadCategoryData () { loadCategoryData () {
this.xaxis = [] this.xaxis = []
this.series = [] this.series = []
this.legend = [] this.legend = []
let num = this.lineList[0].categoryList.length if (this.lineList.length > 0) {
let dataArray = new Array(num)
//
this.lineList[0].categoryList.forEach((categoryItem, index) => {
this.legend.push(categoryItem.categoryName)
dataArray[index] = []
}); let num = this.lineList[0].categoryList.length
//
this.lineList.forEach(item => {
this.xaxis.push(item.time)
let dataArray = new Array(num)
// //
item.categoryList.forEach((categoryItem, index) => { this.lineList[0].categoryList.forEach((categoryItem, index) => {
dataArray[index].push(categoryItem.count) this.legend.push(categoryItem.categoryName)
dataArray[index] = []
}); });
});
//
this.lineList[0].categoryList.forEach((categoryItem, index) => {
let object = {
name: categoryItem.categoryName,
type: 'line',
smooth: true,
barWidth: 15,
areaStyle: {},
itemStyle: {
color: new echarts.graphic.LinearGradient(
0, 1, 0, 0,
[
{ offset: 0, color: 'rgba(121, 55, 255, 0)' },
{ offset: 1, color: categoryItem.color }
]
)
},
data: dataArray[index]
}
this.series.push(object) //
this.lineList.forEach(item => {
this.xaxis.push(item.time)
//
item.categoryList.forEach((categoryItem, index) => {
dataArray[index].push(categoryItem.count)
});
}); });
//
this.lineList[0].categoryList.forEach((categoryItem, index) => {
let object = {
name: categoryItem.categoryName,
type: 'line',
smooth: true,
barWidth: 15,
areaStyle: {},
itemStyle: {
color: new echarts.graphic.LinearGradient(
0, 1, 0, 0,
[
{ offset: 0, color: 'rgba(121, 55, 255, 0)' },
{ offset: 1, color: categoryItem.color }
]
)
},
data: dataArray[index]
}
this.series.push(object)
});
}
}, },
handleChangeAgency (value) { handleChangeAgency (value) {

3
src/views/modules/visual/communityGovern/processAnalyze.vue

@ -424,7 +424,8 @@ export default {
loadMap () { loadMap () {
if (this.isfirstInit) { if (this.isfirstInit) {
//mapInfo, polygonArray, polIconUrlArray, iconArrays, iconUrlArray //mapInfo, polygonArray, polIconUrlArray, iconArrays, iconUrlArray
this.$refs.map.loadMap(this.agencyInfo, null, null, this.projectList, this.iconUrlArray, this.iconTextStyle, 3000) // this.$refs.map.loadMap(this.agencyInfo, null, null, this.projectList, this.iconUrlArray, this.iconTextStyle, 3000)
this.$refs.map.loadMap(this.agencyInfo, null, null, this.projectList, this.iconUrlArray, this.iconTextStyle)
} else { } else {
this.$refs.map.refreshMap(null, this.projectList) this.$refs.map.refreshMap(null, this.projectList)
} }

11
src/views/modules/visual/communityGovern/resibuzz.vue

@ -279,6 +279,7 @@ export default {
let params = { let params = {
orgId: this.orgId, orgId: this.orgId,
orgType: this.orgType, orgType: this.orgType,
status: this.status,
}; };
@ -405,8 +406,10 @@ export default {
}, },
handleChangeState (index) { async handleChangeState (index) {
this.getTable() await this.getApiData()
this.assignPieChart()
}, },
async handleChangeAgency (value) { async handleChangeAgency (value) {
@ -453,9 +456,9 @@ export default {
item.status ? item.status : '', item.status ? item.status : '',
item.createdTime ? item.createdTime : '', item.createdTime ? item.createdTime : '',
item.issueOriginator ? item.issueOriginator : '', item.issueOriginator ? item.issueOriginator : '',
item.voteAccount ? item.voteAccount : 0, item.voteAccount ? item.voteAccount : '',
item.supportCount ? item.supportCount : 0, item.supportCount ? item.supportCount : 0,
item.oppositionCount ? item.oppositionCount : '', item.oppositionCount ? item.oppositionCount : 0,
{ type: "operate", list: ["查看"] }, { type: "operate", list: ["查看"] },
]; ];
}); });

13
src/views/modules/visual/communityGovern/typeAnalyze.vue

@ -2,7 +2,7 @@
<cpt-card> <cpt-card>
<div class="title"> <div class="title">
<img src="@/assets/img/shuju/title-tip.png" /> <img src="@/assets/img/shuju/title-tip.png" />
<span>事件分类分析</span> <span>项目分类分析</span>
<div class="second-select cascader"> <div class="second-select cascader">
@ -123,10 +123,7 @@ export default {
align: "center", align: "center",
width: "5%", width: "5%",
}, },
{
align: "center",
width: "10%",
},
{ {
align: "center", align: "center",
width: "10%", width: "10%",
@ -145,7 +142,7 @@ export default {
}, },
{ {
align: "center", align: "center",
width: "20%", width: "30%",
}, },
{ {
align: "center", align: "center",
@ -156,7 +153,7 @@ export default {
width: "10%", width: "10%",
}, },
], ],
header: ["序号", "项目编号", "类别", "反映渠道", "所属网格", "状态", "项目标题", "转成项目时间", "操作"], header: ["序号", "类别", "反映渠道", "所属网格", "状态", "项目标题", "转成项目时间", "操作"],
list: [], list: [],
pageSize: 10, pageSize: 10,
pageNo: 1, pageNo: 1,
@ -427,7 +424,7 @@ export default {
item.statusShow = item.status === 'pending' ? '待处理' : '已结案' item.statusShow = item.status === 'pending' ? '待处理' : '已结案'
return [ return [
{ type: "index" }, { type: "index" },
item.projectCode ? item.projectCode : '', // item.projectCode ? item.projectCode : '',
item.categoryNames.join(','), item.categoryNames.join(','),
item.originShow ? item.originShow : '', item.originShow ? item.originShow : '',
item.gridName ? item.gridName : '', item.gridName ? item.gridName : '',

170
src/views/modules/visual/communityParty/community.vue

@ -6,13 +6,20 @@
src="../../../../assets/img/shuju/title-tip.png" /> src="../../../../assets/img/shuju/title-tip.png" />
<div class="title-label"> <div class="title-label">
区域化党建 区域化党建
<el-cascader
v-model="selectAgency"
:options="propTree"
:props="{ checkStrictly: true }"
:show-all-levels="false"
clearable
@change="handleCascader">
</el-cascader>
</div> </div>
</div> </div>
<div class="second-title"> <div class="second-title">
<div class="second-title-label">党建单位分类统计</div> <div class="second-title-label">党建单位分类统计</div>
<div class="second-select"> <div class="second-select">
<el-select v-model="serviceMatter" <el-select v-model="serviceMatter"
clearable
placeholder="请选择" placeholder="请选择"
@change="handleSelectChange" @change="handleSelectChange"
@clear="handleSelectChange"> @clear="handleSelectChange">
@ -31,6 +38,7 @@
end-placeholder="结束日期" end-placeholder="结束日期"
prefix-icon="el-icon-caret-bottom" prefix-icon="el-icon-caret-bottom"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
:clearable="false"
:default-time="['00:00:00', '23:59:59']" :default-time="['00:00:00', '23:59:59']"
> >
</el-date-picker> </el-date-picker>
@ -135,7 +143,7 @@ export default {
{ title: "区域化党建单位名称", coulmn: 'unitName' }, { title: "区域化党建单位名称", coulmn: 'unitName' },
{ title: "活动标题", coulmn: 'title' }, { title: "活动标题", coulmn: 'title' },
{ title: "活动地址", coulmn: 'address' }, { title: "活动地址", coulmn: 'address' },
{ title: "服务事项", coulmn: 'serviceMatter' }, { title: "服务事项", coulmn: 'serviceMatterName' },
{ title: "服务人数", coulmn: 'peopleCount' }, { title: "服务人数", coulmn: 'peopleCount' },
{ title: "活动时间", coulmn: 'activityTime' } { title: "活动时间", coulmn: 'activityTime' }
], ],
@ -147,13 +155,15 @@ export default {
value2: '', value2: '',
timeRange: '', timeRange: '',
visibleLoading: true, visibleLoading: true,
serviceMatter: '', serviceMatter: 'all',
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
total: 0, total: 0,
activeIndex: 0, activeIndex: 0,
activeLevel: "1", activeLevel: "1",
selectAgency: '',
unitList: [], unitList: [],
propTree: [],
partyItem: [ partyItem: [
{ {
name: '楼宇党建', name: '楼宇党建',
@ -231,33 +241,37 @@ export default {
async mounted () { async mounted () {
const { user } = this.$store.state const { user } = this.$store.state
this.agencyId = user.agencyId this.agencyId = user.agencyId
console.log('agencyId-------', this.agencyId)
this.initTime()
await nextTick(100); await nextTick(100);
await this.getAgencyList()
this.loadUnit() this.loadUnit()
this.getList(); this.getList(this.agencyId)
this.getCateCount() this.getCateCount(this.agencyId)
this.getCateType() this.getCateType(this.agencyId)
await this.getWorkUserInfo() await this.getWorkUserInfo()
await this.getMapUnitList() await this.getMapUnitList(this.agencyId)
}, },
watch: { watch: {
timeRange(val) { timeRange(val) {
console.log('val-www', val) console.log('val-www', val)
this.getList(); this.getList(this.agencyId);
} }
}, },
methods: { methods: {
// //
async getList () { async getList (agencyId) {
this.visibleLoading = true this.visibleLoading = true
const url = "/heart/icpartyactivity/activitylist" const url = "/heart/icpartyactivity/activitylist"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyactivity/list" // const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyactivity/list"
let params = { let params = {
agencyId: this.agencyId, agencyId,
pageSize: this.pageSize, pageSize: this.pageSize,
pageNo: this.pageNo, pageNo: this.pageNo,
serviceMatter: this.serviceMatter, serviceMatter: this.serviceMatter == 'all' ? '' : this.serviceMatter,
startTime: this.timeRange && this.timeRange[0] || '', startTime: this.timeRange && this.timeRange[0] || '',
endTime: this.timeRange && this.timeRange[1] || '' endTime: this.timeRange && this.timeRange[1] || ''
} }
@ -277,12 +291,61 @@ export default {
} }
this.visibleLoading = false this.visibleLoading = false
}, },
async getCateCount () { async getAgencyList() {
// const url = "/gov/org/customeragency/staffinagencylist";
// const url = '/gov/org/customeragency/agencygridtree'
const url = '/gov/org/customeragency/staffinagencylist'
// let params = {
// agencyId: this.$store.state.user.agencyId,
// };
const { data, code, msg } = await requestPost(url);
if (code === 0) {
console.log('data-org----o', data)
let { agencyList, subAgencyList } = data
this.selectAgency = [`${agencyList.agencyId}-${agencyList.level}`]
let arr = []
agencyList.subAgencyList = subAgencyList
arr.push(agencyList)
this.propTree = arr && this.getTreeData(arr)
} else {
this.$message.error(msg)
}
},
getTreeData(data){
if (!Array.isArray(data)) return []
let arr = data.map(item => {
let _item = {}
if (item.subAgencyList) {
if (item.subAgencyList.length === 0) {
_item = {
label: item.agencyName,
value: item.agencyId + '-' + item.level,
level: item.level,
children: undefined
}
} else _item = {
label: item.agencyName,
value: item.agencyId + '-' + item.level,
level: item.level,
children: this.getTreeData(item.subAgencyList)}
} else {
_item = {
label: item.agencyName,
value: item.agencyId + '-' + item.level,
level: item.level,
}
}
return _item
})
return arr
},
async getCateCount (agencyId) {
const url = "/heart/icpartyactivity/statistics" const url = "/heart/icpartyactivity/statistics"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyactivity/list" // const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyactivity/list"
let params = { let params = {
agencyId: this.agencyId agencyId
} }
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
@ -293,12 +356,12 @@ export default {
this.$message.error(msg) this.$message.error(msg)
} }
}, },
async getCateType () { async getCateType (agencyId) {
const url = "/heart/icpartyunit/typestatistics" const url = "/heart/icpartyunit/typestatistics"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyactivity/list" // const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyactivity/list"
let params = { let params = {
agencyId: this.agencyId agencyId
} }
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
@ -352,7 +415,37 @@ export default {
this.$message.error(msg) this.$message.error(msg)
} }
}, },
handleCascader(val) {
console.log('val-vvv', val)
if (val.length > 0) {
const _arr = val[val.length - 1].split('-')
const orgType = _arr[1] !== 'grid' ? 'agency': 'grid'
this.getList(_arr[0])
this.getMapUnitList(_arr[0])
this.getCateCount(_arr[0])
this.getCateType(_arr[0])
}
},
initTime() {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
console.log('time-rtt', this.timeFormat(start), this.timeFormat(end))
this.timeRange = [this.timeFormat(start), this.timeFormat(end)]
},
timeFormat(date) {
if (!date || typeof date === 'string') {
return false
}
var y = date.getFullYear() //
var m = date.getMonth() + 1 //
if (m < 10) m = '0' + m
var d = date.getDate() //
if (d < 10) d = '0' + d
return y + '-' + m + '-' + d + ' 00:00:00'
},
async loadUnit () { async loadUnit () {
const url = "/heart/icresidemanddict/subcodelist" const url = "/heart/icresidemanddict/subcodelist"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/option" // const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/option"
@ -365,7 +458,10 @@ export default {
if (code === 0) { if (code === 0) {
this.unitList = data this.unitList = data
this.unitList.unshift({
label: '全部',
value: 'all'
})
} else { } else {
this.$message.error(msg) this.$message.error(msg)
} }
@ -419,27 +515,33 @@ export default {
// }, // },
// //
async getMapUnitList () { async getMapUnitList (agencyId) {
const url = "/heart/icpartyunit/distribution" const url = "/heart/icpartyunit/distribution"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/distribution" // const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/distribution"
let params = { let params = {
agencyId: this.agencyId agencyId
} }
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
if (code === 0) { if (code === 0) {
// this.unitMapList = data console.log('unitMapList----data', data)
this.unitMapList = this.unitMapList1 this.unitMapList = data.map((item, index) => {
return {
...item,
urlIndex: index
}
})
// this.unitMapList = this.unitMapList1
console.log('unitMapList----', this.unitMapList)
this.unitMapList.forEach(item => { this.unitMapList.forEach(item => {
if (item.type === '党建楼宇') { if (item.type === '楼宇党建') {
item.urlIndex = 0 item.urlIndex = 0
} else if (item.type === '两新党建') { } else if (item.type === '两新组织') {
item.urlIndex = 1 item.urlIndex = 1
} else if (item.type === '区单位') { } else if (item.type === '区单位党建') {
item.urlIndex = 2 item.urlIndex = 2
} else if (item.type === '机关直属部门') { } else if (item.type === '机关直属部门') {
item.urlIndex = 3 item.urlIndex = 3
@ -492,7 +594,7 @@ export default {
this.showedMoreInfo = true this.showedMoreInfo = true
}, },
handleSelectChange () { handleSelectChange (val) {
this.getList(); this.getList();
}, },
pageSizeChangeHandleNew (val) { pageSizeChangeHandleNew (val) {
@ -562,8 +664,22 @@ export default {
margin-right: 6px; margin-right: 6px;
} }
.title-label { .title-label {
font-size: 16px; font-size: 20px;
font-weight: 800; font-weight: 800;
::v-deep .el-input {
width: 180px;
margin-left: 10px;
.el-input__inner {
font-size: 18px;
font-weight: 800;
color: #fff;
background: transparent;
border: 0;
}
.el-icon-arrow-down::before {
content: "\e790";
}
}
} }
::v-deep .el-dropdown { ::v-deep .el-dropdown {
font-size: 16px; font-size: 16px;

80
src/views/modules/visual/communityParty/party.vue

@ -40,7 +40,7 @@
<div class="echarts-tips echarts-tips-wd50"> <div class="echarts-tips echarts-tips-wd50">
<div class="tips-lists"> <div class="tips-lists">
<div v-for="(item, index) in ageItem" :key="index" class="tips-items"> <div v-for="(item, index) in ageItem" :key="index" class="tips-items">
<div class="tips-items-title" :class="'tips-items-title' + item.value"> <div class="tips-items-title" :class="'tips-items-title' + item.code">
{{ item.name }} {{ item.name }}
</div> </div>
<div class="tips-items-num"> <div class="tips-items-num">
@ -59,6 +59,7 @@
:tableData="ageList" :tableData="ageList"
:visibleLoading="visibleLoading" :visibleLoading="visibleLoading"
:operate="false" :operate="false"
@row="handleClickRow"
></screen-table> ></screen-table>
<div class="pagination"> <div class="pagination">
<el-pagination <el-pagination
@ -100,6 +101,7 @@
:tableData="eduList" :tableData="eduList"
:visibleLoading="visibleLoading" :visibleLoading="visibleLoading"
:operate="false" :operate="false"
@row="handleClickRow"
></screen-table> ></screen-table>
<div class="pagination"> <div class="pagination">
<el-pagination <el-pagination
@ -323,7 +325,7 @@ export default {
this.clickEduPie(params.dataIndex) this.clickEduPie(params.dataIndex)
} }
this.$refs.eduChart.handleClick(fun) this.$refs.eduChart.handleClick(fun)
this.noInit = true // this.noInit = true
// option && this.$refs.pieChart.setOption(option); // option && this.$refs.pieChart.setOption(option);
}, },
@ -454,9 +456,18 @@ export default {
}, },
clickAgePie (seriesIndex) { clickAgePie (seriesIndex) {
let _code = '' let _code = ''
let isClick = false
console.log('seriesIndex---', seriesIndex)
this.ageItem.forEach((element, index) => { this.ageItem.forEach((element, index) => {
if (index === seriesIndex) { if (index === seriesIndex) {
_code = element.code _code = element.code
if (!this.noInit) isClick = false
else {
element.isClick = !element.isClick
isClick = element.isClick
}
element.label = { element.label = {
show: true, show: true,
@ -470,6 +481,7 @@ export default {
}; };
console.log('zlcm', element) console.log('zlcm', element)
} else { } else {
element.isClick = false
element.label = { element.label = {
show: false, show: false,
@ -492,16 +504,25 @@ export default {
if (this.noInit) { if (this.noInit) {
const _arr = this.selectAgency[this.selectAgency.length - 1].split('-') const _arr = this.selectAgency[this.selectAgency.length - 1].split('-')
const orgType = _arr[1] !== 'grid' ? 'agency': 'grid' const orgType = _arr[1] !== 'grid' ? 'agency': 'grid'
this.getAgeList(_arr[0], orgType, _code) console.log('zlcm---isClick', isClick)
this.getAgeList(_arr[0], orgType, isClick && _code || '')
} }
this.noInit = true this.noInit = true
}, },
clickEduPie (seriesIndex) { clickEduPie (seriesIndex) {
let _code = '' let _code = ''
let isClick = false
this.eduItem.forEach((element, index) => { this.eduItem.forEach((element, index) => {
if (index === seriesIndex) { if (index === seriesIndex) {
_code = element.code _code = element.code
if (!this.noEduInit) isClick = false
else {
element.isClick = !element.isClick
isClick = element.isClick
}
element.label = { element.label = {
show: true, show: true,
@ -515,6 +536,7 @@ export default {
}; };
console.log('zlcm') console.log('zlcm')
} else { } else {
element.isClick = false
element.label = { element.label = {
show: false, show: false,
@ -538,7 +560,7 @@ export default {
const _arr = this.selectAgency[this.selectAgency.length - 1].split('-') const _arr = this.selectAgency[this.selectAgency.length - 1].split('-')
const orgType = _arr[1] !== 'grid' ? 'agency': 'grid' const orgType = _arr[1] !== 'grid' ? 'agency': 'grid'
this.getEduList(_arr[0], orgType, _code) this.getEduList(_arr[0], orgType, isClick && _code || '')
} }
this.noEduInit = true this.noEduInit = true
@ -552,10 +574,37 @@ export default {
}; };
const { data, code, msg } = await requestPost(url, params); const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.ageItem = data.map(item => { const colorList = [
{
name: '50岁以下',
value: 1,
color: '#FAC126'
}, {
name: '50-59岁',
value: 2,
color: '#3DDA83'
}, {
name: '60-69岁',
value: 3,
color: '#A800FF'
}, {
name: '70-79岁',
value: 4,
color: '#2865FA'
}, {
name: '80岁以上',
value: 5,
color: '#00DAD2'
}
]
this.ageItem = data.map((item, index) => {
return { return {
...item, ...item,
name: item.label name: item.label,
isClick: false,
itemStyle: {
color: colorList[index].color
}
} }
}) })
data.forEach(item => { data.forEach(item => {
@ -576,7 +625,8 @@ export default {
this.eduItem = data.map(item => { this.eduItem = data.map(item => {
return { return {
...item, ...item,
name: item.label name: item.label,
isClick: false
} }
}) })
data.forEach(item => { data.forEach(item => {
@ -679,6 +729,12 @@ export default {
}) })
return arr return arr
}, },
handleClickRow(val) {
console.log('click-row----', val)
this.$router.push({
path: `/main-shuju/visual-basicinfo-people/${val.userId}`,
});
},
handleCascader(val) { handleCascader(val) {
console.log('val-vvv', val) console.log('val-vvv', val)
const _arr = val[val.length - 1].split('-') const _arr = val[val.length - 1].split('-')
@ -912,18 +968,18 @@ export default {
padding-left: 6px; padding-left: 6px;
font-size: 16px; font-size: 16px;
color: #EFF0F1; color: #EFF0F1;
background: url('../../../../assets/img/shuju/measure/zi@2x.png') no-repeat left bottom; background: url('../../../../assets/img/shuju/measure/huang@2x.png') no-repeat left bottom;
&1 { &1 {
background: url('../../../../assets/img/shuju/measure/huang@2x.png') no-repeat left bottom; background: url('../../../../assets/img/shuju/measure/lv@2x.png') no-repeat left bottom;
} }
&2 { &2 {
background: url('../../../../assets/img/shuju/measure/lan@2x.png') no-repeat left bottom; background: url('../../../../assets/img/shuju/measure/zi@2x.png') no-repeat left bottom;
} }
&3 { &3 {
background: url('../../../../assets/img/shuju/measure/lanlv@2x.png') no-repeat left bottom; background: url('../../../../assets/img/shuju/measure/lan@2x.png') no-repeat left bottom;
} }
&4 { &4 {
background: url('../../../../assets/img/shuju/measure/lv@2x.png') no-repeat left bottom; background: url('../../../../assets/img/shuju/measure/lanlv@2x.png') no-repeat left bottom;
} }
} }
.tips-items-num { .tips-items-num {

6
src/views/modules/visual/components/screen-map/index.vue

@ -450,11 +450,11 @@ const vueGis = {
// //
setZoom (level) { setZoom (level) {
if (level === 'district') { if (level === 'district') {
this.zoom = 14 this.zoom = 11
} else if (level === 'street') { } else if (level === 'street') {
this.zoom = 15 this.zoom = 12
} else if (level === 'community') { } else if (level === 'community') {
this.zoom = 16 this.zoom = 13
} }
}, },

6
src/views/modules/visual/components/screen-table/index.vue

@ -22,6 +22,7 @@
class="table-body-tr" class="table-body-tr"
v-for="(value, index) in tableData" v-for="(value, index) in tableData"
:key="index" :key="index"
@click.stop="handleClickRow(value)"
> >
<div <div
class="td" class="td"
@ -201,6 +202,9 @@ export default {
look(val) { look(val) {
console.log('look-----l', val) console.log('look-----l', val)
this.$emit('look', val) this.$emit('look', val)
},
handleClickRow(val) {
this.$emit('row', val)
} }
}, },
}; };
@ -250,6 +254,8 @@ export default {
.td { .td {
text-align: center; text-align: center;
width: calc(100% / 5); width: calc(100% / 5);
box-sizing: border-box;
padding: 0 15px;
cursor: pointer; cursor: pointer;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;

2
src/views/modules/visual/measure/service.vue

@ -179,7 +179,7 @@ export default {
{ title: "上报人", coulmn: 'reportUserName' }, { title: "上报人", coulmn: 'reportUserName' },
{ title: "上报时间", coulmn: 'reportTime' }, { title: "上报时间", coulmn: 'reportTime' },
{ title: "需求人", coulmn: 'demandUserName' }, { title: "需求人", coulmn: 'demandUserName' },
{ title: "服务方", coulmn: 'serviceName' }, { title: "服务方", coulmn: 'serviceShowName' },
{ title: "服务时间", coulmn: 'wantServiceTime' }, { title: "服务时间", coulmn: 'wantServiceTime' },
], ],
categoryList: [], categoryList: [],

6
src/views/modules/workSys/mapConfig.vue

@ -390,11 +390,11 @@ const vueGis = {
// //
setZoom (agencyLevel) { setZoom (agencyLevel) {
if (agencyLevel === 'district') { if (agencyLevel === 'district') {
this.zoom = 13 this.zoom = 12
} else if (agencyLevel === 'street') { } else if (agencyLevel === 'street') {
this.zoom = 14 this.zoom = 13
} else if (agencyLevel === 'community') { } else if (agencyLevel === 'community') {
this.zoom = 15 this.zoom = 14
} }
}, },

Loading…
Cancel
Save