This commit is contained in:
zzyuan 2024-10-18 18:07:02 +08:00
commit d75d83995d
5 changed files with 404 additions and 305 deletions

View File

@ -147,7 +147,7 @@ export default {
res.data.proMsgBean res.data.proMsgBean
setTimeout(() => { setTimeout(() => {
let data = { let data = {
categories: ['基建线路', '基建变电', '生产线路', '生变电', '配网', '其他'], categories: ['基建线路', '基建变电', '生产线路', '生变电', '配网', '其他'],
series: [ series: [
{ {
name: '', name: '',
@ -164,7 +164,11 @@ export default {
const currentIndex = index.currentIndex.index // const currentIndex = index.currentIndex.index //
const currenName = this.chartData.categories[currentIndex] const currenName = this.chartData.categories[currentIndex]
console.log('currenName选中的工程类型', currenName) console.log('currenName选中的工程类型', currenName)
uni.navigateTo({ url: `/pages/realName/index/pages/project?xxx=${currenName}` }) const proType = {
currentIndex,
name: currenName
}
uni.navigateTo({ url: `/pages/realName/index/pages/project?proType=${JSON.stringify(proType)}` })
} }
} }
} }

View File

@ -139,7 +139,13 @@ export default {
const chartsData = this.chartData.series[0].data const chartsData = this.chartData.series[0].data
const currenRows = chartsData[currentIndex] const currenRows = chartsData[currentIndex]
console.log('currenRows选中的工程类型', currenRows.name) console.log('currenRows选中的工程类型', currenRows.name)
uni.navigateTo({ url: `/pages/realName/index/pages/project?xxx=${currenRows.name}` })
//
const voltageLevel = {
currentIndex,
name: currenRows.name
}
uni.navigateTo({ url: `/pages/realName/index/pages/project?voltageLevel=${JSON.stringify(voltageLevel)}` })
} }
} }
} }

View File

@ -676,25 +676,24 @@ export default {
// //
godataView(item) { godataView(item) {
console.log(item) console.log(item)
if(item.data_title=='在建工程'){ if (item.data_title == '在建工程') {
uni.navigateTo({ url: '/pages/realName/index/pages/project' }) uni.navigateTo({ url: '/pages/realName/index/pages/project' })
} }
if(item.data_title=='在用分包单位'){ if (item.data_title == '在用分包单位') {
uni.navigateTo({ url: '/pages/realName/index/pages/subList' }) uni.navigateTo({ url: '/pages/realName/index/pages/subList' })
} }
if(item.data_title=='在用班组'){ if (item.data_title == '在用班组') {
uni.navigateTo({ url: '/pages/realName/index/pages/teamList' }) uni.navigateTo({ url: '/pages/realName/index/pages/teamList' })
} }
if(item.data_title=='在场人数'){ if (item.data_title == '在场人数') {
uni.navigateTo({ url: '/pages/realName/index/pages/personList' }) uni.navigateTo({ url: '/pages/realName/index/pages/personList' })
} }
if(item.data_title=='日计划打卡数'){ if (item.data_title == '日计划打卡数') {
uni.navigateTo({ url: '/pages/realName/index/pages/personList?isAtt=0&isPlanWorker=1' }) uni.navigateTo({ url: '/pages/realName/index/pages/personList?isAtt=0&isPlanWorker=1' })
} }
if(item.data_title=='今日打卡'){ if (item.data_title == '今日打卡') {
uni.navigateTo({ url: '/pages/realName/index/pages/personList?isAtt=0' }) uni.navigateTo({ url: '/pages/realName/index/pages/personList?isAtt=0' })
} }
}, },
/* 人员考勤等跳转 */ /* 人员考勤等跳转 */
onJumpPersonList(title) { onJumpPersonList(title) {
@ -729,25 +728,34 @@ export default {
}, },
/* 工程概况跳转 */ /* 工程概况跳转 */
onJumpProjectList(title) { onJumpProjectList(title) {
let params = '' let name = ''
let currentIndex = 0
// //
switch (title) { switch (title) {
case '在建': case '在建':
params = '在建' name = '在建'
break currentIndex = 1
case '筹建':
params = '筹建'
break
case '停工':
params = '停工'
break break
case '完工': case '完工':
params = '完工' name = '完工'
currentIndex = 2
break
case '筹建':
name = '筹建'
currentIndex = 3
break
case '停工':
name = '停工'
currentIndex = 4
break break
} }
console.log('params路由参数工程概况', params) //
uni.navigateTo({ url: `/pages/realName/index/pages/project?xxx=${params}` }) const survey = {
name,
currentIndex
}
uni.navigateTo({ url: `/pages/realName/index/pages/project?survey=${JSON.stringify(survey)}` })
}, },
/* 在场人员概况跳转人员信息 */ /* 在场人员概况跳转人员信息 */
onJumpColorLight(type) { onJumpColorLight(type) {

View File

@ -1,11 +1,18 @@
<template> <template>
<view class="page"> <view class="page">
<u-navbar class="u-navbar" title="在建工程" placeholder @leftClick="leftClick" <u-navbar
leftIconColor="#fff" bgColor="#00337A" :titleStyle="{ color: '#FFF', fontSize: '32rpx' }"/> class="u-navbar"
title="在建工程"
placeholder
@leftClick="leftClick"
leftIconColor="#fff"
bgColor="#00337A"
:titleStyle="{ color: '#FFF', fontSize: '32rpx' }"
/>
<view class="header-fixed"> <view class="header-fixed">
<view class="search-content"> <view class="search-content">
<view style="width: 90%;"> <view style="width: 90%">
<uni-easyinput <uni-easyinput
suffixIcon="search" suffixIcon="search"
v-model="queryParams.params.proName" v-model="queryParams.params.proName"
@ -23,54 +30,87 @@
<view class="item-1"> <view class="item-1">
<view>{{ index + 1 }}</view> <view>{{ index + 1 }}</view>
<view>{{ item.proName }}</view> <view>{{ item.proName }}</view>
<uni-icons :type="item.isCollect == 1 ? 'star-filled' : 'star'" size="20" @catchtap="onCollection($event, item)" :style="{ color: item.isCollect == 1 ? '#f9971e' : '' }" style="position: absolute;right: 1%;"></uni-icons> <uni-icons
:type="item.isCollect == 1 ? 'star-filled' : 'star'"
size="20"
@catchtap="onCollection($event, item)"
:style="{ color: item.isCollect == 1 ? '#f9971e' : '' }"
style="position: absolute; right: 1%"
></uni-icons>
</view> </view>
<view class="item-2"> <view class="item-2">
<view>{{item.subComName}}</view> <view>{{ item.subComName }}</view>
<view>{{item.voltageLevel}}</view> <view>{{ item.voltageLevel }}</view>
<view>{{item.proType}}</view> <view>{{ item.proType }}</view>
<view>{{item.proStatus}}</view> <view>{{ item.proStatus }}</view>
</view> </view>
<view class="item-3"> <view class="item-3">
<view style="width: 25%;margin:0 20rpx;display: flex;align-items: center;justify-content: space-between;" @tap="goSubListPage(item)"> <view
style="width: 25%; margin: 0 20rpx; display: flex; align-items: center; justify-content: space-between"
@tap="goSubListPage(item)"
>
<view>分包</view> <view>分包</view>
<view style="color: #3f9dfd; font-weight: bold">{{item.subNum}}</view> <view style="color: #3f9dfd; font-weight: bold">{{ item.subNum }}</view>
</view> </view>
<view style="width: 25%;margin:0 20rpx;display: flex;align-items: center;justify-content: space-between;" @tap="goTeamListPage(item)"> <view
style="width: 25%; margin: 0 20rpx; display: flex; align-items: center; justify-content: space-between"
@tap="goTeamListPage(item)"
>
<view>班组</view> <view>班组</view>
<view style="color: #3f9dfd; font-weight: bold">{{item.teamNum}}</view> <view style="color: #3f9dfd; font-weight: bold">{{ item.teamNum }}</view>
</view> </view>
<view style="width: 25%;margin:0 20rpx;display: flex;align-items: center;justify-content: space-between;" @tap="goAttPersonListPage(item)"> <view
style="width: 25%; margin: 0 20rpx; display: flex; align-items: center; justify-content: space-between"
@tap="goAttPersonListPage(item)"
>
<view>考勤人数</view> <view>考勤人数</view>
<view style="color: #3f9dfd; font-weight: bold">{{item.attPersonNum}}</view> <view style="color: #3f9dfd; font-weight: bold">{{ item.attPersonNum }}</view>
</view> </view>
</view> </view>
<view class="item-3"> <view class="item-3">
<view style="width: 25%;margin:0 20rpx;display: flex;align-items: center;justify-content: space-between;" @tap="goAllPersonListPage(item)"> <view
style="width: 25%; margin: 0 20rpx; display: flex; align-items: center; justify-content: space-between"
@tap="goAllPersonListPage(item)"
>
<view>在场</view> <view>在场</view>
<view style="color: #3f9dfd; font-weight: bold">{{item.einPersonNum}}</view> <view style="color: #3f9dfd; font-weight: bold">{{ item.einPersonNum }}</view>
</view> </view>
<view style="width: 25%;margin:0 20rpx;display: flex;align-items: center;justify-content: space-between;" @tap="goWorkPersonListPage(item)"> <view
style="width: 25%; margin: 0 20rpx; display: flex; align-items: center; justify-content: space-between"
@tap="goWorkPersonListPage(item)"
>
<view>固定</view> <view>固定</view>
<view style="color: #3f9dfd; font-weight: bold">{{item.formalPersonNum}}</view> <view style="color: #3f9dfd; font-weight: bold">{{ item.formalPersonNum }}</view>
</view> </view>
<view style="width: 25%;margin:0 20rpx;display: flex;align-items: center;justify-content: space-between;" @tap="goTempPersonListPage(item)"> <view
style="width: 25%; margin: 0 20rpx; display: flex; align-items: center; justify-content: space-between"
@tap="goTempPersonListPage(item)"
>
<view>临时</view> <view>临时</view>
<view style="color: #3f9dfd; font-weight: bold">{{item.temporaryPersonNum}}</view> <view style="color: #3f9dfd; font-weight: bold">{{ item.temporaryPersonNum }}</view>
</view> </view>
</view> </view>
<view class="item-3"> <view class="item-3">
<view style="width: 25%;margin:0 20rpx;display: flex;align-items: center;justify-content: space-between;" @tap="goLightPersonListPage(item,2)"> <view
style="width: 25%; margin: 0 20rpx; display: flex; align-items: center; justify-content: space-between"
@tap="goLightPersonListPage(item, 2)"
>
<view>绿灯</view> <view>绿灯</view>
<view style="color: #3FB779; font-weight: bold">{{item.greenPersonNum}}</view> <view style="color: #3fb779; font-weight: bold">{{ item.greenPersonNum }}</view>
</view> </view>
<view style="width: 25%;margin:0 20rpx;display: flex;align-items: center;justify-content: space-between;" @tap="goLightPersonListPage(item,1)"> <view
style="width: 25%; margin: 0 20rpx; display: flex; align-items: center; justify-content: space-between"
@tap="goLightPersonListPage(item, 1)"
>
<view>黄灯</view> <view>黄灯</view>
<view style="color: #E89C2D; font-weight: bold">{{item.yellowPersonNum}}</view> <view style="color: #e89c2d; font-weight: bold">{{ item.yellowPersonNum }}</view>
</view> </view>
<view style="width: 25%;margin:0 20rpx;display: flex;align-items: center;justify-content: space-between;" @tap="goLightPersonListPage(item,0)"> <view
style="width: 25%; margin: 0 20rpx; display: flex; align-items: center; justify-content: space-between"
@tap="goLightPersonListPage(item, 0)"
>
<view>红灯</view> <view>红灯</view>
<view style="color: #E8717F; font-weight: bold">{{item.redPersonNum}}</view> <view style="color: #e8717f; font-weight: bold">{{ item.redPersonNum }}</view>
</view> </view>
</view> </view>
</view> </view>
@ -86,7 +126,8 @@
<scroll-view class="company-container" scroll-y="true"> <scroll-view class="company-container" scroll-y="true">
<view class="company-items"> <view class="company-items">
<view <view
v-for="(item, index) in companyList" :key="index" v-for="(item, index) in companyList"
:key="index"
:class="{ active: index === activeIndex }" :class="{ active: index === activeIndex }"
@tap="onSelectCompany(index, item.id)" @tap="onSelectCompany(index, item.id)"
> >
@ -100,9 +141,10 @@
<scroll-view class="company-container" scroll-y="true"> <scroll-view class="company-container" scroll-y="true">
<view class="company-items"> <view class="company-items">
<view <view
v-for="(item, index) in proStatusList" :key="index" v-for="(item, index) in proStatusList"
:key="index"
:class="{ active: index === activeIndex2 }" :class="{ active: index === activeIndex2 }"
@tap="onSelectStatus(index, item.name)" @tap="onSelectStatus(index, item.id)"
> >
{{ item.name }} {{ item.name }}
</view> </view>
@ -114,9 +156,10 @@
<scroll-view class="company-container" scroll-y="true"> <scroll-view class="company-container" scroll-y="true">
<view class="company-items"> <view class="company-items">
<view <view
v-for="(item, index) in levelList" :key="index" v-for="(item, index) in levelList"
:key="index"
:class="{ active: index === activeIndex3 }" :class="{ active: index === activeIndex3 }"
@tap="onSelectLevel(index, item.name)" @tap="onSelectLevel(index, item.id)"
> >
{{ item.name }} {{ item.name }}
</view> </view>
@ -125,10 +168,11 @@
</view> </view>
<h2>工程类型</h2> <h2>工程类型</h2>
<view> <view>
<scroll-view class="company-container" scroll-y="true" style="padding-bottom: 120rpx;"> <scroll-view class="company-container" scroll-y="true" style="padding-bottom: 120rpx">
<view class="company-items"> <view class="company-items">
<view <view
v-for="(item, index) in proTypeList" :key="index" v-for="(item, index) in proTypeList"
:key="index"
:class="{ active: index === activeIndex4 }" :class="{ active: index === activeIndex4 }"
@tap="onSelectType(index, item.name)" @tap="onSelectType(index, item.name)"
> >
@ -138,8 +182,6 @@
</scroll-view> </scroll-view>
</view> </view>
<view class="bottom-btn"> <view class="bottom-btn">
<button style="background-color: #fff; color: #00337a" @tap="onReset">重置</button> <button style="background-color: #fff; color: #00337a" @tap="onReset">重置</button>
<button style="background-color: #00337a; color: #fff" @tap="onQuery">查询</button> <button style="background-color: #00337a; color: #fff" @tap="onQuery">查询</button>
@ -163,27 +205,53 @@ export default {
token: uni.getStorageSync('tjToken'), token: uni.getStorageSync('tjToken'),
// //
queryParams: { queryParams: {
offset: "0", offset: '0',
limit: "999999", limit: '999999',
params: { params: {
userId:uni.getStorageSync('realNameUser').userId+'', userId: uni.getStorageSync('realNameUser').userId + '',
proName:"", proName: '',
subComId:"", subComId: '',
proStatus:"", proStatus: '',
voltageLevel:"", voltageLevel: '',
proType:"", proType: ''
} }
}, },
companyList: [{ name: '全部', id: '' }], companyList: [{ name: '全部', id: '' }],
proStatusList: [{name:'全部', id:'' }], proStatusList: [{ name: '全部', id: '' }],
levelList: [{name:'全部', id:'' },{name:'其他', id:'1' },{name:'110kV', id:'2' },{name:'220kV', id:'3' },{name:'500kV', id:'4' },{name:'±500kV', id:'5' },{name:'1000kV以上', id:'6' }], levelList: [{ name: '全部', id: '' }],
proTypeList: [{name:'全部', id:'' }], proTypeList: [{ name: '全部', id: '' }],
companyInfoList: [] companyInfoList: []
} }
}, },
mounted() { // mounted() {
// },
onLoad(option) {
this.getHomePageSelectData().then(() => {
if (option.voltageLevel) {
//
const voltageLevel = JSON.parse(option.voltageLevel)
const { currentIndex, name } = voltageLevel
this.activeIndex3 = currentIndex + 1
this.queryParams.params.voltageLevel = this.levelList[currentIndex + 1].id
}
if (option.proType) {
//
const proType = JSON.parse(option.proType)
const { currentIndex, name } = proType
this.activeIndex4 = currentIndex + 1
this.queryParams.params.proType = name
}
if (option.survey) {
//
const survey = JSON.parse(option.survey)
const { currentIndex, name } = survey
this.activeIndex2 = currentIndex
this.queryParams.params.proStatus = this.proStatusList[currentIndex].id
}
this.getListData() this.getListData()
this.getHomePageSelectData() })
}, },
methods: { methods: {
/* 获取作业计划列表 */ /* 获取作业计划列表 */
@ -208,7 +276,7 @@ export default {
/* 获取公司数据 */ /* 获取公司数据 */
async getHomePageSelectData() { async getHomePageSelectData() {
const res = await getHomePageSelectApi() const res = await getHomePageSelectApi()
console.log(res) console.log('resresres', res)
this.companyList = this.companyList.concat(res.subList) this.companyList = this.companyList.concat(res.subList)
this.proTypeList = this.proTypeList.concat(res.proType) this.proTypeList = this.proTypeList.concat(res.proType)
this.proStatusList = this.proStatusList.concat(res.proStatusList) this.proStatusList = this.proStatusList.concat(res.proStatusList)
@ -297,7 +365,8 @@ export default {
uni.navigateTo({ url: `/pages/realName/index/pages/personList?proId=${row.proId}&workerType=0` }) uni.navigateTo({ url: `/pages/realName/index/pages/personList?proId=${row.proId}&workerType=0` })
}, },
/* 点击跳转人员-灯 */ /* 点击跳转人员-灯 */
goLightPersonListPage(row,type) {//绿2 1 0 goLightPersonListPage(row, type) {
//绿2 1 0
uni.navigateTo({ url: `/pages/realName/index/pages/personList?proId=${row.proId}&lightStatus=${type}` }) uni.navigateTo({ url: `/pages/realName/index/pages/personList?proId=${row.proId}&lightStatus=${type}` })
}, },
@ -337,16 +406,16 @@ export default {
.page { .page {
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
background-color: #EFEFEF; background-color: #efefef;
box-sizing: border-box; box-sizing: border-box;
} }
.header-fixed { .header-fixed {
width: 94%; width: 94%;
margin: 20rpx auto; margin: 20rpx auto;
background-color: #FFF; background-color: #fff;
border-radius: 10rpx; border-radius: 10rpx;
padding:20rpx; padding: 20rpx;
.search-content { .search-content {
display: flex; display: flex;
@ -361,9 +430,9 @@ export default {
background-size: 100% 100%; background-size: 100% 100%;
} }
} }
} }
.data-container { .data-container {
width: 100%; width: 100%;
height: 75vh; height: 75vh;
@ -403,9 +472,9 @@ export default {
font-size: 24rpx; font-size: 24rpx;
justify-content: space-around; justify-content: space-around;
} }
} }
.bottom-content { .bottom-content {
height: 60vh; height: 60vh;
overflow-y: auto; overflow-y: auto;
@ -475,5 +544,5 @@ export default {
border: 1rpx solid #00337a; border: 1rpx solid #00337a;
} }
} }
} }
</style> </style>

View File

@ -90,9 +90,14 @@
<uni-card :is-shadow="true" margin="6" padding="0"> <uni-card :is-shadow="true" margin="6" padding="0">
<view class="img-container"> <view class="img-container">
<view @tap="onPreviewImage(index)" v-for="(item, index) in standGuardList" :key="index"> <view @tap="onPreviewImage(index)" v-for="(item, index) in standGuardList" :key="index">
<image class="image-content" :src="item.img_src" mode="scaleToFill" lazy-load="true"></image> <image
class="image-content"
:src="`${config.loginBaseUrl}ynPlan${item.imgPath}`"
mode="scaleToFill"
lazy-load="true"
></image>
<uni-icons style="color: #ccc" type="calendar" size="14">{{ item.times }}</uni-icons> <uni-icons style="color: #ccc" type="calendar" size="14">{{ item.crateTime }}</uni-icons>
</view> </view>
</view> </view>
</uni-card> </uni-card>
@ -153,6 +158,7 @@ import {
getStandGuardImgApi, getStandGuardImgApi,
getHoldCardInfoApi getHoldCardInfoApi
} from '../../../api/phaseTwo/homePage' } from '../../../api/phaseTwo/homePage'
import config from '@/config'
export default { export default {
data() { data() {
return { return {
@ -163,10 +169,11 @@ export default {
holdCardTitle: '', holdCardTitle: '',
holdCardDetailsList: [], // holdCardDetailsList: [], //
standGuardList: [ standGuardList: [
{ img_src: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg', times: '9:20:06' }, // { img_src: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg', times: '9:20:06' },
{ img_src: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg', times: '9:20:06' } // { img_src: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg', times: '9:20:06' }
], // ], //
contentId: '', contentId: '',
imgList: [], // 使
loading: false, loading: false,
commonParams: { commonParams: {
proName: '', proName: '',
@ -221,6 +228,10 @@ export default {
console.log('人员信息---', res.data) console.log('人员信息---', res.data)
this.holdCardList = res.datac this.holdCardList = res.datac
this.standGuardList = response.data this.standGuardList = response.data
this.imgList = this.standGuardList.map(e => {
return `${config.loginBaseUrl}ynPlan${e.imgPath}`
})
}, },
/* 点击作业计划时查询作业人员 */ /* 点击作业计划时查询作业人员 */
onSearchWorkPerson(id) { onSearchWorkPerson(id) {
@ -258,10 +269,11 @@ export default {
/* 预览图片 */ /* 预览图片 */
onPreviewImage(index) { onPreviewImage(index) {
uni.previewImage({ uni.previewImage({
urls: [ // urls: [
'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg', // 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg' // 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'
], // ],
urls: this.imgList,
current: index, current: index,
loop: true loop: true
}) })