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"), component: () => import("@/views/dataBoard/satisfactionEval/index"),
name: "dataBoard-satisfactionEval-index", name: "dataBoard-satisfactionEval-index",
meta: { meta: {
title: "满意度评价", title: "群众满意度",
isTab: false, isTab: false,
}, },
}, },

39
src/views/components/resiForm.vue

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

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

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

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

@ -168,7 +168,9 @@ export default {
// label: 'agencyName', // label: 'agencyName',
// value: 'agencyId', // value: 'agencyId',
lazy: true, lazy: true,
lazyLoad: this.lazyLoadAgency lazyLoad:(node, resolve) => {
this.lazyLoadAgency(node, resolve)
},
}, },
userAgencyId: '', userAgencyId: '',
} }
@ -182,10 +184,8 @@ export default {
}, },
methods: { methods: {
lazyLoadAgency(node, resolve) { async lazyLoadAgency(node, resolve) {
setTimeout(() => { await this.getAgency(node, resolve)
this.getAgency(node, resolve)
}, 200)
}, },
async getAgency(node, resolve) { async getAgency(node, resolve) {
const url = "/gov/org/agency/dynamicOrgTreeWithDepth" const url = "/gov/org/agency/dynamicOrgTreeWithDepth"
@ -206,8 +206,9 @@ export default {
label: item.name, label: item.name,
level: item.agencyLevel, level: item.agencyLevel,
orgType: item.orgType, orgType: item.orgType,
leaf: node.level >= 4 // 5 leaf: item.orgType == 'grid' // 5
})) }))
console.log(nodes);
resolve(nodes) resolve(nodes)
} else { } else {
this.$message.error(msg) 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> </div>
</template> </template>
</div> </div>
@ -975,6 +985,11 @@ export default {
_baseForm.disabledFlag = parseInt(_baseForm.disabledFlag); // _baseForm.disabledFlag = parseInt(_baseForm.disabledFlag); //
_baseForm.dementedFlag = parseInt(_baseForm.dementedFlag); // _baseForm.dementedFlag = parseInt(_baseForm.dementedFlag); //
_baseForm.disabilityFlag = parseInt(_baseForm.disabilityFlag); // _baseForm.disabilityFlag = parseInt(_baseForm.disabilityFlag); //
_baseForm.buildingChiefFlag = parseInt(_baseForm.buildingChiefFlag); //
_baseForm.unitChiefFlag = parseInt(_baseForm.unitChiefFlag); //
_baseForm.seriousIllnessFlag = parseInt( _baseForm.seriousIllnessFlag = parseInt(
_baseForm.seriousIllnessFlag _baseForm.seriousIllnessFlag
); // ); //
@ -1092,7 +1107,6 @@ export default {
}, },
async getTableData(obj) { async getTableData(obj) {
console.log(this.currentPage);
let params = { let params = {
pageNo: this.currentPage, pageNo: this.currentPage,
pageSize: this.pageSize, pageSize: this.pageSize,

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

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

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

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

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

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

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

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

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

@ -388,7 +388,7 @@ export default {
this.eventInfoData.categoryList.push(this.replayInfo.categoryId); this.eventInfoData.categoryList.push(this.replayInfo.categoryId);
} }
} else if (this.formData.operationType === '5') { } 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.content = this.replayInfo.content;
this.eventInfoData.status = this.replayInfo.status; this.eventInfoData.status = this.replayInfo.status;

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

@ -309,10 +309,6 @@ export default {
{ {
value: "3", value: "3",
label: "12345", 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"; satisfyLevel = "perfect";
} }
} }
const url = "/governance/icEvent/comment"; const url = "/governance/icEventOld/comment";
let params = { let params = {
icEventId: this.eventId, icEventId: this.eventId,

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

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

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

@ -13,7 +13,7 @@
prop="categoryList"> prop="categoryList">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-cascader class="cell-width-2" ref="myCascader" v-model="selCategoryArray" :key="iscascaderShow" <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> @change="handleChangeCate"></el-cascader>
</div> </div>
</el-form-item> </el-form-item>
@ -28,6 +28,15 @@
placeholder="请输入转办意见,不超过500字" v-model="formData.content"></el-input> placeholder="请输入转办意见,不超过500字" v-model="formData.content"></el-input>
</div> </div>
</el-form-item> </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' }" <el-form-item label="办结时限" prop="timeLimit" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
style="display: block"> style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
@ -55,7 +64,8 @@ export default {
categoryId: "",// categoryId: "",//
deptId: "", // deptId: "", //
deptName: "", deptName: "",
categoryList: [] categoryList: [],
files: [] //
}, },
orgOptions: [], orgOptions: [],
orgOptionProps: { orgOptionProps: {
@ -71,12 +81,15 @@ export default {
eventDetailCopy: {}, eventDetailCopy: {},
selCategoryArray: [], selCategoryArray: [],
casOptions: [], casOptions: [],
fileList: [],
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile",
iscascaderShow: 0, iscascaderShow: 0,
optionProps: { optionProps: {
multiple: false, multiple: false,
value: "id", value: "id",
label: "name", label: "categoryName",
children: "subCategory", children: "children",
checkStrictly: true
}, },
dataRule: { dataRule: {
content: [ content: [
@ -90,10 +103,13 @@ export default {
], ],
timeLimit: [ timeLimit: [
{ required: true, message: "办结时限不能为空", trigger: "blur" }, { required: true, message: "办结时限不能为空", trigger: "blur" },
],
categoryList: [
{ required: true, message: '事件分类不能为空', trigger: 'blur' },
] ]
}, },
selCateObj:{ selCateObj: {
id:"" id: ""
}, },
}; };
}, },
@ -126,12 +142,11 @@ export default {
this.getCategoryList(); this.getCategoryList();
if (this.eventId) { if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData)); this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
console.log(this.eventDetailCopy);
// eventDetailCopy // eventDetailCopy
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) { if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.selCateObj.id = this.eventDetailCopy.categoryId this.selCategoryArray = this.eventDetailCopy.parentCategoryId.split(",");
this.formData.categoryId = this.eventDetailCopy.categoryId this.selCategoryArray.push(this.eventDetailCopy.categoryId);
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId, this.eventDetailCopy.categoryId) this.handleChangeCate(this.selCategoryArray)
} }
} }
}, },
@ -152,18 +167,40 @@ export default {
} }
}, },
async getCategoryList() { async getCategoryList() {
const url = "/governance/issueprojectcategorydict/list"; const url = '/governance/icEvent/getCategoryTree';
let params = {}; let params = {};
const { data, code, msg } = await requestPost(url, params); const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
let treeDataNew = this.filterTree(data); let treeDataNew = this.deepTree(data, "children");
//
++this.iscascaderShow; ++this.iscascaderShow;
this.casOptions = []; this.casOptions = [];
this.casOptions = treeDataNew; this.casOptions = treeDataNew;
} else { } else {
this.$message.error(msg); 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) { handleChangeAgency(val) {
let obj = this.$refs["agencyIdArray"].getCheckedNodes()[0].data let obj = this.$refs["agencyIdArray"].getCheckedNodes()[0].data
@ -171,7 +208,6 @@ export default {
this.formData.orgType = obj.level === 'grid' ? 'grid' : 'agency' this.formData.orgType = obj.level === 'grid' ? 'grid' : 'agency'
this.formData.deptId = obj.agencyId this.formData.deptId = obj.agencyId
this.formData.deptName = obj.agencyName this.formData.deptName = obj.agencyName
} else { } else {
this.form.orgType = '' this.form.orgType = ''
this.form.orgId = '' this.form.orgId = ''
@ -180,25 +216,26 @@ export default {
handleChangeCate() { handleChangeCate() {
if (this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0]) { if (this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0]) {
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
this.formData.categoryList = this.selCateObj
this.formData.categoryId = this.selCateObj.id this.formData.categoryId = this.selCateObj.id
console.log(this.formData.categoryId,'this.formData.categoryId');
} else { } else {
this.selCateObj = {} this.selCateObj = {}
} }
}, },
// //
filterTree(arr) { deepTree(arr, children) {
let childs = arr; if (Array.isArray(arr) && arr.length > 0) {
for (let i = childs.length; i--; i > 0) { return arr.map((item) => {
if (childs[i].subCategory) { return {
if (childs[i].subCategory.length) { ...item,
this.filterTree(childs[i].subCategory); [children]:
} else { (item[children] &&
delete childs[i].subCategory; item[children].length > 0 &&
} this.deepTree(item[children], children)) ||
} null,
};
});
} }
return arr;
}, },
async getReplayInfo() { async getReplayInfo() {
this.okflag = false; this.okflag = false;
@ -206,11 +243,13 @@ export default {
if (!valid) { if (!valid) {
app.util.validateRule(messageObj); app.util.validateRule(messageObj);
} else { } else {
console.log(this.selCateObj);
if (!this.selCateObj || !this.selCateObj.id) { if (!this.selCateObj || !this.selCateObj.id) {
this.$message.error("请选择事件分类"); this.$message.error("请选择事件分类");
return false; return false;
} }
if (this.fileList) {
this.formData.files = this.fileList
}
this.formData.status = "processing"; this.formData.status = "processing";
this.formData.categoryId = this.selCateObj.id; this.formData.categoryId = this.selCateObj.id;
this.formData.categoryList = []; this.formData.categoryList = [];
@ -222,6 +261,74 @@ export default {
resetData() { resetData() {
this.agencyIdArray = [] 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() { startLoading() {
loading = Loading.service({ loading = Loading.service({

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

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

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

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

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

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

Loading…
Cancel
Save