Merge branch 'dunhuang-dev' of http://192.168.34.160:8023/admin/zhgdyunapp into dunhuang-cs

This commit is contained in:
Rain_ 2025-11-17 14:28:12 +08:00
commit c8dfacb2b1
2 changed files with 611 additions and 113 deletions

View File

@ -42,10 +42,10 @@
</view>
<view class="item">
<view class="title">
项目经理
项目/场站负责人
</view>
<view class="value">
{{projectDetail.projectManage}}
{{projectDetail.projectSiteManager}}
</view>
</view>
<view class="item">
@ -58,70 +58,57 @@
</view>
<view class="item">
<view class="title">
工程类别
新能源类型
</view>
<view class="value">
<text v-for="(item,index) in PROJECTTYPE" :key="index" v-if="item.id==projectDetail.projectType">{{item.name}}</text>
{{projectDetail.renewableEnergyType}}
</view>
</view>
<view class="item">
<view class="title">
项目编号
装机容量(万kW)
</view>
<view class="value">
{{projectDetail.projectNumber}}
{{projectDetail.installedCapacity}}
</view>
</view>
<view class="item">
<view class="title">
结构类型
是否配储
</view>
<view class="value">
<text v-for="(item,index) in STRUCTURETYPE" :key="index" v-if="item.id==projectDetail.structureType">{{item.name}}</text>
{{projectDetail.storageRequired == 1 ? '是' : '否'}}
</view>
</view>
<view class="item">
<view class="title">
项目面积
配储容量
</view>
<view class="value">
{{projectDetail.projectAcreage}}
{{projectDetail.capacity}}
</view>
</view>
<view class="item">
<!-- <view class="item">
<view class="title">
户数
项目配图
</view>
<view class="value">
{{projectDetail.households}}
<image :src="projectDetail.layoutImage" mode="" class="smallImg"
@click="viewBig(projectDetail.layoutImage)"></image>
</view>
</view>
<view class="item">
<view class="title">
楼栋数
</view>
<view class="value">
{{projectDetail.buildingNum}}
</view>
</view>
<view class="item">
<view class="title">
现场布置图
</view>
<view class="value">
<image :src="projectDetail.layoutImage" mode="" class="smallImg" @click="viewBig(projectDetail.layoutImage)"></image>
</view>
</view>
<view class="item">
</view> -->
<!-- <view class="item">
<view class="title">
现场施工图
</view>
<view class="value">
<image :src="projectDetail.constructionMapUrl" mode="" class="smallImg" @click="viewBig(projectDetail.constructionMapUrl)"></image>
<image :src="projectDetail.constructionMapUrl" mode="" class="smallImg"
@click="viewBig(projectDetail.constructionMapUrl)"></image>
</view>
</view>
</view> -->
</view>
<view class="splitTitle">
<!-- <view class="splitTitle">
扩展信息
</view>
<view class="infoBlock">
@ -130,7 +117,7 @@
合同签订
</view>
<view class="value">
{{extendInfo.contractSignTime?extendInfo.contractSignTime:''}}
</view>
</view>
@ -198,8 +185,7 @@
{{extendInfo.projectOverview}}
</view>
</view>
</view>
</view> -->
</view>
</view>
</template>
@ -214,31 +200,176 @@
projectDetail: {
projectName: ''
},
markers:[],
BUILDSTATUS:[
{id:0,name:'未开工'},{id:1,name:'在建'},{id:2,name:'停工'},{id:3,name:'验收'},{id:4,name:'完工'}
],
PROJECTTYPE:[
{id:1,name:'房建'},{id:2,name:'市政'},{id:3,name:'安装'},{id:4,name:'装饰'},{id:5,name:'公路'},{id:6,name:'冶炼'},{id:7,name:'矿山'},
{id:8,name:'化工石油'},{id:9,name:'水利水电'},{id:10,name:'电力'}
,{id:11,name:'农林'},{id:12,name:'港口与航道'},{id:13,name:'航天航空'},{id:14,name:'通信'},{id:15,name:'其他'}
],//
// CONSTRUCTIONSTAGE:CONSTRUCTIONSTAGE,//
ENGINEERINGPRUPOSE:[
{id:1,name:'住宅建筑'},{id:2,name:'宿舍建筑'},{id:3,name:'教育建筑'},{id:4,name:'办公建筑'},{id:5,name:'科研建筑'},
{id:6,name:'文化建筑'},{id:7,name:'商业建筑'},
{id:8,name:'体育建筑'},{id:9,name:'医疗建筑'},{id:10,name:'交通建筑'}
,{id:11,name:'司法建筑'},{id:12,name:'纪念建筑'},{id:13,name:'园林建筑'},{id:14,name:'综合建筑'},
{id:15,name:'工业厂房'},{id:16,name:'电子厂房'},{id:17,name:'其他'}
],//
STRUCTURETYPE:[
{id:1,name:'装配整体式框级结构'},{id:2,name:'装配整体式剪力墙结构'},{id:3,name:'装配整体式框级-现浇剪力墙结构'},{id:4,name:'装配整体式框级-现浇核心筒结构'},
{id:5,name:'装配整体式部分框支剪力墙结构'},{id:6,name:'混合结构'},{id:7,name:'框架结构'},
{id:8,name:'剪力墙结构'},{id:9,name:'框架-剪力墙结构'},{id:10,name:'简体结构'}
,{id:11,name:'钢结构'},{id:12,name:'型钢混凝土结构'},{id:13,name:'砖混结构'},{id:14,name:'砖木结构'}
],//
extendInfo:{}
markers: [],
BUILDSTATUS: [{
id: 0,
name: '未开工'
}, {
id: 1,
name: '在建'
}, {
id: 2,
name: '停工'
}, {
id: 3,
name: '验收'
}, {
id: 4,
name: '完工'
}],
PROJECTTYPE: [{
id: 1,
name: '房建'
}, {
id: 2,
name: '市政'
}, {
id: 3,
name: '安装'
}, {
id: 4,
name: '装饰'
}, {
id: 5,
name: '公路'
}, {
id: 6,
name: '冶炼'
}, {
id: 7,
name: '矿山'
},
{
id: 8,
name: '化工石油'
}, {
id: 9,
name: '水利水电'
}, {
id: 10,
name: '电力'
}, {
id: 11,
name: '农林'
}, {
id: 12,
name: '港口与航道'
}, {
id: 13,
name: '航天航空'
}, {
id: 14,
name: '通信'
}, {
id: 15,
name: '其他'
}
], //
// CONSTRUCTIONSTAGE:CONSTRUCTIONSTAGE,//
ENGINEERINGPRUPOSE: [{
id: 1,
name: '住宅建筑'
}, {
id: 2,
name: '宿舍建筑'
}, {
id: 3,
name: '教育建筑'
}, {
id: 4,
name: '办公建筑'
}, {
id: 5,
name: '科研建筑'
},
{
id: 6,
name: '文化建筑'
}, {
id: 7,
name: '商业建筑'
},
{
id: 8,
name: '体育建筑'
}, {
id: 9,
name: '医疗建筑'
}, {
id: 10,
name: '交通建筑'
}, {
id: 11,
name: '司法建筑'
}, {
id: 12,
name: '纪念建筑'
}, {
id: 13,
name: '园林建筑'
}, {
id: 14,
name: '综合建筑'
},
{
id: 15,
name: '工业厂房'
}, {
id: 16,
name: '电子厂房'
}, {
id: 17,
name: '其他'
}
], //
STRUCTURETYPE: [{
id: 1,
name: '装配整体式框级结构'
}, {
id: 2,
name: '装配整体式剪力墙结构'
}, {
id: 3,
name: '装配整体式框级-现浇剪力墙结构'
}, {
id: 4,
name: '装配整体式框级-现浇核心筒结构'
},
{
id: 5,
name: '装配整体式部分框支剪力墙结构'
}, {
id: 6,
name: '混合结构'
}, {
id: 7,
name: '框架结构'
},
{
id: 8,
name: '剪力墙结构'
}, {
id: 9,
name: '框架-剪力墙结构'
}, {
id: 10,
name: '简体结构'
}, {
id: 11,
name: '钢结构'
}, {
id: 12,
name: '型钢混凝土结构'
}, {
id: 13,
name: '砖混结构'
}, {
id: 14,
name: '砖木结构'
}
], //
extendInfo: {}
}
},
mounted() {
@ -247,11 +378,11 @@
uni.getSystemInfo({
success(res) {
that.mobileTopHeight = res.statusBarHeight ? res.statusBarHeight : 0;
uni.setStorageSync('systemInfo',res)
uni.setStorageSync('systemInfo', res)
console.log(res)
}
})
console.log('this.mobileTopHeight',this.mobileTopHeight)
console.log('this.mobileTopHeight', this.mobileTopHeight)
// this.markers=[{
// longitude: this.projectDetail.longitude,
// latitude: this.projectDetail.latitude,
@ -284,10 +415,10 @@
this.getExtendInfo()
},
methods: {
viewBig(url){
viewBig(url) {
uni.previewImage({
current:url,
urls:[this.projectDetail.layoutImage,this.projectDetail.constructionMapUrl]
current: url,
urls: [this.projectDetail.layoutImage, this.projectDetail.constructionMapUrl]
})
},
getExtendInfo() {
@ -299,24 +430,24 @@
},
method: "POST",
success(res) {
if(res.result!=null){
if (res.result != null) {
that.extendInfo = res.result
}else{
that.extendInfo={
contractSignTime:"-",
contractPeriodStartTime:"-",
contractPeriodEndTime:"-",
realPeriodStartTime:"-",
realPeriodEndTime:"-",
bidWinner:"",
constructionUnit:"",
designUnit:"",
supervisorUnit:"",
ownerUnit:"",
projectOverview:""
} else {
that.extendInfo = {
contractSignTime: "-",
contractPeriodStartTime: "-",
contractPeriodEndTime: "-",
realPeriodStartTime: "-",
realPeriodEndTime: "-",
bidWinner: "",
constructionUnit: "",
designUnit: "",
supervisorUnit: "",
ownerUnit: "",
projectOverview: ""
}
}
}
})
},
@ -325,36 +456,43 @@
</script>
<style scoped lang="scss">
.map{
width: 100%;
height: 200px!important;
img{
display: none;
}
}
.smallImg{
height: 50px;
width: 50px;
}
.splitTitle{
margin: 15px 10px 0;
border-left: 3px solid $uni-color-primary;
padding: 0 5px;
line-height: 16px;
}
.infoBlock{
padding: 15px 0;
.item{
border-bottom: 1px solid rgba(0,0,0,0.05);
margin-bottom: 10px;
padding: 0 15px;
.title{
font-size: 12px;
opacity: 0.6;
}
.value{
padding: 5px 0;
.map {
width: 100%;
height: 200px !important;
img {
display: none;
}
}
}
</style>
.smallImg {
height: 50px;
width: 50px;
}
.splitTitle {
margin: 15px 10px 0;
border-left: 3px solid $uni-color-primary;
padding: 0 5px;
line-height: 16px;
}
.infoBlock {
padding: 15px 0;
.item {
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
margin-bottom: 10px;
padding: 0 15px;
.title {
font-size: 12px;
opacity: 0.6;
}
.value {
padding: 5px 0;
}
}
}
</style>

View File

@ -0,0 +1,360 @@
<template>
<view class="fullHeight">
<levitatedsphere :x="100" :y="80"></levitatedsphere>
<headers :showBack="true" style="position: fixed; top: 0; left: 0; width: 100%; z-index: 10;">
<view class="headerName">
项目概况
</view>
</headers>
<view class="" :style="{paddingTop: mobileTopHeight + 40 + 'px'}">
<!-- <map class="map"
scale="13"
:markers="markers" :latitude="projectDetail.latitude" :longitude="projectDetail.longitude"
>
</map> -->
<view class="splitTitle">
基本信息
</view>
<view class="infoBlock">
<view class="item">
<view class="title">
项目名称
</view>
<view class="value">
{{projectDetail.projectName}}
</view>
</view>
<view class="item">
<view class="title">
项目地址
</view>
<view class="value">
{{projectDetail.projectAddress}}
</view>
</view>
<view class="item">
<view class="title">
项目所在省市区
</view>
<view class="value">
{{projectDetail.provinceName}}{{projectDetail.cityName}}{{projectDetail.areaName}}
</view>
</view>
<view class="item">
<view class="title">
项目经理
</view>
<view class="value">
{{projectDetail.projectManage}}
</view>
</view>
<view class="item">
<view class="title">
联系电话
</view>
<view class="value">
{{projectDetail.projectTel}}
</view>
</view>
<view class="item">
<view class="title">
工程类别
</view>
<view class="value">
<text v-for="(item,index) in PROJECTTYPE" :key="index" v-if="item.id==projectDetail.projectType">{{item.name}}</text>
</view>
</view>
<view class="item">
<view class="title">
项目编号
</view>
<view class="value">
{{projectDetail.projectNumber}}
</view>
</view>
<view class="item">
<view class="title">
结构类型
</view>
<view class="value">
<text v-for="(item,index) in STRUCTURETYPE" :key="index" v-if="item.id==projectDetail.structureType">{{item.name}}</text>
</view>
</view>
<view class="item">
<view class="title">
项目面积
</view>
<view class="value">
{{projectDetail.projectAcreage}}
</view>
</view>
<view class="item">
<view class="title">
户数
</view>
<view class="value">
{{projectDetail.households}}
</view>
</view>
<view class="item">
<view class="title">
楼栋数
</view>
<view class="value">
{{projectDetail.buildingNum}}
</view>
</view>
<view class="item">
<view class="title">
现场布置图
</view>
<view class="value">
<image :src="projectDetail.layoutImage" mode="" class="smallImg" @click="viewBig(projectDetail.layoutImage)"></image>
</view>
</view>
<view class="item">
<view class="title">
现场施工图
</view>
<view class="value">
<image :src="projectDetail.constructionMapUrl" mode="" class="smallImg" @click="viewBig(projectDetail.constructionMapUrl)"></image>
</view>
</view>
</view>
<view class="splitTitle">
扩展信息
</view>
<view class="infoBlock">
<view class="item">
<view class="title">
合同签订
</view>
<view class="value">
{{extendInfo.contractSignTime?extendInfo.contractSignTime:''}}
</view>
</view>
<view class="item">
<view class="title">
合同工期
</view>
<view class="value">
{{extendInfo.contractPeriodStartTime}} ~ {{extendInfo.contractPeriodEndTime}}
</view>
</view>
<view class="item">
<view class="title">
实际工期
</view>
<view class="value">
{{extendInfo.realPeriodStartTime}} ~ {{extendInfo.realPeriodEndTime}}
</view>
</view>
<view class="item">
<view class="title">
中标单位
</view>
<view class="value">
{{extendInfo.bidWinner}}
</view>
</view>
<view class="item">
<view class="title">
建设单位
</view>
<view class="value">
{{extendInfo.constructionUnit}}
</view>
</view>
<view class="item">
<view class="title">
设计单位
</view>
<view class="value">
{{extendInfo.designUnit}}
</view>
</view>
<view class="item">
<view class="title">
监理单位
</view>
<view class="value">
{{extendInfo.supervisorUnit}}
</view>
</view>
<view class="item">
<view class="title">
业主单位
</view>
<view class="value">
{{extendInfo.ownerUnit}}
</view>
</view>
<view class="item">
<view class="title">
工程概况
</view>
<view class="value">
{{extendInfo.projectOverview}}
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import headers from "../../../components/headers/headers.vue"
// import amap from '../../../static/js/amap-wx.js'
export default {
data() {
return {
mobileTopHeight: 0,
projectDetail: {
projectName: ''
},
markers:[],
BUILDSTATUS:[
{id:0,name:'未开工'},{id:1,name:'在建'},{id:2,name:'停工'},{id:3,name:'验收'},{id:4,name:'完工'}
],
PROJECTTYPE:[
{id:1,name:'房建'},{id:2,name:'市政'},{id:3,name:'安装'},{id:4,name:'装饰'},{id:5,name:'公路'},{id:6,name:'冶炼'},{id:7,name:'矿山'},
{id:8,name:'化工石油'},{id:9,name:'水利水电'},{id:10,name:'电力'}
,{id:11,name:'农林'},{id:12,name:'港口与航道'},{id:13,name:'航天航空'},{id:14,name:'通信'},{id:15,name:'其他'}
],//
// CONSTRUCTIONSTAGE:CONSTRUCTIONSTAGE,//
ENGINEERINGPRUPOSE:[
{id:1,name:'住宅建筑'},{id:2,name:'宿舍建筑'},{id:3,name:'教育建筑'},{id:4,name:'办公建筑'},{id:5,name:'科研建筑'},
{id:6,name:'文化建筑'},{id:7,name:'商业建筑'},
{id:8,name:'体育建筑'},{id:9,name:'医疗建筑'},{id:10,name:'交通建筑'}
,{id:11,name:'司法建筑'},{id:12,name:'纪念建筑'},{id:13,name:'园林建筑'},{id:14,name:'综合建筑'},
{id:15,name:'工业厂房'},{id:16,name:'电子厂房'},{id:17,name:'其他'}
],//
STRUCTURETYPE:[
{id:1,name:'装配整体式框级结构'},{id:2,name:'装配整体式剪力墙结构'},{id:3,name:'装配整体式框级-现浇剪力墙结构'},{id:4,name:'装配整体式框级-现浇核心筒结构'},
{id:5,name:'装配整体式部分框支剪力墙结构'},{id:6,name:'混合结构'},{id:7,name:'框架结构'},
{id:8,name:'剪力墙结构'},{id:9,name:'框架-剪力墙结构'},{id:10,name:'简体结构'}
,{id:11,name:'钢结构'},{id:12,name:'型钢混凝土结构'},{id:13,name:'砖混结构'},{id:14,name:'砖木结构'}
],//
extendInfo:{}
}
},
mounted() {
this.projectDetail = JSON.parse(uni.getStorageSync('projectDetail'))
var that = this
uni.getSystemInfo({
success(res) {
that.mobileTopHeight = res.statusBarHeight ? res.statusBarHeight : 0;
uni.setStorageSync('systemInfo',res)
console.log(res)
}
})
console.log('this.mobileTopHeight',this.mobileTopHeight)
// this.markers=[{
// longitude: this.projectDetail.longitude,
// latitude: this.projectDetail.latitude,
// iconPath:'/static/mapMarker.png',
// title:'',//
// width:54, //
// height:80, //
// label:{// //H5
//    content: this.projectDetail.projectName,//
//     color:'red',//
// //   fontSize:24,//
// // x:5,//label marker
// // y:1,//label marker
// // borderWidth:12,//
// // borderColor:'pink',//
// //   borderRadius:20,//
// //   bgColor:'black',//
// //   padding:5,//
// // textAlign:'right'//
// },
// callout:{//
//   content:'A',//
//   color:'#ffffff',//
//   fontSize:14,//
//   borderRadius:2,//
//    bgColor:'#00c16f',//
//   display:'ALWAYS',//
// },
// }]
this.getExtendInfo()
},
methods: {
viewBig(url){
uni.previewImage({
current:url,
urls:[this.projectDetail.layoutImage,this.projectDetail.constructionMapUrl]
})
},
getExtendInfo() {
var that = this
this.sendRequest({
url: "xmgl/projectExtend/getProjectExtendInfo",
data: {
projectSn: this.projectDetail.projectSn
},
method: "POST",
success(res) {
if(res.result!=null){
that.extendInfo = res.result
}else{
that.extendInfo={
contractSignTime:"-",
contractPeriodStartTime:"-",
contractPeriodEndTime:"-",
realPeriodStartTime:"-",
realPeriodEndTime:"-",
bidWinner:"",
constructionUnit:"",
designUnit:"",
supervisorUnit:"",
ownerUnit:"",
projectOverview:""
}
}
}
})
},
}
}
</script>
<style scoped lang="scss">
.map{
width: 100%;
height: 200px!important;
img{
display: none;
}
}
.smallImg{
height: 50px;
width: 50px;
}
.splitTitle{
margin: 15px 10px 0;
border-left: 3px solid $uni-color-primary;
padding: 0 5px;
line-height: 16px;
}
.infoBlock{
padding: 15px 0;
.item{
border-bottom: 1px solid rgba(0,0,0,0.05);
margin-bottom: 10px;
padding: 0 15px;
.title{
font-size: 12px;
opacity: 0.6;
}
.value{
padding: 5px 0;
}
}
}
</style>