wxz 3 years ago
parent
commit
a4ce842ceb
  1. BIN
      src/assets/images/main/clear.png
  2. BIN
      src/assets/images/main/close.png
  3. 13
      src/assets/scss/buttonstyle.scss
  4. 6
      src/assets/scss/common.scss
  5. 1
      src/assets/scss/dataBoard/renfang/index.scss
  6. 10
      src/router/index.js
  7. 92
      src/views/components/resiForm.vue
  8. 59
      src/views/components/resiInfo.vue
  9. 4
      src/views/components/resiSearch.vue
  10. 3
      src/views/dataBoard/cpts/map/index.vue
  11. 618
      src/views/dataBoard/cpts/resi-details.vue
  12. 9
      src/views/dataBoard/renfang/cpts/fwgl.vue
  13. 10
      src/views/dataBoard/renfang/cpts/jmgl.vue
  14. 188
      src/views/dataBoard/renfang/cpts/rkfx.vue
  15. 111
      src/views/dataBoard/renfang/cpts/rkyj.vue
  16. 35
      src/views/dataBoard/renfang/house/list.vue
  17. 93
      src/views/dataBoard/renfang/index.vue
  18. 257
      src/views/dataBoard/renfang/resi/analyze.vue
  19. 57
      src/views/dataBoard/renfang/resi/class.vue
  20. 36
      src/views/dataBoard/renfang/resi/list.vue
  21. 45
      src/views/dataBoard/renfang/warn/building.vue
  22. 28
      src/views/dataBoard/renfang/warn/resi.vue
  23. 276
      src/views/dataBoardMain/main.vue
  24. 652
      src/views/main-navbar.vue
  25. 56
      src/views/modules/base/community/community.vue
  26. 2
      src/views/modules/base/community/communityExportInfo.vue
  27. 6
      src/views/modules/base/diyInfo.vue
  28. 54
      src/views/modules/base/resi.vue
  29. 289
      src/views/modules/commonDemand/commonDemand.vue
  30. 176
      src/views/modules/commonDemand/commonDemandForm.vue
  31. 2
      src/views/modules/communityService/measure/index.vue
  32. 2
      src/views/modules/communityService/measure/info.vue
  33. 2
      src/views/modules/communityService/policy/addPolicy.vue
  34. 134
      src/views/modules/home/notice.vue
  35. 2
      src/views/modules/shequ/chaxun.vue
  36. 2
      src/views/modules/shequzhili/event/cpts/process-form-demand.vue
  37. 12
      src/views/modules/workSys/demandCate.vue

BIN
src/assets/images/main/clear.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1020 B

BIN
src/assets/images/main/close.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

13
src/assets/scss/buttonstyle.scss

