紧急修复了一些bug

pull/1/MERGE
张乐 2020-08-17 15:28:28 +08:00
parent d1682fba15
commit deabefd64f
19 changed files with 138 additions and 136 deletions

View File

@ -220,5 +220,5 @@ export function getLiveList(page,limit) {
* 获取小程序二维码 * 获取小程序二维码
*/ */
export function getQrcode(data) { export function getQrcode(data) {
return request.post('qrcode/get',data); return request.post('qrcode/get',data,{ noAuth: true });
} }

View File

@ -5,14 +5,16 @@ import request from "@/utils/request.js";
* @param numType boolean true 购物车数量,false=购物车产品数量 * @param numType boolean true 购物车数量,false=购物车产品数量
*/ */
export function getCartCounts(numType) { export function getCartCounts(numType) {
return request.get("cart/count", { numType: numType === undefined ? true : numType }); return request.get("cart/count", {
numType: numType === undefined ? true : numType
});
} }
/** /**
* 获取购物车列表 * 获取购物车列表
* *
*/ */
export function getCartList(data) { export function getCartList(data) {
return request.get("cart/list",data); return request.get("cart/list", data);
} }
/** /**
@ -21,108 +23,121 @@ export function getCartList(data) {
* @param int number 修改数量 * @param int number 修改数量
*/ */
export function changeCartNum(cartId, number) { export function changeCartNum(cartId, number) {
return request.post("cart/num", { id: cartId, number: number },{},1); return request.post("cart/num", {
id: cartId,
number: number
}, {}, 1);
} }
/** /**
* 清除购物车 * 清除购物车
* @param object ids join(',') 切割成字符串 * @param object ids join(',') 切割成字符串
*/ */
export function cartDel(ids){ export function cartDel(ids) {
if (typeof ids === 'object') if (typeof ids === 'object')
ids = ids.join(','); ids = ids.join(',');
return request.post('cart/delete', { ids: ids},{},1); return request.post('cart/delete', {
ids: ids
}, {}, 1);
} }
/** /**
* 购物车重选提交 * 购物车重选提交
* *
*/ */
export function getResetCart(data){ export function getResetCart(data) {
return request.post('cart/resetcart', data); return request.post('cart/resetcart', data);
} }
/** /**
* 订单列表 * 订单列表
* @param object data * @param object data
*/ */
export function getOrderList(data){ export function getOrderList(data) {
return request.get('order/list',data); return request.get('order/list', data);
} }
/** /**
* 订单产品信息 * 订单产品信息
* @param string unique * @param string unique
*/ */
export function orderProduct(data){ export function orderProduct(data) {
return request.post('order/product', data); return request.post('order/product', data);
} }
/** /**
* 订单评价 * 订单评价
* @param object data * @param object data
* *
*/ */
export function orderComment(data){ export function orderComment(data) {
return request.post('order/comment',data); return request.post('order/comment', data);
} }
/** /**
* 订单支付 * 订单支付
* @param object data * @param object data
*/ */
export function orderPay(data){ export function orderPay(data) {
return request.post('order/pay',data); return request.post('order/pay', data);
} }
/** /**
* 订单统计数据 * 订单统计数据
*/ */
export function orderData(){ export function orderData() {
return request.get('order/data') return request.get('order/data')
} }
/** /**
* 订单取消 * 订单取消
* @param string id * @param string id
* *
*/ */
export function orderCancel(id){ export function orderCancel(id) {
return request.post('order/cancel',{id:id},{},1); return request.post('order/cancel', {
id: id
}, {}, 1);
} }
/** /**
* 删除已完成订单 * 删除已完成订单
* @param string uni * @param string uni
* *
*/ */
export function orderDel(uni){ export function orderDel(uni) {
return request.post('order/del',{id:uni},{},1); return request.post('order/del', {
id: uni
}, {}, 1);
} }
/** /**
* 订单详情 * 订单详情
* @param string uni * @param string uni
*/ */
export function getOrderDetail(uni){ export function getOrderDetail(uni) {
return request.get('order/detail/'+uni); return request.get('order/detail/' + uni);
} }
/** /**
* 再次下单 * 再次下单
* @param string uni * @param string uni
* *
*/ */
export function orderAgain(uni){ export function orderAgain(uni) {
return request.post('order/again',{nui:uni}); return request.post('order/again', {
nui: uni
});
} }
/** /**
* 订单收货 * 订单收货
* @param string uni * @param string uni
* *
*/ */
export function orderTake(uni){ export function orderTake(uni) {
return request.post('order/take',{id:uni},{},1); return request.post('order/take', {
id: uni
}, {}, 1);
} }
/** /**
@ -130,40 +145,43 @@ export function orderTake(uni){
* @returns {*} * @returns {*}
*/ */
export function express(uni) { export function express(uni) {
return request.get("order/express/" + uni); return request.get("order/express/" + uni);
} }
/** /**
* 获取退款理由 * 获取退款理由
* *
*/ */
export function ordeRefundReason(){ export function ordeRefundReason() {
return request.get('order/refund/reason'); return request.get('order/refund/reason');
} }
/** /**
* 订单退款审核 * 订单退款审核
* @param object data * @param object data
*/ */
export function orderRefundVerify(data){ export function orderRefundVerify(data) {
return request.post('order/refund/verify',data); return request.post('order/refund/verify', data);
} }
/** /**
* 订单确认获取订单详细信息 * 订单确认获取订单详细信息
* @param string cartId * @param string cartId
*/ */
export function orderConfirm(cartId,isNew){ export function orderConfirm(cartId, isNew) {
return request.post('order/confirm', { cartIds: cartId,isNew:isNew}, {}, 1); return request.post('order/confirm', {
cartIds: cartId,
isNew: isNew
}, {}, 1);
} }
/** /**
* 获取当前金额能使用的优惠卷 * 获取当前金额能使用的优惠卷
* @param string price * @param string price
* *
*/ */
export function getCouponsOrderPrice( data){ export function getCouponsOrderPrice(data) {
return request.get('coupons/order', data) return request.get('coupons/order', data)
} }
/** /**
@ -171,9 +189,9 @@ export function getCouponsOrderPrice( data){
* @param string key * @param string key
* @param object data * @param object data
* *
*/ */
export function orderCreate(key,data){ export function orderCreate(key, data) {
return request.post('order/create/'+key,data); return request.post('order/create/' + key, data);
} }
/** /**
@ -183,5 +201,5 @@ export function orderCreate(key,data){
* @returns {*} * @returns {*}
*/ */
export function postOrderComputed(key, data) { export function postOrderComputed(key, data) {
return request.post("order/computed/" + key, data); return request.post("order/computed/" + key, data);
} }

View File

@ -5,22 +5,18 @@ import wechat from "@/libs/wechat.js";
* 获取微信公众号js配置 * 获取微信公众号js配置
* @returns {*} * @returns {*}
*/ */
export function getWechatConfig() {
return request.get("wechat/config",{ url: encodeURIComponent(wechat.signLink()) },{ noAuth: true });
}
// export function getWechatConfig() { // export function getWechatConfig() {
// return request.get( // return request.get(
// "wechat/config?t="+ Date.parse(new Date()), // "wechat/config",
// { url: encodeURIComponent(wechat.signLink()) }, // { url: encodeURIComponent(location.href.split('#')[0]) },
// { noAuth: true } // { noAuth: true }
// ); // );
// } // }
export function getWechatConfig() {
return request.get(
"wechat/config",
{ url: encodeURIComponent(location.href.split('#')[0]) },
{ noAuth: true }
);
}
/** /**
* 获取微信sdk配置 * 获取微信sdk配置
* @returns {*} * @returns {*}
@ -71,7 +67,7 @@ export function follow() {
* @retins {*} * @retins {*}
* */ * */
export function imageBase64(image) { export function imageBase64(image) {
return request.post("qrcode/base64",image,{},1); return request.post("qrcode/base64",image,{ noAuth: true },1);
} }
/** /**

View File

@ -131,7 +131,9 @@ export function getCollectUserList(data) {
* *
*/ */
export function getReplyList(id, data) { export function getReplyList(id, data) {
return request.get('reply/list/' + id, data) return request.get('reply/list/' + id, data,{
noAuth: true
})
} }
/** /**
@ -139,7 +141,9 @@ export function getReplyList(id, data) {
* @param int id * @param int id
*/ */
export function getReplyConfig(id) { export function getReplyConfig(id) {
return request.get('reply/config/' + id); return request.get('reply/config/' + id,{},{
noAuth: true
});
} }
/** /**

View File

@ -131,7 +131,7 @@
let data = res.data; let data = res.data;
if (data.status == "WECHAT_H5_PAY") { if (data.status == "WECHAT_H5_PAY") {
uni.hideLoading(); uni.hideLoading();
location.replace(data.result.jsConfig.mweb_url); location.replace(data.result.jsConfig.h5PayUrl);
return that.$util.Tips({ return that.$util.Tips({
title: "支付成功", title: "支付成功",
icon: 'success' icon: 'success'

View File

@ -110,7 +110,6 @@
this.$emit('ChangeCartNum', true); this.$emit('ChangeCartNum', true);
}, },
tapAttr: function(indexw, indexn) { tapAttr: function(indexw, indexn) {
console.log('45454555');
let that = this; let that = this;
that.$emit("attrVal", { that.$emit("attrVal", {
indexw: indexw, indexw: indexw,
@ -119,7 +118,7 @@
this.$set(this.attr.productAttr[indexw], 'index', this.attr.productAttr[indexw].attrValues[indexn]); this.$set(this.attr.productAttr[indexw], 'index', this.attr.productAttr[indexw].attrValues[indexn]);
let value = that let value = that
.getCheckedValue() .getCheckedValue()
.sort() // .sort()
.join(","); .join(",");
that.$emit("ChangeAttr", value); that.$emit("ChangeAttr", value);

View File

@ -11,7 +11,7 @@
<view class="child-box" v-if="tabClick>0 && tabTitle[tabClick].child?tabTitle[tabClick].child.length>0:0"> <view class="child-box" v-if="tabClick>0 && tabTitle[tabClick].child?tabTitle[tabClick].child.length>0:0">
<scroll-view scroll-x="true" style="white-space: nowrap; display: flex;align-items: center; height: 100%;" scroll-with-animation :scroll-left="tabLeft" show-scrollbar="false"> <scroll-view scroll-x="true" style="white-space: nowrap; display: flex;align-items: center; height: 100%;" scroll-with-animation :scroll-left="tabLeft" show-scrollbar="false">
<view class="wrapper"> <view class="wrapper">
<view v-for="(item,index) in tabTitle[tabClick].child?tabTitle[tabClick].child:[]" class="child-item" :class="{on:index == childIndex}" @click="childTab(tabClick,index)"> <view v-for="(item,index) in tabTitle[tabClick].child?tabTitle[tabClick].child:[]" :key="index" class="child-item" :class="{on:index == childIndex}" @click="childTab(tabClick,index)">
<image :src="item.url" mode=""></image> <image :src="item.url" mode=""></image>
<view class="txt line1">{{item.name}}</view> <view class="txt line1">{{item.name}}</view>
</view> </view>

View File

@ -37,11 +37,12 @@ class AuthWechat {
signLink() { signLink() {
if (typeof window.entryUrl === 'undefined' || window.entryUrl === '') { if (typeof window.entryUrl === 'undefined' || window.entryUrl === '') {
window.entryUrl = document.location.href window.entryUrl = location.href.split('#')[0]
} }
return /(Android)/i.test(navigator.userAgent) ? document.location.href : window.entryUrl; return /(Android)/i.test(navigator.userAgent) ? location.href.split('#')[0] : window.entryUrl;
} }
/** /**
* 初始化wechat(分享配置) * 初始化wechat(分享配置)
*/ */

View File

@ -6,7 +6,7 @@
indicator-color="rgba(255,255,255,0.6)" indicator-active-color="#fff"> indicator-color="rgba(255,255,255,0.6)" indicator-active-color="#fff">
<block v-for="(item,index) in imgUrls" :key="index"> <block v-for="(item,index) in imgUrls" :key="index">
<swiper-item> <swiper-item>
<image :src="item.img" class="slide-image"></image> <image :src="item.pic" class="slide-image"></image>
</swiper-item> </swiper-item>
</block> </block>
</swiper> </swiper>

View File

@ -221,7 +221,6 @@
} from '@/config/app.js'; } from '@/config/app.js';
import { import {
getProductDetail, getProductDetail,
getProductCode,
collectAdd, collectAdd,
collectDel, collectDel,
postCartAdd, postCartAdd,
@ -229,8 +228,7 @@
getReplyConfig getReplyConfig
} from '@/api/store.js'; } from '@/api/store.js';
import { import {
getUserInfo, getUserInfo
userShare
} from '@/api/user.js'; } from '@/api/user.js';
import { import {
getCoupons getCoupons
@ -653,8 +651,8 @@
that.$set(that, 'storeImage', that.storeInfo.image); that.$set(that, 'storeImage', that.storeInfo.image);
if (that.isLogin) { if (that.isLogin) {
that.getCartCount(); that.getCartCount();
that.ShareInfo();
}; };
this.ShareInfo();
// #endif // #endif
if (that.isLogin) { if (that.isLogin) {
that.getUserInfo(); that.getUserInfo();
@ -762,7 +760,7 @@
this.$set(productAttr[i], "index", value[i]); this.$set(productAttr[i], "index", value[i]);
} }
//sort();:-- //sort();:--
let productSelect = this.productValue[value.sort().join(",")]; let productSelect = this.productValue[value.join(",")];
if (productSelect && productAttr.length) { if (productSelect && productAttr.length) {
this.$set( this.$set(
this.attr.productSelect, this.attr.productSelect,
@ -774,7 +772,7 @@
this.$set(this.attr.productSelect, "stock", productSelect.stock); this.$set(this.attr.productSelect, "stock", productSelect.stock);
this.$set(this.attr.productSelect, "unique", productSelect.id); this.$set(this.attr.productSelect, "unique", productSelect.id);
this.$set(this.attr.productSelect, "cart_num", 1); this.$set(this.attr.productSelect, "cart_num", 1);
this.$set(this, "attrValue", value.sort().join(",")); this.$set(this, "attrValue", value.join(","));
this.$set(this, "attrTxt", "已选择"); this.$set(this, "attrTxt", "已选择");
} else if (!productSelect && productAttr.length) { } else if (!productSelect && productAttr.length) {
this.$set( this.$set(

View File

@ -144,7 +144,7 @@
<!-- 首页推荐 --> <!-- 首页推荐 -->
<view class="index-product-wrapper" :class="iSshowH?'on':''"> <view class="index-product-wrapper" :class="iSshowH?'on':''">
<view class="nav-bd"> <view class="nav-bd">
<view class="item" v-for="(item,index) in explosiveMoney" :index="item.id" :class="{active:index == ProductNavindex}" <view class="item" v-for="(item,index) in explosiveMoney" :key="index" :index="item.id" :class="{active:index == ProductNavindex}"
@click="ProductNavTab(item,index)"> @click="ProductNavTab(item,index)">
<view class="txt">{{item.title}}</view> <view class="txt">{{item.title}}</view>
<view class="label">{{item.info}}</view> <view class="label">{{item.info}}</view>

View File

@ -249,7 +249,7 @@
<!-- 首页推荐 --> <!-- 首页推荐 -->
<view class="index-product-wrapper" style="min-height: 1500rpx;"> <view class="index-product-wrapper" style="min-height: 1500rpx;">
<view class="nav-bd"> <view class="nav-bd">
<view class="item" v-for="(item,index) in explosiveMoney" :index="item.id" :class="{active:index == ProductNavindex}" <view class="item" v-for="(item,index) in explosiveMoney" :key="index" :index="item.id" :class="{active:index == ProductNavindex}"
@click="ProductNavTab(item,index)"> @click="ProductNavTab(item,index)">
<view class="txt">{{item.title}}</view> <view class="txt">{{item.title}}</view>
<view class="label">{{item.info2}}</view> <view class="label">{{item.info2}}</view>

View File

@ -164,7 +164,7 @@
</view> </view>
<view class='wrapper' v-else-if='orderInfo.deliveryType=="send"'> <view class='wrapper' v-else-if='orderInfo.deliveryType=="send"'>
<view class='item acea-row row-between'> <view class='item acea-row row-between'>
<view>配送方式</view> <view>配送方式</view>
<view class='conter'>送货</view> <view class='conter'>送货</view>
</view> </view>
<view class='item acea-row row-between'> <view class='item acea-row row-between'>

View File

@ -15,8 +15,8 @@
<view class="name" v-if="userInfo.uid"> <view class="name" v-if="userInfo.uid">
{{userInfo.nickname}} {{userInfo.nickname}}
<view class="vip" v-if="userInfo.vip"> <view class="vip" v-if="userInfo.vip">
<image :src="userInfo.vip_icon" alt=""> <image :src="userInfo.vipIcon" alt="">
<view style="margin-left: 10rpx;" class="vip-txt">{{userInfo.vip_name}}</view> <view style="margin-left: 10rpx;" class="vip-txt">{{userInfo.vipName}}</view>
</view> </view>
</view> </view>
<view class="num" v-if="userInfo.phone" @click="goEdit()"> <view class="num" v-if="userInfo.phone" @click="goEdit()">
@ -388,6 +388,7 @@
border-radius: 18px; border-radius: 18px;
font-size: 20rpx; font-size: 20rpx;
margin-left: 12rpx; margin-left: 12rpx;
margin-top: 2rpx;
image { image {
width: 27rpx; width: 27rpx;

View File

@ -7,7 +7,7 @@
<image :src='productInfo.image'></image> <image :src='productInfo.image'></image>
</view> </view>
<view class='text acea-row row-between'> <view class='text acea-row row-between'>
<view class='name line2'>{{productInfo.store_name}}</view> <view class='name line2'>{{productInfo.storeName}}</view>
<view class='money'> <view class='money'>
<view>{{productInfo.price}}</view> <view>{{productInfo.price}}</view>
<view class='num'>x{{cart_num}}</view> <view class='num'>x{{cart_num}}</view>

View File

@ -221,8 +221,8 @@
}); });
const backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index"; const backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index";
that.$Cache.clear(BACK_URL); that.$Cache.clear(BACK_URL);
getUserInfo().then(res => { // getUserInfo().then(res => {
that.$store.commit("SETUID", res.data.uid); that.$store.commit("SETUID", res.data.user.uid);
if (backUrl === '/pages/index/index' || backUrl === '/pages/order_addcart/order_addcart' || backUrl === if (backUrl === '/pages/index/index' || backUrl === '/pages/order_addcart/order_addcart' || backUrl ===
'/pages/user/index') { '/pages/user/index') {
@ -235,7 +235,7 @@
url: '/pages/index/index' url: '/pages/index/index'
}); });
} }
}) // })
}) })
.catch(res => { .catch(res => {
that.$util.Tips({ that.$util.Tips({

View File

@ -61,7 +61,7 @@
</view> </view>
<view class='item acea-row row-between-wrapper' v-if='shippingType==0'> <view class='item acea-row row-between-wrapper' v-if='shippingType==0'>
<view>快递费用</view> <view>快递费用</view>
<view class='discount' v-if='priceGroup.storePostage > 0'>+{{priceGroup.storePostage}}</view> <view class='discount' v-if='parseFloat(priceGroup.storePostage) > 0'>+{{priceGroup.storePostage}}</view>
<view class='discount' v-else></view> <view class='discount' v-else></view>
</view> </view>
<view v-else> <view v-else>
@ -293,8 +293,6 @@
this.cartId = options.cartId; this.cartId = options.cartId;
this.is_address = options.is_address ? true : false; this.is_address = options.is_address ? true : false;
this.news = options.new || true; this.news = options.new || true;
console.log('options.new');
console.log(options.new);
this.again = options.again || false; this.again = options.again || false;
if (this.isLogin) { if (this.isLogin) {
this.getaddressInfo(); this.getaddressInfo();
@ -572,16 +570,14 @@
let that = this; let that = this;
if (that.addressId) { if (that.addressId) {
getAddressDetail(that.addressId).then(res => { getAddressDetail(that.addressId).then(res => {
// res.data.isDefault = parseInt(res.data.isDefault); res.data.isDefault = parseInt(res.data.isDefault);
that.addressInfo = res.data || {}; that.addressInfo = res.data || {};
that.addressId = res.data.id || 0; that.addressId = res.data.id || 0;
that.address.addressId = res.data.id || 0; that.address.addressId = res.data.id || 0;
}) })
} else { } else {
getAddressDefault().then(res => { getAddressDefault().then(res => {
// res.data.isDefault = parseInt(res.data.isDefault); res.data.isDefault = parseInt(res.data.isDefault);
console.log('大家发挥绝代风华');
console.log(res.data.id);
that.addressInfo = res.data || {}; that.addressInfo = res.data || {};
that.addressId = res.data.id || 0; that.addressId = res.data.id || 0;
that.address.addressId = res.data.id || 0; that.address.addressId = res.data.id || 0;
@ -779,7 +775,16 @@
break; break;
case "WECHAT_H5_PAY": // case "WECHAT_H5_PAY": //
setTimeout(() => { setTimeout(() => {
location.href = jsConfig.mweb_url; let domain = encodeURIComponent(location.href);
let urls = jsConfigAgain.h5PayUrl + '&redirect_url='+ domain;
location.href = urls;
return that.$util.Tips({
title: '支付成功',
icon: 'success'
}, {
tab: 5,
url: goPages
});
}, 100); }, 100);
break; break;
} }

View File

@ -214,33 +214,11 @@
tab: 5, tab: 5,
url: '/pages/users/user_money/index' url: '/pages/users/user_money/index'
}); });
}).catch(err=>{
return that.$util.Tips({
title: err
});
}) })
// // #ifdef MP || APP-PLUS
// rechargeRoutine({
// price: parseFloat(value),
// type: 1
// })
// // #endif
// // #ifdef H5
// rechargeWechat({
// price: parseFloat(value),
// from: that.from,
// type: 1
// })
// // #endif
// .then(res => {
// return that.$util.Tips({
// title: '',
// icon: 'success'
// }, {
// tab: 5,
// url: '/pages/users/user_money/index'
// });
// }).catch(err => {
// return that.$util.Tips({
// title: err
// })
// });
} else if (res.cancel) { } else if (res.cancel) {
return that.$util.Tips({ return that.$util.Tips({
title: '已取消' title: '已取消'
@ -252,7 +230,6 @@
uni.showLoading({ uni.showLoading({
title: '正在支付', title: '正在支付',
}) })
// #ifdef MP || APP-PLUS
let money = parseFloat(this.money); let money = parseFloat(this.money);
if (this.rechar_id == 0) { if (this.rechar_id == 0) {
if (Number.isNaN(money)) { if (Number.isNaN(money)) {
@ -268,7 +245,7 @@
} else { } else {
money = this.numberPic money = this.numberPic
} }
// #ifdef MP || APP-PLUS
rechargeRoutine({ rechargeRoutine({
price: money, price: money,
type: 0, type: 0,
@ -294,7 +271,6 @@
}); });
}, },
fail: function(err) { fail: function(err) {
console.log(err);
return that.$util.Tips({ return that.$util.Tips({
title: '支付失败' title: '支付失败'
}); });
@ -314,7 +290,7 @@
// #endif // #endif
// #ifdef H5 // #ifdef H5
rechargeWechat({ rechargeWechat({
price: that.rechar_id == 0 ? that.money : that.numberPic, price: money,
from: that.from, from: that.from,
rechar_id: that.rechar_id, rechar_id: that.rechar_id,
payType: 0 payType: 0
@ -353,12 +329,16 @@
}); });
}) })
.catch(function(err) { .catch(function(err) {
console.log(err);
return that.$util.Tips({ return that.$util.Tips({
title: '支付失败' title: '支付失败'
}); });
}); });
} }
}).catch(res=>{
uni.hideLoading();
return that.$util.Tips({
title: res
});
}) })
// #endif // #endif
} }

View File

@ -29,7 +29,7 @@
</view> </view>
</view> </view>
<view class="numList acea-row row-around row-middle"> <view class="numList acea-row row-around row-middle">
<view class="item" :class="current >=item.experience?'past':''" v-for="(item,index) in levelList">{{item.experience}}</view> <view class="item" :class="current >=item.experience?'past':''" v-for="(item,index) in levelList" :key="index">{{item.experience}}</view>
</view> </view>
</view> </view>
<view class="vipList acea-row"> <view class="vipList acea-row">
@ -108,7 +108,7 @@
<view class="icons"></view>经验值明细 <view class="icons"></view>经验值明细
</view> </view>
<view class="list"> <view class="list">
<view class="item acea-row row-between-wrapper" v-for="(item,index) in expList"> <view class="item acea-row row-between-wrapper" v-for="(item,index) in expList" :key="index">
<view class="text"> <view class="text">
<view class="name">{{item.title}}</view> <view class="name">{{item.title}}</view>
<view class="data">{{item.add_time}}</view> <view class="data">{{item.add_time}}</view>