388 lines
12 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>