388 lines
12 KiB
Vue
Raw Normal View History

<template>
<view>
<view class="barBox" :style="{'height': barBoxHeight + 'px'}">
<view class="fixedheader">
<headers :themeType="'white'" :showBack="true">
<view class="headerName">
基本信息
</view>
</headers>
</view>
</view>
<view class="tabBox">
<view :class="{'enterprise-tab':true,'active-tab': checked == 1}" @click="handleTab(1)">企业信息</view>
<view :class="{'project-tab':true,'active-tab': checked == 2}" @click="handleTab(2)">项目信息</view>
</view>
<scroll-view :scroll-y="true" class="scrollBox" :style="{height: scrollHeight + 'px'}" v-if="checked == 1">
<view class="property-item">
<view class="item-top">企业名称</view>
<view class="item-bottom">{{enterpriseInfo.enterpriseName || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">企业类型</view>
<view class="item-bottom">{{enterpriseInfo.companyTypeName || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">统一社会信用代码</view>
<view class="item-bottom">{{enterpriseInfo.socialCode || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">法定代表人</view>
<view class="item-bottom">{{enterpriseInfo.enterpriseLegalPerson || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">法人电话</view>
<view class="item-bottom">{{enterpriseInfo.legalPersonTel || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">注册人申请电话</view>
<view class="item-bottom">{{enterpriseInfo.registerPersonPhoneTel || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">开户行</view>
<view class="item-bottom">{{enterpriseInfo.bankname || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">银行账号</view>
<view class="item-bottom">{{enterpriseInfo.bankcardnumber || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">营业执照截止日期</view>
<text class="item-bottom">{{enterpriseInfo.businessLicenseEndDate || '--'}}</text>
</view>
<view class="property-item">
<view class="item-top">资质照片</view>
<view class="item-bottom" v-if="enterpriseInfo.enterpriseQualificationUrl">
<image :src="enterpriseInfo.enterpriseQualificationUrl"
@click="previewImage(enterpriseInfo.enterpriseQualificationUrl)" class="icon-image"></image>
<!-- <image :src="enterpriseInfo.enterpriseQualificationUrl[0].url"
@click="previewImage(enterpriseInfo.enterpriseQualificationUrl[0].url)"
class="icon-image"></image> -->
</view>
<view class="item-bottom" v-else>
<text>--</text>
</view>
</view>
</scroll-view>
<scroll-view :scroll-y="true" class="scrollBox" :style="{height: scrollHeight + 'px'}" v-if="checked == 2">
<div class="conProjectItem" v-for="item in conProjectList" :key="item.id">
<view class="property-item">
<!-- 承包商名称 -->
<view class="item-top">承包项目名称</view>
<view class="item-bottom">{{item.cbsName || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">项目施工区域</view>
<view class="item-bottom">{{item.projectBuildArea || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">项目经理</view>
<view class="item-bottom">{{item.projectManage || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">项目类型</view>
<view class="item-bottom">{{item.cbsProjectTypeName || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">施工阶段</view>
<view class="item-bottom">{{item.constructionStageName || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">经度位置</view>
<view class="item-bottom">{{item.longitude || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">纬度位置</view>
<view class="item-bottom">{{item.latitude || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">项目编号</view>
<view class="item-bottom">{{item.projectNumber || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">结构类型</view>
<view class="item-bottom">{{item.structureTypeName || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">项目面积()</view>
<view class="item-bottom">{{item.projectAcreage ? item.projectAcreage + '㎡' : '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">工程状态</view>
<view class="item-bottom">{{
item.bulidStatus == 0 ? '未开工' :
item.bulidStatus == 1 ? '在建' :
item.bulidStatus == 2 ? '停工' :
item.bulidStatus == 3 ? '竣备' : '--'
}}</view>
</view>
</div>
<!-- <view class="property-item">
<view class="item-top">承包商名称</view>
<view class="item-bottom">{{conProjectInfo.cbsName || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">项目施工区域</view>
<view class="item-bottom">{{conProjectInfo.projectBuildArea || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">项目经理</view>
<view class="item-bottom">{{conProjectInfo.projectManage || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">项目类型</view>
<view class="item-bottom">{{conProjectInfo.cbsProjectTypeName || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">施工阶段</view>
<view class="item-bottom">{{conProjectInfo.constructionStageName || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">经度位置</view>
<view class="item-bottom">{{conProjectInfo.longitude || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">纬度位置</view>
<view class="item-bottom">{{conProjectInfo.latitude || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">项目编号</view>
<view class="item-bottom">{{conProjectInfo.projectNumber || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">结构类型</view>
<view class="item-bottom">{{conProjectInfo.structureTypeName || '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">项目面积()</view>
<view class="item-bottom">{{conProjectInfo.projectAcreage ? conProjectInfo.projectAcreage + '㎡' : '--'}}</view>
</view>
<view class="property-item">
<view class="item-top">工程状态</view>
<view class="item-bottom">{{
conProjectInfo.bulidStatus == 0 ? '未开工' :
conProjectInfo.bulidStatus == 1 ? '在建' :
conProjectInfo.bulidStatus == 2 ? '停工' :
conProjectInfo.bulidStatus == 3 ? '竣备' : '--'
}}</view>
</view> -->
</scroll-view>
</view>
</template>
<script>
export default {
data() {
return {
id: '',
projectId: '',
checked: 1,
barBoxHeight: '',
scrollHeight: '',
enterpriseInfo: '',
conProjectInfo: '',
conProjectList: [],
};
},
onReady() {
this.getHeight()
},
onLoad(option) {
this.id = option.id
this.projectId = option.projectId
this.getDetailInfo()
this.supplierInfoList();
},
methods: {
async getHeight() {
const query = uni.createSelectorQuery().in(this);
let fixedheaderHeight = 0
const fixedHeaderPromise = new Promise((resolve) => {
query.select('.fixedheader').boundingClientRect(data => {
fixedheaderHeight = data.height
console.log('fixedheaderHeight', data.height);
resolve();
}).exec();
});
let mobileTopHeight = 0
const systemInfoPromise = new Promise((resolve) => {
uni.getSystemInfo({
success(res) {
mobileTopHeight = res.statusBarHeight ? res.statusBarHeight : 0;
resolve();
}
});
});
await fixedHeaderPromise;
await systemInfoPromise;
this.barBoxHeight = fixedheaderHeight + mobileTopHeight;
console.log('this.barBoxHeight', this.barBoxHeight);
let screenHeight = uni.getSystemInfoSync().screenHeight;
console.log('screenHeight', screenHeight);
this.scrollHeight = screenHeight - this.barBoxHeight - 44 - 20;
console.log('this.scrollHeight', this.scrollHeight);
},
handleTab(val) {
this.checked = val
},
supplierInfoList() {
let data = {
type: 2,
enterpriseId: this.id,
projectSn: JSON.parse(uni.getStorageSync('projectDetail')).projectSn,
}
let that = this
this.sendRequest({
url: 'xmgl/projectEnterpriseSupplierInfo/list',
method: 'get',
data: data,
success: res => {
console.log("enterpriseInfo", res);
that.conProjectList = res.result;
}
})
},
getDetailInfo() {
let data = {
enterpriseId: this.id,
projectSn: JSON.parse(uni.getStorageSync('projectDetail')).projectSn,
}
let that = this
this.sendRequest({
url: 'xmgl/enterpriseInfo/getEnterpriseInfoById',
method: 'post',
data: data,
success: res => {
console.log("enterpriseInfo", res);
this.enterpriseInfo = res.result
if (this.enterpriseInfo.enterpriseQualificationUrl) {
// pc处理方式
this.enterpriseInfo.enterpriseQualificationUrl =
res.result.enterpriseQualificationUrl && res.result.enterpriseQualificationUrl
.split(',').length > 1 ?
res.result.enterpriseQualificationUrl.split(',').map(item => {
return {
name: item.split('*')[0],
url: that.url_config + 'image/' + item.split('*')[1],
}
}) : res.result.enterpriseQualificationUrl.indexOf('http://') >= 0 ? res.result
.enterpriseQualificationUrl :
url_config + 'image/' + res.result.enterpriseQualificationUrl;
console.log(this.enterpriseInfo.enterpriseQualificationUrl)
}
//如果app有图片但没加载出来就切换成上面pc处理方式
// if(this.enterpriseInfo.enterpriseQualificationUrl){
// this.enterpriseInfo.enterpriseQualificationUrl = this.enterpriseInfo.enterpriseQualificationUrl.split('*')[1]
// }
this.conProjectInfo = res.result.projectEnterprise
}
})
},
//预览图片
previewImage(url) {
console.log('url', url);
uni.previewImage({
urls: [url]
})
},
}
}
</script>
<style lang="scss" scoped>
.conProjectItem {
border: 2rpx solid #EBECF0;
border-radius: 20rpx;
padding: 20rpx;
margin-top: 20rpx;
}
.barBox {
// background-color: #5181F6;
background-color: #f6f6f6;
min-height: 100%;
height: 44px;
.fixedheader {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 999;
.headerName {
z-index: 1;
}
}
}
.tabBox {
width: 100%;
height: 44px;
display: flex;
.enterprise-tab {
width: 50%;
height: 100%;
border: 1rpx solid #e5e5e5;
// border-top: none;
// border-left: none;
line-height: 44px;
text-align: center;
}
.project-tab {
width: 50%;
height: 100%;
border: 1rpx solid #e5e5e5;
// border-top: none;
// border-right: none;
line-height: 44px;
text-align: center;
}
.active-tab {
background-color: #2b8df3;
color: #fff;
}
}
.scrollBox {
height: 100%;
width: calc(100% - 20rpx);
// background-color: darkred;
margin: 0 20rpx;
word-break: break-all;
padding-bottom: 20rpx;
.property-item {
// line-height: 50rpx;
margin-bottom: 30rpx;
.item-top {
color: #878787;
}
.item-bottom {
margin-top: 10rpx;
width: auto;
height: auto;
.icon-image {
width: 100rpx;
height: 100rpx;
}
}
}
}
</style>