Browse Source

合并feature-dev

feature
PLUTO 2 years ago
parent
commit
8dab6e026f
  1. BIN
      src/assets/images/gailan/yuan_bg.png
  2. BIN
      src/assets/images/gailan/zq_bg.png
  3. 2
      src/assets/scss/modules/index.scss
  4. 1
      src/views/dataBoard/cpts/family/modules/businessTables/economize.vue
  5. 24
      src/views/dataBoard/cpts/personnel/modules/businessTables/economize.vue
  6. 2073
      src/views/dataBoard/cpts/resi-details.vue
  7. 77
      src/views/dataBoard/overview/components/EventAndFollowUp.vue
  8. 1
      src/views/dataBoard/renfang/cpts/fwgl.vue
  9. 32
      src/views/dataBoard/renfang/cpts/jmgl.vue
  10. 5
      src/views/dataBoard/renfang/index.vue
  11. 24
      src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue
  12. 105
      src/views/modules/base/organization/organization.vue
  13. 2
      src/views/modules/base/resi.vue
  14. 77
      src/views/modules/base/residentManagement/veteran/veteran.vue
  15. 77
      src/views/modules/base/residentManagement/volunteer/volunteer.vue
  16. 2
      src/views/modules/communityParty/partyOrg/orgTree.vue
  17. 5
      src/views/modules/communityService/fuwuzuzhi/index.vue
  18. 165
      src/views/modules/goverhotline/index.vue
  19. 38
      src/views/modules/home/index.vue
  20. 2
      src/views/modules/satisfaction/communitySelfInsp/formList.vue
  21. 2
      src/views/modules/satisfaction/detail/index.vue
  22. 2
      src/views/modules/satisfaction/satisfactionProvince/formList.vue
  23. 2
      src/views/modules/shequzhili/event/eventList.vue

BIN
src/assets/images/gailan/yuan_bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 57 KiB

BIN
src/assets/images/gailan/zq_bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

2
src/assets/scss/modules/index.scss

@ -394,11 +394,11 @@
border: 1px solid rgba(0, 0, 0, 0.15);
font-size: 12px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(0, 0, 0, 0.88);
line-height: 20px;
font-style: normal;
text-align: center;
font-weight: 600;
}
}

1
src/views/dataBoard/cpts/family/modules/businessTables/economize.vue

@ -16,6 +16,7 @@
<img width="268px" height="128px" src="~@/assets/images/overview/zanwu.png" />
<div style="color: #fff">暂无数据</div>
</div>
<smyd :showDialog="showDialog" :id="rowId" @close="close" />
</div>
</template>

24
src/views/dataBoard/cpts/personnel/modules/businessTables/economize.vue

