feat:完成app承包商管理模块的页面开发与接口对接
35
pages.json
@ -2635,6 +2635,41 @@
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/contractors/index",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/contractors/detailList",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/contractors/basicInfo",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/contractors/qualification",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/contractors/badRecords",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
}
|
||||
],
|
||||
// "subPackages":[{
|
||||
|
||||
131
pages/contractors/badRecords.vue
Normal file
@ -0,0 +1,131 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="barBox">
|
||||
<headers class="fixedheader" :themeType="'white'" :showBack="true">
|
||||
<view class="headerName">
|
||||
不良记录
|
||||
</view>
|
||||
</headers>
|
||||
</view>
|
||||
<scroll-view :scroll-y="true" class="scrollBox" :style="{height: screenHeight + 'px'}">
|
||||
<view v-for="(item,index) in listData" :key="index">
|
||||
<view class="itemBox">
|
||||
<view class="itemLine">
|
||||
<text class="itemLine-left">发生事项:</text>
|
||||
<text class="itemLine-right">{{item.ariseMatter || '--'}}</text>
|
||||
</view>
|
||||
<view class="itemLine">
|
||||
<text class="itemLine-left">发生原因:</text>
|
||||
<text class="itemLine-right">{{item.ariseReason || '--'}}</text>
|
||||
</view>
|
||||
<view class="itemLine">
|
||||
<text class="itemLine-left">发生时间:</text>
|
||||
<text class="itemLine-right">{{item.ariseTime || '--'}}</text>
|
||||
</view>
|
||||
<view class="itemLine">
|
||||
<text class="itemLine-left">备注:</text>
|
||||
<text class="itemLine-right">{{item.remarks || '--'}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="" style="height: 10px;"></view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
id: '',
|
||||
projectId: '',
|
||||
screenHeight: '',
|
||||
listData: [],
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
this.id = option.id
|
||||
this.projectId = option.projectId
|
||||
this.getHeight()
|
||||
this.getListData()
|
||||
},
|
||||
methods: {
|
||||
getHeight() {
|
||||
this.screenHeight = uni.getSystemInfoSync().screenHeight - 44
|
||||
console.log(this.screenHeight);
|
||||
},
|
||||
getListData(){
|
||||
let data = {
|
||||
enterpriseId: this.projectId,
|
||||
}
|
||||
this.sendRequest({
|
||||
url: 'xmgl/enterpriseBadRecord/list',
|
||||
method: 'post',
|
||||
data: data,
|
||||
success: res => {
|
||||
console.log("enterpriseBadRecord", res);
|
||||
this.listData = res.result
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
.scrollBox {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-color: #f4f5fd;
|
||||
// margin: 0 10px;
|
||||
word-break: break-all;
|
||||
.itemBox {
|
||||
width: calc(100% - 20px);
|
||||
min-height: 120px;
|
||||
margin: 0 10px;
|
||||
margin-top: 10px;
|
||||
border: 1px solid rgba(219, 229, 255, 0.6);
|
||||
border-radius: 10px;
|
||||
padding: 15px 20px;
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 8rpx 15rpx 0px rgba(219,229,255,0.6);
|
||||
// background-color: darkred;
|
||||
font-size: 12px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
.itemLine{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-bottom: 10px;
|
||||
.itemLine-left{
|
||||
width: 20%;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.itemLine-right{
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
.itemLine:last-child{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
259
pages/contractors/basicInfo.vue
Normal file
@ -0,0 +1,259 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="barBox">
|
||||
<headers class="fixedheader" :themeType="'white'" :showBack="true">
|
||||
<view class="headerName">
|
||||
基本信息
|
||||
</view>
|
||||
</headers>
|
||||
</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: screenHeight + '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="url_config+'image/'+enterpriseInfo.enterpriseQualificationUrl"
|
||||
@click="previewImage(url_config+'image/'+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: screenHeight + 'px'}" v-if="checked == 2">
|
||||
<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,
|
||||
screenHeight: '',
|
||||
enterpriseInfo: '',
|
||||
conProjectInfo: '',
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
this.id = option.id
|
||||
this.projectId = option.projectId
|
||||
this.getHeight()
|
||||
this.getDetailInfo()
|
||||
},
|
||||
methods: {
|
||||
getHeight() {
|
||||
this.screenHeight = uni.getSystemInfoSync().screenHeight - 44 - 44
|
||||
console.log(this.screenHeight);
|
||||
},
|
||||
handleTab(val){
|
||||
this.checked = val
|
||||
},
|
||||
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 > 0 ?
|
||||
// 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 :
|
||||
// res.result.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>
|
||||
.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;
|
||||
}
|
||||
}
|
||||
.scrollBox{
|
||||
height: 100%;
|
||||
width: calc(100% - 20px);
|
||||
// background-color: darkred;
|
||||
margin: 0 10px;
|
||||
word-break: break-all;
|
||||
.property-item{
|
||||
// line-height: 25px;
|
||||
margin-bottom: 15px;
|
||||
.item-top{
|
||||
color: #878787;
|
||||
}
|
||||
.item-bottom{
|
||||
margin-top: 5px;
|
||||
width: auto;
|
||||
height: auto;
|
||||
.icon-image{
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
120
pages/contractors/detailList.vue
Normal file
@ -0,0 +1,120 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="barBox">
|
||||
<headers class="fixedheader" :themeType="'white'" :showBack="true">
|
||||
<view class="headerName">
|
||||
企业详情
|
||||
</view>
|
||||
</headers>
|
||||
</view>
|
||||
<view class="detailListBox" :style="{height: screenHeight + 'px'}">
|
||||
<view class="detailItem" @click="goBasic">
|
||||
<view class="item-left">
|
||||
<image src="/static/contractors/icon-basic.png" class="icon-image"></image>
|
||||
<text>基本信息</text>
|
||||
</view>
|
||||
<view class="">
|
||||
<u-icon name="arrow-right"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="detailItem" @click="goQualification">
|
||||
<view class="item-left">
|
||||
<image src="/static/contractors/icon-qualification.png" class="icon-image"></image>
|
||||
<text>资质文件</text>
|
||||
</view>
|
||||
<view class="">
|
||||
<u-icon name="arrow-right"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="detailItem" @click="goBadRecords">
|
||||
<view class="item-left">
|
||||
<image src="/static/contractors/icon-badRecords.png" class="icon-image"></image>
|
||||
<text>不良记录</text>
|
||||
</view>
|
||||
<view class="">
|
||||
<u-icon name="arrow-right"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
id:'',
|
||||
projectId: '',
|
||||
screenHeight: '',
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
this.id = option.id
|
||||
this.projectId = option.projectId
|
||||
this.getHeight()
|
||||
},
|
||||
methods: {
|
||||
getHeight() {
|
||||
this.screenHeight = uni.getSystemInfoSync().screenHeight - 44
|
||||
console.log(this.screenHeight);
|
||||
},
|
||||
goBasic(){
|
||||
uni.navigateTo({
|
||||
url: './basicInfo?id=' + this.id + '&projectId=' + this.projectId,
|
||||
})
|
||||
},
|
||||
goQualification(){
|
||||
uni.navigateTo({
|
||||
url: './qualification?id=' + this.id + '&projectId=' + this.projectId,
|
||||
})
|
||||
},
|
||||
goBadRecords(){
|
||||
uni.navigateTo({
|
||||
url: './badRecords?id=' + this.id + '&projectId=' + this.projectId,
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
.detailListBox{
|
||||
background-color: #f4f5fd;
|
||||
.detailItem{
|
||||
line-height: 60px;
|
||||
background-color: #fff;
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0 15px;
|
||||
box-shadow: 0px 8rpx 15rpx 0px rgba(219,229,255,0.6);
|
||||
.item-left{
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
.icon-image{
|
||||
margin-right: 10px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
283
pages/contractors/index.vue
Normal file
@ -0,0 +1,283 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="barBox">
|
||||
<headers class="fixedheader" :themeType="'white'" :showBack="true">
|
||||
<view class="headerName">
|
||||
承包商管理
|
||||
</view>
|
||||
</headers>
|
||||
</view>
|
||||
<view class="searchBox">
|
||||
<form>
|
||||
<view class="uni-form-item">
|
||||
<input class="uni-input" name="searchName" v-model="searchForm.enterpriseName" placeholder="搜索"
|
||||
@input="handleInput" />
|
||||
<!-- <view class="screen" @click="screenData">筛选</view> -->
|
||||
<view class="screen" @click="openDialog">筛选</view>
|
||||
<view class="screen" style="margin-top: 3px; margin-left: 3px;">
|
||||
<image src="/static/screenIcon.png" style="width: 15px;height: 15px">
|
||||
</image>
|
||||
</view>
|
||||
</view>
|
||||
</form>
|
||||
</view>
|
||||
<view class="dialogBox" id="myPopup">
|
||||
<view v-for="(item,index) in typeList" :key="index">
|
||||
<view :class="{dialogItem: true,activeItem:searchForm.enterpriseTypeId == item.id}" @click="chooseType(item)">
|
||||
{{item.companyTypeName}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<scroll-view :scroll-y="true" class="scrollBox" :style="{height: screenHeight + 'px'}">
|
||||
<view v-for="(item,index) in listData" :key="index">
|
||||
<view class="itemBox" @click="goDetail(item)">
|
||||
<view class="itemLine1">
|
||||
{{item.enterpriseName || '--'}}
|
||||
</view>
|
||||
<view class="itemLine2">
|
||||
统一社会信用代码:{{item.socialCode || '--'}}
|
||||
</view>
|
||||
<view class="itemLine3">
|
||||
项目负责人:{{item.projectDirectorName || '--'}}
|
||||
</view>
|
||||
<view class="itemLine4">
|
||||
项目负责人电话:{{item.projectDirectorPhone || '--'}}
|
||||
</view>
|
||||
<view class="itemLine5">
|
||||
项目类型:{{item.projectEnterprise.cbsProjectTypeName || '--'}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="" style="height: 10px;"></view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
searchForm: {
|
||||
pageNo: 1,
|
||||
pageSize: 9999,
|
||||
projectSn: JSON.parse(uni.getStorageSync('projectDetail')).projectSn,
|
||||
enterpriseName: '',
|
||||
enterpriseTypeId: '',
|
||||
},
|
||||
screenHeight: '',
|
||||
listData: [],
|
||||
show: false,
|
||||
typeList: [],
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
onLoad() {
|
||||
this.getHeight()
|
||||
this.getListData()
|
||||
this.getTypeList()
|
||||
},
|
||||
methods: {
|
||||
//搜索
|
||||
handleInput(e) {
|
||||
setTimeout(() => {
|
||||
this.getListData()
|
||||
}, 300)
|
||||
},
|
||||
screenData() {
|
||||
// this.show = true
|
||||
var popup = document.getElementById('myPopup');
|
||||
if (popup.style.right === '-300px') {
|
||||
popup.style.right = '0'; // 滑出盒子
|
||||
} else {
|
||||
popup.style.right = '-300px'; // 隐藏盒子
|
||||
}
|
||||
},
|
||||
openDialog() {
|
||||
var popup = document.getElementById('myPopup');
|
||||
popup.style.right = '0'; // 滑出盒子
|
||||
},
|
||||
closeDialog() {
|
||||
var popup = document.getElementById('myPopup');
|
||||
popup.style.right = '-300px'; // 隐藏盒子
|
||||
},
|
||||
chooseType(item){
|
||||
this.searchForm.enterpriseTypeId = item.id
|
||||
this.getListData()
|
||||
this.closeDialog()
|
||||
},
|
||||
getHeight() {
|
||||
this.screenHeight = uni.getSystemInfoSync().screenHeight - 100
|
||||
console.log(this.screenHeight);
|
||||
},
|
||||
goDetail(item){
|
||||
uni.navigateTo({
|
||||
url: './detailList?id=' + item.id + '&projectId=' + item.projectEnterprise.id,
|
||||
})
|
||||
},
|
||||
getListData() {
|
||||
this.sendRequest({
|
||||
url: 'xmgl/projectEnterprise/list',
|
||||
method: 'post',
|
||||
data: this.searchForm,
|
||||
success: res => {
|
||||
console.log("projectEnterprise", res);
|
||||
this.listData = res.result.records
|
||||
}
|
||||
})
|
||||
},
|
||||
getTypeList() {
|
||||
this.sendRequest({
|
||||
url: 'xmgl/enterpriseType/list',
|
||||
method: 'get',
|
||||
success: res => {
|
||||
this.typeList = [{
|
||||
id: '',
|
||||
companyTypeName: '全部'
|
||||
},
|
||||
...res.result
|
||||
]
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.barBox {
|
||||
// background-color: #5181F6;
|
||||
background-color: #f6f6f6;
|
||||
min-height: 100%;
|
||||
|
||||
height: 100px;
|
||||
|
||||
.fixedheader {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 999;
|
||||
|
||||
.headerName {
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.searchBox {
|
||||
background-color: white;
|
||||
position: fixed;
|
||||
top: 44px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 999;
|
||||
box-shadow: 0px 8rpx 15rpx 0px rgba(219,229,255,0.6);
|
||||
|
||||
.uni-form-item {
|
||||
position: relative;
|
||||
display: flex;
|
||||
font-size: 14px;
|
||||
// background-color: darkred;
|
||||
/* .search-icon{
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 50rpx;
|
||||
transform: translateY(-50%);
|
||||
} */
|
||||
}
|
||||
|
||||
.uni-input {
|
||||
border-radius: 20px;
|
||||
margin: 10px 10px;
|
||||
background-color: #f7f8fa;
|
||||
height: 35px;
|
||||
line-height: 30px;
|
||||
padding: 0 20px;
|
||||
font-size: 14px;
|
||||
width: 70%;
|
||||
}
|
||||
|
||||
.screen {
|
||||
line-height: 50px;
|
||||
color: gray;
|
||||
}
|
||||
}
|
||||
|
||||
.dialogBox {
|
||||
width: 130px;
|
||||
min-height: 350px;
|
||||
position: fixed;
|
||||
top: 99px;
|
||||
right: -300px; /* 初始时隐藏在屏幕右侧 */
|
||||
// transform: translateX(0%);
|
||||
background-color: #fff;
|
||||
border: 1px solid #dbe5ff;
|
||||
border-top: none;
|
||||
border-right: none;
|
||||
transition: right 0.5s; /* 添加过渡效果 */
|
||||
z-index: 10;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
padding: 5px 0;
|
||||
.dialogItem {
|
||||
line-height: 35px;
|
||||
// margin-bottom: 5px;
|
||||
}
|
||||
.activeItem{
|
||||
background-color: rgba(22,132,252, 0.1);
|
||||
border: 2px solid #1684fc;
|
||||
border-top: none;
|
||||
border-bottom: none;
|
||||
border-left: none;
|
||||
}
|
||||
}
|
||||
|
||||
.scrollBox {
|
||||
height: 100%;
|
||||
width: calc(100% - 20px);
|
||||
// background-color: darkred;
|
||||
margin: 0 10px;
|
||||
|
||||
.itemBox {
|
||||
width: 100%;
|
||||
min-height: 120px;
|
||||
margin-top: 10px;
|
||||
border: 1px solid rgba(219, 229, 255, 0.6);
|
||||
border-radius: 2px;
|
||||
padding: 5px 10px;
|
||||
// box-shadow: 0px 8rpx 15rpx 0px rgba(219,229,255,0.6);
|
||||
// background-color: darkred;
|
||||
font-size: 12px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
|
||||
.itemLine1 {}
|
||||
|
||||
.itemLine1 {
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
overflow: hidden; /* 隐藏超出部分 */
|
||||
text-overflow: ellipsis; /* 使用省略号显示超出部分 */
|
||||
}
|
||||
|
||||
.itemLine2 {
|
||||
white-space: nowrap;
|
||||
overflow: hidden; /* 隐藏超出部分 */
|
||||
text-overflow: ellipsis; /* 使用省略号显示超出部分 */
|
||||
}
|
||||
|
||||
.itemLine3 {}
|
||||
|
||||
.itemLine4 {}
|
||||
|
||||
.itemLine5 {}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
187
pages/contractors/qualification.vue
Normal file
@ -0,0 +1,187 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="barBox">
|
||||
<headers class="fixedheader" :themeType="'white'" :showBack="true">
|
||||
<view class="headerName">
|
||||
资质文件
|
||||
</view>
|
||||
</headers>
|
||||
</view>
|
||||
<view class="searchBox">
|
||||
<form>
|
||||
<view class="uni-form-item">
|
||||
<input class="uni-input" name="searchName" v-model="searchForm.fileName" placeholder="请搜索文件名称"
|
||||
@input="handleInput" />
|
||||
</view>
|
||||
</form>
|
||||
</view>
|
||||
<scroll-view :scroll-y="true" class="scrollBox" :style="{height: screenHeight + 'px'}">
|
||||
<view v-for="(item,index) in listData" :key="index">
|
||||
<view class="itemBox">
|
||||
<view class="file-info">
|
||||
<image src="/static/documentIcon/JPG.png" class="icon-image"></image>
|
||||
<view class="info">
|
||||
<view class="info-inner">{{item.fileName}}</view>
|
||||
<view class="info-inner">{{item.createTime}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="optration" @click="previewImage(item)">· · ·</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="" style="height: 10px;"></view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
id: '',
|
||||
projectId: '',
|
||||
searchForm: {
|
||||
enterpriseId: '',
|
||||
fileName: ''
|
||||
},
|
||||
listData: [],
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
this.id = option.id
|
||||
this.projectId = option.projectId
|
||||
this.getHeight()
|
||||
this.getListData()
|
||||
},
|
||||
methods: {
|
||||
getHeight() {
|
||||
this.screenHeight = uni.getSystemInfoSync().screenHeight - 100
|
||||
console.log(this.screenHeight);
|
||||
},
|
||||
getListData(){
|
||||
this.searchForm.enterpriseId = this.id
|
||||
// let data = {
|
||||
// enterpriseId: '1802547943107092481',
|
||||
// }
|
||||
this.sendRequest({
|
||||
url: 'xmgl/enterpriseQualification/list',
|
||||
method: 'post',
|
||||
data: this.searchForm,
|
||||
success: res => {
|
||||
console.log("enterpriseQualification", res);
|
||||
this.listData = res.result
|
||||
}
|
||||
})
|
||||
},
|
||||
previewImage(item){
|
||||
let url = this.url_config+'image/'+ JSON.parse(item.fileUrl)[0].url
|
||||
console.log(url);
|
||||
uni.previewImage({
|
||||
urls: [url]
|
||||
})
|
||||
},
|
||||
//搜索
|
||||
handleInput(e) {
|
||||
setTimeout(() => {
|
||||
this.getListData()
|
||||
}, 300)
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.barBox {
|
||||
// background-color: #5181F6;
|
||||
background-color: #f6f6f6;
|
||||
min-height: 100%;
|
||||
height: 100px;
|
||||
.fixedheader {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 999;
|
||||
.headerName {
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.searchBox {
|
||||
background-color: white;
|
||||
position: fixed;
|
||||
top: 44px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 999;
|
||||
box-shadow: 0px 8rpx 15rpx 0px rgba(219,229,255,0.6);
|
||||
|
||||
.uni-form-item {
|
||||
position: relative;
|
||||
display: flex;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.uni-input {
|
||||
border-radius: 20px;
|
||||
margin: 10px 10px;
|
||||
background-color: #f7f8fa;
|
||||
height: 35px;
|
||||
line-height: 30px;
|
||||
padding: 0 20px;
|
||||
font-size: 14px;
|
||||
width: calc(100% - 40px);
|
||||
}
|
||||
}
|
||||
|
||||
.scrollBox {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-color: #f4f5fd;
|
||||
// margin: 0 10px;
|
||||
word-break: break-all;
|
||||
.itemBox {
|
||||
width: 100%;
|
||||
min-height: 60px;
|
||||
margin-top: 2px;
|
||||
// border: 1px solid rgba(219, 229, 255, 0.6);
|
||||
border-radius: 2px;
|
||||
padding: 5px 10px;
|
||||
box-shadow: 0px 8rpx 15rpx 0px rgba(219,229,255,0.6);
|
||||
background-color: #fff;
|
||||
font-size: 12px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.file-info{
|
||||
width: 85%;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
.icon-image{
|
||||
width: 45px;
|
||||
height: 45px;
|
||||
}
|
||||
.info{
|
||||
width: calc(100% - 100px);
|
||||
margin-left: 10px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
.info-inner{
|
||||
white-space: nowrap;
|
||||
overflow: hidden; /* 隐藏超出部分 */
|
||||
text-overflow: ellipsis; /* 使用省略号显示超出部分 */
|
||||
line-height: 23px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.optration{
|
||||
width: 45px;
|
||||
font-weight: bolder;
|
||||
color: #2b8df3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@ -753,6 +753,11 @@
|
||||
url: '../../projectEnd/emergencyDisposal/index'
|
||||
})
|
||||
break
|
||||
case 'contractors':
|
||||
uni.navigateTo({
|
||||
url: '../../contractors/index'
|
||||
})
|
||||
break
|
||||
case 'saosao':
|
||||
console.log('打开saosao')
|
||||
// let that = this;
|
||||
|
||||
BIN
static/contractors/icon-badRecords.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
static/contractors/icon-basic.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
static/contractors/icon-qualification.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
static/documentIcon/JPG.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
static/documentIcon/PDF.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
static/documentIcon/PNG.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
static/documentIcon/PPT.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
static/documentIcon/RAR.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
static/documentIcon/TXT.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
static/documentIcon/UNKNOWN.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
static/documentIcon/VIDEO.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
static/documentIcon/WORD.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
static/documentIcon/ZIP.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |