{ | { | ||||
"pages":[ | |||||
"pages": [ | |||||
"pages/index/index", | "pages/index/index", | ||||
"pages/logs/logs", | "pages/logs/logs", | ||||
"pages/releaseModule/index", | "pages/releaseModule/index", | ||||
"pages/myModule/index", | "pages/myModule/index", | ||||
"pages/msgModule/index" | |||||
"pages/msgModule/index", | |||||
"pages/index/components/listDetails/Details" | |||||
], | ], | ||||
"usingComponents": { | "usingComponents": { | ||||
"tabBar": "/components/tabbar/tabbar", | "tabBar": "/components/tabbar/tabbar", | ||||
"listItem":"/components/listItem/listItem", | |||||
"van-loading": "/miniprogram_npm/@vant/weapp/loading", | "van-loading": "/miniprogram_npm/@vant/weapp/loading", | ||||
"van-icon": "/miniprogram_npm/@vant/weapp/icon", | "van-icon": "/miniprogram_npm/@vant/weapp/icon", | ||||
"van-row": "/miniprogram_npm/@vant/weapp/row", | "van-row": "/miniprogram_npm/@vant/weapp/row", | ||||
"van-col": "/miniprogram_npm/@vant/weapp/col" | "van-col": "/miniprogram_npm/@vant/weapp/col" | ||||
}, | }, | ||||
"window":{ | |||||
"backgroundTextStyle":"light", | |||||
"window": { | |||||
"backgroundTextStyle": "light", | |||||
"navigationBarBackgroundColor": "#fff", | "navigationBarBackgroundColor": "#fff", | ||||
"navigationBarTitleText": "业务交流通", | "navigationBarTitleText": "业务交流通", | ||||
"navigationBarTextStyle":"black" | |||||
"navigationBarTextStyle": "black" | |||||
}, | }, | ||||
"sitemapLocation": "sitemap.json", | "sitemapLocation": "sitemap.json", | ||||
"useExtendedLib": { | "useExtendedLib": { | ||||
"kbone": true, | "kbone": true, | ||||
"weui": true | "weui": true | ||||
} | } | ||||
} | |||||
} |
} | } | ||||
.not-data .not-info{ | .not-data .not-info{ | ||||
color: #b3bfcb; | color: #b3bfcb; | ||||
} | |||||
/* 通用page容器 */ | |||||
.page-container{ | |||||
background: #f5f9ff; | |||||
padding: 20rpx; | |||||
min-height: calc(100vh - 130rpx); | |||||
padding-bottom: 120rpx; | |||||
font-size: 26rpx; | |||||
} | |||||
/* 通用渐变感兴趣的 */ | |||||
.view-interested{ | |||||
background: #c9d6ff; /* fallback for old browsers */ | |||||
background: -webkit-linear-gradient(to right, #c9d6ff, #f4f9ff); /* Chrome 10-25, Safari 5.1-6 */ | |||||
background: linear-gradient(to right, #c9d6ff, #f4f9ff); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ | |||||
font-size: 24rpx; | |||||
height: 52rpx; | |||||
line-height: 52rpx; | |||||
color: #5e73e5; | |||||
box-sizing: border-box; | |||||
padding-left: 28rpx; | |||||
border-radius: 15rpx 0 0 0; | |||||
} | |||||
/* 通用list */ | |||||
/* list块 */ | |||||
.list-view { | |||||
background: #fff; | |||||
/* height: 315rpx; */ | |||||
border-radius: 20rpx; | |||||
margin-bottom: 20rpx; | |||||
padding: 28rpx 18rpx; | |||||
position: relative; | |||||
} | |||||
.list-loading { | |||||
margin-top: 15vh; | |||||
} | |||||
.list-finished{ | |||||
color: #8c97c0; | |||||
} | |||||
.list-finished .finished-img{ | |||||
width: 25rpx; | |||||
height: 25rpx; | |||||
margin-right: 10rpx; | |||||
position: relative; | |||||
top: 1rpx; | |||||
} | } |
// components/listItem/listItem.js | |||||
Component({ | |||||
/** | |||||
* 组件的属性列表 | |||||
*/ | |||||
properties: { | |||||
item: { | |||||
type: Object, | |||||
}, | |||||
// index => 首页 detatil => 详情 home => 个人主页 | |||||
pageStatus: { | |||||
type: String, | |||||
default: 'index', | |||||
}, | |||||
}, | |||||
/** | |||||
* 组件的初始数据 | |||||
*/ | |||||
data: { | |||||
// 是否收藏 | |||||
isCollect:false, | |||||
}, | |||||
/** | |||||
* 组件的方法列表 | |||||
*/ | |||||
methods: { | |||||
// 进入详情 | |||||
goDetails(e) { | |||||
let dataset = e.currentTarget.dataset; | |||||
this.triggerEvent('getItem', dataset.item); | |||||
}, | |||||
} | |||||
}) |
{ | |||||
"component": true, | |||||
"usingComponents": {} | |||||
} |
<!-- components/listItem/listItem.wxml --> | |||||
<!-- 平台认证 --> | |||||
<view class="list-certification" wx:if="{{ item.isPartner }}"> | |||||
<image class="certification-img" src="/images/home/certification-icon.png" /> | |||||
平台认证 | |||||
</view> | |||||
<!-- 头部 --> | |||||
<view class="list-avatar"> | |||||
<view class="list-chatHeads fl"> | |||||
<image class="chatHeads-img" src="{{ item.chatHeads }}" /> | |||||
</view> | |||||
<view class="list-nick-name fl">{{ item.nickName }}</view> | |||||
<view class="list-home fl"> | |||||
<image class="home-img" src="{{ item.isPartner ? '/images/home/company-icon.png' : '/images/home/personal-icon.png' }}" /> | |||||
主页 | |||||
</view> | |||||
</view> | |||||
<!-- 内容 --> | |||||
<view class="list-content"> | |||||
<view bindtap="goDetails" data-item="{{ item }}"> | |||||
<!-- 详情 --> | |||||
<view> | |||||
<text space class="list-details-text need">{{ item.info }}</text> | |||||
</view> | |||||
<!-- 标签 --> | |||||
<view class="list-tag-view"> | |||||
<view class="list-tag" wx:for="{{ item.type }}" wx:for-item="tag" wx:key="*this"> | |||||
{{ tag }} | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<!-- 底部 --> | |||||
<view class="list-foot {{ pageStatus == 'detatil' ? 'is-details-page' : '' }}"> | |||||
<view class="fl list-foot-text-lf"> | |||||
<image class="time-img" src="/images/home/time-icon.png" /> | |||||
{{ item.createdOn }} | |||||
</view> | |||||
<view class="fl list-foot-text-lf"> | |||||
<image class="browse-img" src="/images/home/browse-icon.png" /> | |||||
{{ item.pageView }}浏览量 | |||||
</view> | |||||
<view class="fl list-collect-view" wx:if="{{ pageStatus == 'detatil' }}"> | |||||
<image class="collect-img" src="/images/home/is-collect.png" wx:if="{{ isCollect }}"/> | |||||
<image class="collect-img" src="/images/home/not-collect.png" wx:else/> | |||||
收藏 | |||||
</view> | |||||
<view class="fr list-foot-text-chat"> | |||||
<image class="chat-img" src="/images/home/chat-icon.png" /> | |||||
聊一聊 | |||||
</view> | |||||
</view> | |||||
</view> |
/* components/listItem/listItem.wxss */ | |||||
.fl { | |||||
float: left; | |||||
} | |||||
.fr { | |||||
float: right; | |||||
} | |||||
/* list块-头部 */ | |||||
.list-avatar { | |||||
height: 60rpx; | |||||
line-height: 60rpx; | |||||
} | |||||
.list-chatHeads{ | |||||
width: 60rpx; | |||||
height: 60rpx; | |||||
border-radius: 50%; | |||||
background: #999; | |||||
} | |||||
.list-chatHeads .chatHeads-img{ | |||||
width: 100%; | |||||
height: 100%; | |||||
border-radius: 50%; | |||||
} | |||||
/* 平台认证 */ | |||||
.list-certification { | |||||
position: absolute; | |||||
right: 0; | |||||
top: 22rpx; | |||||
width: 130rpx; | |||||
height: 40rpx; | |||||
line-height: 40rpx; | |||||
background-color: #fff0be; | |||||
border-radius: 18rpx 0 0 18rpx; | |||||
text-align: center; | |||||
color: #ef6f10; | |||||
font-size: 20rpx; | |||||
} | |||||
.list-certification .certification-img{ | |||||
width: 26rpx; | |||||
height: 27rpx; | |||||
position: relative; | |||||
top: 6rpx; | |||||
} | |||||
/* 名称 */ | |||||
.list-nick-name { | |||||
margin-left: 15rpx; | |||||
max-width: 300rpx; | |||||
white-space:nowrap; | |||||
overflow:hidden; | |||||
text-overflow:ellipsis; | |||||
font-weight: bold; | |||||
} | |||||
/* 主页 */ | |||||
.list-home { | |||||
color: #827de5; | |||||
border-radius: 16px; | |||||
border: solid 1px #827de5; | |||||
width: 96rpx; | |||||
height: 32rpx; | |||||
line-height: 32rpx; | |||||
font-size: 20rpx; | |||||
text-align: center; | |||||
margin-top: 15rpx; | |||||
margin-left: 15rpx; | |||||
} | |||||
.list-home .home-img{ | |||||
width: 22rpx; | |||||
height: 23rpx; | |||||
position: relative; | |||||
top: 2rpx; | |||||
} | |||||
/* 内容容器 */ | |||||
.list-content { | |||||
padding-left: 75rpx; | |||||
padding-right: 15rpx; | |||||
} | |||||
/* 详情 */ | |||||
.list-details-text{ | |||||
margin: 15rpx 0; | |||||
word-break: break-all; | |||||
text-overflow: ellipsis; | |||||
overflow: hidden; | |||||
display: -webkit-box; | |||||
} | |||||
.list-details-text.need { | |||||
-webkit-line-clamp: 3; | |||||
-webkit-box-orient: vertical; | |||||
} | |||||
/* 标签 */ | |||||
.list-tag-view { | |||||
margin-bottom: 20rpx; | |||||
} | |||||
.list-tag-view .list-tag{ | |||||
display: inline-block; | |||||
width: 120rpx; | |||||
height: 36rpx; | |||||
border-radius: 18rpx; | |||||
text-align: center; | |||||
line-height: 36rpx; | |||||
font-size: 20rpx; | |||||
margin-right: 15rpx; | |||||
} | |||||
.list-tag-view .list-tag:nth-child(1){ | |||||
background-color: #e4f1f7; | |||||
color: #3d97e6; | |||||
} | |||||
.list-tag-view .list-tag:nth-child(2){ | |||||
background-color: #f7eee4; | |||||
color: #f29f61; | |||||
} | |||||
.list-tag-view .list-tag:nth-child(3){ | |||||
background-color: #eafee3; | |||||
color: #80c269; | |||||
} | |||||
/* 底部 */ | |||||
.list-foot { | |||||
height: 62rpx; | |||||
line-height: 62rpx; | |||||
} | |||||
.list-foot-text-lf{ | |||||
color: #999; | |||||
font-size: 22rpx; | |||||
margin-right: 40rpx; | |||||
} | |||||
.list-foot-text-lf .browse-img{ | |||||
width: 24rpx; | |||||
height: 18rpx; | |||||
} | |||||
.list-foot-text-lf .time-img{ | |||||
width: 24rpx; | |||||
height: 24rpx; | |||||
position: relative; | |||||
top: 1rpx; | |||||
} | |||||
.list-foot-text-chat { | |||||
height: 62rpx; | |||||
width: 180rpx; | |||||
background-color: #5e73e5; | |||||
box-shadow: -1px 3px 12px 4px | |||||
rgba(62, 95, 179, 0.14); | |||||
border-radius: 31rpx; | |||||
text-align: center; | |||||
color: #fff; | |||||
font-size: 24rpx; | |||||
} | |||||
.list-foot-text-chat .chat-img{ | |||||
width: 28rpx; | |||||
height: 28rpx; | |||||
position: relative; | |||||
top: 4rpx; | |||||
left: -10rpx; | |||||
} | |||||
.list-collect-view .collect-img { | |||||
width: 22rpx; | |||||
height: 19rpx; | |||||
} | |||||
.list-collect-view { | |||||
color: #e16531; | |||||
font-size: 22rpx; | |||||
position: relative; | |||||
top: 1rpx; | |||||
} | |||||
.is-details-page .list-foot-text-lf{ | |||||
margin-right: 20rpx; | |||||
} |
// pages/index/components/listDetails/Details.js | |||||
const app = getApp() | |||||
const $request = require('../../../../utils/request.js'); | |||||
const $util = require('../../../../utils/util.js'); | |||||
Page({ | |||||
/** | |||||
* 页面的初始数据 | |||||
*/ | |||||
data: { | |||||
// 页面Loading | |||||
pageLoading: false, | |||||
// 路由接受的参数 | |||||
currentData: {}, | |||||
// 感兴趣的需求---- | |||||
// item行加载 | |||||
itemLoading: false, | |||||
// 数据是否加载完成 | |||||
isFinished: false, | |||||
listData: [], | |||||
page: 1, | |||||
size: 10, | |||||
total: 0, | |||||
// 是否加载数据,true加载,false不加载 | |||||
onRefresh: true, | |||||
currentIndex: 0, | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面加载 | |||||
*/ | |||||
onLoad(option) { | |||||
const eventChannel = this.getOpenerEventChannel() | |||||
// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据 | |||||
eventChannel.on('acceptDataFromOpenerPage', data => { | |||||
this.setData({ | |||||
currentData: data.listDetail, | |||||
type: data.listDetail.type.join(), | |||||
pageLoading: true, | |||||
}) | |||||
this.getListData(); | |||||
}) | |||||
}, | |||||
// 热门详情点击 | |||||
goDetails(e){ | |||||
this.setData({ | |||||
currentData: e.detail, | |||||
type: e.detail.type.join(), | |||||
pageLoading: true, | |||||
listData:[], | |||||
page:1, | |||||
onRefresh:true, | |||||
}) | |||||
this.getListData(); | |||||
}, | |||||
// 获取list数据 | |||||
getListData() { | |||||
let { page, size, type } = this.data; | |||||
$request.get('/businessCommunicationDemand/getDemandByKeywordOrType.action', | |||||
{ page, size, type, isInterest: 1 } | |||||
).then(res => { | |||||
this.setData({ | |||||
pageLoading: false, | |||||
}) | |||||
let tempListData = this.data.listData; | |||||
if (res.status == 0) { | |||||
let datas = res.data; | |||||
// 先push数据 | |||||
tempListData.push(...datas.demandList); | |||||
tempListData.forEach(el => { | |||||
el.createdOn = $util.formatTime(new Date(el.createdOn), true); | |||||
if (typeof el.type == 'string') { | |||||
el.type = el.type.split(','); | |||||
} | |||||
}) | |||||
// 设置总数 | |||||
this.setData({ | |||||
listData: tempListData, | |||||
total: res.data.total, | |||||
}) | |||||
// 如果数据大于了返回的总数 | |||||
if (tempListData.length >= this.data.total) { | |||||
// 停止累加数据 | |||||
this.setData({ | |||||
onRefresh: false, | |||||
itemLoading: false, | |||||
isFinished: true, | |||||
}) | |||||
} else { | |||||
this.setData({ | |||||
onRefresh: true, | |||||
itemLoading: false, | |||||
isFinished: false, | |||||
page: page + 1 | |||||
}) | |||||
} | |||||
console.log('-------------详情页 beg-------------------') | |||||
console.log(this.data.listData); | |||||
console.log('-------------详情页 end-------------------') | |||||
} | |||||
}).catch(error => { | |||||
console.log(error, 'error appletLogin') | |||||
}) | |||||
}, | |||||
/* | |||||
* 页面上拉触底事件的处理函数 | |||||
*/ | |||||
onReachBottom() { | |||||
if (this.data.onRefresh) { | |||||
this.setData({ | |||||
itemLoading: true | |||||
}) | |||||
this.getListData(); | |||||
} | |||||
}, | |||||
/** | |||||
* 用户点击右上角分享 | |||||
*/ | |||||
onShareAppMessage: function () { | |||||
} | |||||
}) |
{ | |||||
"usingComponents": {} | |||||
} |
<!-- pages/index/components/listDetails/Details.wxml --> | |||||
<view class="details-page page-container"> | |||||
<view class="list-loading text-center" wx:if="{{ pageLoading }}"> | |||||
<van-loading size="24px">加载中...</van-loading> | |||||
</view> | |||||
<view wx:else> | |||||
<view class="list-view"> | |||||
<listItem item="{{ currentData }}" pageStatus="detatil"/> | |||||
</view> | |||||
<view class="view-interested">你可能感兴趣的需求</view> | |||||
<view class="list-view" wx:for="{{ listData }}" wx:key="*this"> | |||||
<listItem item="{{ item }}" bind:getItem="goDetails"/> | |||||
</view> | |||||
<view class="text-center" wx:if="{{ itemLoading }}"> | |||||
<van-loading size="24px">加载中...</van-loading> | |||||
</view> | |||||
<view class="list-finished text-center" wx:if="{{ isFinished }}"> | |||||
<image class="finished-img" src="/images/home/finished-icon.png" /> | |||||
没有更多啦~ | |||||
</view> | |||||
</view> | |||||
<tabBar currentIndex="{{currentIndex}}"></tabBar> | |||||
</view> |
/* pages/index/components/listDetails/Details.wxss */ |
// 获取应用实例 | // 获取应用实例 | ||||
const app = getApp() | const app = getApp() | ||||
const $request = require('../../utils/request.js'); | const $request = require('../../utils/request.js'); | ||||
const $util = require('../../utils/util.js'); | |||||
Page({ | Page({ | ||||
data: { | data: { | ||||
currentIndex: 0, | currentIndex: 0, | ||||
}) | }) | ||||
this.toSearch(); | this.toSearch(); | ||||
}, | }, | ||||
// 进入详情 | |||||
goDetails(e) { | |||||
wx.navigateTo({ | |||||
url: '/pages/index/components/listDetails/Details', | |||||
success: function (res) { | |||||
// 通过eventChannel向被打开页面传送数据 | |||||
res.eventChannel.emit('acceptDataFromOpenerPage', { listDetail: e.detail }) | |||||
} | |||||
}) | |||||
}, | |||||
// 获取tab数据 | // 获取tab数据 | ||||
getAllType() { | getAllType() { | ||||
$request.get('/businessCommunicationType/getAllType.action').then(res => { | $request.get('/businessCommunicationType/getAllType.action').then(res => { | ||||
console.log(res); | |||||
if (res.status == 0) { | if (res.status == 0) { | ||||
let { tabData, moreTabOption } = this.data; | let { tabData, moreTabOption } = this.data; | ||||
let datas = res.data; | let datas = res.data; | ||||
type = ""; | type = ""; | ||||
} | } | ||||
$request.get('/businessCommunicationDemand/getDemandByKeywordOrType.action', | $request.get('/businessCommunicationDemand/getDemandByKeywordOrType.action', | ||||
{ page, size, keyword, type } | |||||
{ page, size, keyword, type,isInterest:0 } | |||||
).then(res => { | ).then(res => { | ||||
// console.log(res); | // console.log(res); | ||||
this.setData({ | this.setData({ | ||||
// 先push数据 | // 先push数据 | ||||
tempListData.push(...datas.demandList); | tempListData.push(...datas.demandList); | ||||
tempListData.forEach(el => { | tempListData.forEach(el => { | ||||
el.createdOn = $util.formatTime(new Date(el.createdOn),true); | |||||
if (typeof el.type == 'string') { | if (typeof el.type == 'string') { | ||||
el.type = el.type.split(','); | el.type = el.type.split(','); | ||||
} | } | ||||
page: page + 1 | page: page + 1 | ||||
}) | }) | ||||
} | } | ||||
console.log('-------------首页 beg-------------------') | |||||
console.log(this.data.listData); | console.log(this.data.listData); | ||||
console.log('-------------首页 end-------------------') | |||||
} | } | ||||
}).catch(error => { | }).catch(error => { | ||||
console.log(error, 'error appletLogin') | console.log(error, 'error appletLogin') | ||||
*/ | */ | ||||
getPhoneNumber(e) { | getPhoneNumber(e) { | ||||
if (!!e.detail.iv && !!e.detail.encryptedData) { | if (!!e.detail.iv && !!e.detail.encryptedData) { | ||||
const iv = e.detail.iv | |||||
const encryptedData = e.detail.encryptedData | |||||
this.appletLogin(iv, encryptedData) | |||||
const iv = e.detail.iv | |||||
const encryptedData = e.detail.encryptedData | |||||
this.appletLogin(iv, encryptedData) | |||||
} else { | } else { | ||||
wx.showToast({ | |||||
title: '请允许授权,获得更好的服务哦', | |||||
icon: "none", | |||||
duration: 3000 | |||||
}) | |||||
wx.showToast({ | |||||
title: '请允许授权,获得更好的服务哦', | |||||
icon: "none", | |||||
duration: 3000 | |||||
}) | |||||
} | } | ||||
}, | }, | ||||
/** | /** |
<!-- index.wxml --> | <!-- index.wxml --> | ||||
<view class="home-page"> | |||||
<view class="home-page page-container"> | |||||
<!-- 搜索块 --> | <!-- 搜索块 --> | ||||
<view class="search-view"> | <view class="search-view"> | ||||
<view class="serach-input-view"> | <view class="serach-input-view"> | ||||
<view wx:else> | <view wx:else> | ||||
<view class="not-data" wx:if="{{ listData.length < 1 }}"> | <view class="not-data" wx:if="{{ listData.length < 1 }}"> | ||||
<image class="not-data-img" src="/images/home/not-data.png" /> | <image class="not-data-img" src="/images/home/not-data.png" /> | ||||
<view class="not-info" wx:if="{{ currentTab == 'all' }}"> | |||||
<view class="not-info" wx:if="{{ currentTab == 'all ' }}"> | |||||
抱歉,暂无任何需求 | 抱歉,暂无任何需求 | ||||
</view> | </view> | ||||
<view class="not-info" wx:else> | <view class="not-info" wx:else> | ||||
</view> | </view> | ||||
<view wx:else> | <view wx:else> | ||||
<view class="list-view" wx:for="{{ listData }}" wx:key="*this"> | <view class="list-view" wx:for="{{ listData }}" wx:key="*this"> | ||||
<!-- 平台认证 --> | |||||
<view class="list-certification" wx:if="{{ item.isPartner }}"> | |||||
<image class="certification-img" src="/images/home/certification-icon.png" /> | |||||
平台认证 | |||||
</view> | |||||
<!-- 头部 --> | |||||
<view class="list-avatar"> | |||||
<view class="list-chatHeads fl"> | |||||
<image class="chatHeads-img" src="{{ item.chatHeads }}" /> | |||||
</view> | |||||
<view class="list-nick-name fl">{{ item.nickName }}</view> | |||||
<view class="list-home fl"> | |||||
<image class="home-img" src="{{ item.isPartner ? '/images/home/company-icon.png' : '/images/home/personal-icon.png' }}" /> | |||||
主页 | |||||
</view> | |||||
</view> | |||||
<!-- 内容 --> | |||||
<view class="list-content"> | |||||
<!-- 详情 --> | |||||
<view> | |||||
<text space class="list-details-text">{{ item.info }}</text> | |||||
</view> | |||||
<!-- 标签 --> | |||||
<view class="list-tag-view"> | |||||
<view class="list-tag" wx:for="{{ item.type }}" wx:for-item="tag" wx:key="*this"> | |||||
{{ tag }} | |||||
</view> | |||||
</view> | |||||
<!-- 底部 --> | |||||
<view class="list-foot"> | |||||
<view class="fl list-foot-text-lf"> | |||||
<image class="time-img" src="/images/home/time-icon.png" /> | |||||
2021-07-23 | |||||
</view> | |||||
<view class="fl list-foot-text-lf"> | |||||
<image class="browse-img" src="/images/home/browse-icon.png" /> | |||||
897浏览量 | |||||
</view> | |||||
<view class="fr list-foot-text-chat"> | |||||
<image class="chat-img" src="/images/home/chat-icon.png" /> | |||||
聊一聊 | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<listItem item="{{ item }}" bind:getItem="goDetails"/> | |||||
</view> | </view> | ||||
<view class="text-center" wx:if="{{ itemLoading }}"> | <view class="text-center" wx:if="{{ itemLoading }}"> | ||||
<van-loading size="24px">加载中...</van-loading> | <van-loading size="24px">加载中...</van-loading> |
/**index.wxss**/ | /**index.wxss**/ | ||||
.home-page { | |||||
background: #f5f9ff; | |||||
padding: 20rpx; | |||||
min-height: 100%; | |||||
padding-bottom: 120rpx; | |||||
font-size: 26rpx; | |||||
} | |||||
/* 搜索块 */ | /* 搜索块 */ | ||||
.search-view { | .search-view { | ||||
.tab-view .tab-menu .van-ellipsis{ | .tab-view .tab-menu .van-ellipsis{ | ||||
display: none; | display: none; | ||||
} | } | ||||
/* list块 */ | |||||
.list-view { | |||||
background: #fff; | |||||
/* height: 315rpx; */ | |||||
border-radius: 20rpx; | |||||
margin-bottom: 20rpx; | |||||
padding: 28rpx 18rpx; | |||||
position: relative; | |||||
} | |||||
.list-loading { | |||||
margin-top: 15vh; | |||||
} | |||||
.list-finished{ | |||||
color: #8c97c0; | |||||
} | |||||
.list-finished .finished-img{ | |||||
width: 25rpx; | |||||
height: 25rpx; | |||||
margin-right: 10rpx; | |||||
position: relative; | |||||
top: 1rpx; | |||||
} | |||||
/* list块-头部 */ | |||||
.list-avatar { | |||||
height: 60rpx; | |||||
line-height: 60rpx; | |||||
} | |||||
.list-chatHeads{ | |||||
width: 60rpx; | |||||
height: 60rpx; | |||||
border-radius: 50%; | |||||
background: #999; | |||||
} | |||||
.list-chatHeads .chatHeads-img{ | |||||
width: 100%; | |||||
height: 100%; | |||||
border-radius: 50%; | |||||
} | |||||
/* 平台认证 */ | |||||
.list-certification { | |||||
position: absolute; | |||||
right: 0; | |||||
top: 22rpx; | |||||
width: 130rpx; | |||||
height: 40rpx; | |||||
line-height: 40rpx; | |||||
background-color: #fff0be; | |||||
border-radius: 18rpx 0 0 18rpx; | |||||
text-align: center; | |||||
color: #ef6f10; | |||||
font-size: 20rpx; | |||||
} | |||||
.list-certification .certification-img{ | |||||
width: 26rpx; | |||||
height: 27rpx; | |||||
position: relative; | |||||
top: 6rpx; | |||||
} | |||||
/* 名称 */ | |||||
.list-nick-name { | |||||
margin-left: 15rpx; | |||||
max-width: 300rpx; | |||||
white-space:nowrap; | |||||
overflow:hidden; | |||||
text-overflow:ellipsis; | |||||
font-weight: bold; | |||||
} | |||||
/* 主页 */ | |||||
.list-home { | |||||
color: #827de5; | |||||
border-radius: 16px; | |||||
border: solid 1px #827de5; | |||||
width: 96rpx; | |||||
height: 32rpx; | |||||
line-height: 32rpx; | |||||
font-size: 20rpx; | |||||
text-align: center; | |||||
margin-top: 15rpx; | |||||
margin-left: 15rpx; | |||||
} | |||||
.list-home .home-img{ | |||||
width: 22rpx; | |||||
height: 23rpx; | |||||
position: relative; | |||||
top: 2rpx; | |||||
} | |||||
/* 内容容器 */ | |||||
.list-content { | |||||
padding-left: 75rpx; | |||||
padding-right: 15rpx; | |||||
} | |||||
/* 详情 */ | |||||
.list-details-text{ | |||||
margin: 15rpx 0; | |||||
word-break: break-all; | |||||
text-overflow: ellipsis; | |||||
overflow: hidden; | |||||
display: -webkit-box; | |||||
-webkit-line-clamp: 3; | |||||
-webkit-box-orient: vertical; | |||||
} | |||||
/* 标签 */ | |||||
.list-tag-view { | |||||
margin-bottom: 20rpx; | |||||
} | |||||
.list-tag-view .list-tag{ | |||||
display: inline-block; | |||||
width: 120rpx; | |||||
height: 36rpx; | |||||
border-radius: 18rpx; | |||||
text-align: center; | |||||
line-height: 36rpx; | |||||
font-size: 20rpx; | |||||
margin-right: 15rpx; | |||||
} | |||||
.list-tag-view .list-tag:nth-child(1){ | |||||
background-color: #e4f1f7; | |||||
color: #3d97e6; | |||||
} | |||||
.list-tag-view .list-tag:nth-child(2){ | |||||
background-color: #f7eee4; | |||||
color: #f29f61; | |||||
} | |||||
.list-tag-view .list-tag:nth-child(3){ | |||||
background-color: #eafee3; | |||||
color: #80c269; | |||||
} | |||||
/* 底部 */ | |||||
.list-foot { | |||||
height: 62rpx; | |||||
line-height: 62rpx; | |||||
} | |||||
.list-foot-text-lf{ | |||||
color: #999; | |||||
font-size: 24rpx; | |||||
margin-right: 40rpx; | |||||
} | |||||
.list-foot-text-lf .browse-img{ | |||||
width: 24rpx; | |||||
height: 18rpx; | |||||
} | |||||
.list-foot-text-lf .time-img{ | |||||
width: 24rpx; | |||||
height: 24rpx; | |||||
position: relative; | |||||
top: 1rpx; | |||||
} | |||||
.list-foot-text-chat { | |||||
height: 62rpx; | |||||
width: 180rpx; | |||||
background-color: #5e73e5; | |||||
box-shadow: -1px 3px 12px 4px | |||||
rgba(62, 95, 179, 0.14); | |||||
border-radius: 31rpx; | |||||
text-align: center; | |||||
color: #fff; | |||||
font-size: 24rpx; | |||||
} | |||||
.list-foot-text-chat .chat-img{ | |||||
width: 28rpx; | |||||
height: 28rpx; | |||||
position: relative; | |||||
top: 4rpx; | |||||
left: -10rpx; | |||||
} |
// pages/release/release.js | |||||
// 获取应用实例 | |||||
// pages/index/components/listDetails/Details.js | |||||
const app = getApp() | const app = getApp() | ||||
const $request = require('../../utils/request.js'); | |||||
Page({ | Page({ | ||||
data: { | |||||
currentIndex: 1 | |||||
}, | |||||
/** | |||||
* 页面的初始数据 | |||||
*/ | |||||
data: { | |||||
currentIndex: 1, | |||||
pageLoading:false, | |||||
tags:[], | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面加载 | |||||
*/ | |||||
onLoad() { | |||||
this.getTags(); | |||||
}, | |||||
getTags(){ | |||||
}, | |||||
/** | |||||
* 用户点击右上角分享 | |||||
*/ | |||||
onShareAppMessage: function () { | |||||
} | |||||
}) | }) |
"userConfirmedBundleSwitch": false, | "userConfirmedBundleSwitch": false, | ||||
"packNpmManually": true, | "packNpmManually": true, | ||||
"packNpmRelationList": [ | "packNpmRelationList": [ | ||||
{ | |||||
{ | |||||
"packageJsonPath": "./package.json", | "packageJsonPath": "./package.json", | ||||
"miniprogramNpmDistDir": "./miniprogram_npm/" | "miniprogramNpmDistDir": "./miniprogram_npm/" | ||||
} | |||||
} | |||||
], | ], | ||||
"minifyWXSS": true, | "minifyWXSS": true, | ||||
"showES6CompileOption": false | "showES6CompileOption": false |
const formatTime = date => { | |||||
const formatTime = (date,notHour) => { | |||||
const year = date.getFullYear() | const year = date.getFullYear() | ||||
const month = date.getMonth() + 1 | const month = date.getMonth() + 1 | ||||
const day = date.getDate() | const day = date.getDate() | ||||
const hour = date.getHours() | const hour = date.getHours() | ||||
const minute = date.getMinutes() | const minute = date.getMinutes() | ||||
const second = date.getSeconds() | const second = date.getSeconds() | ||||
return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}` | |||||
if(notHour){ | |||||
return `${[year, month, day].map(formatNumber).join('/')}` | |||||
}else{ | |||||
return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}` | |||||
} | |||||
} | } | ||||
const formatNumber = n => { | const formatNumber = n => { |