@ -39,7 +39,9 @@
border: none !important;
}
.diy-button--blue:hover{
background: #0042a3 !important;
}
//黄色
.diy-button--yellow {
background: linear-gradient(0deg, #FAA700 0%, #FFBF28 100%) !important;
@ -95,15 +97,18 @@
font-size: 14px !important;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #0056D6 !important;
color: #0056d6 !important;
// line-height: 22px !important;
min-width: 60px !important;
height: 32px !important;
// padding:0 8px !important;
background: #FFFFFF !important;
border-radius: 2px !important;
border: 1px solid #0056D6 !important;
border: 1px solid #0056d6 !important;
}
.diy-button--white:hover{
border: 1px solid #0042a3 !important;
color: #0042a3 !important;
}
// 普通按钮
.diy-button--common {

6
src/assets/scss/common.scss

@ -414,12 +414,12 @@ img {
font-size: 16px;
}
.img-nav {
@include cs;
position: relative;
display: inline-block;
width: 24px;
height: 24px;
vertical-align: middle;
overflow: hidden;
@keyframes flicker {
/* 旋转沿x轴旋转-10度,再绕y轴旋转 */
0% {
@ -430,6 +430,9 @@ img {
opacity: 1;
}
}
.img-wrap {
overflow: hidden;
}
&.z-on {
animation: flicker 0.9s linear infinite;
@ -441,6 +444,7 @@ img {
width: 24px;
height: 24px;
filter: drop-shadow(100px 0px rgba(#000, 0.85));
overflow: hidden;
}
&:hover {

1
src/assets/scss/dataBoard/renfang/index.scss

@ -249,6 +249,7 @@
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #6fdeff;
cursor: pointer;
img {
width: 16px;
height: 16px;

10
src/router/index.js

@ -218,6 +218,16 @@ export const dataBoardRoutes = {
isTab: false,
},
},
{
path: "renfang/resi-analyze",
props: true,
component: () => import("@/views/dataBoard/renfang/resi/analyze"),
name: "dataBoard-renfang-resi-analyze",
meta: {
title: "居民分析列表",
isTab: false,
},
},
{
path: "renfang/house-list",
props: true,

92
src/views/components/resiForm.vue

@ -195,6 +195,7 @@
:multiple="itemk.formName=='specialCategoryCode'"
:collapse-tags="itemk.formName=='specialCategoryCode'"
clearable
:style="{'width':itemk.formName=='specialCategoryCode'?'183px':''}"
class="u-item-width-normal">
<el-option v-for="items in itemk.opction"
:key="items.value"
@ -294,6 +295,7 @@ export default {
activeName: 'groupeduInfoDto',
validateFlag:null,
disabilityCategoryCode:[],
tabFlag:true,
// input
basicInformation: [
{
@ -413,15 +415,7 @@ export default {
itemType:"checkbox",
formName:"hobbyCode",
opction:[
{label:'治安巡逻',formName:'hobbyCode1'},
{label:'人民调解',formName:'hobbyCode2'},
{label:'民情采集',formName:'hobbyCode3'},
{label:'问题辅导',formName:'hobbyCode4'},
{label:'结对帮扶',formName:'hobbyCode5'},
{label:'应急处理',formName:'hobbyCode6'},
{label:'义务理发',formName:'hobbyCode7'},
{label:'家电维修',formName:'hobbyCode8'},
{label:'其他',formName:'9'},
]},
{
label:'兴趣',
@ -966,14 +960,6 @@ export default {
itemType:"checkbox",
formName:"volunteerCategory",
opction:[
{label:'文化队伍',formName:'hobbyCode1'},
{label:'楼委会',formName:'hobbyCode2'},
{label:'能人达人',formName:'hobbyCode3'},
{label:'老友俱乐部',formName:'hobbyCode4'},
{label:'代办员',formName:'hobbyCode5'},
{label:'调解员',formName:'hobbyCode6'},
{label:'采集员',formName:'hobbyCode7'},
{label:'治安巡逻员',formName:'9'},
]},
{
label:'备注',
@ -1221,7 +1207,11 @@ export default {
watch: {
form:{
handler (val, val2) {
for(let i in this.form){
if(typeof(this.form[i]) === "object"){
this.tabFlag = false
}
}
},
deep:true,
immediate:true
@ -1276,6 +1266,8 @@ export default {
this.getPartyNation()
this.getResidentNation()
this.getHousing()
this.getVolunteerNation()
this.gethobbyNation()
},
getGridList () {
const { user } = this.$store.state
@ -1319,6 +1311,38 @@ export default {
console.log(error,'获取残疾字典');
}
},
async getVolunteerNation(){
try {
const { data } = await this.$http.post('sys/dict/data/dictlist', {'dictType':'VOLUNTEER_CATEGORY'})
this.footerInputList.forEach(c => {
for(let i of c.children){
if(i.formName == 'volunteerCategory'){
i.opction = data.data
}
}
})
} catch (error) {
console.log(error,'获取志愿者字典');
}
},
async gethobbyNation(){
try {
const { data } = await this.$http.post('sys/dict/data/dictlist', {'dictType':'SPECIAL_SKILL'})
this.footerInputList.forEach(c => {
for(let i of c.children){
if(i.formName == 'hobbyCode'){
i.opction = data.data
}
}
})
} catch (error) {
console.log(error,'获取兴趣爱好字典');
}
},
async getdisabilityNationClass(){
try {
@ -1430,6 +1454,7 @@ export default {
async getResidentNation(){
try {
const { data } = await this.$http.post('sys/dict/data/dictlist', {'dictType':'special_resident_category'})
console.log(data.data,'see');
this.footerInputList.forEach(c => {
for(let i of c.children){
if(i.formName == 'specialCategoryCode'){
@ -1498,7 +1523,7 @@ export default {
handleTabShow(val,e){
if(e == 1){
if(val.formName == 'partyFlag'){
this.tabsList.push({label:'党员信息',id:'0',groupId:'parymemberInfoDto'})
this.tabsList.push({label:'党员',id:'0',groupId:'parymemberInfoDto'})
}else if(val.formName == 'ensureHouseFlag'){
this.tabsList.push({label:'保障房信息',id:'1',groupId:'ensureHouseDto'})
}else if(val.formName == 'unemployedFlag'){
@ -1621,6 +1646,9 @@ export default {
// console.log(tab);
// console.log(event);
// console.log(tab._props.label );
if (tab._props.label == '教育') {
if (!this.form.resiId) {
this.newForm.eduInfoDto = this.form.eduInfoDto
@ -1675,7 +1703,7 @@ export default {
} else {
await this.residentBirthRecord(this.form.resiId)
}
} else if (tab._props.label == '党员信息') {
} else if (tab._props.label == '党员') {
if (!this.form.resiId) {
this.newForm.parymemberInfoDto = this.form.parymemberInfoDto
} else {
@ -1907,7 +1935,7 @@ export default {
this.form.floatingFlag = data.categoryInfo.floatingFlag.toString()
this.form.liveAloneFlag = data.categoryInfo.liveAloneFlag.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.unemployedFlag == '1') this.tabsList.push({label:'失业',id:'2',groupId:'unemployedDto'})
if(this.form.veteranFlag == '1') this.tabsList.push({label:'退役军人',id:'3',groupId:'veteranDto'})
@ -1965,6 +1993,7 @@ export default {
},
//
residentEduInfo(id) {
if(this.newForm.eduInfoDto) return
this.$http.get(`/actual/base/residentEduInfo/detail/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -1979,6 +2008,7 @@ export default {
},
//
residentHobbyInfo(id) {
if(this.newForm.hobbyInfoDto) return
this.$http.get(`/actual/base/residentHobbyInfo/detail/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -1997,6 +2027,7 @@ export default {
},
//
residentReligion(id) {
if(this.newForm.religionDto) return
this.$http.get(`/actual/base/residentReligion/detail/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2012,7 +2043,8 @@ export default {
},
//
getHealthInfoDetailById(id) {
this.$http.post(`/actual/base/residentHealthInfo/getHealthInfoDetailById/${id}`).then(({ data: res }) => {
if(this.newForm.healthDto) return
this.$http.post(`/actual/base/residentHealthInfo/getHealthInfoDetailById/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
@ -2039,9 +2071,11 @@ export default {
this.newForm.healthDto = this.form.healthDto
}
})
},
//
residentWorkInfo(id) {
if(this.newForm.healthDto) return
this.$http.get(`/actual/base/residentWorkInfo/detail/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2059,6 +2093,7 @@ export default {
},
//
getEconomyDetailById(id) {
if(this.newForm.economyDto) return
this.$http.post(`/actual/base/residentEconomy/getEconomyDetailById/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2073,6 +2108,7 @@ export default {
},
//
getResideInfoDetailById(id) {
if(this.newForm.resideInfoDto) return
this.$http.post(`/actual/base/residentResideInfo/getResideInfoDetailById/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2090,6 +2126,7 @@ export default {
},
//
getFamilyInfoDetailById(id) {
if(this.newForm.familyInfoDto) return
this.$http.post(`/actual/base/residentFamilyInfo/getFamilyInfoDetailById/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2110,6 +2147,7 @@ export default {
},
//
residentBirthRecord(id) {
if(this.newForm.birthRecordDTO) return
this.$http.post(`/actual/base/residentBirthRecord/detail/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2127,6 +2165,7 @@ export default {
},
//
residentPartyMemberInfo(id) {
if(this.newForm.parymemberInfoDto) return
this.$http.get(`/actual/base/residentPartyMemberInfo/detail/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2150,6 +2189,7 @@ export default {
},
//
residentEnsureHouse(id) {
if(this.newForm.ensureHouseDto) return
this.$http.get(`/actual/base/residentEnsureHouse/detail/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2167,6 +2207,7 @@ export default {
},
//
residentUnemployed(id) {
if(this.newForm.unemployedDto) return
this.$http.get(`/actual/base/residentUnemployed/detail/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2187,6 +2228,7 @@ export default {
},
// 退
getVeteranDetailById(id) {
if(this.newForm.veteranDto) return
this.$http.post(`/actual/base/residentVeteran/getVeteranDetailById/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2209,6 +2251,7 @@ export default {
},
//
residentUnitedFront(id) {
if(this.newForm.unitedFrontDto) return
this.$http.get(`/actual/base/residentUnitedFront/detail/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2223,6 +2266,7 @@ export default {
},
//
getVolunteerDetailById(id) {
if(this.newForm.volunteerDto) return
this.$http.post(`/actual/base/residentVolunteer/getVolunteerDetailById/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2241,6 +2285,7 @@ export default {
},
//
getOldPeopleDetailById(id) {
if(this.newForm.oldPeopleDto) return
this.$http.post(`/actual/base/residentOldPeople/getOldPeopleDetailById/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2255,6 +2300,7 @@ export default {
},
//
residentSpecial(id) {
if(this.newForm.specialDto) return
this.$http.get(`/actual/base/residentSpecial/detail/${id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -2315,7 +2361,6 @@ export default {
}
this.newForm.eduInfoDto = this.form.eduInfoDto
this.newForm.specialDto = this.form.specialDto
console.log(this.newForm.specialDto);
},
setJSON() {
@ -2457,4 +2502,5 @@ export default {
.f-bto0{
margin-bottom: 0px !important;
}
</style>

59
src/views/components/resiInfo.vue

@ -444,36 +444,6 @@
</el-col>
</el-row>
</el-tab-pane>
<el-tab-pane label="死亡人员" >
<el-row>
<el-col :span="8">
<div class="f-flex f-bto16 f-top24">
<div class="f-labels">死亡时间 :</div>
<span class="f-left8 f-font-color">{{residentDeathRecordObj?residentDeathRecordObj.deathDate?residentDeathRecordObj.deathDate.substr(0,10):'--':'--'}}</span>
</div>
</el-col>
<el-col :span="8">
<div class="f-flex f-bto16 f-top24">
<div class="f-labels">加入原因 :</div>
<span class="f-left8 f-font-color">{{residentDeathRecordObj?residentDeathRecordObj.deathReason ?residentDeathRecordObj.deathReason :'--':'--'}}</span>
</div>
</el-col>
<el-col :span="8">
<div class="f-flex f-bto16 f-top24">
<div class="f-labels">移除时间 :</div>
<span class="f-left8 f-font-color">{{residentDeathRecordObj?residentDeathRecordObj.removeDate ?residentDeathRecordObj.removeDate.substr(0,10) :'--':'--'}}</span>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="f-flex f-bto16 f-top24">
<div class="f-labels">移除原因 :</div>
<span class="f-left8 f-font-color">{{residentDeathRecordObj?residentDeathRecordObj.removeReason?residentDeathRecordObj.removeReason:'--':'--'}}</span>
</div>
</el-col>
</el-row>
</el-tab-pane>
<el-tab-pane label="迁出" >
<el-row>
<el-col :span="8">
@ -856,6 +826,35 @@
--
</span>
</section>
</el-tab-pane> <el-tab-pane label="" v-if="resiDetailObj.deathFlag">
<el-row>
<el-col :span="8">
<div class="f-flex f-bto16 f-top24">
<div class="f-labels">死亡时间 :</div>
<span class="f-left8 f-font-color">{{residentDeathRecordObj?residentDeathRecordObj.deathDate?residentDeathRecordObj.deathDate.substr(0,10):'--':'--'}}</span>
</div>
</el-col>
<el-col :span="8">
<div class="f-flex f-bto16 f-top24">
<div class="f-labels">加入原因 :</div>
<span class="f-left8 f-font-color">{{residentDeathRecordObj?residentDeathRecordObj.deathReason ?residentDeathRecordObj.deathReason :'--':'--'}}</span>
</div>
</el-col>
<el-col :span="8">
<div class="f-flex f-bto16 f-top24">
<div class="f-labels">移除时间 :</div>
<span class="f-left8 f-font-color">{{residentDeathRecordObj?residentDeathRecordObj.removeDate ?residentDeathRecordObj.removeDate.substr(0,10) :'--':'--'}}</span>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="f-flex f-bto16 f-top24">
<div class="f-labels">移除原因 :</div>
<span class="f-left8 f-font-color">{{residentDeathRecordObj?residentDeathRecordObj.removeReason?residentDeathRecordObj.removeReason:'--':'--'}}</span>
</div>
</el-col>
</el-row>
</el-tab-pane>
</el-tabs>

4
src/views/components/resiSearch.vue

@ -39,10 +39,10 @@
</el-date-picker>
</el-form-item>
<el-form-item label="居民年龄" >
<el-input v-model="form.ageStart" class="u-item-width-resiAge" placeholder="请输入" clearable size="small">
<el-input v-model="form.ageStart" class="u-item-width-daterange" placeholder="请输入" clearable size="small">
</el-input>
<span class="u-data-tag"></span>
<el-input v-model="form.ageEnd" class="u-item-width-resiAge u-data-tag" placeholder="请输入" clearable size="small">
<el-input v-model="form.ageEnd" class="u-item-width-daterange u-data-tag" placeholder="请输入" clearable size="small">
</el-input>
</el-form-item>
<el-form-item label="文化程度" >

3
src/views/dataBoard/cpts/map/index.vue

@ -910,6 +910,9 @@ export default {
}
}
/deep/ .l7-popup {
z-index: 100;
}
/deep/ .l7-popup-content {
background: rgba(#020340, 0.58);
box-shadow: 0 0 20px 3px inset rgba(#22f, 0.1);

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

@ -155,6 +155,520 @@
</div>
</div>
</div>
<div v-if="currentTab == '兴趣爱好'">
<div class="row">
<div class="item">
<div class="field">兴趣</div>
<div class="value">{{ info.hobby }}</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.hobby_remark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '宗教'">
<div class="row">
<div class="item">
<div class="field">宗教</div>
<div class="value">{{ info.belief }}</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.belief_remark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '健康'">
<div class="row">
<div class="item">
<div class="field">残疾类别</div>
<div class="value">{{ info.disable_type }}</div>
</div>
<div class="item">
<div class="field">残疾等级</div>
<div class="value">{{ info.disable_degree }}</div>
</div>
<div class="item">
<div class="field">残疾证号</div>
<div class="value">{{ info.disable_idcard }}</div>
</div>
<div class="item">
<div class="field">残疾说明</div>
<div class="value">{{ info.disable_remark }}</div>
</div>
<div class="item">
<div class="field">监护人</div>
<div class="value">{{ info.guardian }}</div>
</div>
<div class="item">
<div class="field">劳动能力</div>
<div class="value">{{ info.skill }}</div>
</div>
<div class="item">
<div class="field">非义务教育阶段助学</div>
<div class="value">
{{ info.voluntaryEducationFlag }}
</div>
</div>
<div class="item">
<div class="field">所患大病</div>
<div class="value">
{{ info.voluntaryEducationFlag }}
</div>
</div>
<div class="item">
<div class="field">大病患病时间</div>
<div class="value">{{ info.illnessCode }}</div>
</div>
<div class="item">
<div class="field">所患慢性病</div>
<div class="value">
{{ info.chronicDiseaseCode }}
</div>
</div>
<div class="item">
<div class="field">慢病患病时间</div>
<div class="value">
{{ info.chronicDiseaseTime }}
</div>
</div>
<div class="item">
<div class="field">是否参保</div>
<div class="value">
{{ info.chronicDiseaseTime }}
</div>
</div>
<div class="item">
<div class="field">自付金额</div>
<div class="value">{{ info.selfPayAmount }}</div>
</div>
<div class="item">
<div class="field">救助金额</div>
<div class="value">{{ info.selfPayAmount }}</div>
</div>
<div class="item">
<div class="field">救助时间</div>
<div class="value">
{{ info.deliveranceAmount }}
</div>
</div>
<div class="item">
<div class="field">享受救助明细序号</div>
<div class="value">{{ info.deliveranceTime }}</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.deliveranceNum }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '工作'">
<div class="row">
<div class="item">
<div class="field">工作单位</div>
<div class="value">{{ info.workunit }}</div>
</div>
<div class="item">
<div class="field">职业</div>
<div class="value">{{ info.career }}</div>
</div>
<div class="item">
<div class="field">离退休时间</div>
<div class="value">{{ info.retire_date }}</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.retire_remark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '经济状况'">
<div class="row">
<div class="item">
<div class="field">退休金额</div>
<div class="value">{{ info.retire_income }}</div>
</div>
<div class="item">
<div class="field">月收入</div>
<div class="value">{{ info.income }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '居住'">
<div class="row">
<div class="item">
<div class="field">籍贯</div>
<div class="value">{{ info.native }}</div>
</div>
<div class="item">
<div class="field">户籍所在地</div>
<div class="value">{{ info.native_place }}</div>
</div>
<div class="item">
<div class="field">现居住地</div>
<div class="value">
{{ info.residence_current }}
</div>
</div>
<div class="item">
<div class="field">人户状况</div>
<div class="value">{{ info.household }}</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.household_remark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '家庭'">
<div class="row">
<div class="item">
<div class="field">与户主关系</div>
<div class="value">{{ info.holdingrel }}</div>
</div>
<div class="item">
<div class="field">居住情况</div>
<div class="value">{{ info.residence }}</div>
</div>
<div class="item">
<div class="field">婚姻状况</div>
<div class="value">{{ info.marital }}</div>
</div>
<div class="item">
<div class="field">配偶状况</div>
<div class="value">{{ info.spouse }}</div>
</div>
<div class="item">
<div class="field">有无赡养人</div>
<div class="value">{{ info.supporters }}</div>
</div>
<div class="item">
<div class="field">与赡养人关系</div>
<div class="value">
{{ info.supporters_relation }}
</div>
</div>
<div class="item">
<div class="field">赡养人联系电话</div>
<div class="value">
{{ info.dependantMobile }}
</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.familyInfoRemark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '党员'">
<div class="row">
<div class="item">
<div class="field">入党时间</div>
<div class="value">{{ info.joinTime }}</div>
</div>
<div class="item">
<div class="field">转正时间</div>
<div class="value">{{ info.positiveTime }}</div>
</div>
<div class="item">
<div class="field">所属支部</div>
<div class="value">{{ info.branchId }}</div>
</div>
<div class="item">
<div class="field">是否流动党员</div>
<div class="value">{{ info.flowFlag }}</div>
</div>
<div class="item">
<div class="field">流动党员活动证号</div>
<div class="value">{{ info.flowActNum }}</div>
</div>
<div class="item">
<div class="field">职务</div>
<div class="value">{{ info.partyJob }}</div>
</div>
<div class="item">
<div class="field">是否退休</div>
<div class="value">{{ info.retiredFlag }}</div>
</div>
<div class="item">
<div class="field">是否党员中心户</div>
<div class="value">{{ info.centerFlag }}</div>
</div>
<div class="item">
<div class="field">入党时所在党支部</div>
<div class="value">{{ info.joinBranchName }}</div>
</div>
<div class="item">
<div class="field">组织关系转入社区时间</div>
<div class="value">
{{ info.joinCommunityTime }}
</div>
</div>
<div class="item">
<div class="field">是否请长假</div>
<div class="value">{{ info.longHolidayFlag }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '保障房'">
<div class="row">
<div class="item">
<div class="field">住房性质</div>
<div class="value">{{ info.housingNature }}</div>
</div>
<div class="item">
<div class="field">保障类型</div>
<div class="value">{{ info.securityType }}</div>
</div>
<div class="item">
<div class="field">发证日期</div>
<div class="value">{{ info.certificateDate }}</div>
</div>
<div class="item">
<div class="field">补贴编号</div>
<div class="value">{{ info.subsidyNum }}</div>
</div>
<div class="item">
<div class="field">补贴金额</div>
<div class="value">{{ info.subsidyAmount }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '失业'">
<div class="row">
<div class="item">
<div class="field">原工作单位</div>
<div class="value">{{ info.originWorkUnit }}</div>
</div>
<div class="item">
<div class="field">失业时间</div>
<div class="value">{{ info.unemploymentTime }}</div>
</div>
<div class="item">
<div class="field">失业证号</div>
<div class="value">{{ info.unemploymentTime }}</div>
</div>
<div class="item">
<div class="field">再就业优惠证号</div>
<div class="value">{{ info.employmentNum }}</div>
</div>
<div class="item">
<div class="field">技术特长</div>
<div class="value">{{ info.specialSkill }}</div>
</div>
<div class="item">
<div class="field">失业原因</div>
<div class="value">
{{ info.unemploymentReason }}
</div>
</div>
<div class="item">
<div class="field">是否就业困难对象</div>
<div class="value">
{{ info.employmentHardFlag }}
</div>
</div>
<div class="item">
<div class="field">劳动能力就业愿望</div>
<div class="value">{{ info.employmentWish }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '退役军人'">
<div class="row">
<div class="item">
<div class="field">入伍时间</div>
<div class="value">{{ info.joinArmyTime }}</div>
</div>
<div class="item">
<div class="field">退伍时间</div>
<div class="value">{{ info.leaveArmyTime }}</div>
</div>
<div class="item">
<div class="field">服役单位</div>
<div class="value">{{ info.serviceUnit }}</div>
</div>
<div class="item">
<div class="field">接收单位</div>
<div class="value">{{ info.receiveUnit }}</div>
</div>
<div class="item">
<div class="field">待安置补助金</div>
<div class="value">{{ info.settlementAmount }}</div>
</div>
<div class="item">
<div class="field">培训状况</div>
<div class="value">{{ info.trainDesc }}</div>
</div>
<div class="item">
<div class="field">参战时间开始日期</div>
<div class="value">{{ info.joinWarStartTime }}</div>
</div>
<div class="item">
<div class="field">参战时间截止日期</div>
<div class="value">{{ info.joinWarEndTime }}</div>
</div>
<div class="item">
<div class="field">现就业状况</div>
<div class="value">
{{ info.employmentSituation }}
</div>
</div>
<div class="item">
<div class="field">是否办理公益性岗位</div>
<div class="value">
{{ info.pubWelfareJobFlag }}
</div>
</div>
</div>
</div>
<div v-if="currentTab == '统战人员'">
<div class="row">
<div class="item">
<div class="field">职务</div>
<div class="value">{{ info.duty }}</div>
</div>
<div class="item">
<div class="field">探亲情况</div>
<div class="value">{{ info.visitation }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '志愿者'">
<div class="row">
<div class="item">
<div class="field">志愿者类别</div>
<div class="value">
{{ info.volunteerCategory }}
</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.volunteerRemark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '老年人'">
<div class="row">
<div class="item">
<div class="field">高龄补助</div>
<div class="value">{{ info.volunteerRemark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '特殊人群'">
<div class="row">
<div class="item">
<div class="field">特殊人群类别</div>
<div class="value">
{{ info.specialCategoryCode }}
</div>
</div>
</div>
</div>
<div v-if="currentTab == '出生信息'">
<div class="row">
<div class="item">
<div class="field">出生地</div>
<div class="value">{{ info.birthplace }}</div>
</div>
<div class="item">
<div class="field">父亲姓名</div>
<div class="value">{{ info.father }}</div>
</div>
<div class="item">
<div class="field">母亲姓名</div>
<div class="value">{{ info.mother }}</div>
</div>
<div class="item">
<div class="field">胎次</div>
<div class="value">{{ info.count }}</div>
</div>
<div class="item">
<div class="field">申报日期</div>
<div class="value">{{ info.reportDate }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '死亡信息'">
<div class="row">
<div class="item">
<div class="field">死亡时间</div>
<div class="value">{{ info.deathDate }}</div>
</div>
<div class="item">
<div class="field">加入原因</div>
<div class="value">{{ info.deathReason }}</div>
</div>
<div class="item">
<div class="field">移除时间</div>
<div class="value">{{ info.removeDate }}</div>
</div>
<div class="item">
<div class="field">移除原因</div>
<div class="value">{{ info.removeReason }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '迁出'">
<div class="row">
<div class="item">
<div class="field">迁出信息</div>
<div class="value">{{ info.outOfTime }}</div>
</div>
<div class="item">
<div class="field">迁出类别</div>
<div class="value">{{ info.type }}</div>
</div>
<div class="item">
<div class="field">迁出原因</div>
<div class="value">{{ info.reason }}</div>
</div>
<div class="item">
<div class="field">迁出至组织</div>
<div class="value">{{ info.deptId }}</div>
</div>
<div class="item">
<div class="field">小区</div>
<div class="value">{{ info.villageName }}</div>
</div>
<div class="item">
<div class="field">楼号</div>
<div class="value">{{ info.buildName }}</div>
</div>
<div class="item">
<div class="field">单元</div>
<div class="value">{{ info.unitName }}</div>
</div>
<div class="item">
<div class="field">房屋</div>
<div class="value">{{ info.homeName }}</div>
</div>
<div class="item">
<div class="field">外迁地址</div>
<div class="value">{{ info.address }}</div>
</div>
</div>
</div>
</div>
</template>
</popup>
@ -245,20 +759,95 @@ export default {
name: "--",
grid: "--",
retire_date: "--",
joinTime: "--",
positiveTime: "--",
branchId: "--",
flowFlag: "--",
flowActNum: "--",
partyJob: "--",
retiredFlag: "--",
centerFlag: "--",
joinBranchName: "--",
joinCommunityTime: "--",
longHolidayFlag: "--",
ensure_house_id: "--",
housingNature: "--",
securityType: "--",
certificateDate: "--",
subsidyNum: "--",
subsidyAmount: "--",
unemployed_id: "--",
originWorkUnit: "--",
unemploymentTime: "--",
unemploymentNum: "--",
employmentNum: "--",
specialSkill: "--",
unemploymentReason: "--",
employmentHardFlag: "--",
employmentWish: "--",
veteran_id: "--",
joinArmyTime: "--",
leaveArmyTime: "--",
serviceUnit: "--",
receiveUnit: "--",
settlementAmount: "--",
trainDesc: "--",
joinWarStartTime: "--",
joinWarEndTime: "--",
employmentSituation: "--",
pubWelfareJobFlag: "--",
united_front_id: "--",
duty: "--",
visitation: "--",
volunteer_id: "--",
volunteerCategory: "--",
volunteerRemark: "--",
old_people_id: "--",
oldSubsidy: "--",
special_id: "--",
specialCategoryCode: "--",
birth_record_id: "--",
birthplace: "--",
father: "--",
mother: "--",
count: "--",
reportDate: "--",
death_record_id: "--",
deathDate: "--",
deathReason: "--",
removeDate: "--",
removeReason: "--",
move_out_record_id: "--",
outOfTime: "--",
type: "--",
reason: "--",
deptId: "--",
villageId: "--",
villageName: "--",
buildId: "--",
buildName: "--",
unitId: "--",
unitName: "--",
homeId: "--",
homeName: "--",
address: "--",
residence_current: "--",
},
currentTabIndex: 0,
startTabIndex: 0,
tabList: [
BaseTabList: [
"教育信息",
"兴趣爱好",
"宗教信仰",
"健康信息",
"工作信息",
"宗教",
"健康",
"工作",
"经济状况",
"居住信息",
"家庭信息",
"居住",
"家庭",
],
tabList: [],
};
},
@ -310,12 +899,27 @@ export default {
},
},
{
mockId: 60069644,
mockId: 61172054,
}
);
if (code === 0) {
this.info = { ...this.info, ...data[0] };
const { info } = this;
let tabList = this.BaseTabList;
info.crowd && tabList.push("党员");
info.srs && tabList.push("保障房");
info.unemployed && tabList.push("失业");
info.exs && tabList.push("退役军人");
info.ufs && tabList.push("统战人员");
info.volunteer && tabList.push("志愿者");
info.aged && tabList.push("老年人");
info.special_popu && tabList.push("特殊人群");
tabList.push("出生信息");
tabList.push("死亡信息");
tabList.push("迁出");
this.tabList = tabList;
} else {
this.$message.error(msg);
}

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

@ -42,7 +42,7 @@
<div
class="row-item marginleft10"
@click="toListPage('self_dwelling')"
@click="toListPage('self_dwelling', '自住房屋')"
>
<div class="item-one">
<img
@ -62,7 +62,7 @@
</div>
<div
class="right-row margintop18"
@click="toListPage('lease')"
@click="toListPage('lease', '出租房屋')"
>
<div class="row-item">
<div class="item-one">
@ -81,7 +81,7 @@
<div
class="row-item marginleft10"
@click="toListPage('unused')"
@click="toListPage('unused', '闲置房屋')"
>
<div class="item-one">
<img
@ -177,12 +177,13 @@ export default {
},
},
methods: {
toListPage(type = "") {
toListPage(type = "", type_name = "") {
this.$router.push({
path: "/dataBoard/renfang/house-list",
query: {
org_id: this.orgId,
type,
type_name,
},
});
},

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

@ -21,7 +21,7 @@
</div>
<div class="pie-right">
<div class="right-row">
<div class="row-item" @click="toResiListPage">
<div class="row-item" @click="toListPage">
<div class="item-one">
<img
class="img"
@ -38,7 +38,7 @@
<div
class="row-item marginleft10"
@click="toResiListPage('inhabitant')"
@click="toListPage('inhabitant', '常住人口')"
>
<div class="item-one">
<img
@ -59,7 +59,7 @@
<div class="right-row margintop18">
<div
class="row-item"
@click="toResiListPage('floating')"
@click="toListPage('floating', '流动人口')"
>
<div class="item-one">
<img
@ -156,15 +156,17 @@ export default {
this.getData();
},
methods: {
toResiListPage(type = "") {
toListPage(type = "", type_name = "") {
this.$router.push({
path: "/dataBoard/renfang/resi-list",
query: {
org_id: this.orgId,
type,
type_name,
},
});
},
pieInitOk() {
this.pieInitState = true;
},

188
src/views/dataBoard/renfang/cpts/rkfx.vue

@ -17,6 +17,7 @@
class="legend-row"
:key="'pie' + item.name"
v-for="item in pieData"
@click="handleClickItem(item)"
>
<div class="name">{{ item.name }}</div>
<div class="content">
@ -122,6 +123,19 @@ export default {
this.getPie();
},
handleClickItem(item) {
const { type, name } = item;
this.$router.push({
path: "/dataBoard/renfang/resi-list",
query: {
org_id: this.orgId,
type,
type_category: this.currentTab,
type_name: name,
},
});
},
//
async getInfo() {
const url = "resident_analyze";
@ -176,50 +190,166 @@ export default {
const { currentTab, info } = this;
if (currentTab == "性别") {
this.pieData = [
{ value: info.male_count, name: "男" },
{ value: info.female_count, name: "女" },
{
value: info.male_count,
type: "male_count",
name: "男性",
},
{
value: info.female_count,
type: "female_count",
name: "女性",
},
];
} else if (currentTab == "户籍") {
this.pieData = [
{ value: info.local_count, name: "本地户籍" },
{ value: info.field_count, name: "外地户籍" },
{
value: info.local_count,
type: "local_count",
name: "本地户籍",
},
{
value: info.field_count,
type: "field_count",
name: "外地户籍",
},
];
} else if (currentTab == "人户状况") {
this.pieData = [
{ value: info.resi_y_house_y_count, name: "人户一致" },
{ value: info.resi_y_house_n_count, name: "人在户不在" },
{ value: info.resi_n_house_y_count, name: "户在人不在" },
{
value: info.resi_y_house_y_count,
type: "resi_y_house_y_count",
name: "人户一致",
},
{
value: info.resi_y_house_n_count,
type: "resi_y_house_n_count",
name: "人在户不在",
},
{
value: info.resi_n_house_y_count,
type: "resi_n_house_y_count",
name: "户在人不在",
},
];
} else if (currentTab == "年龄") {
this.pieData = [
{ value: info.age50_count, name: "50岁以下" },
{ value: info.age5059_count, name: "50-59岁" },
{ value: info.age6069_count, name: "60-69岁" },
{ value: info.age7079_count, name: "70-79岁" },
{ value: info.age80_count, name: "80岁以上" },
{
value: info.age50_count,
type: "age50_count",
name: "50岁以下",
},
{
value: info.age5059_count,
type: "age5059_count",
name: "50-59岁",
},
{
value: info.age6069_count,
type: "age6069_count",
name: "60-69岁",
},
{
value: info.age7079_count,
type: "age7079_count",
name: "70-79岁",
},
{
value: info.age80_count,
type: "age80_count",
name: "80岁以上",
},
];
} else if (currentTab == "志愿者类别") {
this.pieData = [
{ value: info.culture_count, name: "文化队伍" },
{ value: info.committee_count, name: "楼委会" },
{ value: info.capable_count, name: "能人达人" },
{ value: info.friend_count, name: "老友俱乐部" },
{ value: info.agent_count, name: "代办员" },
{ value: info.mediator_count, name: "调解员" },
{ value: info.collector_count, name: "采集员" },
{ value: info.security_count, name: "治安巡逻员" },
{ value: info.party_mem_count, name: "党员中心户" },
{
value: info.culture_count,
type: "culture_count",
name: "文化队伍",
},
{
value: info.committee_count,
type: "committee_count",
name: "楼委会",
},
{
value: info.capable_count,
type: "capable_count",
name: "能人达人",
},
{
value: info.friend_count,
type: "friend_count",
name: "老友俱乐部",
},
{
value: info.agent_count,
type: "agent_count",
name: "代办员",
},
{
value: info.mediator_count,
type: "mediator_count",
name: "调解员",
},
{
value: info.collector_count,
type: "collector_count",
name: "采集员",
},
{
value: info.security_count,
type: "security_count",
name: "治安巡逻员",
},
{
value: info.party_mem_count,
type: "party_mem_count",
name: "党员中心户",
},
];
} else if (currentTab == "党员文化程度") {
this.pieData = [
{ value: info.primary_count, name: "小学及文盲" },
{ value: info.junior_high_count, name: "初中" },
{ value: info.second_speci_count, name: "中专" },
{ value: info.high_school_count, name: "高中" },
{ value: info.junior_college_count, name: "大专" },
{ value: info.undergrad_count, name: "本科" },
{ value: info.master_count, name: "硕士" },
{ value: info.doctor_count, name: "博士" },
{
value: info.primary_count,
type: "primary_count",
name: "小学及文盲",
},
{
value: info.junior_high_count,
type: "junior_high_count",
name: "初中",
},
{
value: info.second_speci_count,
type: "second_speci_count",
name: "中专",
},
{
value: info.high_school_count,
type: "high_school_count",
name: "高中",
},
{
value: info.junior_college_count,
type: "junior_college_count",
name: "大专",
},
{
value: info.undergrad_count,
type: "undergrad_count",
name: "本科",
},
{
value: info.master_count,
type: "master_count",
name: "硕士",
},
{
value: info.doctor_count,
type: "doctor_count",
name: "博士",
},
];
} else if (currentTab == "下级人口分布") {
this.pieData = [];

111
src/views/dataBoard/renfang/cpts/rkyj.vue

@ -3,23 +3,48 @@
<div class="title">
<div>预警居民类别</div>
<div>
黄色预警<img
class="img"
src="@/assets/images/shuju/renfang/remark.png"
alt
/>
<span>黄色预警</span>
<div class="explain">
<img
class="btn-explain"
src="@/assets/images/shuju/renfang/remark.png"
/>
<div class="explain-box">
<div
class="explain-item"
v-for="(dataitem, index) in list"
:key="index"
>
<span>{{ dataitem.type_name }}</span>
<b>{{ dataitem.yellow_threshold }}</b>
</div>
</div>
</div>
</div>
<div>
红色预警<img
class="img"
src="@/assets/images/shuju/renfang/remark.png"
alt
/>
<span>红色预警</span>
<div class="explain">
<img
class="btn-explain"
src="@/assets/images/shuju/renfang/remark.png"
/>
<div class="explain-box">
<div
class="explain-item"
v-for="(dataitem, index) in list"
:key="index"
>
<span>{{ dataitem.type_name }}</span>
<b>{{ dataitem.red_threshold }}</b>
</div>
</div>
</div>
</div>
</div>
<div class="list">
<div v-for="(dataitem, index) in list" :key="index" class="item">
<div class="item-title">{{ dataitem.type_name }}</div>
<div
class="item-num"
@click="
@ -30,10 +55,9 @@
class="img"
src="@/assets/images/shuju/renfang/warning-yellow.png"
alt
/>{{ dataitem.yellow_warn }} {{
dataitem.yellow_threshold
}}
/>{{ dataitem.yellow_warn }}
</div>
<div
class="item-num"
@click="
@ -44,7 +68,7 @@
class="img"
src="@/assets/images/shuju/renfang/warning-red.png"
alt
/>{{ dataitem.red_warn }} {{ dataitem.red_threshold }}
/>{{ dataitem.red_warn }}
</div>
</div>
</div>
@ -117,6 +141,8 @@ export default {
</script>
<style lang="scss" scoped>
@import "@/assets/scss/c/config.scss";
@import "@/assets/scss/c/function.scss";
.m-list {
padding-bottom: 20px;
@ -124,16 +150,63 @@ export default {
margin: 24px 0 24px 24px;
display: flex;
justify-content: space-between;
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
.img {
margin-left: 4px;
width: 15px;
height: 15px;
> div {
width: 33%;
display: flex;
align-items: center;
justify-content: center;
&:first-child {
text-align: left;
justify-content: flex-start;
}
.explain {
position: relative;
margin-left: 4px;
.btn-explain {
width: 15px;
height: 15px;
}
&:hover {
.explain-box {
display: block;
}
}
.explain-box {
position: absolute;
display: none;
top: 30px;
left: -140px;
padding: 15px 5px;
box-sizing: border-box;
width: 180px;
background: #00023a;
border-radius: 2px;
border: 1px solid #1a95ff;
.explain-item {
@include toe;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: rgba(#ffffff, 0.85);
line-height: 28px;
span {
display: inline-block;
margin-right: 5px;
min-width: 90px;
text-align: right;
color: rgba(#ffffff, 0.65);
}
}
}
}
}
}

35
src/views/dataBoard/renfang/house/list.vue

@ -152,10 +152,14 @@ export default {
};
},
mounted() {
activated() {
this.org_id = getQueryPara("org_id");
this.houseType = getQueryPara("type");
const type_name = getQueryPara("type_name");
this.breadList[1].meta.title = type_name + "房屋列表";
this.tableTitle = type_name + "房屋列表";
this.getList();
this.getCount();
},
methods: {
@ -193,7 +197,7 @@ export default {
{
queryParam: {
org_id,
houseType,
type: houseType,
pageNo,
pageSize,
},
@ -230,6 +234,33 @@ export default {
this.$message.error(msg);
}
},
async getList() {
const { org_id, houseType, pageNo, pageSize } = this;
const url = "house_list_total";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type: houseType,
pageNo,
pageSize,
},
},
{
mockId: 63070189,
}
);
if (code === 0) {
this.total = data[0].count;
} else {
this.$message.error(msg);
}
},
},
destroyed() {

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

@ -245,9 +245,14 @@
src="~@/assets/images/shuju/main/card-title-bg-800.png"
class="box-title-bg"
/>
<div class="box-title-txt">居民分类分析</div>
<div class="box-title-txt" v-if="!displayedForecast">居民分类分析</div>
<div class="box-title-txt" v-else>居民分类分析-智能预测</div>
<div class="box-title-btn">
<div
class="box-title-btn"
v-if="!displayedForecast"
@click="displayedForecast = true"
>
<img
src="~@/assets/images/shuju/renfang/index/znyc.png"
/>
@ -256,9 +261,20 @@
src="~@/assets/images/shuju/renfang/index/i-hint.png"
/>
</div>
<div
class="box-title-btn"
v-else
@click="displayedForecast = false"
>
<img
src="~@/assets/images/shuju/main/back-on.png"
/>
<span style="color: #fff">返回</span>
</div>
</div>
<div class="list">
<div class="list" v-if="!displayedForecast">
<div
class="item"
@click="toResiClassPage(item.type_id, item.name)"
@ -288,6 +304,37 @@
</div>
</div>
</div>
<div class="list" v-else>
<div
class="item"
:key="item.code + index"
v-for="(item, index) in resiCategoryForecastData"
>
<div>{{ ("0" + (index + 1)).substr(-2) }}.</div>
<div class="item-name">{{ item.name }}</div>
<div class="item-count">
<b>{{ item.count }}</b>
</div>
<div class="item-progress">
<b :style="{ width: item.ratio + '%' }"></b>
</div>
<div class="item-per">
<span>较上一年</span>
<img
v-if="item.growth >= 0"
src="~@/assets/images/shuju/renfang/index/up.png"
/>
<img
v-else
src="~@/assets/images/shuju/renfang/index/down.png"
/>
<b>{{ item.growthAbs }}</b>
<span></span>
</div>
</div>
</div>
</div>
</div>
@ -413,7 +460,9 @@ export default {
},
],
resiCategoryData: [],
resiCategoryData: [], //
resiCategoryForecastData: [], //
displayedForecast: false, //
searchModule: {
displayedCard: false,
@ -436,7 +485,7 @@ export default {
teenagers_ratio: "--",
},
displayedResiId: "1",
displayedResiId: "",
displayedHouseId: "",
};
},
@ -465,6 +514,7 @@ export default {
// await this.getMapData();
// await this.getSubMapData();
this.getResiCategoryData();
this.getResiCategoryForecastData();
this.getPerInfo();
this.loading = true;
@ -639,6 +689,39 @@ export default {
}
},
//
async getResiCategoryForecastData() {
console.log("=========================getResiCategoryForecastData");
const url = "resident_class_predict";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id: this.orgData.id,
},
},
{
mockId: 60064667,
}
);
if (code === 0) {
this.resiCategoryForecastData = data.map((item) => {
return {
code: item.resident_type,
name: item.resident_type_name,
count: item.resident_count,
ratio: item.resident_ratio,
growth: item.change_count,
growthAbs: Math.abs(item.change_count),
};
});
} else {
this.$message.error(msg);
}
},
//
async getMapData() {
console.log("=========================getMapData");

257
src/views/dataBoard/renfang/resi/analyze.vue

@ -0,0 +1,257 @@
<template>
<div class="g-pgi">
<!-- 组织路由 -->
<cpt-bread
:separator="'/'"
@tap="handleClickBreadItem"
:breadList="breadList"
></cpt-bread>
<div class="m-title">
<img
class="title_img"
src="@/assets/images/index/list-logo.png"
alt
/>
<div class="tip_title">{{ tableTitle }}</div>
<div class="title_line"></div>
</div>
<div class="g-listbox">
<cpt-tb
:col-list="colList"
:loading="loading"
:header="header"
:list="list"
:total="total"
@handleSizeChange="handleSizeChange"
@handlePageNoChange="handlePageNoChange"
@operate="showInfo"
></cpt-tb>
</div>
<resi-details
@close="displayedResiId = ''"
:resi-id="displayedResiId"
v-if="displayedResiId"
/>
</div>
</template>
<script>
import cptTb from "@/views/dataBoard/cpts/tb";
import cptBread from "@/views/dataBoard/renfang/cpts/bread";
import resiDetails from "@/views/dataBoard/cpts/resi-details";
import { requestPostBi } from "@/js/dai/request-bipass";
import getQueryPara from "dai-js/modules/getQueryPara";
export default {
name: "resi-list",
components: {
cptTb,
cptBread,
resiDetails,
},
data() {
return {
breadList: [
{
type: "back",
meta: {
title: "人房总览",
},
},
{
meta: {
title: "居民列表",
},
},
],
tableTitle: "居民列表",
searchName: "",
orgLevel: "",
org_id: "",
resiType: "", //
loading: true,
pageSize: 10,
pageNo: 1,
total: 0,
srcTableData: [],
list: [],
colList: [
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "15%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
],
header: [
"序号",
"姓名",
"所属网格",
"所属房屋",
"手机",
"身份证",
"性别",
"出生日期",
"操作",
],
displayedResiId: "",
};
},
activated() {
this.org_id = getQueryPara("org_id");
this.resiType = getQueryPara("type");
const type_name = getQueryPara("type_name");
this.breadList[1].meta.title = type_name + "居民列表";
this.tableTitle = type_name + "居民列表";
this.getList();
this.getCount();
},
methods: {
handleClickBreadItem({ item }) {
if (item.type == "back") {
this.$router.back();
}
},
handleSearch() {},
showInfo(index) {
let item = this.srcTableData[index];
this.displayedResiId = item.user_id;
},
handlePageNoChange(pageNo) {
this.pageNo = pageNo;
this.getList();
},
handleSizeChange(pageSize) {
this.pageSize = pageSize;
this.getList();
},
async getList() {
const { org_id, resiType, pageNo, pageSize } = this;
this.loading = true;
const url = "resident_analyze_list";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type: resiType,
pageNo,
pageSize,
},
},
{
mockId: 60069169,
}
);
this.loading = false;
if (code === 0) {
this.srcTableData = data;
// this.total = data.total;
this.list = data.map((item, index) => {
return [
index + 1,
item.user_name ? item.user_name : "--",
item.grid ? item.grid : "--",
item.house ? item.house : "--",
item.telephone ? item.telephone : "--",
item.idcard ? item.idcard : "--",
item.gender ? item.gender : "--",
item.birthday ? item.birthday : "--",
{ type: "operate", list: ["查看"] },
];
});
} else {
this.$message.error(msg);
}
},
async getCount() {
const { org_id, resiType, pageNo, pageSize } = this;
const url = "resident_analyze_list_total";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type: resiType,
pageNo,
pageSize,
},
},
{
mockId: 63070408,
}
);
if (code === 0) {
this.total = data[0].count;
} else {
this.$message.error(msg);
}
},
},
destroyed() {
console.log("我已经离开了!");
},
};
</script>
<style lang="scss" src="@/assets/scss/dataBoard/listBox.scss" scoped></style>

57
src/views/dataBoard/renfang/resi/class.vue

@ -16,7 +16,7 @@
<div class="tip_title">{{ tableTitle }}</div>
<div class="title_line"></div>
<div class="second-select">
<div class="second-select" v-if="type_id == '6'">
<el-select
v-model="subclassId"
:popper-append-to-body="false"
@ -159,18 +159,27 @@ export default {
};
},
mounted() {
activated() {
this.org_id = getQueryPara("org_id");
this.type_id = getQueryPara("type_id");
const type_name = getQueryPara("type_name");
this.getList();
this.breadList[1].meta.title = type_name;
this.breadList[1].meta.title = type_name + "居民列表";
this.tableTitle = type_name + "居民列表";
this.getList();
this.getCount();
if (this.type_id == "6") {
this.getSubclass();
}
},
watch: {
subclassId() {
this.getList();
this.getCount();
},
},
methods: {
handleClickBreadItem({ item }) {
if (item.type == "back") {
@ -196,10 +205,11 @@ export default {
},
async getSubclass() {
console.log("=================getSubclass");
const { org_id, type_id } = this;
this.loading = true;
const url = "resident_class_list";
const url = "resident_analyze_list";
const { data, code, msg } = await requestPostBi(
url,
@ -210,7 +220,7 @@ export default {
},
},
{
mockId: 60069169,
mockId: 62648939,
}
);
@ -219,8 +229,8 @@ export default {
if (code === 0) {
this.subclassList = data.map((item, index) => {
return {
label: item.label,
value: item.value,
label: item.type_name,
value: item.type_id,
};
});
} else {
@ -229,7 +239,7 @@ export default {
},
async getList() {
const { org_id, type_id, pageNo, pageSize } = this;
const { org_id, type_id, subclassId, pageNo, pageSize } = this;
this.loading = true;
const url = "resident_class_list";
@ -240,6 +250,7 @@ export default {
queryParam: {
org_id,
type_id,
subclassId,
pageNo,
pageSize,
},
@ -273,6 +284,34 @@ export default {
this.$message.error(msg);
}
},
async getCount() {
const { org_id, type_id, subclassId, pageNo, pageSize } = this;
const url = "resident_class_list_total";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type_id,
subclassId,
pageNo,
pageSize,
},
},
{
mockId: 63070913,
}
);
if (code === 0) {
this.total = data[0].count;
} else {
this.$message.error(msg);
}
},
},
destroyed() {

36
src/views/dataBoard/renfang/resi/list.vue

@ -139,10 +139,15 @@ export default {
};
},
mounted() {
activated() {
this.org_id = getQueryPara("org_id");
this.resiType = getQueryPara("type");
const type_name = getQueryPara("type_name");
this.breadList[1].meta.title = type_name + "居民列表";
this.tableTitle = type_name + "居民列表";
this.getList();
this.getCount();
},
methods: {
@ -180,7 +185,7 @@ export default {
{
queryParam: {
org_id,
resiType,
type: resiType,
pageNo,
pageSize,
},
@ -214,6 +219,33 @@ export default {
this.$message.error(msg);
}
},
async getCount() {
const { org_id, resiType, pageNo, pageSize } = this;
const url = "resident_list_total";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type: resiType,
pageNo,
pageSize,
},
},
{
mockId: 63070408,
}
);
if (code === 0) {
this.total = data[0].count;
} else {
this.$message.error(msg);
}
},
},
destroyed() {

45
src/views/dataBoard/renfang/warn/building.vue

@ -123,13 +123,16 @@ export default {
};
},
mounted() {
activated() {
this.org_id = getQueryPara("org_id");
this.level = getQueryPara("level");
this.type_id = getQueryPara("type_id");
const type_name = getQueryPara("type_name");
this.breadList[1].meta.title = type_name + "预警楼栋";
this.tableTitle =
type_name + (this.level == "red" ? "红色" : "黄色") + "预警楼栋";
this.breadList[1].meta.title = this.tableTitle;
this.getList();
this.getCount();
},
methods: {
@ -148,7 +151,7 @@ export default {
showInfo(index) {
let item = this.srcTableData[index];
this.displayedId = building_id;
this.displayedId = item.building_id;
this.breadList.push({
meta: {
@ -171,17 +174,15 @@ export default {
const { org_id, type_id, level, pageNo, pageSize } = this;
this.loading = true;
const url =
level == "yellow"
? "resident_warn_building_y"
: "resident_warn_building_r";
const url = "resident_warn_building";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type_id,
warn_type: level,
resi_type: type_id,
pageNo,
pageSize,
},
@ -212,6 +213,34 @@ export default {
this.$message.error(msg);
}
},
async getCount() {
const { org_id, type_id, level, pageNo, pageSize } = this;
const url = "resident_warn_building_total";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
warn_type: level,
resi_type: type_id,
pageNo,
pageSize,
},
},
{
mockId: 63071730,
}
);
if (code === 0) {
this.total = data[0].count;
} else {
this.$message.error(msg);
}
},
},
destroyed() {

28
src/views/dataBoard/renfang/warn/resi.vue

@ -125,6 +125,7 @@ export default {
mounted() {
this.getList();
this.getCount();
},
methods: {
@ -188,6 +189,33 @@ export default {
this.$message.error(msg);
}
},
async getCount() {
const { org_id, type_id, pageNo, pageSize } = this;
const url = "resident_class_list_total";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type_id,
pageNo,
pageSize,
},
},
{
mockId: 63071800,
}
);
if (code === 0 && Array.isArray(data) && data.length > 0) {
this.total = data[0].count;
} else {
this.$message.error(msg);
}
},
},
destroyed() {

276
src/views/dataBoardMain/main.vue

@ -1,46 +1,51 @@
<template>
<fixed1920 class="g-fx">
<div
v-loading.fullscreen.lock="loading"
:element-loading-text="$t('loading')"
:class="[
'g-pg',
{ 'z-sidebar--fold': $store.state.sidebarFold },
{
'z-sidebar--noside': true,
},
{ 'z-iframe': $store.state.inIframe },
]"
>
<template v-if="!loading">
<img
class="i-corner z-left-top"
src="~@/assets/images/shuju/main/corner-left-top.png"
/>
<img
class="i-corner z-right-top"
src="~@/assets/images/shuju/main/corner-right-top.png"
/>
<img
class="i-corner z-right-bottom"
src="~@/assets/images/shuju/main/corner-right-bottom.png"
/>
<img
class="i-corner z-left-bottom"
src="~@/assets/images/shuju/main/corner-left-bottom.png"
/>
<fixed1920 class="g-fx">
<div
v-loading.fullscreen.lock="loading"
:element-loading-text="$t('loading')"
:class="[
'g-pg',
{ 'z-sidebar--fold': $store.state.sidebarFold },
{
'z-sidebar--noside': true,
},
{ 'z-iframe': $store.state.inIframe },
]"
>
<template v-if="!loading">
<img
class="i-corner z-left-top"
src="~@/assets/images/shuju/main/corner-left-top.png"
/>
<img
class="i-corner z-right-top"
src="~@/assets/images/shuju/main/corner-right-top.png"
/>
<img
class="i-corner z-right-bottom"
src="~@/assets/images/shuju/main/corner-right-bottom.png"
/>
<img
class="i-corner z-left-bottom"
src="~@/assets/images/shuju/main/corner-left-bottom.png"
/>
<main-navbar ref="ref_navbar" v-if="!$store.state.inIframe" />
<main-navbar ref="ref_navbar" v-if="!$store.state.inIframe" />
<div class="g-cnt">
<main-content
v-if="!$store.state.contentIsNeedRefresh"
@changeCustomerName="changeCustomerName"
/>
</div>
</template>
</div>
</fixed1920>
<div
class="g-cnt"
:style="{
minHeight: $store.state.fixed1920.height - 100 + 'px',
}"
>
<main-content
v-if="!$store.state.contentIsNeedRefresh"
@changeCustomerName="changeCustomerName"
/>
</div>
</template>
</div>
</fixed1920>
</template>
<script>
@ -53,103 +58,106 @@ import { requestPost } from "@/js/dai/request";
import fixed1920 from "@/views/components/fixed1920.vue";
export default {
provide() {
return {
//
refresh() {
this.$store.state.contentIsNeedRefresh = true;
this.$nextTick(() => {
this.$store.state.contentIsNeedRefresh = false;
});
},
};
},
data() {
return {
loading: true,
userType: localStorage.getItem("userType"),
};
},
components: {
MainNavbar,
MainContent,
fixed1920,
},
provide() {
return {
//
refresh() {
this.$store.state.contentIsNeedRefresh = true;
this.$nextTick(() => {
this.$store.state.contentIsNeedRefresh = false;
});
},
};
},
data() {
return {
loading: true,
userType: localStorage.getItem("userType"),
};
},
components: {
MainNavbar,
MainContent,
fixed1920,
},
watch: {
$route: "routeHandle",
},
async created() {
this.windowResizeHandle();
this.routeHandle(this.$route);
Promise.all([this.getWorkUserInfo()]).then(() => {
this.loading = false;
});
},
computed: {},
methods: {
changeCustomerName(customerName) {
this.$refs["ref_navbar"].changeCustomerName(customerName);
},
//
windowResizeHandle() {
this.$store.state.sidebarFold =
document.documentElement["clientWidth"] <= 992 || false;
window.addEventListener(
"resize",
debounce(() => {
this.$store.state.sidebarFold =
document.documentElement["clientWidth"] <= 992 || false;
}, 150)
);
},
// ,
routeHandle(route) {
if (!route.meta.isTab) {
this.$store.state.mainShuju.activeName = "";
this.$store.state.mainShuju.contentTabsActiveName = "";
return false;
}
var tab = this.$store.state.contentTabs.filter(
(item) => item.name === route.name
)[0];
if (!tab) {
tab = {
...window.SITE_CONFIG["contentTabDefault"],
...route.meta,
name: route.name,
params: { ...route.params },
query: { ...route.query },
};
this.$store.state.contentTabs =
this.$store.state.contentTabs.concat(tab);
}
watch: {
$route: "routeHandle",
},
async created() {
this.windowResizeHandle();
this.routeHandle(this.$route);
Promise.all([this.getWorkUserInfo()]).then(() => {
this.loading = false;
});
},
computed: {},
methods: {
changeCustomerName(customerName) {
this.$refs["ref_navbar"].changeCustomerName(customerName);
},
//
windowResizeHandle() {
this.$store.state.sidebarFold =
document.documentElement["clientWidth"] <= 992 || false;
window.addEventListener(
"resize",
debounce(() => {
this.$store.state.sidebarFold =
document.documentElement["clientWidth"] <= 992 || false;
}, 150)
);
},
// ,
routeHandle(route) {
if (!route.meta.isTab) {
this.$store.state.mainShuju.activeName = "";
this.$store.state.mainShuju.contentTabsActiveName = "";
return false;
}
var tab = this.$store.state.contentTabs.filter(
(item) => item.name === route.name
)[0];
if (!tab) {
tab = {
...window.SITE_CONFIG["contentTabDefault"],
...route.meta,
name: route.name,
params: { ...route.params },
query: { ...route.query },
};
this.$store.state.contentTabs =
this.$store.state.contentTabs.concat(tab);
}
this.$store.state.mainShuju.activeName = tab.menuId;
this.$store.state.mainShuju.contentTabsActiveName = tab.name;
},
this.$store.state.mainShuju.activeName = tab.menuId;
this.$store.state.mainShuju.contentTabsActiveName = tab.name;
},
//
async getWorkUserInfo() {
const url = "/epmetuser/customerstaff/staffbasicinfo";
let params = {};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$store.state.user = { ...data };
console.log("user---hahha", this.$store.state.user);
localStorage.setItem("roleList", data.roleList);
localStorage.setItem("customerId", data.customerId);
localStorage.setItem("staffId", data.id);
localStorage.setItem("agencyId", data.agencyId);
localStorage.setItem("level", data.level);
if (!localStorage.getItem("customerName")) {
localStorage.setItem("customerName", data.customerName || "");
}
} else {
this.$message.error(msg);
}
},
},
//
async getWorkUserInfo() {
const url = "/epmetuser/customerstaff/staffbasicinfo";
let params = {};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$store.state.user = { ...data };
console.log("user---hahha", this.$store.state.user);
localStorage.setItem("roleList", data.roleList);
localStorage.setItem("customerId", data.customerId);
localStorage.setItem("staffId", data.id);
localStorage.setItem("agencyId", data.agencyId);
localStorage.setItem("level", data.level);
if (!localStorage.getItem("customerName")) {
localStorage.setItem(
"customerName",
data.customerName || ""
);
}
} else {
this.$message.error(msg);
}
},
},
};
</script>

652
src/views/main-navbar.vue

@ -1,118 +1,163 @@
<template>
<div>
<nav v-if="showHeader" class="aui-navbar">
<div class="aui-navbar__header">
<div class="aui-navbar__logo">
<img
v-if="$store.state.user.headUrl"
:src="$store.state.user.headUrl"
/>
</div>
<h1 class="aui-navbar__brand">
<a class="aui-navbar__brand-lg" href="javascript:;">{{
this.$store.state.user.agencyName
}}</a>
<a class="aui-navbar__brand-mini" href="javascript:;">{{
this.$store.state.user.agencyName.slice(0, 2)
}}</a>
</h1>
</div>
<div>
<nav v-if="showHeader" class="aui-navbar">
<div class="aui-navbar__header">
<div class="aui-navbar__logo">
<img
v-if="$store.state.user.headUrl"
:src="$store.state.user.headUrl"
/>
</div>
<h1 class="aui-navbar__brand">
<a class="aui-navbar__brand-lg" href="javascript:;">{{
this.$store.state.user.agencyName
}}</a>
<a class="aui-navbar__brand-mini" href="javascript:;">{{
this.$store.state.user.agencyName.slice(0, 2)
}}</a>
</h1>
</div>
<div class="aui-navbar__body">
<el-menu class="aui-navbar__menu mr-auto" mode="horizontal">
<el-menu-item
v-if="false"
index="1"
@click="$store.state.sidebarFold = !$store.state.sidebarFold"
>
<svg
class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch"
aria-hidden="true"
>
<use xlink:href="#icon-outdent"></use>
</svg>
</el-menu-item>
<div class="aui-navbar__body">
<el-menu class="aui-navbar__menu mr-auto" mode="horizontal">
<el-menu-item
v-if="false"
index="1"
@click="
$store.state.sidebarFold = !$store.state.sidebarFold
"
>
<svg
class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch"
aria-hidden="true"
>
<use xlink:href="#icon-outdent"></use>
</svg>
</el-menu-item>
<el-menu-item v-if="true" index="2" @click="refresh()">
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true">
<use xlink:href="#icon-sync"></use>
</svg>
</el-menu-item>
</el-menu>
<el-menu-item v-if="true" index="2" @click="refresh()">
<svg
class="icon-svg aui-navbar__icon-menu"
aria-hidden="true"
>
<use xlink:href="#icon-sync"></use>
</svg>
</el-menu-item>
</el-menu>
<el-menu
class="aui-navbar__menu"
mode="horizontal"
style="min-width: 180px"
>
<el-menu-item index="3" @click="$router.push({ name: 'dataBoard' })">
<div class="nav-item">
<img src="~@/assets/images/main/nav-sjdb.png" />
<span>数据看板</span>
</div>
</el-menu-item>
<el-menu-item index="3" @click="$router.push({ name: 'dataBoard' })">
<div class="nav-item">
<img src="~@/assets/images/main/nav-zntb.png" />
<span>智能填报</span>
</div>
</el-menu-item>
<el-menu-item index="3" @click="$router.push({ name: 'dataBoard' })">
<div class="nav-item">
<img src="~@/assets/images/main/nav-sjjy.png" />
<span>数据校验</span>
</div>
</el-menu-item>
</el-menu>
<el-menu
class="aui-navbar__menu"
mode="horizontal"
style="min-width: 180px"
>
<el-menu-item
index="3"
@click="$router.push({ name: 'dataBoard' })"
>
<div class="nav-item">
<img src="~@/assets/images/main/nav-sjdb.png" />
<span>数据看板</span>
</div>
</el-menu-item>
<el-menu-item
index="3"
@click="$router.push({ name: 'dataBoard' })"
>
<div class="nav-item">
<img src="~@/assets/images/main/nav-zntb.png" />
<span>智能填报</span>
</div>
</el-menu-item>
<el-menu-item
index="3"
@click="$router.push({ name: 'dataBoard' })"
>
<div class="nav-item">
<img src="~@/assets/images/main/nav-sjjy.png" />
<span>数据校验</span>
</div>
</el-menu-item>
</el-menu>
<el-menu
class="aui-navbar__menu"
mode="horizontal"
style="min-width: 180px"
>
<el-menu-item index="3" @click="fullscreenHandle()">
<div class="img-nav">
<img src="~@/assets/images/main/time.png" />
</div>
</el-menu-item>
<el-menu
class="aui-navbar__menu"
mode="horizontal"
style="min-width: 180px"
>
<el-menu-item index="3" @click="fullscreenHandle()">
<div class="img-nav">
<div class="img-wrap">
<img src="~@/assets/images/main/time.png" />
</div>
</div>
</el-menu-item>
<el-menu-item index="2" @click="toRemindPage">
<div class="img-nav" :class="{ 'z-on': notice }">
<img src="~@/assets/images/main/hint.png" />
</div>
</el-menu-item>
<el-menu-item index="2" @click="toNoticePage">
<div class="img-nav" :class="{ 'z-on': false }">
<span class="corner-dot" v-if="unreadMsgNum > 0">{{
unreadMsgNum
}}</span>
<div class="img-wrap">
<img src="~@/assets/images/main/hint.png" />
</div>
</div>
</el-menu-item>
<el-menu-item index="1" class="aui-navbar__avatar">
<el-dropdown placement="bottom" :show-timeout="0">
<span class="el-dropdown-link">
<img
v-if="$store.state.user.gender === '2'"
src="~@/assets/images/main/default-avatar.png"
/>
<img v-else src="~@/assets/images/main/default-avatar.png" />
<span>{{ $store.state.user.realName }}</span>
<i class="el-icon-arrow-down"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="updatePasswordHandle()">{{
$t("updatePassword.title")
}}</el-dropdown-item>
<el-dropdown-item @click.native="logoutHandle()">{{
$t("logout")
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-menu-item>
</el-menu>
</div>
<!-- 弹窗, 修改密码 -->
<update-password-work
v-if="updatePassowrdVisible"
ref="updatePassowrd"
></update-password-work>
</nav>
<nav v-else class="aui-navbar main-line"></nav>
</div>
<el-menu-item index="1" class="aui-navbar__avatar">
<el-dropdown placement="bottom" :show-timeout="0">
<span class="el-dropdown-link">
<img
v-if="$store.state.user.gender === '2'"
src="~@/assets/images/main/default-avatar.png"
/>
<img
v-else
src="~@/assets/images/main/default-avatar.png"
/>
<span>{{ $store.state.user.realName }}</span>
<i class="el-icon-arrow-down"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item
@click.native="updatePasswordHandle()"
>{{
$t("updatePassword.title")
}}</el-dropdown-item
>
<el-dropdown-item
@click.native="logoutHandle()"
>{{ $t("logout") }}</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</el-menu-item>
</el-menu>
</div>
<!-- 弹窗, 修改密码 -->
<update-password-work
v-if="updatePassowrdVisible"
ref="updatePassowrd"
></update-password-work>
</nav>
<nav v-else class="aui-navbar main-line"></nav>
<div
class="m-newMsg"
v-if="noticeList.length > 0 && displayedNoticeList"
>
<div class="title">新提醒</div>
<div class="btn-close" @click="displayedNoticeList = false">
<img src="~@/assets/images/main/close.png" />
</div>
<div class="row">
<span class="date">{{ noticeList[0].createdTime }}</span>
<i class="i-new">NEW</i>
</div>
<div class="cnt" @click="toNoticePage">
{{ noticeList[0].content }}
</div>
</div>
</div>
</template>
<script>
@ -124,151 +169,274 @@ import { requestPost, requestGet } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
export default {
inject: ["refresh"],
data() {
return {
showHeader: true,
i18nMessages: messages,
updatePassowrdVisible: false,
customerName: "",
inject: ["refresh"],
data() {
return {
showHeader: true,
i18nMessages: messages,
updatePassowrdVisible: false,
customerName: "",
unreadMsgNum: 0,
noticeList: [],
displayedNoticeList: true,
};
},
components: {
UpdatePasswordWork,
},
created() {
let platformToken = localStorage.getItem("showHeader") || "";
if (
typeof platformToken !== "undefined" &&
platformToken !== "undefined" &&
platformToken !== ""
) {
this.showHeader = false;
}
this.changeCustomerName();
console.log("=============================", this.userType);
this.pollGetNoticeData();
},
computed: {
userType() {
return localStorage.getItem("userType");
},
},
methods: {
toNoticePage() {
this.displayedNoticeList = false;
this.$router.replace("/main/home-notice");
},
toIndexPage() {
this.$router.replace("/index");
},
// menuId()
gotoRouteHandle(menuId, idx) {
var route = window.SITE_CONFIG["dynamicMenuRoutes"].filter(
(item) => item.meta.menuId === menuId
)[0];
if (route) {
if (route.meta.iframeURL.endsWith("【跳转新页面】")) {
return window.open(route.meta.iframeURL.slice(0, -7));
} else {
this.$router.push({ name: route.name });
}
}
this.$store.state.LevelOneMenuActiveName = menuId;
this.$store.state.sidebarActiveSubMenuList =
this.$store.state.sidebarMenuList[idx].children || [];
console.log("this.$store.state", this.$store.state);
console.log("this.$route", this.$route);
},
changeCustomerName(customerName) {
this.customerName =
localStorage.getItem("customerName") ||
"党建引领基层治理互联管理平台";
},
//
fullscreenHandle() {
if (!screenfull.enabled) {
return this.$message({
message: this.$t("fullscreen.prompt"),
type: "warning",
duration: 500,
});
}
screenfull.toggle();
},
//
updatePasswordHandle() {
this.updatePassowrdVisible = true;
this.$nextTick(() => {
this.$refs.updatePassowrd.init();
});
},
// 退
logoutHandle() {
this.$confirm(
this.$t("prompt.info", { handle: this.$t("logout") }),
this.$t("prompt.title"),
{
confirmButtonText: this.$t("confirm"),
cancelButtonText: this.$t("cancel"),
type: "warning",
}
)
.then(() => {
//
// tabs,
this.$store.state.contentTabs =
this.$store.state.contentTabs.filter(
(item) => item.name === "home"
);
notice: false,
};
},
components: {
UpdatePasswordWork,
},
created() {
let platformToken = localStorage.getItem("showHeader") || "";
if (
typeof platformToken !== "undefined" &&
platformToken !== "undefined" &&
platformToken !== ""
) {
this.showHeader = false;
}
this.changeCustomerName();
console.log("=============================", this.userType);
this.$http
.post("/auth/login/logout")
.then(({ data: res }) => {
if (res.code !== 0) {
// 退
if (res.code !== 10007) {
this.$message.error(res.msg);
}
}
this.pollGetNoticeData();
},
computed: {
userType() {
return localStorage.getItem("userType");
},
},
methods: {
toRemindPage() {
this.$router.replace("/main/home-notice");
},
clearLoginInfo();
this.$router.push({ name: "login" });
// if (localStorage.getItem('userType') === 'work') {
// this.$router.push({ name: 'loginWork' })
// } else {
// this.$router.push({ name: 'login' })
// }
})
.catch(() => {});
})
.catch(() => {});
},
toIndexPage() {
this.$router.replace("/index");
},
// menuId()
gotoRouteHandle(menuId, idx) {
var route = window.SITE_CONFIG["dynamicMenuRoutes"].filter(
(item) => item.meta.menuId === menuId
)[0];
if (route) {
if (route.meta.iframeURL.endsWith("【跳转新页面】")) {
return window.open(route.meta.iframeURL.slice(0, -7));
} else {
this.$router.push({ name: route.name });
}
}
this.$store.state.LevelOneMenuActiveName = menuId;
this.$store.state.sidebarActiveSubMenuList =
this.$store.state.sidebarMenuList[idx].children || [];
console.log("this.$store.state", this.$store.state);
console.log("this.$route", this.$route);
},
changeCustomerName(customerName) {
this.customerName =
localStorage.getItem("customerName") || "党建引领基层治理互联管理平台";
},
//
fullscreenHandle() {
if (!screenfull.enabled) {
return this.$message({
message: this.$t("fullscreen.prompt"),
type: "warning",
duration: 500,
});
}
screenfull.toggle();
},
//
updatePasswordHandle() {
this.updatePassowrdVisible = true;
this.$nextTick(() => {
this.$refs.updatePassowrd.init();
});
},
// 退
logoutHandle() {
this.$confirm(
this.$t("prompt.info", { handle: this.$t("logout") }),
this.$t("prompt.title"),
{
confirmButtonText: this.$t("confirm"),
cancelButtonText: this.$t("cancel"),
type: "warning",
}
)
.then(() => {
//
// tabs,
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
(item) => item.name === "home"
);
async pollGetNoticeData() {
this.getNoticeData();
await nextTick(60000);
this.pollGetNoticeData();
},
this.$http
.post("/auth/login/logout")
.then(({ data: res }) => {
if (res.code !== 0) {
// 退
if (res.code !== 10007) {
this.$message.error(res.msg);
}
}
//
async getNoticeData() {
const url = "/message/intelligentMessage/msg/notice";
const { data, code, msg } = await requestGet(url, {});
if (code === 0) {
console.log("列表请求成功!!!!!!!!!!!!!!");
if (data.unreadNum > 0 && this.unreadMsgNum < data.unreadNum) {
this.getNoticeList();
this.displayedNoticeList = true;
}
this.unreadMsgNum = data.unreadNum;
} else {
}
},
clearLoginInfo();
this.$router.push({ name: "login" });
// if (localStorage.getItem('userType') === 'work') {
// this.$router.push({ name: 'loginWork' })
// } else {
// this.$router.push({ name: 'login' })
// }
})
.catch(() => {});
})
.catch(() => {});
},
//
async getNoticeList() {
const url = "/message/intelligentMessage/page";
let params = {
page: this.pageNo,
limit: this.pageSize,
readFlag: 0,
};
async pollGetNoticeData() {
this.getNoticeData();
await nextTick(60000);
this.pollGetNoticeData();
},
const { data, code, msg } = await requestGet(url, params);
//
async getNoticeData() {
const url = "/message/intelligentMessage/msg/notice";
const { data, code, msg } = await requestGet(url, {});
if (code === 0) {
console.log("列表请求成功!!!!!!!!!!!!!!");
this.notice = data.unreadNum > 0;
} else {
}
},
},
if (code === 0) {
this.noticeList = data.list;
} else {
this.$message.error(msg);
}
},
},
};
</script>
<style lang="scss" scoped>
@import "~@/assets/scss/c/function.scss";
.main-line {
height: 50px;
background: #eeeeee;
height: 50px;
background: #eeeeee;
}
.img-nav {
position: relative;
.corner-dot {
position: absolute;
z-index: 100;
display: block;
top: -5px;
right: 2px;
padding: 0 3px;
min-width: 16px;
height: 16px;
line-height: 16px;
transform: translateX(50%);
font-size: 12px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ffffff;
background: #ff4d4f;
border-radius: 8px;
border: 1px solid #ffffff;
text-align: center;
}
}
.m-newMsg {
position: fixed;
z-index: 2000;
right: 30px;
box-sizing: border-box;
padding: 16px;
width: 320px;
background: #ffffff;
box-shadow: 0px 6px 16px 0px rgba(0, 0, 0, 0.08),
0px 3px 6px -4px rgba(0, 0, 0, 0.12);
border-radius: 4px;
.title {
margin-bottom: 16px;
height: 22px;
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(0, 0, 0, 0.85);
line-height: 22px;
}
.btn-close {
position: absolute;
top: 15px;
right: 10px;
padding: 6px;
img {
width: 16px;
}
}
.row {
display: flex;
align-items: center;
}
.date {
height: 17px;
font-size: 12px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(0, 0, 0, 0.45);
line-height: 17px;
}
.i-new {
margin-left: 8px;
width: 40px;
height: 16px;
background: #eb512f;
border-radius: 2px;
font-size: 12px;
font-family: Arial-BoldItalicMT, Arial;
font-weight: normal;
color: #ffffff;
line-height: 16px;
text-align: center;
}
.cnt {
@include toeM(2);
margin-top: 3px;
padding-bottom: 0;
width: 288px;
height: 44px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(0, 0, 0, 0.85);
line-height: 22px;
}
}
</style>

56
src/views/modules/base/community/community.vue

@ -19,6 +19,9 @@
:filter-node-method="filterNode"
@node-click="handleNodeClick"
lazy
auto-expand-parent
:default-expanded-keys="autoOpenArr"
:load="lazyLoadTree">
<span slot-scope="{ node, data }"
@ -303,7 +306,6 @@ import { Loading } from 'element-ui' // 引入Loading服务
import nextTick from 'dai-js/tools/nextTick'
import debounce from "lodash/debounce";
import deepClone from "@/utils/deepClone.js";
let loading //
export default {
data () {
@ -322,6 +324,7 @@ export default {
return time.getTime() > nowData
}
return {
autoOpenArr:[],
boxHeight: true,
searchHeight: 190,
filterText: '',
@ -469,6 +472,7 @@ export default {
this.getHouseList();
},
async lazyLoadTree(node, resolve) {
console.log(node);
const url = `/actual/base/communityBuilding/tree/nextTreeNode?id=${node.data.id}&level=${node.data.level}`;
const { data, code, msg } = await requestGet(url);
if (code === 0) {
@ -535,22 +539,23 @@ export default {
},
//
async handleChangeSerch (){
this.startLoading()
this.$refs.ref_tree.$data.store.lazy = !this.filterText
this.startLoading()
this.$refs.ref_tree.$data.store.lazy = !this.filterText
if(this.filterText.length > 0 && this.filterText!=''){
const url = `/actual/base/communityBuilding/tree/search?keyword=${this.filterText}`
const url = `/actual/base/communityBuilding/tree/search?keyword=${this.filterText}`
const {data,code,msg} = await requestGet(url)
if(data[0].children.length>0){
this.treeData = data
for(let i in this.treeData[0].children){
this.autoOpenArr.push(this.treeData[0].id,this.treeData[0].children[i].id,this.treeData[0].children[0].children[0].id);
}
}else{
this.treeData = []
setTimeout(() => {
this.loadTree()
}, 5)
this.$message.error('暂未找到!')
}
}else {
this.treeData = []
this.autoOpenArr = []
this.loadTree()
}
this.endLoading()
@ -661,10 +666,8 @@ export default {
async loadTree (isRefresh) {
const url = "/actual/base/communityBuilding/tree/initTree"
const { data, code, msg } = await requestGet(url)
this.handleNodeClick(data)
if (code === 0) {
this.openNodes = []
this.openNodes.push(data.id)
this.treeData = []
this.treeData.push(data)
if (!isRefresh && data) {
@ -733,14 +736,15 @@ export default {
this.updateStartDate = ''
this.updateEndDate = ''
this.showRoomTable = false
this.selObj = JSON.parse(JSON.stringify(obj))
this.getTreeObj(obj)
await nextTick(1000)
this.vDisabled = false
this.bDisabled = false
if (obj.level === 'building') {//
this.$refs['ref_buildingTable'].loadTable('tree', this.selTreeObj)
setTimeout(()=>{
this.$refs['ref_buildingTable'].loadTable('tree', this.selTreeObj)
},100)
this.selAgencyId = ''
this.selGridId = ''
await this.getValiheList()
@ -787,16 +791,26 @@ export default {
},
//
toNextLevel (row, level) {
if (level === 'community') {
this.selTreeObj = this.$refs.ref_tree.getNode(row.neighborHoodId).data
this.openNodes.push(this.selTreeObj.id)
} else {
this.selTreeObj = this.$refs.ref_tree.getNode(row.buildingId).data
}
async toNextLevel (row, level) {
console.log(row,'row');
console.log(level,'level');
this.autoOpenArr = []
// console.log(this.$refs.ref_tree);
const { agencyId,gridId,neighborHoodId,propertyId} = row
let arr = [agencyId,gridId,neighborHoodId,propertyId]
this.autoOpenArr = arr
console.log(this.autoOpenArr,'默认展开数组');
// if (level === 'community') {
// setTimeout(()=>{
// nextTick(1000)
// this.selTreeObj = this.$refs.ref_tree.getNode(row.neighborHoodId).data || {}
// },50)
// this.autoOpenArr.push(this.selTreeObj.id)
// } else {
// this.selTreeObj = this.$refs.ref_tree.getNode(row.buildingId).data
// }
console.log(this.selTreeObj,'123123123');
this.handleNodeClick(this.selTreeObj)
this.$nextTick(() => {
// ref_tree ref value node-key

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

@ -328,7 +328,7 @@ export default {
this.exportTemplate(id)
},
async exportTemplate (id) {
let url = "/epmetuser/icresiuser/exportExcelCustom"
let url = "/actual/base/communityHouse/exportExcelCustom"
let params = {
templateId: id || '',

6
src/views/modules/base/diyInfo.vue

@ -310,14 +310,14 @@ export default {
this.exportTemplate(id)
},
async exportTemplate(id) {
let url = "/epmetuser/icresiuser/exportExcelCustom"
let url = "/actual/base/residentBaseInfo/exportExcelCustom"
let params = {
templateId: id || '',
searchForm: {...this.search},
exportConfig: {
...this.form,
formCode: 'resi_base_info',
formCode: 'resident_base_info',
itemList: this.rightList.map(item => {
return {
itemId: item.id,
@ -355,7 +355,7 @@ export default {
},
async getTemplateList () {
let params = {
formCode: 'resi_base_info'
formCode: 'resident_base_info'
}
await this.$http
.post('/oper/customize/icExportTemplate/templateList', params)

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

@ -16,7 +16,7 @@
style="margin-left: 10px"
size="small"
plain
class=" f-right5"
class=" f-right5 diy-button--white"
@click="resetSearchForm"
>重置</el-button>
<el-button
@ -56,6 +56,7 @@
v-if="btnAuths.ic_resi_export"
style="margin-left: 10px"
size="small"
class="diy-button--white"
@click="diyExport"
plain
>导出</el-button
@ -64,6 +65,7 @@
v-if="btnAuths.ic_resi_export"
style="margin-left: 10px"
size="small"
class="diy-button--white"
@click=""
plain
>核对</el-button
@ -106,6 +108,7 @@
style="margin-left: 10px"
v-if="btnAuths.ic_resi_batch_del"
size="small"
class="diy-button--white"
plain
@click="deleteBatch"
>批量删除</el-button
@ -306,7 +309,7 @@
:resi-id="editUserId"
@changegroup="handleChangeGroup"
/>
</div>
<div class="resi-btns">
@ -398,7 +401,7 @@
ref="ref_diy"
:list="exportList"
:search="{
formCode: 'resi_base_info',
formCode: 'resident_base_info',
pageNo: currentPage,
pageSize: pageSize,
conditions: conditions,
@ -639,7 +642,7 @@ export default {
categoryKey: "resi_info",
paramMap: {
searchForm: {
formCode: "resi_base_info",
formCode: "resident_base_info",
pageNo: this.currentPage,
pageSize: this.pageSize,
conditions: this.conditions,
@ -650,12 +653,14 @@ export default {
},
handleSearchFrom() {
let obj = this.$refs.myResiSearch.form
if (typeof obj.categoryKey == 'object'&&obj.categoryKey .length != 0) {
let categoryArr = this.$refs.myResiSearch.form.categoryKey
let agencyId = this.$refs.myResiSearch.form.agencyId
if (typeof obj.categoryKey == 'object'&&obj.categoryKey.length != 0) {
obj.categoryKey = obj.categoryKey.join(',')
} else {
obj.categoryKey = "";
}
if (typeof obj.agencyId == 'object'&&obj.agencyId .length != 0) {
if (typeof obj.agencyId == 'object'&&obj.agencyId.length != 0) {
obj.agencyId = obj.agencyId.join(',')
} else {
obj.agencyId = "";
@ -663,7 +668,8 @@ export default {
this.currentPage = 1
console.log(obj);
this.getTableData(obj)
this.$refs.myResiSearch.form.categoryKey = categoryArr
this.$refs.myResiSearch.form.agencyId = agencyId
},
//
checkSelectable(row, index) {
@ -892,7 +898,7 @@ export default {
this.exportBtn = true;
this.exportBtnTitle = "正在导出...";
let params = {
formCode: "resi_base_info",
formCode: "resident_base_info",
conditions: this.conditions,
};
@ -1034,17 +1040,17 @@ export default {
await this.residentBaseInfo();
},
//
// residentBaseInfo () {
// this.$http.post(`/actual/base/residentBaseInfo/detail/${this.editUserId}`).then(({ data: res }) => {
// if (res.code !== 0) {
// return this.$message.error(res.msg);
// } else {
// this.$refs.baseForm.old_from(res.data);
// }
// }).catch((err) => {
// return this.$message.error("");
// });
// },
residentBaseInfo () {
this.$http.post(`/actual/base/residentBaseInfo/detail/${this.editUserId}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.$refs.baseForm.old_from(res.data);
}
}).catch((err) => {
return this.$message.error("网络错误");
});
},
handlerReset() {
this.$refs.baseForm.resetForm();
},
@ -1324,7 +1330,7 @@ export default {
getrowInfo(id) {
let params = {
formCode: "resi_base_info",
formCode: "resident_base_info",
icResiUserId: id,
};
this.$http
@ -1402,7 +1408,7 @@ export default {
let options = [];
// console.log('getOptionsList----', url)
await this.$http
.post(url, { formCode: "resi_base_info" })
.post(url, { formCode: "resident_base_info" })
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -1435,7 +1441,7 @@ export default {
async getFormList(type) {
await this.$http
.post("/oper/customize/icform/getcustomerform", {
formCode: "resi_base_info",
formCode: "resident_base_info",
dynamic: true,
})
.then(({ data: res }) => {
@ -1479,7 +1485,7 @@ export default {
async getExportList(type) {
const url = "/oper/customize/icformitemgroup/list";
let params = {
formCode: "resi_base_info",
formCode: "resident_base_info",
};
const { data, code, msg } = await requestPost(url, params);
@ -1546,7 +1552,7 @@ export default {
immediate: true
}
},
};
</script>

289
src/views/modules/commonDemand/commonDemand.vue

@ -0,0 +1,289 @@
<template >
<div class="g-main">
<div class="m-table">
<div class="u-table-btn2">
<div class="u-table-btn2-left">
<el-button style=""
size="small"
class="diy-button--blue"
icon="el-icon-plus"
@click="handleAdd({},'add')">新增分类</el-button>
</div>
</div>
<div class="m-table-item">
<el-table ref="ref_table"
:data="tableData"
border
row-key="id"
default-expand-all
:height="tableHeight"
style="width: 100%"
:tree-props="{children: 'childrenList', hasChildren: 'hasChildren'}"
>
<el-table-column
prop="name"
label="分类名称"
>
</el-table-column>
<el-table-column
prop="sort"
label="排序"
>
</el-table-column>
<el-table-column label="操作"
fixed="right"
header-align="center"
align="center"
class="operate">
<template slot-scope="scope">
<el-button
v-if="scope.row.pid==0"
type="text"
class="div-table-button--blue"
size="small"
@click="handleAdd(scope.row,'add0')">添加二级分类</el-button>
<el-button
type="text"
class="div-table-button--blue"
size="small"
@click="handleAdd(scope.row,'edit')">修改</el-button>
<el-button
type="text"
class="div-table-button--blue"
size="small"
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
</div>
</div>
<el-dialog :visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
width="670px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<commonDemand-form ref="ref_form"
@dialogCancle="addFormCancle"
@dialogOk="addFormOk"></commonDemand-form>
</el-dialog>
</div>
</template>
<script>
import commonDemandForm from './commonDemandForm'
import { requestPost,requestGet } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
import axios from 'axios'
let loading //
export default {
data () {
return {
searchHeight: 0,//,
pageNo:0,
pageSize:20,
total:0,
formTitle:"",
formShow:false,
tableData: [],
}
},
components: {
commonDemandForm
},
activated () {
},
async mounted () {
this.loadTable()
},
methods: {
async loadTable () {
const url = "/governance/commonServiceType/treeList"
let {data,msg,code } = await requestGet(url)
if(code == 0){
this.tableData = data
}else{
this.$message.error(msg)
}
},
diaClose () {
this.$refs.ref_form.resetData()
this.formShow = false
},
addFormOk () {
this.formShow = false
this.loadTable()
},
addFormCancle () {
this.formShow = false
},
async handleDetail (row) {
this.detailShow = true
const _data = await this.detail(row)
this.$nextTick(() => {
this.$refs.ref_form_detail.initForm(_data)
})
},
handleAdd (row,type) {
if(type=="add"){
console.log(row.id);
this.formTitle = '新增分类'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm(type, row)
})
}else if(type=="add0"){
this.formTitle = '新增分类'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm(type, row)
})
}else if(type == 'edit'){
this.formTitle = '修改分类'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm(type, row)
})
}
},
selectAll (selection) {
this.selection = selection
},
selectionChange (selection) {
this.selection = selection
},
async handleDelete (row) {
this.$confirm("确认删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.deleteDemand(row)
})
.catch(err => {
if (err == "cancel") {
this.$message({
type: "info",
message: "已取消删除"
});
}
});
},
async deleteDemand (row) {
const url = `/governance/commonServiceType/delete/${row.id}`
const { data, code, msg } = await requestPost(url)
if (code === 0) {
this.$message({
type: "success",
message: "删除成功"
});
this.loadTable()
} else if (code > 8000) {
this.$message({
message: msg,
duration: 0
})
this.loadTable()
} else {
this.$message.error(msg)
}
},
handleDiyClose () {
this.diyDialog = false;
},
handleClose (done) {
this.diyDialog = false
},
handleSizeChange (val) {
this.pageSize = val
this.pageNo = 1
this.loadTable()
},
handleCurrentChange (val) {
this.pageNo = val
this.loadTable()
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
tableHeight () {
console.log(this.searchHeight)
let height = this.searchHeight + 270
return this.$store.state.inIframe ? this.clientHeight - height + this.iframeHeight : this.clientHeight - height
},
...mapGetters(['clientHeight', 'iframeHeight'])
},
watch: {
},
props: {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/list-main.scss";
</style>
<style >
.el-message.is-closable .el-message__content {
line-height: 20px;
}
</style>

176
src/views/modules/commonDemand/commonDemandForm.vue

@ -0,0 +1,176 @@
<template>
<div>
<div class="dialog-h-content scroll-h">
<div >
<el-form ref="ref_form"
:inline="true"
:model="dataForm"
:rules="dataRule"
label-width="150px"
class="g-edit-form">
<el-form-item prop="name" label="名称">
<el-input v-model="dataForm.name" placeholder="请输入名称" ></el-input>
</el-form-item>
<el-form-item prop="sort" :label="$t('dept.sort')">
<el-input-number v-model="dataForm.sort" @change="handleChangeSortNum" :min="0" :label="$t('dept.sort')" ></el-input-number>
</el-form-item>
</el-form>
</div>
</div>
<div class="m-edit-btn">
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
class="diy-button--blue"
@click="handleComfirm"> </el-button>
</div>
</div>
</template>
<script>
import { Loading } from 'element-ui' // Loading
import { requestPost } from '@/js/dai/request'
import { number } from 'echarts'
let loading //
export default {
data () {
return {
formType: 'add', // addeditdetail
searchOptions: [],
searchValue: '',
resultList: [],
loading: false,
dataForm: {
name:"",
sort:0,
pid:0,
type:""
},
propertyFormShow: false,
keyWords: '',
}
},
components: {},
mounted () {
},
methods: {
async initForm (type, row) {
this.$refs.ref_form.resetFields();
this.type = type
this.formType = type
if(type == "add0"){
this.dataForm.pid =row.id
}else if(type =='add'){
console.log(row.id);
this.dataForm.pid = 0
}else if(type =='edit'){
this.dataForm = JSON.parse(JSON.stringify(row))
}
},
handleAddProperty () {
this.propertyForm.name = ''
this.propertyFormShow = true
},
async handleComfirm () {
this.$refs['ref_form'].validate((valid, messageObj) => {
if (!valid) {
app.util.validateRule(messageObj)
} else {
this.addComClass()
}
})
},
async addComClass(){
const url = "/governance/commonServiceType/save"
const updateUrl = "/governance/commonServiceType/update"
let params = {
pid :this.type=='edit'? this.dataForm.id:this.dataForm.pid,
name:this.dataForm.name,
sort:this.dataForm.sort
}
let updateParms = {
id :this.type=='edit'? this.dataForm.id:this.dataForm.pid,
name:this.dataForm.name,
sort:this.dataForm.sort
}
console.log(params);
let {data,code,msg} = await requestPost(this.type=='edit'?updateUrl:url,this.type=='edit'?updateParms:params)
if(code == 0){
this.$emit('dialogOk')
this.$message({
type: "success",
message: '操作成功',
duration: 1
})
}else{
this.$message({
type: "error",
message:msg,
duration: 0
})
}
},
handleCancle () {
this.$emit('dialogCancle')
},
resetData () {
this.propertyFormShow = false
},
handleChangeSortNum(value) {
this.dataForm.sort = value
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
dataRule () {
return {
name: [
{ required: true, message: '分类名称不能为空', trigger: 'blur' },
{
min: 1,
max: 50,
message: '分类名称长度在 1 到 50个字符',
trigger: 'blur'
}
],
sort: [
{ required: true, message: '分类顺序不能为空', trigger: 'blur' },
],
}
},
},
props: {}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/edit-main.scss";
</style>

2
src/views/modules/communityService/measure/index.vue

@ -1207,7 +1207,7 @@ export default {
async getDemandOptions () {
this.$http
.post("/heart/icresidemanddict/demandoption")
.post("/governance/icresidemanddict/demandoption")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);

2
src/views/modules/communityService/measure/info.vue

@ -918,7 +918,7 @@ export default {
async getDemandOptions() {
this.$http
.post("/heart/icresidemanddict/demandoption")
.post("/governance/icresidemanddict/demandoption")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);

2
src/views/modules/communityService/policy/addPolicy.vue

@ -344,7 +344,7 @@ export default {
//
loadDemandoption () {
const url = '/heart/icresidemanddict/demandoption'
const url = '/governance/icresidemanddict/demandoption'
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/isServiceProject/service/serviceScopeTree'
let params = {}
window.app.ajax.post(

134
src/views/modules/home/notice.vue

@ -2,14 +2,13 @@
<div>
<div class="m-tx">
<div class="wrap">
<div class="tabs">
<el-tabs v-model="type" @tab-click="handleClickTab">
<el-tab-pane label="全部" name="all"></el-tab-pane>
<el-tab-pane label="已读" name="readed"></el-tab-pane>
<el-tab-pane label="未读" name="unreaded"></el-tab-pane>
</el-tabs>
<div class="header">
<div class="title">全部提醒</div>
<div class="btn-clear" @click="read">
<img src="~@/assets/images/main/clear.png" />
全部标记已读
</div>
</div>
<!-- <div class="btn-clear">清除未读</div> -->
<div class="cnt" v-if="noticeData.length > 0">
<div
@click="handleClickNotice(item, index)"
@ -18,13 +17,19 @@
:key="'notice' + item.targetId + index"
v-for="(item, index) in noticeData"
>
<img
class="item-tag"
src="@/assets/images/index/title-icon-zntb.png"
/>
<i class="i-tag" v-if="item.readFlag == 1">已读</i>
<i class="i-tag" v-else>未读</i>
<div class="item-title">
{{ item.content }}
</div>
<div
v-if="item.readFlag != 1"
@click.stop="read(item)"
class="item-btn-clear"
>
<img src="~@/assets/images/main/clear.png" />
标记已读
</div>
<div class="item-date">{{ item.createdTime }}</div>
</div>
</div>
@ -75,7 +80,7 @@ export default {
},
computed: {},
watch: {},
mounted() {
activated() {
this.getList();
},
methods: {
@ -89,21 +94,21 @@ export default {
this.read(item, index);
},
async read(item) {
if (item.readFlag == 1) return;
async read(item, index) {
if (item && item.readFlag == 1) return;
const url = "/message/intelligentMessage/msg/clear";
let params = {
id: item.id,
};
let params = {};
if (item.id) {
params.id = item.id;
}
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
const { noticeData } = this;
noticeData[index].readFlag = 1;
this.noticeData = noticeData;
console.log("消息已读");
this.getList();
} else {
this.$message.error(msg);
}
@ -183,6 +188,7 @@ export default {
}
.item {
position: relative;
display: flex;
align-items: center;
padding: 16px 0 12px;
@ -191,12 +197,31 @@ export default {
border-bottom: none;
}
.item-tag {
&:hover {
.item-title {
color: #0056d6;
}
.item-btn-clear {
display: block;
}
}
.i-tag {
display: block;
margin-right: 15px;
width: 24px;
height: 24px;
width: 40px;
height: 22px;
border-radius: 4px;
border: 1px solid rgba(0, 0, 0, 0.15);
font-size: 12px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(0, 0, 0, 0.88);
line-height: 20px;
font-style: normal;
text-align: center;
}
.item-title {
// @include toe;
width: 60%;
@ -207,7 +232,29 @@ export default {
color: rgba(0, 0, 0, 0.85);
line-height: 22px;
}
.item-btn-clear {
position: absolute;
display: none;
top: 50%;
left: 65%;
width: 80px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #0042a3;
line-height: 16px;
cursor: pointer;
transform: translateY(-50%);
img {
width: 16px;
margin-right: 3px;
}
}
.item-date {
margin-left: 100px;
font-size: 12px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
@ -216,21 +263,32 @@ export default {
}
}
}
.btn-clear {
position: absolute;
top: 14px;
right: 15px;
width: 32px;
height: 12px;
width: 75px;
height: 25px;
background: linear-gradient(0deg, #db3b3b 1%, #ff8080 100%);
border-radius: 3px;
font-size: 14px;
font-weight: 500;
color: #ffffff;
line-height: 25px;
text-align: center;
.header {
display: flex;
justify-content: space-between;
padding: 12px 0;
margin-bottom: 10px;
border-bottom: 1px solid #f0f5fa;
.title {
height: 22px;
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(0, 0, 0, 0.85);
line-height: 22px;
}
.btn-clear {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #0042a3;
line-height: 16px;
cursor: pointer;
img {
width: 16px;
margin-right: 3px;
}
}
}
}

2
src/views/modules/shequ/chaxun.vue

@ -587,7 +587,7 @@ export default {
}
},
},
mounted() {
activated() {
this.getApiData();
this.firstSearch();

2
src/views/modules/shequzhili/event/cpts/process-form-demand.vue

@ -431,7 +431,7 @@ export default {
},
async getDemandOptions () {
const url = "/heart/icresidemanddict/demandoption"
const url = "/governance/icresidemanddict/demandoption"
let params = {}
const { data, code, msg } = await requestPost(url, params)

12
src/views/modules/workSys/demandCate.vue

@ -259,7 +259,7 @@ export default {
usableFlag: !row.usableFlag
}
this.$http
.post('/heart/icresidemanddict/updatestatus', params)
.post('/governance/icresidemanddict/updatestatus', params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
@ -284,7 +284,7 @@ export default {
categoryName: this.form.categoryName
}
await this.$http
.post('/heart/icresidemanddict/addfirst', _form)
.post('/governance/icresidemanddict/addfirst', _form)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
@ -306,7 +306,7 @@ export default {
awardPoint: this.form.awardPoint
}
await this.$http
.post('/heart/icresidemanddict/addchild', _form)
.post('/governance/icresidemanddict/addchild', _form)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
@ -329,7 +329,7 @@ export default {
awardPoint: this.form.awardPoint
}
await this.$http
.post('/heart/icresidemanddict/update', _form)
.post('/governance/icresidemanddict/update', _form)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
@ -408,7 +408,7 @@ export default {
parentCategoryCode: 0
}
this.$http
.post('/heart/icresidemanddict/subcodelist', params)
.post('/governance/icresidemanddict/subcodelist', params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
@ -430,7 +430,7 @@ export default {
firstCategoryCode: this.form.firstCategoryCode
}
await this.$http
.post('/heart/icresidemanddict/pagelist', params)
.post('/governance/icresidemanddict/pagelist', params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)

Loading…
Cancel
Save