Commit 8127fd2b by 谢中龙

修改视频图片

parent 8db28035
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<video id="myVideo" <video id="myVideo"
class="item-img video-cover" class="item-img video-cover"
src="{{indexUrl}}" src="{{indexUrl}}"
muted muted="{{true}}"
wx:if="{{utils.isVideo(indexUrl)}}"></video> wx:if="{{utils.isVideo(indexUrl)}}"></video>
<view class="item-title-box"> <view class="item-title-box">
......
...@@ -85,8 +85,9 @@ wxService.page({ ...@@ -85,8 +85,9 @@ wxService.page({
wxService.post(`/member/minaLogin`, param).then(response=>{ wxService.post(`/member/minaLogin`, param).then(response=>{
let dataResp = response.data.data let dataResp = response.data.data
wx.setStorageSync('token', dataResp.token) wx.setStorageSync('token', dataResp.token)
dataResp.memberActivateStatus = true;
wx.setStorageSync('_baseUserInfo', dataResp) wx.setStorageSync('_baseUserInfo', dataResp)
this.goUserCenter() this.goUserCenter();
return Promise.resolve({ response }) return Promise.resolve({ response })
}).catch(err=>{ }).catch(err=>{
this.goUserCenter() this.goUserCenter()
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
</view> </view>
</view> </view>
<view class="consumption-tips">-香烟与服务类商品不计分-</view> <!-- <view class="consumption-tips">-香烟与服务类商品不计分-</view> -->
</view> </view>
<!--goHome--> <!--goHome-->
......
...@@ -25,6 +25,7 @@ wxService.page({ ...@@ -25,6 +25,7 @@ wxService.page({
currentShareContent: null, currentShareContent: null,
fromZc: false, fromZc: false,
scene:'', //触点参数 scene:'', //触点参数
autoplay : true
}, },
handelToHome() { handelToHome() {
wx.reLaunch({ wx.reLaunch({
...@@ -81,11 +82,7 @@ wxService.page({ ...@@ -81,11 +82,7 @@ wxService.page({
} }
}, },
swiperChange(e) {
this.setData({
swiperCurrent: e.detail.current
})
},
// 立即开通plus // 立即开通plus
openPlus(){ openPlus(){
...@@ -374,6 +371,46 @@ wxService.page({ ...@@ -374,6 +371,46 @@ wxService.page({
} }
}) })
}, },
//点击播放
onVideoPlay(e){
this.setData({
autoplay : false,
})
},
//视频暂停
onVideoPause(e){
this.setData({
autoplay : true,
})
},
//swiper改变
swiperChange(e) {
this.setData({
swiperCurrent: e.detail.current
});
this.swiperChangePauseVideo();
},
//切换的时候
swiperChangePauseVideo(){
this.videoContext = [];
this.data.productInfo.listUrls.forEach((item,index) => {
let isVideo = utils.isVideo(item);
if(isVideo){
this.videoContext.push(wx.createVideoContext('myVideo' + index, this));
}
});
setTimeout(() => {
this.videoContext.forEach(item => {
item.pause();
});
this.setData({
autoplay : true,
})
});
},
/** /**
* 用户点击右上角分享 * 用户点击右上角分享
*/ */
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<view> <view>
<!-- <buy-image-swiper image-data="{{imageData}}"/> <!-- <buy-image-swiper image-data="{{imageData}}"/>
--> -->
<swiper autoplay="true" style="height: 750rpx;line-height: 100rpx;" bindchange="swiperChange"> <swiper autoplay="{{autoplay}}" style="height: 750rpx;line-height: 100rpx;" bindchange="swiperChange">
<block wx:for="{{productInfo.listUrls}}" wx:key="index"> <block wx:for="{{productInfo.listUrls}}" wx:key="index">
<swiper-item> <swiper-item>
<image class="swiper-image" <image class="swiper-image"
...@@ -22,7 +22,10 @@ ...@@ -22,7 +22,10 @@
<video id="myVideo{{index}}" <video id="myVideo{{index}}"
class="swiper-image video-cover" class="swiper-image video-cover"
src="{{item}}" src="{{item}}"
muted play-btn-position="center"
enable-play-gesture="{{true}}"
data-index="{{index}}"
bindplay="onVideoPlay"
wx:if="{{utils.isVideo(item)}}"></video> wx:if="{{utils.isVideo(item)}}"></video>
</swiper-item> </swiper-item>
</block> </block>
......
...@@ -149,7 +149,7 @@ ...@@ -149,7 +149,7 @@
"id": 16, "id": 16,
"name": "商品详情页", "name": "商品详情页",
"pathName": "pages/productDetail/productDetail", "pathName": "pages/productDetail/productDetail",
"query": "id=693123742469066752", "query": "id=694920880513486848",
"scene": null "scene": null
}, },
{ {
...@@ -623,6 +623,13 @@ ...@@ -623,6 +623,13 @@
"pathName": "subPackageA/page/pages/pointExchangeGoods/pointExchangeGoods", "pathName": "subPackageA/page/pages/pointExchangeGoods/pointExchangeGoods",
"query": "", "query": "",
"scene": null "scene": null
},
{
"id": -1,
"name": "选择商品",
"pathName": "shoppingGuid/page/pages/selectProductList/selectProductList",
"query": "",
"scene": null
} }
] ]
} }
......
// shoppingGuid/page/pages/home/home.js // shoppingGuid/page/pages/home/home.js
const wxService = require('../../../../utils/wxService') const wxService = require('../../../../utils/wxService')
const utils = require('../../../../utils/util')
import { Integer } from '../../../../utils/integerDigitalConvertion' import { Integer } from '../../../../utils/integerDigitalConvertion'
const app = getApp(); const app = getApp();
...@@ -125,15 +126,22 @@ wxService.page({ ...@@ -125,15 +126,22 @@ wxService.page({
title: '获取商品信息中..', title: '获取商品信息中..',
}); });
wxService.post(`/sale/product/listPage?pageNo=1&pageSize=10000`,{ wxService.post(`/sale/product/listPage?pageNo=1&pageSize=10000`,{
productIds : proIds productIds : proIds,
showListUrls : true,
}).then(res => { }).then(res => {
if(res){ if(res){
let list = res.data.data.content ? res.data.data.content : []; let list = res.data.data.content ? res.data.data.content : [];
this.data.goods.goodsList = list; this.data.goods.goodsList = list;
list.forEach(item => { list.forEach(item => {
item.price = parseFloat(item.minSalePrice/10/10).toFixed(2); item.price = parseFloat(item.minSalePrice/10/10).toFixed(2);
item.productImgUrl = !this.isVideoUrl(item.indexUrl) ? item.indexUrl :defaultGoodsImg; item.listUrls = item.listUrls ? item.listUrls : [];
item.productImgUrl = item.productImgUrl ? item.productImgUrl :defaultGoodsImg; if(!this.isVideoUrl(item.indexUrl)){
item.productImgUrl = item.indexUrl ? item.indexUrl :defaultGoodsImg;
}
else{
item.indexUrl = utils.getFirstImgUrl(item.listUrls);
item.productImgUrl = item.indexUrl ? item.indexUrl :defaultGoodsImg;
}
}); });
this.setData({ this.setData({
......
<!--shoppingGuid/page/pages/home/home.wxml--> <!--shoppingGuid/page/pages/home/home.wxml-->
<wxs src="../../../../wxs/utils.wxs" module="utils" />
<!-- 常用工具 --> <!-- 常用工具 -->
<view class='top-items'> <view class='top-items'>
<view class='header'>常用工具</view> <view class='header'>常用工具</view>
...@@ -83,11 +84,13 @@ ...@@ -83,11 +84,13 @@
wx:for="{{goods.goodsList}}" wx:for="{{goods.goodsList}}"
wx:for-item="item" wx:for-item="item"
wx:for-index="idx" wx:for-index="idx"
wx:key="goodslist{{idx}}" wx:key="*this"
data-item="{{item}}" data-item="{{item}}"
bindtap='onTapToGoodsDetail' bindtap='onTapToGoodsDetail'
data-index="{{idx}}"> data-index="{{idx}}">
<image class='goods-lf-icon' src='{{item.productImgUrl}}' mode='aspectFit'></image> <image class='goods-lf-icon' src='{{item.productImgUrl}}'
mode='aspectFit'></image>
<view class='goods-rg-info'> <view class='goods-rg-info'>
<view class='goods-title'>{{item.productName}}</view> <view class='goods-title'>{{item.productName}}</view>
<view class='goods-second-title'>{{item.subtitle}}</view> <view class='goods-second-title'>{{item.subtitle}}</view>
...@@ -118,7 +121,7 @@ ...@@ -118,7 +121,7 @@
<view class='half-item {{item.isActive ? "active" : ""}}' <view class='half-item {{item.isActive ? "active" : ""}}'
wx:for="{{navBar}}" wx:for="{{navBar}}"
wx:for-item="item" wx:for-item="item"
wx:key="topbar{{idx}}" wx:key="*this"
wx:for-index="idx" wx:for-index="idx"
bindtap='onTopBarTap' bindtap='onTopBarTap'
data-index="{{idx}}" data-index="{{idx}}"
...@@ -133,7 +136,7 @@ ...@@ -133,7 +136,7 @@
<!-- 招募榜 --> <!-- 招募榜 -->
<view wx:if="{{current == 1}}"> <view wx:if="{{current == 1}}">
<view class='rank-list' wx:if="{{rankList.length}}"> <view class='rank-list' wx:if="{{rankList.length}}">
<block wx:for="{{rankList}}" wx:key="{{index}}" wx:for-item="item"> <block wx:for="{{rankList}}" wx:key="*this" wx:for-item="item">
<view class='rank-item'> <view class='rank-item'>
<image class='u-logo' src='{{item.member.avatar? item.member.avatar : defaultAvatar}}' mode='aspectFit'></image> <image class='u-logo' src='{{item.member.avatar? item.member.avatar : defaultAvatar}}' mode='aspectFit'></image>
<view class='rank-u-info'> <view class='rank-u-info'>
...@@ -149,7 +152,7 @@ ...@@ -149,7 +152,7 @@
<!-- 门店榜 --> <!-- 门店榜 -->
<view wx:if="{{current == 2}}"> <view wx:if="{{current == 2}}">
<view class='rank-list' wx:if="{{storeList.length}}"> <view class='rank-list' wx:if="{{storeList.length}}">
<block wx:for="{{storeList}}" wx:key="{{index}}" wx:for-item="item"> <block wx:for="{{storeList}}" wx:key="*this" wx:for-item="item">
<view class='rank-item'> <view class='rank-item'>
<image class='u-logo' src='{{item.member.avatar? item.member.avatar : defaultAvatar}}' mode='aspectFit'></image> <image class='u-logo' src='{{item.member.avatar? item.member.avatar : defaultAvatar}}' mode='aspectFit'></image>
<view class='rank-u-info'> <view class='rank-u-info'>
......
// shoppingGuid/page/pages/moreProducts/moreProducts.js // shoppingGuid/page/pages/moreProducts/moreProducts.js
const wxService = require('../../../../utils/wxService') const wxService = require('../../../../utils/wxService')
const utils = require('../../../../utils/util')
import { Integer } from '../../../../utils/integerDigitalConvertion' import { Integer } from '../../../../utils/integerDigitalConvertion'
let defaultUrl = 'https://img3.bigaka.com/prd/3001/202003/20200331/30019aa78220-546f-41e0-8075-c2feb69e10b8.jpg'; let defaultUrl = 'https://img3.bigaka.com/prd/3001/202003/20200331/30019aa78220-546f-41e0-8075-c2feb69e10b8.jpg';
const defaultGoodsImg = 'https://img3.bigaka.com/prd/3001/202003/20200331/30019aa78220-546f-41e0-8075-c2feb69e10b8.jpg';
const app = getApp(); const app = getApp();
wxService.page({ wxService.page({
...@@ -120,15 +122,22 @@ wxService.page({ ...@@ -120,15 +122,22 @@ wxService.page({
title: '获取商品信息中..', title: '获取商品信息中..',
}); });
wxService.post(`/sale/product/listPage?pageNo=1&pageSize=10000`,{ wxService.post(`/sale/product/listPage?pageNo=1&pageSize=10000`,{
productIds : proIds productIds : proIds,
showListUrls : true,
}).then(res => { }).then(res => {
if(res){ if(res){
let list = res.data.data.content ? res.data.data.content : []; let list = res.data.data.content ? res.data.data.content : [];
this.data.goods.goodsList = list; this.data.goods.goodsList = list;
list.forEach(item => { list.forEach(item => {
item.price = parseFloat(item.minSalePrice/10/10).toFixed(2); item.price = parseFloat(item.minSalePrice/10/10).toFixed(2);
item.productImgUrl = !this.isVideoUrl(item.indexUrl) ? item.indexUrl : defaultUrl; item.listUrls = item.listUrls ? item.listUrls : [];
item.productImgUrl = item.productImgUrl ? item.productImgUrl : defaultUrl; if(!utils.isVideo(item.indexUrl)){
item.productImgUrl = item.indexUrl ? item.indexUrl :defaultGoodsImg;
}
else{
item.indexUrl = utils.getFirstImgUrl(item.listUrls);
item.productImgUrl = item.indexUrl ? item.indexUrl :defaultGoodsImg;
}
}); });
this.setData({ this.setData({
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
wx:for-index="idx" wx:for-index="idx"
data-item="{{item}}" data-item="{{item}}"
bindtap='onTapToGoodsDetail' bindtap='onTapToGoodsDetail'
wx:key="{{idx}}"> wx:key="*this">
<image class='goods-lf-icon' src='{{item.productImgUrl}}' mode='aspectFit'></image> <image class='goods-lf-icon' src='{{item.productImgUrl}}' mode='aspectFit'></image>
<view class='goods-rg-info'> <view class='goods-rg-info'>
<view class='goods-title'>{{item.productName}}</view> <view class='goods-title'>{{item.productName}}</view>
......
...@@ -3,6 +3,8 @@ const app = getApp() ...@@ -3,6 +3,8 @@ const app = getApp()
const wxService = require('../../../../utils/wxService') const wxService = require('../../../../utils/wxService')
const utils = require('../../../../utils/util') const utils = require('../../../../utils/util')
const envInfo = require('../../../../config/index').envInfo; const envInfo = require('../../../../config/index').envInfo;
const defaultGoodsImg = 'https://img3.bigaka.com/prd/3001/202003/20200331/30019aa78220-546f-41e0-8075-c2feb69e10b8.jpg';
wxService.page({ wxService.page({
/** /**
...@@ -45,16 +47,24 @@ wxService.page({ ...@@ -45,16 +47,24 @@ wxService.page({
}, },
//获取商品列表 //获取商品列表
getProductList(refresh){ getProductList(refresh){
wxService.post(`/sale/product/buyer/listPage?pageNo=${this.data.pageNo}&pageSize=${this.data.pageSize}`, { wxService.post(`/sale/product/listPage?pageNo=${this.data.pageNo}&pageSize=${this.data.pageSize}`, {
productName: this.data.productName, productName: this.data.productName,
productStatus : 2, productStatus : 2,
showListUrls : true,
}).then(res => { }).then(res => {
if(res){ if(res){
let list = res.data.data.content ? res.data.data.content : []; let list = res.data.data.content ? res.data.data.content : [];
list.forEach(item => { list.forEach(item => {
item.checked = false; item.checked = false;
item.minSalePriceText = parseFloat(item.minSalePrice/10/10).toFixed(2); item.minSalePriceText = parseFloat(item.minSalePrice/10/10).toFixed(2);
item.indexUrl = !this.isVideoUrl(item.indexUrl) ? item.indexUrl : 'https://img3.bigaka.com/prd/3001/202003/20200331/30019aa78220-546f-41e0-8075-c2feb69e10b8.jpg' item.listUrls = item.listUrls ? item.listUrls : [];
if(!utils.isVideo(item.indexUrl)){
item.indexUrl = item.indexUrl ? item.indexUrl :defaultGoodsImg;
}
else{
item.indexUrl = utils.getFirstImgUrl(item.listUrls);
item.indexUrl = item.indexUrl ? item.indexUrl : defaultGoodsImg;
}
}); });
this.data.productList = this.data.productList.concat(list); this.data.productList = this.data.productList.concat(list);
...@@ -73,21 +83,7 @@ wxService.page({ ...@@ -73,21 +83,7 @@ wxService.page({
} }
}); });
}, },
//获取数组中第一个图片格式的url
isVideoUrl(url){
if(url){
let lastIndexOfPoint = url.lastIndexOf('.');
let extd = url.substring(lastIndexOfPoint).toUpperCase();
if(extd != '.MP4' && extd != '.MP3' && extd != ".MOV"){
return false;
}
else{
return true;
}
}
return false;
},
//处理选中 //处理选中
handlerChecked(){ handlerChecked(){
let checkedProduct = wx.getStorageSync('guiderReleaseProducts') ? wx.getStorageSync('guiderReleaseProducts') : []; let checkedProduct = wx.getStorageSync('guiderReleaseProducts') ? wx.getStorageSync('guiderReleaseProducts') : [];
......
// shoppingGuid/page/pages/taskNotice/taskNotice.js // shoppingGuid/page/pages/taskNotice/taskNotice.js
const wxService = require('../../../../utils/wxService') const wxService = require('../../../../utils/wxService')
const utils = require('../../../../utils/util')
import { Integer } from '../../../../utils/integerDigitalConvertion' import { Integer } from '../../../../utils/integerDigitalConvertion'
let defaultImg = 'https://img3.bigaka.com/prd/3001/202003/20200331/30019aa78220-546f-41e0-8075-c2feb69e10b8.jpg'; let defaultImg = 'https://img3.bigaka.com/prd/3001/202003/20200331/30019aa78220-546f-41e0-8075-c2feb69e10b8.jpg';
const app = getApp(); const app = getApp();
const defaultGoodsImg = 'https://img3.bigaka.com/prd/3001/202003/20200331/30019aa78220-546f-41e0-8075-c2feb69e10b8.jpg';
wxService.page({ wxService.page({
/** /**
* 页面的初始数据 * 页面的初始数据
...@@ -79,15 +81,22 @@ wxService.page({ ...@@ -79,15 +81,22 @@ wxService.page({
title: '获取商品信息中..', title: '获取商品信息中..',
}); });
wxService.post(`/sale/product/listPage?pageNo=1&pageSize=10000`,{ wxService.post(`/sale/product/listPage?pageNo=1&pageSize=10000`,{
productIds : proIds productIds : proIds,
showListUrls : true,
}).then(res => { }).then(res => {
if(res){ if(res){
let list = res.data.data.content ? res.data.data.content : []; let list = res.data.data.content ? res.data.data.content : [];
this.data.goods.goodsList = list; this.data.goods.goodsList = list;
list.forEach(item => { list.forEach(item => {
item.price = parseFloat(item.minSalePrice/10/10).toFixed(2); item.price = parseFloat(item.minSalePrice/10/10).toFixed(2);
item.productImgUrl = !this.isVideoUrl(item.indexUrl) ? item.indexUrl : defaultImg ; item.listUrls = item.listUrls ? item.listUrls : [];
item.productImgUrl = item.productImgUrl ? item.productImgUrl : defaultImg ; if(!this.isVideoUrl(item.indexUrl)){
item.productImgUrl = item.indexUrl ? item.indexUrl :defaultGoodsImg;
}
else{
item.indexUrl = utils.getFirstImgUrl(item.listUrls);
item.productImgUrl = item.indexUrl ? item.indexUrl :defaultGoodsImg;
}
}); });
this.setData({ this.setData({
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
data-item="{{item}}" data-item="{{item}}"
bindtap='onTapToGoodsDetail' bindtap='onTapToGoodsDetail'
wx:key="{{idx}}"> wx:key="{{idx}}">
<image class='goods-lf-icon' src='{{item.indexUrl}}' mode='aspectFit'></image> <image class='goods-lf-icon' src='{{item.productImgUrl}}' mode='aspectFit'></image>
<view class='goods-rg-info'> <view class='goods-rg-info'>
<view class='goods-title'>{{item.productName}}</view> <view class='goods-title'>{{item.productName}}</view>
<view class='goods-second-title'>{{item.subtitle}}</view> <view class='goods-second-title'>{{item.subtitle}}</view>
......
// shoppingGuid/page/pages/welfare/welfare.js // shoppingGuid/page/pages/welfare/welfare.js
const wxService = require('../../../../utils/wxService') const wxService = require('../../../../utils/wxService')
const utils = require('../../../../utils/util')
import { Integer } from '../../../../utils/integerDigitalConvertion' import { Integer } from '../../../../utils/integerDigitalConvertion'
var app = getApp() var app = getApp()
...@@ -119,14 +120,22 @@ wxService.page({ ...@@ -119,14 +120,22 @@ wxService.page({
title: '获取商品信息中..', title: '获取商品信息中..',
}); });
wxService.post(`/sale/product/listPage?pageNo=1&pageSize=10000`,{ wxService.post(`/sale/product/listPage?pageNo=1&pageSize=10000`,{
productIds : proIds productIds : proIds,
showListUrls : true,
}).then(res => { }).then(res => {
if(res){ if(res){
let list = res.data.data.content ? res.data.data.content : []; let list = res.data.data.content ? res.data.data.content : [];
this.data.goods.goodsList = list; this.data.goods.goodsList = list;
list.forEach(item => { list.forEach(item => {
item.price = parseFloat(item.minSalePrice/10/10).toFixed(2); item.price = parseFloat(item.minSalePrice/10/10).toFixed(2);
item.productImgUrl = item.indexUrl; item.listUrls = item.listUrls ? item.listUrls : [];
if(!utils.isVideo(item.indexUrl)){
item.productImgUrl = item.indexUrl ? item.indexUrl :defaultGoodsImg;
}
else{
item.indexUrl = utils.getFirstImgUrl(item.listUrls);
item.productImgUrl = item.indexUrl ? item.indexUrl :defaultGoodsImg;
}
}); });
this.setData({ this.setData({
......
// subPackage/page/pages/fun/fun.js // subPackage/page/pages/fun/fun.js
var app = getApp() var app = getApp()
const wxService = require('../../../../utils/wxService') const wxService = require('../../../../utils/wxService')
import { Integer } from '../../../../utils/integerDigitalConvertion' import { Integer } from '../../../../utils/integerDigitalConvertion'
let defaultImg = 'https://img3.bigaka.com/prd/3001/202003/20200331/30019aa78220-546f-41e0-8075-c2feb69e10b8.jpg'; let defaultImg = 'https://img3.bigaka.com/prd/3001/202003/20200331/30019aa78220-546f-41e0-8075-c2feb69e10b8.jpg';
...@@ -197,6 +198,7 @@ wxService.page({ ...@@ -197,6 +198,7 @@ wxService.page({
categoryIds: [], categoryIds: [],
productTagIds : [this.data.tagId], productTagIds : [this.data.tagId],
productStatus : 2, productStatus : 2,
showListUrls : true,
// sortType : this.data.form.sortType, // sortType : this.data.form.sortType,
// order : this.data.form.order, // order : this.data.form.order,
}).then(res => { }).then(res => {
......
...@@ -419,6 +419,39 @@ function configSliderBlock(app){ ...@@ -419,6 +419,39 @@ function configSliderBlock(app){
} }
} }
//判断链接是不是视频格式
function isVideo(url){
if(url){
let lastIndexOfPoint = url.lastIndexOf('.');
let extd = url.substring(lastIndexOfPoint).toUpperCase();
if(extd != '.MP4' && extd != '.MP3' && extd != ".MOV"){
return false;
}
else{
return true;
}
}
return false;
}
//获取第一个图片格式的图片
function getFirstImgUrl(urls){
let retUrl = '';
for(let i = 0 ; i < urls.length ; i ++){
let url = urls[i];
let lastIndexOfPoint = url.lastIndexOf('.');
let extd = url.substring(lastIndexOfPoint).toUpperCase();
if(extd != '.MP4' && extd != '.MP3' && extd != ".MOV"){
retUrl = url;
break;
}
}
return retUrl;
}
wxService.setGetAuthUserInfo(_getUserInfo); wxService.setGetAuthUserInfo(_getUserInfo);
module.exports = { module.exports = {
...@@ -435,6 +468,8 @@ module.exports = { ...@@ -435,6 +468,8 @@ module.exports = {
parseUrl, parseUrl,
getDateDiff, getDateDiff,
_, _,
isVideo,
getFirstImgUrl,
// _: underscore, // _: underscore,
HandlerDataOnPage, HandlerDataOnPage,
formatTime: formatTime, formatTime: formatTime,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment