人口总数

This commit is contained in:
闫世杰 2025-01-16 10:12:44 +08:00
parent 471a030165
commit 79ded0bcdf
5 changed files with 106 additions and 66 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

4
src/utils/index.js Normal file
View File

@ -0,0 +1,4 @@
// 获取静态图片
export const onGobalImage = (url) => {
return new URL(`../assets/${url}`, import.meta.url).href;
}

View File

@ -34,10 +34,13 @@
alt="" /> alt="" />
</div> </div>
</div> </div>
<div class="tabel-part-box"> <div
:class="{ 'tabel-part-box': true, 'tabel-part-box-bg': isBgColor }">
<div class="tabel-part-box-content">
<slot></slot> <slot></slot>
</div> </div>
</div> </div>
</div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -58,6 +61,12 @@ const props = defineProps({
return ""; return "";
}, },
}, },
isBgColor: {
type: Boolean,
default: () => {
return false;
},
},
}); });
const show = computed({ const show = computed({
get() { get() {
@ -121,10 +130,10 @@ const onClose = () => {
// } // }
.tabel-part-box { .tabel-part-box {
margin: 30px 50px 50px; margin: 30px 50px 50px;
padding: 26px; padding: 13px;
.tabel-part-box-content {
min-height: 300px; min-height: 300px;
max-height: 56vh; max-height: 54vh;
background: rgba(70, 114, 171, 0.36);
color: #fff; color: #fff;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 500; font-weight: 500;
@ -132,11 +141,18 @@ const onClose = () => {
color: #ffffff; color: #ffffff;
line-height: 1.6; line-height: 1.6;
letter-spacing: 3px; letter-spacing: 3px;
overflow: auto; overflow: hidden;
&::-webkit-scrollbar { &::-webkit-scrollbar {
display: none; display: none;
} }
} }
}
.tabel-part-box-bg {
background: rgba(70, 114, 171, 0.36);
.tabel-part-box-content {
overflow: auto;
}
}
} }
.pagePart { .pagePart {

View File

@ -188,24 +188,21 @@
<div class="left_3_1"> <div class="left_3_1">
<div <div
class="left_3_1_item" class="left_3_1_item"
@click="showDialog('就业培训', '/api/ggfwyth/jypxList')" @click="showDialog('就业培训', '/api/ggfwyth/jypxList')">
>
<div>{{ data.employmentService.jypx }}<span></span></div> <div>{{ data.employmentService.jypx }}<span></span></div>
<div>就业培训</div> <div>就业培训</div>
<div class="moveImg"></div> <div class="moveImg"></div>
</div> </div>
<div <div
class="left_3_1_item" class="left_3_1_item"
@click="showDialog('就业见习服务', '/api/ggfwyth/jyjxfwList')" @click="showDialog('就业见习服务', '/api/ggfwyth/jyjxfwList')">
>
<div>{{ data.employmentService.jyjxfw }}<span></span></div> <div>{{ data.employmentService.jyjxfw }}<span></span></div>
<div>就业见习服务</div> <div>就业见习服务</div>
<div class="moveImg"></div> <div class="moveImg"></div>
</div> </div>
<div <div
class="left_3_1_item" class="left_3_1_item"
@click="showDialog('就业援助', '/api/ggfwyth/jyyzList')" @click="showDialog('就业援助', '/api/ggfwyth/jyyzList')">
>
<div>{{ data.employmentService.jyyz }}<span></span></div> <div>{{ data.employmentService.jyyz }}<span></span></div>
<div>就业援助</div> <div>就业援助</div>
<div class="moveImg"></div> <div class="moveImg"></div>
@ -219,15 +216,17 @@
<img <img
src="../assets/images/sy/主页人口.gif" src="../assets/images/sy/主页人口.gif"
style="width: 70%; height: 112%; margin: -2% 15%" style="width: 70%; height: 112%; margin: -2% 15%"
alt="" alt="" />
/>
<div class="people_total_item left"> <div class="people_total_item left">
<div class="number">{{ data.PopulationData.man }}</div> <div class="number">{{ data.PopulationData.man }}</div>
<img src="../assets/images/sy/man.png" alt="" /> <img src="../assets/images/sy/man.png" alt="" />
<div class="sex">男性人口</div> <div class="sex">男性人口</div>
<img class="sexMove" src="../assets/images/sy/sexImg.png" alt="" /> <img class="sexMove" src="../assets/images/sy/sexImg.png" alt="" />
</div> </div>
<div class="people_total_item2 center" style="cursor: pointer"> <div
class="people_total_item2 center"
style="cursor: pointer"
@click="onGrossPopulation">
<img src="../assets/images/sy/people_total.png" alt="" /> <img src="../assets/images/sy/people_total.png" alt="" />
<div class="number">{{ data.PopulationData.rkzs }}</div> <div class="number">{{ data.PopulationData.rkzs }}</div>
<div class="total">人口总数</div> <div class="total">人口总数</div>
@ -242,20 +241,17 @@
<ePie2 <ePie2
style="margin-top: 20px" style="margin-top: 20px"
:list="data.ageRatio" :list="data.ageRatio"
v-if="showEchart" v-if="showEchart"></ePie2>
></ePie2>
<div class="bt"> <div class="bt">
<ePie <ePie
style="margin-bottom: 20px" style="margin-bottom: 20px"
:list="data.ageGroup" :list="data.ageGroup"
v-if="showEchart" v-if="showEchart"></ePie>
></ePie>
<div <div
class="btList" class="btList"
ref="mainRef" ref="mainRef"
@mouseenter="stopAutoScroll" @mouseenter="stopAutoScroll"
@mouseleave="startAutoScroll" @mouseleave="startAutoScroll">
>
<div class="btList_item" v-for="(item, index) in btList"> <div class="btList_item" v-for="(item, index) in btList">
<div class="btList_item_color" :style="bt(index)"></div> <div class="btList_item_color" :style="bt(index)"></div>
<div class="btList_item_value"> <div class="btList_item_value">
@ -268,20 +264,17 @@
<div class="table_choose"> <div class="table_choose">
<div <div
:class="choose == '1' ? 'choose' : 'noChoose'" :class="choose == '1' ? 'choose' : 'noChoose'"
@click="change('1')" @click="change('1')">
>
公共服务 公共服务
</div> </div>
<div <div
:class="choose == '2' ? 'choose' : 'noChoose'" :class="choose == '2' ? 'choose' : 'noChoose'"
@click="change('2')" @click="change('2')">
>
企业服务 企业服务
</div> </div>
<div <div
:class="choose == '3' ? 'choose' : 'noChoose'" :class="choose == '3' ? 'choose' : 'noChoose'"
@click="change('3')" @click="change('3')">
>
政务服务 政务服务
</div> </div>
</div> </div>
@ -311,29 +304,24 @@
class="table_border" class="table_border"
:row-style="rowState" :row-style="rowState"
:header-cell-style="tableHeaderColor" :header-cell-style="tableHeaderColor"
v-if="choose == '1'" v-if="choose == '1'">
>
<el-table-column <el-table-column
prop="highFrequencyApp" prop="highFrequencyApp"
label="高频应用" label="高频应用"
width="132" width="132" />
/>
<el-table-column <el-table-column
prop="monthlyVisits" prop="monthlyVisits"
label="月访问量" label="月访问量"
width="131" width="131" />
/>
<el-table-column <el-table-column
prop="highFrequencyApp1" prop="highFrequencyApp1"
label="高频应用" label="高频应用"
width="132" width="132" />
/>
<el-table-column <el-table-column
prop="monthlyVisits1" prop="monthlyVisits1"
label="月访问量" label="月访问量"
width="132" width="132" />
/>
<!-- <el-table-column prop="finish" label="完成情况"> <!-- <el-table-column prop="finish" label="完成情况">
<template #default="scope"> <template #default="scope">
<div <div
@ -352,8 +340,7 @@
<div <div
class="qyfw_item" class="qyfw_item"
v-for="(item, index) in qyfyList" v-for="(item, index) in qyfyList"
:key="index" :key="index">
>
<img class="qyfw_item_left" :src="item.img" /> <img class="qyfw_item_left" :src="item.img" />
<div class="qyfw_item_right"> <div class="qyfw_item_right">
<div class="name">{{ item.name }}</div> <div class="name">{{ item.name }}</div>
@ -426,8 +413,7 @@
v-for="(item, index) in data.ylwsList" v-for="(item, index) in data.ylwsList"
:key="index" :key="index"
:style="{ cursor: item.name == '医院卫生院' ? 'pointer' : '' }" :style="{ cursor: item.name == '医院卫生院' ? 'pointer' : '' }"
@click="showDialog2(item.name, '/api/ggfwyth/yywsyList')" @click="showDialog2(item.name, '/api/ggfwyth/yywsyList')">
>
<div class="name">{{ item.name }}</div> <div class="name">{{ item.name }}</div>
<div class="value">{{ item.value }}{{ item.dw }}</div> <div class="value">{{ item.value }}{{ item.dw }}</div>
</div> </div>
@ -444,8 +430,7 @@
<div <div
class="whsy_item" class="whsy_item"
v-for="(item, index) in data.whsyList" v-for="(item, index) in data.whsyList"
:key="index" :key="index">
>
<div class="name">{{ item.name }}</div> <div class="name">{{ item.name }}</div>
<div class="value"> <div class="value">
{{ item.value }}<span>{{ item.dw }}</span> {{ item.value }}<span>{{ item.dw }}</span>
@ -464,16 +449,14 @@
<div <div
class="tysy_item" class="tysy_item"
v-for="(item, index) in data.tysyList" v-for="(item, index) in data.tysyList"
:key="index" :key="index">
>
<div class="value"> <div class="value">
{{ item.value }}<span>{{ item.dw ? item.dw : "" }}</span> {{ item.value }}<span>{{ item.dw ? item.dw : "" }}</span>
</div> </div>
<img :src="item.img" /> <img :src="item.img" />
<img <img
src="../assets/images/sy/tyBon.png" src="../assets/images/sy/tyBon.png"
style="margin-top: -60px" style="margin-top: -60px" />
/>
<div class="name">{{ item.name }}</div> <div class="name">{{ item.name }}</div>
</div> </div>
</div> </div>
@ -594,8 +577,7 @@
:tableData="tableType.data" :tableData="tableType.data"
:pagination="pagination" :pagination="pagination"
@close="close" @close="close"
@handle="handlePagination" @handle="handlePagination">
>
</Dialog> </Dialog>
<DialogEc <DialogEc
:dialogShowEc="dialogShowEc" :dialogShowEc="dialogShowEc"
@ -603,8 +585,7 @@
:list1="dataEc.list1" :list1="dataEc.list1"
:list2="dataEc.list2" :list2="dataEc.list2"
:year="dataEc.times" :year="dataEc.times"
@close="close" @close="close">
>
</DialogEc> </DialogEc>
<DialogTab <DialogTab
:dialogShowTab="dialogShowTab" :dialogShowTab="dialogShowTab"
@ -616,14 +597,22 @@
:tableData="dataTab.data" :tableData="dataTab.data"
:pagination="pagination" :pagination="pagination"
@handle="handlePaginationTab" @handle="handlePaginationTab"
@close="close" @close="close">
>
</DialogTab> </DialogTab>
<DialogModel
v-bind="dialogModelConfig"
v-model:show="dialogModelConfig.show">
<component
v-if="dialogModelConfig.render"
:is="dialogModelConfig.render"></component>
</DialogModel>
</div> </div>
</template> </template>
<script setup> <script setup>
import { ref, reactive, onMounted, onBeforeMount, computed, h } from "vue";
import { ElMessage, ElMessageBox, ElImage } from "element-plus";
import { onGobalImage } from "@/utils/index.js";
import ePie from "./echarts_sy/pie.vue"; import ePie from "./echarts_sy/pie.vue";
import ePie2 from "./echarts_sy/pie2.vue"; import ePie2 from "./echarts_sy/pie2.vue";
import zwfw1 from "./echarts_sy/zwfw1.vue"; import zwfw1 from "./echarts_sy/zwfw1.vue";
@ -644,7 +633,7 @@ import ggjtimg4 from "../assets/images/sy/ggjt4.png";
import Dialog from "./dialog/dialog.vue"; import Dialog from "./dialog/dialog.vue";
import DialogEc from "./dialog/dialogEc.vue"; import DialogEc from "./dialog/dialogEc.vue";
import DialogTab from "./dialog/dialogTab.vue"; import DialogTab from "./dialog/dialogTab.vue";
import { ref, reactive, onMounted, onBeforeMount, computed } from "vue"; import DialogModel from "./dialog/dialogModel.vue";
import http from "@/utils/request.js"; import http from "@/utils/request.js";
import { CircleCloseFilled } from "@element-plus/icons-vue"; import { CircleCloseFilled } from "@element-plus/icons-vue";
import { columns } from "element-plus/es/components/table-v2/src/common.mjs"; import { columns } from "element-plus/es/components/table-v2/src/common.mjs";
@ -655,12 +644,39 @@ import qyfw4 from "../assets/images/sy/dxje.png";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
const router = useRouter(); const router = useRouter();
const routers = useRoute(); const routers = useRoute();
// //
const goto = (url) => { const goto = (url) => {
router.push({ router.push({
path: `${url}`, path: `${url}`,
}); });
}; };
//#region
const dialogModelConfig = reactive({
show: false,
title: "",
render: null,
});
//#endregion
//#region
const onGrossPopulation = () => {
dialogModelConfig.title = "人口总数";
dialogModelConfig.render = () => {
return h(ElImage, {
style: {
width: "100%",
height: "54vh",
},
src: onGobalImage("images/sy/gross-population.png"),
fit: "fill",
width: "100%",
height: "100%",
});
};
dialogModelConfig.show = true;
};
//#endregion
//echart //echart
const showEchart = ref(false); const showEchart = ref(false);
// //

View File

@ -400,7 +400,8 @@
<!-- 弹框模版 --> <!-- 弹框模版 -->
<DialogModel <DialogModel
v-bind="dialogModelConfig" v-bind="dialogModelConfig"
v-model:show="dialogModelConfig.show"> v-model:show="dialogModelConfig.show"
isBgColor>
<component <component
v-if="dialogModelConfig.render" v-if="dialogModelConfig.render"
:is="dialogModelConfig.render"></component> :is="dialogModelConfig.render"></component>
@ -1083,7 +1084,10 @@ const onMechanism = () => {
if (res.code == 200) { if (res.code == 200) {
dialogModelConfig.render = () => { dialogModelConfig.render = () => {
let html = let html =
res.data?.zcnr?.replace(/\n/g, "<br/>") || res?.data?.zcnr || ""; `&emsp;&emsp;` +
res.data?.zcnr?.replace(/\n/g, "<br/>&emsp;&emsp;") ||
res?.data?.zcnr ||
"";
return h("div", { return h("div", {
innerHTML: html, innerHTML: html,
}); });