epmet pc工作端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

164 lines
3.8 KiB

<template>
<div class="m-sqpj">
<div class="tablist">
<div v-for="item in tabList" :key="item" :class="['item', { 'item-sel': currentTab == item }]" @click="currentTab = item">{{ item }}</div>
</div>
<div>
<div class="linecharts" v-if="resiCategoryData.length > 0">
<div class="item" @click="toResiClassPage(item.code, item.name)" :key="item.code + index" v-for="(item, index) in resiCategoryData">
<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 class="empty" v-else><img src="~@/assets/images/shuju/renfang/index/empty.png" /></div>
</div>
</div>
</template>
<script>
import screenEchartsFrame from '@/views/dataBoard/cpts/screen-echarts-frame/index';
import { requestPostBi } from '@/js/dai/request-bipass';
export default {
props: {
orgId: {
type: String,
default: ''
}
},
data() {
return {
resiCategoryData: [],
showNoData: false,
timer: null,
pieChart: '',
pieOption: {},
pieInitState: false,
pieData: [],
tabList: ['满意度', '关注度', '期盼度', '烦心度'],
currentTab: '满意度',
info: {
male_count: 0,
female_count: 0,
resi_y_house_y_count: 0,
resi_y_house_n_count: 0,
resi_n_house_y_count: 0,
primary_count: 0,
junior_high_count: 0,
second_speci_count: 0,
high_school_count: 0,
junior_college_count: 0,
undergrad_count: 0,
master_count: 0,
doctor_count: 0,
local_count: 0,
field_count: 0,
age50_count: 0,
age5059_count: 0,
age6069_count: 0,
age7079_count: 0,
age80_count: 0,
culture_count: 0,
committee_count: 0,
capable_count: 0,
friend_count: 0,
agent_count: 0,
mediator_count: 0,
collector_count: 0,
security_count: 0,
party_mem_count: 0
}
};
},
components: {
screenEchartsFrame
},
mounted() {
this.init();
},
watch: {
currentTab() {
this.getResiCategoryData();
},
orgId() {
this.init();
}
},
methods: {
async init() {
this.getResiCategoryData();
},
handleClickItem(item) {
// const { type, name } = item;
// this.$router.push({
// path: '/dataBoard/renfang/resi-analyze',
// query: {
// org_id: this.orgId,
// type,
// type_category: this.currentTab,
// type_name: name
// }
// });
},
selItem(selItem, selIndex) {
this.tabList.forEach((element, index) => {
if (index === selIndex) {
element.sel = true;
} else {
element.sel = false;
}
});
},
async getResiCategoryData() {
let url = '';
if (this.currentTab == '满意度') {
url = 'self_need_view';
} else if (this.currentTab == '关注度') {
url = 'attention_eval_view';
} else if (this.currentTab == '期盼度') {
url = 'self_need_view';
} else {
// 烦心度
url = 'self_need_view';
}
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id: this.orgId
}
},
{
// mockId: 60031937,
}
);
if (code === 0) {
this.resiCategoryData = data.map(item => {
return {
code: item.label_id,
name: item.label,
count: item.count,
ratio: item.ratio,
growth: item.growth,
growthAbs: Math.abs(item.growth)
};
});
} else {
this.$message.error(msg);
}
}
}
};
</script>
<style lang="scss" src="@/assets/scss/dataBoard/renfang/index.scss" scoped></style>