Browse Source

Merge branch 'dev' into jw_feature_dev

V1.0
张若晨 2 years ago
parent
commit
ad8a979f93
  1. 2
      src/router/index.js
  2. 39
      src/views/components/resiForm.vue
  3. 42
      src/views/dataBoard/renfang/index.vue
  4. 13
      src/views/modules/base/community/communityForm.vue
  5. 16
      src/views/modules/base/resi.vue
  6. 1
      src/views/modules/base/virtualResi.vue
  7. 2
      src/views/modules/communityParty/partyOrg/update.vue
  8. 3
      src/views/modules/communityParty/regionalParty/unitsForm.vue
  9. 653
      src/views/modules/portrayal/jumin/cpts/rightTop.vue
  10. 28
      src/views/modules/portrayal/loudong/cpts/buildingTable.vue
  11. 28
      src/views/modules/portrayal/loudong/cpts/house.vue
  12. 28
      src/views/modules/portrayal/loudong/cpts/unit.vue
  13. 2
      src/views/modules/satisfaction/communitySelfInsp/index.vue
  14. 9
      src/views/modules/satisfaction/satisfactionProvince/formList.vue
  15. 868
      src/views/modules/satisfaction/satisfactionProvince/index.vue
  16. 2
      src/views/modules/shequzhili/event/cpts/event-info.vue
  17. 4
      src/views/modules/shequzhili/event/eventList.vue
  18. 1190
      src/views/modules/shequzhili/eventOld/cpts/add.vue
  19. 2
      src/views/modules/shequzhili/eventOld/cpts/event-detail.vue
  20. 128
      src/views/modules/shequzhili/eventOld/cpts/event-info.vue
  21. 161
      src/views/modules/shequzhili/eventOld/cpts/process-form-designate.vue
  22. 39
      src/views/modules/shequzhili/eventOld/cpts/process-form-replay-end.vue
  23. 253
      src/views/modules/shequzhili/eventOld/cpts/process-form.vue
  24. 8
      src/views/modules/shequzhili/eventOld/eventList.vue

2
src/router/index.js

@ -539,7 +539,7 @@ export const dataBoardRoutes = {
component: () => import("@/views/dataBoard/satisfactionEval/index"),
name: "dataBoard-satisfactionEval-index",
meta: {
title: "满意度评价",
title: "群众满意度",
isTab: false,
},
},

39
src/views/components/resiForm.vue

@ -436,7 +436,7 @@ export default {
this.handleNextOrgTreeClick(node, resolve)
},
checkStrictly: true,
multiple: false
multiple: false,
},
activeName: 'groupeduInfoDto',
validateFlag: null,
@ -552,8 +552,9 @@ export default {
{ label: '残疾', value: '0', formName: "disabilityFlag" },
{ label: '大病', value: '0', formName: "seriousIllnessFlag" },
{ label: '慢病', value: '0', formName: "chronicDiseaseFlag" },
{ label: '公益岗人员', value: '0', formName: "publicWelfareFlag" }
{ label: '公益岗人员', value: '0', formName: "publicWelfareFlag" },
{ label: '楼长', value: '0', formName: "buildingChiefFlag" },
{ label: '单元长', value: '0', formName: "unitChiefFlag" }
]
}
],
@ -1398,6 +1399,8 @@ export default {
disabilityFlag: '0',//
seriousIllnessFlag: '0', //
chronicDiseaseFlag: '0', //
buildingChiefFlag: '0', //
unitChiefFlag: '0', //
eduInfoDto: { //
cultureLevel: '',
@ -1718,25 +1721,22 @@ export default {
})
},
async handleNextOrgTreeClick (node,resolve) {
console.log(node,resolve);
await this.getTreeChildenList(node,resolve)
},
async getTreeChildenList (node, resolve) {
if (node.data.partyOrgLevel === 7) {
resolve([]); //
if (node.data.partyOrgLevel === 7 ) {
resolve(null);
return;
}
}
const url = "/actual/base/party/org/listNextLevelPartyOrgTreeNodesByPid"
console.log('级联', node.value)
let params = {
partyOrgPid: node.data.id
}
const { data, code, msg } = await requestGet(url, params)
if (code === 0) {
data.forEach(item => {
if (item.partyOrgLevel === 7) {
item.children = null; // item.children = [];
}
item.children = null;
item.leaf = item.partyOrgLevel === 7 || item.childrenQty === 0
});
resolve(data)
} else {
@ -2312,7 +2312,8 @@ export default {
this.form.floatingFlag = data.categoryInfo.floatingFlag.toString()
this.form.liveAloneFlag = data.categoryInfo.liveAloneFlag.toString()
this.form.publicWelfareFlag = data.categoryInfo.publicWelfareFlag.toString()
this.form.publicWelfareFlag = data.categoryInfo.publicWelfareFlag.toString()
this.form.buildingChiefFlag = data.categoryInfo.buildingChiefFlag.toString()
this.form.unitChiefFlag = data.categoryInfo.unitChiefFlag.toString()
if (this.form.partyFlag == '1') this.tabsList.push({ label: '党员', id: '0', groupId: 'parymemberInfoDto' })
if (this.form.ensureHouseFlag == '1') this.tabsList.push({ label: '保障房信息', id: '1', groupId: 'ensureHouseDto' })
@ -2331,7 +2332,7 @@ export default {
villageId, birthday, gender, idType, idNum, localResidenceFlag, mobile, name, nation, nationality, remark,
partyFlag, subsistenceAllowanceFlag, ensureHouseFlag, unemployedFlag, fertileWomanFlag, veteranFlag, unitedFrontFlag,
petitionOfficerFlag, volunteerFlag, oldPeopleFlag, emptyNesterFlag, specialSupportFlag, disabledFlag,
dementedFlag, disabilityFlag, seriousIllnessFlag, chronicDiseaseFlag, specialCrowdFlag, tenantFlag, floatingFlag, liveAloneFlag, publicWelfareFlag } = this.form
dementedFlag, disabilityFlag, seriousIllnessFlag, chronicDiseaseFlag, specialCrowdFlag, tenantFlag, floatingFlag, liveAloneFlag, publicWelfareFlag,buildingChiefFlag, unitChiefFlag} = this.form
this.newForm = {
categoryId,
resiId,
@ -2375,7 +2376,8 @@ export default {
floatingFlag,
liveAloneFlag,
publicWelfareFlag,
buildingChiefFlag,
unitChiefFlag,
}
},
//
@ -2863,7 +2865,9 @@ export default {
this.newForm.disabilityFlag = this.form.disabilityFlag,
this.newForm.seriousIllnessFlag = this.form.seriousIllnessFlag,
this.newForm.chronicDiseaseFlag = this.form.chronicDiseaseFlag,
this.newForm.publicWelfareFlag = this.form.publicWelfareFlag
this.newForm.publicWelfareFlag = this.form.publicWelfareFlag,
this.newForm.buildingChiefFlag = this.form.buildingChiefFlag,
this.newForm.unitChiefFlag = this.form.unitChiefFlag
if (this.newForm.eduInfoDto) {
this.newForm.eduInfoDto = this.form.eduInfoDto
@ -2936,7 +2940,7 @@ export default {
this.newForm.specialSupportDto = this.form.specialSupportDto
}
}
},
}
}
</script>
@ -2979,4 +2983,7 @@ export default {
.item-agency {
width: 400px;
}
::v-deep .no-expand>:nth-child(1) .cell .el-table__expand-icon{
display: none;
}
</style>

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

@ -722,31 +722,25 @@ export default {
//
async getResiCategoryData() {
const url = "resident_class_statics";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id: this.orgId,
},
},
{
// mockId: 60031937,
}
);
const url = "/actual/base/resiCategory/categoryCountList";
let params = {
// id: this.orgData.id,
// level: "agency",
};
const { data, code, msg } = await requestGet(url, params);
if (code === 0) {
this.resiCategoryData = data.map((item) => {
return {
code: item.label_id,
name: item.label,
count: item.count,
ratio: item.ratio,
growth: item.growth,
growthAbs: Math.abs(item.growth),
};
});
if (data) {
this.resiCategoryData = data.categoryList.map((item) => {
return {
code: item.categoryName,
name: resiCategoryMap[item.categoryName] || "",
count: item.categoryCount,
ratio: ((100 * item.categoryCount) / data.resiCount).toFixed(0),
growth: 0,
growthAbs: Math.abs(item.growth),
};
});
}
} else {
this.$message.error(msg);
}

13
src/views/modules/base/community/communityForm.vue

