This commit is contained in:
陈浩 2025-04-30 14:42:40 +08:00
parent 192f493535
commit 6dd129e7ce
48 changed files with 1335 additions and 799 deletions

26
App.vue
View File

@ -202,16 +202,22 @@ export default {
confirmText: '跳转',
success: function (callback) {
if (callback.confirm) {
const path = res.split(config.shareLink)[1];
if (path.indexOf('tabbar') != -1) {
uni.switchTab({
url: path
});
} else {
uni.navigateTo({
url: path
});
}
console.log(res.split(config.shareLink));
uni.setClipboardData({
data: '',
success: () => {
const path = res.split(config.shareLink)[1];
if (path.indexOf('tabbar') != -1) {
uni.switchTab({
url: path
});
} else {
uni.navigateTo({
url: path
});
}
}
});
}
}
});

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 456 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 456 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 456 KiB

View File

@ -146,7 +146,7 @@ export const contactButtonConfig = {
// ---------------------
addFriend: {
key: 'addFriend',
label: '发送申请',
label: '关注好友',
type: CONTACT_INFO_BUTTON_TYPE.SUBMIT,
onClick: (props: {
contactInfoData: any;
@ -163,7 +163,7 @@ export const contactButtonConfig = {
},
deleteFriend: {
key: 'deleteFriend',
label: '删除好友',
label: '取消关注',
type: CONTACT_INFO_BUTTON_TYPE.CANCEL,
onClick: (props: { contactInfoData: any; [propsName: string]: any }) => {
deleteFriend(props?.contactInfoData?.userID);

View File

@ -172,7 +172,7 @@
]"
@click="onContactInfoButtonClicked(item)"
>
{{ TUITranslateService.t(`TUIContact.${item.label}`) }}
{{ TUITranslateService.t(`${item.label}`) }}
</button>
</div>
</div>

View File

@ -47,6 +47,19 @@ export function getGoodsRelated(params) {
method: Method.GET,
});
}
/**
* 扫码核销
* @param orderSn 订单号
* @param verificationCode 核销码
* @returns {AxiosPromise}
*/
export function getGoodstake(orderSn, verificationCode,params) {
return http.request({
url: `/order/take/${orderSn}/${verificationCode}`,
method: Method.PUT,
params
});
}
/**
@ -62,6 +75,18 @@ export function getGoodsList(params) {
});
}
/**
* 获取商品列表--4.25
* @param params
* @returns {AxiosPromise}
*/
export function getGoodscategory(params) {
return http.request({
url: "/goods/goods/category",
method: Method.GET,
params,
});
}
/**
* 获取上新商品列表
* @param params

View File

@ -1,6 +1,8 @@
import {http, Method} from '@/utils/request.js';
// import { http, Method } from "@/utils/request.js";
import api from "@/config/api.js";
/**
* 签到
* @param params
@ -47,6 +49,42 @@ export function getcompleted(data) {
params:data
});
}
/**
* 我的核销-收益明细
* @param params
*/
export function getgetAmount(data) {
return http.request({
url:'/income/details',
method: Method.GET,
needToken: true,
params:data
});
}
/**
* 我的核销
* @param params
*/
export function getinvitation(data) {
return http.request({
url:'/income/invitation-stats',
method: Method.GET,
needToken: true,
params:data
});
}
/**
* 我的核销-分佣
* @param params
*/
export function gettotal(data) {
return http.request({
url:'/income/total',
method: Method.GET,
needToken: true,
params:data
});
}
/**

View File

@ -18,6 +18,17 @@ export function getStoreList(params) {
params,
});
}
/**
* 获取店铺列表
* @param params
*/
export function getExpertStoreList(params) {
return http.request({
url: '/store/store/ExpertStoreList',
method: Method.GET,
params,
});
}
/**
* 获取店铺基本信息

View File

@ -215,7 +215,19 @@ export function initiatePay(paymentMethod, paymentClient, params) {
params,
});
}
/**
* 发起支付
* @param paymentMethod
* @param
*/
export function createWithVerificatio(params) {
return http.request({
url: `order/createWithVerification`,
method: Method.POST,
needToken: true,
params,
});
}
/**
* 查询物流

View File

@ -191,6 +191,10 @@ export default {
default: "",
type: null,
},
storeDetail: {
default: "",
type: null,
},
selectedSku: {
default: "",
type: null,
@ -207,6 +211,8 @@ export default {
default: "",
type: null,
},
},
watch: {
buyType: {
@ -317,6 +323,7 @@ export default {
let data = {
skuId: this.goodsDetail.id,
num: this.num,
storeId:this.storeDetail.storeId,
ste: storedSte,
};
@ -345,7 +352,7 @@ export default {
API_trade.addToCart(data).then((res) => {
if (res.data.code == 200) {
uni.navigateTo({
url: `/pages/order/fillorder?way=${data.cartType}&addr=${
url: `/pages/order/fillorder?ste=${storedSte}&way=${data.cartType}&addr=${
this.addr.id || ""
}&parentOrder=${encodeURIComponent(
JSON.stringify(this.parentOrder)

View File

@ -1,66 +1,48 @@
<template>
<!-- 遮罩层 -->
<u-popup
@close="close"
v-model="show"
mode="bottom"
border-radius="30"
height="260rpx"
>
<view class="share-title">
<span>分享至</span>
</view>
<view class="share-list">
<!-- #ifdef MP-WEIXIN -->
<view class="share-item">
<button
class="share-btn"
open-type="share"
>
<u-icon
color="#04BE02"
size="80"
name="weixin-fill"
></u-icon>
微信好友
</button>
</view>
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<view
class="share-item"
@click="handleShare(item)"
v-for="(item, index) in list"
:key="index"
>
<u-icon
:color="item.color"
size="80"
:name="item.icon"
></u-icon>
<view>{{ item.title }}</view>
</view>
<!-- #endif -->
<!-- #ifdef H5 -->
<view
class="share-item"
@click="copyLink()"
>
<u-icon
color="#b4aee8"
size="80"
name="share-fill"
></u-icon>
<view>{{ '复制链接' }}</view>
</view>
<!-- #endif -->
</view>
</u-popup>
<!-- 遮罩层 -->
<u-popup
@close="close"
v-model="show"
mode="bottom"
border-radius="30"
height="260rpx"
>
<view class="share-title">
<span>分享至</span>
</view>
<view class="share-list">
<!-- #ifdef MP-WEIXIN -->
<view class="share-item">
<button class="share-btn" open-type="share">
<u-icon color="#04BE02" size="80" name="weixin-fill"></u-icon>
微信好友
</button>
</view>
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<view
class="share-item"
@click="handleShare(item)"
v-for="(item, index) in list"
:key="index"
>
<u-icon :color="item.color" size="80" :name="item.icon"></u-icon>
<view>{{ item.title }}</view>
</view>
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="share-item" @click="copyLink()">
<u-icon color="#b4aee8" size="80" name="share-fill"></u-icon>
<view>{{ "复制链接" }}</view>
</view>
<!-- #endif -->
</view>
</u-popup>
</template>
<script>
import { h5Copy } from '@/js_sdk/h5-copy/h5-copy.js';
import configs from '@/config/config';
import mpShare from 'uview-ui/libs/mixin/mpShare.js';
import { h5Copy } from "@/js_sdk/h5-copy/h5-copy.js";
import configs from "@/config/config";
import mpShare from "uview-ui/libs/mixin/mpShare.js";
export default {
mixins: [mpShare],
@ -70,19 +52,19 @@ export default {
show: true,
list: [
{
color: "#04BE02",
color: "#FE3C3C",
title: "微信好友",
icon: "weixin-fill",
type: 0,
},
{
color: "#04BE02",
color: "#FE3C3C",
title: "朋友圈",
icon: "weixin-circle-fill",
type: 1,
},
{
color: "#04BE02",
color: "#FE3C3C",
title: "消息",
icon: "man-add-fill",
type: 2,
@ -125,22 +107,24 @@ export default {
},
// #endif
shareTitle() {
let shareTitle;
if (this.type == 'goods') {
shareTitle = `我发现了一个${this.goodsName}商品快来跟我一起看看吧`;
} else if (this.type == 'shops') {
shareTitle = `我发现了一个${this.goodsName}店铺快来跟我一起看看吧`;
} else if (this.type == 'pintuan') {
shareTitle = `我拼了一个${this.goodsName}快来跟我一起抢购吧!`;
} else if (this.type == 'kanjia') {
shareTitle = `请快来帮我砍一刀${this.goodsName}`;
}
return shareTitle;
},
shareTitle() {
let shareTitle;
let noSpaces = this.goodsName.split(" ").join("");
if (this.type == "goods") {
shareTitle =`我发现了一个${noSpaces}商品快来跟我一起看看吧`;
} else if (this.type == "shops") {
shareTitle =`我发现了一个${noSpaces}店铺快来跟我一起看看吧`;
} else if (this.type == "pintuan") {
shareTitle =`我拼了一个${noSpaces}快来跟我一起抢购吧!`;
} else if (this.type == "kanjia") {
shareTitle =`请快来帮我砍一刀${noSpaces}`;
}
return shareTitle;
},
// #ifdef APP-PLUS
handleShare(val) {
if (val.type <= 1) {
let scene; // "WXSenceTimeline WXSceneSession "
val.type == 1
@ -149,10 +133,11 @@ export default {
uni.share({
provider: "weixin",
scene: scene,
href: configs.shareLink + this.link,
imageUrl: this.thumbnail,
type: 0,
summary: this.goodsName,
href: configs.schemeLink + this.link+'&info='+this.shareTitle(),
imageUrl: this.imgfun(this.thumbnail),
type:1,
// summary: configs.schemeLink + this.link+'&info='+this.shareTitle(),
summary: '请复制到无终街APP'+ configs.shareLink + this.link,
title: this.shareTitle(),
success: function (res) {
uni.showToast({
@ -208,36 +193,36 @@ export default {
};
</script>
<style lang="scss" scoped>
@import './mp-share.scss';
@import "./mp-share.scss";
.share-title {
position: relative;
height: 90rpx;
font-size: 32rpx;
line-height: 90rpx;
text-align: center;
> .share-close {
position: absolute;
right: 0;
right: 20rpx;
top: 30rpx;
}
position: relative;
height: 90rpx;
font-size: 32rpx;
line-height: 90rpx;
text-align: center;
> .share-close {
position: absolute;
right: 0;
right: 20rpx;
top: 30rpx;
}
}
button:after {
border: none;
border: none;
}
.share-list {
padding: 0 32rpx;
display: flex;
text-align: center;
align-items: center;
> .share-item {
width: 25%;
font-size: 24rpx;
color: #666;
> * {
margin: 8rpx 0;
}
}
padding: 0 32rpx;
display: flex;
text-align: center;
align-items: center;
> .share-item {
width: 25%;
font-size: 24rpx;
color: #666;
> * {
margin: 8rpx 0;
}
}
}
</style>

View File

@ -6,18 +6,21 @@
const dev = {
// common: "https://common-api.pickmall.cn",
// buyer: "https://buyer-api.pickmall.cn",
common: "http://192.168.1.211:8890",
buyer: "http://192.168.1.211:8888",
vlog: "http://192.168.1.86:8099",
web: "http://192.168.1.211:8099",
common: "http://43.143.227.203:8890",
buyer: "http://43.143.227.203:8888",
vlog: "http://43.143.227.203:8099",
web: "http://43.143.227.203:8099",
seller: "http://43.143.227.203:8889",
};
// 生产环境
const prod = {
// common: "https://common-api.pickmall.cn",
// buyer: "https://buyer-api.pickmall.cn",
common: "http://192.168.1.211:8890",
buyer: "http://192.168.1.211:8888",
vlog: "http://192.168.1.211:8099",
common: "http://43.143.227.203:8890",
buyer: "http://43.143.227.203:8888",
vlog: "http://43.143.227.203:8099",
web: "http://43.143.227.203:8099",
seller: "http://43.143.227.203:8889",
};
//默认生产环境

View File

@ -4,7 +4,7 @@ export default {
name: name,
schemeLink: `${schemeName}://`, //唤起app地址
downloadLink: "https://pickmall.cn/download-page/index.html", //下载地址下载app的地址
shareLink: "https://m-b2b2c.pickmall.cn", //分享地址也就是在h5中默认的复制地址
shareLink: "https://wuzhongjie.com.cn", //分享地址也就是在h5中默认的复制地址
appid: "wx6f10f29075dc1b0b", //小程序唯一凭证,即 AppID可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态)
appSecret: "6dfbe0c72380dce5d49d65b3c91059b1", //可在 manifest.json 查看
aMapKey: "AOHBZ-VCEL3-XX73N-O623U-FMTP6-ASBTD", //在腾讯的中申请web端key

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 456 KiB

View File

@ -174,7 +174,8 @@
"hdpi" : "CustomStartPage/start-page.9.png",
"xhdpi" : "CustomStartPage/start-page.9.png",
"xxhdpi" : "CustomStartPage/start-page.9.png"
}
},
"useOriginalMsgbox" : true
}
},
"nativePlugins" : {}

View File

@ -504,6 +504,13 @@
"navigationBarTitleText": "用户"
}
},
{
"path": "mydistribution/my/income",
"style": {
"navigationBarTitleText": "收益明细"
}
},
{
"path": "mydistribution/my/consumption",
"style": {
@ -763,7 +770,7 @@
}, {
"path": "help/tips",
"style": {
"navigationBarTitleText": ""
"navigationBarTitleText": "公司介绍"
}
}, {
"path": "point/myPoint",

View File

@ -5,8 +5,17 @@
<image class="img" src="@/pages/cart/static/pay.png" />
<p class="ptips">收银台</p>
<p class="ptips">剩余支付时间
<u-count-down :show-days="false" :show-border="true" font-size="28" color="#008ffa" border-color="#008ffa" ref="uCountDown" :timestamp="autoCancel"></u-count-down>
<p class="ptips">
剩余支付时间
<u-count-down
:show-days="false"
:show-border="true"
font-size="28"
color="#008ffa"
border-color="#008ffa"
ref="uCountDown"
:timestamp="autoCancel"
></u-count-down>
</p>
<p class="ptips">
支付金额
@ -14,24 +23,45 @@
</p>
</div>
</div>
<div class="__pay_form__">
</div>
<div class="__pay_form__"></div>
<div class="block-4" v-if="cashierParams.price > 0">
<div class="payItem">支付方式</div>
<div class="payItem" v-for="(item, index) in payList" :key="index">
<u-row class="row">
<div class="col1" @click="awaitPay(item, index)" size="100" style="text-align:left;">
<div
class="col1"
@click="awaitPay(item, index)"
size="100"
style="text-align: left"
>
<div v-if="item == 'ALIPAY'">
<u-icon class="method_icon" name="zhifubao-circle-fill" color="#008ffa" size="80"></u-icon>
<u-icon
class="method_icon"
name="zhifubao-circle-fill"
color="#008ffa"
size="80"
></u-icon>
<span class="method_name">支付宝</span>
</div>
<div v-if="item == 'WECHAT'">
<u-icon class="method_icon" name="weixin-circle-fill" color="#00c98b" size="80"></u-icon>
<u-icon
class="method_icon"
name="weixin-circle-fill"
color="#00c98b"
size="80"
></u-icon>
<span class="method_name">微信</span>
</div>
<div v-if="item == 'WALLET'">
<u-icon class="method_icon" name="red-packet-fill" color="#dd6161" size="80"></u-icon>
<span class="method_name">余额支付(当前余额¥{{ walletValue | unitPrice }})</span>
<u-icon
class="method_icon"
name="red-packet-fill"
color="#dd6161"
size="80"
></u-icon>
<span class="method_name"
>余额支付(当前余额¥{{ walletValue | unitPrice }})</span
>
</div>
</div>
<div class="col3" @click="awaitPay(item)" textAlign="right">
@ -43,357 +73,341 @@
</div>
</template>
<script>
import * as API_Trade from "@/api/trade";
import {payCallback} from '@/api/members'
export default {
data() {
return {
//
routerVal: "",
//
cashierParams: "",
//
payList: "",
//sn
sn: "",
//
orderType: "",
//
exception: {},
//
payForm: {},
// APP/WECHAT_MP/H5/NATIVE app//h5/
paymentType: "",
// APP/NATIVE/JSAPI/H5
paymentClient: "",
//
walletValue: 0.0,
//
autoCancel: 0,
import * as API_Trade from "@/api/trade";
import { payCallback } from "@/api/members";
export default {
data() {
return {
//
routerVal: "",
//
cashierParams: "",
//
payList: "",
//sn
sn: "",
//
orderType: "",
//
exception: {},
//
payForm: {},
// APP/WECHAT_MP/H5/NATIVE app//h5/
paymentType: "",
// APP/NATIVE/JSAPI/H5
paymentClient: "",
//
walletValue: 0.0,
//
autoCancel: 0,
};
},
onLoad(val) {
this.routerVal = val;
};
},
onLoad(val) {
this.routerVal = val;
//
// #ifdef APP-PLUS
this.paymentType = "APP";
this.paymentClient = "APP";
//#endif
// #ifdef MP-WEIXIN
this.paymentType = "WECHAT_MP";
this.paymentClient = "MP";
//#endif
// #ifdef H5
this.paymentType = "H5";
//使使h5
// h5appJSAPI
this.paymentClient = this.isWeiXin() ? "JSAPI" : "H5";
//#endif
//
// #ifdef APP-PLUS
this.paymentType = "APP";
this.paymentClient = "APP";
//#endif
// #ifdef MP-WEIXIN
this.paymentType = "WECHAT_MP";
this.paymentClient = "MP";
//#endif
// #ifdef H5
this.paymentType = "H5";
//使使h5
// h5appJSAPI
this.paymentClient = this.isWeiXin() ? "JSAPI" : "H5";
//#endif
//
},
onBackPress(e) {
if (e.from == "backbutton") {
if (this.routerVal.recharge_sn) {
uni.switchTab({
url: "/pages/tabbar/user/my",
});
} else {
uni.redirectTo({
url: "/pages/order/myOrder?status=0",
});
}
return true; //
}
},
mounted() {
this.cashierData();
},
methods: {
/**
* 支付成功后跳转
*/
callback(paymentMethod) {
uni.navigateTo({
url:
"/pages/cart/payment/success?paymentMethod=" +
paymentMethod +
"&payPrice=" +
this.cashierParams.price +
"&orderType=" +
this.orderType,
});
},
/**
* 获取收银详情
*/
cashierData() {
let parms = {};
if (this.routerVal.recharge_sn) {
//
this.sn = this.routerVal.recharge_sn;
this.orderType = "RECHARGE";
} else if (this.routerVal.trade_sn) {
this.sn = this.routerVal.trade_sn;
this.orderType = "TRADE";
} else {
this.sn = this.routerVal.order_sn;
this.orderType = "ORDER";
}
parms.sn = this.sn;
parms.orderType = this.orderType;
parms.clientType = this.paymentType;
API_Trade.getCashierData(parms).then((res) => {
if (res.data.success) {
this.cashierParams = res.data.result;
//
},
onBackPress(e) {
if (e.from == "backbutton") {
if(this.routerVal.recharge_sn){
uni.switchTab({
url: '/pages/tabbar/user/my'
});
}
else{
uni.redirectTo({
url: "/pages/order/myOrder?status=0",
});
}
return true; //
}
},
mounted() {
this.cashierData();
},
methods: {
// #ifdef MP-WEIXIN
this.payList = res.data.result.support.filter((item) => {
return item != "ALIPAY";
});
// #endif
/**
* 支付成功后跳转
*/
callback(paymentMethod){
uni.navigateTo({
url: "/pages/cart/payment/success?paymentMethod=" +
paymentMethod +
"&payPrice=" +
this.cashierParams.price+
"&orderType="+this.orderType
});
},
// #ifndef MP-WEIXIN
if (this.routerVal.recharge_sn) {
this.payList = res.data.result.support.filter((item) => {
return item != "WALLET";
});
} else {
this.payList = res.data.result.support;
}
// #ifndef APP-PLUS
//
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
this.payList = res.data.result.support.filter((item) => {
return item != "ALIPAY";
});
}
// #endif
/**
* 获取收银详情
*/
cashierData() {
let parms = {};
// #endif
if (this.routerVal.recharge_sn) {
//
this.sn = this.routerVal.recharge_sn;
this.orderType = "RECHARGE";
} else if (this.routerVal.trade_sn) {
this.sn = this.routerVal.trade_sn;
this.orderType = "TRADE";
} else {
this.sn = this.routerVal.order_sn;
this.orderType = "ORDER";
}
parms.sn = this.sn;
parms.orderType = this.orderType;
parms.clientType = this.paymentType;
API_Trade.getCashierData(parms).then((res) => {
this.walletValue = res.data.result.walletValue;
this.autoCancel =
(res.data.result.autoCancel - new Date().getTime()) / 1000;
} else if (res.data.code == 32000) {
setTimeout(() => {
uni.redirectTo({
url: `/pages/order/myOrder?status=0`,
});
}, 500);
}
});
},
if(res.data.success){
this.cashierParams = res.data.result;
awaitPay(payment) {
this.$u.throttle(() => {
this.pay(payment);
}, 2000);
},
// #ifdef MP-WEIXIN
this.payList = res.data.result.support.filter((item) => {
return item != "ALIPAY";
});
// #endif
//
async pay(payment) {
console.log(this.routerVal);
// #ifndef MP-WEIXIN
if(this.routerVal.recharge_sn){
this.payList = res.data.result.support.filter((item) => {
return item != "WALLET";
})
}
else{
this.payList = res.data.result.support;
}
// #ifndef APP-PLUS
//
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
//
const sn = this.sn;
// |
const orderType = this.orderType;
this.payList = res.data.result.support.filter((item) => {
return item != "ALIPAY";
});
const clientType = this.paymentType;
let params = {
sn,
orderType,
clientType,
};
}
// #endif
// WECHAT/ALIPAY
const paymentMethod = payment;
// APP/NATIVE/JSAPI/H5
const paymentClient = this.paymentClient;
// #endif
// #ifdef APP-PLUS
//APP pay
//
await API_Trade.initiatePay(paymentMethod, paymentClient, params).then(
(signXml) => {
//
if (!signXml.data.success) {
uni.showToast({
title: signXml.data.message,
duration: 2000,
});
return;
}
let payForm = signXml.data.result;
this.walletValue = res.data.result.walletValue;
this.autoCancel =
(res.data.result.autoCancel - new Date().getTime()) / 1000;
}
else if(res.data.code == 32000){
setTimeout(()=>{
uni.redirectTo({
url: `/pages/order/myOrder?status=0`
});
},500)
let paymentType = paymentMethod === "WECHAT" ? "wxpay" : "alipay";
uni.requestPayment({
provider: paymentType,
orderInfo: payForm,
success: (e) => {
console.log(e);
uni.showToast({
icon: "none",
title: "支付成功!",
});
}
});
},
this.callback(paymentMethod);
},
fail: (e) => {
console.log(this);
this.exception = e;
uni.showModal({
content: "支付失败,如果您已支付,请勿反复支付",
showCancel: false,
});
},
});
}
);
//APP pay
// #endif
//#ifdef H5
//H5 pay
await API_Trade.initiatePay(paymentMethod, paymentClient, params).then(
(res) => {
let response = res.data;
//h5
if (paymentMethod !== "ALIPAY") {
//
if (!response.success) {
uni.showToast({
title: response.message,
duration: 2000,
icon: "none",
});
return;
}
}
if (paymentMethod === "ALIPAY") {
document.write(response);
} else if (paymentMethod === "WECHAT") {
if (this.isWeiXin()) {
//
WeixinJSBridge.invoke(
"getBrandWCPayRequest",
response.result,
(res) => {
if (res.err_msg == "get_brand_wcpay_request:ok") {
// 使,
//res.err_msgok
uni.showToast({
icon: "none",
title: "支付成功!",
});
this.callback(paymentMethod);
} else {
uni.showModal({
content: "支付失败,如果您已支付,请勿反复支付",
showCancel: false,
});
}
}
);
} else {
window.location.href = JSON.parse(response.result).h5_url;
}
} else if (paymentMethod === "WALLET") {
uni.showToast({
title: response.message,
icon: "none",
});
if (response.success) {
this.callback(paymentMethod);
}
}
}
);
//H5pay
// #endif
awaitPay(payment){
this.$u.throttle(()=>{
this.pay(payment)
}, 2000)
},
//
async pay(payment) {
//
const sn = this.sn;
// |
const orderType = this.orderType;
const clientType = this.paymentType;
let params = {
sn,
orderType,
clientType,
};
// WECHAT/ALIPAY
const paymentMethod = payment;
// APP/NATIVE/JSAPI/H5
const paymentClient = this.paymentClient;
// #ifdef APP-PLUS
//APP pay
//
await API_Trade.initiatePay(paymentMethod, paymentClient, params).then(
(signXml) => {
//
if (!signXml.data.success) {
uni.showToast({
title: signXml.data.message,
duration: 2000
});
return;
}
let payForm = signXml.data.result;
let paymentType = paymentMethod === "WECHAT" ? "wxpay" : "alipay";
uni.requestPayment({
provider: paymentType,
orderInfo: payForm,
success: (e) => {
console.log(e);
uni.showToast({
icon: "none",
title: "支付成功!",
});
this.callback(paymentMethod)
},
fail: (e) => {
console.log(this);
this.exception = e;
uni.showModal({
content: "支付失败,如果您已支付,请勿反复支付",
showCancel: false,
});
},
});
}
);
//APP pay
// #endif
//#ifdef H5
//H5 pay
await API_Trade.initiatePay(paymentMethod, paymentClient, params).then(
(res) => {
let response = res.data;
//h5
if(paymentMethod !== "ALIPAY"){
//
if (!response.success) {
uni.showToast({
title: response.message,
duration: 2000,
icon:"none"
});
return;
}
}
if (paymentMethod === "ALIPAY") {
document.write(response);
} else if (paymentMethod === "WECHAT") {
if (this.isWeiXin()) {
//
WeixinJSBridge.invoke(
"getBrandWCPayRequest",
response.result,
(res) => {
if (res.err_msg == "get_brand_wcpay_request:ok") {
// 使,
//res.err_msgok
uni.showToast({
icon: "none",
title: "支付成功!",
});
this.callback(paymentMethod)
} else {
uni.showModal({
content: "支付失败,如果您已支付,请勿反复支付",
showCancel: false,
});
}
}
);
} else {
window.location.href = JSON.parse(response.result).h5_url;
}
} else if (paymentMethod === "WALLET") {
uni.showToast({
title: response.message,
icon: "none",
});
if (response.success) {
this.callback(paymentMethod)
}
}
}
);
//H5pay
// #endif
//#ifdef MP-WEIXIN
//
await API_Trade.initiatePay(paymentMethod, paymentClient, params).then(
(res) => {
let response = res.data.result;
//
if (!res.data.success) {
uni.showModal({
content: res.data.message,
showCancel: false,
})
return;
}
if (paymentMethod === "WECHAT") {
uni.requestPayment({
provider: "wxpay",
appid: response.appid,
timeStamp: response.timeStamp,
nonceStr: response.nonceStr,
package: response.package,
signType: response.signType,
paySign: response.paySign,
success: (e) => {
console.log(e);
uni.showToast({
icon: "none",
title: "支付成功!",
});
this.callback(paymentMethod)
},
fail: (e) => {
console.log(e);
this.exception = e;
uni.showModal({
content: "支付失败,如果您已支付,请勿反复支付",
showCancel: false,
});
},
});
} else {
uni.showToast({
icon: "none",
title: "支付成功!",
});
this.callback(paymentMethod)
}
}
);
// #endif
},
isWeiXin() {
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
return true;
} else {
return false;
}
},
},
};
//#ifdef MP-WEIXIN
//
await API_Trade.initiatePay(paymentMethod, paymentClient, params).then(
(res) => {
let response = res.data.result;
//
if (!res.data.success) {
uni.showModal({
content: res.data.message,
showCancel: false,
});
return;
}
if (paymentMethod === "WECHAT") {
uni.requestPayment({
provider: "wxpay",
appid: response.appid,
timeStamp: response.timeStamp,
nonceStr: response.nonceStr,
package: response.package,
signType: response.signType,
paySign: response.paySign,
success: (e) => {
console.log(e);
uni.showToast({
icon: "none",
title: "支付成功!",
});
this.callback(paymentMethod);
},
fail: (e) => {
console.log(e);
this.exception = e;
uni.showModal({
content: "支付失败,如果您已支付,请勿反复支付",
showCancel: false,
});
},
});
} else {
uni.showToast({
icon: "none",
title: "支付成功!",
});
this.callback(paymentMethod);
}
}
);
// #endif
},
isWeiXin() {
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
return true;
} else {
return false;
}
},
},
};
</script>
<style scoped lang="scss">
.method_icon {

View File

@ -1,18 +1,35 @@
<template>
<view class="address">
<u-empty class="empty" v-if="this.addressList == 0" text="暂无收货地址" mode="address"></u-empty>
<view class="list" >
<view class="item c-content" v-for="(item, index) in addressList" :key="index">
<u-empty
class="empty"
v-if="this.addressList == 0"
text="暂无收货地址"
mode="address"
></u-empty>
<view class="list">
<view
class="item c-content"
v-for="(item, index) in addressList"
:key="index"
>
<view class="basic">
<text>{{ item.name }}</text>
<text>{{ item.mobile }}</text>
<text class="default" v-show="item.isDefault">默认</text>
<view>
<div class="region">
<span v-if="item.consigneeAddressPath[0]">{{item.consigneeAddressPath[0]}}</span>
<span v-if="item.consigneeAddressPath[1]">{{item.consigneeAddressPath[1]}}</span>
<span v-if="item.consigneeAddressPath[2]">{{item.consigneeAddressPath[2]}}</span>
<span v-if="item.consigneeAddressPath[3]">{{item.consigneeAddressPath[3]}}</span>
<span v-if="item.consigneeAddressPath[0]">{{
item.consigneeAddressPath[0]
}}</span>
<span v-if="item.consigneeAddressPath[1]">{{
item.consigneeAddressPath[1]
}}</span>
<span v-if="item.consigneeAddressPath[2]">{{
item.consigneeAddressPath[2]
}}</span>
<span v-if="item.consigneeAddressPath[3]">{{
item.consigneeAddressPath[3]
}}</span>
<span>{{ item.detail }}</span>
</div>
</view>
@ -39,7 +56,12 @@
添加新收货人
</button>
<u-action-sheet :list="removeList" :tips="tips" v-model="showAction" @click="deleteAddressMessage"></u-action-sheet>
<u-action-sheet
:list="removeList"
:tips="tips"
v-model="showAction"
@click="deleteAddressMessage"
></u-action-sheet>
</view>
</template>
@ -69,8 +91,8 @@ export default {
},
//
onBackPress(e) {
uni.switchTab({
url: "/pages/tabbar/user/my",
uni.navigateTo({
url: `/pages/tabbar/user/my`,
});
return true;
},

View File

@ -26,20 +26,20 @@ export default {
walletNum: 0,
};
},
async onShow() {
if (this.$options.filters.isLogin("auth")) {
let result = await getUserWallet(); //
this.walletNum = result.data.result.memberWallet;
} else {
uni.showToast({
icon: "none",
duration: 3000,
title: "请先登录!",
});
// async onShow() {
// if (this.$options.filters.isLogin("auth")) {
// let result = await getUserWallet(); //
// this.walletNum = result.data.result.memberWallet;
// } else {
// uni.showToast({
// icon: "none",
// duration: 3000,
// title: "",
// });
this.$options.filters.navigateToLogin("redirectTo");
}
},
// this.$options.filters.navigateToLogin("redirectTo");
// }
// },
methods: {
back() {
uni.switchTab({

View File

@ -63,6 +63,7 @@
mode="date"
@change="changetime"
max-date="30000"
range-color="#FE3C3C"
></u-calendar>
</u-form-item>
<u-form-item label="经营范围">
@ -80,8 +81,9 @@
</u-checkbox-group>
</u-form-item>
</u-form>
<button @click="consub" :style="{ background: '#FE3C3C' }"
class="bunem">提交</button>
<button @click="consub" :style="{ background: '#FE3C3C' }" class="bunem">
提交
</button>
<u-toast ref="uToast" />
</view>
</template>
@ -282,7 +284,6 @@ export default {
this.form.idPhoto = images;
},
changetime(value) {
console.log(value); //
this.form.idExpiryDate = value.result; // form.idExpiryDate
},
// checkbox
@ -308,6 +309,12 @@ export default {
<style lang="scss" scoped>
::v-deep {
.u-btn--primary {
color: #ffffff;
border-color: #fe3c3c !important;
background-color: #fe3c3c !important;
}
.u-form-item--left__content {
width: 100px;
white-space: nowrap;
@ -315,25 +322,25 @@ export default {
.u-input {
margin-left: 30px; //
}
.u-checkbox__icon-wrap--checked{
.u-checkbox__icon-wrap--checked {
border-color: #fe3c3c !important;
background-color: #fe3c3c !important;
}
.u-radio__icon-wrap--checked{
.u-radio__icon-wrap--checked {
border-color: #fe3c3c !important;
background-color: #fe3c3c !important;
}
}
.bunem {
width: 309px;
margin-top: 20px;
height: 32px;
display: flex;
align-items: #ffffff;
margin-bottom: 35px;
align-items: center;
justify-content: center;
color: #fff;
font-size: 14px;
}
margin-top: 20px;
height: 32px;
display: flex;
align-items: #ffffff;
margin-bottom: 35px;
align-items: center;
justify-content: center;
color: #fff;
font-size: 14px;
}
</style>

View File

@ -32,7 +32,7 @@ export default {
type: "LICENSE_INFORMATION",
},
about: {
title: "关于我们",
title: "公司介绍",
type: "ABOUT",
},
},

View File

@ -47,44 +47,44 @@ export default {
//
uni.showActionSheet({
itemList: ['分享到微信好友', '分享到朋友圈', '分享到QQ', '分享到消息'],
success: (res) => {
const providerMap = ['weixin', 'weixin', 'qq', 'im'];
const sceneMap = ['WXSceneSession', 'WXSceneTimeline', '', ''];
// QQ ------------
itemList: ["分享到微信好友", "分享到朋友圈", "分享到QQ", "分享到消息"],
success: (res) => {
const providerMap = ["weixin", "weixin", "qq", "im"];
const sceneMap = ["WXSceneSession", "WXSceneTimeline", "", ""];
// QQ ------------
if (providerMap[res.tapIndex] === 'im') {
uni.setClipboardData({
data:`邀请码:${this.resfn}`,
success: () => {
uni.showToast({
title: "复制成功",
icon: "none"
});
uni.switchTab({
url: "/pages/tabbar/im/index",
});
},
fail: () => {
uni.showToast({
title: "复制失败",
icon: "none"
});
}
});
} else {
uni.share({
provider: providerMap[res.tapIndex],
scene: sceneMap[res.tapIndex],
title: '无终街邀请专属码',
summary: '输入达人邀请码,获得更多曝光量',
imageUrl: '/static/imlogo.png',
href:config.downloadLink,
success: () => uni.showToast({ title: '分享成功' })
});
}
}
});
if (providerMap[res.tapIndex] === "im") {
uni.setClipboardData({
data: `邀请码:${this.resfn}`,
success: () => {
uni.showToast({
title: "复制成功",
icon: "none",
});
uni.switchTab({
url: "/pages/tabbar/im/index",
});
},
fail: () => {
uni.showToast({
title: "复制失败",
icon: "none",
});
},
});
} else {
uni.share({
provider: providerMap[res.tapIndex],
scene: sceneMap[res.tapIndex],
title: "无终街邀请专属码",
summary: "输入达人邀请码,获得更多曝光量",
imageUrl: "/static/imlogo.png",
href: config.downloadLink,
success: () => uni.showToast({ title: "分享成功" }),
});
}
},
});
},
},
};
@ -101,11 +101,11 @@ export default {
background-size: 100% 100%;
}
.tui {
padding: 0px;
height: calc(85vh - 65px);
padding: 0rpx;
height: calc(85vh - 65rpx);
width: 80%;
margin: 10px;
border-radius: 10px;
margin: 10rpx;
border-radius: 10rpx;
}
.cnent {
height: 80%;
@ -116,8 +116,8 @@ export default {
.round-avatar {
border-radius: 50%;
object-fit: cover; /* 确保图片填充整个圆形区域 */
width: 60px;
height: 60px;
width: 60rpx;
height: 60rpx;
}
.bottomc {
width: 80%;
@ -128,22 +128,41 @@ export default {
}
.qian {
width: 80%;
margin-top: 50px;
height: 15%;
/* margin-top: 15%; */
display: flex;
flex-direction: column;
justify-content: end;
}
.btn {
width: 75%;
background: #fe3c3c;
margin-top: 56px;
margin-top: 15%;
}
.tuijianm {
width: 65%;
height: 5.3vh;
font-size: 20px;
height: 20%;
font-size: 40rpx;
justify-content: center;
align-items: center;
padding: 10px;
margin-top: 24vh;
padding: 10rpx;
margin-top:60%;
text-align: center;
}
@media (min-height: 100px) and (max-height: 700px) {
.qian {
width: 80%;
height: 25%;
/* margin-top: 15%; */
display: flex;
flex-direction: column;
justify-content: end;
}
.tui {
height: calc(70vh - 65rpx);
}
.tuijianm {
margin-top: 40%;
}
}
</style>

View File

@ -1,7 +1,7 @@
<template>
<div class="distribution-container">
<!-- Header section -->
<div class="distribution-header">
<!-- <div class="distribution-header">
<div class="total-earnings">
<div class="total">
<h2 :style="{ fontSize: '15px' }">总收益()</h2>
@ -10,14 +10,14 @@
提现规则
</h2>
</div>
<p class="amount" :style="{ fontSize: '30px' }">1164</p>
<p class="amount" :style="{ fontSize: '30px' }">{{price}}</p>
</div>
<div class="hr"></div>
<div class="withdrawable" :style="{ padding: '10px 0px' }">
<div class="itox">可提现金额<span class="amount">94.26</span></div>
<div class="itox">可提现金额<span class="amount">{{tiprice}}</span></div>
<div class="buto" @click="goToDepositPage">提现</div>
</div>
</div>
</div> -->
<!-- Main content card -->
<div class="distribution-card">
@ -26,15 +26,15 @@
<h2>当月数据</h2>
<div class="stats-row">
<div class="stat-item">
<div class="stat-value">197</div>
<div class="stat-value">{{obj.invitedCount}}</div>
<div class="stat-label">我的邀请</div>
</div>
<div class="stat-item">
<div class="stat-value">100.00</div>
<div class="stat-label">现金奖励</div>
<div class="stat-value">{{price}}</div>
<div class="stat-label">当月分佣</div>
</div>
<div class="stat-item">
<div class="stat-value">200.00</div>
<div class="stat-value">{{obj.pendingIncome}}</div>
<div class="stat-label">待入账</div>
</div>
</div>
@ -74,6 +74,9 @@
</template>
<script>
import { getinvitation,gettotal} from "@/api/point.js";
export default {
name: "MyDistribution",
data() {
@ -82,18 +85,41 @@ export default {
menuItems: [
{name:"我的用户",url:'/pages/mine/mydistribution/my/myindex'},
{name:"消费记录",url:'/pages/mine/mydistribution/my/consumption'},
{name:"收益明细",url:''},
{name:"我的邀请码",url:'/pages/mine/invite'},
]
{name:"收益明细",url:'/pages/mine/mydistribution/my/income'},
{name:"我的推荐码",url:'/pages/mine/invite'},
],
obj:{},
price:0,
};
},
onShow() {
this.getl(); //
this.getprice();
},
onLoad() {
},
mounted() {
},
methods: {
touni(e){
uni.navigateTo({ url:e });
},
goToDepositPage() {
uni.navigateTo({ url: '/pages/mine/deposit/operation' });
},
getl() {
getinvitation({}).then((res) => {
this.obj = res.data.result;
});
},
getprice(){
gettotal({}).then((res) => {
this.price = res.data.result;
});
}
},
};
</script>
@ -182,7 +208,7 @@ export default {
.distribution-card {
background-color: white;
border-radius: 8px;
margin: -25px 15px 20px;
margin: 5px 15px 20px;
padding: 20px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
position: relative;

View File

@ -20,10 +20,10 @@
:style="{ background: index % 2 == 0 ? '#fff' : '' }"
>
<div>
<img :src="item.face" alt="" width="60" style="border-radius: 50%" />
<img :src="imgfun(item.image)" alt="" width="60" height="60" style="border-radius: 50%" />
</div>
<div>{{ item.nickName }}</div>
<div>{{ timefun(item.lastLoginDate) }}</div>
<div style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">{{ item.goodsName }}</div>
<div>{{ timefun(item.orderCreateTime) }}</div>
</div>
</div>
</div>
@ -47,7 +47,7 @@ export default {
},
methods: {
timefun(e) {
return e.split(" ")[0];
return e.split("T")[0];
},
touni(e) {
uni.navigateTo({ url: e });
@ -57,8 +57,8 @@ export default {
},
getl() {
getcompleted({size:this.size,page:this.page}).then((res) => {
this.getlist = res.data.result;
this.totle = res.data.result.length;
this.getlist = res.data.result.records;
this.totle = res.data.result.total;
});
},
},
@ -98,7 +98,9 @@ export default {
padding: 10px 0px 10px 0px;
& > div {
width: 30%;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
}
}
// justify-content: space-evenly;

View File

@ -0,0 +1,110 @@
<template>
<div class="distribution-container">
<!-- Header section -->
<div class="distribution-header">
<view class="hcolng">
<view></view>
<view :style="{ fontSize: '30px' }">{{ totle }}</view>
<view></view>
</view>
</div>
<div class="distribution-center">
<div>
<div>商品名称</div>
<div>收益</div>
<div>绑定日期</div>
</div>
<div
v-for="(item, index) in getlist"
:key="item.id"
:style="{ background: index % 2 == 0 ? '#fff' : '' }"
>
<div>
{{item.goodsName}}
</div>
<div>{{ item.amount }}</div>
<div>{{timefun(item.createTime) }}</div>
</div>
</div>
</div>
</template>
<script>
import { getgetAmount } from "@/api/point.js";
export default {
name: "MyDistribution",
data() {
return {
show: false,
totle: 0,
getlist: [],
};
},
mounted() {
this.getl();
},
methods: {
timefun(e) {
return e.split(" ")[0];
},
touni(e) {
uni.navigateTo({ url: e });
},
goToDepositPage() {
uni.navigateTo({ url: "/pages/mine/deposit/operation" });
},
getl() {
getgetAmount({}).then((res) => {
this.getlist = res.data.result.records;
console.log(this.getlist);
this.totle = res.data.result.total;
});
},
},
};
</script>
<style lang="scss" scoped>
.distribution-container {
font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
width: 100%;
color: #333;
.distribution-header {
background-color: #ff7d00;
color: white;
padding: 25px 20px;
display: flex;
justify-content: center;
align-items: center;
.hcolng {
display: flex;
padding: 10px 20px;
margin-top: 50px;
& > view {
font-weight: 700;
display: flex;
font-size: 14px;
margin: 0 5px;
align-items: end;
}
}
}
.distribution-center {
display: flex;
flex-direction: column;
& > div {
display: flex;
justify-content: space-evenly;
padding: 10px 0px 10px 0px;
& > div {
width: 30%;
display: flex;
justify-content: center;
align-items: center;
}
}
// justify-content: space-evenly;
}
}
</style>

View File

@ -19,8 +19,12 @@
:key="item.id"
:style="{ background: index % 2 == 0 ? '#fff' : '' }"
>
<div>
<img :src="item.face" alt="" width="60" style="border-radius: 50%" />
<div class="imgfn">
<img :src="imgfun(item.face) "
width="60"
height="60"
style="border-radius: 50%"
mode="" />
</div>
<div>{{ item.nickName }}</div>
<div>{{ timefun(item.lastLoginDate) }}</div>
@ -64,6 +68,17 @@ export default {
</script>
<style lang="scss" scoped>
::v-deep{
.uni-image{
width: 30px;
height: 30px;
}
}
// .imgfn{
// width: 30px;
// height: 30px;
// border-radius: 50%;
// }
.distribution-container {
font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
width: 100%;
@ -98,7 +113,9 @@ export default {
padding: 10px 0px 10px 0px;
& > div {
width: 30%;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
}
}
// justify-content: space-evenly;

View File

@ -230,7 +230,7 @@ export default {
// duration: 1500,
// });
setTimeout(() => {
uni.switchTab({
uni.navigateTo({
url: "/pages/tabbar/user/my",
});
}, 1000);

View File

@ -18,11 +18,11 @@
<!-- {{localVersion}} -->
<u-cell-group class="cell" :border="false">
<!-- #ifdef APP-PLUS -->
<u-cell-item v-if="IosWhether" @click="checkStar" title="去评分"></u-cell-item>
<!-- <u-cell-item v-if="IosWhether" @click="checkStar" title="去评分"></u-cell-item>
<u-cell-item title="功能介绍" @click="navigateTo('/pages/mine/set/versionFunctionList')"></u-cell-item>
<u-cell-item title="检查更新" @click="checkUpdate"></u-cell-item>
<u-cell-item title="检查更新" @click="checkUpdate"></u-cell-item> -->
<!-- #endif -->
<u-cell-item title="证照信息" @click="navigateTo('/pages/mine/help/tips?type=message')"></u-cell-item>
<!-- <u-cell-item title="证照信息" @click="navigateTo('/pages/mine/help/tips?type=message')"></u-cell-item> -->
<u-cell-item title="服务协议" @click="navigateTo('/pages/mine/help/tips?type=user')"></u-cell-item>
<u-cell-item title="隐私协议" @click="navigateTo('/pages/mine/help/tips?type=privacy')"></u-cell-item>
<u-cell-item title="公司介绍" :border-bottom="false" @click="navigateTo('/pages/mine/help/tips?type=about')"></u-cell-item>

View File

@ -86,7 +86,7 @@
<div v-for="(item, index) in goodsList" :key="index" class="goods-row">
<div class="flex goods-col">
<div class="goods-img" @click="navigateToDetailPage(item)">
<u-image width="230rpx" height="230rpx" :src="imgfun(item.content.thumbnail)">
<u-image width="230rpx" height="230rpx" :src="imgfun(item.content.thumbnail)">
<u-loading slot="loading"></u-loading>
</u-image>
</div>
@ -273,7 +273,7 @@
</template>
<script>
import { getGoodsList, getGoodsRelated } from "@/api/goods.js";
import { getGoodsList, getGoodsRelated ,getGoodscategory} from "@/api/goods.js";
import { getHotKeywords } from "@/api/home.js";
import mSearch from "@/components/m-search-revision/m-search-revision.vue";
@ -321,7 +321,7 @@ export default {
pageNumber: 1,
pageSize: 10,
// sort: 'grade_asc',
ste:"",
keyword: "",
},
minPrice: "",
@ -350,6 +350,7 @@ export default {
this.routerVal = val;
console.log(this.routerVal);
this.params.ste=val.ste
//
if (this.routerVal.category) {
this.params.categoryId = this.routerVal.category;
@ -708,12 +709,13 @@ export default {
console.log(this.params,'==');
// #TODO
let goodsList = await getGoodsList(this.params);
let goodsList = await getGoodscategory(this.params);
if (goodsList.data.result.content.length < 10) {
if (goodsList.data.result.length < 10) {
this.loadingType = "noMore";
}
this.goodsList.push(...goodsList.data.result.content);
this.goodsList.push(...goodsList.data.result);
this.initSortGoods();
uni.hideLoading();
},

View File

@ -10,7 +10,10 @@
<!-- 省市区 -->
<div class="flex flex-a-c">
<span class="default" v-if="address.isDefault">默认</span>
<div class="address-list" v-if="address.consigneeAddressPath.length != 0">
<div
class="address-list"
v-if="address.consigneeAddressPath.length != 0"
>
<span
class="address-item"
v-for="(item, index) in address.consigneeAddressPath"
@ -89,7 +92,11 @@
</view>
<!-- 店铺商品信息 -->
<div class="box box2" v-for="(item, index) in orderMessage.cartList" :key="index">
<div
class="box box2"
v-for="(item, index) in orderMessage.cartList"
:key="index"
>
<div @click="navigateToStore(item)">
<div class="store-name">
<span>{{ item.storeName }}</span>
@ -134,16 +141,24 @@
</div>
<p class="goods-prices">
<span></span>
<span class="goods-price">{{ formatPrice(val.goodsSku.price)[0] }}</span>
<span class="goods-price">{{
formatPrice(val.goodsSku.price)[0]
}}</span>
<span>.{{ formatPrice(val.goodsSku.price)[1] }}</span>
</p>
</div>
</div>
<u-row>
<u-col :offset="0" :span="4">发票信息</u-col>
<u-col :span="8" class="tipsColor" textAlign="right" @click.native="invoice()">
<u-col
:span="8"
class="tipsColor"
textAlign="right"
@click.native="invoice()"
>
<span v-if="receiptList"
>{{ receiptList.receiptTitle }} - {{ receiptList.receiptContent }}</span
>{{ receiptList.receiptTitle }} -
{{ receiptList.receiptContent }}</span
>
<span v-else>不开发票</span>
</u-col>
@ -170,7 +185,9 @@
</u-col>
</u-row>
<u-row>
<u-col :offset="0" :span="4" class="tl" style="text-align: left">备注信息</u-col>
<u-col :offset="0" :span="4" class="tl" style="text-align: left"
>备注信息</u-col
>
<u-col :span="8" textAlign="right">
<u-input
style="text-align: right"
@ -182,7 +199,11 @@
</div>
<!-- 发票信息 -->
<invoices :res="receiptList" @callbackInvoice="callbackInvoice" v-if="invoiceFlag" />
<invoices
:res="receiptList"
@callbackInvoice="callbackInvoice"
v-if="invoiceFlag"
/>
<u-select v-model="shippingFlag" :list="shippingMethod"></u-select>
<div class="box box5" v-if="orderMessage.priceDetailDTO">
@ -190,22 +211,30 @@
<u-row>
<u-col :span="9">商品合计</u-col>
<u-col :span="3" textAlign="right">
<span>{{ orderMessage.priceDetailDTO.goodsPrice | unitPrice }}</span>
<span
>{{ orderMessage.priceDetailDTO.goodsPrice | unitPrice }}</span
>
</u-col>
</u-row>
</div>
<div>
<u-row>
<u-col v-if="orderMessage.cartTypeEnum != 'VIRTUAL'" :span="7">运费</u-col>
<u-col v-if="orderMessage.cartTypeEnum != 'VIRTUAL'" :span="7"
>运费</u-col
>
<u-col
v-if="orderMessage.cartTypeEnum != 'VIRTUAL'"
:span="5"
class="tr tipsColor"
textAlign="right"
>
<span v-if="orderMessage.priceDetailDTO.freightPrice == 0">包邮</span>
<span v-if="orderMessage.priceDetailDTO.freightPrice == 0"
>包邮</span
>
<span v-else
>{{ orderMessage.priceDetailDTO.freightPrice | unitPrice }}</span
>{{
orderMessage.priceDetailDTO.freightPrice | unitPrice
}}</span
>
</u-col>
</u-row>
@ -215,7 +244,10 @@
<u-col
:span="3"
v-if="orderMessage.priceDetailDTO && orderMessage.priceDetailDTO.couponPrice"
v-if="
orderMessage.priceDetailDTO &&
orderMessage.priceDetailDTO.couponPrice
"
textAlign="right"
@click="GET_Discount()"
>
@ -249,7 +281,9 @@
<u-col :span="6">活动优惠</u-col>
<u-col :span="6" class="tr tipsColor" textAlign="right">
<span v-if="orderMessage.priceDetailDTO.discountPrice"
>-{{ orderMessage.priceDetailDTO.discountPrice | unitPrice }}</span
>-{{
orderMessage.priceDetailDTO.discountPrice | unitPrice
}}</span
>
<span v-else>0.00</span>
</u-col>
@ -276,7 +310,9 @@
<span class="price">{{
formatPrice(orderMessage.priceDetailDTO.flowPrice)[0]
}}</span>
<span>.{{ formatPrice(orderMessage.priceDetailDTO.flowPrice)[1] }} </span>
<span
>.{{ formatPrice(orderMessage.priceDetailDTO.flowPrice)[1] }}
</span>
</div>
<span v-else class="number"
><span style="margin-right: 10rpx">{{
@ -306,8 +342,6 @@ import LiLiWXPay from "@/js_sdk/lili-pay/wx-pay.js";
export default {
onLoad: function (val) {
console.log(val,'======');
this.routerVal = val;
},
components: {
@ -348,6 +382,7 @@ export default {
pintuanFlage: true, //
notSupportFreight: [], //
notSupportFreightGoodsList: ["以下商品超出配送范围:"],
pat: {},
};
},
filters: {
@ -449,7 +484,9 @@ export default {
this.navigateTo(
`/pages/mine/address/address?from=cart&way=${
this.routerVal.way
}&parentOrder=${encodeURIComponent(JSON.stringify(this.routerVal.parentOrder))}`
}&parentOrder=${encodeURIComponent(
JSON.stringify(this.routerVal.parentOrder)
)}`
);
},
@ -484,9 +521,11 @@ export default {
this.orderMessage.storeCoupons &&
Object.keys(this.orderMessage.storeCoupons)[0]
) {
let storeMemberCouponsId = Object.keys(this.orderMessage.storeCoupons)[0];
let storeCouponId = this.orderMessage.storeCoupons[storeMemberCouponsId]
.memberCoupon.id;
let storeMemberCouponsId = Object.keys(
this.orderMessage.storeCoupons
)[0];
let storeCouponId =
this.orderMessage.storeCoupons[storeMemberCouponsId].memberCoupon.id;
selectedCoupon.push(storeCouponId);
}
this.orderMessage.cartList.forEach((item) => {
@ -542,15 +581,14 @@ export default {
// #ifdef APP-PLUS
client = "APP";
// #endif
const storedSte = uni.getStorageSync('ste');
const storedSte = uni.getStorageSync("ste");
let submit = {
client,
way: this.routerVal.way,
remark: this.remarkVal,
parentOrderSn: "",
ste:storedSte
ste: storedSte,
};
console.log(submit,'===')
//
this.routerVal.parentOrder && this.routerVal.parentOrder.orderSn
? (submit.parentOrderSn = this.routerVal.parentOrder.orderSn)
@ -561,6 +599,8 @@ export default {
*/
API_Trade.createTrade(submit).then((res) => {
if (res.data.success) {
console.log(res.data);
uni.showToast({
title: "创建订单成功!",
duration: 2000,
@ -611,9 +651,8 @@ export default {
//
API_Address.getAddressDefault().then((res) => {
if (res.data.result) {
res.data.result.consigneeAddressPath = res.data.result.consigneeAddressPath.split(
","
);
res.data.result.consigneeAddressPath =
res.data.result.consigneeAddressPath.split(",");
this.address = res.data.result;
}
});
@ -635,6 +674,7 @@ export default {
storeId: item.storeId,
};
});
this.orderMessage = res.data.result;
/**
* 为了避免路径传值在h5中超出限制问题
@ -650,9 +690,8 @@ export default {
// console.log(res.data.result,"=====");
this.address = res.data.result.memberAddress;
res.data.result.memberAddress.consigneeAddressPath = res.data.result.memberAddress.consigneeAddressPath.split(
","
);
res.data.result.memberAddress.consigneeAddressPath =
res.data.result.memberAddress.consigneeAddressPath.split(",");
}
if (

View File

@ -23,7 +23,7 @@
<view>
<view class="goods-item-view" @click="navigateToOrderDetail(order.sn)">
<view class="goods-img" v-for="(goods, goodsIndex) in order.orderItems" :key="goodsIndex">
<u-image border-radius="6" width="100%" height="100%" :src="goods.image"></u-image>
<u-image border-radius="6" width="100%" height="100%" :src="imgfun(goods.image)"></u-image>
</view>
<view class="goods-info">
<view v-if="order.orderItems.length <= 1" class="goods-title u-line-2">{{ order.groupName }}</view>
@ -57,9 +57,14 @@
<u-button ripple :customStyle="{'background':lightColor,'color':'#fff' }" shape="circle" class="pay-btn" size="mini" v-if="order.allowOperationVO.rog" @click="onRog(order.sn)">
确认收货
</u-button>
<u-button ripple shape="circle" class="cancel-btn" size="mini" v-if="order.groupAfterSaleStatus.includes('NOT_APPLIED')" @click="applyService(order)">
<u-button ripple shape="circle" class="cancel-btn" size="mini"
v-if="order.groupAfterSaleStatus.includes('NOT_APPLIED')" @click="showcancel=true">
退款/售后
</u-button>
<u-modal v-model="showcancel" :content="contenttitle"></u-modal>
<!-- <u-button ripple shape="circle" class="cancel-btn" size="mini" v-if="order.groupAfterSaleStatus.includes('NOT_APPLIED')" @click="applyService(order)">
退款/售后
</u-button> -->
<!-- TODO 后续完善 -->
<!-- <u-button ripple shape="circle" class="rebuy-btn" size="mini" v-if="
order.orderStatus === 'CANCELLED' ||
@ -109,6 +114,8 @@ export default {
},
data() {
return {
showcancel:false,
contenttitle:"请联系客服:03156198200",
lightColor: this.$lightColor,
tabCurrentIndex: 0, //
navList: [
@ -171,7 +178,7 @@ export default {
orderStatus: "WAIT_PAY", //
},
{
orderStatus: "WAIT_SHIP",
orderStatus: "WAIT_SHIP",//
},
{
orderStatus: "WAIT_ROG", //

View File

@ -6,39 +6,59 @@
{{ orderStatusList[order.orderStatus].title }}
<div>{{ orderStatusList[order.orderStatus].value }}</div>
</div>
</div>
<!-- 物流信息 -->
<view class="info-view logi-view">
<view class="logi-List" v-if="logiList && logiList.traces.length != 0">
<view class="logi-List-title">
{{logiList.traces[logiList.traces.length-1].AcceptStation}}
{{ logiList.traces[logiList.traces.length - 1].AcceptStation }}
</view>
<view class="logi-List-time">
{{logiList.traces[logiList.traces.length-1].AcceptTime}}
{{ logiList.traces[logiList.traces.length - 1].AcceptTime }}
</view>
</view>
<view class="logi-List" v-else>
<view class="verificationCode" v-if="order.verificationCode ">
券码 {{order.verificationCode}}
<view class="verificationCode" v-if="order.verificationCode">
券码 {{ order.verificationCode }}
</view>
<view v-else class="logi-List-title">
{{'暂无物流信息'}}
{{ "暂无物流信息" }}
</view>
</view>
</view>
<view class="info-view" style="justify-content: center">
<img :src="code" alt="" />
</view>
<!-- 地址 -->
<view class="info-view">
<!-- 自己的地址 -->
<view class="info-view" v-if="orderDetail.ste == '1'">
<!-- <view class="info-view"> -->
<view class="address-view">
<view>
<view class="address-title">
<span>{{ order.consigneeName || "未填写昵称" }}</span>
<span>{{ order.consigneeMobile || "未填写手机号" | secrecyMobile }}</span>
<span>{{ order.consigneeMobile }}</span>
</view>
<view class="address">地址{{ order.consigneeAddressPath }}
{{ order.consigneeDetail }}</view>
<view class="address"
>地址{{ order.consigneeAddressPath }}
{{ order.consigneeDetail }}</view
>
</view>
</view>
</view>
<!-- 商家的地址 -->
<view class="info-view" v-if="orderDetail.ste == '0'">
<view class="address-view">
<view>
<view class="address-title">
<span>商家名称:{{ orderDetail.storeName }}</span>
<span>商家电话:{{ orderDetail.memberMobile }}</span>
</view>
<view class="address"
>商家地址{{ orderDetail.storeAddressPath }}
{{ orderDetail.storeAddressDetail }}</view
>
</view>
</view>
</view>
@ -49,7 +69,9 @@
<view class="seller-info u-flex u-row-between">
<view class="seller-name" @click="tostore(order)">
<view class="name">{{ order.storeName }}</view>
<view class="status" v-if="orderStatusList[order.orderStatus]"> {{ orderStatusList[order.orderStatus].title }}</view>
<view class="status" v-if="orderStatusList[order.orderStatus]">
{{ orderStatusList[order.orderStatus].title }}</view
>
</view>
<view class="order-sn"></view>
</view>
@ -57,7 +79,12 @@
<view v-for="(sku, skuIndex) in orderGoodsList" :key="skuIndex">
<view class="goods-item-view">
<view class="goods-img" @click="gotoGoodsDetail(sku)">
<u-image border-radius="6" width="131rpx" height="131rpx" :src="sku.image"></u-image>
<u-image
border-radius="6"
width="131rpx"
height="131rpx"
:src="imgfun(sku.image)"
></u-image>
</view>
<view class="goods-info" @click="gotoGoodsDetail(sku)">
<view class="goods-title u-line-2">{{ sku.goodsName }}</view>
@ -70,11 +97,17 @@
<view>x{{ sku.num }}</view>
<view class="good-complaint">
<u-tag size="mini" mode="plain" @click="complaint(sku)" v-if="sku.complainStatus == 'NO_APPLY'" text="投诉" type="info" />
<u-tag
size="mini"
mode="plain"
@click="complaint(sku)"
v-if="sku.complainStatus == 'NO_APPLY'"
text="投诉"
type="info"
/>
</view>
</view>
</view>
</view>
</view>
</view>
@ -104,16 +137,44 @@
</view>
</view>
<!-- 客户服务 售后取消订单查看物流投诉等 -->
<view class="info-view"
v-if="orderDetail.allowOperationVO && orderDetail.allowOperationVO.cancel == true || order.orderStatus == 'DELIVERED' || order.orderStatus != 'UNPAID' && order.orderPromotionType =='PINTUAN'">
<view
class="info-view"
v-if="
(orderDetail.allowOperationVO &&
orderDetail.allowOperationVO.cancel == true) ||
order.orderStatus == 'DELIVERED' ||
(order.orderStatus != 'UNPAID' && order.orderPromotionType == 'PINTUAN')
"
>
<view style="width: 100%">
<view class="order-info-view">
<view class="title">服务</view>
</view>
<view class="customer-list">
<view class="customer-service" v-if="orderDetail.allowOperationVO && orderDetail.allowOperationVO.cancel == true" @click="onCancel(order.sn)">取消订单</view>
<view class="customer-service" v-if="order.orderStatus == 'DELIVERED'" @click="onLogistics(order)">查看物流</view>
<view class="customer-service" v-if="order.orderStatus != 'UNPAID' && order.orderPromotionType =='PINTUAN' " @click="ByUserMessage(order)">查看拼团信息</view>
<view
class="customer-service"
v-if="
orderDetail.allowOperationVO &&
orderDetail.allowOperationVO.cancel == true
"
@click="onCancel(order.sn)"
>取消订单</view
>
<view
class="customer-service"
v-if="order.orderStatus == 'DELIVERED'"
@click="onLogistics(order)"
>查看物流</view
>
<view
class="customer-service"
v-if="
order.orderStatus != 'UNPAID' &&
order.orderPromotionType == 'PINTUAN'
"
@click="ByUserMessage(order)"
>查看拼团信息</view
>
</view>
</view>
</view>
@ -123,14 +184,18 @@
<view class="title">订单编号</view>
<view class="value">
{{ order.sn }}
<u-tag class="copy" text="复制" type="info" size="mini" @click="onCopy(order.sn)" />
<u-tag
class="copy"
text="复制"
type="info"
size="mini"
@click="onCopy(order.sn)"
/>
</view>
</view>
<view class="order-info-view">
<view class="title">下单时间</view>
<view class="value">{{
order.createTime
}}</view>
<view class="value">{{ order.createTime }}</view>
</view>
<view class="order-info-view">
<view class="title">支付状态</view>
@ -141,7 +206,8 @@
: order.payStatus == "PAID"
? "已付款"
: ""
}}</view>
}}</view
>
</view>
<view class="order-info-view">
<view class="title">支付方式</view>
@ -155,7 +221,9 @@
<view class="invoice-info-view">
<view class="ltitle">发票信息</view>
<view v-if="!order.needReceipt" class="value">无需发票</view>
<view v-else class="value" @click="onReceipt(orderDetail.receipt)">查看发票</view>
<view v-else class="value" @click="onReceipt(orderDetail.receipt)"
>查看发票</view
>
</view>
</view>
</view>
@ -170,50 +238,108 @@
<text v-if="order.payStatus === 'PAID'">已付金额</text>
<text v-else>应付金额</text>
<text class="price" v-if="order.priceDetailDTO">{{ order.priceDetailDTO.flowPrice | unitPrice }}</text>
<text class="price" v-if="order.priceDetailDTO"
>{{ order.priceDetailDTO.flowPrice | unitPrice }}</text
>
</view>
<view>
<!-- 全部 -->
<!-- 等待付款 -->
<u-button type="error" ripple size="mini" v-if=" order.allowOperationVO && order.allowOperationVO.pay" @click="toPay(order)">立即付款</u-button>
<u-button
type="error"
ripple
size="mini"
v-if="order.allowOperationVO && order.allowOperationVO.pay"
@click="toPay(order)"
>立即付款</u-button
>
<!-- <u-button class="rebuy-btn" size="mini" v-if="order.order_operate_allowable_vo.allow_service_cancel"> 提醒发货</u-button> -->
<!-- <div class="pay-btn">确认收货</div> -->
<u-button shape="circle" ripple type="warning" size="mini" v-if="order.orderStatus == 'DELIVERED'" @click="onRog(order.sn)">确认收货</u-button>
<u-button
shape="circle"
ripple
type="warning"
size="mini"
v-if="order.orderStatus == 'DELIVERED'"
@click="onRog(order.sn)"
>确认收货</u-button
>
<!-- 交易完成 未评价 -->
<u-button shape="circle" ripple size="mini" v-if="order.orderStatus == 'COMPLETE'" @click="onComment(order.sn)">评价商品</u-button>
<u-button
shape="circle"
ripple
size="mini"
v-if="order.orderStatus == 'COMPLETE'"
@click="onComment(order.sn)"
>评价商品</u-button
>
</view>
</view>
</view>
<u-popup class="cancel-popup" v-model="cancelShow" mode="bottom" length="60%">
<u-popup
class="cancel-popup"
v-model="cancelShow"
mode="bottom"
length="60%"
>
<view class="header">取消订单</view>
<view class="body">
<view class="title">取消订单后本单享有的优惠可能会一并取消是否继续</view>
<view class="title"
>取消订单后本单享有的优惠可能会一并取消是否继续</view
>
<view>
<u-radio-group v-model="reason">
<view class="value">
<view class="radio-view" v-for="(item, index) in cancelList" :key="index">
<u-radio :active-color="lightColor" label-size="25" shape="circle" :name="item.reason" @change="reasonChange">{{ item.reason }}</u-radio>
<view
class="radio-view"
v-for="(item, index) in cancelList"
:key="index"
>
<u-radio
:active-color="lightColor"
label-size="25"
shape="circle"
:name="item.reason"
@change="reasonChange"
>{{ item.reason }}</u-radio
>
</view>
</view>
</u-radio-group>
</view>
</view>
<view class="footer">
<u-button size="medium" v-if="reason" shape="circle" @click="submitCancel">提交</u-button>
<u-button
size="medium"
v-if="reason"
shape="circle"
@click="submitCancel"
>提交</u-button
>
</view>
</u-popup>
<u-toast ref="uToast" />
<u-modal v-model="rogShow" :show-cancel-button="true" :content="'是否确认收货?'" :confirm-color="lightColor" @confirm="confirmRog"></u-modal>
<u-modal
v-model="rogShow"
:show-cancel-button="true"
:content="'是否确认收货?'"
:confirm-color="lightColor"
@confirm="confirmRog"
></u-modal>
<!-- 分享 -->
<shares v-if="shareFlage " :thumbnail="orderDetail.orderItems[0].image" :goodsName="orderDetail.orderItems[0].goodsName" @close="shareFlage = false" />
<shares
v-if="shareFlage"
:thumbnail="orderDetail.orderItems[0].image"
:goodsName="orderDetail.orderItems[0].goodsName"
@close="shareFlage = false"
/>
</view>
</template>
<script>
import { getExpress } from "@/api/trade.js";
import { getExpress, createWithVerificatio } from "@/api/trade.js";
import { cancelOrder, confirmReceipt, getOrderDetail } from "@/api/order.js";
import { h5Copy } from "@/js_sdk/h5-copy/h5-copy.js";
@ -268,14 +394,32 @@ export default {
cancelList: "",
rogShow: false,
reason: "",
code: "",
};
},
onLoad(options) {
this.loadData(options.sn);
this.loadLogistics(options.sn);
this.sn = options.sn;
},
mounted() {},
methods: {
monekgl() {
const params = {
skuId: this.orderGoodsList[0].skuId,
goodsId: this.orderGoodsList[0].goodsId,
orderSn: this.order.sn,
num: this.order.goodsNum,
};
if (this.orderDetail.ste == 0) {
createWithVerificatio(params).then((res) => {
if (res.data.success) {
this.code = res.data.result;
}
});
}
},
tostore(val) {
uni.navigateTo({
url: "/pages/product/shopPage?id=" + val.storeId,
@ -313,8 +457,8 @@ export default {
this.order = order.order;
this.orderGoodsList = order.orderItems;
this.orderDetail = res.data.result;
uni.hideLoading();
this.monekgl();
});
},
onReceipt(val) {

View File

@ -269,7 +269,7 @@
</view>
<!-- 评价 -->
<Evaluation id="main5" :goodsDetail="goodsDetail" />
<!-- <Evaluation id="main5" :goodsDetail="goodsDetail" /> -->
<!-- 店铺推荐 -->
<storeLayout
@ -279,14 +279,14 @@
:res="recommendList"
/>
<!-- 宝贝详情
<!-- 宝贝详情 -->
<GoodsIntro
id="main9"
:res="goodsDetail"
:goodsParams="goodsParams"
:goodsId="goodsDetail.goodsId"
v-if="goodsDetail.id"
/> -->
/>
<!-- 宝贝推荐 -->
<GoodsRecommend id="main11" :res="likeGoodsList" />
@ -388,6 +388,7 @@
@queryCart="cartCount()"
:goodsDetail="goodsDetail"
:goodsSpec="goodsSpec"
:storeDetail="storeDetail"
:isGroup="isGroup"
:id="productId"
v-if="goodsDetail.id"

View File

@ -13,7 +13,7 @@
<div class="store-msg">
<div class="store-name">
<div> {{item.storeName}}</div>
<div class="typeof" >{{item.selfOperated?'自营':'非自营'}}</div>
<div class="typeof" >{{item.selfOperated?'自营':'达人店'}}</div>
</div>
<div class="goods-num">
商品 {{item.goodsNum}} <span class="line">|</span> <span class="store-collection">收藏 {{item.collectionNum}}</span>
@ -53,7 +53,7 @@
</template>
<script>
import { getStoreList } from "@/api/store";
import { getStoreList ,getExpertStoreList} from "@/api/store";
export default {
data() {
return {
@ -91,7 +91,7 @@ export default {
return val.toFixed(2).split(".");
},
async init() {
let res = await getStoreList(this.params);
let res = await getExpertStoreList(this.params);
if (res.data.success) {
let data = res.data.result;

View File

@ -15,7 +15,7 @@
@click="handleClick(item)" class="goods-item" v-for="(item, item_index) in res.list[0].listWay"
:key="item_index">
<div class="goods-img">
<u-image :src="item.img" height="350rpx" mode="aspectFit" width="100%">
<u-image :src="imgfun(item.img)" height="350rpx" mode="aspectFit" width="100%">
<u-loading slot="loading"></u-loading>
</u-image>
</div>

View File

@ -28,8 +28,6 @@ export default {
}
},
mounted () {
console.log(this.val,'=========')
// this.$u.toast('Hello uView!');
},
};
</script>

View File

@ -1,7 +1,7 @@
<template>
<div class="layout">
<div class="addres" @click="showPicker">
{{ cityOrCounty == "" ? "请选择" : cityOrCounty }}
{{ cityOrCounty == "" ? "请选择" : strsplit(cityOrCounty) }}
</div>
<div class="search" @click="handleSearch">{{ res.list[0].title }}</div>
<div class="shop" @click="toshop"></div>
@ -57,6 +57,10 @@ export default {
// this.getLocation();
},
methods: {
strsplit(str) {
let arr = str.split("");
return arr.slice(0, 3).join("")
},
toshop() {
uni.navigateTo({
url: "/pages/tabbar/cart/cartList",
@ -240,12 +244,12 @@ export default {
}
.addres {
// width: 15%;
width: 60px;
width: 42px;
height: 32px;
padding: 0px 10px 0px 10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding: 0px 0px 0px 10px;
// white-space: nowrap;
// overflow: hidden;
// text-overflow: ellipsis;
line-height: 32px;
}
.layout {

View File

@ -160,14 +160,12 @@ export default {
if (this.ste == 1) {
getFloorData().then((res) => {
if (res.data.success) {
console.log("商城数据已加载完成");
this.pageData = JSON.parse(res.data.result.pageData);
}
});
} else {
getFloorgetBendi().then((res) => {
if (res.data.success) {
console.log("本地生活数据已加载完成");
this.pageData = JSON.parse(res.data.result.pageData);
}
});
@ -183,33 +181,28 @@ export default {
* 扫描其他站信息 弹出提示返回首页
*/
seacnCode() {
uni.scanCode({
success: function (res) {
let path = encodeURIComponent(res.result);
// WX_CODE
if (res.scanType == "WX_CODE") {
uni.navigateTo({
url: `/${res.path}`,
});
} else {
config.scanAuthNavigation.forEach((src) => {
if (res.result.indexOf(src) != -1) {
uni.navigateTo({
url: `/${res.result.substring(src.length)}`,
});
} else {
setTimeout(() => {
uni.navigateTo({
url: "/pages/tabbar/home/web-view?src=" + path,
});
}, 100);
}
});
}
},
});
// // uni.scanCode({
// // success: function (res) {
// // let path = encodeURIComponent(res.result)//;
// // WX_CODE //
// if (res.scanType == "WX_//CODE") {
// uni.n//avigateTo({
// url: `///${res. path}`,
// // });
// // } else {
// config.scanAuthNaviga tion.//forEach((src) => {
// if (res.re sult.//indexOf(src) != -1) {
// // uni.navigateTo({
// url: `/${res.resu //lt.substring(src.lengt//h)}`,
// // });
// } else {
// // setTimeout(() => {//
// uni.navigateTo({
// url: //"/pages/tabbar/home/web-//view?src=" + path,
// // }//);
// 10//0);
// // }}} },//
},
/**
* 提示获取权限
*/

View File

@ -167,7 +167,7 @@ export default {
data() {
return {
showNoLoginPage: false,
statue: 0, // 0 1 2/ 3 4 6 10 7
statue: 1, // 0 1 2/ 3 4 6 10 7
isPopupVisible: false, //
isq: false,
popupRef: null, //

View File

@ -4,38 +4,43 @@
<view class="status_bar">
<!-- 这里是状态栏 -->
</view>
<view class="header" @click="userDetail">
<view class="head-1">
<image :src="userInfo.face || '/static/imlogo.png'"></image>
<view class="header">
<view @click="nav()" :style="{ zIndex: 9999999, padding: '5px' }">
返回
</view>
<view class="head-2" v-if="userInfo.id">
<view class="user-name">{{ userInfo.nickName }}</view>
<view class="user-logn" v-if="ismongt.expert">
<view class="mong"></view>
<view>达人</view>
<view class="headercon" @click="userDetail">
<view class="head-1">
<image :src="userInfo.face || '/static/imlogo.png'"></image>
</view>
<view class="head-2" v-if="userInfo.id">
<view class="user-name">{{ userInfo.nickName }}</view>
<view class="user-logn" v-if="userInfo.expert">
<view class="mong"></view>
<view>达人</view>
</view>
</view>
<view class="head-2" v-else>
<view class="user-name">登录/注册</view>
</view>
</view>
<view class="head-2" v-else>
<view class="user-name">登录/注册</view>
</view>
<!-- <u-icon
style="display: flex; align-items: flex-start"
name="arrow-right"
></u-icon> -->
</view>
<!-- 积分优惠券关注 -->
<div class="pointBox box">
<div class="pointBox box" >
<u-row text-align="center" gutter="16" class="point">
<u-col
<!-- <u-col
text-align="center"
span="4"
@click="navigateTo('/pages/mine/deposit/operation')"
>
<view>预存款</view>
<view class="money">{{ walletNum | unitPrice }}</view>
</u-col>
</u-col> -->
<u-col
text-align="center"
@ -128,15 +133,15 @@ export default {
couponNum: "",
footNum: "",
walletNum: "",
ismongt: {},
};
},
onLoad() {},
onShow() {
// if(this.ismongt.expert=='undefined'){
this.getUser()
// }
onLoad() {
this.userInfo = this.$options.filters.isLogin();
this.getUserOrderNum();
},
onShow() {
this.userInfo = this.$options.filters.isLogin();
if (this.$options.filters.isLogin("auth")) {
this.getUserOrderNum();
} else {
@ -145,9 +150,7 @@ export default {
},
onPullDownRefresh() {
this.getUserOrderNum();
this.getUser()
this.userInfo = this.$options.filters.isLogin();
this.$refs.tool.getUser();
},
// #ifndef MP
onNavigationBarButtonTap(e) {
@ -158,14 +161,17 @@ export default {
},
// #endif
mounted() {},
mounted() {
this.userInfo = this.$options.filters.isLogin();
this.getUserOrderNum();
},
methods: {
getUser() {
this.ismongt = {}
getUserInfo().then((user) => {
this.ismongt = user.data.result;
nav() {
uni.switchTab({
url: `/pages/me/me`,
});
},
/**
* 统一跳转接口,拦截未登录路由
* navigator标签现在默认没有转场动画所以用view
@ -208,7 +214,6 @@ body {
text-overflow: ellipsis;
white-space: nowrap;
}
.user {
.header {
max-width: 100%;
@ -221,8 +226,11 @@ body {
background-position: bottom;
background-repeat: no-repeat;
color: #ffffff;
display: flex;
justify-content: space-between;
.headercon {
display: flex;
justify-content: space-between;
}
.head-1 {
text-align: center;
width: 152rpx;
@ -252,8 +260,8 @@ body {
}
.head-2 {
flex: 1;
margin-left: 30rpx;
margin-top: 80rpx;
margin-left: 15px;
margin-top: 16px;
line-height: 1;
}
/deep/ .u-icon,
@ -267,11 +275,12 @@ body {
background: #fff;
border-radius: 20rpx;
box-shadow: 0 4rpx 24rpx 0 rgba($color: #f6f6f6, $alpha: 1);
}
.point {
text-align: center;
height: 160rpx;
justify-content: space-around !important;
font-size: $font-sm;
// #ifdef MP-WEIXIN
padding: 24rpx;
@ -316,14 +325,13 @@ body {
font-size: 34rpx;
}
.user-logn {
display: flex;
align-items: center;
margin: 15px 15px 0px 0px;
font-size: 15px;
.mong{
.mong {
width: 1rem;
height:1rem;
height: 1rem;
background: url("@/static/mon.png") no-repeat;
background-size: 100% 100%;
}

View File

@ -7,7 +7,7 @@
<view
class="interact-item"
@click="navigateTo('/pages/mine/invite')"
v-if="userInfo.expert"
v-if="userInfonew.expert"
>
<image src="/static/mine/stion.png" mode=""></image>
<view>我的推荐</view>
@ -15,13 +15,13 @@
<view
class="interact-item"
@click="navigateTo('/pages/mine/inviteinput')"
v-if="!userInfo.expert"
v-if="!userInfonew.expert"
>
<image src="/static/mine/smk.png" mode=""></image>
<view>邀请</view>
</view>
<view
v-if="userInfo.expert != 1"
v-if="userInfonew.expert != 1"
class="interact-item"
@click="navigateTo('/pages/mine/expert/index')"
>
@ -29,7 +29,7 @@
<view>达人申请</view>
</view>
<view
v-if="userInfo.storeId == null || userInfo.storeId == ''"
v-if="userInfonew.storeId == null || userInfonew.storeId == ''"
class="interact-item"
@click="navigateTo('/pages/mine/openShop/index')"
>
@ -117,8 +117,8 @@
</view>
<view
class="interact-item"
@click="navigateTo('/pages/mine/mydistribution/index')"
v-if="userInfo.expert"
@click="navigateTo('/pages/mine/mydistribution/index?')"
v-if="userInfonew.expert"
>
<image src="/static/mine/distribution.png" mode=""></image>
<view>我的分销</view>
@ -134,6 +134,14 @@
<image src="/static/mine/kanjia.png" mode=""></image>
<view>砍价记录</view>
</view>
<view
class="interact-item"
@click="save"
v-if="userInfonew.storeId != ''"
>
<image src="/static/mine/somp.png" mode=""></image>
<view>扫一扫</view>
</view>
</view>
</div>
</view>
@ -141,32 +149,54 @@
</template>
<script>
import { distribution } from "@/api/goods";
import { distribution, getGoodstake } from "@/api/goods";
import { getUserInfo } from "@/api/members";
export default {
props: {
// userInfo: {
// type: Object,
// default: () => {},
// },
userInfo: {
type: Object,
default: () => {},
},
},
data() {
return {
userInfo: {}, //
userInfonew: {}, //
};
},
onShow() {},
onLoad() {},
mounted() {
this.getUser();
watch: {
userInfo: {
handler(newVal, oldVal) {
console.log("watch", newVal, oldVal);
this.userInfonew = {};
this.userInfonew = newVal;
},
},
},
mounted() {},
methods: {
getUser() {
getUserInfo().then((user) => {
this.userInfo = user.data.result;
save() {
uni.scanCode({
success: (res) => {
console.log("==", res);
const par = res.result.split("|");
getGoodstake(par[0], par[1], { storeid: par[2] }).then((resfn) => {
console.log("resfn", resfn);
if (resfn.data.success) {
uni.showToast({
title: resfn.data.message,
icon: "none",
});
}
// }
});
},
});
},
navigateTo(url) {
uni.navigateTo({
url,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
static/images/user.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
static/mine/somp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,29 +1,27 @@
{
"minSdkVersion": "21",
"dependencies": [
"com.google.android.material:material:1.3.0",
"com.google.code.gson:gson:2.9.1",
"commons-codec:commons-codec:1.15",
"com.github.bumptech.glide:glide:4.12.0",
"com.tencent.timpush:timpush:8.5.6864",
"com.tencent.liteav.tuikit:tuicore:8.5.6864",
"com.tencent.timpush:huawei:8.5.6864",
"com.tencent.timpush:xiaomi:8.5.6864",
"com.tencent.timpush:oppo:8.5.6864",
"com.tencent.timpush:meizu:8.5.6864",
"com.tencent.timpush:fcm:8.5.6864",
"com.tencent.timpush:honor:8.5.6864",
"com.tencent.timpush:vivo:8.5.6864"
],
"project": {
"plugins": [
"com.huawei.agconnect",
"com.hihonor.mcs.asplugin"
],
"dependencies": [
"com.huawei.agconnect:agcp:1.9.1.301",
"com.google.gms:google-services:4.3.15",
"com.hihonor.mcs:asplugin:2.0.1.300"
]
}
"minSdkVersion": "21",
"dependencies": [
"com.google.android.material:material:1.3.0",
"com.google.code.gson:gson:2.9.1",
"commons-codec:commons-codec:1.15",
"com.github.bumptech.glide:glide:4.12.0",
"com.tencent.timpush:timpush:8.5.6864",
"com.tencent.liteav.tuikit:tuicore:8.5.6864",
"com.tencent.timpush:huawei:8.5.6864",
"com.tencent.timpush:xiaomi:8.5.6864",
"com.tencent.timpush:oppo:8.5.6864",
"com.tencent.timpush:meizu:8.5.6864",
"com.tencent.timpush:fcm:8.5.6864"
],
"project": {
"plugins": [
"com.huawei.agconnect",
"com.hihonor.mcs.asplugin"
],
"dependencies": [
"com.huawei.agconnect:agcp:1.9.1.301",
"com.google.gms:google-services:4.3.15",
"com.hihonor.mcs:asplugin:2.0.1.300"
]
}
}

View File

@ -82,8 +82,8 @@ export function checkBankno(bankno) {
export function whetherNavigate(type = "default") {
let navigation = getCurrentPages()[getCurrentPages().length - (getCurrentPages().length ) ];
console.log(navigation.route)
console.log(getCurrentPages().length)
// console.log(navigation.route)
// console.log(getCurrentPages().length)
uni.setStorageSync('refreshVlogIndex','1') //需要刷新
if (getCurrentPages().length > 1) {
// console.log(navigation, getCurrentPages());