jhbigscreen/src/pages/index.vue

1042 lines
50 KiB
Vue
Raw Normal View History

2023-08-10 01:16:23 +08:00
<template>
2023-08-28 00:01:37 +08:00
<div class="main-index">
2023-10-03 21:31:40 +08:00
2023-08-12 00:51:55 +08:00
<div class="screen-content">
<el-row>
<el-col :span="6" style="position: relative;">
2023-08-12 14:16:43 +08:00
<module-one-2-1 label="集团项目总览" :key="elKey">
2023-08-12 00:51:55 +08:00
<img src="images/icon2001.png" style="position: absolute;cursor: pointer;right: 0px;top: 8px;"
@click="doShowDlg1">
<div class="survey_title">
<div class="survey_title_btn">
<div :class="overview == 0 ? 'survey_title_btn_min active' : 'survey_title_btn_min'"
@click="onClickoOverview(0)">项目数</div>
</div>
<div class="survey_title_btn">
<div :class="overview == 1 ? 'survey_title_btn_min active' : 'survey_title_btn_min'"
@click="onClickoOverview(1)">项目总投资</div>
</div>
<div class="survey_title_btn">
<div :class="overview == 2 ? 'survey_title_btn_min active' : 'survey_title_btn_min'"
@click="onClickoOverview(2)">项目年投资</div>
</div>
2023-08-10 01:16:23 +08:00
</div>
2023-08-12 00:51:55 +08:00
<project-overview-chart @clickme="doShowDlg3" :key="overview" :sp="''"
:maintitle="overviewTotal" :legend-opt="legendOpt1" :typedata="typeDistributionData"
:text="overviewText" :height="230"></project-overview-chart>
2023-08-10 01:16:23 +08:00
2023-09-10 00:56:59 +08:00
<rank-chart :data="availabilityData" :showval="true" :height="300"
:width="projectCategoryWidth"></rank-chart>
2023-08-10 01:16:23 +08:00
2023-08-12 00:51:55 +08:00
</module-one-2-1>
2023-09-10 00:56:59 +08:00
<module-one-1-1 label="安全/质量管理">
<div class="warning-info-title" style="padding-left: 20px;">
2023-08-12 14:54:19 +08:00
<div :class="qualityNav == 0 ? 'active' : ''" @click="qualityNavClick(0)"></div>
<div :class="qualityNav == 1 ? 'active' : ''" @click="qualityNavClick(1)"></div>
2023-08-12 00:51:55 +08:00
</div>
2023-09-10 00:56:59 +08:00
<project-overview-chart :sp="'\n'" :maintitle="qualityNavTotal" :legend-opt="legendOpt2"
:key="elKey" :typedata="dangersDatas" :text="qualityNavTitle" :height="220"
style="top:0px"></project-overview-chart>
2023-08-12 00:51:55 +08:00
</module-one-1-1>
</el-col>
<el-col :span="12">
<module-one-2-1 class="center-image" label="集团项目区域分布">
2023-10-03 21:31:40 +08:00
<map-index></map-index>
2023-08-12 00:51:55 +08:00
</module-one-2-1>
<el-row>
2023-09-30 23:04:00 +08:00
<el-col :span="12" style="position: relative;">
2023-08-26 12:46:38 +08:00
<module-one-1-1 label="人员统计" :key="elDeptWorks">
2023-09-30 23:04:00 +08:00
<img src="images/icon2001.png" v-if="infoNav == 1" style="position: absolute;cursor: pointer;right: 20px;top: 48px;"
@click="doShowAttendanceDetail">
2023-08-12 00:51:55 +08:00
<div class="warning-info-title" style="padding-left: 20px;">
2023-08-13 22:11:18 +08:00
<div :class="infoNav == 0 ? 'active' : ''" @click="onWarningInfoNav(0)"></div>
<div :class="infoNav == 1 ? 'active' : ''" @click="onWarningInfoNav(1)"></div>
2023-08-12 00:51:55 +08:00
</div>
<el-row>
<el-col :span="8">
<div class="survey_content">
<div class="survey_content_img">
<img :src="surveyUrl">
</div>
2023-08-10 01:16:23 +08:00
</div>
2023-08-12 00:51:55 +08:00
<div class="survey_content_number labour-survey_content_number">
<div class="survey_content_value"><span>{{ laborPersonnelTotal }}</span>
</div>
<p>{{ staffText }}</p>
2023-08-10 01:16:23 +08:00
</div>
2023-08-12 00:51:55 +08:00
</el-col>
<el-col :span="16">
<staff-survey-chart :height="220" :data="laborPersonnelData"
:width="140"></staff-survey-chart>
</el-col>
</el-row>
</module-one-1-1>
</el-col>
<el-col :span="12" style="position: relative;">
<module-one-1-1 label="项目进度汇总">
<img src="images/icon2001.png"
2023-09-10 00:56:59 +08:00
style="position: absolute;cursor: pointer;right: 13px;top: 12px;"
@click="doShowDlg2">
2023-08-12 00:51:55 +08:00
<div class="warning-info-title" style="padding-left: 20px;">
2023-09-10 00:56:59 +08:00
<div :class="prjProcessNav == 1 ? 'active' : ''" @click="doPrjProcess(1, '在建项目')">
在建项目({{ getPrjCateCount(0) }})
2023-08-10 01:16:23 +08:00
</div>
2023-09-10 00:56:59 +08:00
<div :class="prjProcessNav == 2 ? 'active' : ''" @click="doPrjProcess(2, '拟建项目')">
拟建项目({{ getPrjCateCount(1) }})
2023-08-10 01:16:23 +08:00
</div>
2023-09-10 00:56:59 +08:00
<div :class="prjProcessNav == 4 ? 'active' : ''" @click="doPrjProcess(4, '完成项目')">
完成项目({{ getPrjCateCount(3) }})
2023-08-10 01:16:23 +08:00
</div>
</div>
2023-08-12 00:51:55 +08:00
<el-row>
<el-col :span="8">
<div class="survey_content">
<div class="survey_content_img">
2023-08-23 00:03:22 +08:00
<svg v-if="prjProcessNav == 1" class="my-svg-icon"
2023-08-12 00:51:55 +08:00
style="vertical-align: middle;fill: #fff;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="2883">
<path
d="M510.0032 492.9536c-12.16 0-24.3456-2.3808-35.9424-7.1168L71.7824 300.5952c-11.3408-4.6336-18.816-15.5648-19.072-27.8016s6.784-23.4496 17.92-28.544l400.1536-183.296a100.1728 100.1728 0 0 1 82.7648-0.3072l398.1056 178.8416c11.1616 5.0176 18.2784 16.1792 18.1248 28.416s-7.5776 23.2192-18.8672 27.9296l-404.3264 189.7216a94.26944 94.26944 0 0 1-36.5824 7.3984zM160.64 270.592l336.7424 158.3872a33.0496 33.0496 0 0 0 25.5232-0.1024l338.9952-162.3808-333.5424-149.8112a38.6688 38.6688 0 0 0-32 0.128L160.64 270.592z"
fill="#fff" p-id="2884"></path>
<path
d="M510.1568 722.7648c-14.4896 0-28.9536-3.3536-42.1632-10.0864L68.3264 509.0816c-8.576-4.3776-15.0784-12.2624-16.9472-21.6832a30.7072 30.7072 0 0 1 15.0272-32.8192l189.6704-106.9568c19.5584-11.0336 44.3136-4.1216 55.3472 15.4368l10.2144 18.1248-175.1808 98.7904L495.872 657.92a31.5392 31.5392 0 0 0 28.672-0.0512l354.0224-181.9136-175.9488-100.736 10.3424-18.0736c11.1616-19.4816 35.968-26.2144 55.4496-15.0784l189.7984 108.672c9.7792 5.6064 15.6928 16.1024 15.4368 27.3664s-6.656 21.4784-16.6656 26.624l-404.352 207.7696a92.53376 92.53376 0 0 1-42.4704 10.2656z"
fill="#fff" p-id="2885"></path>
<path
d="M512.2048 975.9744c-4.7872 0-9.5744-1.1264-13.952-3.3536L70.2464 754.5856c-8.576-4.3776-15.0784-12.2624-16.9472-21.7088a30.72512 30.72512 0 0 1 15.0272-32.8192l192.1536-108.3648c18.176-10.24 41.2416-3.8144 51.4816 14.3616l11.6224 20.608-175.1808 98.7904 363.7504 185.2928 368.3584-189.2608-175.9488-100.736 11.7504-20.5312c10.368-18.1248 33.4592-24.3968 51.584-14.0288l192.2816 110.08c9.7792 5.6064 15.6928 16.1024 15.4368 27.3664a30.72 30.72 0 0 1-16.6656 26.624l-432.6656 222.3104a31.0272 31.0272 0 0 1-14.08 3.4048z"
fill="#fff" p-id="2886"></path>
</svg>
2023-08-23 00:03:22 +08:00
<svg v-if="prjProcessNav == 2" class="my-svg-icon"
2023-08-12 00:51:55 +08:00
style="vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="2900">
<path
d="M702.976 981.76H149.76c-57.088 0-103.424-46.336-103.424-103.424V306.688c0-57.088 46.336-103.424 103.424-103.424h553.216c57.088 0 103.424 46.336 103.424 103.424v571.648c0 57.088-46.592 103.424-103.424 103.424zM149.76 264.704c-23.04 0-41.984 18.944-41.984 41.984v571.648c0 23.04 18.944 41.984 41.984 41.984h553.216c23.04 0 41.984-18.944 41.984-41.984V306.688c0-23.04-18.944-41.984-41.984-41.984H149.76z"
fill="#040000" p-id="2901"></path>
<path
d="M873.984 890.112h-66.816c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h66.816c25.344 0 46.08-20.736 46.08-46.08V152.576c0-25.344-20.736-46.08-46.08-46.08H294.144c-25.344 0-46.08 20.736-46.08 46.08v59.136c0 16.896-13.824 30.72-30.72 30.72s-30.72-13.824-30.72-30.72V152.576c0-59.392 48.128-107.52 107.52-107.52h579.84c59.392 0 107.52 48.128 107.52 107.52v630.272c0 59.136-48.384 107.264-107.52 107.264z"
fill="#040000" p-id="2902"></path>
<path
d="M771.072 521.984H82.944c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h688.128c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72zM652.032 391.424H326.144c-15.616 0-28.16-12.544-28.16-28.16s12.544-28.16 28.16-28.16h325.888c15.616 0 28.16 12.544 28.16 28.16s-12.544 28.16-28.16 28.16z"
fill="#040000" p-id="2903"></path>
<path
d="M221.952 365.824m-33.792 0a33.792 33.792 0 1 0 67.584 0 33.792 33.792 0 1 0-67.584 0Z"
fill="#040000" p-id="2904"></path>
</svg>
2023-08-23 00:03:22 +08:00
<svg v-if="prjProcessNav == 4" class="my-svg-icon"
2023-08-12 00:51:55 +08:00
style="vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="2641">
<path
d="M997.76 494.72l-133.12-76.8 128-72.32a32 32 0 0 0 0-55.68L704 123.52a32 32 0 0 0-32 0L512 213.76 346.88 118.4a32 32 0 0 0-32 0L26.24 284.8a32 32 0 0 0 0 55.68l133.76 76.8-128 72.32a32 32 0 0 0 0 55.68L192 635.52v114.56a32 32 0 0 0 16 27.52l288 166.4a32 32 0 0 0 32 0l288-166.4a32 32 0 1 0-32-55.68L512 880l-256-147.84v-59.52l64 39.04a32 32 0 0 0 32 0L512 620.8l166.4 96a32 32 0 0 0 32 0l106.24-64 181.12-105.6a32 32 0 0 0 0-55.68zM512 288l224 128L512 547.2l-224-128L384 362.88z m172.8-99.84l224 128-108.8 64L576 250.88z m-353.92-5.12L448 250.88l-91.52 53.12L224 380.16 106.24 312.32zM114.56 517.12l108.8-64L320 512l128 71.68-108.8 64z m579.2 135.04L576 583.68 700.16 512l99.84-57.6 117.12 67.84z"
fill="#1B213F" p-id="2642"></path>
</svg>
</div>
</div>
<div class="survey_content_number labour-survey_content_number">
<div class="survey_content_value"><span>{{ prjPrcessTotal }}</span> </div>
<p>{{ prjPrcessText }}</p>
</div>
</el-col>
2023-08-16 23:58:03 +08:00
<el-col :span="16" :key="elSumKey">
2023-08-12 00:51:55 +08:00
<staff-survey-chart :height="220" :unit="'个'" :data="prjPrcessData"
2023-09-10 00:56:59 +08:00
:width="140" @chart-click="planSummaryChartClick"></staff-survey-chart>
2023-08-12 00:51:55 +08:00
</el-col>
</el-row>
</module-one-1-1>
2023-08-10 01:16:23 +08:00
</el-col>
2023-08-12 00:51:55 +08:00
</el-row>
</el-col>
<el-col :span="6">
2023-08-20 19:20:22 +08:00
<module-one-1-1 label="集团新闻">
2023-08-19 21:30:44 +08:00
<el-carousel>
2023-09-10 00:56:59 +08:00
<el-carousel-item v-for="(item, idx) in JournalismList" :key="idx">
2023-08-20 19:44:01 +08:00
<div style="height: 94%;text-align: center;" @click="handJournalism(item)">
2023-09-10 00:56:59 +08:00
<img :src="$apiPath + item.mainImage + '.min.jpg'" style="width: 99%;height: 100%;">
2023-08-19 21:30:44 +08:00
</div>
2023-08-20 19:44:01 +08:00
<div style="text-align: center;font-size: 12px;line-height: 32px;margin-top: -32px;">
2023-09-10 00:56:59 +08:00
{{ item.title }}
2023-08-19 21:30:44 +08:00
</div>
</el-carousel-item>
</el-carousel>
2023-08-12 00:51:55 +08:00
</module-one-1-1>
<module-one-1-1 label="成本管理" :key="elKey">
2023-09-04 01:01:14 +08:00
<div class="glr-max cost-out" style="position: relative;">
2023-08-12 00:51:55 +08:00
<div class="glr-min">
2023-09-10 00:56:59 +08:00
2023-09-04 01:01:14 +08:00
<div class="glr-title">开累产值</div>
2023-09-10 00:56:59 +08:00
<div class="labour-education">
<div style="transform: scale(0.8);margin-left:-20px">
<people-number
:number="numberWithCommas((sumCost.totalMonth * 1.0 || 0).toFixed(2)) || '0.00'"
unit="万元"></people-number>
</div>
2023-09-19 21:50:53 +08:00
<div class="survey_content" style="position: absolute;right: 15px;top: -36px;">
2023-09-10 00:56:59 +08:00
<div class="survey_content_img labour-education_bgd">
<svg class="my-svg-icon"
style="vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="16007">
<path
d="M544.853333 545.322667v54.826666h100.053334a33.749333 33.749333 0 1 1 0 67.541334h-99.989334v91.648a33.749333 33.749333 0 0 1-67.52 0v-91.648h-98.282666a33.749333 33.749333 0 0 1 0-67.52h98.282666v-54.848h-98.282666a33.749333 33.749333 0 0 1 0-67.52h76.565333l-90.176-151.658667a33.856 33.856 0 0 1 58.133333-34.453333l88.298667 148.501333 88.362667-148.501333a33.856 33.856 0 0 1 58.069333 34.453333l-90.176 151.68h76.693333a33.749333 33.749333 0 0 1 0 67.498667H544.853333zM512 110.186667a400 400 0 0 0-284.16 117.674666A400.426667 400.426667 0 0 0 110.208 512a400 400 0 0 0 117.674667 284.16A400.426667 400.426667 0 0 0 512 913.792a400 400 0 0 0 284.16-117.674667A400.426667 400.426667 0 0 0 913.792 512a400 400 0 0 0-117.653333-284.16A400.426667 400.426667 0 0 0 512 110.208zM512 42.666667c259.2 0 469.333333 210.133333 469.333333 469.333333s-210.133333 469.333333-469.333333 469.333333S42.666667 771.2 42.666667 512 252.8 42.666667 512 42.666667z"
fill="#8A8A8A" p-id="16008"></path>
</svg>
2023-09-04 01:01:14 +08:00
</div>
2023-09-10 00:56:59 +08:00
</div>
</div>
<div class="glr-title">年度产值</div>
<div class="labour-education">
<div style="transform: scale(0.8);margin-left:-20px">
<people-number
:number="numberWithCommas((sumCost.curYear * 1.0 || 0).toFixed(2)) || '0.00'"
unit="万元"></people-number>
</div>
</div>
<div class="glr-title">月度产值</div>
<div class="labour-education">
<div style="transform: scale(0.8);margin-left:-20px">
<people-number
:number="numberWithCommas((sumCost.curMonth * 1.0 || 0).toFixed(2)) || '0.00'"
unit="万元"></people-number>
</div>
</div>
2023-08-10 01:16:23 +08:00
</div>
2023-08-12 00:51:55 +08:00
</div>
</module-one-1-1>
<module-one-1-1 label="项目监测预警">
2023-09-10 00:56:59 +08:00
<MonitAndWarning></MonitAndWarning>
2023-08-12 00:51:55 +08:00
</module-one-1-1>
</el-col>
</el-row>
2023-10-03 21:31:40 +08:00
</div>
2023-08-12 00:51:55 +08:00
<index-dlg1 ref="dlg1"></index-dlg1>
<index-dlg2 ref="dlg2"></index-dlg2>
<index-dlg3 ref="dlg3"></index-dlg3>
2023-08-19 21:30:44 +08:00
<journalismDlg ref="journalismDlg"></journalismDlg>
2023-09-30 23:04:00 +08:00
<AttendanceDetailDialog ref="attDetailDlg"></AttendanceDetailDialog>
2023-08-10 01:16:23 +08:00
</div>
</template>
<script>
import '../components/module/module-one-2-1'
import '../components/background_video'
import '../components/project-overview-chart'
import '../components/rank-chart'
import '../components/staff-survey-chart'
2023-08-12 00:51:55 +08:00
import indexDlg1 from './index/indexDlg1'
import indexDlg2 from './index/indexDlg2'
import indexDlg3 from './index/indexDlg3'
import indexMap from './index/map.vue'
2023-08-13 12:31:50 +08:00
import MonitAndWarning from './components/MonitAndWarning.vue'
2023-08-19 21:30:44 +08:00
import journalismDlg from './dlg/journalismDlg.vue'
2023-09-17 23:29:27 +08:00
import debounce from 'lodash.debounce'
2023-09-30 23:04:00 +08:00
import AttendanceDetailDialog from './components/AttendanceDetailDialog.vue'
2023-10-03 21:31:40 +08:00
import mapIndex from './index/mapIndex.vue'
2023-08-10 01:16:23 +08:00
export default {
2023-08-12 00:51:55 +08:00
name: 'App',
components: {
indexDlg1,
indexDlg2,
indexDlg3,
2023-08-13 12:31:50 +08:00
indexMap,
2023-08-19 21:30:44 +08:00
MonitAndWarning,
2023-09-30 23:04:00 +08:00
journalismDlg,
2023-10-03 21:31:40 +08:00
AttendanceDetailDialog,mapIndex
2023-08-12 00:51:55 +08:00
},
data() {
return {
2023-09-10 00:56:59 +08:00
elDeptWorks: 0,
prj: {},
prjs: [],
elSumKey: 0,
2023-08-12 00:51:55 +08:00
elKey: 0,
prjInfo: {},
loading: true,
legendOpt1: {
icon: "rect",
textStyle: {
fontSize: 14,
rich: {
name: {
color: "#c3dbfd",
padding: [10, 5, 20, 5],
},
percent: {
color: "#4676FD",
padding: [10, 5, 20, 5],
2023-08-10 01:16:23 +08:00
},
},
},
2023-08-12 00:51:55 +08:00
},
2023-09-10 00:56:59 +08:00
legendOpt2: {
2023-08-12 00:51:55 +08:00
icon: "rect",
2023-08-12 14:54:19 +08:00
orient: "horizontal",
2023-09-10 00:56:59 +08:00
left: '50%',
top: 'top',
itemGap: 0,
2023-08-12 00:51:55 +08:00
textStyle: {
fontSize: 14,
rich: {
name: {
color: "#c3dbfd",
2023-08-12 14:54:19 +08:00
padding: [5, 2, 20, 2],
2023-08-12 00:51:55 +08:00
},
percent: {
color: "#4676FD",
fontSize: 16,
2023-08-12 14:54:19 +08:00
padding: [0, 2, 0, 2],
2023-08-12 00:51:55 +08:00
},
},
}
},
projectList: [
{ text: '中铁一局建安公司', id: 0, type: 1 },
{ text: '泾河新城荟锦坊二期 EPC 工程总承包项目', id: 1, type: 2 },
{ text: '西安市地铁2号线二期工程施工总承包项目2标段', id: 2, type: 2 },
{ text: '苏州桑田岛项目', id: 3, type: 2 },
],
2023-08-12 14:54:19 +08:00
dangersDatas: [],
2023-08-12 00:51:55 +08:00
//原因类型分析
2023-08-12 14:54:19 +08:00
availabilityData: [],
2023-08-12 00:51:55 +08:00
overviewText: '项目数量',
overviewTotal: 100,
//项目概况
typeDistributionData: [
{ name: '在建项目', value: '15' },
{ name: '项目总投资', value: '515.97' },
{ name: '项目年投资', value: '134.86' }
],
//质量管理
qualityNav: 0,
2023-09-10 00:56:59 +08:00
qualityNavTitle: '',
qualityNavTotal: 0,
2023-08-12 00:51:55 +08:00
//劳务人员
infoNav: 0,
staffText: '在岗人员',
surveyUrl: 'images/survey_icon_4.png',
2023-08-14 00:01:54 +08:00
laborPersonnelTotal: 0,
2023-08-12 00:51:55 +08:00
laborPersonnelData: [
2023-08-14 00:01:54 +08:00
{ text: "总包人员", value: 0 },
{ text: "监理人员", value: 0 },
{ text: "劳务人员", value: 0 },
2023-08-12 00:51:55 +08:00
],
//项目进度
2023-08-23 00:03:22 +08:00
prjProcessNav: 1,
2023-08-12 00:51:55 +08:00
prjPrcessText: '在建项目',
prjPrcessTotal: 100,
prjPrcessUrl: 'images/prj1.svg',
prjPrcessData: [
2023-08-23 00:03:22 +08:00
{ text: "正常推进项目", value: 0 },
{ text: "进度滞后项目", value: 0 },
2023-08-12 00:51:55 +08:00
],
//总投金额
investmentAmountData1: [
{ text: "付款金额", value: 0 },
],
investmentAmountData2: [
{ text: "挂账金额", value: 0 },
],
//设备概况
overview: 0,
overviewInterval: '',
surveyUrlSb: 'images/survey_icon_1.png',
2023-08-10 01:16:23 +08:00
2023-08-12 00:51:55 +08:00
//地图数据
mapOutdata: [],
tooltipData: [],
//正在发生
warningData: [
{
equipment: '挖掘机01#',
images: 'images/warning_jixie.png',
content: '当前机械已闲置10天请尽快检查',
time: '2022年10月29日 17:29:55',
projectName: '泾河新城荟锦坊二期 EPC 工程总承包项目',
address: '陕西省西安市泾河新城荟锦坊二期',
longitude: '108.913119',
latitude: '34.546109',
},
{
equipment: '履带挖掘机01#',
images: 'images/warning_jixie.png',
content: '当前机械已闲置10天请尽快检查',
time: '2022年10月29日 17:29:55',
projectName: '西安市地铁2号线二期工程施工总承包项目2标段',
address: '西安市地铁2号线',
longitude: '108.917',
latitude: '34.379435',
},
{
equipment: '洒水车01#',
images: 'images/warning_jixie.png',
content: '当前机械已闲置10天请尽快检查',
time: '2022年10月29日 17:29:55',
projectName: '苏州桑田岛项目',
address: '苏州桑田岛项目',
longitude: '120.43316',
latitude: '31.282088',
}
],
2023-08-10 01:16:23 +08:00
2023-08-12 00:51:55 +08:00
/*warningData[i].images
* 机械 images/warning_jixie.png
* 测斜 images/warning_cexie.png
* 沉降 images/warning_chenjiang.png
* 吊重 images/warning_diaozhong.png
* 风速 images/warning_fengsu.png
* 幅度 images/warning_fudu.png
* 高度 images/warning_gaodu.png
* PM2.5 images/warning_PM2.5.png
* PM10 images/warning_PM10.png
* 倾角 images/warning_qingjiao.png
* 倾斜 images/warning_qingxie.png
* 人员 images/warning_renyuan.png
* 湿度 images/warning_shidu.png
* 水位 images/warning_shuiwei.png
* 位移 images/warning_weiyi.png
* 温度 images/warning_wendu.png
* 应力 images/warning_yingli.png
* 噪音 images/warning_zaoyin.png
* 转角 images/warning_zhuanjiao.png
* */
//重大节点预期预警 数据
index: 0,
majorInterval: undefined,
majorWarningData: [
{
projectName: '泾河新城荟锦坊二期',
majorNode: '当前机械已闲置10天请尽快检查',
timeNode: '2022年10月15日',
expectDays: 5,
state: 1,
},
{
projectName: '西安市地铁2号线二期工程施工总承包项目2标段',
majorNode: '当前机械已闲置10天',
timeNode: '2022年10月15日',
expectDays: 5,
state: 1,
},
{
projectName: '苏州桑田岛项目',
majorNode: '当前机械已闲置10天',
timeNode: '2022年10月15日',
expectDays: 0,
state: 0,
},
{
projectName: '西安市地铁2号线二期工程施工总承包项目2标段',
majorNode: '当前机械已闲置10天请尽快检查',
timeNode: '2022年10月15日',
expectDays: 0,
state: 0,
},
{
projectName: '苏州桑田岛项目',
majorNode: '当前机械已闲置10天请尽快检查',
timeNode: '2022年10月15日',
expectDays: 0,
state: 0,
},
],
2023-08-10 01:16:23 +08:00
2023-08-12 00:51:55 +08:00
//head 选择项目回显
localStorage: '',
2023-08-10 01:16:23 +08:00
2023-08-12 00:51:55 +08:00
//正在发生
warningInterval: undefined,
2023-09-10 00:56:59 +08:00
forIndex: 0,
projectCategory: [],
projectCategoryWidth: 200,
deptInfo: {},
JournalismList: [],
sumCost: {},
2023-08-12 00:51:55 +08:00
}
},
created() {
this.init()
},
mounted() {
2023-09-10 00:56:59 +08:00
window.xapp = this;
2023-08-12 00:51:55 +08:00
this.$nextTick(() => {
this.loading = true;
});
2023-09-17 23:29:27 +08:00
this.$bus.$on("loadProjects", debounce(prjs => {
2023-08-20 22:58:54 +08:00
this.prjs = prjs;
2023-09-10 00:56:59 +08:00
if (this.prj.id == 0) {
this.prjInfo = this.prjs[1];
2023-08-20 22:58:54 +08:00
}
2023-09-17 23:29:27 +08:00
}));
this.$bus.$on("projectChange", debounce(res => {
2023-09-10 00:56:59 +08:00
if (res.id == 0) {
const func = () => {
if (this.prjs && this.prjs.length > 1) {
2023-08-20 22:58:54 +08:00
this.prjInfo = this.prjs[1];
2023-09-10 00:56:59 +08:00
} else {
setTimeout(func, 100);
2023-08-20 22:58:54 +08:00
}
}
func();
2023-09-10 00:56:59 +08:00
} else {
2023-08-20 22:58:54 +08:00
this.prjInfo = res;
}
2023-09-10 00:56:59 +08:00
this.prj = res;
2023-08-12 00:51:55 +08:00
this.investmentAmountData1[0].value = "" + res.paidAmount * 1.0;
this.investmentAmountData2[0].value = "" + res.onAccountAmount * 1.0;
this.elKey++;
2023-09-10 00:56:59 +08:00
this.onWarningInfoNav(0);
this.sumCostOutByDeptId();
2023-09-27 00:36:41 +08:00
2023-09-17 23:29:27 +08:00
}));
this.$bus.$on("deptChange", debounce(dept => {
2023-09-10 00:56:59 +08:00
this.deptInfo = dept;
2023-08-24 00:12:01 +08:00
this.groupByProjectCategory(dept.id);
2023-08-12 14:16:43 +08:00
this.onClickoOverview(0)
2023-08-12 14:54:19 +08:00
this.qualityNavClick(0);
2023-08-26 11:08:34 +08:00
this.onWarningInfoNav(0);
2023-09-04 01:01:14 +08:00
this.sumCostOutByDeptId();
2023-09-17 23:29:27 +08:00
}));
2023-10-03 21:31:40 +08:00
if(this.$root.hasInitHeader){
this.initMe();
}
2023-08-12 00:51:55 +08:00
},
2023-09-10 00:56:59 +08:00
methods: {
2023-10-03 21:31:40 +08:00
initMe(){
2023-10-10 22:54:06 +08:00
this.prj=this.$root.project||{};
this.deptInfo=this.$root.dept||{};
this.prjs=this.$root.projects||[];
2023-10-03 21:31:40 +08:00
let res=this.prj;
this.investmentAmountData1[0].value = "" + res.paidAmount * 1.0;
this.investmentAmountData2[0].value = "" + res.onAccountAmount * 1.0;
this.elKey++;
this.onWarningInfoNav(0);
this.sumCostOutByDeptId();
this.groupByProjectCategory(this.deptInfo.id);
this.onClickoOverview(0)
this.qualityNavClick(0);
},
2023-09-30 23:04:00 +08:00
doShowAttendanceDetail(){
let data={
deptId:this.deptInfo.id||0,
projectId:this.prj.id||0,
attendanceTime: this.$dt(new Date()).format("YYYY-MM-DD")
}
this.$refs.attDetailDlg.showDialog(data);
},
2023-09-27 00:36:41 +08:00
loadAttendanceData(){
let data={
subDeptId:this.deptInfo.id||0,
projectId:this.prj.id||0,
attendanceTime: this.$dt(new Date()).format("YYYY-MM-DD")
}
this.$api.attendance.groupByComany(data).then(d=>{
let tmps=d.data||[];
const func=(ids)=>{
let sum=0;
tmps.filter(it=>ids.includes(it.companyTypeId)).map(it=>it.id).forEach(it=>{
sum+=it*1;
})
return sum;
}
this.laborPersonnelTotal = 0;
this.laborPersonnelData = [{ text: "劳务人员", value: func(["2","3"]) }, { text: "监理人员", value: func(["8"]) }, { text: "总包人员", value: func(["1"]) }];
this.laborPersonnelData.forEach(it=>{
this.laborPersonnelTotal += it.value;
})
this.elDeptWorks++;
});
},
2023-09-10 00:56:59 +08:00
planSummaryChartClick(p){
let idx=0;
if(p.event.target.parent.style && p.event.target.parent.style.text){
if(p.event.target.parent.style.text.includes("正常推进项目")){
idx=2;
}
if(p.event.target.parent.style.text.includes("进度滞后项目")){
idx=1;
}
2023-09-04 01:01:14 +08:00
}else{
2023-09-10 00:56:59 +08:00
idx=p.seriesIndex;
2023-09-04 01:01:14 +08:00
}
2023-09-10 00:56:59 +08:00
if(idx==1||idx==2){
2023-09-10 15:43:47 +08:00
this.$refs.dlg2.showDetailDialog(this.prjProcessNav,idx,this.deptInfo);
2023-09-10 00:56:59 +08:00
}
},
sumCostOutByDeptId() {
let dt = this.$dt(new Date());
let postData = {
year: dt.$y,
month: dt.$M + 1
};
if (this.prj && this.prj.id > 0) {
postData.projectId = this.prj.id;
} else {
postData.id = this.deptInfo.id;
}
if (this.callSumCostTime) {
if (+new Date() - this.callSumCostTime < 400) {
2023-09-04 01:01:14 +08:00
return;
}
}
2023-09-10 00:56:59 +08:00
this.callSumCostTime = +new Date();
this.$api.costOut.sumByDeptId(postData).then(d => {
this.sumCost = d;
2023-09-04 01:01:14 +08:00
});
},
2023-09-10 00:56:59 +08:00
qualityNavClick(n) {
this.qualityNav = n;
if (n == 0) {
this.qualityNavTitle = "安全隐患总数";
let postData = {
deptId: this.deptInfo?.id || 0,
roleType: 0
2023-08-26 23:35:33 +08:00
};
2023-09-10 00:56:59 +08:00
this.$api.problemmodify.safetySummary(postData).then(d => {
this.dangersDatas = (d || []).map(it => {
2023-08-12 14:54:19 +08:00
return {
2023-09-10 00:56:59 +08:00
text: it.problemArea,
prop: '0.0',
name: it.problemArea,
value: +it.roleType || 0
2023-08-12 14:54:19 +08:00
}
});
2023-09-10 00:56:59 +08:00
let sum = 0;
this.dangersDatas.forEach(it => {
sum += it.value * 1;
2023-08-12 14:54:19 +08:00
})
2023-09-10 00:56:59 +08:00
this.qualityNavTotal = sum;
2023-08-12 14:54:19 +08:00
this.elKey++;
})
2023-09-10 00:56:59 +08:00
} else {
let postData = {
deptId: this.deptInfo?.id || 0,
roleType: 0
2023-08-26 23:35:33 +08:00
};
2023-09-10 00:56:59 +08:00
this.qualityNavTitle = "质量隐患总数";
this.$api.problemmodify.qualitySummary(postData).then(d => {
this.dangersDatas = (d || []).map(it => {
2023-08-12 14:54:19 +08:00
return {
2023-09-10 00:56:59 +08:00
text: it.problemArea,
prop: '0.0',
name: it.problemArea,
value: +it.roleType || 0
2023-08-12 14:54:19 +08:00
}
});
2023-09-10 00:56:59 +08:00
let sum = 0;
this.dangersDatas.forEach(it => {
sum += it.value * 1;
2023-08-12 14:54:19 +08:00
})
2023-09-10 00:56:59 +08:00
this.qualityNavTotal = sum;
2023-08-12 14:54:19 +08:00
this.elKey++;
})
}
2023-09-10 00:56:59 +08:00
},
2023-08-12 00:51:55 +08:00
numberWithCommas(x) {
x = x.toString();
var pattern = /(-?\d+)(\d{3})/;
while (pattern.test(x))
x = x.replace(pattern, "$1,$2");
return x;
2023-08-10 01:16:23 +08:00
},
2023-08-12 00:51:55 +08:00
doShowDlg3() {
this.$refs.dlg3.showDialog()
2023-08-10 01:16:23 +08:00
},
2023-08-12 00:51:55 +08:00
doShowDlg1() {
this.$refs.dlg1.showDialog()
2023-08-10 01:16:23 +08:00
},
2023-08-12 00:51:55 +08:00
doShowDlg2() {
2023-09-10 15:43:47 +08:00
this.$refs.dlg2.showDialog(this.prjProcessNav, [this.getPrjCateCount(0), this.getPrjCateCount(1), this.getPrjCateCount(3)],this.deptInfo)
2023-08-12 00:51:55 +08:00
},
2023-09-10 00:56:59 +08:00
getPrjCateCount(n) {
if (this.projectCategory.length < n + 1) {
2023-08-12 14:16:43 +08:00
return 0;
2023-09-10 00:56:59 +08:00
}
let tmps = this.projectCategory[n];
if (tmps && tmps.length > 0) {
let sum = 0;
tmps.forEach(d => {
sum += d.cnt;
})
return sum;
}
return 0;
},
groupByProjectCategory(deptId) {
this.$api.project.groupByProjectCategory(deptId, datas => {
this.projectCategory = datas;
this.prjPrcessTotal = this.getPrjCateCount(0);
let item = this.projectCategory.length > 0 ? this.projectCategory[0] : null;
this.prjPrcessData[0].value = item && item.length > 0 ? item[0].cnt : 0;
this.prjPrcessData[1].value = item && item.length > 1 ? item[1].cnt : 0;
2023-08-23 00:03:22 +08:00
this.doPrjProcess(1, '在建项目');
2023-08-19 21:49:28 +08:00
this.elKey++;
2023-09-10 00:56:59 +08:00
});
},
2023-08-24 00:12:01 +08:00
init() {
2023-09-10 00:56:59 +08:00
2023-08-12 00:51:55 +08:00
this.localStorage = JSON.parse(localStorage.getItem("data1"))
2023-08-10 01:16:23 +08:00
//地图数据
2023-08-12 00:51:55 +08:00
this.chartMap()
//设备概况点击事件定时器
2023-08-12 14:16:43 +08:00
//this.overviewInterval = setInterval(this.overviewClick, 5000);
2023-08-12 00:51:55 +08:00
//重大节点预期预警
this.majorInterval = setInterval(this.timer, 5000);
//正在发生 定时器
2023-08-17 19:39:55 +08:00
this.warningInterval = setInterval(this.automaticRoll, 5000);
2023-08-19 21:30:44 +08:00
this.getJournalismList();
2023-09-10 00:56:59 +08:00
setInterval(this.getDeptWorksList, 600000);
setInterval(this.getJournalismList, 600000);
2023-08-12 00:51:55 +08:00
},
doPrjProcess(n, text) {
this.prjProcessNav = n;
this.prjPrcessText = text;
2023-08-23 00:03:22 +08:00
n--;
2023-09-10 00:56:59 +08:00
this.prjPrcessTotal = this.getPrjCateCount(n);
let item = this.projectCategory.length > n ? this.projectCategory[n] : null;
this.prjPrcessData[0].value = item && item.length > 0 ? item[0].cnt : 0;
this.prjPrcessData[1].value = item && item.length > 1 ? item[1].cnt : 0;
2023-08-23 00:03:22 +08:00
this.elSumKey++;
2023-08-12 00:51:55 +08:00
},
//劳务人员概况
2023-08-13 22:11:18 +08:00
onWarningInfoNav(n) {
2023-08-12 00:51:55 +08:00
this.infoNav = n
2023-09-10 00:56:59 +08:00
this.staffText = n == 0 ? '在岗人数' : '今日出勤'
2023-08-12 00:51:55 +08:00
if (n == 0) {
this.surveyUrl = 'images/survey_icon_4.png'
} else {
this.surveyUrl = 'images/survey_icon_5.png'
2023-09-27 00:36:41 +08:00
}
2023-08-17 19:39:55 +08:00
this.getDeptWorksList();
},
//查询在岗人数
2023-09-10 00:56:59 +08:00
getDeptWorksList() {
let deptId = this.deptInfo?.id || 0;
2023-08-17 19:39:55 +08:00
if (this.infoNav == 0) {
//查询在岗人数
2023-09-10 00:56:59 +08:00
this.$api.attendance.getDeptWorksList(deptId, this.prj.id).then(d => {
this.laborPersonnelTotal = 0;
this.laborPersonnelData = [{ text: "劳务人员", value: 0 }, { text: "监理人员", value: 0 }, { text: "总包人员", value: 0 }];
if (d.rows.length > 0 && d.rows[0] != null) {
this.laborPersonnelData = [];
this.laborPersonnelTotal += d.rows[0].servicePersonnel;
this.laborPersonnelData.push({ text: "劳务人员", value: d.rows[0].servicePersonnel });
this.laborPersonnelTotal += d.rows[0].supervisorPersonnel;
this.laborPersonnelData.push({ text: "监理人员", value: d.rows[0].supervisorPersonnel });
this.laborPersonnelTotal += d.rows[0].contractorPersonnel;
this.laborPersonnelData.push({ text: "总包人员", value: d.rows[0].contractorPersonnel });
}
this.elDeptWorks++;
});
2023-08-17 19:39:55 +08:00
} else {
//查询出勤人数
2023-09-27 00:36:41 +08:00
this.loadAttendanceData();
2023-08-12 00:51:55 +08:00
}
},
2023-08-19 21:30:44 +08:00
//集团新闻列表
2023-09-10 00:56:59 +08:00
getJournalismList() {
2023-08-19 21:30:44 +08:00
//查询出勤人数
this.$api.journalism.getJournalismList().then(d => {
this.JournalismList = d.rows;
});
},
2023-09-10 00:56:59 +08:00
handJournalism(item) {
2023-08-19 21:30:44 +08:00
this.$refs.journalismDlg.showDialog(item);
},
2023-08-12 00:51:55 +08:00
//设备概况点击事件定时器方法
overviewClick() {
if (this.overview < 2) {
this.overview = this.overview + 1
} else {
this.overview = 0
}
if (this.overview == 0) {
this.surveyUrlSb = 'images/survey_icon_1.png'
} else if (this.overview == 1) {
this.surveyUrlSb = 'images/survey_icon_2.png'
} else {
this.surveyUrlSb = 'images/survey_icon_3.png'
}
},
//设备概况点击事件
onClickoOverview(n) {
this.overview = n
2023-09-10 00:56:59 +08:00
2023-08-12 00:51:55 +08:00
if (this.overview == 0) {
2023-09-10 00:56:59 +08:00
this.projectCategoryWidth = 290;
2023-08-12 00:51:55 +08:00
this.overviewText = "项目数";
this.surveyUrlSb = 'images/survey_icon_1.png'
2023-09-10 00:56:59 +08:00
2023-08-12 00:51:55 +08:00
} else if (this.overview == 1) {
2023-09-10 00:56:59 +08:00
this.projectCategoryWidth = 210;
2023-08-12 00:51:55 +08:00
this.overviewText = "项目总投资";
this.surveyUrlSb = 'images/survey_icon_2.png'
2023-09-10 00:56:59 +08:00
2023-08-12 00:51:55 +08:00
} else {
2023-09-10 00:56:59 +08:00
this.projectCategoryWidth = 210;
2023-08-12 00:51:55 +08:00
this.overviewText = "项目年投资";
this.surveyUrlSb = 'images/survey_icon_3.png'
}
2023-09-10 00:56:59 +08:00
let year = this.$dt(new Date()).$y;
this.$api.project.groupByCategory(this.deptInfo.id, n, year).then(d => {
let tmps = (d.data || []).map(it => {
2023-08-12 14:16:43 +08:00
return {
2023-09-10 00:56:59 +08:00
id: it.id,
name: it.projectName,
value: it.deptId / 10000.0
2023-08-12 14:16:43 +08:00
}
});
2023-09-10 00:56:59 +08:00
let sum = 0;
tmps.forEach(it => {
sum += it.value;
2023-08-12 14:16:43 +08:00
})
2023-09-10 00:56:59 +08:00
this.overviewTotal = sum;
this.typeDistributionData = tmps;
2023-08-12 14:16:43 +08:00
this.elKey++;
})
2023-09-10 00:56:59 +08:00
this.$api.project.groupByLevel(this.deptInfo.id, n, year).then(d => {
let tmps = (d.data || []).map(it => {
2023-08-12 14:16:43 +08:00
return {
2023-09-10 00:56:59 +08:00
id: it.id,
text: it.projectName,
value: it.deptId / 10000.0,
prop: 0,
2023-08-12 14:16:43 +08:00
}
});
2023-09-10 00:56:59 +08:00
let sum = 0;
tmps.forEach(it => {
sum += it.value;
2023-08-12 14:16:43 +08:00
})
2023-09-10 00:56:59 +08:00
let total = 0;
tmps.forEach((it, idx) => {
it.prop = sum == 0 ? 0 : (it.value * 100.0 / sum).toFixed(1)
if (idx < tmps.length - 1) {
total += it.prop * 1;
} else {
if (sum > 0) {
it.prop = (100 - total).toFixed(1);
2023-08-12 14:16:43 +08:00
}
}
})
2023-10-13 23:57:20 +08:00
console.log(tmps);
2023-09-10 00:56:59 +08:00
this.availabilityData = tmps;
2023-08-12 14:16:43 +08:00
this.elKey++;
})
2023-08-12 00:51:55 +08:00
},
//地图数据
chartMap() {
var data = [
{
"latitude": "34.546109",
"project_shorthand": "泾河新城荟锦坊二期",
"zc": 621,
"project_name": "泾河新城荟锦坊二期 EPC 工程总承包项目",
"zg": 610,
"cq": 0,
"project_addr": "泾河新城荟锦坊二期 EPC 工程总承包项目",
"glrs": 0,
"prop": 0.00,
"grrs": 621,
"projectId": 1,
"longitude": "108.913119"
},
{
"latitude": "34.379435",
"project_shorthand": "西安地铁2号线二期2标",
"zc": 450,
"project_name": "西安市地铁2号线二期工程施工总承包项目2标段",
"zg": 448,
"cq": 0,
"project_addr": "西安市地铁2号线二期工程施工总承包项目2标段",
"glrs": 48,
"prop": 0.00,
"grrs": 402,
"projectId": 2,
"longitude": "108.917",
},
{
"latitude": "31.282088",
"project_shorthand": "苏州桑田岛项目",
"zc": 376,
"project_name": "苏州桑田岛项目",
"zg": 376,
"cq": 0,
"project_addr": "苏州桑田岛项目",
"glrs": 0,
"prop": 0.00,
"grrs": 376,
"projectId": 3,
"longitude": "120.43316"
},
]
data.map(x => {
x.value = [x.longitude, x.latitude]
return x
})
this.mapOutdata = data
2023-08-10 01:16:23 +08:00
2023-08-12 00:51:55 +08:00
var tooltipInfo = []
for (let i = 0; i < data.length; i++) {
var tipHtml = '<div style="width: 300px;background: url(\'images/map_popup_bgd.png\') no-repeat center/100% 100%;font-size: 14px;">\n' +
' <div style="padding: 7px 3px 10px;">\n' +
' <div onclick="chartClick(' + data[i].projectId + ')" style="height: 33px;width:100%;background: url(\'images/map_popup_title.png\') no-repeat center/100% 100%;padding-left: 5px;line-height: 33px;color: #ffffff;display: flex;justify-content: space-between;cursor: pointer">\n' +
' <div>' + data[i].project_shorthand + '</div>\n' +
' <div style="padding: 5px 10px"><img src="images/check_icon.png" width="10" height="20"></div>\n' +
' </div>\n' +
' <div style="padding: 10px;color:#cbdaff;">\n' +
' <table style="width: 100%">\n' +
' <tr>\n' +
' <td style="width: 50%">\n' +
' <div style="height: 40px;line-height: 40px;"> 设备数量:<span style="color: #fff;font-size: 16px;">' + data[i].zg + '</span></div>\n' +
' </td>\n' +
' <td style="width: 50%">\n' +
' <div style="height: 40px;line-height: 40px;"> 监控数量:<span style="color: #fff;font-size: 16px;">' + data[i].cq + '</span></div>\n' +
' </td>\n' +
' </tr>\n' +
' <tr>\n' +
' <td style="width: 50%">\n' +
' <div style="height: 40px;line-height: 40px;"> 在岗人数:<span style="color: #fff;font-size: 16px;">' + data[i].glrs + '</span></div>\n' +
' </td>\n' +
' <td style="width: 50%">\n' +
' <div style="height: 40px;line-height: 40px;"> 今日出勤:<span style="color: #fff;font-size: 16px;">' + data[i].grrs + '</span></div>\n' +
' </td>\n' +
' </tr>\n' +
' </table>\n' +
' </div>\n' +
' <div style="padding: 0 12px;">\n' +
' <div style="color: #49b3ff;background: #132c55;padding: 10px;white-space:normal">' + data[i].project_addr + '</div>\n' +
' </div>\n' +
' </div>\n' +
'</div>'
tooltipInfo.push(tipHtml)
}
this.tooltipData = tooltipInfo
},
//Echart 地图 点击返回值
projectClick(id) {
var list = this.projectList
for (let i = 0; i < list.length; i++) {
if (list[i].id == id) {
localStorage.setItem("data", JSON.stringify(list[i]))
location.href = 'projectOverviewProject.html'
2023-08-10 01:16:23 +08:00
}
2023-08-12 00:51:55 +08:00
}
},
2023-08-10 01:16:23 +08:00
2023-08-12 00:51:55 +08:00
towardsLeft() {
if (this.index == 0) {
this.$notify({
title: '提示',
message: '没有更多了!',
type: 'warning'
});
} else {
this.index = this.index + 1
}
},
towardsRight() {
var length = this.majorWarningData.length
if (length > 3) {
if ((length - Math.abs(this.index)) == 3) {
2023-08-10 01:16:23 +08:00
this.$notify({
title: '提示',
message: '没有更多了!',
type: 'warning'
});
2023-08-12 00:51:55 +08:00
} else {
this.index = this.index - 1
2023-08-10 01:16:23 +08:00
}
2023-08-12 00:51:55 +08:00
}
},
timer() {
var length = this.majorWarningData.length
if (length > 3) {
if ((length - Math.abs(this.index)) == 3) {
this.index = 0
} else {
this.index = this.index - 1
2023-08-10 01:16:23 +08:00
}
2023-08-12 00:51:55 +08:00
}
},
2023-08-10 01:16:23 +08:00
2023-09-10 00:56:59 +08:00
2023-08-10 01:16:23 +08:00
2023-08-12 00:51:55 +08:00
automaticRoll() {
var height = window.$(".afoot-con-for").innerHeight()
if (this.forIndex == this.warningData.length) {
this.forIndex = 0
} else {
this.forIndex = this.forIndex + 1
}
window.$("#afootOverflow").animate({ scrollTop: (height * this.forIndex) + 'px' })
},
2023-08-10 01:16:23 +08:00
2023-08-12 00:51:55 +08:00
listMinMouseover() {
clearInterval(this.warningInterval);
},
listMinMouseout() {
this.warningInterval = setInterval(this.automaticRoll, 10000);
},
2023-08-10 01:16:23 +08:00
2023-08-12 00:51:55 +08:00
},
2023-08-10 01:16:23 +08:00
}
</script>
2023-08-28 00:01:37 +08:00
<style lang="less">
.main-index {
2023-08-12 00:51:55 +08:00
.center-image .screen-one-2-1 {
overflow: hidden;
}
.my-svg-icon {
width: 40px;
height: 40px;
margin-bottom: 20px;
}
.my-svg-icon * {
fill: #389DE3;
}
2023-09-19 21:50:53 +08:00
.people-number-con div.is-split {
2023-08-12 00:51:55 +08:00
background: none;
}
.labour-education .number-unit {
position: relative;
bottom: -8px;
}
2023-09-10 00:56:59 +08:00
.number-unit {
2023-08-12 00:51:55 +08:00
word-break: keep-all;
}
2023-09-10 00:56:59 +08:00
.cost-out {
.labour-education {
2023-09-19 21:50:53 +08:00
height: 70px;
2023-09-10 00:56:59 +08:00
.people-number-con {
padding: 0px;
2023-09-04 01:01:14 +08:00
}
}
}
2023-08-12 00:51:55 +08:00
}</style>