@ -168,7 +168,9 @@ export default {
// label: 'agencyName',
// value: 'agencyId',
lazy: true,
lazyLoad: this.lazyLoadAgency
lazyLoad:(node, resolve) => {
this.lazyLoadAgency(node, resolve)
},
},
userAgencyId: '',
}
@ -182,10 +184,8 @@ export default {
},
methods: {
lazyLoadAgency(node, resolve) {
setTimeout(() => {
this.getAgency(node, resolve)
}, 200)
async lazyLoadAgency(node, resolve) {
await this.getAgency(node, resolve)
},
async getAgency(node, resolve) {
const url = "/gov/org/agency/dynamicOrgTreeWithDepth"
@ -206,8 +206,9 @@ export default {
label: item.name,
level: item.agencyLevel,
orgType: item.orgType,
leaf: node.level >= 4 // 5
leaf: item.orgType == 'grid' // 5
}))
console.log(nodes);
resolve(nodes)
} else {
this.$message.error(msg)

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

@ -210,6 +210,16 @@
? "志愿者 "
: ""
}}
{{
scope.row.categoryInfo.buildingChiefFlag == 1
? "楼长 "
: ""
}}
{{
scope.row.categoryInfo.unitChiefFlag == 1
? "单元长 "
: ""
}}
</div>
</template>
</div>
@ -975,6 +985,11 @@ export default {
_baseForm.disabledFlag = parseInt(_baseForm.disabledFlag); //
_baseForm.dementedFlag = parseInt(_baseForm.dementedFlag); //
_baseForm.disabilityFlag = parseInt(_baseForm.disabilityFlag); //
_baseForm.buildingChiefFlag = parseInt(_baseForm.buildingChiefFlag); //
_baseForm.unitChiefFlag = parseInt(_baseForm.unitChiefFlag); //
_baseForm.seriousIllnessFlag = parseInt(
_baseForm.seriousIllnessFlag
); //
@ -1092,7 +1107,6 @@ export default {
},
async getTableData(obj) {
console.log(this.currentPage);
let params = {
pageNo: this.currentPage,
pageSize: this.pageSize,

1
src/views/modules/base/virtualResi.vue

@ -1083,7 +1083,6 @@ export default {
},
async getTableData(obj) {
console.log(this.currentPage);
let params = {
pageNo: this.currentPage,
pageSize: this.pageSize,

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

@ -168,12 +168,14 @@ export default {
this.dataForm.principalId = partyOrgInfo.principalId;
console.log(this.principals)
console.log(this.dataForm.principalId )
this.$nextTick(()=>{
if (!map) {
this.initMap(this.dataForm.latitude, this.dataForm.longitude);
} else {
map.setCenter(this.dataForm.latitude, this.dataForm.longitude);
map.setMarker(this.dataForm.latitude, this.dataForm.longitude);
}
})
},
//

3
src/views/modules/communityParty/regionalParty/unitsForm.vue

@ -480,6 +480,9 @@ export default {
longitude: [
{ required: true, message: "坐标不能为空", trigger: "blur" },
],
serviceMatterList:[
{ required: true, message: "服务事项不能为空", trigger: "blur" },
]
};
},
},

653
src/views/modules/portrayal/jumin/cpts/rightTop.vue

@ -1,90 +1,128 @@
<template>
<div class=''>
<el-tabs v-model="topTabs" @tab-click="tabClick">
<el-tab-pane :label="complainLabel" name="12345">
<complain :tableData="complainList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ complainTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="complainTotal">
</el-pagination></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="shengLabel" name="sheng">
<sheng :tableData="shengList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ shengTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="shengTotal">
</el-pagination></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="shequLabel" name="shequ">
<shequ :tableData="shequList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ shequTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="shequTotal">
</el-pagination></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="shijianLabel" name="shijian">
<shijian :tableData="shijianList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ shijianTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="shijianTotal">
</el-pagination></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="xuqiuLabel" name="xuqiu">
<xuqiu :tableData="xuqiuList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ xuqiuTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="xuqiuTotal">
</el-pagination></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="fuwuLabel" name="fuwu">
<div style="display: flex; flex-direction: column; height: 100%;">
<fuwu :tableData="fuwuList" :key="resiId[0]" style="flex: 1; overflow: auto;" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ fuwuTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="fuwuTotal">
</el-pagination>
</el-col>
</el-row>
</div>
</el-tab-pane>
</el-tabs>
</div>
<div class="">
<el-tabs v-model="topTabs" @tab-click="tabClick">
<el-tab-pane :label="complainLabel" name="12345">
<complain :tableData="complainList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ complainTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-size="pageSize"
layout="prev, pager, next, jumper"
:total="complainTotal"
>
</el-pagination
></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="shengLabel" name="sheng">
<sheng :tableData="shengList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ shengTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-size="pageSize"
layout="prev, pager, next,jumper"
:total="shengTotal"
>
</el-pagination
></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="shequLabel" name="shequ">
<shequ :tableData="shequList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ shequTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-size="pageSize"
layout="prev, pager, next, jumper"
:total="shequTotal"
>
</el-pagination
></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="shijianLabel" name="shijian">
<shijian :tableData="shijianList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ shijianTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-size="pageSize"
layout="prev, pager, next, jumper"
:total="shijianTotal"
>
</el-pagination
></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="xuqiuLabel" name="xuqiu">
<xuqiu :tableData="xuqiuList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ xuqiuTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-size="pageSize"
layout="prev, pager, next, jumper"
:total="xuqiuTotal"
>
</el-pagination
></el-col>
</el-row>
</el-tab-pane>
<el-tab-pane :label="fuwuLabel" name="fuwu">
<div style="display: flex; flex-direction: column; height: 100%">
<fuwu
:tableData="fuwuList"
:key="resiId[0]"
style="flex: 1; overflow: auto"
/>
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ fuwuTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-size="pageSize"
layout="prev, pager, next, jumper"
:total="fuwuTotal"
>
</el-pagination>
</el-col>
</el-row>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
@ -95,238 +133,249 @@ import shijian from "./table/shijian";
import xuqiu from "./table/xuqiu";
import fuwu from "./table/fuwu";
export default {
//
data() {
return {
topTabs: '12345',
//
data() {
return {
topTabs: "12345",
complainTotal: 0,
complainList: [],
complainLabel: '',
complainTotal: 0,
complainList: [],
complainLabel: "",
shengLabel: '',
shengList: [],
shengTotal: 0,
shengLabel: "",
shengList: [],
shengTotal: 0,
shequLabel: '',
shequList: [],
shequTotal: 0,
shequLabel: "",
shequList: [],
shequTotal: 0,
shijianLabel: '',
shijianList: [],
shijianTotal: 0,
shijianLabel: "",
shijianList: [],
shijianTotal: 0,
xuqiuLabel: '',
xuqiuList: [],
xuqiuTotal: 0,
xuqiuLabel: "",
xuqiuList: [],
xuqiuTotal: 0,
fuwuLabel: '',
fuwuList: [],
fuwuTotal: 0,
fuwuLabel: "",
fuwuList: [],
fuwuTotal: 0,
pageNo: 1,
pageSize: 20
};
},
//
created() {
if (this.type == '0') {
this.resiId = [this.userInfo.resiId]
} else if (this.type == '1') {
this.resiId = this.familyResiList
}
pageNo: 1,
pageSize: 20,
};
},
//
created() {
if (this.type == "0") {
this.resiId = [this.userInfo.resiId];
} else if (this.type == "1") {
this.resiId = this.familyResiList;
}
},
async mounted() {
await this.getComplainList();
await this.getShengList();
await this.getShequList();
await this.getshijianList();
await this.getxuqiuList();
await this.getfuwuList();
},
props: {
userInfo: {
type: Object,
default: () => {},
},
async mounted() {
await this.getComplainList()
await this.getShengList()
await this.getShequList()
await this.getshijianList()
await this.getxuqiuList()
await this.getfuwuList()
familyResiList: {
type: Array,
default: () => [],
},
props: {
userInfo: {
type: Object,
default: () => { }
},
familyResiList: {
type: Array,
default: () => []
},
type: {
type: String,
default: '0'
}
type: {
type: String,
default: "0",
},
//
methods: {
tabClick(index) {
},
handleSizeChange() {
},
handleCurrentChange() {
},
//
methods: {
tabClick(index) {},
handleSizeChange() {},
handleCurrentChange() {},
getComplainList() {
if (this.resiId.length == 0) {
this.complainList = [];
this.complainLabel = `12345投诉(0)`;
return;
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
eventType: "3",
};
const statusArr = {
processing: "处理中",
closed_case: "已办结",
};
const marktypes = ["普通事件", "难点读点", "矛盾纠纷", "自身问题"];
},
getComplainList() {
if (this.resiId.length == 0) {
this.complainList = []
this.complainLabel = `12345投诉(0)`
return
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
eventType: "3",
}
const statusArr = {
processing: "处理中",
closed_case: "已办结",
//
this.$http
.post("/actual/base/peopleRoomOverview/eventPageList", parm)
.then(({ data: res }) => {
this.complainList = res.data.list.map((item) => {
return {
...item,
status: item.status ? statusArr[item.status] : null,
marktype: marktypes[item.marktype],
};
const marktypes = ["普通事件", "难点读点", "矛盾纠纷", "自身问题"];
//
this.$http.post("/actual/base/peopleRoomOverview/eventPageList", parm).then(({ data: res }) => {
this.complainList = res.data.list.map((item) => {
return {
...item,
status: item.status ? statusArr[item.status] : null,
marktype: marktypes[item.marktype],
};
});
this.complainTotal = res.data.total;
});
this.complainTotal = res.data.total;
this.complainLabel = `12345投诉(${this.complainTotal}`
});
},
getShengList() {
if (this.resiId.length == 0) {
this.shengList = []
this.shengLabel = `省满意度调查(0)`
return
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
//
this.$http.post("/actual/base/peopleRoomOverview/provincialSatisfactionPageList", parm).then(({ data: res }) => {
this.shengList = res.data;
this.shengTotal = res.data.length;
this.shengLabel = `省满意度调查(${this.shengTotal}`
});
},
getShequList() {
if (this.resiId.length == 0) {
this.shequList = []
this.shequLabel = `社区满意度自查(0)`
return
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
const completeFlags = {
"-2": "未知",
"-1": "不接受回访",
0: "接受回访/待回访",
1: "已回访",
this.complainLabel = `12345投诉(${this.complainTotal}`;
});
},
getShengList() {
if (this.resiId.length == 0) {
this.shengList = [];
this.shengLabel = `省满意度调查(0)`;
return;
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
};
//
this.$http
.post(
"/actual/base/peopleRoomOverview/provincialSatisfactionPageList",
parm
)
.then(({ data: res }) => {
this.shengList = res.data;
this.shengTotal = res.data.length;
this.shengLabel = `省满意度调查(${this.shengTotal}`;
});
},
getShequList() {
if (this.resiId.length == 0) {
this.shequList = [];
this.shequLabel = `社区满意度自查(0)`;
return;
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
};
const completeFlags = {
"-2": "未知",
"-1": "不接受回访",
0: "接受回访/待回访",
1: "已回访",
};
this.$http
.post(
"/actual/base/peopleRoomOverview/communitySatisfactionPageList",
parm
)
.then(({ data: res }) => {
this.shequList = res.data.map((item) => {
return {
...item,
completeFlag: completeFlags[item.completeFlag],
};
});
this.shequTotal = this.shequList.length;
this.shequLabel = `社区满意度自查(${this.shequTotal}`;
});
},
getshijianList() {
if (this.resiId.length == 0) {
this.shijianList = [];
this.shijianLabel = `上报事件(0)`;
return;
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
};
const statusArr = {
processing: "处理中",
closed_case: "已办结",
};
const marktypes = ["普通事件", "难点读点", "矛盾纠纷", "自身问题"];
this.$http
.post("/actual/base/peopleRoomOverview/eventPageList", parm)
.then(({ data: res }) => {
this.shijianList = res.data.list.map((item) => {
return {
...item,
status: item.status ? statusArr[item.status] : null,
marktype: marktypes[item.marktype],
};
this.$http.post("/actual/base/peopleRoomOverview/communitySatisfactionPageList", parm).then(({ data: res }) => {
this.shequList = res.data.map((item) => {
return {
...item,
completeFlag: completeFlags[item.completeFlag],
};
});
this.shequTotal = this.shequList.length;
this.shequLabel = `社区满意度自查(${this.shequTotal}`
});
},
getshijianList() {
if (this.resiId.length == 0) {
this.shijianList = []
this.shijianLabel = `上报事件(0)`
return
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
const statusArr = {
processing: "处理中",
closed_case: "已办结",
});
this.shijianTotal = this.shijianList.length;
this.shijianLabel = `上报事件(${this.shijianTotal}`;
});
},
getxuqiuList() {
if (this.resiId.length == 0) {
this.xuqiuList = [];
this.xuqiuLabel = `居民需求(0)`;
return;
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
};
//
this.$http
.post("/actual/base/peopleRoomOverview/demandOfResidentsPageList", parm)
.then(({ data: res }) => {
this.xuqiuList = res.data.map((item) => {
return {
...item,
};
});
this.xuqiuTotal = this.xuqiuList.length;
this.xuqiuLabel = `居民需求(${this.xuqiuTotal}`;
});
},
getfuwuList() {
if (this.resiId.length == 0) {
this.fuwuList = [];
this.fuwuLabel = `社区服务(0)`;
return;
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize,
};
this.$http
.post("/actual/base/peopleRoomOverview/communityServicePageList", parm)
.then(({ data: res }) => {
this.fuwuList = res.data.map((item) => {
return {
...item,
};
const marktypes = ["普通事件", "难点读点", "矛盾纠纷", "自身问题"];
this.$http.post("/actual/base/peopleRoomOverview/eventPageList", parm).then(({ data: res }) => {
this.shijianList = res.data.list.map((item) => {
return {
...item,
status: item.status ? statusArr[item.status] : null,
marktype: marktypes[item.marktype],
};
});
this.shijianTotal = this.shijianList.length;
this.shijianLabel = `上报事件(${this.shijianTotal}`
});
},
getxuqiuList() {
if (this.resiId.length == 0) {
this.xuqiuList = []
this.xuqiuLabel = `居民需求(0)`
return
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
//
this.$http.post("/actual/base/peopleRoomOverview/demandOfResidentsPageList", parm).then(({ data: res }) => {
this.xuqiuList = res.data.map((item) => {
return {
...item,
};
});
this.xuqiuTotal = this.xuqiuList.length;
this.xuqiuLabel = `居民需求(${this.xuqiuTotal}`
});
},
getfuwuList() {
if (this.resiId.length == 0) {
this.fuwuList = []
this.fuwuLabel = `社区服务(0)`
return
}
let parm = {
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
this.$http.post("/actual/base/peopleRoomOverview/communityServicePageList", parm).then(({ data: res }) => {
this.fuwuList = res.data.map((item) => {
return {
...item,
};
});
this.fuwuTotal = this.fuwuList.length;
this.fuwuLabel = `社区服务(${this.fuwuTotal}`
});
},
});
this.fuwuTotal = this.fuwuList.length;
this.fuwuLabel = `社区服务(${this.fuwuTotal}`;
});
},
//
components: { complain, sheng, fuwu, shijian, xuqiu, shequ },
//
computed: {},
//
watch: {},
}
},
//
components: { complain, sheng, fuwu, shijian, xuqiu, shequ },
//
computed: {},
//
watch: {},
};
</script>
<style lang="less" scoped></style>

28
src/views/modules/portrayal/loudong/cpts/buildingTable.vue

@ -1,28 +0,0 @@
<template>
<div class=''>
</div>
</template>
<script>
export default {
//
data() {
return {};
},
//
created() { },
//
methods: {},
//
components: {},
//
computed: {},
//
watch: {},
}
</script>
<style lang="scss" scoped>
</style>

28
src/views/modules/portrayal/loudong/cpts/house.vue

@ -1,28 +0,0 @@
<template>
<div class=''>
</div>
</template>
<script>
export default {
//
data() {
return {};
},
//
created() { },
//
methods: {},
//
components: {},
//
computed: {},
//
watch: {},
}
</script>
<style lang="scss" scoped>
</style>

28
src/views/modules/portrayal/loudong/cpts/unit.vue

@ -1,28 +0,0 @@
<template>
<div class=''>
</div>
</template>
<script>
export default {
//
data() {
return {};
},
//
created() { },
//
methods: {},
//
components: {},
//
computed: {},
//
watch: {},
}
</script>
<style lang="scss" scoped>
</style>

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

@ -344,7 +344,7 @@ export default {
this.option.series[2].data.push(item.badQty)
this.option.xAxis.data.push(item.satisfactionCategoryName)
this.satisfactionCategory.push(item.satisfactionCategory)
this.score.push({ score: item.score, satisfactionCategoryName: item.satisfactionCategoryName, imgUrl: require(`../../../../assets/img/satisfaction/${item.satisfactionCategory}.png`) });
this.score.push({ score: item.score, satisfactionCategoryName: item.satisfactionCategoryName, imgUrl: require(`@/assets/img/satisfaction/${item.satisfactionCategory}.png`) });
}
});
this.myChart.setOption(this.option);

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

@ -96,11 +96,9 @@ export default {
//
created() { },
async mounted() {
if (this.satisfactionCategoryStr) {
this.formData.scopeId = this.satisfactionCategoryStr
this.formData.scopeId = this.formObj.scopeId
this.formData.periodStart = this.formObj.periodStart
this.formData.orgCategoryCode = this.formObj.orgCategoryCode
}
await this.loadAgency();
await this.getDicts()
await this.getTableData()
@ -215,10 +213,7 @@ export default {
//
computed: {},
props: {
satisfactionCategoryStr: {
type: String,
default: ''
},
formObj: {
type: Object,
default: () => {}

868
src/views/modules/satisfaction/satisfactionProvince/index.vue

@ -1,59 +1,59 @@
<template>
<div class="g-main">
<div>
<div class="m-search">
<el-form :inline="true" :model="formData" ref="ref_searchform" :label-width="'100px'">
<el-form-item label="自评周期">
<el-date-picker v-model="formData.periodStart" type="month" value-format="yyyy-MM" placeholder="选择日期"
style="width: 202px" clearable>
</el-date-picker>
</el-form-item>
<div style="float: right; margin-top:5px">
<el-button style="margin-left: 30px" size="small" type="primary "
@click="handleSearch">查询</el-button>
<el-button style="margin-left: 10px" is-plain class="diy-button--white el-button--default"
size="small" @click="resetSearch">重置</el-button>
</div>
</el-form>
</div>
<div class="m-table">
<div class="div_btn">
<el-upload :headers="$getElUploadHeaders()" ref="upload" class="upload-btn" action="uploadUlr"
:limit="1" :accept="'.xls,.xlsx'" :with-credentials="true" :show-file-list="false"
:auto-upload="true" :before-upload="beforeExcelUpload" :http-request="uploadHttpRequest">
<el-button type="primary" size="small" class="diy-button--white el-button--default"
:loading="importLoading">导入</el-button>
</el-upload>
<el-button type="primary" style="margin-left:10px" size="small"
class="diy-button--white el-button--default" @click="handleExportModule">下载模板</el-button>
</div>
<el-radio-group v-model="formData.orgCategoryCode" @change="handelChangeCategory" style="margin: 20px 0 0;">
<el-radio-button label="province">省满意度调查</el-radio-button>
<el-radio-button label="city">市满意度调查</el-radio-button>
<el-radio-button label="district">区满意度调查</el-radio-button>
</el-radio-group>
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }">
<div id="myCharts"></div>
</div>
</div>
</div>
<el-dialog v-if="showFormList" :visible.sync="showFormList" :close-on-click-modal="false"
:close-on-press-escape="false" title="省满意度调查列表" :modal-append-to-body="false" width="820px" top="5vh"
class="dialog-h" @closed="showFormList = false">
<form-list ref="ref_form_list" @handleClose="handleClose" :satisfactionCategoryStr="satisfactionCategoryStr"
:formObj="formData" @handelClickDetail="handelClickDetail"
@handelClickEdit="handelClickEdit"></form-list>
<el-dialog width="820px" class="dialog-h" title="省满意度调查详情" :close-on-click-modal="false"
v-if="showProvinceFollowUpDetail" :visible.sync="showProvinceFollowUpDetail" append-to-body>
<follow-detail :detailObj="detailObj" :formType="formType"
@handleCancle="showProvinceFollowUpDetail = false" @handleComfirm="handleComfirm"></follow-detail>
</el-dialog>
</el-dialog>
</div>
<div class="g-main">
<div>
<div class="m-search">
<el-form :inline="true" :model="formData" ref="ref_searchform" :label-width="'100px'">
<el-form-item label="自评周期">
<el-date-picker v-model="formData.periodStart" type="month" value-format="yyyy-MM" placeholder="选择日期"
style="width: 202px" clearable>
</el-date-picker>
</el-form-item>
<div style="float: right; margin-top:5px">
<el-button style="margin-left: 30px" size="small" type="primary "
@click="handleSearch">查询</el-button>
<el-button style="margin-left: 10px" is-plain class="diy-button--white el-button--default"
size="small" @click="resetSearch">重置</el-button>
</div>
</el-form>
</div>
<div class="m-table">
<div class="div_btn">
<el-upload :headers="$getElUploadHeaders()" ref="upload" class="upload-btn" action="uploadUlr"
:limit="1" :accept="'.xls,.xlsx'" :with-credentials="true" :show-file-list="false"
:auto-upload="true" :before-upload="beforeExcelUpload" :http-request="uploadHttpRequest">
<el-button type="primary" size="small" class="diy-button--white el-button--default"
:loading="importLoading">导入</el-button>
</el-upload>
<el-button type="primary" style="margin-left:10px" size="small"
class="diy-button--white el-button--default" @click="handleExportModule">下载模板</el-button>
</div>
<el-radio-group v-model="formData.orgCategoryCode" @change="handelChangeCategory" style="margin: 20px 0 0;">
<el-radio-button label="province">省满意度调查</el-radio-button>
<el-radio-button label="city">市满意度调查</el-radio-button>
<el-radio-button label="district">区满意度调查</el-radio-button>
</el-radio-group>
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }">
<div id="myCharts"></div>
</div>
</div>
</div>
<el-dialog v-if="showFormList" :visible.sync="showFormList" :close-on-click-modal="false"
:close-on-press-escape="false" title="省满意度调查列表" :modal-append-to-body="false" width="820px" top="5vh"
class="dialog-h" @closed="showFormList = false">
<form-list ref="ref_form_list" @handleClose="handleClose" :satisfactionCategoryStr="satisfactionCategoryStr"
:formObj="formData" @handelClickDetail="handelClickDetail"
@handelClickEdit="handelClickEdit"></form-list>
<el-dialog width="820px" class="dialog-h" title="省满意度调查详情" :close-on-click-modal="false"
v-if="showProvinceFollowUpDetail" :visible.sync="showProvinceFollowUpDetail" append-to-body>
<follow-detail :detailObj="detailObj" :formType="formType"
@handleCancle="showProvinceFollowUpDetail = false" @handleComfirm="handleComfirm"></follow-detail>
</el-dialog>
</el-dialog>
</div>
</template>
<script>
import { requestPost, requestGet } from "@/js/dai/request";
import { mapGetters } from "vuex";
@ -63,313 +63,313 @@ import formList from "./formList";
import util from "@js/util.js";
import followDetail from "./followDetail"
export default {
components: { formList, followDetail },
data() {
return {
searchH: 20,
showFormList: false,
formData: {
periodStart: "",
orgCategoryCode:"province"
},
multiSelection: [], //
importLoading: false,
dicts: {
satisfaction_category: []
}, //
myChart: {},
option: {
tooltip: {
trigger: 'axis'
},
legend: {
data: ['不满意'],
bottom: '10%',
icon: 'rect',
itemWidth: 20,
itemHeight: 5,
itemGap: 20,
},
grid: {
left: '3%',
right: '4%',
bottom: '25%',
containLabel: true
},
toolbox: {},
xAxis: {
type: 'category',
boundaryGap: true,
data: [],
},
yAxis: {
type: 'value',
name: '单位(个)',
min: 0,
},
series: [
{
name: '不满意',
type: 'bar',
data: [],
barWidth: 24, //
barCategoryGap: 0, // 0
itemStyle: {
color: new echarts.graphic.LinearGradient(
0, 0, 0, 1,
[
{ offset: 0, color: '#2c7cf2' }, //
{ offset: 1, color: '#80b3ff' } //
]
)
},
showBackground: true,
backgroundStyle: {
color: '#fafbfc',
opacity: "0.5"
}
},
]
},
satisfactionCategoryName: [],
satisfactionCategory: [],
score: [],
showProvinceFollowUpDetail: false,
detailObj: {},
formType: ''
};
},
computed: {
maxTableHeight() {
const h = this.clientHeight - this.searchH - 330 + this.iframeHeight;
const _h = this.clientHeight - 330 - this.searchH;
return this.$store.state.inIframe ? h : _h;
},
...mapGetters(["clientHeight", "iframeHeight"]),
},
created() {
let date = new Date()
this.formData.periodStart = util.formatDate(date, 'yyyy-MM')
},
async mounted() {
this.user = this.$store.state.user;
this.agencyId = this.user.agencyId;
await this.getDicts();
await this.getTableData();
await this.initEcharts()
},
methods: {
// --------------------------------------------------------------------------------
async getDicts() {
try {
const requests = [
this.$http.post("sys/dict/data/dictlist", {
dictType: "satisfaction_category",
}),
];
const dictKeys = ['satisfaction_category']; //
const results = await Promise.all(requests);
results.forEach((result, index) => {
if (result.data.code === 0) {
this.dicts[dictKeys[index]].push(...result.data.data);
} else {
console.log(`获取${dictKeys[index]}失败: ${result.data.msg}`);
}
});
} catch (error) {
console.log("获取字典失败: ", error);
}
},
// ------------------------------------------------------------------------------
initEcharts() {
this.myChart = echarts.init(document.getElementById('myCharts'));
this.myChart.setOption(this.option)
let than = this
this.myChart.on('click', function (params) {
than.handelClickChart(params.name)
});
window.addEventListener('resize', this.handleWindowResize);
},
handleWindowResize() {
if (this.myChart) {
this.myChart.resize();
}
},
handelClickChart(name) {
this.showFormList = true
this.satisfactionCategoryStr = this.dicts.satisfaction_category.filter(item => item.label == name)[0].value
},
handleClose() {
this.showFormList = false
},
handelClickDetail(row) {
this.formType = 'detail'
this.showProvinceFollowUpDetail = true
this.detailObj = row || {}
},
handelClickEdit(row) {
this.formType = 'edit'
this.showProvinceFollowUpDetail = true
this.detailObj = row || {}
},
handelChangeCategory(){
this.getTableData()
},
handleComfirm(form) {
this.showProvinceFollowUpDetail = false
this.save(form)
},
async save(form) {
try {
const url = '/governance/provinceEvaluationRecord/updateInfo'
form.periodName = null
const { code } = await requestPost(url, form)
if (code == 0) {
this.getTableData()
this.$refs['ref_form_list'].getTableData()
this.$message.success('保存成功')
this.showProvinceFollowUpDetail = false
}
} catch (err) {
console.log(err);
}
},
//
handleSearch(val) {
console.log(this.formData);
this.getTableData();
},
//
async getTableData() {
try {
const allowedCategories = this.dicts.satisfaction_category.map(item => item.value)
const { data } = await this.$http.post(
`/governance/provinceEvaluationRecord/staticPeopleNum`,
{ ...this.formData }
);
this.option.series[0].data = []
this.option.xAxis.data = []
this.tableData = data
this.tableData.forEach(item => {
if (allowedCategories.includes(item.scopeId)) {
this.option.series[0].data.push(item.peopleNum)
this.option.xAxis.data.push(item.scopeName)
}
});
this.myChart.setOption(this.option)
} catch (error) {
console.log(error);
}
},
async handleExportModule() {
let url = "/governance/provinceEvaluationRecord/provinceStatis/downloadImportTemplate";
let params = {};
await this.$http({
method: "get",
url,
responseType: "blob",
data: params,
})
.then((res) => {
console.log("res----dddd", res);
// this.download(res.data, title + '.xls')
if (res.headers["content-disposition"]) {
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
);
console.log("filename", fileName);
let blob = new Blob([res.data], {
type: "application/vnd.ms-excel",
});
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
} else this.$message.error("下载失败");
})
.catch((err) => {
console.log("err", err);
return this.$message.error("网络错误");
});
},
beforeExcelUpload(file) {
console.log("file", file);
const isType = file.type === "application/vnd.ms-excel";
const isTypeComputer =
file.type ===
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
const fileType = isType || isTypeComputer;
const isLt1M = file.size / 1024 / 1024 < 10;
if (!fileType) {
this.$message.error("上传文件只能是xls/xlsx格式!");
}
if (!isLt1M) {
this.$message.error("上传文件大小不能超过 10MB!");
}
return fileType && isLt1M;
},
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); //
formData.append("orgCategory",than.formData.orgCategoryCode); //
await this.$http
.post(`/governance/provinceEvaluationRecord/importDataByExcel`, 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('导入失败')
});
},
//
resetSearch() {
this.formData = {};
this.getTableData();
},
},
activated() {
this.handleWindowResize()
},
props: {},
components: { formList, followDetail },
data() {
return {
searchH: 20,
showFormList: false,
formData: {
periodStart: "",
orgCategoryCode:"province"
},
multiSelection: [], //
importLoading: false,
dicts: {
satisfaction_category: []
}, //
myChart: {},
option: {
tooltip: {
trigger: 'axis'
},
legend: {
data: ['不满意'],
bottom: '10%',
icon: 'rect',
itemWidth: 20,
itemHeight: 5,
itemGap: 20,
},
grid: {
left: '3%',
right: '4%',
bottom: '25%',
containLabel: true
},
toolbox: {},
xAxis: {
type: 'category',
boundaryGap: true,
data: [],
},
yAxis: {
type: 'value',
name: '单位(个)',
min: 0,
},
series: [
{
name: '不满意',
type: 'bar',
data: [],
barWidth: 24, //
barCategoryGap: 0, // 0
itemStyle: {
color: new echarts.graphic.LinearGradient(
0, 0, 0, 1,
[
{ offset: 0, color: '#2c7cf2' }, //
{ offset: 1, color: '#80b3ff' } //
]
)
},
showBackground: true,
backgroundStyle: {
color: '#fafbfc',
opacity: "0.5"
}
},
]
},
satisfactionCategoryName: [],
satisfactionCategory: [],
score: [],
showProvinceFollowUpDetail: false,
detailObj: {},
formType: ''
};
},
computed: {
maxTableHeight() {
const h = this.clientHeight - this.searchH - 330 + this.iframeHeight;
const _h = this.clientHeight - 330 - this.searchH;
return this.$store.state.inIframe ? h : _h;
},
...mapGetters(["clientHeight", "iframeHeight"]),
},
created() {
let date = new Date()
this.formData.periodStart = util.formatDate(date, 'yyyy-MM')
},
async mounted() {
this.user = this.$store.state.user;
this.agencyId = this.user.agencyId;
await this.getDicts();
await this.getTableData();
await this.initEcharts()
},
methods: {
// --------------------------------------------------------------------------------
async getDicts() {
try {
const requests = [
this.$http.post("sys/dict/data/dictlist", {
dictType: "satisfaction_category",
}),
];
const dictKeys = ['satisfaction_category']; //
const results = await Promise.all(requests);
results.forEach((result, index) => {
if (result.data.code === 0) {
this.dicts[dictKeys[index]].push(...result.data.data);
} else {
console.log(`获取${dictKeys[index]}失败: ${result.data.msg}`);
}
});
} catch (error) {
console.log("获取字典失败: ", error);
}
},
// ------------------------------------------------------------------------------
initEcharts() {
this.myChart = echarts.init(document.getElementById('myCharts'));
this.myChart.setOption(this.option)
let than = this
this.myChart.on('click', function (params) {
than.handelClickChart(params.name)
});
window.addEventListener('resize', this.handleWindowResize);
},
handleWindowResize() {
if (this.myChart) {
this.myChart.resize();
}
},
handelClickChart(name) {
this.showFormList = true
this.satisfactionCategoryStr = this.dicts.satisfaction_category.filter(item => item.label == name)[0].value
},
handleClose() {
this.showFormList = false
},
handelClickDetail(row) {
this.formType = 'detail'
this.showProvinceFollowUpDetail = true
this.detailObj = row || {}
},
handelClickEdit(row) {
this.formType = 'edit'
this.showProvinceFollowUpDetail = true
this.detailObj = row || {}
},
handelChangeCategory(){
this.getTableData()
},
handleComfirm(form) {
this.showProvinceFollowUpDetail = false
this.save(form)
},
async save(form) {
try {
const url = '/governance/provinceEvaluationRecord/updateInfo'
form.periodName = null
const { code } = await requestPost(url, form)
if (code == 0) {
this.getTableData()
this.$refs['ref_form_list'].getTableData()
this.$message.success('保存成功')
this.showProvinceFollowUpDetail = false
}
} catch (err) {
console.log(err);
}
},
//
handleSearch(val) {
console.log(this.formData);
this.getTableData();
},
//
async getTableData() {
try {
const allowedCategories = this.dicts.satisfaction_category.map(item => item.value)
const { data } = await this.$http.post(
`/governance/provinceEvaluationRecord/staticPeopleNum`,
{ ...this.formData }
);
this.option.series[0].data = []
this.option.xAxis.data = []
this.tableData = data
this.tableData.forEach(item => {
if (allowedCategories.includes(item.scopeId)) {
this.option.series[0].data.push(item.peopleNum)
this.option.xAxis.data.push(item.scopeName)
}
});
this.myChart.setOption(this.option)
} catch (error) {
console.log(error);
}
},
async handleExportModule() {
let url = "/governance/provinceEvaluationRecord/provinceStatis/downloadImportTemplate";
let params = {};
await this.$http({
method: "get",
url,
responseType: "blob",
data: params,
})
.then((res) => {
console.log("res----dddd", res);
// this.download(res.data, title + '.xls')
if (res.headers["content-disposition"]) {
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
);
console.log("filename", fileName);
let blob = new Blob([res.data], {
type: "application/vnd.ms-excel",
});
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
} else this.$message.error("下载失败");
})
.catch((err) => {
console.log("err", err);
return this.$message.error("网络错误");
});
},
beforeExcelUpload(file) {
console.log("file", file);
const isType = file.type === "application/vnd.ms-excel";
const isTypeComputer =
file.type ===
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
const fileType = isType || isTypeComputer;
const isLt1M = file.size / 1024 / 1024 < 10;
if (!fileType) {
this.$message.error("上传文件只能是xls/xlsx格式!");
}
if (!isLt1M) {
this.$message.error("上传文件大小不能超过 10MB!");
}
return fileType && isLt1M;
},
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); //
formData.append("orgCategory",than.formData.orgCategoryCode); //
await this.$http
.post(`/governance/provinceEvaluationRecord/importDataByExcel`, 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('导入失败')
});
},
//
resetSearch() {
this.formData = {};
this.getTableData();
},
},
activated() {
this.handleWindowResize()
},
props: {},
};
</script>
<style lang="scss" scoped>
@ -378,88 +378,88 @@ export default {
@import "@/assets/scss/modules/shequzhili/event-info.scss";
.div_btn_left>* {
margin-right: 10px;
margin-right: 10px;
}
.m-table-item {
display: flex;
flex-direction: column;
display: flex;
flex-direction: column;
}
.content_box {
display: flex;
height: 160px;
margin-top: 24px;
.left {
background: #f7faff;
margin-right: 10px;
min-width: 300px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 5px;
img {
margin-right: 8px;
}
}
img {
width: 50px;
height: 50px;
margin-right: 15px;
}
.left_right,
.right_right {
display: flex;
flex-direction: column;
:nth-child(1) {
font-size: 18px;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
}
:nth-child(2) {
font-size: 14px;
font-family: PingFang SC;
color: #333333;
opacity: 0.6;
}
}
.right {
flex: 1;
display: grid;
grid-template-columns: repeat(4, 1fr);
.box {
height: 75px;
margin: 0 10px 10px 0;
.card {
background: #f7faff;
width: 100%;
height: 100%;
display: flex;
align-items: center;
border-radius: 5px;
padding: 20px;
box-sizing: border-box;
}
}
}
display: flex;
height: 160px;
margin-top: 24px;
.left {
background: #f7faff;
margin-right: 10px;
min-width: 300px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 5px;
img {
margin-right: 8px;
}
}
img {
width: 50px;
height: 50px;
margin-right: 15px;
}
.left_right,
.right_right {
display: flex;
flex-direction: column;
:nth-child(1) {
font-size: 18px;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
}
:nth-child(2) {
font-size: 14px;
font-family: PingFang SC;
color: #333333;
opacity: 0.6;
}
}
.right {
flex: 1;
display: grid;
grid-template-columns: repeat(4, 1fr);
.box {
height: 75px;
margin: 0 10px 10px 0;
.card {
background: #f7faff;
width: 100%;
height: 100%;
display: flex;
align-items: center;
border-radius: 5px;
padding: 20px;
box-sizing: border-box;
}
}
}
}
#myCharts {
width: 100%;
flex: 1;
width: 100%;
flex: 1;
}
</style>

2
src/views/modules/shequzhili/event/cpts/event-info.vue

@ -388,7 +388,7 @@ export default {
this.eventInfoData.categoryList.push(this.replayInfo.categoryId);
}
} else if (this.formData.operationType === '5') {
this.replayInfo = this.$refs.ref_process_form_designate.replayInfo;
this.replayInfo = this.$refs.ref_processinfo_add.replayInfo;
//
this.eventInfoData.content = this.replayInfo.content;
this.eventInfoData.status = this.replayInfo.status;

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

@ -309,10 +309,6 @@ export default {
{
value: "3",
label: "12345",
},
{
value: "5",
label: "北尚诉办",
}
],

1190
src/views/modules/shequzhili/eventOld/cpts/add.vue

File diff suppressed because it is too large

2
src/views/modules/shequzhili/eventOld/cpts/event-detail.vue

@ -446,7 +446,7 @@ export default {
satisfyLevel = "perfect";
}
}
const url = "/governance/icEvent/comment";
const url = "/governance/icEventOld/comment";
let params = {
icEventId: this.eventId,

128
src/views/modules/shequzhili/eventOld/cpts/event-info.vue

@ -2,7 +2,15 @@
<div class="">
<div v-if="pageTypeCopy == 'add'">
<el-card>
<h3 class="h3-title"><img src="../../../../../assets/images/index/title-icon-zntb.png" width="30px" height="30px" alt=""> 新增事件</h3>
<h3 class="h3-title">
<img
src="../../../../../assets/images/index/title-icon-zntb.png"
width="30px"
height="30px"
alt=""
/>
新增事件
</h3>
<event-add
ref="ref_add"
@changeName="changeName"
@ -14,7 +22,15 @@
<div class="process-form">
<el-card>
<h3 class="h3-title"><img src="../../../../../assets/images/index/title-icon-chuli.png" width="30px" height="30px" alt=""> 处理</h3>
<h3 class="h3-title">
<img
src="../../../../../assets/images/index/title-icon-chuli.png"
width="30px"
height="30px"
alt=""
/>
处理
</h3>
<process-form
ref="ref_processinfo_add"
:demandUserId="demandUserId"
@ -53,7 +69,15 @@
查看详情</el-button
>
</div>
<div :class="['g-total', { 'g-left': projectProcess.length > 0,'g-left-top40':pageType =='info' }]">
<div
:class="[
'g-total',
{
'g-left': projectProcess.length > 0,
'g-left-top40': pageType == 'info',
},
]"
>
<event-detail
ref="ref_detail"
:type="pageType"
@ -77,7 +101,13 @@
{ 'process-title-vis': source === 'visiual' },
]"
>
<img src="../../../../../assets/images/index/title-icon-chuli.png" width="30px" height="30px" alt=""> 处理
<img
src="../../../../../assets/images/index/title-icon-chuli.png"
width="30px"
height="30px"
alt=""
/>
处理
</div>
<process-form
ref="ref_processinfo_dispose"
@ -100,7 +130,10 @@
</div>
</div>
<div v-if="projectProcess.length > 0" :class="['g-right',pageType == 'info'?'g-right-top40':'']">
<div
v-if="projectProcess.length > 0"
:class="['g-right', pageType == 'info' ? 'g-right-top40' : '']"
>
<el-card
:class="{ 'box-card': source === 'visiual' }"
style="min-height: calc(88vh - 50px); overflow: auto"
@ -414,7 +447,7 @@ export default {
//
async getProjectProcess() {
const url = "/governance/icEvent/process";
const url = "/governance/icEventOld/process";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/project/icEvent/process";
const { data, code, msg } = await requestPost(url, {
@ -463,68 +496,46 @@ export default {
} else {
return false;
}
console.log("eventInfo", this.eventInfoData);
this.$refs.ref_processinfo_add.getProcessInfo();
// if (this.$refs.ref_processinfo_add.okflag) {
// this.formData.operationType =
// this.$refs.ref_processinfo_add.operationType;
// this.eventInfoData.operationType =
// this.$refs.ref_processinfo_add.operationType;
this.$refs.ref_processinfo_add.getProcessInfo();
this.formData.operationType =
this.$refs.ref_processinfo_add.operationType;
this.eventInfoData.operationType =
this.$refs.ref_processinfo_add.operationType;
if (this.formData.operationType === "0") {
this.project = {};
this.demand = {};
if (
this.formData.operationType === "0" ||
this.formData.operationType === "2" ||
this.formData.operationType === "6"
) {
this.replayInfo = this.$refs.ref_processinfo_add.replayInfo;
console.log("replayInfo", this.replayInfo);
//
this.eventInfoData.content = this.replayInfo.content;
this.eventInfoData.status = this.replayInfo.status;
this.eventInfoData.timeLimit = this.replayInfo.timeLimit;
if (this.replayInfo.categoryId) {
this.eventInfoData.categoryList = [];
this.eventInfoData.categoryList.push(this.replayInfo.categoryId);
}
} else if (this.formData.operationType === "1") {
this.replayInfo = {};
this.demand = {};
this.project = this.$refs.ref_processinfo_add.project;
//
this.project.gridId = this.eventInfoData.gridId;
if (this.project.categoryList && this.project.categoryList.length > 0) {
} else if (this.formData.operationType === "5") {
this.replayInfo = this.$refs.ref_processinfo_add.replayInfo;
//
this.eventInfoData.content = this.replayInfo.content;
this.eventInfoData.status = this.replayInfo.status;
this.eventInfoData.timeLimit = this.replayInfo.timeLimit;
if (this.replayInfo.categoryId) {
this.eventInfoData.categoryList = [];
this.eventInfoData.categoryList.push(this.project.categoryList[0].id);
this.eventInfoData.categoryList.push(this.replayInfo.categoryId);
}
console.log("projectInfo", this.project);
} else if (this.formData.operationType === "2") {
this.replayInfo = {};
this.project = {};
this.demand = this.$refs.ref_processinfo_add.demand;
this.demand.gridId = this.eventInfoData.gridId;
//
// this.eventInfoData.categoryList = []
// this.eventInfoData.categoryList.push(this.demand.categoryId)
console.log("demond", this.demand);
} else if (this.formData.operationType === "3") {
this.project = {};
this.demand = {};
} else if (this.formData.operationType === "4") {
this.replayInfo = {};
this.issueInfo = this.$refs.ref_processinfo_add.issueInfo;
if (
this.issueInfo.categoryList &&
this.issueInfo.categoryList.length > 0
) {
this.eventInfoData.categoryList = [];
this.eventInfoData.categoryList.push(
this.issueInfo.categoryList[0].id
);
}
console.log("issueInfo", this.issueInfo);
}
// }
@ -542,14 +553,15 @@ export default {
},
async submit() {
// (this.formData.operationType == 2 && this.demand.demandUserName) ||(this.formData.operationType == 3 && this.issueInfo.issueTitle) || (this.formData.operationType == 1 && this.project.categoryList) ||(this.formData.operationType == 0 && this.eventInfoData.content) ||
if (
(this.formData.operationType == 3 && this.issueInfo.issueTitle) ||
(this.formData.operationType == 2 && this.demand.demandUserName) ||
(this.formData.operationType == 1 && this.project.categoryList) ||
(this.formData.operationType == 0 && this.eventInfoData.content) ||
this.formData.operationType == 4
this.formData.operationType == "4" ||
this.formData.operationType == "5" ||
this.formData.operationType == "6" ||
this.formData.operationType == "0" ||
this.formData.operationType == "2"
) {
const url = "/governance/icEvent/add";
const url = "/governance/icEventOld/add";
const { formData } = this;
const { data, code, msg } = await requestPost(url, {
...formData,
@ -582,7 +594,7 @@ export default {
this.replayInfo.icEventId = this.eventId;
console.log("replayInfo", this.replayInfo);
//
let url = "/governance/icEvent/reply";
let url = "/governance/icEventOld/reply";
await this.submitDispose(url, this.replayInfo);
} else if (this.formData.operationType === "1") {
this.replayInfo = {};
@ -591,7 +603,7 @@ export default {
//
this.project.icEventId = this.eventId;
console.log("projectInfo", this.project);
let url = "/governance/icEvent/icEventToProject";
let url = "/governance/icEventOld/icEventToProject";
await this.submitDispose(url, this.project);
} else if (this.formData.operationType === "2") {
this.replayInfo = {};
@ -600,7 +612,7 @@ export default {
//
this.demand.icEventId = this.eventId;
console.log("demond", this.demand);
let url = "/governance/icEvent/icEventToDemand";
let url = "/governance/icEventOld/icEventToDemand";
await this.submitDispose(url, this.demand);
} else if (this.formData.operationType === "3") {
this.replayInfo = {};
@ -610,7 +622,7 @@ export default {
//
console.log("issueInfo", this.issueInfo);
let url = "/governance/icEvent/icEventToIssue";
let url = "/governance/icEventOld/icEventToIssue";
await this.submitDispose(url, this.issueInfo);
} else {
this.$message.info("请选择一种处理方式");

161
src/views/modules/shequzhili/eventOld/cpts/process-form-designate.vue

@ -13,7 +13,7 @@
prop="categoryList">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-cascader class="cell-width-2" ref="myCascader" v-model="selCategoryArray" :key="iscascaderShow"
:options="casOptions" :props="optionProps" :show-all-levels="false"
:options="casOptions" :props="optionProps" :show-all-levels="false" clearable
@change="handleChangeCate"></el-cascader>
</div>
</el-form-item>
@ -28,6 +28,15 @@
placeholder="请输入转办意见,不超过500字" v-model="formData.content"></el-input>
</div>
</el-form-item>
<el-form-item style="display: block" label="附件" label-width="150px" prop="attach">
<el-upload :headers="$getElUploadHeaders()" class="upload-demo" :action="uploadUlr"
accept=".doc,.pdf,.xls,.docx,.xlsx,.jpg,.png,.jpeg,.bmp,.mp4,.wma,.m4a,.mp3"
:on-success="handleFileSuccess" :on-remove="handleFileRemove" :on-preview="handleFileDownload"
:limit="3" :before-upload="beforeUpload" :file-list="fileList">
<el-button size="small" :disabled="fileList.length === 3" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">支持图片wordpdf</div>
</el-upload>
</el-form-item>
<el-form-item label="办结时限" prop="timeLimit" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }">
@ -55,7 +64,8 @@ export default {
categoryId: "",//
deptId: "", //
deptName: "",
categoryList: []
categoryList: [],
files: [] //
},
orgOptions: [],
orgOptionProps: {
@ -71,12 +81,15 @@ export default {
eventDetailCopy: {},
selCategoryArray: [],
casOptions: [],
fileList: [],
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile",
iscascaderShow: 0,
optionProps: {
multiple: false,
value: "id",
label: "name",
children: "subCategory",
label: "categoryName",
children: "children",
checkStrictly: true
},
dataRule: {
content: [
@ -90,10 +103,13 @@ export default {
],
timeLimit: [
{ required: true, message: "办结时限不能为空", trigger: "blur" },
],
categoryList: [
{ required: true, message: '事件分类不能为空', trigger: 'blur' },
]
},
selCateObj:{
id:""
selCateObj: {
id: ""
},
};
},
@ -126,12 +142,11 @@ export default {
this.getCategoryList();
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
console.log(this.eventDetailCopy);
// eventDetailCopy
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.selCateObj.id = this.eventDetailCopy.categoryId
this.formData.categoryId = this.eventDetailCopy.categoryId
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId, this.eventDetailCopy.categoryId)
this.selCategoryArray = this.eventDetailCopy.parentCategoryId.split(",");
this.selCategoryArray.push(this.eventDetailCopy.categoryId);
this.handleChangeCate(this.selCategoryArray)
}
}
},
@ -152,18 +167,40 @@ export default {
}
},
async getCategoryList() {
const url = "/governance/issueprojectcategorydict/list";
const url = '/governance/icEvent/getCategoryTree';
let params = {};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
let treeDataNew = this.filterTree(data);
//
let treeDataNew = this.deepTree(data, "children");
++this.iscascaderShow;
this.casOptions = [];
this.casOptions = treeDataNew;
} else {
this.$message.error(msg);
}
if (this.eventDetailCopy.parentCategoryId) {
const pids = this.eventDetailCopy.parentCategoryId.split(',');
pids.push(this.eventDetailCopy.categoryId);
let nodes = this.casOptions;
for (let i = 0; i < pids.length; i++) {
nodes = this.buildNode(nodes, pids[i])
}
if (nodes) {
this.formData.categoryList.push(nodes)
this.selCateObj = nodes
}
}
},
buildNode(nodes, treeId) {
for (let i = 0; i < nodes.length; i++) {
if (nodes[i].id === treeId) {
if (nodes[i].children) {
return nodes[i].children
} else {
return nodes[i]
}
}
}
},
handleChangeAgency(val) {
let obj = this.$refs["agencyIdArray"].getCheckedNodes()[0].data
@ -171,7 +208,6 @@ export default {
this.formData.orgType = obj.level === 'grid' ? 'grid' : 'agency'
this.formData.deptId = obj.agencyId
this.formData.deptName = obj.agencyName
} else {
this.form.orgType = ''
this.form.orgId = ''
@ -180,25 +216,26 @@ export default {
handleChangeCate() {
if (this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0]) {
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
this.formData.categoryList = this.selCateObj
this.formData.categoryId = this.selCateObj.id
console.log(this.formData.categoryId,'this.formData.categoryId');
} else {
this.selCateObj = {}
}
},
//
filterTree(arr) {
let childs = arr;
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory);
} else {
delete childs[i].subCategory;
}
}
deepTree(arr, children) {
if (Array.isArray(arr) && arr.length > 0) {
return arr.map((item) => {
return {
...item,
[children]:
(item[children] &&
item[children].length > 0 &&
this.deepTree(item[children], children)) ||
null,
};
});
}
return arr;
},
async getReplayInfo() {
this.okflag = false;
@ -206,11 +243,13 @@ export default {
if (!valid) {
app.util.validateRule(messageObj);
} else {
console.log(this.selCateObj);
if (!this.selCateObj || !this.selCateObj.id) {
this.$message.error("请选择事件分类");
return false;
}
if (this.fileList) {
this.formData.files = this.fileList
}
this.formData.status = "processing";
this.formData.categoryId = this.selCateObj.id;
this.formData.categoryList = [];
@ -222,6 +261,74 @@ export default {
resetData() {
this.agencyIdArray = []
},
beforeUpload(file) {
const array = file.name.split(".");
const extension = array[array.length - 1];
const formatarray = [
"jpg",
"png",
"jpeg",
"bmp",
"mp4",
"wma",
"m4a",
"mp3",
"doc",
"docx",
"xls",
"xlsx",
"pdf",
];
if (formatarray.indexOf(extension) === -1) {
this.$message.error("只支持图片、word、pdf");
return false;
}
},
handleFileRemove(file) {
if (file && file.status === "success") {
this.fileList.splice(
this.fileList.findIndex((item) => item.uid === file.uid),
1
);
}
},
handleFileSuccess(res, file) {
if (res.code === 0 && res.msg === "success") {
const array = file.name.split(".");
const fileType = array[array.length - 1];
const picArray = ["jpg", "png", "jpeg", "bmp"];
const videoarray = ["mp4", "wma", "m4a"];
const docArray = ["doc", "docx", "xls", "xlsx", "pdf"];
const mp3Array = ["mp3"];
if (picArray.indexOf(fileType) > -1) {
file.attachmentFormat = "image";
} else if (videoarray.indexOf(fileType) > -1) {
file.attachmentFormat = "video";
} else if (docArray.indexOf(fileType) > -1) {
file.attachmentFormat = "doc";
} else if (mp3Array.indexOf(fileType) > -1) {
file.attachmentFormat = "voice";
}
file.url = res.data.url;
file.type = fileType;
file.attachmentName = file.name;
file.attachmentType = file.type;
file.attachmentUrl = file.url;
this.fileList.push(file);
} else this.$message.error(res.msg);
},
//
handleFileDownload(file) {
var a = document.createElement("a");
var event = new MouseEvent("click");
a.download = file.name;
a.href = file.url;
a.dispatchEvent(event);
},
//
startLoading() {
loading = Loading.service({

39
src/views/modules/shequzhili/eventOld/cpts/process-form-replay-end.vue

@ -1,8 +1,8 @@
<!--
* @Author: yanLu xgktv007@163.com
* @Date: 2023-09-05 10:21:34
* @LastEditors: yanLu xgktv007@163.com
* @LastEditTime: 2023-09-05 10:21:34
* @LastEditors: mk 2403457699@qq.com
* @LastEditTime: 2023-11-02 18:42:22
* @Description: 事件回复
*
*
@ -14,7 +14,7 @@
prop="categoryList">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-cascader class="cell-width-2" ref="myCascader" v-model="selCategoryArray" :key="iscascaderShow"
:options="casOptions" :props="optionProps" :show-all-levels="false"
:options="casOptions" :props="optionProps" :show-all-levels="false" clearable
@change="handleChangeCate"></el-cascader>
</div>
</el-form-item>
@ -67,13 +67,14 @@ export default {
value: "id",
label: "categoryName",
children: "children",
checkStrictly: true
},
dataRule: {
content: [
{ required: true, message: '回复内容不能为空', trigger: 'blur' },
],
categoryList: [
// { required: true, message: '', trigger: 'blur' },
{ required: true, message: '事件分类不能为空', trigger: 'blur' },
]
}
};
@ -107,8 +108,9 @@ export default {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
// eventDetailCopy
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.formData.categoryId = this.eventDetailCopy.categoryId
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId, this.eventDetailCopy.categoryId)
this.selCategoryArray = this.eventDetailCopy.parentCategoryId.split(",");
this.selCategoryArray.push(this.eventDetailCopy.categoryId);
this.handleChangeCate(this.selCategoryArray)
}
}
},
@ -127,10 +129,33 @@ export default {
} else {
this.$message.error(msg);
}
if (this.eventDetailCopy.parentCategoryId) {
const pids = this.eventDetailCopy.parentCategoryId.split(',');
pids.push(this.eventDetailCopy.categoryId);
let nodes = this.casOptions;
for (let i = 0; i < pids.length; i++) {
nodes = this.buildNode(nodes, pids[i])
}
if (nodes) {
this.formData.categoryList.push(nodes)
}
}
},
buildNode(nodes, treeId) {
for (let i = 0; i < nodes.length; i++) {
if (nodes[i].id === treeId) {
if (nodes[i].children) {
return nodes[i].children
} else {
return nodes[i]
}
}
}
},
handleChangeCate() {
if (this.selCateObj = this.$refs['myCascader'].getCheckedNodes()[0]) {
this.selCateObj = this.$refs['myCascader'].getCheckedNodes()[0].data
this.formData.categoryList = this.selCateObj
} else {
this.selCateObj = {}
}
@ -165,7 +190,7 @@ export default {
if (!this.formData.categoryId) {
this.formData.categoryId = this.selCateObj.id;
}
if(this.fileList){
if (this.fileList) {
this.formData.files = this.fileList
}
this.formData.categoryList = [];

253
src/views/modules/shequzhili/eventOld/cpts/process-form.vue

@ -1,67 +1,81 @@
<template>
<div class="">
<div>
<el-form ref="ref_form1"
:inline="false"
:rules="dataRule"
class="form">
<el-form-item label="处理方式"
label-width="150px"
:class="{'form-item':source==='visiual'}"
prop="operationType">
<el-radio-group :class="{'form-item':source==='visiual'}"
v-model="operationType"
@change="handleChangeOperationType">
<el-radio v-if="!eventId"
label="4">暂不处理</el-radio>
<el-form ref="ref_form1" :inline="false" :rules="dataRule" class="form">
<el-form-item
label="处理方式"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="operationType"
>
<el-radio-group
:class="{ 'form-item': source === 'visiual' }"
v-model="operationType"
@change="handleChangeOperationType"
>
<el-radio v-if="!eventId" label="4">暂不处理</el-radio>
<el-radio label="0">回复</el-radio>
<el-radio label="1">立项</el-radio>
<el-radio label="5">指派</el-radio>
<el-radio label="6">完成并回复</el-radio>
<!-- <el-radio label="1">立项</el-radio> -->
<el-radio label="2">转服务</el-radio>
<el-radio label="3">转议题</el-radio>
<!-- <el-radio label="3">转议题</el-radio> -->
</el-radio-group>
</el-form-item>
</el-form>
<div v-if="operationType==='0'">
<process-form-replay ref="ref_process_form_replay"
:source="source"
:eventDetailData="eventDetailData"
:eventId="eventId"></process-form-replay>
<div v-if="operationType === '0'">
<process-form-replay
ref="ref_process_form_replay"
:source="source"
:eventDetailData="eventDetailData"
:eventId="eventId"
></process-form-replay>
</div>
<div v-if="operationType==='1'">
<div v-if="operationType === '5'">
<process-form-designate
ref="ref_process_form_designate"
:source="source"
:eventDetailData="eventDetailData"
:eventId="eventId"
></process-form-designate>
</div>
<div v-if="operationType === '6'">
<process-form-replay-end
ref="ref_process_form_replay_end"
:source="source"
:eventDetailData="eventDetailData"
:eventId="eventId"
></process-form-replay-end>
</div>
<!-- <div v-if="operationType==='1'">
<process-form-project ref="ref_process_form_project"
:source="source"
:eventDetailData="eventDetailData"
:gridId="gridId"
:eventId="eventId"></process-form-project>
</div> -->
<div v-if="operationType === '2'">
<process-form-demand
ref="ref_process_form_demond"
:source="source"
:eventId="eventId"
:transferObj="transferObj"
:demandUserId="demandUserId"
:demandUserName="demandUserName"
:demandUserMobile="demandUserMobile"
:eventDetailData="eventDetailData"
></process-form-demand>
</div>
<div v-if="operationType==='2'">
<process-form-demand ref="ref_process_form_demond"
:source="source"
:eventId="eventId"
:transferObj="transferObj"
:demandUserId="demandUserId"
:demandUserName="demandUserName"
:demandUserMobile="demandUserMobile"
:eventDetailData="eventDetailData"></process-form-demand>
</div>
<div v-if="operationType==='3'">
<!-- <div v-if="operationType==='3'">
<process-form-issue ref="ref_process_form_issue"
:source="source"
:eventDetailData="eventDetailData"
:eventId="eventId"></process-form-issue>
</div>
</div> -->
</div>
</div>
</template>
@ -72,27 +86,26 @@ import processFormReplay from "./process-form-replay";
import processFormProject from "./process-form-project";
import processFormDemand from "./process-form-demand";
import processFormIssue from "./process-form-issue";
import processFormReplayEnd from "./process-form-replay-end";
import processFormDesignate from "./process-form-designate";
let loading; //
export default {
data () {
data() {
return {
casOptions: [],
iscascaderShow: 0,
selCategoryArray: [],
selCateObj: {},
optionProps: {
multiple: false,
value: 'id',
label: 'name',
children: 'subCategory',
value: "id",
label: "name",
children: "subCategory",
},
operationType: '',
operationType: "",
replayInfo: {},
demand: {},
@ -101,30 +114,28 @@ export default {
okflag: false,
eventDetailCopy: {},
transferObj:{
latitude :"",
longitude :""
}
transferObj: {
latitude: "",
longitude: "",
},
};
},
components: {
processFormReplay,
processFormProject,
processFormDemand,
processFormIssue
processFormIssue,
processFormReplayEnd,
processFormDesignate,
},
computed: {
dataRule () {
dataRule() {
return {
operationType: [
{ required: true, message: "处理方式不能为空", trigger: "blur" },
],
};
},
},
props: {
demandUserId: {
@ -149,107 +160,89 @@ export default {
},
eventDetailData: {
type: Object,
default () {
return {}
}
default() {
return {};
},
},
source: {//manage visiual
source: {
//manage visiual
type: String,
default: 'manage'
}
},
watch: {
default: "manage",
},
},
created () {
console.log(this.source)
watch: {},
created() {
console.log(this.source);
},
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
async mounted() {
const { user } = this.$store.state;
this.agencyId = user.agencyId;
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
}
if(this.eventDetailData.operationType){
this.operationType = this.eventDetailCopy.operationType
if (this.eventDetailData.operationType) {
this.operationType = this.eventDetailCopy.operationType;
// this.getProcessInfo()
}
this.$EventBus.$on('map',(val)=>{
this.transferObj.latitude = val.lat
this.transferObj.longitude = val.lng
})
this.$EventBus.$on("map", (val) => {
this.transferObj.latitude = val.lat;
this.transferObj.longitude = val.lng;
});
},
methods: {
handleChangeOperationType (val) {
handleChangeOperationType(val) {
this.operationType = val;
},
async getProcessInfo () {
this.okflag = false
if (this.operationType === '0') {
this.$refs.ref_process_form_replay.getReplayInfo()
async getProcessInfo() {
this.okflag = false;
if (this.operationType === "0") {
this.$refs.ref_process_form_replay.getReplayInfo();
if (this.$refs.ref_process_form_replay.okflag) {
this.replayInfo = this.$refs.ref_process_form_replay.formData
this.okflag = true
} else {
return false
}
} else if (this.operationType === '1') {
this.$refs.ref_process_form_project.getProjectInfo()
if (this.$refs.ref_process_form_project.okflag) {
this.project = this.$refs.ref_process_form_project.formData
//
this.okflag = true
this.replayInfo = this.$refs.ref_process_form_replay.formData;
this.okflag = true;
} else {
return false
return false;
}
} else if (this.operationType === '2') {
this.$refs.ref_process_form_demond.getDemandInfo()
} else if (this.operationType === "2") {
this.$refs.ref_process_form_demond.getDemandInfo();
if (this.$refs.ref_process_form_demond.okflag) {
this.demand = this.$refs.ref_process_form_demond.formData
this.okflag = true
this.demand = this.$refs.ref_process_form_demond.formData;
this.okflag = true;
} else {
return false
return false;
}
} else if (this.operationType === '3') {
this.$refs.ref_process_form_issue.getIssueInfo()
if (this.$refs.ref_process_form_issue.okflag) {
this.issueInfo = this.$refs.ref_process_form_issue.formData
this.okflag = true
} else {
return false
} else if (this.operationType === "5") {
this.$refs.ref_process_form_designate.getReplayInfo();
this.replayInfo = this.$refs.ref_process_form_designate.formData;
if (this.$refs.ref_process_form_designate.okflag) {
this.replayInfo = this.$refs.ref_process_form_designate.formData;
this.okflag = true;
}
} else if (this.operationType === "6") {
this.$refs.ref_process_form_replay_end.getReplayInfo();
this.replayInfo = this.$refs.ref_process_form_replay_end.formData;
if (this.$refs.ref_process_form_replay_end.okflag) {
this.replayInfo = this.$refs.ref_process_form_replay_end.formData;
this.okflag = true;
}
} else if (this.formData.operationType === "4") {
this.replayInfo = {};
}
},
handleCancle () {
handleCancle() {
this.resetData();
},
resetData () {
},
resetData() {},
//
startLoading () {
startLoading() {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
@ -257,7 +250,7 @@ export default {
});
},
//
endLoading () {
endLoading() {
// clearTimeout(timer);
if (loading) {
loading.close();

8
src/views/modules/shequzhili/eventOld/eventList.vue

@ -573,10 +573,10 @@ export default {
value: "2",
label: "社区电话",
},
{
value: "3",
label: "12345",
},
// {
// value: "3",
// label: "12345",
// },
{
value: "4",
label: "网络员手持终端",

Loading…
Cancel
Save