@ -1,6 +1,11 @@
<template>
<div class="table">
<el-table v-if="list.length > 0" :data="list" max-height="363px" height="363px">
<el-table
v-if="list.length > 0"
:data="list"
max-height="363px"
height="363px"
>
<el-table-column label="序号" type="index" width="80" />
<el-table-column label="不满意事项类型" prop="scope" width="190" />
<el-table-column label="不满意事项描述" prop="problemDesc" width="" />
@ -12,20 +17,27 @@
</template>
</el-table-column>
</el-table>
<div v-else style="width: 100%; height: 100%; text-align: center; padding-top: 120px">
<img width="268px" height="128px" src="~@/assets/images/overview/zanwu.png" />
<div
v-else
style="width: 100%; height: 100%; text-align: center; padding-top: 120px"
>
<img
width="268px"
height="128px"
src="~@/assets/images/overview/zanwu.png"
/>
<div style="color: #fff">暂无数据</div>
</div>
<smyd :showDialog="showDialog" :id="rowId" @close="close" />
<Smyd :showDialog="showDialog" :id="rowId" @close="close" />
</div>
</template>
<script>
import smyd from "@/views/dataBoard/cpts/details/smyd.vue";
import Smyd from "@/views/dataBoard/cpts/details/smyd.vue";
export default {
name: "economize",
components: {
smyd,
Smyd,
},
data() {
return {

2073
src/views/dataBoard/cpts/resi-details.vue

File diff suppressed because it is too large

77
src/views/dataBoard/overview/components/EventAndFollowUp.vue

@ -36,7 +36,7 @@ import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue";
export default {
name: "EventAndFollowUp",
components: {Tabs},
components: { Tabs },
props: {
date: {
type: String,
@ -86,27 +86,25 @@ export default {
methods: {
getData(item) {
this.$http
.get(
"/actual/base/streetOverview/eventAndFollowGroup?month=" +
this.date +
"&level=" +
item.orgLevel +
"&orgId=" +
item.orgId +
"&queryType=" +
this.type
)
.then(({data: {data}}) => {
if (data) {
this.sumNum = data.sumNum;
this.lastSumNum = data.lastSumNum;
this.processNum = data.processNum;
this.closedNum = data.closedNum;
this.closedRatio = data.closedRatio;
}
});
.get(
"/actual/base/streetOverview/eventAndFollowGroup?month=" +
this.date +
"&level=" +
item.orgLevel +
"&orgId=" +
item.orgId +
"&queryType=" +
this.type
)
.then(({ data: { data } }) => {
if (data) {
this.sumNum = data.sumNum;
this.lastSumNum = data.lastSumNum;
this.processNum = data.processNum;
this.closedNum = data.closedNum;
this.closedRatio = data.closedRatio;
}
});
},
typeChange(val) {
this.type = val;
@ -127,10 +125,10 @@ export default {
.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%
90deg,
rgba(1, 94, 234, 0.1) 0%,
rgba(16, 50, 103, 0) 50%,
rgba(1, 94, 234, 0.1) 100%
);
padding: 20px 19px;
display: flex;
@ -180,12 +178,29 @@ export default {
}
}
@keyframes roate {
0% {
transform: rotateZ(0);
-ms-transform: rotateZ(0);
-moz-transform: rotateZ(0);
-webkit-transform: rotateZ(0);
-o-transform: rotateZ(0);
}
100% {
transform: rotateZ(360deg);
-ms-transform: rotateZ(360deg);
-moz-transform: rotateZ(360deg);
-webkit-transform: rotateZ(360deg);
-o-transform: rotateZ(360deg);
}
}
.processing {
.bg {
background: url("@/assets/images/gailan/yuan_bg.png") no-repeat center;
flex: 0 0 150px;
width: 150px;
height: 150px;
background-size: 150px 150px;
display: flex;
align-items: center;
justify-content: center;
@ -193,11 +208,13 @@ export default {
.bg-1 {
background: url("@/assets/images/gailan/zq_bg.png") no-repeat center;
width: 146px;
height: 136px;
width: 158px;
height: 158px;
background-size: 158px 158px;
position: absolute;
left: 9px;
top: 9px;
left: -3px;
top: -3px;
animation: roate 5s infinite linear; //
}
.num {

1
src/views/dataBoard/renfang/cpts/fwgl.vue

@ -261,7 +261,6 @@ export default {
// pieChart
this.pieOption = pieOption();
const {pandectData} = this
console.log(pandectData);
//
this.pieOption.title.text =
(pandectData.homeCount != 0

32
src/views/dataBoard/renfang/cpts/jmgl.vue

@ -7,6 +7,7 @@
class=""
@myChartMethod="pieInitOk"
ref="pieChart"
v-if="pandectData.totalResidents"
></screen-echarts-frame>
</div>
<div class="pie-legend">
@ -31,7 +32,7 @@
<div class="title">居民总数</div>
</div>
<div class="item-two">
<div class="num">{{ info.resident_count }}</div>
<div class="num">{{ pandectData.totalResidents }}</div>
<div class="unit"></div>
</div>
</div>
@ -50,7 +51,7 @@
</div>
<div class="item-two">
<div class="num">
{{ info.inhabitant_count }}
{{ pandectData.permanentResiCount }}
</div>
<div class="unit"></div>
</div>
@ -70,7 +71,7 @@
<div class="title">流动人口</div>
</div>
<div class="item-two">
<div class="num">{{ info.floating_count }}</div>
<div class="num">{{ pandectData.floatingResiCount }}</div>
<div class="unit"></div>
</div>
</div>
@ -145,6 +146,7 @@ export default {
inhabitant_count: 0,
floating_count: 0,
},
pandectData:{}
};
},
watch: {
@ -153,7 +155,9 @@ export default {
},
},
mounted() {
this.getData();
this.$nextTick(()=>{
this.getData();
})
},
methods: {
toListPage(type = "", type_name = "") {
@ -233,21 +237,19 @@ export default {
async iniPieChart() {
this.$refs.pieChart.clear();
// this.$refs.pieChart.showLoading()
// pieChart
this.pieOption = pieOption();
const { info } = this;
const { pandectData } = this;
//
this.pieOption.title.text =
(info.resident_count != 0
(pandectData.totalResidents != 0
? parseInt(
(100 * info.inhabitant_count) / info.resident_count
(100 * pandectData.permanentResiCount) / pandectData.totalResidents
)
: "--") + "%";
this.pieData = [
{ value: info.inhabitant_count, name: "常住人口" },
{ value: info.floating_count, name: "流动人口" },
{ value: pandectData.permanentResiCount, name: "常住人口" },
{ value: pandectData.floatingResiCount, name: "流动人口" },
];
this.pieOption.series[0].data = this.pieData;
this.$refs.pieChart.setOption(this.pieOption);
@ -260,14 +262,14 @@ export default {
fromActionPayload: { dataIndexInside },
} = params;
this.pieOption.title.text =
(info.resident_count != 0
(pandectData.totalResidents != 0
? parseInt(
(100 *
[
info.inhabitant_count,
info.floating_count,
pandectData.permanentResiCount,
pandectData.floatingResiCount,
][dataIndexInside]) /
info.resident_count
pandectData.totalResidents
)
: "--") + "%";
this.$refs.pieChart.myChart.setOption(this.pieOption);

5
src/views/dataBoard/renfang/index.vue

@ -17,7 +17,7 @@
</div>
<div class="m-subbox">
<fwgl ref="fwgl" :orgId="orgData.org_id" :pandectData="pandectData"></fwgl>
<fwgl ref="fwgl" :orgId="orgData.org_id"></fwgl>
</div>
</div>
@ -31,7 +31,7 @@
</div>
<div class="m-subbox">
<jmgl :orgId="orgData.org_id" :pandectData="pandectData"></jmgl>
<jmgl :orgId="orgData.org_id" ref="jmgl"></jmgl>
</div>
</div>
</div>
@ -553,6 +553,7 @@ export default {
if (data) {
this.$nextTick(()=>{
this.$refs['fwgl'].pandectData = data
this.$refs['jmgl'].pandectData = data
}
)
}

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

@ -26,7 +26,12 @@
事件未解决 <br />
上报人数
</div>
<div class="num"><span style="margin-right: 4px;" class="orange">{{ unSolvedNum ? unSolvedNum : 0 }}</span></div>
<div class="num">
<span style="margin-right: 4px" class="orange">{{
unSolvedNum ? unSolvedNum : 0
}}</span
>
</div>
</div>
<div
class="potential-people-item"
@ -48,7 +53,12 @@
需求未满足 <br />
人数
</div>
<div class="num"><span style="margin-right: 4px" class="green">{{ unFinishNum ? unFinishNum : 0 }}</span></div>
<div class="num">
<span style="margin-right: 4px" class="green">{{
unFinishNum ? unFinishNum : 0
}}</span
>
</div>
</div>
<div
class="potential-people-item"
@ -70,7 +80,12 @@
应享未享 <br />
服务人数
</div>
<div class="num"><span style="margin-right: 4px" class="light">{{ noServiceNum ? noServiceNum : 0 }}</span></div>
<div class="num">
<span style="margin-right: 4px" class="light">{{
noServiceNum ? noServiceNum : 0
}}</span
>
</div>
</div>
</div>
</template>
@ -174,7 +189,8 @@ export default {
.imgIcon {
width: 30px;
height: 30px;
margin-top: -100px;
position: relative;
top: -58px;
}
.imgBg {
display: block;

105
src/views/modules/base/organization/organization.vue

@ -225,7 +225,8 @@
<el-table v-show="gridStaffTableFlag"
:data="gridStaffTableListData"
style="width: 100%"
height="350">
height="350"
>
<el-table-column prop="name"
label="网格工作人员名字"
width="260"></el-table-column>
@ -245,10 +246,19 @@
class-name="small-padding fixed-width">
<template slot="header"
slot-scope="scope">
<el-button size="mini"
<!-- <el-button size="mini"
type="primary"
icon="el-icon-plus"
@click="addGridPeo(scope.row)">新增</el-button>
@click="addGridPeo(scope.row)">新增</el-button> -->
<el-dropdown @command="handleCommand">
<el-button type="primary" >
新增 <i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="newAdd" >新添加</el-dropdown-item>
<el-dropdown-item command="fromOrg">从组织添加</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
<template slot-scope="scope">
<el-button size="mini"
@ -488,7 +498,37 @@
</div>
</el-dialog>
</div>
<div v-if="dialogVisiblePeoAgency">
<el-dialog title="新增人员ccccc"
:visible.sync="dialogVisiblePeoAgency"
width="850"
>
<el-form :model="peoFormAgency"
label-width="120px"
ref="addPeoAgencyForm"
:rules="rulesAgencyPeo">
<el-form-item label="工作人员" prop="selectedList">
<el-select v-model="peoFormAgency.selectedList"
multiple
placeholder="请选择"
>
<el-option v-for="item in agencyStaffTableListData"
:key="item.staffId"
:value="item.staffId"
:label="item.name"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="cancelPeoAgency"> </el-button>
<el-button type="primary"
@click="submitPeoAgency"> </el-button>
</div>
</el-dialog>
</div>
<!-- 人员修改 -->
<el-dialog v-if="modifyPeo"
title="人员修改"
@ -692,7 +732,7 @@
<!-- 新增组织 -->
<el-dialog v-if="createAgencyDialogFlag"
title="新增组织1"
title="新增组织"
:visible.sync="createAgencyDialogFlag"
width="850"
:before-close="handleClose" destroy-on-close>
@ -1293,7 +1333,16 @@ export default {
label: 'agencyName',
children: 'subAgencyList',
checkStrictly: true
}
},
dialogVisiblePeoAgency:false,//
peoFormAgency:{
gridId:"",
selectedList:[]
},
rulesAgencyPeo:{
selectedList:[{required:true,message:"请选择人员",trigger:"blur"}]
},
tableKey:""
};
},
created () {
@ -1761,6 +1810,9 @@ export default {
disableFlag: "",
newRoles: [],
};
this.peoFormAgency = {
selectedList:[]
}
},
//
GridFormRest () {
@ -1978,9 +2030,16 @@ export default {
},
//
addGridPeo () {
async addGridPeo (command) {
if (command === 'newAdd') {
this.dialogVisiblePeo = true;
this.peoForm.orgType = "grid";
} else if (command === 'fromOrg') {
await this.getAgencyStaffListData()
console.log(this.agencyStaffTableListData);
this.dialogVisiblePeoAgency = true;
}
},
//
async xiuGridPeo (row) {
@ -2623,7 +2682,6 @@ export default {
// id
async getGridDetailsById () {
const url = "/gov/org/grid/griddetail";
let params = {
gridId: this.judgeOrgInfoLevel.id,
};
@ -2814,6 +2872,37 @@ export default {
this.longitude = lonlat[0];
// this.formData.address = selPosition.address + selPosition.name;
},
handleCommand(command) {
this.addGridPeo(command);
},
cancelPeoAgency(){
this.dialogVisiblePeoAgency = false
this.peoFormAgency.selectedList = []; //
},
submitPeoAgency(){
this.$refs["addPeoAgencyForm"].validate((valid, err) => {
if (valid) {
this.submitPeoAgencyDo();
} else {
app.util.validateRule(err);
return console.log("error submit!!", valid, err);
}
});
},
async submitPeoAgencyDo(){
let url = "/gov/org/grid/addgridstaffs"
this.peoFormAgency.gridId = this.currentGridOrgId
const {data,code,msg} = await requestPost(url,this.peoFormAgency)
if(code == 0){
this.$message.success('添加成功')
this.dialogVisiblePeoAgency = false
this.getGridStaffListData();
this.peoFormAgency.selectedList = []
} else{
this.$message.err(msg)
}
},
},
};
</script>

2
src/views/modules/base/resi.vue

@ -387,7 +387,7 @@ export default {
{ columnName: "name", label: "姓名", width: 80 },
{ columnName: "birthday", label: "生日", width: 100 },
{ columnName: "gender", label: "性别", width: 50 },
{ columnName: "nationality", label: "国籍", width: 50 },
{ columnName: "nationalityName", label: "国籍", width: 50 },
{ columnName: "agencyName", label: "所属组织", width: 150 },
{ columnName: "gridName", label: "所属网格", width: 150 },
{ columnName: "homeName", label: "所属房屋", width: 150 },

77
src/views/modules/base/residentManagement/veteran/veteran.vue

@ -650,6 +650,9 @@ export default {
nationList: [],
educationList: [],
}, //
importCode:'',
dataList :[]
};
},
computed: {
@ -822,33 +825,55 @@ export default {
async uploadHttpRequest(file) {
this.$message({
showClose: true,
dangerouslyUseHTMLString: true,
message:
"导入中,请到系统管理-<a id='clickA' style='cursor: pointer;'>导入记录</a>中查看进度",
duration: 3000,
});
let than = this;
document.getElementById("clickA").addEventListener("click", function () {
than.$router.replace("/main/importRecord-index");
});
const formData = new FormData(); //FormDataappend('key', value)
formData.append("file", file.file); //
await this.$http
.post("/actual/base/resiCategorized/veteran/import", formData)
.then((res) => {
console.log("res-up", res);
if (res.data.code == 0 && res.data.msg == "success") {
this.$message.success("导入成功");
this.getTableData();
this.$refs.upload.clearFiles();
} else this.$message.error(res.data.msg);
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
// this.$message.error('')
showClose: true,
dangerouslyUseHTMLString: true,
message:
"导入中,请到系统管理-<a id='clickA' style='cursor: pointer;'>导入记录</a>中查看进度",
duration: 3000,
});
let than = this;
document.getElementById("clickA").addEventListener("click", function () {
than.$router.replace("/main/importRecord-index");
});
const formData = new FormData(); //FormDataappend('key', value)
formData.append("file", file.file); //
formData.append("fileMode",'VETERAN');
await this.$http
.post("/actual/base/importExcelData/extractExcelHead", formData)
.then((res) => {
const { metaListData, fileCode, msg } = res.data.data;
this.dataList = {"所属网格":"所属网格","所属小区":"所属小区","所属楼栋":"所属楼栋","所属单元":"所属单元","所属房屋":"所属房屋","本地户籍":"本地户籍","居民姓名":"居民姓名","联系电话":"联系电话","国籍":"国籍","证件类型":"证件类型","证件号":"证件号","民族":"民族","备注":"备注","文化程度":"文化程度","户籍地址":"户籍所在地","居住地址":"现居住地址","婚姻状况":"婚姻状况","入伍时间":"入伍时间","退伍时间":"退伍时间","服役单位":"服役单位","接收单位":"接收单位","参战时间开始日期":"参战时间开始日期","参战时间截止日期":"参战时间截止日期","现就业情况":"现就业情况","待安置补助金":"待安置补助金","培训状况":"培训状况","是否办理公益性岗位":"是否办理公益性岗位","现工作单位":"现工作单位"};
// forfilter, O(1) itemGroupId
this.importCode = fileCode;
this.handleComfirmUpload()
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
// this.$message.error('')
});//
},
async handleComfirmUpload () {
this.importLoading = true;
this.importBtnTitle = "正在上传中...";
const { importOption, importCode, dataList } = this;
const formData = new FormData();
formData.append("columnMateJson", JSON.stringify(dataList));
formData.append("fileCode", importCode);
await this.$http
.post("/actual/base/importExcelData/importResiHouseExcel", formData)
.then((res) => {
console.log("res-up", res);
if (res.data.code == 0 && res.data.msg == "success") {
this.getTableData();
} else this.$message.error(res.data.msg);
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
});
this.importLoading = false;
this.importBtnTitle = "导入";
},
//
async handleExport() {

77
src/views/modules/base/residentManagement/volunteer/volunteer.vue

@ -524,6 +524,9 @@ export default {
volunteerList:[],
hobbyList:[]
}, //
importCode:'',
dataList :[]
};
},
computed: {
@ -612,33 +615,55 @@ export default {
async uploadHttpRequest(file) {
this.$message({
showClose: true,
dangerouslyUseHTMLString: true,
message:
"导入中,请到系统管理-<a id='clickA' style='cursor: pointer;'>导入记录</a>中查看进度",
duration: 3000,
});
let than = this;
document.getElementById("clickA").addEventListener("click", function () {
than.$router.replace("/main/importRecord-index");
});
const formData = new FormData(); //FormDataappend('key', value)
formData.append("file", file.file); //
await this.$http
.post("/actual/base/resiCategorized/volunteer/import", formData)
.then((res) => {
console.log("res-up", res);
if (res.data.code == 0 && res.data.msg == "success") {
this.$message.success("导入成功");
this.getTableData();
this.$refs.upload.clearFiles();
} else this.$message.error(res.data.msg);
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
// this.$message.error('')
showClose: true,
dangerouslyUseHTMLString: true,
message:
"导入中,请到系统管理-<a id='clickA' style='cursor: pointer;'>导入记录</a>中查看进度",
duration: 3000,
});
let than = this;
document.getElementById("clickA").addEventListener("click", function () {
than.$router.replace("/main/importRecord-index");
});
const formData = new FormData(); //FormDataappend('key', value)
formData.append("file", file.file); //
formData.append("fileMode",'VOLUNTEER');
await this.$http
.post("/actual/base/importExcelData/extractExcelHead", formData)
.then((res) => {
const { metaListData, fileCode, msg } = res.data.data;
this.dataList = metaListData;
// forfilter, O(1) itemGroupId
this.importCode = fileCode;
this.handleComfirmUpload()
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
// this.$message.error('')
});//
},
async handleComfirmUpload () {
this.importLoading = true;
this.importBtnTitle = "正在上传中...";
const { importOption, importCode, dataList } = this;
const formData = new FormData();
formData.append("columnMateJson", JSON.stringify(dataList));
formData.append("fileCode", importCode);
await this.$http
.post("/actual/base/importExcelData/importResiHouseExcel", formData)
.then((res) => {
console.log("res-up", res);
if (res.data.code == 0 && res.data.msg == "success") {
this.getTableData();
} else this.$message.error(res.data.msg);
})
.catch((err) => {
console.log("失败", err);
file.onError(); //
});
this.importLoading = false;
this.importBtnTitle = "导入";
},
//
handleSearch(val) {

2
src/views/modules/communityParty/partyOrg/orgTree.vue

@ -198,9 +198,7 @@ export default {
});
},
rowClassName(row, rowIndex) {
console.log(row);
if (row.row.childrenQty == 0) {
console.log(row);
return 'no-expand';
}
return '';

5
src/views/modules/communityService/fuwuzuzhi/index.vue

@ -203,7 +203,6 @@
<script>
import { requestPost } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex";
import axios from "axios";
import editForm from "./cpts/edit";
@ -346,7 +345,7 @@ export default {
async handleDelete (rowData, rowIndex) {
console.log(rowData, rowIndex);
const url = "/heart/icServiceOrg/del";
const url = "/governance/icServiceOrg/del";
const { tableData } = this;
const { data, code, msg } = await requestPost(url, {
@ -376,7 +375,7 @@ export default {
},
async getTableData () {
const url = "/heart/icServiceOrg/list";
const url = "/governance/icServiceOrg/list";
const { pageSize, pageNo, searchData } = this;
const { data, code, msg } = await requestPost(url, {

165
src/views/modules/goverhotline/index.vue

@ -32,40 +32,66 @@
{{ report.overallOperation }}
</p>
<h1 style="text-align: center;font-size: 20px;">行业领域分布情况</h1>
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }">
<div id="categoryChart"></div>
<div id="categoryPie"></div>
<div v-if="categoryCountShow">
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }">
<div id="categoryChart"></div>
<div id="categoryPie"></div>
</div>
</div>
<div class="no-data" v-else>
暂无数据
</div>
</div>
<div>
<h1 style="font-size: 24px; font-weight: bold;"> 工单情况分析 </h1>
<h2 style="font-size: 20px; font-weight: bold;"> (地域统计分析 </h2>
<p style="font-size: 16px; line-height: 1.5; margin-top: 10px; text-indent: 2em;">
{{ report.geoStatis }}
</p>
<h1 style="text-align: center;font-size: 20px;">各社区问题数量及占比</h1>
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }">
<div id="communityChart"></div>
</div>
<div v-if="communityCountShow">
<p style="font-size: 16px; line-height: 1.5; margin-top: 10px; text-indent: 2em;">
{{ report.geoStatis }}
</p>
<h1 style="text-align: center;font-size: 20px;">各社区问题数量及占比</h1>
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }">
<div id="communityChart"></div>
</div>
</div>
<div class="no-data" v-else>
暂无数据
</div>
<h2 style="font-size: 20px; font-weight: bold;"> (科室热线分布分析 </h2>
<p style="font-size: 16px; line-height: 1.5; margin-top: 10px; text-indent: 2em;">
{{ report.departHotline }}
</p>
<h1 style="text-align: center;font-size: 20px;">科室热线分布情况</h1>
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }">
<div id="departChart"></div>
<div v-if="departCountShow">
<p style="font-size: 16px; line-height: 1.5; margin-top: 10px; text-indent: 2em;">
{{ report.geoStatis }}
</p>
<h1 style="text-align: center;font-size: 20px;">科室热线分布情况</h1>
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }">
<div id="communityChart"></div>
</div>
</div>
<div v-else class="no-data">
暂无数据
</div>
<h2 style="font-size: 20px; font-weight: bold;"> (热点诉求及区域分析 </h2>
<p style="font-size: 16px; line-height: 1.5; margin-top: 10px; text-indent: 2em;">
{{ report.hotDemand }}
</p>
<h1 style="text-align: center;font-size: 20px;">热线诉求热点问题前十</h1>
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }">
<div id="hotlineChart"></div>
<div v-if="subCategoryCountShow">
<p style="font-size: 16px; line-height: 1.5; margin-top: 10px; text-indent: 2em;">
{{ report.hotDemand }}
</p>
<h1 style="text-align: center;font-size: 20px;">热线诉求热点问题前十</h1>
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }">
<div id="hotlineChart"></div>
</div>
</div>
<div class="no-data" v-else>
暂无数据
</div>
</div>
@ -152,6 +178,12 @@ export default {
departChart: {},
hotlineChart: {},
categoryCountShow:false,
communityCountShow:false,
departCountShow:false,
subCategoryCountShow:false,
categoryChartOption: {
tooltip: {
@ -484,38 +516,45 @@ export default {
},
methods: {
initEcharts() {
this.categoryChart = echarts.init(document.getElementById("categoryChart"));
this.categoryChart.setOption(this.categoryChartOption);
let than = this;
this.categoryChart.on("click", function (params) {
than.handelClickChart(params.name);
});
this.categoryPie= echarts.init(document.getElementById("categoryPie"));
this.categoryPie.setOption(this.categoryPieOption);
this.categoryPie.on("click", function (params) {
than.handelClickChart(params.name);
});
this.communityChart= echarts.init(document.getElementById("communityChart"));
this.communityChart.setOption(this.communityOption);
this.communityChart.on("click", function (params) {
than.handelClickChart(params.name);
});
if(this.categoryCountShow){
this.categoryChart = echarts.init(document.getElementById("categoryChart"));
this.categoryChart.setOption(this.categoryChartOption);
let than = this;
this.categoryChart.on("click", function (params) {
than.handelClickChart(params.name);
});
this.departChart= echarts.init(document.getElementById("departChart"));
this.departChart.setOption(this.departOption);
this.departChart.on("click", function (params) {
than.handelClickChart(params.name);
});
this.categoryPie= echarts.init(document.getElementById("categoryPie"));
this.categoryPie.setOption(this.categoryPieOption);
this.categoryPie.on("click", function (params) {
than.handelClickChart(params.name);
});
}
this.hotlineChart= echarts.init(document.getElementById("hotlineChart"));
this.hotlineChart.setOption(this.hotlineChartOption);
this.hotlineChart.on("click", function (params) {
than.handelClickChart(params.name);
if(this.communityCountShow){
this.communityChart= echarts.init(document.getElementById("communityChart"));
this.communityChart.setOption(this.communityOption);
this.communityChart.on("click", function (params) {
than.handelClickChart(params.name);
});
}
if(this.departCountShow){
this.departChart= echarts.init(document.getElementById("departChart"));
this.departChart.setOption(this.departOption);
this.departChart.on("click", function (params) {
than.handelClickChart(params.name);
});
}
if(this.subCategoryCountShow){
this.hotlineChart= echarts.init(document.getElementById("hotlineChart"));
this.hotlineChart.setOption(this.hotlineChartOption);
this.hotlineChart.on("click", function (params) {
than.handelClickChart(params.name);
});
}
window.addEventListener("resize", this.handleWindowResize);
@ -658,6 +697,23 @@ export default {
return item;
})
: [];
if (this.report && this.report. categoryCount && Object.keys(this.report. categoryCount).length > 0) {
this.categoryCountShow = true;
}
if (this.report && this.report. communityCount && Object.keys(this.report. communityCount).length > 0) {
this.communityCountShow = true;
}
if (this.report && this.report.departCount && Object.keys(this.report.departCount).length > 0) {
this.departCountShow = true;
}
if (this.report && this.report.subCategoryCount && Object.keys(this.report.subCategoryCount).length > 0) {
this.subCategoryCountShow = true;
}
},
},
@ -712,6 +768,15 @@ export default {
margin-bottom: 20px; /* 设置标题与下方内容的间距 */
}
.no-data {
display: flex;
justify-content: center;
align-items: center;
height: 200px; /* 调整高度以适应你的需要 */
color: #888; /* 灰色字体颜色 */
font-size: 20px; /* 字体大小 */
}
</style>

38
src/views/modules/home/index.vue

@ -36,11 +36,25 @@
<div class="cnt">
<div class="cnt-left">
<div class="subtitle">
<img src="@/assets/images/index/i-sqjj.png" />
<span>组织简介</span>
<img src="@/assets/images/index/i-sqjj.png"/>
<span>{{agencyLevel!='district'?agencyLevel=='street'?'街道':agencyLevel=='community'?'社区':agencyLevel=='grid'?'网格':'组织':'组织'}}简介 </span>
</div>
<p>
{{ pandectData.deptName }}<span v-if="pandectData.gridCount">划分为{{ pandectData.underCount }}{{ pandectData.underName }}</span> 现有房屋{{ pandectData.homeCount }}自住房屋{{ pandectData.selfStay }}出租房屋{{ pandectData.rentOut }}闲置房屋{{ pandectData.vacantHouse }}现有居民{{ pandectData.resiCount }}{{ pandectData.totalResidents }}其中常住人口{{ pandectData.permanentResiCount }}流动人口{{ pandectData.floatingResiCount }}各类群体分布如下
{{ pandectData.deptName }}<span v-if="pandectData.gridCount">划分为 <b>{{
pandectData.underCount
}}</b> <b>{{
pandectData.underName
}}</b> </span> 现有房屋 <b>{{ pandectData.homeCount }}</b> 自住房屋 <b>{{
pandectData.selfStay
}}</b> 出租房屋 <b>{{
pandectData.rentOut
}}</b> 闲置房屋 <b>{{
pandectData.vacantHouse
}}</b> 现有居民 <b>{{ pandectData.resiCount }}</b> <b>{{
pandectData.totalResidents
}}</b> 其中常住人口 <b>{{ pandectData.permanentResiCount }}</b> 流动人口 <b>{{
pandectData.floatingResiCount
}}</b> 各类群体分布如下
</p>
<div class="subtitle">
@ -76,7 +90,8 @@
</div>
</div>
</el-tab-pane>
<el-tab-pane label="智能预测" name="zhineng">
<!-- <el-tab-pane label="智能预测"
name="zhineng">
<div class="cnt-right">
<div class="list">
<div class="item" :key="item.code" v-for="(item, index) in znycCategory.list">
@ -96,7 +111,7 @@
</div>
</div>
</div>
</el-tab-pane>
</el-tab-pane> -->
</el-tabs>
</div>
</div>
@ -206,7 +221,8 @@ export default {
activeName: "resi",
myChart: {},
};
agencyLevel:'',
}
},
computed: {
maxTableHeight() {
@ -234,9 +250,13 @@ export default {
mounted() {
this.getApiData();
this.$nextTick(() => {
this.initChart();
});
console.log("dynamicMenuRoutes----------------------------", this.$store.state.sidebarMenuList);
this.initChart()
})
this.agencyLevel = localStorage.getItem("level", data.level);
console.log(
"dynamicMenuRoutes----------------------------",
this.$store.state.sidebarMenuList
);
},
methods: {
initChart() {

2
src/views/modules/satisfaction/communitySelfInsp/formList.vue

@ -22,7 +22,7 @@
</el-form>
<el-table class="m-table-item" :data="tableData" style="width: 100%">
<el-table class="m-table-item" :data="tableData" style="width: 100%" border>
<el-table-column label="序号" header-align="center" align="center" type="index" width="50"></el-table-column>
<el-table-column label="填写时间" prop="createdTime" header-align="center" align="center" type="index"
width="100"></el-table-column>

2
src/views/modules/satisfaction/detail/index.vue

@ -78,7 +78,7 @@
<el-button @click="handleCancalDiffcult" class="diy-button--red" size="small">批量取消风险</el-button>
</div>
<el-table :data="tableData" class="m-table-item" style="width: 100%"
@selection-change="handleSelectionChange" :height="maxTableHeight">
@selection-change="handleSelectionChange" :height="maxTableHeight" border>
<el-table-column label="" fixed="left" type="selection" align="center" width="50" />
<el-table-column label="序号" fixed="left" type="index" align="center" width="50" />
<el-table-column prop="name" align="center" label="姓名" />

2
src/views/modules/satisfaction/satisfactionProvince/formList.vue

@ -9,7 +9,7 @@
</el-select>
</el-form-item>
</el-form>
<el-table class="m-table-item" :data="tableData" style="width: 100%">
<el-table class="m-table-item" :data="tableData" style="width: 100%" border>
<el-table-column label="序号" header-align="center" align="center" type="index" width="50"></el-table-column>
<el-table-column label="街道" prop="streetName" header-align="center" align="center" show-overflow-tooltip
width="50"></el-table-column>

2
src/views/modules/shequzhili/event/eventList.vue

@ -123,7 +123,7 @@
</div>
<el-table :data="tableData" class="m-table-item" style="width: 100%"
@selection-change="handleSelectionChange" :height="maxTableHeight">
@selection-change="handleSelectionChange" :height="maxTableHeight" border>
<el-table-column label="" fixed="left" type="selection" align="center" width="50" />
<el-table-column label="序号" fixed="left" type="index" align="center" width="50" />
<el-table-column prop="workOrderNum" align="center" label="工单号" :show-overflow-tooltip="true" />

Loading…
Cancel
Save