首页完善
This commit is contained in:
parent
d036cc36b8
commit
375aea5f5b
|
|
@ -104,6 +104,30 @@ export default {
|
||||||
type: [Number, String],
|
type: [Number, String],
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
|
proStatus: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
volLevel: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
proType: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
sex: {
|
||||||
|
type: [String],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
age: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
postId: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
@ -326,6 +350,7 @@ export default {
|
||||||
label: j.postName,
|
label: j.postName,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
item.value = this.postId
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.label === '红绿灯状态') {
|
if (item.label === '红绿灯状态') {
|
||||||
|
|
@ -339,6 +364,12 @@ export default {
|
||||||
if (item.label === '分公司') {
|
if (item.label === '分公司') {
|
||||||
item.value = this.selectCompany
|
item.value = this.selectCompany
|
||||||
}
|
}
|
||||||
|
if (item.label === '性别') {
|
||||||
|
item.value = this.sex
|
||||||
|
}
|
||||||
|
if (item.label === '年龄分布') {
|
||||||
|
item.value = this.age
|
||||||
|
}
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (item.label === '工程状态') {
|
if (item.label === '工程状态') {
|
||||||
|
|
@ -348,6 +379,8 @@ export default {
|
||||||
label: j.label,
|
label: j.label,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
item.value = this.proStatus
|
||||||
}
|
}
|
||||||
if (item.label === '工程类型') {
|
if (item.label === '工程类型') {
|
||||||
this.dict.type.project_type.forEach((j) => {
|
this.dict.type.project_type.forEach((j) => {
|
||||||
|
|
@ -356,6 +389,8 @@ export default {
|
||||||
label: j.label,
|
label: j.label,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
item.value = this.proType
|
||||||
}
|
}
|
||||||
if (item.label === '电压等级') {
|
if (item.label === '电压等级') {
|
||||||
this.dict.type.voltage_level.forEach((j) => {
|
this.dict.type.voltage_level.forEach((j) => {
|
||||||
|
|
@ -364,6 +399,7 @@ export default {
|
||||||
label: j.label,
|
label: j.label,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
item.value = this.volLevel
|
||||||
}
|
}
|
||||||
}, 500)
|
}, 500)
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,9 @@
|
||||||
<FilterQueryModel
|
<FilterQueryModel
|
||||||
:isAtt="``"
|
:isAtt="``"
|
||||||
:lightStatus="``"
|
:lightStatus="``"
|
||||||
|
:proStatus="proStatus"
|
||||||
|
:volLevel="volLevel"
|
||||||
|
:proType="proType"
|
||||||
:isPersonFilter="false"
|
:isPersonFilter="false"
|
||||||
:selectCompany="selectCompany"
|
:selectCompany="selectCompany"
|
||||||
@handelSettingQuery="handelSettingQueryProject"
|
@handelSettingQuery="handelSettingQueryProject"
|
||||||
|
|
@ -155,6 +158,9 @@
|
||||||
<template slot="outerContent">
|
<template slot="outerContent">
|
||||||
<FilterQueryModel
|
<FilterQueryModel
|
||||||
:isPersonFilter="true"
|
:isPersonFilter="true"
|
||||||
|
:proStatus="proStatus"
|
||||||
|
:volLevel="volLevel"
|
||||||
|
:proType="proType"
|
||||||
:selectCompany="selectCompany"
|
:selectCompany="selectCompany"
|
||||||
:lightStatus="queryParamsPerson.lightStatus"
|
:lightStatus="queryParamsPerson.lightStatus"
|
||||||
:isAtt="queryParamsPerson.isAtt"
|
:isAtt="queryParamsPerson.isAtt"
|
||||||
|
|
@ -286,6 +292,18 @@ export default {
|
||||||
type: [Number, String],
|
type: [Number, String],
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
|
proStatus: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
volLevel: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
proType: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
TableModel,
|
TableModel,
|
||||||
|
|
@ -325,9 +343,9 @@ export default {
|
||||||
|
|
||||||
queryParamsProject: {
|
queryParamsProject: {
|
||||||
subCompanyId: this.selectCompany,
|
subCompanyId: this.selectCompany,
|
||||||
proStatus: '',
|
proStatus: this.proStatus,
|
||||||
volLevel: '',
|
volLevel: this.volLevel,
|
||||||
proType: '',
|
proType: this.proType,
|
||||||
},
|
},
|
||||||
// 查询分包信息
|
// 查询分包信息
|
||||||
subQueryParams: {
|
subQueryParams: {
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,9 @@
|
||||||
:isPersonFilter="true"
|
:isPersonFilter="true"
|
||||||
:lightStatus="lightStatus"
|
:lightStatus="lightStatus"
|
||||||
:selectCompany="selectCompany"
|
:selectCompany="selectCompany"
|
||||||
|
:sex="sex"
|
||||||
|
:age="age"
|
||||||
|
:postId="postId"
|
||||||
@handelSettingQuery="handelSettingQuery"
|
@handelSettingQuery="handelSettingQuery"
|
||||||
/>
|
/>
|
||||||
<TableModel
|
<TableModel
|
||||||
|
|
@ -106,6 +109,18 @@ export default {
|
||||||
type: [Number, String],
|
type: [Number, String],
|
||||||
default: 1,
|
default: 1,
|
||||||
},
|
},
|
||||||
|
sex: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
age: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
postId: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
// einStatus: {
|
// einStatus: {
|
||||||
// type: [Number, String],
|
// type: [Number, String],
|
||||||
// default: '',
|
// default: '',
|
||||||
|
|
@ -132,11 +147,11 @@ export default {
|
||||||
volLevel: '',
|
volLevel: '',
|
||||||
proType: '',
|
proType: '',
|
||||||
lightStatus: this.lightStatus,
|
lightStatus: this.lightStatus,
|
||||||
startAge: '',
|
startAge: this.age.split('-')[0],
|
||||||
endAge: '',
|
endAge: this.age.split('-')[1],
|
||||||
sex: '',
|
sex: this.sex,
|
||||||
isAtt: this.isAtt,
|
isAtt: this.isAtt,
|
||||||
postId: '',
|
postId: this.postId,
|
||||||
mainProId: this.selectCompany,
|
mainProId: this.selectCompany,
|
||||||
},
|
},
|
||||||
commonSlots: [
|
commonSlots: [
|
||||||
|
|
|
||||||
|
|
@ -205,11 +205,13 @@ export default {
|
||||||
this.isAtt = '1'
|
this.isAtt = '1'
|
||||||
this.lightStatus = 2
|
this.lightStatus = 2
|
||||||
this.einStatus = ''
|
this.einStatus = ''
|
||||||
|
this.dialogConfig.outerTitle = '人员信息'
|
||||||
}
|
}
|
||||||
if (item.name === '在场人员') {
|
if (item.name === '在场人员') {
|
||||||
this.isAtt = ''
|
this.isAtt = ''
|
||||||
this.lightStatus = ''
|
this.lightStatus = ''
|
||||||
this.einStatus = '1'
|
this.einStatus = '1'
|
||||||
|
this.dialogConfig.outerTitle = '人员信息'
|
||||||
}
|
}
|
||||||
this.currentComponent = item.component
|
this.currentComponent = item.component
|
||||||
this.dialogConfig.outerVisible = true
|
this.dialogConfig.outerVisible = true
|
||||||
|
|
@ -224,13 +226,16 @@ export default {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 0:
|
case 0:
|
||||||
this.lightStatus = 1
|
this.lightStatus = 1
|
||||||
|
this.dialogConfig.outerTitle = '人员信息'
|
||||||
break
|
break
|
||||||
case 1:
|
case 1:
|
||||||
this.lightStatus = 3
|
this.lightStatus = 3
|
||||||
|
this.dialogConfig.outerTitle = '人员信息'
|
||||||
break
|
break
|
||||||
case 2:
|
case 2:
|
||||||
this.lightStatus = ''
|
this.lightStatus = ''
|
||||||
|
this.dialogConfig.outerTitle =
|
||||||
|
'出场未上传《离场人员工资结算确认单》人员清单'
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
this.currentComponent = item.component
|
this.currentComponent = item.component
|
||||||
|
|
|
||||||
|
|
@ -92,9 +92,9 @@ export default {
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
|
||||||
this.chart.on('click', (params) => {
|
// this.chart.on('click', (params) => {
|
||||||
this.$emit('handleOpenDialog', this.type)
|
// this.$emit('handleOpenDialog', this.type)
|
||||||
})
|
// })
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,12 @@
|
||||||
<TitleTip :titleText="'人员考勤'" />
|
<TitleTip :titleText="'人员考勤'" />
|
||||||
|
|
||||||
<div class="person-attendance-content">
|
<div class="person-attendance-content">
|
||||||
<div class="item" v-for="item in personList" :key="item.name">
|
<div
|
||||||
|
class="item"
|
||||||
|
:key="item.name"
|
||||||
|
v-for="item in personList"
|
||||||
|
@click="handleOpenDialog(item)"
|
||||||
|
>
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<div>
|
<div>
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
|
|
@ -41,24 +46,40 @@
|
||||||
<CirclePie
|
<CirclePie
|
||||||
:type="item.type"
|
:type="item.type"
|
||||||
:pieColor="item.color"
|
:pieColor="item.color"
|
||||||
@handleOpenDialog="handleOpenDialog"
|
|
||||||
:percentage="personAttendanceData[item.rateKey]"
|
:percentage="personAttendanceData[item.rateKey]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
|
<DialogModel
|
||||||
|
:dialogConfig="dialogConfig"
|
||||||
|
@closeDialogOuter="handleCloseDialogOuter"
|
||||||
|
>
|
||||||
|
<template slot="outerContent">
|
||||||
|
<PersonList
|
||||||
|
:isAtt="isAtt"
|
||||||
|
:lightStatus="lightStatus"
|
||||||
|
:selectCompany="selectCompany"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</DialogModel>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import CirclePie from './components/circlePie.vue'
|
import CirclePie from './components/circlePie.vue'
|
||||||
|
import DialogModel from '@/components/DialogModel'
|
||||||
|
import PersonList from '../dataOverviewProject/components/person-list.vue' // 人员列表
|
||||||
import { getPersonAttendanceAPI } from '@/api/home-index/index'
|
import { getPersonAttendanceAPI } from '@/api/home-index/index'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'PersonAttendance',
|
name: 'PersonAttendance',
|
||||||
components: {
|
components: {
|
||||||
CirclePie,
|
CirclePie,
|
||||||
|
DialogModel,
|
||||||
|
PersonList,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
selectCompany: {
|
selectCompany: {
|
||||||
|
|
@ -123,13 +144,28 @@ export default {
|
||||||
einAttPercentage: '0%', // 在场考勤率(打卡)
|
einAttPercentage: '0%', // 在场考勤率(打卡)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 弹框配置
|
||||||
|
dialogConfig: {
|
||||||
|
outerVisible: false,
|
||||||
|
outerTitle: '人员信息',
|
||||||
|
outerWidth: '80%',
|
||||||
|
minHeight: '90vh',
|
||||||
|
maxHeight: '90vh',
|
||||||
|
},
|
||||||
|
|
||||||
lineCount: 0, // 在场人数
|
lineCount: 0, // 在场人数
|
||||||
attCountAll: 0, // 总打卡人数
|
attCountAll: 0, // 总打卡人数
|
||||||
|
isAtt: '',
|
||||||
|
lightStatus: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleOpenDialog(type) {
|
handleOpenDialog(item) {
|
||||||
// console.log(type, '打开弹框----')
|
this.dialogConfig.outerVisible = true
|
||||||
|
},
|
||||||
|
|
||||||
|
handleCloseDialogOuter() {
|
||||||
|
this.dialogConfig.outerVisible = false
|
||||||
},
|
},
|
||||||
|
|
||||||
// 获取人员考勤
|
// 获取人员考勤
|
||||||
|
|
@ -192,6 +228,7 @@ export default {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
.left div:nth-child(2) {
|
.left div:nth-child(2) {
|
||||||
padding: 10px 0;
|
padding: 10px 0;
|
||||||
|
|
|
||||||
|
|
@ -224,6 +224,8 @@ export default {
|
||||||
// 点击事件
|
// 点击事件
|
||||||
this.chart.on('click', (params) => {
|
this.chart.on('click', (params) => {
|
||||||
console.log(params.data.name, '打开弹框----')
|
console.log(params.data.name, '打开弹框----')
|
||||||
|
|
||||||
|
this.$emit('handleOpenDialog', params.data.name)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,7 @@ export default {
|
||||||
},
|
},
|
||||||
onHandleOpenDialog(type) {
|
onHandleOpenDialog(type) {
|
||||||
console.log(type, '打开弹框---')
|
console.log(type, '打开弹框---')
|
||||||
|
this.$emit('handleOpenDialog', type)
|
||||||
},
|
},
|
||||||
|
|
||||||
// 获取人员考勤
|
// 获取人员考勤
|
||||||
|
|
|
||||||
|
|
@ -180,7 +180,7 @@ export default {
|
||||||
},
|
},
|
||||||
value: 100,
|
value: 100,
|
||||||
symbol: symbols[0],
|
symbol: symbols[0],
|
||||||
text: '男性',
|
text: '男',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
|
|
@ -201,7 +201,7 @@ export default {
|
||||||
},
|
},
|
||||||
value: 100,
|
value: 100,
|
||||||
symbol: symbols[1],
|
symbol: symbols[1],
|
||||||
text: '女性',
|
text: '女',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
@ -210,7 +210,7 @@ export default {
|
||||||
|
|
||||||
this.chart.setOption(option)
|
this.chart.setOption(option)
|
||||||
this.chart.on('click', (params) => {
|
this.chart.on('click', (params) => {
|
||||||
console.log(params.data.text, '打开弹框---')
|
this.$emit('handleOpenDialog', params.data.text)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -7,35 +7,66 @@
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="item item-1">
|
<div class="item item-1">
|
||||||
<div class="item-title"> 性别分布 </div>
|
<div class="item-title"> 性别分布 </div>
|
||||||
<SexRatio :sexRatioData="sexRatioData" />
|
<SexRatio
|
||||||
|
:sexRatioData="sexRatioData"
|
||||||
|
@handleOpenDialog="handleOpenDialogOne"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<div class="item item-2">
|
<div class="item item-2">
|
||||||
<div class="item-title"> 工种分布 </div>
|
<div class="item-title"> 工种分布 </div>
|
||||||
<ItemPie :configData="pieOneConfig" />
|
<ItemPie
|
||||||
|
:configData="pieOneConfig"
|
||||||
|
@handleOpenDialog="handleOpenDialogTwo"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<div class="item item-3">
|
<div class="item item-3">
|
||||||
<div class="item-title"> 年龄分布 </div>
|
<div class="item-title"> 年龄分布 </div>
|
||||||
<ItemPie :configData="pieTwoConfig" />
|
<ItemPie
|
||||||
|
:configData="pieTwoConfig"
|
||||||
|
@handleOpenDialog="handleOpenDialogThree"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<div class="item item-4">
|
<div class="item item-4">
|
||||||
<div class="item-title"> 红黄绿灯占比 </div>
|
<div class="item-title"> 红黄绿灯占比 </div>
|
||||||
<ItemPie :configData="pieThreeConfig" />
|
<ItemPie
|
||||||
|
:configData="pieThreeConfig"
|
||||||
|
@handleOpenDialog="handleOpenDialogFour"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<div class="item item-5">
|
<div class="item item-5">
|
||||||
<div class="item-title"> 固定、临时人员 </div>
|
<div class="item-title"> 固定、临时人员 </div>
|
||||||
<PersonRatio :selectCompany="selectCompany" />
|
<PersonRatio
|
||||||
|
:selectCompany="selectCompany"
|
||||||
|
@handleOpenDialog="handleOpenDialogFive"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
|
<DialogModel
|
||||||
|
:dialogConfig="dialogConfig"
|
||||||
|
@closeDialogOuter="handleCloseDialogOuter"
|
||||||
|
>
|
||||||
|
<template slot="outerContent">
|
||||||
|
<PersonList
|
||||||
|
:sex="sex"
|
||||||
|
:age="age"
|
||||||
|
:isAtt="isAtt"
|
||||||
|
:postId="postId"
|
||||||
|
:lightStatus="lightStatus"
|
||||||
|
:selectCompany="selectCompany"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</DialogModel>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -44,8 +75,12 @@ import SexRatio from './components/sex-ratio.vue'
|
||||||
import ItemPie from './components/item-pie.vue'
|
import ItemPie from './components/item-pie.vue'
|
||||||
import PersonRatio from './components/person-ratio.vue'
|
import PersonRatio from './components/person-ratio.vue'
|
||||||
import { getPersonPresenceAPI } from '@/api/home-index/index'
|
import { getPersonPresenceAPI } from '@/api/home-index/index'
|
||||||
|
import { getPostTypeSelectListCommonFun } from '@/utils/getCommonData'
|
||||||
|
import DialogModel from '@/components/DialogModel'
|
||||||
|
import PersonList from '../dataOverviewProject/components/person-list.vue' // 人员列表
|
||||||
export default {
|
export default {
|
||||||
name: 'PersonPresence',
|
name: 'PersonPresence',
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
selectCompany: {
|
selectCompany: {
|
||||||
type: [Number, String],
|
type: [Number, String],
|
||||||
|
|
@ -56,6 +91,8 @@ export default {
|
||||||
SexRatio,
|
SexRatio,
|
||||||
ItemPie,
|
ItemPie,
|
||||||
PersonRatio,
|
PersonRatio,
|
||||||
|
DialogModel,
|
||||||
|
PersonList,
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
|
|
@ -114,6 +151,21 @@ export default {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 弹框配置
|
||||||
|
dialogConfig: {
|
||||||
|
outerVisible: false,
|
||||||
|
outerTitle: '人员信息',
|
||||||
|
outerWidth: '80%',
|
||||||
|
minHeight: '90vh',
|
||||||
|
maxHeight: '90vh',
|
||||||
|
},
|
||||||
|
|
||||||
|
isAtt: '',
|
||||||
|
lightStatus: '',
|
||||||
|
sex: '',
|
||||||
|
age: '',
|
||||||
|
postId: '',
|
||||||
|
|
||||||
sexRatioData: {
|
sexRatioData: {
|
||||||
feMailNum: 0, // 女性
|
feMailNum: 0, // 女性
|
||||||
mailNum: 0, // 男性
|
mailNum: 0, // 男性
|
||||||
|
|
@ -125,6 +177,43 @@ export default {
|
||||||
this.$emit('handleCheckOften')
|
this.$emit('handleCheckOften')
|
||||||
},
|
},
|
||||||
|
|
||||||
|
handleCloseDialogOuter() {
|
||||||
|
this.dialogConfig.outerVisible = false
|
||||||
|
},
|
||||||
|
|
||||||
|
// 性别
|
||||||
|
handleOpenDialogOne(text) {
|
||||||
|
console.log(text, 'text')
|
||||||
|
this.sex = text
|
||||||
|
this.dialogConfig.outerVisible = true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 工种
|
||||||
|
async handleOpenDialogTwo(text) {
|
||||||
|
const postList = await getPostTypeSelectListCommonFun()
|
||||||
|
const postId = postList.find((item) => item.postName === text)?.id
|
||||||
|
this.postId = postId
|
||||||
|
this.dialogConfig.outerVisible = true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 年龄
|
||||||
|
handleOpenDialogThree(text) {
|
||||||
|
this.age = `${text - 10}-${text}`
|
||||||
|
this.dialogConfig.outerVisible = true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 红黄绿灯
|
||||||
|
handleOpenDialogFour(text) {
|
||||||
|
text == '绿灯' ? (this.lightStatus = 2) : (this.lightStatus = 1)
|
||||||
|
this.dialogConfig.outerVisible = true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 固定、临时人员
|
||||||
|
handleOpenDialogFive(text) {
|
||||||
|
// this.isAtt = text
|
||||||
|
this.dialogConfig.outerVisible = true
|
||||||
|
},
|
||||||
|
|
||||||
async getPersonPresence() {
|
async getPersonPresence() {
|
||||||
const { data: res } = await getPersonPresenceAPI({
|
const { data: res } = await getPersonPresenceAPI({
|
||||||
companyId: this.selectCompany,
|
companyId: this.selectCompany,
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ export default {
|
||||||
icon: 'line-project',
|
icon: 'line-project',
|
||||||
color: '82, 193, 245',
|
color: '82, 193, 245',
|
||||||
dataKey: 'buildProNum',
|
dataKey: 'buildProNum',
|
||||||
|
type: '0',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 0,
|
value: 0,
|
||||||
|
|
@ -56,6 +57,7 @@ export default {
|
||||||
color: '255, 169, 76',
|
color: '255, 169, 76',
|
||||||
icon: 'prepare-project',
|
icon: 'prepare-project',
|
||||||
dataKey: 'prepareProNum',
|
dataKey: 'prepareProNum',
|
||||||
|
type: '2',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 0,
|
value: 0,
|
||||||
|
|
@ -63,6 +65,7 @@ export default {
|
||||||
color: '251,98,96',
|
color: '251,98,96',
|
||||||
icon: 'stop-project',
|
icon: 'stop-project',
|
||||||
dataKey: 'stopProNum',
|
dataKey: 'stopProNum',
|
||||||
|
type: '1',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 0,
|
value: 0,
|
||||||
|
|
@ -70,6 +73,7 @@ export default {
|
||||||
color: '81, 211, 81',
|
color: '81, 211, 81',
|
||||||
icon: 'finish-project',
|
icon: 'finish-project',
|
||||||
dataKey: 'completeProNum',
|
dataKey: 'completeProNum',
|
||||||
|
type: '4',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 0,
|
value: 0,
|
||||||
|
|
@ -77,6 +81,7 @@ export default {
|
||||||
icon: 'remain-project',
|
icon: 'remain-project',
|
||||||
color: '160, 207, 255',
|
color: '160, 207, 255',
|
||||||
dataKey: 'legacyProNum',
|
dataKey: 'legacyProNum',
|
||||||
|
type: '3',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
@ -84,6 +89,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
onHandleOpenDialog(item) {
|
onHandleOpenDialog(item) {
|
||||||
console.log(item.name, '打开弹框----')
|
console.log(item.name, '打开弹框----')
|
||||||
|
this.$emit('handleOpenDialog', item.type)
|
||||||
},
|
},
|
||||||
|
|
||||||
initData() {
|
initData() {
|
||||||
|
|
|
||||||
|
|
@ -23,32 +23,38 @@ export default {
|
||||||
{
|
{
|
||||||
value: 0,
|
value: 0,
|
||||||
name: '基建线路',
|
name: '基建线路',
|
||||||
|
type: '2',
|
||||||
dataKey: 'infrastructureLine',
|
dataKey: 'infrastructureLine',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '基建变电',
|
name: '基建变电',
|
||||||
value: 0,
|
value: 0,
|
||||||
|
type: '1',
|
||||||
dataKey: 'infrastructureSubstation',
|
dataKey: 'infrastructureSubstation',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '生产线路',
|
name: '生产线路',
|
||||||
value: 0,
|
value: 0,
|
||||||
|
type: '4',
|
||||||
dataKey: 'productionLine',
|
dataKey: 'productionLine',
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
name: '生产变电',
|
name: '生产变电',
|
||||||
value: 0,
|
value: 0,
|
||||||
|
type: '3',
|
||||||
dataKey: 'productionSubstation',
|
dataKey: 'productionSubstation',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '配网',
|
name: '配网',
|
||||||
value: 0,
|
value: 0,
|
||||||
|
type: '5',
|
||||||
dataKey: 'network',
|
dataKey: 'network',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '其他',
|
name: '其他',
|
||||||
value: 0,
|
value: 0,
|
||||||
|
type: '6',
|
||||||
dataKey: 'proNum',
|
dataKey: 'proNum',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
@ -249,7 +255,7 @@ export default {
|
||||||
|
|
||||||
// 点击事件
|
// 点击事件
|
||||||
this.chart.on('click', (params) => {
|
this.chart.on('click', (params) => {
|
||||||
console.log(params.data.name, '打开弹框')
|
this.$emit('handleOpenDialog', params.data.type)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -19,33 +19,6 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
chart: null,
|
chart: null,
|
||||||
chartData: [
|
|
||||||
{
|
|
||||||
name: '220kV',
|
|
||||||
value: 120,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '380kV',
|
|
||||||
value: 80,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '500kV',
|
|
||||||
value: 30,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
name: '110kV',
|
|
||||||
value: 12,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '±800kV',
|
|
||||||
value: 12,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '1000kV及以上',
|
|
||||||
value: 12,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -96,7 +69,7 @@ export default {
|
||||||
{
|
{
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
barWidth: 12,
|
barWidth: 12,
|
||||||
silent: true,
|
silent: false,
|
||||||
itemStyle: { color: '#e9eef4' },
|
itemStyle: { color: '#e9eef4' },
|
||||||
barGap: '-100%', // 置于底层
|
barGap: '-100%', // 置于底层
|
||||||
data: new Array(xAxisData.length).fill(
|
data: new Array(xAxisData.length).fill(
|
||||||
|
|
@ -144,7 +117,7 @@ export default {
|
||||||
this.chart.on('click', (params) => {
|
this.chart.on('click', (params) => {
|
||||||
// 获取点击的name
|
// 获取点击的name
|
||||||
const name = xAxisData[params.dataIndex]
|
const name = xAxisData[params.dataIndex]
|
||||||
console.log(name, '打开弹框')
|
this.$emit('handleOpenDialog', name)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -6,21 +6,44 @@
|
||||||
<el-row :gutter="10" class="project-info-content">
|
<el-row :gutter="10" class="project-info-content">
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<div class="item-1">
|
<div class="item-1">
|
||||||
<ItemOne :oneInfo="oneInfo" />
|
<ItemOne
|
||||||
|
:oneInfo="oneInfo"
|
||||||
|
@handleOpenDialog="handleOpenDialogOne"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="10">
|
<el-col :span="10">
|
||||||
<div class="item-2">
|
<div class="item-2">
|
||||||
<ItemTwo :twoData="twoData" />
|
<ItemTwo
|
||||||
|
:twoData="twoData"
|
||||||
|
@handleOpenDialog="handleOpenDialogTwo"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="item-3">
|
<div class="item-3">
|
||||||
<ItemThree :threeData="threeData" />
|
<ItemThree
|
||||||
|
:threeData="threeData"
|
||||||
|
@handleOpenDialog="handleOpenDialogThree"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
|
<DialogModel
|
||||||
|
:dialogConfig="dialogConfig"
|
||||||
|
@closeDialogOuter="handleCloseDialogOuter"
|
||||||
|
>
|
||||||
|
<template slot="outerContent">
|
||||||
|
<ProjectList
|
||||||
|
:selectCompany="selectCompany"
|
||||||
|
:proStatus="proStatus"
|
||||||
|
:volLevel="volLevel"
|
||||||
|
:proType="proType"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</DialogModel>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -29,6 +52,10 @@ import ItemOne from './components/item-one.vue'
|
||||||
import ItemTwo from './components/item-two.vue'
|
import ItemTwo from './components/item-two.vue'
|
||||||
import ItemThree from './components/item-three.vue'
|
import ItemThree from './components/item-three.vue'
|
||||||
|
|
||||||
|
import ProjectList from '../dataOverviewProject/components/item-two.vue'
|
||||||
|
|
||||||
|
import DialogModel from '@/components/DialogModel'
|
||||||
|
|
||||||
import { getProjectInfoAPI } from '@/api/home-index/index'
|
import { getProjectInfoAPI } from '@/api/home-index/index'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
@ -38,6 +65,8 @@ export default {
|
||||||
ItemOne,
|
ItemOne,
|
||||||
ItemTwo,
|
ItemTwo,
|
||||||
ItemThree,
|
ItemThree,
|
||||||
|
DialogModel,
|
||||||
|
ProjectList,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
selectCompany: {
|
selectCompany: {
|
||||||
|
|
@ -63,6 +92,19 @@ export default {
|
||||||
network: 0, // 配网
|
network: 0, // 配网
|
||||||
proNum: 0,
|
proNum: 0,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 弹框配置
|
||||||
|
dialogConfig: {
|
||||||
|
outerVisible: false,
|
||||||
|
outerTitle: '工程信息',
|
||||||
|
outerWidth: '80%',
|
||||||
|
minHeight: '90vh',
|
||||||
|
maxHeight: '90vh',
|
||||||
|
},
|
||||||
|
|
||||||
|
proStatus: '',
|
||||||
|
volLevel: '',
|
||||||
|
proType: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -128,6 +170,29 @@ export default {
|
||||||
proNum,
|
proNum,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
handleCloseDialogOuter() {
|
||||||
|
this.dialogConfig.outerVisible = false
|
||||||
|
},
|
||||||
|
|
||||||
|
// 打开弹框
|
||||||
|
handleOpenDialogOne(type) {
|
||||||
|
this.proStatus = type
|
||||||
|
this.dialogConfig.outerVisible = true
|
||||||
|
this.dialogConfig.outerTitle = '工程信息'
|
||||||
|
},
|
||||||
|
|
||||||
|
handleOpenDialogTwo(name) {
|
||||||
|
this.volLevel = name
|
||||||
|
this.dialogConfig.outerVisible = true
|
||||||
|
this.dialogConfig.outerTitle = '工程信息'
|
||||||
|
},
|
||||||
|
|
||||||
|
handleOpenDialogThree(type) {
|
||||||
|
this.proType = type
|
||||||
|
this.dialogConfig.outerVisible = true
|
||||||
|
this.dialogConfig.outerTitle = '工程信息'
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue