You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
610 lines
12 KiB
610 lines
12 KiB
<template> |
|
<view class="supplyHall-page"> |
|
<!-- 导航栏 --> |
|
<view class="navigation-box"> |
|
<view class="search-box acea-row row-middle"> |
|
<image src="../../../static/images/search-icon.png" mode=""></image> |
|
<input type="text" value="" placeholder="请输入企业名或服务进行搜索" /> |
|
<view class="search acea-row row-center-wrapper">搜一下</view> |
|
</view> |
|
<view class="resource-tabs acea-row"> |
|
<view :class="'tab ' + (active == 1 ? 'tab-a' : '')" data-i="1" @tap="tabClick">服务列表</view> |
|
<view :class="'tab ' + (active == 2 ? 'tab-a' : '')" data-i="2" @tap="tabClick">企业列表</view> |
|
<view class="screen-box acea-row row-between-wrapper"> |
|
<view class="screen acea-row row-middle" @tap="showDialog"> |
|
<text>筛选</text> |
|
<image src="/static/images/home/screen.png"></image> |
|
</view> |
|
</view> |
|
</view> |
|
|
|
</view> |
|
<view class="supplyHall-box"> |
|
<view class="resource-box" v-if="active == 1"> |
|
<!-- 企业 --> |
|
<view class="enterprise-list" v-for="(item,index) in 2" :key="index"> |
|
<image src="../../../static/images/act-time.png" mode="" class="lable-img"></image> |
|
<view class="enterprise-con acea-row"> |
|
<view> |
|
<image src="../../../static/images/home/menu6.png" class="enterprise-img"></image> |
|
</view> |
|
<view class="content-right"> |
|
<view>APP开发平台搭建外卖小程序返现H5定制一站式解决</view> |
|
<view class="category-box acea-row"> |
|
<view class="tag-item-b tag">商务合作</view> |
|
<view class="tag-item-y tag">场地租赁</view> |
|
</view> |
|
<view class="enterprise-price">¥20,000</view> |
|
</view> |
|
</view> |
|
<view class="user-info acea-row row-middle"> |
|
<image src="../../../static/images/cart.png" mode="" class="head-logo"></image> |
|
<view class="user-name">湖北知音动漫有限公司</view> |
|
</view> |
|
<view class="todetails">查看详情</view> |
|
</view> |
|
</view> |
|
<view class="company-box" v-if="active == 2"> |
|
<view class="business-list" v-for="(item,index) in companyList" :key="index" @tap="toCompanyDetail" :data-id="item.id"> |
|
<view :class="'business-lable' + (item.enterpriseType == 2 ? 'bg2' : '')"> |
|
{{item.enterpriseType == 1 ? '企业' : '个人'}} |
|
</view> |
|
<view class="business-con acea-row"> |
|
<view> |
|
<image :src="item.enterpriseLogo" class="logo-img"></image> |
|
</view> |
|
<view> |
|
<view class="title-h">{{item.enterpriseName}}</view> |
|
<view class="category-box acea-row"> |
|
<view class="tag-item-b tag">{{item.cname}}</view> |
|
<!-- <view class="tag-item-y tag"></view> --> |
|
</view> |
|
<view class="title-s">{{item.enterpriseTitle}}</view> |
|
</view> |
|
</view> |
|
<vie class="business-img acea-row row-around"> |
|
<image v-for="(item, index2) in item.imgPaths" :key="index2" mode="aspectFill" :src="item" |
|
v-if="index2 < 2"></image> |
|
</vie> |
|
</view> |
|
</view> |
|
</view> |
|
<view class="mask-box" v-if="showScreenDialog"> |
|
<view :class="'screen-dialog-box ' + (showScreenDialog ? 'move' : '')"> |
|
<view class="screen-list"> |
|
<view class="screen-item"> |
|
<view class="screen-title">所有服务</view> |
|
<view class="acea-row"> |
|
<view v-for="(item, index) in cagetoryList" :key="index" |
|
:class="'item ' + (cagetoryActive == index ? 'item-active' : '')" @tap="cagetoryClick" |
|
:data-i="index" :data-item="item">{{item.cagetoryName}}</view> |
|
</view> |
|
</view> |
|
<view class="screen-item"> |
|
<view class="screen-title">商家身份<text class="fz20">(所有商家均实名认证)</text></view> |
|
<view class="acea-row"> |
|
<view :class="'item ' + (enterpriseType == 2 ? 'item-active' : '')" @tap="businessChange" |
|
data-name="个人认证" data-type="2">个人认证</view> |
|
<view :class="'item ' + (enterpriseType == 1 ? 'item-active' : '')" @tap="businessChange" |
|
data-name="企业认证" data-type="1">企业认证</view> |
|
</view> |
|
</view> |
|
<view class="submit-box acea-row"> |
|
<view class="btn reset" @tap="resetClick">重置</view> |
|
<view class="btn finish" @tap="finishClick">完成</view> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
const app = getApp(); |
|
export default { |
|
data() { |
|
return { |
|
active: '1', |
|
showScreenDialog: false, |
|
cagetoryActive: "", |
|
//筛选企业/个人 |
|
resourceCagetoryId: '', |
|
// 分类列表 |
|
enterpriseType: '', |
|
//筛选分类 |
|
choseCagetory: '', |
|
choseBusiness: '', |
|
cName: "", |
|
|
|
companyList: [], |
|
} |
|
}, |
|
onLoad: function(options) { |
|
this.getCagetoryList(); |
|
}, |
|
methods: { |
|
tabClick(e) { |
|
this.setData({ |
|
active: e.currentTarget.dataset.i, |
|
}); |
|
if (e.currentTarget.dataset.i == 2) { |
|
this.getCompanyList(); |
|
} |
|
}, |
|
getCompanyList() { |
|
app.http('post', 'Enterprise/listEnterprise').then(res => { |
|
if (res.data.success) { |
|
this.setData({ |
|
companyList: res.data.data.content |
|
}); |
|
} |
|
}); |
|
|
|
}, |
|
getCagetoryList() { |
|
app.http('get', 'ResourcesCagetory/listResourcesCagetory').then(res => { |
|
if (res.data.success) { |
|
this.setData({ |
|
cagetoryList: res.data.data |
|
}); |
|
} |
|
}); |
|
}, |
|
showDialog() { |
|
this.setData({ |
|
showScreenDialog: true |
|
}); |
|
}, |
|
|
|
// 所有服务 |
|
cagetoryClick(e) { |
|
let item = e.currentTarget.dataset.item; |
|
let i = e.currentTarget.dataset.i; |
|
console.log(item); |
|
this.setData({ |
|
cagetoryActive: i, |
|
resourceCagetoryId: item.id, |
|
choseCagetory: item.cagetoryName |
|
}); |
|
}, |
|
|
|
// 个人/企业认证 |
|
businessChange(e) { |
|
let type = e.currentTarget.dataset.type; |
|
let name = e.currentTarget.dataset.name; |
|
this.setData({ |
|
choseBusiness: name, |
|
enterpriseType: type |
|
}); |
|
}, |
|
|
|
// 完成 |
|
finishClick() { |
|
this.setData({ |
|
showScreenDialog: false |
|
}); |
|
}, |
|
|
|
// 重置 |
|
resetClick() { |
|
this.setData({ |
|
cName: '', |
|
cagetoryActive: null, |
|
resourceCagetoryId: '', |
|
enterpriseType: '', |
|
choseBusiness: '', |
|
choseCagetory: '', |
|
}); |
|
}, |
|
// 企业列表 |
|
toCompanyDetail(e) { |
|
let id = e.currentTarget.dataset.id; |
|
uni.navigateTo({ |
|
url: '/pages/demandHall/enterprisePage/index?id=' + id |
|
}); |
|
}, |
|
} |
|
} |
|
</script> |
|
|
|
<style> |
|
.supplyHall-page { |
|
width: 100%; |
|
min-height: 100vh; |
|
background: #F5F5F5; |
|
font-size: 28rpx; |
|
} |
|
|
|
/* 导航栏 */ |
|
.navigation-box { |
|
width: 100%; |
|
height: auto; |
|
background: #fff; |
|
padding-top: 20rpx; |
|
} |
|
|
|
.search-box { |
|
width: 670rpx; |
|
height: 68rpx; |
|
border: 2rpx solid #FF5100; |
|
border-radius: 8rpx; |
|
margin: 0 auto; |
|
} |
|
|
|
.search-box image { |
|
width: 35rpx; |
|
height: 35rpx; |
|
margin: 0 29rpx 0 52rpx; |
|
} |
|
|
|
.search { |
|
margin-left: auto; |
|
width: 132rpx; |
|
height: 68rpx; |
|
background: linear-gradient(39deg, #FF5100 0%, #FFA074 100%); |
|
border-radius: 8rpx; |
|
color: #fff; |
|
} |
|
|
|
.resource-tabs { |
|
width: 100%; |
|
padding-top: 10rpx; |
|
background: #fff; |
|
border-bottom: 2rpx solid #EEEEEE; |
|
padding-left: 20rpx; |
|
} |
|
|
|
.tab { |
|
width: 150rpx; |
|
padding: 26rpx 0; |
|
font-size: 32rpx; |
|
color: #BFBFBF; |
|
position: relative; |
|
font-weight: 500; |
|
text-align: center; |
|
margin-left: 115rpx; |
|
} |
|
|
|
.tab::after { |
|
display: block; |
|
content: ''; |
|
width: 80rpx; |
|
height: 8rpx; |
|
border-radius: 8rpx; |
|
background: #FF5100; |
|
position: absolute; |
|
bottom: 0rpx; |
|
left: 50%; |
|
margin-left: -40rpx; |
|
opacity: 0; |
|
transform: scaleX(0); |
|
transition: all .2s ease, opacity .15s ease; |
|
} |
|
|
|
.tab-a { |
|
color: #FF5100; |
|
} |
|
|
|
.tab-a::after { |
|
opacity: 1; |
|
transform: scaleX(1); |
|
} |
|
|
|
.screen-box { |
|
height: 94rpx; |
|
padding: 0 38rpx; |
|
color: #666; |
|
background: #fff; |
|
margin-left: auto; |
|
} |
|
|
|
.screen-result { |
|
color: #FF5100; |
|
} |
|
|
|
.screen image { |
|
width: 27rpx; |
|
height: 27rpx; |
|
margin-left: 6rpx; |
|
} |
|
|
|
.supplyHall-box { |
|
width: 670rpx; |
|
margin: 0 auto; |
|
} |
|
|
|
.resource-box { |
|
width: 100%; |
|
} |
|
|
|
/* 企业 */ |
|
.lable-img { |
|
width: 60rpx; |
|
height: 32rpx; |
|
background: #FFFFFF; |
|
border-radius: 12rpx; |
|
} |
|
|
|
.user-info { |
|
margin: 8rpx 0 0rpx 20rpx; |
|
padding-bottom: 16rpx; |
|
} |
|
|
|
.user-name { |
|
height: 40rpx; |
|
color: #1D1D1D; |
|
margin: 0 10rpx 0 16rpx; |
|
} |
|
|
|
.tag { |
|
width: 112rpx; |
|
height: 36rpx; |
|
border-radius: 4rpx; |
|
font-size: 20rpx; |
|
margin-right: 8rpx; |
|
text-align: center; |
|
} |
|
|
|
.tag-item-b { |
|
border: 1rpx solid #3A9EFA; |
|
color: #3A9EFA; |
|
} |
|
|
|
.tag-item-y { |
|
border: 1px solid #FFAA00; |
|
color: #FFAA00; |
|
} |
|
|
|
.tag-item-p { |
|
color: #FC9367; |
|
border: 1px solid #FC9367; |
|
} |
|
|
|
.todetails { |
|
width: 148rpx; |
|
height: 44rpx; |
|
line-height: 44rpx; |
|
background: linear-gradient(141deg, #FFA782 0%, #FF6D31 100%); |
|
border-radius: 8rpx; |
|
position: absolute; |
|
right: 18rpx; |
|
bottom: 38rpx; |
|
text-align: center; |
|
color: #fff; |
|
} |
|
|
|
.enterprise-list { |
|
width: 670rpx; |
|
background: #FFFFFF; |
|
margin: 0 auto; |
|
margin-top: 32rpx; |
|
border-radius: 12rpx; |
|
position: relative; |
|
} |
|
|
|
.enterprise-price { |
|
height: 40rpx; |
|
font-size: 28rpx; |
|
color: #FF5100; |
|
} |
|
|
|
.head-logo { |
|
width: 72rpx; |
|
height: 72rpx; |
|
} |
|
|
|
.enterprise-con { |
|
width: 100%; |
|
height: 192rpx; |
|
margin: 6rpx 20rpx 10rpx 20rpx; |
|
} |
|
|
|
.enterprise-img { |
|
width: 150rpx; |
|
height: 192rpx; |
|
margin-right: 30rpx; |
|
} |
|
|
|
.content-right { |
|
width: 456rpx; |
|
position: relative; |
|
} |
|
|
|
.content-right>.supply-screen { |
|
margin: 16rpx 0 20rpx 0; |
|
} |
|
|
|
.company-box { |
|
width: 670rpx; |
|
margin: 0 auto; |
|
} |
|
|
|
.business-list { |
|
width: 670rpx; |
|
background: #FFFFFF; |
|
margin: 0 auto; |
|
margin-top: 32rpx; |
|
border-radius: 12rpx; |
|
position: relative; |
|
} |
|
|
|
.business-lable { |
|
width: 60rpx; |
|
height: 32rpx; |
|
background: rgba(88, 144, 255, 0.91); |
|
border-radius: 12rpx 0rpx 14rpx 0rpx; |
|
color: #fff; |
|
text-align: center; |
|
font-size: 20rpx; |
|
} |
|
|
|
.bg2 { |
|
background: rgba(255, 170, 0, 0.63); |
|
} |
|
|
|
|
|
.business-con { |
|
margin: 8rpx 20rpx 16rpx 20rpx; |
|
} |
|
|
|
.logo-img { |
|
width: 154rpx; |
|
height: 154rpx; |
|
margin-right: 20rpx; |
|
} |
|
|
|
.title-h { |
|
height: 44rpx; |
|
font-size: 32rpx; |
|
color: #1D1D1D; |
|
margin-bottom: 8rpx; |
|
} |
|
|
|
.title-s { |
|
width: 456rpx; |
|
height: 65rpx; |
|
font-size: 24rpx; |
|
color: #666666; |
|
margin-top: 10rpx; |
|
overflow: hidden; |
|
text-overflow: ellipsis; |
|
} |
|
|
|
.business-img { |
|
width: 630rpx; |
|
height: 176rpx; |
|
margin: 0 20rpx; |
|
padding-bottom: 30rpx; |
|
} |
|
|
|
.business-img image { |
|
width: 305rpx; |
|
height: 176rpx; |
|
border-radius: 8rpx; |
|
} |
|
|
|
.mask-box { |
|
width: 100%; |
|
height: 100vh; |
|
background: rgba(0, 0, 0, .6); |
|
position: fixed; |
|
top: 0; |
|
/* #ifdef H5 */ |
|
top: calc(88rpx + constant(safe-area-inset-top)); |
|
top: calc(88rpx + env(safe-area-inset-top)); |
|
/* #endif */ |
|
left: 0; |
|
z-index: 9999; |
|
} |
|
|
|
.screen-dialog-box { |
|
width: 602rpx; |
|
height: 100%; |
|
/* padding-bottom: 160rpx; */ |
|
overflow-y: scroll; |
|
background-color: #fff; |
|
position: absolute; |
|
top: 0; |
|
right: 0rpx; |
|
animation: move 200ms ease; |
|
} |
|
|
|
/* .move{ |
|
right: 0rpx; |
|
} */ |
|
@keyframes move { |
|
0% { |
|
transform: translateX(800rpx); |
|
} |
|
|
|
100% { |
|
transform: translateX(0rpx); |
|
} |
|
} |
|
|
|
.screen-item { |
|
width: 100%; |
|
padding: 0 38rpx; |
|
padding-bottom: 22rpx; |
|
border-bottom: 2rpx solid #EEEEEE; |
|
} |
|
|
|
.screen-title { |
|
font-size: 24rpx; |
|
color: #000; |
|
margin-bottom: 32rpx; |
|
} |
|
|
|
.screen-item { |
|
padding-top: 40rpx; |
|
} |
|
|
|
.screen-item .item { |
|
width: 162rpx; |
|
height: 48rpx; |
|
line-height: 48rpx; |
|
text-align: center; |
|
font-size: 24rpx; |
|
color: #666666; |
|
background: #F6F6F6; |
|
border-radius: 4rpx; |
|
margin-bottom: 20rpx; |
|
margin-right: 20rpx; |
|
} |
|
|
|
.screen-item .item:nth-child(3n) { |
|
margin-right: 0; |
|
} |
|
|
|
.screen-item .item-active { |
|
border: 2rpx solid #FF6E33; |
|
color: #FE7D26; |
|
background: #FDEFE6; |
|
} |
|
|
|
.across-line { |
|
width: 44rpx; |
|
height: 2rpx; |
|
background: #ACABAB; |
|
margin: 0 12rpx; |
|
} |
|
|
|
.low-price { |
|
width: 228rpx; |
|
height: 60rpx; |
|
background: #F6F5F5; |
|
border-radius: 4rpx; |
|
} |
|
|
|
.low-price input { |
|
width: 100%; |
|
height: 100%; |
|
text-align: center; |
|
} |
|
|
|
.fz20 { |
|
font-size: 20rpx; |
|
color: #393939; |
|
} |
|
|
|
.submit-box { |
|
width: 602rpx; |
|
height: 100rpx; |
|
box-shadow: 2rpx 0px 12rpx rgba(0, 0, 0, 0.16); |
|
position: fixed; |
|
bottom: 0; |
|
right: 0; |
|
} |
|
|
|
.submit-box .btn { |
|
width: 50%; |
|
height: 100%; |
|
line-height: 100rpx; |
|
text-align: center; |
|
} |
|
|
|
.submit-box .finish { |
|
background: #FF660C; |
|
color: #fff; |
|
} |
|
</style>
|
|
|