修改看到的一些问题
parent
fcb5d20ef1
commit
61273b78b9
30
App.vue
30
App.vue
|
@ -1,4 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
/**
|
/**
|
||||||
* vuex管理登录状态,具体可以参考官方登录模板示例
|
* vuex管理登录状态,具体可以参考官方登录模板示例
|
||||||
|
@ -15,6 +16,35 @@ export default {
|
||||||
config,
|
config,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监听返回
|
||||||
|
*/
|
||||||
|
onBackPress(e) {
|
||||||
|
if (e.from == "backbutton") {
|
||||||
|
let routes = getCurrentPages();
|
||||||
|
let curRoute = routes[routes.length - 1].options;
|
||||||
|
routes.forEach((item) => {
|
||||||
|
if (
|
||||||
|
item.route == "pages/tabbar/cart/cartList" ||
|
||||||
|
item.route.indexOf("pages/product/goods") != -1
|
||||||
|
) {
|
||||||
|
uni.redirectTo({
|
||||||
|
url: item.route,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (curRoute.addId) {
|
||||||
|
uni.reLaunch({
|
||||||
|
url: "/pages/tabbar/cart/cartList",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
uni.navigateBack();
|
||||||
|
}
|
||||||
|
return true; //阻止默认返回行为
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapMutations(["login"]),
|
...mapMutations(["login"]),
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,25 +1,9 @@
|
||||||
/**
|
/**
|
||||||
* 公共API
|
* 公共API
|
||||||
*/
|
*/
|
||||||
import storage from "@/utils/storage.js"
|
|
||||||
import {http, Method} from '@/utils/request.js';
|
import {http, Method} from '@/utils/request.js';
|
||||||
import api from '@/config/api.js';
|
import api from '@/config/api.js';
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取图片验证码URL
|
|
||||||
* @param type
|
|
||||||
* @param uuid
|
|
||||||
* @returns {string}
|
|
||||||
*/
|
|
||||||
export function getValidateCodeUrl(type, uuid) {
|
|
||||||
if (!type) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
if (!uuid) {
|
|
||||||
uuid = storage.getUuid()
|
|
||||||
}
|
|
||||||
return `${api.base}/captchas/${uuid}/${type}?r=${new Date().getTime()}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,8 +1,20 @@
|
||||||
/**
|
/**
|
||||||
* 促销相关API
|
* 促销相关API
|
||||||
*/
|
*/
|
||||||
import {http, Method} from '@/utils/request.js';
|
import { http, Method } from "@/utils/request.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前直播列表
|
||||||
|
*
|
||||||
|
* @param {*}
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function getLiveList() {
|
||||||
|
return http.request({
|
||||||
|
url: `broadcast/studio`,
|
||||||
|
method: Method.GET,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取当前拼团活动的未成团的会员
|
* 获取当前拼团活动的未成团的会员
|
||||||
|
@ -14,24 +26,22 @@ export function getPromotionGroupMember(pintuanId) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** 获取拼团列表 */
|
/** 获取拼团列表 */
|
||||||
export function getAssembleList(params) {
|
export function getAssembleList(params) {
|
||||||
return http.request({
|
return http.request({
|
||||||
url: 'promotion/pintuan',
|
url: "promotion/pintuan",
|
||||||
method: Method.GET,
|
method: Method.GET,
|
||||||
loading: false,
|
loading: false,
|
||||||
params
|
params,
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取积分商城分类
|
* 获取积分商城分类
|
||||||
*/
|
*/
|
||||||
export function getPointsCategory() {
|
export function getPointsCategory() {
|
||||||
return http.request({
|
return http.request({
|
||||||
url: '/promotion/pointsGoods/category',
|
url: "/promotion/pointsGoods/category",
|
||||||
method: Method.GET,
|
method: Method.GET,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -42,7 +52,7 @@ export function getPointsCategory() {
|
||||||
*/
|
*/
|
||||||
export function getPointsGoods(params) {
|
export function getPointsGoods(params) {
|
||||||
return http.request({
|
return http.request({
|
||||||
url: '/promotion/pointsGoods',
|
url: "/promotion/pointsGoods",
|
||||||
method: Method.GET,
|
method: Method.GET,
|
||||||
params,
|
params,
|
||||||
});
|
});
|
||||||
|
@ -53,7 +63,7 @@ export function getPointsGoods(params) {
|
||||||
*/
|
*/
|
||||||
export function getSeckillTimeLine() {
|
export function getSeckillTimeLine() {
|
||||||
return http.request({
|
return http.request({
|
||||||
url: 'promotion/seckill',
|
url: "promotion/seckill",
|
||||||
method: Method.GET,
|
method: Method.GET,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -75,7 +85,7 @@ export function getSeckillTimeGoods(timeline) {
|
||||||
*/
|
*/
|
||||||
export function getAllCoupons(params) {
|
export function getAllCoupons(params) {
|
||||||
return http.request({
|
return http.request({
|
||||||
url: '/promotion/coupon',
|
url: "/promotion/coupon",
|
||||||
method: Method.GET,
|
method: Method.GET,
|
||||||
params,
|
params,
|
||||||
});
|
});
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -49,31 +49,7 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view
|
|
||||||
@click="hide"
|
|
||||||
v-show="flage"
|
|
||||||
class="flex-row-around"
|
|
||||||
style="border-radius: 10rpx; background-color: #ebebeb"
|
|
||||||
:style="{
|
|
||||||
width: width,
|
|
||||||
height: height,
|
|
||||||
'margin-left': left,
|
|
||||||
'margin-top': top,
|
|
||||||
}"
|
|
||||||
:class="vsr ? 'border-index' : ''"
|
|
||||||
>
|
|
||||||
<view class="flex-row-center" style="width: 45rpx; height: 45rpx">
|
|
||||||
<view v-show="!vsr" class="dh-wt"> </view>
|
|
||||||
<view
|
|
||||||
v-show="vsr"
|
|
||||||
class="cuIcon-roundcheck"
|
|
||||||
style="font-size: 45rpx; color: #07c160"
|
|
||||||
>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<text :class="vsr ? 'ttcl' : ''" style="color: #5a5a5a">{{ vsrtx }}</text>
|
|
||||||
<view class="cuIcon-safe text-gray"> </view>
|
|
||||||
</view> -->
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -209,13 +185,12 @@ export default {
|
||||||
},
|
},
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
this.endLoad = true;
|
this.endLoad = true;
|
||||||
|
|
||||||
res.data.result == false
|
res.data.result == false
|
||||||
? (res.data.result = false)
|
? (res.data.result = false)
|
||||||
: (res.data.result = true);
|
: (res.data.result = true);
|
||||||
|
|
||||||
if (res.data && res.data.result) {
|
if (res.data && res.data.result) {
|
||||||
// // 验证成功后把key发送出去,后端会把验证信息存在缓存里
|
//验证成功后把key发送出去,后端会把验证信息存在缓存里
|
||||||
this.$emit("send", this.key);
|
this.$emit("send", this.key);
|
||||||
this.hide();
|
this.hide();
|
||||||
this.vsr = true;
|
this.vsr = true;
|
||||||
|
@ -389,33 +364,6 @@ export default {
|
||||||
margin-top: -35rpx;
|
margin-top: -35rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lk-tag {
|
|
||||||
height: 50rpx;
|
|
||||||
padding: 0 10rpx;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
border: 2rpx solid #24bd9f;
|
|
||||||
border-radius: 6rpx;
|
|
||||||
color: #1c947a;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tb-tag-my {
|
|
||||||
border-radius: 15rpx;
|
|
||||||
font-size: 16rpx;
|
|
||||||
margin-left: 5rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-green {
|
|
||||||
color: #29c7a5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-hui {
|
|
||||||
color: #585858;
|
|
||||||
font-size: 22rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-column-center {
|
.flex-column-center {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
@ -524,75 +472,15 @@ export default {
|
||||||
bottom: 70rpx;
|
bottom: 70rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.white-box {
|
|
||||||
padding: 0 20rpx;
|
|
||||||
margin-bottom: 15rpx;
|
|
||||||
margin-top: 5rpx;
|
|
||||||
width: 715rpx;
|
|
||||||
background-color: #ffffff;
|
|
||||||
border-radius: 30rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.green-box {
|
|
||||||
padding: 0 20rpx;
|
|
||||||
margin-bottom: 15rpx;
|
|
||||||
margin-top: 5rpx;
|
|
||||||
width: 715rpx;
|
|
||||||
background-color: #ffffff;
|
|
||||||
border-radius: 30rpx;
|
|
||||||
background-image: linear-gradient(#1faf97, #29c7a5);
|
|
||||||
}
|
|
||||||
|
|
||||||
.yuan-sm {
|
|
||||||
width: 13rpx;
|
|
||||||
height: 13rpx;
|
|
||||||
border-radius: 50%;
|
|
||||||
background-color: #1fc189;
|
|
||||||
margin-left: 10rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.yuan-normal {
|
|
||||||
width: 14rpx;
|
|
||||||
height: 14rpx;
|
|
||||||
border-radius: 50%;
|
|
||||||
background-color: #159f3c;
|
|
||||||
margin-left: 10rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.yuan-normal-red {
|
|
||||||
width: 14rpx;
|
|
||||||
height: 14rpx;
|
|
||||||
border-radius: 50%;
|
|
||||||
background-color: #bc3c11;
|
|
||||||
margin-left: 10rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.yuan-sm-red {
|
|
||||||
width: 13rpx;
|
|
||||||
height: 13rpx;
|
|
||||||
border-radius: 50%;
|
|
||||||
background-color: #de410d;
|
|
||||||
margin-left: 10rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.white-box-all {
|
|
||||||
margin-top: 5rpx;
|
|
||||||
width: 750rpx;
|
|
||||||
background-color: #ffffff;
|
|
||||||
border-radius: 13px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.moneycolor {
|
.moneycolor {
|
||||||
color: #ea5002;
|
color: #ea5002;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-bold-sm {
|
|
||||||
font-weight: 425;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sm-moneycolor {
|
|
||||||
color: #e3793b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.margin-top {
|
.margin-top {
|
||||||
margin-top: 20rpx;
|
margin-top: 20rpx;
|
||||||
|
@ -610,71 +498,13 @@ export default {
|
||||||
margin-left: 20rpx;
|
margin-left: 20rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.margin-left-top {
|
|
||||||
margin-left: 20rpx;
|
|
||||||
margin-top: 20rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.margin-right {
|
.margin-right {
|
||||||
margin-right: 20rpx;
|
margin-right: 20rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-absolute {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-fixed {
|
|
||||||
position: fixed;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-seach {
|
|
||||||
width: 450rpx;
|
|
||||||
height: 55rpx;
|
|
||||||
background-color: #f8f8f8;
|
|
||||||
border-radius: 30rpx;
|
|
||||||
padding-left: 20rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.move-view {
|
|
||||||
width: 48rpx;
|
|
||||||
height: 10rpx;
|
|
||||||
background-color: #28ba91;
|
|
||||||
border-radius: 4rpx;
|
|
||||||
margin-left: 100rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.move-view-p {
|
|
||||||
width: 45rpx;
|
|
||||||
height: 10rpx;
|
|
||||||
background-color: #28ba91;
|
|
||||||
border-radius: 4rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header-dh {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 20rpx;
|
|
||||||
padding-bottom: 15rpx;
|
|
||||||
height: 70rpx;
|
|
||||||
width: 750rpx;
|
|
||||||
background-color: #f1f1f1;
|
|
||||||
z-index: 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tp-normal {
|
|
||||||
width: 60rpx;
|
|
||||||
height: 60rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tp-sm {
|
|
||||||
width: 45rpx;
|
|
||||||
height: 45rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tp-big {
|
|
||||||
width: 70rpx;
|
|
||||||
height: 70rpx;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.main-color {
|
.main-color {
|
||||||
color: #07d188;
|
color: #07d188;
|
||||||
|
|
|
@ -4,8 +4,10 @@
|
||||||
*/
|
*/
|
||||||
// 开发环境
|
// 开发环境
|
||||||
const dev = {
|
const dev = {
|
||||||
common: "https://common-api.pickmall.cn",
|
common: 'http://192.168.0.109:8890',
|
||||||
buyer: "https://buyer-api.pickmall.cn",
|
buyer: 'http://192.168.0.109:8888',
|
||||||
|
seller: 'http://192.168.0.109:8889',
|
||||||
|
manager: 'http://192.168.0.109:8887'
|
||||||
};
|
};
|
||||||
// 生产环境
|
// 生产环境
|
||||||
const prod = {
|
const prod = {
|
||||||
|
|
5
main.js
5
main.js
|
@ -2,7 +2,6 @@ import Vue from "vue";
|
||||||
import App from "./App";
|
import App from "./App";
|
||||||
import * as filters from "./utils/filters.js"; // global filter
|
import * as filters from "./utils/filters.js"; // global filter
|
||||||
import uView from "uview-ui";
|
import uView from "uview-ui";
|
||||||
import empty from "./components/empty";
|
|
||||||
import store from "./store";
|
import store from "./store";
|
||||||
|
|
||||||
// #ifdef H5
|
// #ifdef H5
|
||||||
|
@ -12,6 +11,8 @@ let btn = Vue.component("airBtn", airBtn); //全局注册
|
||||||
document.body.appendChild(new btn().$mount().$el);
|
document.body.appendChild(new btn().$mount().$el);
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Object.keys(filters).forEach((key) => {
|
Object.keys(filters).forEach((key) => {
|
||||||
Vue.filter(key, filters[key]);
|
Vue.filter(key, filters[key]);
|
||||||
});
|
});
|
||||||
|
@ -30,8 +31,6 @@ const msg = (title, duration = 1500, mask = false, icon = "none") => {
|
||||||
};
|
};
|
||||||
// 引入vuex
|
// 引入vuex
|
||||||
Vue.prototype.$store = store;
|
Vue.prototype.$store = store;
|
||||||
// 全局引入空组件
|
|
||||||
Vue.component("empty", empty);
|
|
||||||
Vue.use(uView);
|
Vue.use(uView);
|
||||||
Vue.config.productionTip = false;
|
Vue.config.productionTip = false;
|
||||||
// 主题色
|
// 主题色
|
||||||
|
|
|
@ -197,7 +197,13 @@
|
||||||
"myPlugin" : {
|
"myPlugin" : {
|
||||||
"version" : "1.1.0",
|
"version" : "1.1.0",
|
||||||
"provider" : "wx738958e0f4c894f9"
|
"provider" : "wx738958e0f4c894f9"
|
||||||
}
|
},
|
||||||
|
"live-player-plugin": {
|
||||||
|
|
||||||
|
"version": "1.3.0",
|
||||||
|
|
||||||
|
"provider": "wx2b03c6e691cd7370"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"h5" : {
|
"h5" : {
|
||||||
|
|
27
pages.json
27
pages.json
|
@ -43,14 +43,6 @@
|
||||||
"enablePullDownRefresh": true
|
"enablePullDownRefresh": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"path": "pages/navigation/selectShops",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "精选店铺"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"path": "pages/navigation/search/searchPage",
|
"path": "pages/navigation/search/searchPage",
|
||||||
"style": {
|
"style": {
|
||||||
|
@ -435,7 +427,9 @@
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "限时抢购",
|
"navigationBarTitleText": "限时抢购",
|
||||||
"app-plus": {
|
"app-plus": {
|
||||||
"titleNView": {}
|
"titleNView": {
|
||||||
|
"homeButton":true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -462,7 +456,7 @@
|
||||||
"path": "lives",
|
"path": "lives",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "white"
|
"navigationBarTextStyle": "black"
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -584,6 +578,7 @@
|
||||||
"enablePullDownRefresh": true,
|
"enablePullDownRefresh": true,
|
||||||
"app-plus": {
|
"app-plus": {
|
||||||
"bounce": "none"
|
"bounce": "none"
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -712,12 +707,12 @@
|
||||||
"text": "分类"
|
"text": "分类"
|
||||||
},
|
},
|
||||||
|
|
||||||
// {
|
{
|
||||||
// "pagePath": "pages/navigation/point/point-mall",
|
"pagePath": "pages/navigation/point/point-mall",
|
||||||
// "iconPath": "static/tabbar/point-mall.png",
|
"iconPath": "static/tabbar/point-mall.png",
|
||||||
// "selectedIconPath": "static/tabbar/point-mall-s.png",
|
"selectedIconPath": "static/tabbar/point-mall-s.png",
|
||||||
// "text": "积分商城"
|
"text": "积分商城"
|
||||||
// },
|
},
|
||||||
{
|
{
|
||||||
"pagePath": "pages/tabbar/cart/cartList",
|
"pagePath": "pages/tabbar/cart/cartList",
|
||||||
"iconPath": "static/tabbar/cart.png",
|
"iconPath": "static/tabbar/cart.png",
|
||||||
|
|
|
@ -1,30 +1,33 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="myTracks">
|
<view class="myTracks">
|
||||||
<empty v-if="whetherEmpty"></empty>
|
<u-empty text="暂无历史记录" style="margin-top:200rpx;" mode="history" v-if="whetherEmpty"></u-empty>
|
||||||
<view v-else v-for="(item, index) in trackList" :key="index">
|
<div v-else>
|
||||||
<view class="myTracks-title" @click="navgaiteToStore(item)">{{item.storeName}}</view>
|
<view v-for="(item, index) in trackList" :key="index">
|
||||||
<view class="myTracks-items">
|
<view class="myTracks-title" @click="navgaiteToStore(item)">{{item.storeName}}</view>
|
||||||
<view class="myTracks-item">
|
<view class="myTracks-items">
|
||||||
<u-checkbox-group>
|
<view class="myTracks-item">
|
||||||
<u-checkbox v-model="item.___isDel" v-if="editFlag" active-color="#ff6b35" style="margin-right: 10rpx" @change="changeChecked(item)"></u-checkbox>
|
<u-checkbox-group>
|
||||||
</u-checkbox-group>
|
<u-checkbox v-model="item.___isDel" v-if="editFlag" active-color="#ff6b35" style="margin-right: 10rpx" @change="changeChecked(item)"></u-checkbox>
|
||||||
<view class="myTracks-item-img" @click.stop="navgaiteToDetail(item)">
|
</u-checkbox-group>
|
||||||
<image :src="item.thumbnail"></image>
|
<view class="myTracks-item-img" @click.stop="navgaiteToDetail(item)">
|
||||||
</view>
|
<image :src="item.thumbnail"></image>
|
||||||
<view class="myTracks-item-content" @click.stop="navgaiteToDetail(item)">
|
|
||||||
<view class="myTracks-item-title">
|
|
||||||
{{ item.goodsName }}
|
|
||||||
<view class="myTracks-item-title-desc"> </view>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="myTracks-item-price">
|
<view class="myTracks-item-content" @click.stop="navgaiteToDetail(item)">
|
||||||
¥{{ item.price | unitPrice }}
|
<view class="myTracks-item-title">
|
||||||
|
{{ item.goodsName }}
|
||||||
|
<view class="myTracks-item-title-desc"> </view>
|
||||||
|
</view>
|
||||||
|
<view class="myTracks-item-price">
|
||||||
|
¥{{ item.price | unitPrice }}
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="myTracks-divider"></view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
<view class="myTracks-divider"></view>
|
<uni-load-more :status="loadStatus"></uni-load-more>
|
||||||
</view>
|
</div>
|
||||||
<uni-load-more :status="loadStatus"></uni-load-more>
|
|
||||||
<view v-if="editFlag">
|
<view v-if="editFlag">
|
||||||
<view class="myTracks-action-placeholder"></view>
|
<view class="myTracks-action-placeholder"></view>
|
||||||
<view class="myTracks-action">
|
<view class="myTracks-action">
|
||||||
|
|
|
@ -97,7 +97,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
async mounted() {
|
async onShow() {
|
||||||
//获取顶级分类
|
//获取顶级分类
|
||||||
let response = await getPointsCategory();
|
let response = await getPointsCategory();
|
||||||
if (response.data.success) {
|
if (response.data.success) {
|
||||||
|
|
|
@ -1,325 +0,0 @@
|
||||||
<template>
|
|
||||||
<view class="selected-store">
|
|
||||||
<!-- 点击搜索出现搜索框 -->
|
|
||||||
<!-- <div v-show="searchHandle" class="searchBox">
|
|
||||||
<u-search placeholder="请输入关键字" :clearabled="true" :show-action="false" v-model="pageParams.name" @blur="searchStore()" @clear="clearSearch()" @confirm="searchStore()" ></u-search>
|
|
||||||
</div> -->
|
|
||||||
<div>
|
|
||||||
<empty v-if="nomsg"></empty>
|
|
||||||
<div class="swiper-item">
|
|
||||||
<scroll-view class="scroll-v" enableBackToTop="true" scroll-with-animation scroll-y>
|
|
||||||
<view class="index-item" v-for="(store,storeIndex) in stores" :key="storeIndex" @click.prevent="storeDetail(store.id)">
|
|
||||||
<div class="item-goods">
|
|
||||||
<u-image width="51px" height="51px" class="item-title-img" :src="store.storeLogo || noLogo">
|
|
||||||
<u-loading slot="loading"></u-loading>
|
|
||||||
</u-image>
|
|
||||||
<view class="item-content">
|
|
||||||
<view>
|
|
||||||
<span>{{ store.storeName }}</span><span class="self-store" v-if="store.selfOperated">自营</span>
|
|
||||||
</view>
|
|
||||||
<view>
|
|
||||||
<u-rate size="24" :count="5" :disabled="true" v-model="store.descriptionScore"></u-rate>
|
|
||||||
</view>
|
|
||||||
<view>{{ store.store_collect }} 关注</view>
|
|
||||||
<button v-if="store.is_connect==0" @click.stop="collectstore(store.id)" class="collect btn-mini">
|
|
||||||
<u-icon name="plus"></u-icon>关注
|
|
||||||
</button>
|
|
||||||
<button v-if="store.is_connect==1" @click.stop="collectstore(store.id)" class="collect btn-mini"></u-icon>已关注</button>
|
|
||||||
</view>
|
|
||||||
<view class="store-num">
|
|
||||||
<!-- <view> {{store.goods_num}}</view> -->
|
|
||||||
<view>进店逛逛</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</view>
|
|
||||||
<uni-load-more :status="loadStatus"></uni-load-more>
|
|
||||||
</scroll-view>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { collectionStore } from "@/api/members.js";
|
|
||||||
import { getstoreList } from "@/api/store.js";
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
tabIndex: 0,
|
|
||||||
currentLeft: 0,
|
|
||||||
stores: [],
|
|
||||||
pageParams: {
|
|
||||||
pageNumber: 1, //页码
|
|
||||||
pageSize: 10, //分页大小
|
|
||||||
category_id: 0, //分类
|
|
||||||
key_words: "", //搜索关键字
|
|
||||||
name: "", //店铺名字
|
|
||||||
},
|
|
||||||
loadStatus: "more",
|
|
||||||
nomsg: false,
|
|
||||||
noLogo: require("@/static/logo.png"),
|
|
||||||
};
|
|
||||||
},
|
|
||||||
onLoad() {
|
|
||||||
this.searchStore();
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
tabIndex(val) {
|
|
||||||
this.pageParams.pageNumber = 1;
|
|
||||||
this.stores = [];
|
|
||||||
this.loadStatus = "more";
|
|
||||||
this.searchStore();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
onReachBottom() {
|
|
||||||
|
|
||||||
this.pageParams.pageNumber++;
|
|
||||||
this.searchStore();
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// 清空店铺
|
|
||||||
clearSearch() {
|
|
||||||
(this.pageParams = {
|
|
||||||
pageNumber: 1, //页码
|
|
||||||
pageSize: 10, //分页大小
|
|
||||||
category_id: 0, //分类
|
|
||||||
key_words: "", //搜索关键字
|
|
||||||
name: "", //店铺名字
|
|
||||||
}),
|
|
||||||
this.searchStore();
|
|
||||||
},
|
|
||||||
|
|
||||||
async searchStore() {
|
|
||||||
uni.showLoading({
|
|
||||||
title: "加载中",
|
|
||||||
});
|
|
||||||
|
|
||||||
//获取商品数据
|
|
||||||
let response = await getstoreList(this.pageParams);
|
|
||||||
uni.hideLoading();
|
|
||||||
if (this.pageParams.name) {
|
|
||||||
this.stores = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
this.stores = this.stores.concat(response.data.result.records);
|
|
||||||
uni.hideLoading();
|
|
||||||
if (
|
|
||||||
response.data.result.total <=
|
|
||||||
response.data.result.current * response.data.result.size
|
|
||||||
) {
|
|
||||||
this.loadStatus = "noMore";
|
|
||||||
} else {
|
|
||||||
this.loadStatus = "loadmore";
|
|
||||||
}
|
|
||||||
if (this.stores.length == 0) {
|
|
||||||
this.nomsg = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
collectstore(id) {
|
|
||||||
//收藏店铺
|
|
||||||
collectionStore(id).then((res) => {
|
|
||||||
if (res.statusCode == 200) {
|
|
||||||
this.$api.msg("收藏成功");
|
|
||||||
this.pageParams.pageNumber = 1;
|
|
||||||
this.stores = [];
|
|
||||||
this.searchStore();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
storeDetail(id) {
|
|
||||||
uni.navigateTo({
|
|
||||||
url: "/pages/product/shopPage?id=" + id,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
<style>
|
|
||||||
page {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.searchBox {
|
|
||||||
margin: 20rpx 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.selected-store {
|
|
||||||
height: 100%;
|
|
||||||
|
|
||||||
.list-scroll-content {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
white-space: nowrap;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
background-color: #fff;
|
|
||||||
color: #333;
|
|
||||||
|
|
||||||
.tab-item {
|
|
||||||
width: 160rpx;
|
|
||||||
height: 80rpx;
|
|
||||||
line-height: 80rpx;
|
|
||||||
text-align: center;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active {
|
|
||||||
border-bottom: 2px solid #ffffff;
|
|
||||||
broder-width: 60rpx;
|
|
||||||
font-size: 30rpx;
|
|
||||||
padding-bottom: 4rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.swiper-box {
|
|
||||||
height: calc(100% - 80rpx);
|
|
||||||
|
|
||||||
.scroll-v {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.index-item {
|
|
||||||
// height: 535rpx;
|
|
||||||
margin: 20rpx;
|
|
||||||
background-color: #ffffff;
|
|
||||||
border-radius: 14rpx;
|
|
||||||
|
|
||||||
.item-goods {
|
|
||||||
height: 170rpx;
|
|
||||||
margin: 0 20rpx;
|
|
||||||
padding: 30rpx 0;
|
|
||||||
// border-bottom: 1px solid #eeeeee;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
image {
|
|
||||||
width: 102rpx;
|
|
||||||
height: 102rpx;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
.item-title-img {
|
|
||||||
width: 102rpx !important;
|
|
||||||
height: 102rpx !important;
|
|
||||||
border-radius: 50% !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-content {
|
|
||||||
flex: 1;
|
|
||||||
line-height: 2em;
|
|
||||||
font-size: $font-sm;
|
|
||||||
position: relative;
|
|
||||||
.collect {
|
|
||||||
position: absolute;
|
|
||||||
width: 100rpx;
|
|
||||||
height: 40rpx;
|
|
||||||
font-size: 26rpx;
|
|
||||||
bottom: 20rpx;
|
|
||||||
right: 30rpx;
|
|
||||||
padding: 0;
|
|
||||||
line-height: 40rpx;
|
|
||||||
text-align: right;
|
|
||||||
padding-right: 14rpx;
|
|
||||||
.u-icon {
|
|
||||||
font-size: 26rpx;
|
|
||||||
position: absolute;
|
|
||||||
top: 7rpx;
|
|
||||||
left: 10rpx;
|
|
||||||
margin-right: 5rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
> view:first-child {
|
|
||||||
font-size: $font-base;
|
|
||||||
color: #333333;
|
|
||||||
font-weight: 700;
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
span:nth-child(2) {
|
|
||||||
position: absolute;
|
|
||||||
font-weight: 400;
|
|
||||||
top: 12rpx;
|
|
||||||
font-size: 18rpx;
|
|
||||||
margin-left: 20rpx;
|
|
||||||
height: 26rpx;
|
|
||||||
width: 50rpx;
|
|
||||||
line-height: 26rpx;
|
|
||||||
text-align: center;
|
|
||||||
color: #ffffff;
|
|
||||||
background-color: #ff6262;
|
|
||||||
border-radius: 4rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
color: #999;
|
|
||||||
margin-left: 30rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.store-num {
|
|
||||||
width: 150rpx;
|
|
||||||
text-align: center;
|
|
||||||
border-left: 1px solid #eeeeee;
|
|
||||||
|
|
||||||
:nth-child(1) {
|
|
||||||
font-size: 26rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
:nth-child(2) {
|
|
||||||
font-size: 18rpx;
|
|
||||||
color: #999;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.goods-in-store {
|
|
||||||
height: 364rpx;
|
|
||||||
white-space: nowrap;
|
|
||||||
padding: 20rpx 0 20rpx 20rpx;
|
|
||||||
|
|
||||||
.goods-item {
|
|
||||||
width: 195rpx;
|
|
||||||
display: inline-block;
|
|
||||||
white-space: normal;
|
|
||||||
margin-right: 20rpx;
|
|
||||||
font-size: $font-sm;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
|
|
||||||
image {
|
|
||||||
width: 195rpx;
|
|
||||||
height: 195rpx;
|
|
||||||
border-radius: 8rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
> view {
|
|
||||||
margin-top: 10rpx;
|
|
||||||
}
|
|
||||||
.goods-item-img {
|
|
||||||
width: 195rpx !important;
|
|
||||||
height: 195rpx !important;
|
|
||||||
border-radius: 8rpx !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
> view:nth-child(2) {
|
|
||||||
color: #ff5a10;
|
|
||||||
}
|
|
||||||
|
|
||||||
.goods-name {
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
-webkit-line-clamp: 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -252,7 +252,6 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发票收据类型
|
* 发票收据类型
|
||||||
*/
|
*/
|
||||||
|
@ -403,73 +402,72 @@ export default {
|
||||||
/**
|
/**
|
||||||
* 提交订单准备支付
|
* 提交订单准备支付
|
||||||
*/
|
*/
|
||||||
submit() {
|
|
||||||
if (!this.address.id) {
|
|
||||||
uni.showToast({
|
|
||||||
title: "请选择地址",
|
|
||||||
duration: 2000,
|
|
||||||
icon: "none",
|
|
||||||
});
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// 创建订单
|
|
||||||
let client;
|
|
||||||
// #ifdef H5
|
|
||||||
client = "H5";
|
|
||||||
// #endif
|
|
||||||
// #ifdef MP-WEIXIN
|
|
||||||
client = "WECHAT_MP";
|
|
||||||
// #endif
|
|
||||||
// #ifdef APP-PLUS
|
|
||||||
client = "APP";
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
let submit = {
|
|
||||||
client,
|
|
||||||
way: this.routerVal.way,
|
|
||||||
remark: this.remarkVal,
|
|
||||||
parentOrderSn: "",
|
|
||||||
};
|
|
||||||
// 如果是拼团并且当前用户不是团长
|
|
||||||
this.routerVal.parentOrder && this.routerVal.parentOrder.orderSn
|
|
||||||
? (submit.parentOrderSn = this.routerVal.parentOrder.orderSn)
|
|
||||||
: delete submit.parentOrderSn;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建订单
|
|
||||||
*/
|
|
||||||
API_Trade.createTrade(submit).then((res) => {
|
|
||||||
if (res.data.success) {
|
|
||||||
uni.showToast({
|
|
||||||
title: "创建订单成功!",
|
|
||||||
duration: 2000,
|
|
||||||
icon: "none",
|
|
||||||
});
|
|
||||||
|
|
||||||
// #ifdef MP-WEIXIN
|
|
||||||
// 微信小程序中点击创建订单直接开始支付
|
|
||||||
this.pay(res.data.result.sn);
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
// #ifndef MP-WEIXIN
|
|
||||||
this.navigateTo(
|
|
||||||
`/pages/cart/payment/payOrder?trade_sn=${res.data.result.sn}`
|
|
||||||
);
|
|
||||||
// #endif
|
|
||||||
} else {
|
|
||||||
uni.showToast({
|
|
||||||
title: "创建订单有误!请稍后重试",
|
|
||||||
duration: 2000,
|
|
||||||
icon: "none",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
// 创建订单
|
// 创建订单
|
||||||
createTradeFun() {
|
createTradeFun() {
|
||||||
// 防抖
|
// 防抖
|
||||||
this.$u.debounce(this.submit(), 3000);
|
this.$u.throttle(() => {
|
||||||
|
if (!this.address.id) {
|
||||||
|
uni.showToast({
|
||||||
|
title: "请选择地址",
|
||||||
|
duration: 2000,
|
||||||
|
icon: "none",
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// 创建订单
|
||||||
|
let client;
|
||||||
|
// #ifdef H5
|
||||||
|
client = "H5";
|
||||||
|
// #endif
|
||||||
|
// #ifdef MP-WEIXIN
|
||||||
|
client = "WECHAT_MP";
|
||||||
|
// #endif
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
client = "APP";
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
let submit = {
|
||||||
|
client,
|
||||||
|
way: this.routerVal.way,
|
||||||
|
remark: this.remarkVal,
|
||||||
|
parentOrderSn: "",
|
||||||
|
};
|
||||||
|
// 如果是拼团并且当前用户不是团长
|
||||||
|
this.routerVal.parentOrder && this.routerVal.parentOrder.orderSn
|
||||||
|
? (submit.parentOrderSn = this.routerVal.parentOrder.orderSn)
|
||||||
|
: delete submit.parentOrderSn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建订单
|
||||||
|
*/
|
||||||
|
API_Trade.createTrade(submit).then((res) => {
|
||||||
|
if (res.data.success) {
|
||||||
|
uni.showToast({
|
||||||
|
title: "创建订单成功!",
|
||||||
|
duration: 2000,
|
||||||
|
icon: "none",
|
||||||
|
});
|
||||||
|
|
||||||
|
// #ifdef MP-WEIXIN
|
||||||
|
// 微信小程序中点击创建订单直接开始支付
|
||||||
|
this.pay(res.data.result.sn);
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
// #ifndef MP-WEIXIN
|
||||||
|
this.navigateTo(
|
||||||
|
`/pages/cart/payment/payOrder?trade_sn=${res.data.result.sn}`
|
||||||
|
);
|
||||||
|
// #endif
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: "创建订单有误!请稍后重试",
|
||||||
|
duration: 2000,
|
||||||
|
icon: "none",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, 3000);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
|
<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
|
||||||
<scroll-view class="list-scroll-content" scroll-y @scrolltolower="loadData(tabIndex)">
|
<scroll-view class="list-scroll-content" scroll-y @scrolltolower="loadData(tabIndex)">
|
||||||
<!-- 空白页 -->
|
<!-- 空白页 -->
|
||||||
<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
|
<u-empty text="暂无订单" mode="list" v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></u-empty>
|
||||||
<!-- 订单列表 -->
|
<!-- 订单列表 -->
|
||||||
<view class="seller-view" :key="oderIndex" v-for="(order, oderIndex) in tabItem.orderList">
|
<view class="seller-view" :key="oderIndex" v-for="(order, oderIndex) in tabItem.orderList">
|
||||||
<!-- 店铺名称 -->
|
<!-- 店铺名称 -->
|
||||||
|
@ -67,10 +67,6 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="nodata" v-if="tabItem.loadStatus === 'noMore'">
|
|
||||||
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<uni-load-more :status="tabItem.loadStatus"></uni-load-more>
|
<uni-load-more :status="tabItem.loadStatus"></uni-load-more>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
|
@ -100,14 +96,12 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import uniLoadMore from "@/components/uni-load-more/uni-load-more.vue";
|
import uniLoadMore from "@/components/uni-load-more/uni-load-more.vue";
|
||||||
import empty from "@/components/empty";
|
|
||||||
import { getOrderList, cancelOrder, confirmReceipt } from "@/api/order.js";
|
import { getOrderList, cancelOrder, confirmReceipt } from "@/api/order.js";
|
||||||
import { getClearReason } from "@/api/after-sale.js";
|
import { getClearReason } from "@/api/after-sale.js";
|
||||||
import LiLiWXPay from "@/js_sdk/lili-pay/wx-pay.js";
|
import LiLiWXPay from "@/js_sdk/lili-pay/wx-pay.js";
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
uniLoadMore,
|
uniLoadMore,
|
||||||
empty,
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -143,7 +143,7 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 评价 -->
|
<!-- 评价 -->
|
||||||
<Evaluation id="main5" :goodsDetail="goodsDetail" v-if="goodsDetail.id" />
|
<Evaluation id="main5" :goodsDetail="goodsDetail" />
|
||||||
|
|
||||||
<!-- 店铺推荐 -->
|
<!-- 店铺推荐 -->
|
||||||
<storeLayout id="main7" :storeDetail="storeDetail" :goodsDetail="goodsDetail" :res="recommendList" />
|
<storeLayout id="main7" :storeDetail="storeDetail" :goodsDetail="goodsDetail" :res="recommendList" />
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
<view class="evaluate-title">评价</view>
|
<view class="evaluate-title">评价</view>
|
||||||
<text class="evaluate-num">{{ commDetail.total || '0' }}+</text>
|
<text class="evaluate-num">{{ commDetail.total || '0' }}+</text>
|
||||||
<text class="tip">好评率 {{ goodsDetail.grade || '100' }}%</text>
|
<text class="tip">好评率 {{ grade || '100' }}%</text>
|
||||||
</view>
|
</view>
|
||||||
<div v-if="commDetail && commDetail.records && commDetail.records.length > 0">
|
<div v-if="commDetail && commDetail.records && commDetail.records.length > 0">
|
||||||
<view class="eva-box" v-for="(commItem,commIndex) in commDetail.records.slice(0,2)" :key="commIndex">
|
<view class="eva-box" v-for="(commItem,commIndex) in commDetail.records.slice(0,2)" :key="commIndex">
|
||||||
|
@ -51,6 +51,7 @@ export default {
|
||||||
lightColor: this.$lightColor,
|
lightColor: this.$lightColor,
|
||||||
// 评论集合
|
// 评论集合
|
||||||
commDetail: [],
|
commDetail: [],
|
||||||
|
grade: "",
|
||||||
// 评论分页提交数据
|
// 评论分页提交数据
|
||||||
params: {
|
params: {
|
||||||
pageNumber: 1,
|
pageNumber: 1,
|
||||||
|
@ -59,9 +60,25 @@ export default {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
props: ["goodsDetail"],
|
props: {
|
||||||
|
goodsDetail: {
|
||||||
|
default: {},
|
||||||
|
type: Object,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
watch: {
|
||||||
|
goodsDetail: {
|
||||||
|
handler(val) {
|
||||||
|
this.grade = val.grade;
|
||||||
|
this.getGoodsComments();
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getGoodsComments();
|
// this.getGoodsComments();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
parseLoaded() {
|
parseLoaded() {
|
||||||
|
|
|
@ -13,33 +13,32 @@
|
||||||
|
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<!-- 直播中 全部 直播回放 -->
|
<!-- 直播中 全部 直播回放 -->
|
||||||
<div class="live-list">
|
<div class="live-item" :class="{'invalid':item.status == 'END'}" v-for="(item,index) in liveList" :key="index" @click="handleLivePlayer(item)">
|
||||||
<div class="live-cover-img">
|
<div class="live-cover-img">
|
||||||
<div class="tips">
|
<div class="tips">
|
||||||
<div class="live-box">
|
<div class="live-box">
|
||||||
<image class="live-gif" src="./static/live.gif"></image>
|
<image class="live-gif" src="./static/live.gif"></image>
|
||||||
</div>
|
</div>
|
||||||
<span> 直播中</span>
|
<span>{{item.status == 'END' ? '已结束' : item.status =='NEW' ? '未开始' : '直播中'}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="bg"></div>
|
<div class="bg"></div>
|
||||||
<image class="zan" src="./static/zan.gif" mode="" />
|
<u-image width="326" height="354" :src="item.shareImg" />
|
||||||
<u-image width="326" height="354" src="https://lilishop-oss.oss-cn-beijing.aliyuncs.com/fe5b8167b0264c53836d08a6a7003cf0.jpeg" />
|
|
||||||
</div>
|
</div>
|
||||||
<div class="live-goods">
|
<div class="live-goods">
|
||||||
<image src="./static/live.png" class="live-icon" mode="" />
|
|
||||||
<div class="live-goods-name">
|
<div class="live-goods-name">
|
||||||
甄选家电好物,尽在超值5月
|
{{item.name}}
|
||||||
</div>
|
</div>
|
||||||
<div class="live-store">
|
<div class="live-store">
|
||||||
<u-image shape="circle" width="50" height="50" src="https://gfs14.gomein.net.cn/T11wElB7Cv1RCvBVdK_360.jpg?v=1" />
|
|
||||||
<span class="wes">lilishop</span>
|
<span class="wes">lilishop</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="live-goods-list">
|
<div class="live-goods-list">
|
||||||
<div class="live-goods-item">
|
<div class="live-goods-item">
|
||||||
<u-image border-radius="20" height="140"></u-image>
|
<u-image border-radius="20" :src="item.roomGoodsList.length !=0 ? item.roomGoodsList[0] : ''" height="140"></u-image>
|
||||||
</div>
|
</div>
|
||||||
<div class="live-goods-item">
|
<div class="live-goods-item">
|
||||||
<u-image border-radius="20" height="140"></u-image>
|
<u-image border-radius="20" :src="item.roomGoodsList.length !=0 ? item.roomGoodsList[1] : ''" height="140"></u-image>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -50,11 +49,12 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { getLiveList } from "@/api/promotions.js";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
activeColor: this.$lightColor,
|
activeColor: this.$lightColor,
|
||||||
|
keyword: "",
|
||||||
// 标签栏
|
// 标签栏
|
||||||
tabs: [
|
tabs: [
|
||||||
{
|
{
|
||||||
|
@ -72,6 +72,8 @@ export default {
|
||||||
background: {
|
background: {
|
||||||
background: "#ff9f28",
|
background: "#ff9f28",
|
||||||
},
|
},
|
||||||
|
// 直播间列表
|
||||||
|
liveList: "",
|
||||||
//轮播图滚动的图片
|
//轮播图滚动的图片
|
||||||
swiperImg: [
|
swiperImg: [
|
||||||
{
|
{
|
||||||
|
@ -89,6 +91,46 @@ export default {
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getLives();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
async getLives() {
|
||||||
|
let res = await getLiveList();
|
||||||
|
if (res.data.success) {
|
||||||
|
this.liveList = res.data.result.records;
|
||||||
|
|
||||||
|
this.liveList.forEach((item) => {
|
||||||
|
console.log();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推荐直播间
|
||||||
|
*/
|
||||||
|
async getStarLive() {},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 进入直播间
|
||||||
|
*/
|
||||||
|
handleLivePlayer(val) {
|
||||||
|
let roomId = val.roomId; // 填写具体的房间号,可通过下面【获取直播房间列表】 API 获取
|
||||||
|
let customParams = encodeURIComponent(
|
||||||
|
JSON.stringify({ path: "pages/index/index", pid: 1 })
|
||||||
|
); // 开发者在直播间页面路径上携带自定义参数,后续可以在分享卡片链接和跳转至商详页时获取,详见【获取自定义参数】、【直播间到商详页面携带参数】章节(上限600个字符,超过部分会被截断)
|
||||||
|
uni.navigateTo({
|
||||||
|
url:
|
||||||
|
"plugin-private://wx2b03c6e691cd7370/pages/live-player-plugin?room_id=" +
|
||||||
|
roomId +
|
||||||
|
"&custom_params=" +
|
||||||
|
customParams,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -96,16 +138,18 @@ export default {
|
||||||
.slot-wrap {
|
.slot-wrap {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
/* 如果您想让slot内容占满整个导航栏的宽度 */
|
/* 如果您想让slot内容占满整个导航栏的宽度 */
|
||||||
flex: 1;
|
flex: 1;
|
||||||
/* 如果您想让slot内容与导航栏左右有空隙 */
|
/* 如果您想让slot内容与导航栏左右有空隙 */
|
||||||
/* padding: 0 30rpx; */
|
/* padding: 0 30rpx; */
|
||||||
}
|
}
|
||||||
|
.invalid {
|
||||||
|
filter: grayscale(1);
|
||||||
|
}
|
||||||
.wrapper {
|
.wrapper {
|
||||||
padding: 0 24rpx;
|
padding: 0 24rpx;
|
||||||
}
|
}
|
||||||
.live-list {
|
.live-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border-radius: 20rpx;
|
border-radius: 20rpx;
|
||||||
|
@ -138,10 +182,6 @@ export default {
|
||||||
margin: 20rpx 0;
|
margin: 20rpx 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
width: calc(100% - 50rpx);
|
width: calc(100% - 50rpx);
|
||||||
> span {
|
|
||||||
color: #999;
|
|
||||||
margin-left: 20rpx;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.live-gif {
|
.live-gif {
|
||||||
width: 20rpx;
|
width: 20rpx;
|
||||||
|
@ -168,6 +208,7 @@ export default {
|
||||||
padding-right: 38rpx;
|
padding-right: 38rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.live-icon,
|
.live-icon,
|
||||||
.zan {
|
.zan {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
@ -69,22 +69,7 @@
|
||||||
this.goods = response.data;
|
this.goods = response.data;
|
||||||
},
|
},
|
||||||
onBackPress() {
|
onBackPress() {
|
||||||
// uni.preloadPage({
|
|
||||||
// url: '/pages/tabbar/home/index',
|
|
||||||
// success: function(res) {
|
|
||||||
// // 通过eventChannel向被打开页面传送数据
|
|
||||||
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
// //莫名其妙的,无法后退,尝试追加参数解决缓存问题
|
|
||||||
// uni.switchTab({
|
|
||||||
// url: '/pages/tabbar/home/index?' + new Date().getTime(),
|
|
||||||
// success: function(res) {
|
|
||||||
// // 通过eventChannel向被打开页面传送数据
|
|
||||||
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 跳转
|
// 跳转
|
||||||
|
|
|
@ -6,7 +6,9 @@
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import tpl from "@/pages/tabbar/home/views.vue";
|
import tpl from "@/pages/tabbar/home/views.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
background: {
|
background: {
|
||||||
|
|
|
@ -10,7 +10,6 @@ const store = new Vuex.Store({
|
||||||
/**
|
/**
|
||||||
* 是否需要强制登录
|
* 是否需要强制登录
|
||||||
*/
|
*/
|
||||||
|
|
||||||
forcedLogin: false,
|
forcedLogin: false,
|
||||||
|
|
||||||
distributionId:"", //分销员Id 如果当前账户从未登录过时记录
|
distributionId:"", //分销员Id 如果当前账户从未登录过时记录
|
||||||
|
|
|
@ -38,7 +38,6 @@ function getTokenDebounce() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
console.log(error);
|
|
||||||
cleanStorage();
|
cleanStorage();
|
||||||
success = false;
|
success = false;
|
||||||
lock = false;
|
lock = false;
|
||||||
|
|
Loading…
Reference in New Issue