This commit is contained in:
faiz 2024-05-29 15:46:29 +08:00
parent ed4b7c88a1
commit 20d994a8b0
42 changed files with 1480 additions and 220 deletions

12
App.vue
View File

@ -118,9 +118,9 @@
if (this.$store.state.app.token) { if (this.$store.state.app.token) {
// //
// #ifdef H5 // #ifdef H5
history({ // history({
page: location.pathname + location.search, // page: location.pathname + location.search,
}).then(() => {}); // }).then(() => {});
//#endif //#endif
}; };
// #ifndef H5 // #ifndef H5
@ -232,9 +232,9 @@
$route(n) { $route(n) {
if (this.$store.state.app.token) { if (this.$store.state.app.token) {
// //
history({ // history({
page: location.pathname + location.search, // page: location.pathname + location.search,
}).then(() => {}); // }).then(() => {});
} }
}, },
} }

View File

@ -3,12 +3,12 @@
"prompt" : "template", "prompt" : "template",
"title" : "服务协议与隐私政策", "title" : "服务协议与隐私政策",
"message" : "\t <br/>\r\r\r "message" : "\t <br/>\r\r\r
\t <a href=\"https://请修改为自己的域名/register.html\">《用户协议》</a> 与 <a href=\"https://请修改为自己的域名/protocol.html\">《隐私政策》</a>了解详细信息。如你同意,请点击“我同意”开始接受我们的服务。", \t <a href=\"https://store.tropjoin.com/pages/users/user_about/index?from=sys_user_agree\">《用户协议》</a> 与 <a href=\"https://store.tropjoin.com/pages/users/user_about/index?from=sys_userr_privacy\">《隐私政策》</a>了解详细信息。如你同意,请点击“我同意”开始接受我们的服务。",
"buttonAccept" : "同意并接受", "buttonAccept" : "同意并接受",
"buttonRefuse" : "暂不同意", "buttonRefuse" : "暂不同意",
"second" : { "second" : {
"title" : "确认提示", "title" : "确认提示",
"message" : "进入应用前,你需先同意<a href=\"https://请修改为自己的域名/register.html\">《用户协议》</a> 与 <a href=\"https://请修改为自己的域名/protocol.html\">《隐私政策》</a>,否则将退出应用。", "message" : "进入应用前,你需先同意<a href=\"https://store.tropjoin.com/pages/users/user_about/index?from=sys_user_agree\">《用户协议》</a> 与 <a href=\"https://store.tropjoin.com/pages/users/user_about/index?from=sys_userr_privacy\">《隐私政策》</a>,否则将退出应用。",
"buttonAccept" : "同意并继续", "buttonAccept" : "同意并继续",
"buttonRefuse" : "退出应用" "buttonRefuse" : "退出应用"
}, },

View File

@ -420,6 +420,12 @@ export function feedback(data) {
export function feedbackList(data) { export function feedbackList(data) {
return request.get("user/feedback/list", data); return request.get("user/feedback/list", data);
} }
/**
* 中奖列表
*/
export function signEntityLog() {
return request.get("user/sign/entity_log");
}
/** /**
* 反馈列表 * 反馈列表
*/ */
@ -607,6 +613,14 @@ export function cacheInfo(key) {
export function userOut(data) { export function userOut(data) {
return request.post(`user/cancel`, data) return request.post(`user/cancel`, data)
} }
/**
* 地址
* @param object data
*
*/
export function signAddress(data) {
return request.post(`user/sign/address`, data)
}
/** /**
* 获取聊天用户信息 * 获取聊天用户信息
* @param object data * @param object data

View File

@ -2,7 +2,8 @@
<view> <view>
<view class="priceChange" :class="change === true ? 'on' : ''"> <view class="priceChange" :class="change === true ? 'on' : ''">
<view class="priceTitle" :style="{ 'background-image': `url(${domain}/static/images/pricetitle.jpg)`}"> <view class="priceTitle" :style="{ 'background-image': `url(${domain}/static/images/pricetitle.jpg)`}">
{{ status == 0 ? "一键改价" : status == 1 ? "订单备注" : "立即退款" }} {{ status == 1 ? "订单备注" : "立即退款" }}
<!-- {{ status == 0 ? "一键改价" : status == 1 ? "订单备注" : "立即退款" }} -->
<span class="iconfont icon-guanbi" @click="close"></span> <span class="iconfont icon-guanbi" @click="close"></span>
</view> </view>
<view class="listChange" v-if="status == 0"> <view class="listChange" v-if="status == 0">

View File

@ -18,18 +18,24 @@
<view class="coupon_popups" v-if="popShow"> <view class="coupon_popups" v-if="popShow">
<view class="bg2"></view> <view class="bg2"></view>
<view class="con" v-if="blind"> <view class="con" v-if="blind">
<view class="content"> <view class="content" v-if="!this.prize.name">
<image :src="drawInfo.img" mode=""></image> <image :src="drawInfo.img" mode=""></image>
<view class="text-black">恭喜您获得</view> <view class="text-black">恭喜您获得</view>
<view class="text-red">{{drawInfo.text}}</view> <view class="text-red">{{drawInfo.text}}铸源星</view>
<view class="btn" @click="closePop()">开心收下</view> <view class="btn" @click="closePop()">开心收下</view>
</view> </view>
<view v-if="this.prize.name" class="content" style="height: 660rpx;">
<image style="height: 300rpx;" :src="this.prize.image" mode=""></image>
<view class="text-black">恭喜您获得</view>
<view class="text-red">{{this.prize.name}}</view>
<view class="btn" @click="writeAddress()">填写地址</view>
</view>
</view> </view>
<view class="con" v-else> <view class="con" v-else>
<view class="content"> <view class="content">
<image src="https://store.tropjoin.com/images/notBlind.png" style="width: 80px;height: 80px;" mode=""></image> <image src="https://store.tropjoin.com/images/notBlind.png" style="width: 80px;height: 80px;" mode=""></image>
<view class="text-black">很遗憾,差一点就中奖了</view> <view class="text-black">谢谢参与</view>
<view class="text-red">期待您下次再来</view> <view class="text-red">期待您下次再来</view>
<view class="btn" @click="closePop()">我知道了</view> <view class="btn" @click="closePop()">我知道了</view>
</view> </view>
@ -58,6 +64,11 @@
}, },
popShow:false, popShow:false,
list:[], list:[],
prize:{
name:'',
id:'',
image:''
},
drawInfo:{ drawInfo:{
img:'', img:'',
text:'', text:'',
@ -72,20 +83,23 @@
async openBlindBox(val){ async openBlindBox(val){
this.actionIndex=val; this.actionIndex=val;
if(val/2){ if(val/2){
// this.popShow=true;
// this.blind=true;
await setBlind().then(res=>{ await setBlind().then(res=>{
if(res.status == 200){ if(res.status == 200){
setTimeout(()=>{ setTimeout(()=>{
this.popShow=true; this.popShow=true;
this.prize = res.data.prize || {name:'',image:'',id:'',draw_time:''}
this.drawInfo.text = res.data.integral; this.drawInfo.text = res.data.integral;
this.blind=!!res.data.integral; this.blind=!!res.data.integral || !!this.prize.name;
},1500) },1500)
}else{ }else{
return this.$util.Tips({title:err}) return this.$util.Tips({title:err})
} }
}).catch(err=>{ }).catch(err=>{
// this.close(); // this.close();
// return this.$util.Tips({title:err}) return this.$util.Tips({title:err})
// return this.$util.Tips({title:err.message})
}); });
}else{ }else{
setTimeout(()=>{ setTimeout(()=>{
@ -97,6 +111,13 @@
}, },
init(){ init(){
}, },
writeAddress(){
let {id,draw_time,image,name} = this.prize
uni.navigateTo({
url: `/pages/users/winning_confirm/index?id=${id}&draw_time=${draw_time}&image=${image}&name=${name}`,
});
this.closePop()
},
closePop(){ closePop(){
this.popShow=false; this.popShow=false;
this.blindShow=false; this.blindShow=false;
@ -142,7 +163,7 @@
height: 100vh; height: 100vh;
position: fixed; position: fixed;
background-color: rgba(0,0,0,.9); background-color: rgba(0,0,0,.9);
z-index: 10000; z-index: 998;
top: 0; top: 0;
display: flex; display: flex;
align-items: center; align-items: center;
@ -270,9 +291,9 @@
margin: 20rpx 0; margin: 20rpx 0;
line-height: 54rpx; line-height: 54rpx;
text-align: center; text-align: center;
background: url('https://store.tropjoin.com/images/mh-title.png') no-repeat; // background: url('https://store.tropjoin.com/images/mh-title.png') no-repeat;
background-size: 100% 100%; // background-size: 100% 100%;
background-position: center; // background-position: center;
} }
.blind-box{ .blind-box{
width: 100%; width: 100%;

View File

@ -19,7 +19,7 @@
<div :id="'rtf'+uid"></div> <div :id="'rtf'+uid"></div>
<!--#endif--> <!--#endif-->
<!--#ifndef H5--> <!--#ifndef H5-->
<trees :nodes="nodes" :lazy-load="lazyLoad" :loadVideo="loadVideo" /> <trees :imgLoad='previewImg' :nodes="nodes" :lazy-load="lazyLoad" :loadVideo="loadVideo" />
<image v-for="(item, index) in imgs" v-bind:key="index" :id="index" :src="item" hidden @load="_load" /> <image v-for="(item, index) in imgs" v-bind:key="index" :id="index" :src="item" hidden @load="_load" />
<!--#endif--> <!--#endif-->
</view> </view>
@ -57,6 +57,7 @@
return { return {
// #ifdef APP-PLUS // #ifdef APP-PLUS
loadVideo: false, loadVideo: false,
// imgLoad:false,
// #endif // #endif
// #ifdef H5 // #ifdef H5
uid: this._uid, uid: this._uid,
@ -80,6 +81,10 @@
// #endif // #endif
props: { props: {
'html': null, 'html': null,
'previewImg':{
type: Boolean,
default: true
},
// #ifndef MP-ALIPAY // #ifndef MP-ALIPAY
'autopause': { 'autopause': {
type: Boolean, type: Boolean,
@ -317,7 +322,7 @@
var preview = true; var preview = true;
this.ignore = () => preview = false; this.ignore = () => preview = false;
_ts.$emit('imgtap', this); _ts.$emit('imgtap', this);
if (preview) { if (preview && _ts.previewImg) {
uni.previewImage({ uni.previewImage({
current: this.i, current: this.i,
urls: _ts.imgList urls: _ts.imgList
@ -689,7 +694,7 @@
var preview = true; var preview = true;
data.img.ignore = () => preview = false; data.img.ignore = () => preview = false;
this.$emit('imgtap', data.img); this.$emit('imgtap', data.img);
if (preview) if (preview && this.previewImg)
uni.previewImage({ uni.previewImage({
current: data.img.i, current: data.img.i,
urls: this.imgList urls: this.imgList

View File

@ -142,7 +142,10 @@
lazyLoad: Boolean, lazyLoad: Boolean,
// #endif // #endif
// #ifdef APP-PLUS // #ifdef APP-PLUS
loadVideo: Boolean loadVideo: Boolean,
imgLoads:{
type: Boolean
}
// #endif // #endif
}, },
mounted() { mounted() {
@ -181,7 +184,7 @@
}; };
global.Parser.onImgtap && global.Parser.onImgtap(data); global.Parser.onImgtap && global.Parser.onImgtap(data);
this.top.$emit('imgtap', data); this.top.$emit('imgtap', data);
if (preview) { if (preview && this.imgLoads) {
var urls = this.top.imgList, var urls = this.top.imgList,
current = urls[attrs.i] ? parseInt(attrs.i) : (urls = [attrs.src], 0); current = urls[attrs.i] ? parseInt(attrs.i) : (urls = [attrs.src], 0);
uni.previewImage({ uni.previewImage({

View File

@ -15,8 +15,6 @@
<text v-if="item.value=='balance'"></text> <text v-if="item.value=='balance'"></text>
{{ item.number }} {{ item.number }}
</span> </span>
</view> </view>
<view class="info" v-else>{{item.title}}</view> <view class="info" v-else>{{item.title}}</view>
</view> </view>
@ -109,6 +107,7 @@
}); });
}, },
goPay: function(number, paytype,password) { goPay: function(number, paytype,password) {
console.log(paytype)
this.number=number; this.number=number;
if (this.isCall) { if (this.isCall) {
return this.$emit('onChangeFun', { return this.$emit('onChangeFun', {
@ -141,6 +140,10 @@
// #ifdef MP // #ifdef MP
type = 'alipayQr'; type = 'alipayQr';
// #endif // #endif
}else if(paytype == 'sand'){
type = 'sand'
}else if(paytype == 'sandCard'){
type = 'sandCard'
} }
if (!that.order_id) return that.$util.Tips({ if (!that.order_id) return that.$util.Tips({
title: '请选择要支付的订单' title: '请选择要支付的订单'
@ -376,9 +379,25 @@
location.href = locations; location.href = locations;
}, 100); }, 100);
break; break;
case 'sand':
case 'sandCard':
setTimeout(() => {
location.href = jsConfig;
}, 100);
break;
// #endif // #endif
// #ifdef APP-PLUS // #ifdef APP-PLUS
case 'sand':
case 'sandCard':
console.log(jsConfig);
if (plus.os.name === 'iOS') {
plus.runtime.openURL(jsConfig);
} else if (plus.os.name === 'Android') {
console.log(jsConfig);
plus.runtime.openURL(jsConfig);
}
break;
case 'alipayApp': case 'alipayApp':
uni.requestPayment({ uni.requestPayment({
provider: 'alipay', provider: 'alipay',

View File

@ -13,7 +13,7 @@
<view> <view>
预售价 预售价
<text class="num">{{ attr.productSelect.price }}</text> <text class="num">{{ attr.productSelect.price }}</text>
<view class="discount" v-if="attr.productSelect.coupon"> <view class="discount" v-if="globalData.show_coupon_status && attr.productSelect.coupon">
<view class="discount_main"> <view class="discount_main">
<view class="discount_left">可用抵扣</view> <view class="discount_left">可用抵扣</view>
<view class="discount_right">{{attr.productSelect.coupon}}</view> <view class="discount_right">{{attr.productSelect.coupon}}</view>
@ -34,7 +34,7 @@
</view> </view>
<view v-else> <view v-else>
<text></text><text class="num">{{ attr.productSelect.price }}</text> <text></text><text class="num">{{ attr.productSelect.price }}</text>
<view class="discount" v-if="attr.productSelect.coupon"> <view class="discount" v-if="globalData.show_coupon_status && attr.productSelect.coupon">
<view class="discount_main"> <view class="discount_main">
<view class="discount_left">可用抵扣</view> <view class="discount_left">可用抵扣</view>
<view class="discount_right">{{attr.productSelect.coupon}}</view> <view class="discount_right">{{attr.productSelect.coupon}}</view>
@ -167,7 +167,7 @@
value: '' value: ''
} }
}, },
computed: mapGetters(['viewColor']), computed: mapGetters(['viewColor','globalData']),
data() { data() {
return { return {
}; };
@ -227,6 +227,7 @@
// //
getCheckedValue: function() { getCheckedValue: function() {
let productAttr = this.attr.productAttr; let productAttr = this.attr.productAttr;
console.log(this.attr.productAttr);
let value = []; let value = [];
for (let i = 0; i < productAttr.length; i++) { for (let i = 0; i < productAttr.length; i++) {
for (let j = 0; j < productAttr[i].attr_values.length; j++) { for (let j = 0; j < productAttr[i].attr_values.length; j++) {

View File

@ -2,7 +2,7 @@
<view class="content"> <view class="content">
<view class="bg"> <view class="bg">
<view class="top"> <view class="top">
<view class="iconfont icon-guanbi2" style="position: absolute;right: 20px;top:-40px;font-size: 30px;color: white;" @click="close"></view> <view class="iconfont icon-guanbi2" style="position: absolute;right: 20px;top:50px;font-size: 30px;color: white;" @click="close"></view>
</view> </view>
<view class="lucky-draw"> <view class="lucky-draw">
@ -28,12 +28,12 @@
<view class="con" v-else> <view class="con" v-else>
<view class="contents"> <view class="contents">
<image src="https://store.tropjoin.com/images/notBlind.png" style="width: 80px;height: 80px;" mode=""></image> <image src="https://store.tropjoin.com/images/notBlind.png" style="width: 80px;height: 80px;" mode=""></image>
<view class="text-black">很遗憾,差一点就中奖了</view> <view class="text-black">谢谢参与</view>
<view class="text-red">期待您下次再来</view> <view class="text-red">期待您下次再来</view>
<view class="btn" @click="confirm" v-if="!drawInfo.wheel">我知道了</view> <view class="btn" @click="confirm" v-if="!drawInfo.wheel">我知道了</view>
<view class="btn" @click="goBlind" v-else>继续开盲盒</view> <view class="btn" @click="goBlind" v-else>继续开盲盒</view>
</view> </view>
<view class='iconfont icon-guanbi3' @click="popShow = false"></view>
</view> </view>
</view> </view>
<blindBox v-if="blindShow" @cloneblindBox='close'></blindBox> <blindBox v-if="blindShow" @cloneblindBox='close'></blindBox>
@ -72,8 +72,8 @@
this.blind=false; this.blind=false;
this.close(); this.close();
}, },
async openBox(){ openBox(){ ;
await setSignIntegral().then(res=>{ setSignIntegral().then(res=>{
this.drawInfo.text = res.data.integral; this.drawInfo.text = res.data.integral;
this.drawInfo.wheel=res.data.wheel; this.drawInfo.wheel=res.data.wheel;
this.gifShow=true; this.gifShow=true;
@ -84,12 +84,13 @@
},1500) },1500)
}).catch(err=>{ }).catch(err=>{
// this.close(); // this.close();
// return this.$util.Tips({title:err}) return this.$util.Tips({title:err})
}); });
}, },
goBlind(){ goBlind(){
this.blindShow=true; this.blindShow=true;
this.popShow=false;
}, },
close(){ close(){
this.$emit('closeTreasureBox') this.$emit('closeTreasureBox')
@ -104,11 +105,11 @@
height: 100vh; height: 100vh;
position: fixed; position: fixed;
top: 0; top: 0;
z-index: 1000; z-index: 996;
padding-top: 200rpx; padding-top: 200rpx;
background-color: rgba(0,0,0,1); background-color: rgba(0,0,0,1);
.coupon_popups{ .coupon_popups{
z-index: 999; z-index: 997;
position: fixed; position: fixed;
left: 0; left: 0;
top: 0; top: 0;
@ -127,7 +128,7 @@
.con{ .con{
position: absolute; position: absolute;
left: 50%; left: 50%;
top: 50%; top: 48%;
transform: translate(-50%,-50%); transform: translate(-50%,-50%);
width: 680rpx; width: 680rpx;
height: 900rpx; height: 900rpx;
@ -219,8 +220,8 @@
.top{ .top{
width: 488rpx; width: 488rpx;
height: 140rpx; height: 140rpx;
background-image: url('https://store.tropjoin.com/images/box-title.png'); // background-image: url('https://store.tropjoin.com/images/box-title.png');
background-size: 100% 100%; // background-size: 100% 100%;
margin: 0 auto; margin: 0 auto;
} }
.lucky-draw{ .lucky-draw{

View File

@ -6,12 +6,12 @@ let VUE_APP_WS_URL = `ws://${location.hostname}?type=user`
let openPlantGrass = '-openPlantGrass-' let openPlantGrass = '-openPlantGrass-'
// 网络接口修改此字符 小程序域名要求https // 网络接口修改此字符 小程序域名要求https
let httpApi = 'http://192.168.1.107:8080' //测试 // let httpApi = 'http://192.168.1.50:8080' //测试
// let httpApi = 'https://api.tropjoin.com' //生产 let httpApi = 'https://api.tropjoin.com' //生产
// 聊天接口修改此字符 小程序聊天要求wss 例如wss://mer. .net // 聊天接口修改此字符 小程序聊天要求wss 例如wss://mer. .net
let wsApi = 'ws://192.168.1.107:8080' // let wsApi = 'ws://192.168.1.50:8080'
// let wsApi = 'wss://ws.tropjoin.com' let wsApi = 'wss://ws.tropjoin.com'
module.exports = { module.exports = {
// 请求域名 格式: https://您的域名 // 请求域名 格式: https://您的域名

View File

@ -4,7 +4,6 @@ import App from './App'
import store from './store' import store from './store'
import Cache from './utils/cache' import Cache from './utils/cache'
import util from 'utils/util' import util from 'utils/util'
import fq from 'utils/fq'
import { HTTP_REQUEST_URL } from '@/config/app'; import { HTTP_REQUEST_URL } from '@/config/app';
import skeleton from './components/skeleton/index.vue' import skeleton from './components/skeleton/index.vue'
import BaseMoney from './components/BaseMoney.vue'; import BaseMoney from './components/BaseMoney.vue';
@ -13,7 +12,6 @@ Vue.component('skeleton', skeleton)
Vue.component('BaseMoney', BaseMoney) Vue.component('BaseMoney', BaseMoney)
Vue.prototype.$util = util; Vue.prototype.$util = util;
Vue.prototype.$Cache = Cache; Vue.prototype.$Cache = Cache;
Vue.prototype.$fq = fq;
Vue.prototype.$eventHub = new Vue(); Vue.prototype.$eventHub = new Vue();
Vue.config.productionTip = false Vue.config.productionTip = false
// Vue.use(uvUI); // Vue.use(uvUI);

View File

@ -1,9 +1,9 @@
{ {
"name" : "铸源商城", "name" : "铸源优品",
"appid" : "__UNI__496DF55", "appid" : "__UNI__496DF55",
"description" : "", "description" : "",
"versionName" : "1.0.3", "versionName" : "1.0.6",
"versionCode" : 130, "versionCode" : 133,
"transformPx" : false, "transformPx" : false,
/* 5+App */ /* 5+App */
"app-plus" : { "app-plus" : {

View File

@ -382,6 +382,12 @@
"navigationBarTitleText": "提交订单" "navigationBarTitleText": "提交订单"
} }
}, },
{
"path": "winning_confirm/index",
"style": {
"navigationBarTitleText": "奖品记录"
}
},
{ {
"path": "promoter-list/index", "path": "promoter-list/index",
"style": { "style": {

View File

@ -110,7 +110,7 @@
// //
uni.getSystemInfo({ uni.getSystemInfo({
success(e) { success(e) {
that.isWidth = e.windowWidth / 6; // that.isWidth = e.windowWidth / 6;
that.windowHeight = e.windowHeight; that.windowHeight = e.windowHeight;
// that.swiperHeight = that.windowHeight - 205 // that.swiperHeight = that.windowHeight - 205
that.$set(that, 'swiperHeight', that.windowHeight-150); that.$set(that, 'swiperHeight', that.windowHeight-150);
@ -126,13 +126,19 @@
methods: { methods: {
spuTop(cate_id) { spuTop(cate_id) {
spuTop().then(res => { spuTop().then(res => {
console.log(cate_id);
this.categoryList = [...this.categoryList, ...res.data] this.categoryList = [...this.categoryList, ...res.data]
this.cate_name = this.getCate(cate_id,this.categoryList) || '' this.cate_name = this.getCate(cate_id,this.categoryList) || ''
this.$nextTick(() => {
this.getSpuTopList(cate_id) this.getSpuTopList(cate_id)
this.active = cate_id && this.cate_name ? cate_id : 0 this.$nextTick(() => {
console.log('xxx');
// this.getSpuTopList(cate_id)
// this.active = cate_id && this.cate_name ? cate_id : 0
this.active = 0
this.scrollInto = `cate${cate_id}`; this.scrollInto = `cate${cate_id}`;
let tabLeft = (this.swiperCur - 2) * this.isWidth; //线 let tabLeft = (this.swiperCur - 2) * this.isWidth; //线
console.log(tabLeft);
this.$set(this, 'tabLeft', tabLeft); this.$set(this, 'tabLeft', tabLeft);
}); });
}) })
@ -142,7 +148,9 @@
spuTopList({ spuTopList({
cate_pid: cate_id cate_pid: cate_id
}).then(res => { }).then(res => {
console.log(res);
this.spuTopList = (res.data[0] && res.data[0]['list']) || [] this.spuTopList = (res.data[0] && res.data[0]['list']) || []
console.log(this.spuTopList);
}) })
}, },
swiperChange(e) { swiperChange(e) {

View File

@ -155,9 +155,9 @@
<view style="height:100upx;"></view> <view style="height:100upx;"></view>
<view class="footer acea-row row-right row-middle" v-if="goname != 'looks'"> <view class="footer acea-row row-right row-middle" v-if="goname != 'looks'">
<view class="more"></view> <view class="more"></view>
<view class="bnt cancel" @click="modify('0')" v-if="orderInfo.paid == 0"> <!-- <view class="bnt cancel" @click="modify('0')" v-if="orderInfo.paid == 0">
一键改价 一键改价
</view> </view> -->
<navigator v-if="orderInfo.status!=-1&&orderInfo.status<9&&orderInfo.paid == 1" class="bnt cancel" :url="'/pages/admin/refundList/index?mer_id='+mer_id+'&order_id='+orderInfo.order_id"> <navigator v-if="orderInfo.status!=-1&&orderInfo.status<9&&orderInfo.paid == 1" class="bnt cancel" :url="'/pages/admin/refundList/index?mer_id='+mer_id+'&order_id='+orderInfo.order_id">
立即退款 立即退款
</navigator> </navigator>

View File

@ -135,9 +135,9 @@
<view class="more"> <view class="more">
</view> </view>
<view class="acea-row row-middle"> <view class="acea-row row-middle">
<view class="bnt" @click="modify(item, 0)" v-if="where.status == 1 && item.activity_type != 2"> <!-- <view class="bnt" @click="modify(item, 0)" v-if="where.status == 1 && item.activity_type != 2">
一键改价 一键改价
</view> </view> -->
<view class="bnt" @click="modify(item, 1)">订单备注</view> <view class="bnt" @click="modify(item, 1)">订单备注</view>
<view class="bnt bnt_color" v-if="where.status == 2 && item.order_type == 0" @click="toPostage(item)">去发货</view> <view class="bnt bnt_color" v-if="where.status == 2 && item.order_type == 0" @click="toPostage(item)">去发货</view>
<view class="bnt bnt_color" v-if="(where.status == 2 && item.order_type == 1) || where.is_verify == 1" @click="toDetail(item)">去核销</view> <view class="bnt bnt_color" v-if="(where.status == 2 && item.order_type == 1) || where.is_verify == 1" @click="toDetail(item)">去核销</view>

View File

@ -51,14 +51,14 @@ import { toLogin } from '@/libs/login.js';
const typeData = { const typeData = {
best:{ best:{
desc:'新品抢先购', desc:'新品抢先购',
name:'精品推荐' name:'品牌好物'
}, },
hot:{ hot:{
desc:'剁手必备指南', desc:'剁手必备指南',
name:'热门榜单' name:'热门榜单'
}, },
new:{ new:{
desc:'发现品质好物', desc:'惊喜折扣价',
name:'首发新品' name:'首发新品'
}, },
good:{ good:{
@ -147,7 +147,7 @@ export default {
this.name = ''; this.name = '';
this.desc = ''; this.desc = '';
}else{ }else{
let name = (typeData[this.type]||{}).name || '精品推荐'; let name = (typeData[this.type]||{}).name || '品牌好物';
let url = this.$route ? this.$route.fullPath : ('/' + util.getNowUrl()); let url = this.$route ? this.$route.fullPath : ('/' + util.getNowUrl());
this.hotData.forEach(data=>{ this.hotData.forEach(data=>{
if(data.url == url) name = data.title; if(data.url == url) name = data.title;

View File

@ -13,7 +13,7 @@
</view> </view>
<view style="text-align: right;" v-if="tabIndex==1" class='iconfont' :class='is_switch==true?"icon-pailie":"icon-tupianpailie"' <view style="text-align: right;" v-if="tabIndex==1" class='iconfont' :class='is_switch==true?"icon-pailie":"icon-tupianpailie"'
@click='Changswitch'></view> @click='Changswitch'></view>
<view v-else-if="mer_location == 1" style="text-align: right;" class='iconfont icon-dingwei' @click="showMaoLocation(latitude,longitude)"></view> <!-- <view v-else-if="mer_location == 1" style="text-align: right;" class='iconfont icon-dingwei' @click="showMaoLocation(latitude,longitude)"></view> -->
</view> </view>
<view class="nav-wrapper"> <view class="nav-wrapper">
<view v-if="hide_mer_status == 0" class="tab-bar"> <view v-if="hide_mer_status == 0" class="tab-bar">
@ -285,11 +285,11 @@
key: 2, key: 2,
order: 'rate' order: 'rate'
}, },
{ // {
title: '距离', // title: '',
key: 3, // key: 3,
order: 'location' // order: 'location'
} // }
], ],
price: 0, price: 0,
stock: 0, stock: 0,
@ -373,7 +373,7 @@
success: (res) => { success: (res) => {
if (res.data.mer_location == 1) { if (res.data.mer_location == 1) {
this.mer_location = res.data.mer_location this.mer_location = res.data.mer_location
this.selfLocation() // this.selfLocation()
} }
} }
}); });

View File

@ -26,7 +26,7 @@
<!--有氛围图--> <!--有氛围图-->
<view v-if="storeInfo.atmosphere_pic" :style="{ backgroundImage: `url(${storeInfo.atmosphere_pic})` }" class='nav acea-row row-between-wrapper'> <view v-if="storeInfo.atmosphere_pic" :style="{ backgroundImage: `url(${storeInfo.atmosphere_pic})` }" class='nav acea-row row-between-wrapper'>
<view class='money skeleton-rect'><text class='num'>{{storeInfo.price}}</text> <view class='money skeleton-rect'><text class='num'>{{storeInfo.price}}</text>
<view class="discount" v-if="skuCoupon"> <view class="discount" v-if="globalData.show_coupon_status && skuCoupon">
<view class="discount_main"> <view class="discount_main">
<view class="discount_left">可用抵扣</view> <view class="discount_left">可用抵扣</view>
<view class="discount_right">{{skuCoupon}}</view> <view class="discount_right">{{skuCoupon}}</view>
@ -42,9 +42,11 @@
<view class='wrapper'> <view class='wrapper'>
<view v-if="storeInfo.atmosphere_pic" class='introduce skeleton-rect acea-row atmosphere'> <view v-if="storeInfo.atmosphere_pic" class='introduce skeleton-rect acea-row atmosphere'>
<view class="title"> <view class="title">
<text v-if="storeInfo.is_benefit" class="font-bg-red bt-color">特惠</text>
<text v-if="(storeInfo.merchant && storeInfo.merchant.type_name)" class="font-bg-red bt-color">{{storeInfo.merchant.type_name}}</text> <text v-if="(storeInfo.merchant && storeInfo.merchant.type_name)" class="font-bg-red bt-color">{{storeInfo.merchant.type_name}}</text>
<text v-else-if="(storeInfo.merchant && storeInfo.merchant.is_trader)" class="font-bg-red bt-color">自营</text> <text v-else-if="(storeInfo.merchant && storeInfo.merchant.is_trader)" class="font-bg-red bt-color">自营</text>
{{storeInfo.store_name}} {{storeInfo.store_name}}
</view> </view>
<view class="fenxiang_btn"> <view class="fenxiang_btn">
<view @click="setCollect"><text class="iconfont" :class="storeInfo.isRelation ? 'icon-yishoucang2' : 'icon-shoucang4'"></text><br/>收藏</view> <view @click="setCollect"><text class="iconfont" :class="storeInfo.isRelation ? 'icon-yishoucang2' : 'icon-shoucang4'"></text><br/>收藏</view>
@ -60,7 +62,7 @@
<view class='money p-color skeleton-rect' style="min-width: 70rpx;"> <view class='money p-color skeleton-rect' style="min-width: 70rpx;">
<text class='num'>{{storeInfo.price}}</text> <text class='num'>{{storeInfo.price}}</text>
<view class="discount" v-if="skuCoupon"> <view class="discount" v-if="globalData.show_coupon_status && skuCoupon">
<view class="discount_main"> <view class="discount_main">
<view class="discount_left">可用抵扣</view> <view class="discount_left">可用抵扣</view>
<view class="discount_right">{{skuCoupon}}</view> <view class="discount_right">{{skuCoupon}}</view>
@ -98,6 +100,7 @@
<text v-if="storeInfo.delivery_free == 1" class='integral'>包邮</text> <text v-if="storeInfo.delivery_free == 1" class='integral'>包邮</text>
</view> </view>
<view v-if="!storeInfo.atmosphere_pic" class='introduce skeleton-rect'> <view v-if="!storeInfo.atmosphere_pic" class='introduce skeleton-rect'>
<text v-if="storeInfo.is_benefit" class="font-bg-red bt-color">特惠</text>
<text v-if="storeInfo.merchant.type_name" class="font-bg-red bt-color">{{storeInfo.merchant.type_name}}</text> <text v-if="storeInfo.merchant.type_name" class="font-bg-red bt-color">{{storeInfo.merchant.type_name}}</text>
<text v-else-if="storeInfo.merchant.is_trader" class="font-bg-red bt-color">自营</text> <text v-else-if="storeInfo.merchant.is_trader" class="font-bg-red bt-color">自营</text>
{{storeInfo.store_name || ''}} {{storeInfo.store_name || ''}}
@ -144,7 +147,7 @@
<!--运费--> <!--运费-->
<view v-if="shipping || shippingValue" class='attribute acea-row row-between-wrapper' @click="showShip"> <view v-if="shipping || shippingValue" class='attribute acea-row row-between-wrapper' @click="showShip">
<view class="acea-row row-between-wrapper">运费 <view class="acea-row row-between-wrapper">运费
<text class='atterTxt'>{{shippingValue}}</text> <text class='atterTxt'>运费说明</text>
</view> </view>
<view class='iconfont icon-jiantou'></view> <view class='iconfont icon-jiantou'></view>
</view> </view>
@ -389,10 +392,10 @@
</button> </button>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef APP-PLUS --> <!-- #ifdef APP-PLUS -->
<view class="item" @click="appShare('WXSceneSession')"> <!-- <view class="item" @click="appShare('WXSceneSession')">
<view class="iconfont icon-weixin3"></view> <view class="iconfont icon-weixin3"></view>
<view class="">分享给好友</view> <view class="">分享给好友</view>
</view> </view> -->
<!-- #endif --> <!-- #endif -->
<button class="item" :class="weixinStatus ? 'item3' : ''" hover-class='none' @click="goPoster"> <button class="item" :class="weixinStatus ? 'item3' : ''" hover-class='none' @click="goPoster">
<view class="iconfont icon-haibao"></view> <view class="iconfont icon-haibao"></view>
@ -477,6 +480,7 @@
import discountsGoods from './discountsGoods'; import discountsGoods from './discountsGoods';
import ClipboardJS from "@/plugin/clipboard/clipboard.js"; import ClipboardJS from "@/plugin/clipboard/clipboard.js";
import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue'; import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue';
import prompt from '@/utils/prompt.js'
let app = getApp(); let app = getApp();
export default { export default {
components: { components: {
@ -630,7 +634,7 @@
}; };
}, },
computed:{ computed:{
...configMap(['margin_ico_switch','margin_ico','hide_mer_status','procudt_increase_status','site_name','share_pic'], mapGetters(['isLogin','uid','viewColor'])), ...configMap(['margin_ico_switch','margin_ico','hide_mer_status','procudt_increase_status','site_name','share_pic'], mapGetters(['isLogin','uid','viewColor','globalData'])),
}, },
onLoad(options) { onLoad(options) {
let that = this let that = this
@ -1028,6 +1032,7 @@
this.$set(this.attr.productSelect, "svip_price", productSelect.svip_price); this.$set(this.attr.productSelect, "svip_price", productSelect.svip_price);
this.$set(this.attr.productSelect, "stock", productSelect.stock); this.$set(this.attr.productSelect, "stock", productSelect.stock);
this.$set(this.attr.productSelect, "unique", productSelect.unique); this.$set(this.attr.productSelect, "unique", productSelect.unique);
this.$set(this.attr.productSelect, "coupon", productSelect.coupon);
this.$set(this, "uniqueValue", productSelect.unique); this.$set(this, "uniqueValue", productSelect.unique);
if (productSelect.stock == 0) { if (productSelect.stock == 0) {
this.$set(this.attr.productSelect, "cart_num", 0); this.$set(this.attr.productSelect, "cart_num", 0);
@ -1036,6 +1041,7 @@
} }
this.$set(this, "attrValue", res); this.$set(this, "attrValue", res);
this.$set(this, "attrTxt", "选择"); this.$set(this, "attrTxt", "选择");
console.log(productSelect);
} }
else { else {
this.$set(this.attr.productSelect, "image", productSelect.image); this.$set(this.attr.productSelect, "image", productSelect.image);
@ -1043,6 +1049,7 @@
this.$set(this.attr.productSelect, "svip_price", productSelect.svip_price); this.$set(this.attr.productSelect, "svip_price", productSelect.svip_price);
this.$set(this.attr.productSelect, "stock", 0); this.$set(this.attr.productSelect, "stock", 0);
this.$set(this.attr.productSelect, "unique", ""); this.$set(this.attr.productSelect, "unique", "");
this.$set(this.attr.productSelect, "coupon", productSelect.coupon);
this.$set(this.attr.productSelect, "cart_num", 0); this.$set(this.attr.productSelect, "cart_num", 0);
this.$set(this, "attrValue", res); this.$set(this, "attrValue", res);
this.$set(this, "attrTxt", "选择"); this.$set(this, "attrTxt", "选择");
@ -1085,6 +1092,7 @@
} else if (storeInfo.video_link && storeInfo.slider_image.length === 1) { } else if (storeInfo.video_link && storeInfo.slider_image.length === 1) {
this.videoCoverImg = storeInfo.slider_image[0] this.videoCoverImg = storeInfo.slider_image[0]
} }
console.log(storeInfo);
that.$set(that, 'storeInfo', storeInfo); that.$set(that, 'storeInfo', storeInfo);
that.$set(that, 'reply', res.data.topReply ? [res.data.topReply] : []); that.$set(that, 'reply', res.data.topReply ? [res.data.topReply] : []);
that.$set(that, 'replyCount', res.data.replayData && res.data.replayData.count); that.$set(that, 'replyCount', res.data.replayData && res.data.replayData.count);
@ -1200,7 +1208,6 @@
} }
//sort();:-- //sort();:--
let productSelect = this.productValue[value.join(",")]; let productSelect = this.productValue[value.join(",")];
// console.log(productSelect);
this.skuCoupon = productSelect.coupon this.skuCoupon = productSelect.coupon
if (productSelect && productAttr.length) { if (productSelect && productAttr.length) {
this.$set( this.$set(
@ -1233,6 +1240,7 @@
this.$set(this.attr.productSelect, "svip_price", this.storeInfo.svip_price); this.$set(this.attr.productSelect, "svip_price", this.storeInfo.svip_price);
this.$set(this.attr.productSelect, "stock", 0); this.$set(this.attr.productSelect, "stock", 0);
this.$set(this.attr.productSelect, "unique", ""); this.$set(this.attr.productSelect, "unique", "");
this.$set(this.attr.productSelect, "coupon", 0);
this.$set(this, "uniqueValue", ""); this.$set(this, "uniqueValue", "");
this.$set(this.attr.productSelect, "cart_num", 0); this.$set(this.attr.productSelect, "cart_num", 0);
this.$set(this, "attrValue", ""); this.$set(this, "attrValue", "");
@ -1250,6 +1258,7 @@
this.$set(this.attr.productSelect, "unique", this.storeInfo.unique || ""); this.$set(this.attr.productSelect, "unique", this.storeInfo.unique || "");
this.$set(this, "uniqueValue", this.storeInfo.unique || ""); this.$set(this, "uniqueValue", this.storeInfo.unique || "");
this.$set(this.attr.productSelect, "cart_num", 1); this.$set(this.attr.productSelect, "cart_num", 1);
this.$set(this.attr.productSelect, "coupon", 0);
this.$set(this, "attrValue", ""); this.$set(this, "attrValue", "");
this.$set(this, "attrTxt", "选择"); this.$set(this, "attrTxt", "选择");
} else if (productSelect && !productAttr.length) { } else if (productSelect && !productAttr.length) {
@ -1673,7 +1682,9 @@
}, },
// #endif // #endif
// #ifdef APP-PLUS // #ifdef APP-PLUS
savePosterPath(){ async savePosterPath(){
let res = await prompt.requestPermissions(['WRITE_EXTERNAL_STORAGE'])
if(res!==1) return
let that = this let that = this
uni.saveImageToPhotosAlbum({ uni.saveImageToPhotosAlbum({
filePath: that.posterImage, filePath: that.posterImage,

View File

@ -478,7 +478,7 @@ export default {
this.diyId = options.diyId || 0; this.diyId = options.diyId || 0;
this.preview = options.time ? true : false; this.preview = options.time ? true : false;
// #ifdef APP-PLUS // #ifdef APP-PLUS
// that.appVersionConfig(); //APP that.appVersionConfig(); //APP
// #endif // #endif
that.$nextTick(function() { that.$nextTick(function() {
uni.getSystemInfo({ uni.getSystemInfo({
@ -784,6 +784,7 @@ export default {
//app //app
// //
getAppVersion().then(res => { getAppVersion().then(res => {
console.log(res);
that.$set(that.appUpdate, 'androidAddress', res.data.androidAddress); that.$set(that.appUpdate, 'androidAddress', res.data.androidAddress);
that.$set(that.appUpdate, 'appVersion', res.data.appVersion); that.$set(that.appUpdate, 'appVersion', res.data.appVersion);
that.$set(that.appUpdate, 'iosAddress', res.data.iosAddress); that.$set(that.appUpdate, 'iosAddress', res.data.iosAddress);
@ -792,13 +793,17 @@ export default {
let nowVersion = (inf.version).split('.').join(''); let nowVersion = (inf.version).split('.').join('');
let appVersion = (res.data.appVersion).split('.').join(''); let appVersion = (res.data.appVersion).split('.').join('');
that.$set(that.appUpdate, 'alert', appVersion > nowVersion); that.$set(that.appUpdate, 'alert', appVersion > nowVersion);
// that.alertAppUpdate(); if(Number(res.data.openUpgrade)){
that.alertAppUpdate();
}else{
that.updataDowload(); that.updataDowload();
}
}); });
}) })
}, },
updataDowload(){ updataDowload(){
var that = this; var that = this;
if(this.appUpdate.alert) {
switch (uni.getSystemInfoSync().platform) { switch (uni.getSystemInfoSync().platform) {
case 'android': case 'android':
uni.showModal({ uni.showModal({
@ -860,13 +865,14 @@ export default {
content: '检测到新版本,即将进入更新', content: '检测到新版本,即将进入更新',
success:(res)=> { success:(res)=> {
if(res.confirm){ if(res.confirm){
plus.runtime.openURL(data.appstore); plus.runtime.openURL(that.appUpdate.iosAddress);
} }
} }
}) })
} }
break; break;
} }
}
}, },
alertAppUpdate(){ alertAppUpdate(){
if(this.appUpdate.alert) { if(this.appUpdate.alert) {

View File

@ -52,7 +52,7 @@
<image :src="`${domain}/static/images/svip.png`"></image> <image :src="`${domain}/static/images/svip.png`"></image>
</view> </view>
</view> </view>
<view class="discount" v-if="goods.productAttr.coupon"> <view class="discount" v-if="globalData.show_coupon_status && goods.productAttr.coupon">
<view class="discount_main"> <view class="discount_main">
<view class="discount_left">可用抵扣</view> <view class="discount_left">可用抵扣</view>
<view class="discount_right">{{goods.productAttr.coupon}}</view> <view class="discount_right">{{goods.productAttr.coupon}}</view>
@ -223,7 +223,7 @@
selectedArr: [] selectedArr: []
}; };
}, },
computed: configMap({hide_mer_status: 1,recommend_switch:0,navigation: {}}, mapGetters(['isLogin','viewColor'])), computed: configMap({hide_mer_status: 1,recommend_switch:0,navigation: {}}, mapGetters(['isLogin','viewColor','globalData'])),
onReady(){}, onReady(){},
mounted: function() {}, mounted: function() {},
onLoad: function(options) { onLoad: function(options) {

View File

@ -232,14 +232,18 @@
<view>运费</view> <view>运费</view>
<view class='conter'>+{{orderInfo.pay_postage}}</view> <view class='conter'>+{{orderInfo.pay_postage}}</view>
</view> </view>
<view class='item acea-row row-between' v-if='orderInfo.coupon_price > 0'> <!-- <view class='item acea-row row-between' v-if='orderInfo.coupon_price > 0'>
<view>优惠券抵扣</view> <view>优惠券抵扣</view>
<view class='conter'>-{{orderInfo.coupon_price}}</view> <view class='conter'>-{{orderInfo.coupon_price}}</view>
</view> </view> -->
<view class='item acea-row row-between' v-if='orderInfo.integral'> <view class='item acea-row row-between' v-if='orderInfo.integral'>
<view>铸源星支付</view> <view>铸源星抵扣</view>
<view class='conter'>-{{orderInfo.integral_price}}</view> <view class='conter'>-{{orderInfo.integral_price}}</view>
</view> </view>
<view class='item acea-row row-between' v-if='orderInfo.amount_price > 0'>
<view>抵扣券抵扣</view>
<view class='conter'>-{{orderInfo.amount_price}}</view>
</view>
<view class='item acea-row row-between' v-if="orderInfo.activity_type == 2"> <view class='item acea-row row-between' v-if="orderInfo.activity_type == 2">
<view>实付款</view> <view>实付款</view>
<view class='conter'>{{orderInfo.presell_price}}</view> <view class='conter'>{{orderInfo.presell_price}}</view>
@ -352,7 +356,7 @@
icon: "icon-weixinzhifu", icon: "icon-weixinzhifu",
value: 'wechat', value: 'wechat',
title: '微信快捷支付', title: '微信快捷支付',
payStatus: 1 payStatus: 2
}, },
{ {
name: "支付宝支付", name: "支付宝支付",
@ -368,7 +372,21 @@
title: '可用余额:', title: '可用余额:',
number: 0, number: 0,
payStatus: this.$store.getters.globalData.yue_pay_status payStatus: this.$store.getters.globalData.yue_pay_status
} },
{
name: "银联扫码",
icon: "icon-icon-test",
value: 'sand',
title: '银联扫码',
payStatus: this.$store.getters.globalData.sand_open,
},
{
"name": "绑卡快捷支付",
"icon": "icon-yinhangqia",
value: 'sandCard',
title: '绑卡快捷支付',
payStatus: this.$store.getters.globalData.sand2_open
},
], ],
pay_close: false, pay_close: false,
pay_order_id: '', pay_order_id: '',

View File

@ -147,9 +147,9 @@
<view>运费</view> <view>运费</view>
<view class='conter'>+{{orderInfo.pay_postage}}</view> <view class='conter'>+{{orderInfo.pay_postage}}</view>
</view> </view>
<view class='item acea-row row-between' v-if='orderInfo.coupon_price>0'> <view class='item acea-row row-between' v-if='orderInfo.amount_price>0'>
<view>优惠券抵扣</view> <view>抵扣券抵扣</view>
<view class='conter'>-{{orderInfo.coupon_price}}</view> <view class='conter'>-{{orderInfo.amount_price}}</view>
</view> </view>
<view class='item acea-row row-between' v-if='orderInfo.integral'> <view class='item acea-row row-between' v-if='orderInfo.integral'>
<view>铸源星抵扣</view> <view>铸源星抵扣</view>
@ -211,7 +211,7 @@
icon: "icon-weixinzhifu", icon: "icon-weixinzhifu",
value: 'wechat', value: 'wechat',
title: '微信快捷支付', title: '微信快捷支付',
payStatus: 1 payStatus: 2
}, },
{ {
name: "支付宝支付", name: "支付宝支付",
@ -236,6 +236,20 @@
number: 0, number: 0,
payStatus: this.$store.getters.globalData.integration_pay_open, payStatus: this.$store.getters.globalData.integration_pay_open,
}, },
{
name: "银联扫码",
icon: "icon-icon-test",
value: 'sand',
title: '银联扫码',
payStatus: this.$store.getters.globalData.sand_open,
},
{
"name": "绑卡快捷支付",
"icon": "icon-yinhangqia",
value: 'sandCard',
title: '绑卡快捷支付',
payStatus: this.$store.getters.globalData.sand2_open
}
], ],
pay_close: false, pay_close: false,
pay_order_id: '', pay_order_id: '',

View File

@ -52,7 +52,9 @@
</view> </view>
</view> </view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef APP-PLUS -->
<web-view :src="url"></web-view>
<!-- #endif -->
</view> </view>
</template> </template>

View File

@ -155,13 +155,13 @@
<view class='discount'>暂无优惠券</view> <view class='discount'>暂无优惠券</view>
</block> </block>
</view> --> </view> -->
<view v-if="item.openReceipt == 1" class='item acea-row row-between-wrapper'> <!-- <view v-if="item.openReceipt == 1" class='item acea-row row-between-wrapper'>
<view>开具发票 <text @tap="showInvoice" class="iconfont icon-wenhao1"></text></view> <view>开具发票 <text @tap="showInvoice" class="iconfont icon-wenhao1"></text></view>
<view class='discount discount_voice' @tap="goInvoice(item.mer_id)"> <view class='discount discount_voice' @tap="goInvoice(item.mer_id)">
{{(item.invoiceData && item.invoiceData.receipt_title) ? item.invoiceData.receipt_title : '不开发票'}} {{(item.invoiceData && item.invoiceData.receipt_title) ? item.invoiceData.receipt_title : '不开发票'}}
<text class='iconfont icon-jiantou'></text> <text class='iconfont icon-jiantou'></text>
</view> </view>
</view> </view>-->
<view v-if="order_type === 2 && item.list[0].productPresell.presell_type ==2" <view v-if="order_type === 2 && item.list[0].productPresell.presell_type ==2"
class="item acea-row row-between-wrapper" class="item acea-row row-between-wrapper"
style="border-top: 1px solid #f5f5f5; border-bottom: 1px solid #f5f5f5;"> style="border-top: 1px solid #f5f5f5; border-bottom: 1px solid #f5f5f5;">
@ -582,6 +582,13 @@
title: '银联扫码', title: '银联扫码',
payStatus: this.$store.getters.globalData.sand_open, payStatus: this.$store.getters.globalData.sand_open,
}, },
{
"name": "绑卡快捷支付",
"icon": "icon-yinhangqia",
value: 'sandCard',
title: '绑卡快捷支付',
payStatus: this.$store.getters.globalData.sand2_open,
},
{ {
"name": "铸源星支付", "name": "铸源星支付",
"icon": "haiyuefont haiyue-jifenduihuan", "icon": "haiyuefont haiyue-jifenduihuan",
@ -1318,6 +1325,7 @@
data.balance_vert=1; data.balance_vert=1;
this.payInfo=data; this.payInfo=data;
} }
console.log(data)
createOrder(data).then(res => { createOrder(data).then(res => {
let status = res.data.status, let status = res.data.status,
orderId = res.data.result.order_id, orderId = res.data.result.order_id,
@ -1500,22 +1508,34 @@
location.href = locations; location.href = locations;
}, 100); }, 100);
break; break;
case 'sandCard':
case 'sand': case 'sand':
setTimeout(() => { setTimeout(() => {
location.href = jsConfig; location.href = jsConfig;
}, 100); }, 100);
break; break;
// case 'sandCard':
// setTimeout(() => {
// location.href = jsConfig;
// }, 100);
// break;
// #endif // #endif
// #ifdef APP-PLUS // #ifdef APP-PLUS
case 'sand': case 'sand':
console.log(jsConfig); case 'sandCard':
if (plus.os.name === 'iOS') { if (plus.os.name === 'iOS') {
plus.runtime.openURL(jsConfig); plus.runtime.openURL(jsConfig);
} else if (plus.os.name === 'Android') { } else if (plus.os.name === 'Android') {
console.log(jsConfig);
plus.runtime.openURL(jsConfig); plus.runtime.openURL(jsConfig);
} }
break; break;
// if (plus.os.name === 'iOS') {
// plus.runtime.openURL(jsConfig);
// } else if (plus.os.name === 'Android') {
// plus.runtime.openURL(jsConfig);
// }
break;
case 'alipayApp': case 'alipayApp':
uni.requestPayment({ uni.requestPayment({
provider: 'alipay', provider: 'alipay',

View File

@ -297,7 +297,7 @@
icon: "icon-weixinzhifu", icon: "icon-weixinzhifu",
value: 'wechat', value: 'wechat',
title: '微信快捷支付', title: '微信快捷支付',
payStatus: 1 payStatus: 2
}, },
{ {
name: "支付宝支付", name: "支付宝支付",
@ -322,6 +322,20 @@
number: 0, number: 0,
payStatus: this.$store.getters.globalData.integration_pay_open, payStatus: this.$store.getters.globalData.integration_pay_open,
}, },
{
"name": "银联扫码",
"icon": "icon-icon-test",
value: 'sand',
title: '银联扫码',
payStatus: this.$store.getters.globalData.sand_open,
},
{
"name": "绑卡快捷支付",
"icon": "icon-yinhangqia",
value: 'sandCard',
title: '绑卡快捷支付',
payStatus: this.$store.getters.globalData.sand2_open,
},
], ],
pay_close: false, pay_close: false,
pay_order_id: '', pay_order_id: '',

View File

@ -27,7 +27,7 @@
</view> </view>
<view class="form-item item-txt"> <view class="form-item item-txt">
<text class="label">{{ status == 0 ? '退款金(含运费)' : '退款金(不含运费)' }}</text> <text class="label">{{ status == 0 ? '退款金(含运费)' : '退款金(不含运费)' }}</text>
<input style="text-align: right;" :class="{disabled:type == 2}" :disabled="type == 2" class="p-color" type="text" placeholder="请输入金额" v-model="rerundPrice" @blur="checkMaxPrice"> <input style="text-align: right;" :class="{disabled:type == 2}" :disabled="true" class="p-color" type="text" placeholder="请输入金额" v-model="rerundPrice" @blur="checkMaxPrice">
</view> </view>
<view class="form-item item-txt"> <view class="form-item item-txt">
<text class="label">退款原因</text> <text class="label">退款原因</text>
@ -203,6 +203,12 @@
}, },
// //
async bindComfirm(){ async bindComfirm(){
if(!this.con){
return uni.showToast({
title:'申请退款必须填写备注说明',
icon:'none'
})
}
try { try {
const data = await refundApply(this.order_id,{ const data = await refundApply(this.order_id,{
type:this.type, type:this.type,

View File

@ -2,7 +2,7 @@
<view class="user_about" :style="viewColor"> <view class="user_about" :style="viewColor">
<view> <view>
<view style="margin-bottom: 148rpx;" class="text cancelTxt" :class="{cancelTxt: type == 'the_cancellation_msg'}"> <view style="margin-bottom: 148rpx;" class="text cancelTxt" :class="{cancelTxt: type == 'the_cancellation_msg'}">
<jyf-parser :html="data.replace(/<br\/>/ig, '')" ref="article" :tag-style="tagStyle"></jyf-parser> <jyf-parser :previewImg="false" :html="data.replace(/<br\/>/ig, '')" ref="article" :tag-style="tagStyle"></jyf-parser>
</view> </view>
</view> </view>
<view class="cancel" v-if="type == 'the_cancellation_msg' && loaded"> <view class="cancel" v-if="type == 'the_cancellation_msg' && loaded">
@ -141,6 +141,12 @@
}) })
this.getCacheinfo() this.getCacheinfo()
break; break;
case 'sys_user_sign_msg':
uni.setNavigationBarTitle({
title: '签到说明'
})
this.getCacheinfo()
break;
case 'sys_about_us': case 'sys_about_us':
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: '关于我们' title: '关于我们'

View File

@ -57,6 +57,7 @@
import areaWindow from '@/components/areaWindow'; import areaWindow from '@/components/areaWindow';
import { getGeocoder } from '@/api/store.js'; import { getGeocoder } from '@/api/store.js';
import { toLogin } from '@/libs/login.js'; import { toLogin } from '@/libs/login.js';
import prompt from '@/utils/prompt.js'
export default { export default {
components: { components: {
areaWindow, areaWindow,
@ -194,8 +195,12 @@
console.log(err); console.log(err);
}); });
}, },
selfLocation() { async selfLocation() {
let self = this let self = this
// #ifdef APP-PLUS
let res = await prompt.requestPermissions(['ACCESS_FINE_LOCATION'])
if (res !== 1) return
// #endif
uni.showLoading({ uni.showLoading({
title: '定位中', title: '定位中',
mask: true, mask: true,
@ -278,12 +283,12 @@
if (that.address_id) if (that.address_id)
that.$util.Tips({ that.$util.Tips({
title: '修改成功', title: '修改成功',
icon: 'success' icon: 'none'
}); });
else else
that.$util.Tips({ that.$util.Tips({
title: '添加成功', title: '添加成功',
icon: 'success' icon: 'none'
}); });
setTimeout(function() { setTimeout(function() {
if (that.cartId) { if (that.cartId) {
@ -307,12 +312,25 @@
} }
} else { } else {
// #ifdef H5 // #ifdef H5
if(that.productType == 10){
uni.navigateTo({
url:'/pages/users/winning_confirm/index?addressId='+(that.id ? that.id : res.data.address_id)
})
}else{
return history.back(); return history.back();
}
// #endif // #endif
// #ifndef H5 // #ifndef H5
if(that.productType == 10){
uni.navigateTo({
url:'/pages/users/winning_confirm/index?addressId='+(that.id ? that.id : res.data.address_id)
})
}else{
return uni.navigateBack({ return uni.navigateBack({
delta: 1, delta: 1,
}) })
}
// #endif // #endif
} }
that.loading = false; that.loading = false;

View File

@ -28,6 +28,13 @@
<text class='iconfont icon-suozi'></text> <text class='iconfont icon-suozi'></text>
</view> </view>
</view> </view>
<view class='item acea-row row-between-wrapper'>
<view>姓名</view>
<view class='input acea-row row-between-wrapper'>
<input type='text' :value='userInfo.real_name' disabled='true' class='id'></input>
<text class='iconfont icon-suozi'></text>
</view>
</view>
<view class='item acea-row row-between-wrapper'> <view class='item acea-row row-between-wrapper'>
<view>身份证</view> <view>身份证</view>
<view class='input acea-row row-between-wrapper'> <view class='input acea-row row-between-wrapper'>
@ -78,7 +85,7 @@
</view> </view>
</view> </view>
</view> </view>
<button class='modifyBnt' formType="submit">保存修改</button> <button class='modifyBnt' formType="submit">退出</button>
</view> </view>
</form> </form>
<canvas canvas-id="canvas" v-if="canvasStatus" <canvas canvas-id="canvas" v-if="canvasStatus"
@ -163,96 +170,104 @@
* 提交修改 * 提交修改
*/ */
formSubmit: function(e) { formSubmit: function(e) {
let that = this, this.$util.Tips({
value = e.detail.value; title: '退出中...'
if (!value.nickname) return that.$util.Tips({
title: '用户姓名不能为空'
});
value.avatar = this.userInfo.avatar;
for (var i = 0; i < that.userInfo.extend_info.length; i++) {
let data = that.userInfo.extend_info[i]
if (data.is_require || data.value) {
if (data.type === 'date' || data.type === 'address') {
if (!data.value) {
return that.$util.Tips({
title: `${data.msg}`
});
}
}
if(data.type === 'input'){
if (!data.value.trim()) {
return that.$util.Tips({
title: `${data.msg}`
});
}
}
if (data.type === 'int') {
if (data.value <= 0) {
return that.$util.Tips({
title: `${data.msg}`
});
}
}
if (data.type === 'email') {
if (data.is_require) {
if (!data.value) {
return that.$util.Tips({
title: `${data.msg}`
});
}
}
if (!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(data.value)) {
return that.$util.Tips({
title: '请填写正确的邮箱'
});
}
}
if (data.type === 'phone') {
if (data.is_require) {
if (!data.value) {
return that.$util.Tips({
title: `${data.msg}`
});
}
}
if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(data.value)) {
return that.$util.Tips({
title: `${data.msg}`
});
}
}
if (data.type === 'id_card') {
if (data.is_require) {
if (!data.value) {
return that.$util.Tips({
title: `${data.msg}`
});
}
}
if (!/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/i.test(data.value)) {
return that.$util.Tips({
title: '请填写正确的身份证号码'
});
}
}
}
}
value.extend_info = that.userInfo.extend_info;
userSettingEdit(value).then(res => {
that.$util.Tips({
title: res.message,
icon: 'success'
}); });
setTimeout(()=>{ setTimeout(()=>{
uni.switchTab({ uni.switchTab({
url: '/pages/user/index' url: '/pages/user/index'
}) })
},500) },500)
}).catch(msg => { // let that = this,
return that.$util.Tips({ // value = e.detail.value;
title: msg || '保存失败,您并没有修改' // if (!value.nickname) return that.$util.Tips({
}); // title: ''
}); // });
// value.avatar = this.userInfo.avatar;
// for (var i = 0; i < that.userInfo.extend_info.length; i++) {
// let data = that.userInfo.extend_info[i]
// if (data.is_require || data.value) {
// if (data.type === 'date' || data.type === 'address') {
// if (!data.value) {
// return that.$util.Tips({
// title: `${data.msg}`
// });
// }
// }
// if(data.type === 'input'){
// if (!data.value.trim()) {
// return that.$util.Tips({
// title: `${data.msg}`
// });
// }
// }
// if (data.type === 'int') {
// if (data.value <= 0) {
// return that.$util.Tips({
// title: `${data.msg}`
// });
// }
// }
// if (data.type === 'email') {
// if (data.is_require) {
// if (!data.value) {
// return that.$util.Tips({
// title: `${data.msg}`
// });
// }
// }
// if (!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(data.value)) {
// return that.$util.Tips({
// title: ''
// });
// }
// }
// if (data.type === 'phone') {
// if (data.is_require) {
// if (!data.value) {
// return that.$util.Tips({
// title: `${data.msg}`
// });
// }
// }
// if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(data.value)) {
// return that.$util.Tips({
// title: `${data.msg}`
// });
// }
// }
// if (data.type === 'id_card') {
// if (data.is_require) {
// if (!data.value) {
// return that.$util.Tips({
// title: `${data.msg}`
// });
// }
// }
// if (!/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/i.test(data.value)) {
// return that.$util.Tips({
// title: ''
// });
// }
// }
// }
// }
// value.extend_info = that.userInfo.extend_info;
// userSettingEdit(value).then(res => {
// that.$util.Tips({
// title: res.message,
// icon: 'success'
// });
// setTimeout(()=>{
// uni.switchTab({
// url: '/pages/user/index'
// })
// },500)
// }).catch(msg => {
// return that.$util.Tips({
// title: msg || ''
// });
// });
} }
} }
} }

View File

@ -7,24 +7,32 @@
<view class='pictrue'><image :src='userInfo.avatar ? userInfo.avatar : "/static/images/f.png"'></image></view> <view class='pictrue'><image :src='userInfo.avatar ? userInfo.avatar : "/static/images/f.png"'></image></view>
<view class='text'> <view class='text'>
<view class='line1'>{{userInfo.nickname}}</view> <view class='line1'>{{userInfo.nickname}}</view>
<view class='integral acea-row'><text>积分: {{userInfo.integral ? userInfo.integral : 0}}</text></view> <view class='integral acea-row'><text>铸源星: {{userInfo.integral ? userInfo.integral : 0}}</text></view>
</view> </view>
</view> </view>
<navigator class='right acea-row row-middle' hover-class='none' url='/pages/users/user_sgin_list/index'> <navigator class='right acea-row row-middle' hover-class='none' url='/pages/users/user_about/index?from=sys_user_sign_msg'>
<view class='iconfont icon-caidan'></view> <!-- <view class='iconfont icon-caidan'></view> -->
<view></view> <view></view>
</navigator> </navigator>
</view> </view>
</view> </view>
<view class='wrapper'> <view class='wrapper'>
<view class="content" v-if="entityList.length">
<swiper class="swiper" vertical circular autoplay interval="1500" display-multiple-items='1'>
<swiper-item v-for="item in entityList">
<view>{{item}}</view>
</swiper-item>
</swiper>
</view>
<view class='list acea-row row-between-wrapper'> <view class='list acea-row row-between-wrapper'>
<view class='item' v-for="(item,index) in signConfig" :key="index"> <view class='item' v-for="(item,index) in signConfig" :key="index">
<view :class='(index+1) == signConfig.length ? "rewardTxt" : ""'>{{item.value.sign_day}}</view> <view :class='(index+1) == signConfig.length ? "rewardTxt" : ""'>{{item.value.sign_day}}</view>
<view class='venus' :class="(index + 1 === signConfig.length ? 'reward' : '') + '' +(sign_index >= index + 1 ? ' venusSelect' : '')"></view> <view v-if='index + 1 < signConfig.length' class='venus' :class="(sign_index >= index+1 ? ' venusSelect' : '')"></view>
<view @click="handleBlind" v-if="index + 1 === signConfig.length " class='venus' :class="(index + 1 === signConfig.length ? 'reward' : '') + '' +((sign_index >= index + 1 && !is_open) ? ' venusSelect' : '')"></view>
<!-- <view class='num' :class='item.is_sgin ? "on" : ""'>+{{item.value.sign_integral}}</view> --> <!-- <view class='num' :class='item.is_sgin ? "on" : ""'>+{{item.value.sign_integral}}</view> -->
</view> </view>
</view> </view>
<button class='but b-color on' v-if="is_sign" @click="closeBox">已签到</button> <button class='but b-color on' v-if="is_sign">已签到</button>
<form @submit="goSign" report-submit='true' v-else> <form @submit="goSign" report-submit='true' v-else>
<button class='but b-color' :class="disabled ? 'disabled' : ''" formType="submit">立即签到</button> <button class='but b-color' :class="disabled ? 'disabled' : ''" formType="submit">立即签到</button>
</form> </form>
@ -39,20 +47,32 @@
<view class='item'>{{signCount[3] || 0}}</view> <view class='item'>{{signCount[3] || 0}}</view>
<view class='data'></view> <view class='data'></view>
</view> </view>
<view class='tip2'>据说连续签到第7天可获得超额积分一定要坚持签到哦~~~</view> <view class='tip2'>据说连续签到第7天可获得更多惊喜一定坚持签至哦到~~</view>
<view class='list3 mod'>
<view style="padding: 20rpx;" class='item acea-row' v-for="(item,index) in winList" :key="index">
<view>
<view class='name line1'>{{item.name}}</view>
<view class='data'>{{item.draw_time}}</view>
</view>
<view class="prize">
<text class="open" @click="handleWinning(item)">去查看</text>
<text class="iconfont icon-you"></text>
</view>
</view>
</view>
<view class='list3'> <view class='list3'>
<view class='item acea-row' v-for="(item,index) in signList" :key="index"> <view class='item acea-row' v-for="(item,index) in signList" :key="index">
<view> <view>
<view class='name line1'>{{item.title}}</view> <view class='name line1'>{{item.title}}</view>
<view class='data'>{{item.create_time}}</view> <view class='data'>{{item.create_time}}</view>
</view> </view>
<view class='num'>+{{item.number}}</view> <view class='num' v-if="item.type==1">+{{item.number}}</view>
</view> </view>
<view class='loading' @click='goSignList' v-if="signList.length >= 3">点击加载更多<text class='iconfont icon-xiangyou'></text></view> <view class='loading' @click='goSignList' v-if="signList.length >= 3">点击加载更多<text class='iconfont icon-xiangyou'></text></view>
</view> </view>
</view> </view>
<treasureBox v-if="treasureShow" @closeTreasureBox="closeBox"></treasureBox> <treasureBox v-if="treasureShow" @closeTreasureBox="closeBox"></treasureBox>
<blindBox v-if="blindShow" @cloneblindBox='close'></blindBox>
<view class='signTip acea-row row-center-wrapper' :class='active==true?"on":""'> <view class='signTip acea-row row-center-wrapper' :class='active==true?"on":""'>
<view class='signTipLight loadingpic'></view> <view class='signTipLight loadingpic'></view>
<view class='signTipCon' :style="'background-image: url('+domain+'/static/diy/signSuccess'+keyColor+'.png)'"> <view class='signTipCon' :style="'background-image: url('+domain+'/static/diy/signSuccess'+keyColor+'.png)'">
@ -69,13 +89,13 @@
<script> <script>
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { getSignUser, getSignList, setSignIntegral} from '@/api/user.js'; import { getSignUser, getSignList, setSignIntegral,signEntityLog} from '@/api/user.js';
import { HTTP_REQUEST_URL } from '@/config/app'; import { HTTP_REQUEST_URL } from '@/config/app';
import { toLogin } from '@/libs/login.js'; import { toLogin } from '@/libs/login.js';
import treasureBox from '@/components/treasureBox/index.vue'; import treasureBox from '@/components/treasureBox/index.vue';
import blindBox from '@/components/blindBox/blindBox.vue';
export default { export default {
components: {treasureBox}, components: {treasureBox,blindBox},
data() { data() {
return { return {
domain: HTTP_REQUEST_URL, domain: HTTP_REQUEST_URL,
@ -89,29 +109,39 @@
day:0, day:0,
sign_index:0, sign_index:0,
is_sign: false, // is_sign: false, //
is_open:false,
disabled: false, disabled: false,
treasureShow:false, treasureShow:false,
blindShow:false,
isBlind:true,
entityList:[],
winList:[]
}; };
}, },
computed: mapGetters(['isLogin','viewColor','keyColor']), computed: mapGetters(['isLogin','viewColor','keyColor']),
onLoad(){ onLoad(){
if(this.isLogin){ // if(this.isLogin){
this.getUserInfo(); // this.getUserInfo();
this.getSignList(); // this.getSignList();
}else{ // }else{
toLogin() // toLogin()
} // }
}, },
onShow() { onShow() {
if(this.isLogin){ if(this.isLogin){
this.getUserInfo(); this.getUserInfo();
this.getSignList(); this.getSignList();
this.signEntityLog()
}else{ }else{
toLogin() toLogin()
} }
}, },
methods: { methods: {
signEntityLog(){
signEntityLog().then((res)=>{
this.entityList = res.data
})
},
closeBox(){ closeBox(){
this.treasureShow=false; this.treasureShow=false;
this.$router.go(0) this.$router.go(0)
@ -126,6 +156,12 @@
goSignList:function(){ goSignList:function(){
return this.$util.Tips('/pages/users/user_sgin_list/index'); return this.$util.Tips('/pages/users/user_sgin_list/index');
}, },
handleWinning(e) {
console.log(e);
uni.navigateTo({
url: `/pages/users/winning_confirm/index?id=${e.id}&draw_time=${e.draw_time}&image=${e.image}&name=${e.name}`,
});
},
/** /**
* 获取用户信息 * 获取用户信息
*/ */
@ -137,7 +173,9 @@
let sum_sgin_day = res.data.count; let sum_sgin_day = res.data.count;
that.$set(that,'signConfig',res.data.title); that.$set(that,'signConfig',res.data.title);
that.$set(that,'is_sign',res.data.is_sign); that.$set(that,'is_sign',res.data.is_sign);
that.$set(that,'is_open',res.data.is_open);
that.$set(that,'userInfo',res.data.userInfo); that.$set(that,'userInfo',res.data.userInfo);
that.$set(that,'winList',res.data.entity);
that.signCount = that.PrefixInteger(sum_sgin_day, 4); that.signCount = that.PrefixInteger(sum_sgin_day, 4);
that.sign_index = res.data.sign_num; that.sign_index = res.data.sign_num;
}); });
@ -199,11 +237,20 @@
// return this.$util.Tips({title:err}) // return this.$util.Tips({title:err})
// }); // });
}, },
handleBlind(){
if(this.is_open && this.sign_index>=7){
this.blindShow = true
}else if(this.sign_index>=7){
return this.$util.Tips({title:'已打开过盲盒了~~'})
}else{
return this.$util.Tips({title:'连续签到七天才可以开启盲盒~~'})
}
},
/** /**
* 关闭签到提示 * 关闭签到提示
*/ */
close:function(){ close:function(){
this.active = false; this.blindShow = false;
this.getSignList(); this.getSignList();
this.getUserInfo(); this.getUserInfo();
} }
@ -212,6 +259,33 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.content{
padding: 20rpx;
.swiper{
height: 60rpx;
line-height: 60rpx;
border-radius: 20px;
background-color: #FFE6E6;
color: #FF1414;
font-weight: 700;
text-align: center;
font-size: 24rpx;
}
}
.prize{
.open{
color: var(--view-bntColor11);
margin-right: 20rpx;
}
.iconfont{
color: #bbbbbb;
}
}
.mod{
background: #FFE6E6;
border-radius: 8px;
border: none !important;
}
.sign .header{width:100%;height:310rpx;background:var(--view-theme);} .sign .header{width:100%;height:310rpx;background:var(--view-theme);}
.sign .header .headerCon{padding:0 0 0 30rpx;height:234rpx;} .sign .header .headerCon{padding:0 0 0 30rpx;height:234rpx;}
.sign .header .headerCon .left{width:530rpx;font-size:32rpx;color:#fff;font-weight:bold;} .sign .header .headerCon .left{width:530rpx;font-size:32rpx;color:#fff;font-weight:bold;}
@ -219,16 +293,16 @@
.sign .header .headerCon .text{width:410rpx;} .sign .header .headerCon .text{width:410rpx;}
.sign .header .headerCon .left .pictrue{width:100rpx;height:100rpx;border-radius:50%;border:4rpx solid #ecddbc;} .sign .header .headerCon .left .pictrue{width:100rpx;height:100rpx;border-radius:50%;border:4rpx solid #ecddbc;}
.sign .header .headerCon .left .pictrue image{width:100%;height:100%;border-radius:50%;} .sign .header .headerCon .left .pictrue image{width:100%;height:100%;border-radius:50%;}
.sign .header .headerCon .right{width:142rpx;height:66rpx;background-color:#fff;border-radius:50rpx 0 0 50rpx;font-size:24rpx;color:#ff9000;} .sign .header .headerCon .right{width:90rpx;height:66rpx;font-size:20rpx;color:#fff;padding-left: 30rpx;}
.sign .header .headerCon .right .iconfont{font-size:33rpx;padding:0 10rpx 0 30rpx;margin-top:5rpx;} .sign .header .headerCon .right .iconfont{font-size:33rpx;padding:0 10rpx 0 30rpx;margin-top:5rpx;}
.sign .wrapper{background-color:#fff;margin:-80rpx 20rpx 0 20rpx;border-radius:15rpx;padding-bottom:80rpx;position:relative;} .sign .wrapper{background-color:#fff;margin:-80rpx 20rpx 0 20rpx;border-radius:15rpx;padding-bottom:50rpx;position:relative;}
.sign .wrapper .list{padding:0 30rpx;height:240rpx;} .sign .wrapper .list{padding:0 30rpx;height:180rpx;}
.sign .wrapper .list .item{font-size:22rpx;color:#8a8886;text-align:center;} .sign .wrapper .list .item{font-size:22rpx;color:#8a8886;text-align:center;}
.sign .wrapper .list .item .rewardTxt{width:74rpx;height:32rpx;background-color:#f4b409;border-radius:16rpx;font-size:20rpx;color:#a57d3f;line-height:32rpx;} .sign .wrapper .list .item .rewardTxt{width:74rpx;height:32rpx;background-color:#f4b409;border-radius:16rpx;font-size:16rpx;color:#a57d3f;line-height:32rpx;}
.sign .wrapper .list .item .num{font-size:30rpx;color:#999;} .sign .wrapper .list .item .num{font-size:30rpx;color:#999;}
.sign .wrapper .list .item .venus.venusSelect+.num{color:#ff9000;} .sign .wrapper .list .item .venus.venusSelect+.num{color:#ff9000;}
.sign .wrapper .list .item .venus{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYWFmYjU3Mi03MGJhLTRiNDctOTI2Yi0zOThlZDkzZDkxMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDQ3N0E3RkJEMDFCMTFFODhGODVBOTc1NEM5Nzg2NzkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDQ3N0E3RkFEMDFCMTFFODhGODVBOTc1NEM5Nzg2NzkiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmRjNTM0MmUtNmFkOC1iMDRhLThjZTEtMjk2YWYzM2FkMmUxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBhYWZiNTcyLTcwYmEtNGI0Ny05MjZiLTM5OGVkOTNkOTEwOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnZClGIAAAT7SURBVHja7JtLcxtFEMdnn1rJUhIrTiS7KLsK/EXwNck3gCMcuUFx4QvACW48buHGMZxJPkiowpjC2LElcKzXSqul/6OdoOB9zezsCCimqmvXtdqd+U33dPf0rq2Tn54zg81KjrGuB75x8FbuddsQWIvkS5IxySA5b5no2DUE94TkKPk7IHmf5JDkUQJdW7MNw623o+Ra698KmAdnDNLeIJwRSHvDcLVDVnYynU771fnLl9eFcLZts+VymQf5iJ6pzfFYJeKgT/IZyTskXdWOPM9jjYbPLMticRyz2Sxk8/lc9XFDksckH1IcDKtq8FOSD6rMIuCCoPHXrBIk/qYDC0MlyO1kTBOSj6uuwXerwPn+63DrrdFo8OsV2ns6nEy3Chwg8lpFyK4OwNrgNGpSvxfFoDzP5etJR8PzsiYETmk+X5BjmpkBrHPGU109TeKqv5X3rT3QQ3ObaPDGRjIZXWZpol+b/cebUUA4iuHw938UoNbk9+zsjP16eqoV4JfjH1uqgLjxe10DiaKIDYZDNqfU7OrqSifjkzxIuwDubV2juLi8ZK7j8oT74uJSJ+BRHqQtC6cS/7A9wtrDvb7v84A9Go2UMyQZSFsWrmz6td4GgyF38a7r8lgGefHiQjnjkYG064ZDmjWktecRnEOCDa9DpjqdTrnUDSk2vJXgsHGdTKa0t5vx/V0Yhvy4WMx5hdf3VqYJDQqTxW+QdmECPM8h8flvPPRFR/QXBEEuKEw9Yz/5AyoDtBkei5zriyw4pGVFmoOHPD7+mQ/ccR1mWzZpyuIacx2Hgzl0FJkIjjBTHBeLiO6LuDZH4zFbRkt63oLt7+8XAmJcIhFP0eTn2C9CgzBTrPjUp7XbW6VSJGjx5OSEBhsz2wGkxc0R967LuukuSWKaFEwMnXJQSL/fZ51Op/QSuL5OdVjY7beFBq2sAlHZ/A8aOTg4YKenv/EBr8Nl5ZUO6jPJRGCg0dJie/d3WbPZlMpPMwpZsN0Y2sOVb7PcOzou22CGe3u7fB3J3Cd+udvvScG9soT0Kt13tAZj4UVRwHmWtZClcj+azX6vxx0GN8ECUFyHjnsEp+KlM8b3TBTKBCDqkA/SIFV20jCbO3duk8OIcgHF7G9ttbinVYFLcTBgeAAP+vc4mAkJVywLibARpZvOjWWA36rApYSI1+DSMhltkJPpRGIyJrXAZeWiWiCnk9kNU4RGl8m5MN1VLFzwWKobLm83kQtZbnMb8lgYJ2aIYH//3g73lEHQ5ECAXYUSu7QWZeCKqmoCcqSyPkQgd8lHbne3uSMRbWenSwNtU476BxtT9oJQOZ3OKKloq6SmmXBlyoZKb3nG4wnXyt1ul9261UkN9ggjvd497mDOz885KGN3pfvKg1OuixY15JCHh2/ymFjUms2AMqD9BFB/qwUQg5ZtrVY9b7H/LxtmZSCbaCr9KgGmpEeG6qpzM2tQBHudb5eKNLfKiUMzgAIyL6uRreHklB9qX4MDlQfLpHUV4AY6AB+rzl4ZyIqa+0aHiX6UlDTwMcK2CqQoEGmEE5+RfFK4N636vWjKh0Cp5ceS38k8JXko8yHQ7W7PXKBPBvYwGegNF4/q12g05mV7HXClqgs1ffEr+/LmaTIx0nCb+uI3U5M64Tadi5aBrBXORLKdB1k7nKndhID8GqUaErze/coEXJ1OJm9CY2bw3wr+FGAAoa6PIUihovYAAAAASUVORK5CYII=');background-repeat:no-repeat;background-size:100% 100%;width:56rpx;height:56rpx;margin:10rpx auto;} .sign .wrapper .list .item .venus{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYWFmYjU3Mi03MGJhLTRiNDctOTI2Yi0zOThlZDkzZDkxMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDQ3N0E3RkJEMDFCMTFFODhGODVBOTc1NEM5Nzg2NzkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDQ3N0E3RkFEMDFCMTFFODhGODVBOTc1NEM5Nzg2NzkiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmRjNTM0MmUtNmFkOC1iMDRhLThjZTEtMjk2YWYzM2FkMmUxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBhYWZiNTcyLTcwYmEtNGI0Ny05MjZiLTM5OGVkOTNkOTEwOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnZClGIAAAT7SURBVHja7JtLcxtFEMdnn1rJUhIrTiS7KLsK/EXwNck3gCMcuUFx4QvACW48buHGMZxJPkiowpjC2LElcKzXSqul/6OdoOB9zezsCCimqmvXtdqd+U33dPf0rq2Tn54zg81KjrGuB75x8FbuddsQWIvkS5IxySA5b5no2DUE94TkKPk7IHmf5JDkUQJdW7MNw623o+Ra698KmAdnDNLeIJwRSHvDcLVDVnYynU771fnLl9eFcLZts+VymQf5iJ6pzfFYJeKgT/IZyTskXdWOPM9jjYbPLMticRyz2Sxk8/lc9XFDksckH1IcDKtq8FOSD6rMIuCCoPHXrBIk/qYDC0MlyO1kTBOSj6uuwXerwPn+63DrrdFo8OsV2ns6nEy3Chwg8lpFyK4OwNrgNGpSvxfFoDzP5etJR8PzsiYETmk+X5BjmpkBrHPGU109TeKqv5X3rT3QQ3ObaPDGRjIZXWZpol+b/cebUUA4iuHw938UoNbk9+zsjP16eqoV4JfjH1uqgLjxe10DiaKIDYZDNqfU7OrqSifjkzxIuwDubV2juLi8ZK7j8oT74uJSJ+BRHqQtC6cS/7A9wtrDvb7v84A9Go2UMyQZSFsWrmz6td4GgyF38a7r8lgGefHiQjnjkYG064ZDmjWktecRnEOCDa9DpjqdTrnUDSk2vJXgsHGdTKa0t5vx/V0Yhvy4WMx5hdf3VqYJDQqTxW+QdmECPM8h8flvPPRFR/QXBEEuKEw9Yz/5AyoDtBkei5zriyw4pGVFmoOHPD7+mQ/ccR1mWzZpyuIacx2Hgzl0FJkIjjBTHBeLiO6LuDZH4zFbRkt63oLt7+8XAmJcIhFP0eTn2C9CgzBTrPjUp7XbW6VSJGjx5OSEBhsz2wGkxc0R967LuukuSWKaFEwMnXJQSL/fZ51Op/QSuL5OdVjY7beFBq2sAlHZ/A8aOTg4YKenv/EBr8Nl5ZUO6jPJRGCg0dJie/d3WbPZlMpPMwpZsN0Y2sOVb7PcOzou22CGe3u7fB3J3Cd+udvvScG9soT0Kt13tAZj4UVRwHmWtZClcj+azX6vxx0GN8ECUFyHjnsEp+KlM8b3TBTKBCDqkA/SIFV20jCbO3duk8OIcgHF7G9ttbinVYFLcTBgeAAP+vc4mAkJVywLibARpZvOjWWA36rApYSI1+DSMhltkJPpRGIyJrXAZeWiWiCnk9kNU4RGl8m5MN1VLFzwWKobLm83kQtZbnMb8lgYJ2aIYH//3g73lEHQ5ECAXYUSu7QWZeCKqmoCcqSyPkQgd8lHbne3uSMRbWenSwNtU476BxtT9oJQOZ3OKKloq6SmmXBlyoZKb3nG4wnXyt1ul9261UkN9ggjvd497mDOz885KGN3pfvKg1OuixY15JCHh2/ymFjUms2AMqD9BFB/qwUQg5ZtrVY9b7H/LxtmZSCbaCr9KgGmpEeG6qpzM2tQBHudb5eKNLfKiUMzgAIyL6uRreHklB9qX4MDlQfLpHUV4AY6AB+rzl4ZyIqa+0aHiX6UlDTwMcK2CqQoEGmEE5+RfFK4N636vWjKh0Cp5ceS38k8JXko8yHQ7W7PXKBPBvYwGegNF4/q12g05mV7HXClqgs1ffEr+/LmaTIx0nCb+uI3U5M64Tadi5aBrBXORLKdB1k7nKndhID8GqUaErze/coEXJ1OJm9CY2bw3wr+FGAAoa6PIUihovYAAAAASUVORK5CYII=');background-repeat:no-repeat;background-size:100% 100%;width:56rpx;height:56rpx;margin:10rpx auto;}
.sign .wrapper .list .item .venus.reward{background-image:url('https://plus.hwms.shop/uploads/def/20240409/4f4ded3abbffea25b83b3aed8a1846b3.png');width:56rpx;height:56rpx;} .sign .wrapper .list .item .venus.reward{background-image:url('data:image/png;base64,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');width:56rpx;height:56rpx;}
.sign .wrapper .list .item .venus.venusSelect{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYWFmYjU3Mi03MGJhLTRiNDctOTI2Yi0zOThlZDkzZDkxMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzkwRkI4NEFEMDFCMTFFODhDNDdBMDVGOTBBN0U2NTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzkwRkI4NDlEMDFCMTFFODhDNDdBMDVGOTBBN0U2NTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmRjNTM0MmUtNmFkOC1iMDRhLThjZTEtMjk2YWYzM2FkMmUxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBhYWZiNTcyLTcwYmEtNGI0Ny05MjZiLTM5OGVkOTNkOTEwOSIv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');} .sign .wrapper .list .item .venus.venusSelect{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYWFmYjU3Mi03MGJhLTRiNDctOTI2Yi0zOThlZDkzZDkxMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzkwRkI4NEFEMDFCMTFFODhDNDdBMDVGOTBBN0U2NTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzkwRkI4NDlEMDFCMTFFODhDNDdBMDVGOTBBN0U2NTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmRjNTM0MmUtNmFkOC1iMDRhLThjZTEtMjk2YWYzM2FkMmUxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBhYWZiNTcyLTcwYmEtNGI0Ny05MjZiLTM5OGVkOTNkOTEwOSIv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');}
.sign .wrapper .but{width:400rpx;height:76rpx;font-size:30rpx;line-height:76rpx;color:#fff;border-radius:50rpx;text-align:center;margin:0 auto;background-color: var(--view-theme);} .sign .wrapper .but{width:400rpx;height:76rpx;font-size:30rpx;line-height:76rpx;color:#fff;border-radius:50rpx;text-align:center;margin:0 auto;background-color: var(--view-theme);}
.sign .wrapper .but.disabled{pointer-events: none} .sign .wrapper .but.disabled{pointer-events: none}

View File

@ -0,0 +1,974 @@
<template>
<view :style="viewColor">
<view class='order-submission'>
<view class="allAddress" @click="onAddress">
<view class='address acea-row row-between-wrapper'>
<view class='addressCon' v-if="addressInfo.real_name">
<view class='name'>{{addressInfo.real_name}}
<text class='phone'>{{addressInfo.phone}}</text>
</view>
<view>
<text class='default t-color'
v-if="addressInfo.is_default">[默认]</text>{{addressInfo.province}}{{addressInfo.city}}{{addressInfo.district}}{{addressInfo.street || ''}}{{addressInfo.detail}}
</view>
</view>
<navigator v-else :url="'/pages/users/user_address/index'" hover-class="none" class='addressCon'>
<view class='setaddress'>设置收货地址</view>
</navigator>
<view class='iconfont icon-jiantou'></view>
</view>
<view class='line'>
<image :src="`${domain}/static/images/line.jpg`"></image>
</view>
</view>
<!-- 商品信息 -->
<view class="wrapper">
<view class="box">
<view class="box_left">
<image :src="image" mode=""></image>
</view>
<view class="box_right">
<view class="msg_title">
<view class="ms" style="font-size: 32rpx;">{{name}}</view>
<view class="ms" style="color: #BBBBBB;">x1</view>
</view>
<view class="" style="color: red;font-size: 24rpx;">
图片仅供参考奖品以实物为准
</view>
</view>
</view>
<view class="date">
<view class="date_left">中奖时间:</view>
<view class="date_right">{{draw_time}}</view>
</view>
</view>
</view>
<view class="">
<button class="keepBnt" @click="handleSignAddress">保存</button>
</view>
<addressWindow ref="addressWindow" @changeTextareaStatus="changeTextareaStatus" :address='address'
:pagesUrl="pagesUrl" @OnChangeAddress="OnChangeAddress" @changeClose="changeClose"></addressWindow>
</view>
</template>
<script>
let app = getApp();
const CACHE_CITY = {};
import {
orderConfirm,
getOrderConfirm,
getCouponsOrderPrice,
orderCreate,
createOrder
} from '@/api/order.js';
import { signAddress } from '@/api/user.js';
import {
getAddressDefault,
getAddressDetail,
getAddressList,
getUserInfo,
getAgreementApi
} from '@/api/user.js';
import {
openPaySubscribe
} from '@/utils/SubscribeMessage.js';
import {
presellAgreement
} from '@/api/activity.js';
import addressWindow from '@/components/addressWindow';
import { mapGetters } from "vuex";
import { toLogin } from '@/libs/login.js';
import { configMap } from '@/utils';
import { HTTP_REQUEST_URL } from '@/config/app';
import dayjs from "@/plugin/dayjs/dayjs.min.js";
export default {
components: {
addressWindow
},
data() {
return {
//
msgObj: {},
deliveryName: '快递配送',
openType: 1, // 1=使
active: 0, //
address: {
address: false
}, //
addressInfo: {}, //
userInfo: {}, //
domain: HTTP_REQUEST_URL,
pagesUrl:'',
addressId:'',
id:'',
draw_time:'',
name:'',
image:''
};
},
computed: {
...mapGetters(['isLogin','viewColor']),
...configMap(['hide_mer_status', 'alipay_open', 'yue_pay_status']),
},
onReady() {
},
mounted: function() {
},
onLoad: function(options) {
let address_id = uni.getStorageSync('address_id')
this.addressId = options.addressId || address_id;
this.id = options.id || 0;
this.draw_time = options.draw_time || 0;
this.name = options.name;
this.image = options.image;
if (this.isLogin) {
this.getaddressInfo();
this.$nextTick(function() {
this.$refs.addressWindow.getAddressList();
this.getUserInfo()
})
}
},
methods: {
handleSignAddress(){
signAddress({address_id:this.addressId,id:this.id}).then((res)=>{
this.$util.Tips({
title: '保存成功',
icon: 'none'
});
setTimeout(()=>{
uni.navigateBack({
delta:1
})
},1000)
uni.setStorageSync('address_id', this.addressId);
}).catch(err=>{
this.$util.Tips({
title: err,
icon: 'none'
});
})
},
/*
* 获取默认收货地址或者获取某条地址信息
*/
getaddressInfo: function() {
let that = this;
if (that.addressId) {
getAddressDetail(that.addressId).then(res => {
res.data.is_default = parseInt(res.data.is_default);
that.addressInfo = res.data || {};
that.addressId = res.data.address_id || 0;
that.address.addressId = res.data.address_id || 0;
that.post = {real_name: res.data.real_name, phone: res.data.phone}
})
} else {
getAddressList().then(res => {
that.addressInfo = res.data.list.length > 0 ? res.data.list[0] : {};
that.addressId = res.data.list.length > 0 ? res.data.list[0].address_id : 0;
that.address.addressId = res.data.list.length > 0 ? res.data.list[0].address_id : 0;
that.post = res.data.list.length > 0 ? {real_name: res.data.list[0].real_name,phone:res.data.list[0].phone } : {real_name: '', phone: ''}
})
}
},
//
getUserInfo() {
getUserInfo().then(res => {
this.userInfo = res.data
})
},
onAddress: function() {
let that = this;
if(that.addressInfo.real_name){
that.address.address = true;
that.pagesUrl = '/pages/users/user_address/index?product_type=10';
}else{
uni.navigateTo({
url: `/pages/users/user_address/index?product_type=10`,
});
}
},
/**
* 选择地址后改变事件
* @param object e
*/
OnChangeAddress: function(e) {
this.addressId = e;
this.address.address = false;
this.getaddressInfo();
},
//
changeClose: function() {
this.$set(this.address, 'address', false);
},
changeTextareaStatus: function() {
// for (let i = 0, len = this.coupon.list.length; i < len; i++) {
// this.coupon.list[i].use_title = '';
// this.coupon.list[i].is_use = 0;
// }
this.status = 0;
// this.$set(this.coupon, 'list', this.coupon.list);
},
}
}
</script>
<style lang="scss" scoped>
.wrapper{
background: #fff;
margin-top: 20rpx;
padding: 20rpx;
}
.box{
display: flex;
&_left{
uni-image,
image{
width: 240rpx;
height: 240rpx;
}
}
&_right{
width: 100%;
.msg_title{
display: flex;
justify-content: space-between;
}
}
}
.date{
display: flex;
justify-content: space-between;
margin-top: 20rpx;
&_left{
margin-left: 30rpx;
color: #BBBBBB;
}
}
.keepBnt {
width: 690rpx;
height: 86rpx;
border-radius: 50rpx;
text-align: center;
line-height: 86rpx;
margin: 50rpx auto;
font-size: 32rpx;
color: #fff;
background-color: var(--view-theme);
}
/deep/checkbox .uni-checkbox-input.uni-checkbox-input-checked,
/deep/checkbox .wx-checkbox-input.wx-checkbox-input-checked {
border: 1px solid var(--view-theme)!important;
background-color: var(--view-theme)!important;
color: #fff!important;
}
/deep/radio .wx-radio-input.wx-radio-input-checked,
/deep/uni-radio .uni-radio-input.uni-radio-input-checked {
border: 1px solid var(--view-theme)!important;
background-color: var(--view-theme)!important;
}
.order-submission .line {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 3rpx;
}
.order-submission .line image {
width: 100%;
height: 100%;
display: block;
}
.order-submission .address {
padding: 28rpx 30rpx;
background-color: #fff;
box-sizing: border-box;
}
.order-submission .address .addressCon {
width: 610rpx;
font-size: 26rpx;
color: #666;
}
.order-submission .address .addressCon .name {
font-size: 30rpx;
color: #282828;
font-weight: bold;
margin-bottom: 10rpx;
}
.order-submission .address .addressCon .name .phone {
margin-left: 50rpx;
}
.order-submission .address .addressCon .default {
margin-right: 12rpx;
}
.t-color{
color: var(--view-theme);
}
.order-submission .address .addressCon .setaddress {
color: #333;
font-size: 28rpx;
}
.order-submission .address .iconfont {
font-size: 35rpx;
color: #707070;
}
.order-submission .allAddress {
width: 100%;
}
.order-submission .allAddress .nav {
width: 710rpx;
margin: 0 auto;
}
.order-submission .allAddress .nav .item {
width: 355rpx;
}
.order-submission .allAddress .nav .item.on {
position: relative;
width: 250rpx;
}
.order-submission .allAddress .nav .item.on::before {
position: absolute;
bottom: 0;
content: "快递配送";
font-size: 28rpx;
display: block;
height: 0;
width: 336rpx;
border-width: 0 20rpx 80rpx 0;
border-style: none solid solid;
border-color: transparent transparent #fff;
z-index: 2;
border-radius: 7rpx 30rpx 0 0;
text-align: center;
line-height: 80rpx;
}
.order-submission .allAddress .nav .item:nth-of-type(2).on::before {
content: "到店核销";
border-width: 0 0 80rpx 20rpx;
border-radius: 30rpx 7rpx 0 0;
}
.order-submission .allAddress .nav .item.on2 {
position: relative;
}
.order-submission .allAddress .nav .item.on2::before {
position: absolute;
bottom: 0;
content: "到店核销";
font-size: 28rpx;
display: block;
height: 0;
width: 400rpx;
border-width: 0 0 60rpx 60rpx;
border-style: none solid solid;
border-color: transparent transparent #f7c1bd;
border-radius: 40rpx 6rpx 0 0;
text-align: center;
line-height: 60rpx;
}
.order-submission .allAddress .nav .item:nth-of-type(1).on2::before {
content: "快递配送";
border-width: 0 60rpx 60rpx 0;
border-radius: 6rpx 40rpx 0 0;
}
.order-submission .allAddress .address {
height: 150rpx;
margin: 0 auto;
}
.order-submission .allAddress .line {
margin: 0 auto;
}
.order-submission .wrapper .item .discount .placeholder {
color: #ccc;
text-align: right;
}
.order-submission .wrapper {
margin-bottom: 12rpx;
background-color: #fff;
}
.order-submission .wrapper .item {
padding: 27rpx 30rpx;
font-size: 30rpx;
color: #282828;
}
.order-submission .virtual_form{
padding: 0 30rpx;
}
/deep/.order-submission .virtual_form .uni-input-wrapper {
text-align: right;
}
.order-submission .virtual_form .item-require{
color: red;
margin-right: 4rpx;
}
.order-submission .virtual_form .item{
border-bottom: 1rpx solid #EEEEEE;
padding: 27rpx 0;
}
.order-submission .virtual_form .item.on .discount{
max-width: 460rpx;
}
.order-submission .virtual_form .item.pd0{
padding-bottom: 0;
}
.order-submission .virtual_form .item .radio{
margin: 0 22rpx 0 22rpx;
padding: 10rpx 0;
}
.upload {
display: -webkit-box;
display: -moz-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-lines: multiple;
-moz-box-lines: multiple;
-o-box-lines: multiple;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.order-submission .virtual_form .pictrue {
width: 156rpx;
height: 156rpx;
margin: 24rpx 20rpx 0 0;
position: relative;
font-size: 11px;
color: #bbb;
border-radius: 8rpx;
&:nth-child(4n) {
margin-right: 0;
}
&:nth-last-child(1) {
border: 0.5px solid #ddd;
box-sizing: border-box;
}
uni-image,
image {
width: 100%;
height: 100%;
img {
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
display: block;
position: absolute;
top: 0;
left: 0;
opacity: 0;
width: 100%;
height: 100%;
}
}
.icon-guanbi4 {
color: #fff;
font-size: 14rpx;
position: absolute;
top: 0;
right: 0;
width: 30rpx;
height: 30rpx;
text-align: center;
line-height: 30rpx;
border-radius: 0 8rpx 0 8rpx;
background: rgba(0,0,0,.6);
}
}
.vipImg {
width: 65rpx;
height: 28rpx;
margin-left: 4rpx;
image {
width: 100%;
height: 100%;
display: block;
}
}
.order-submission .wrapper .item .discount {
font-size: 30rpx;
color: #999;
&.discount_voice {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 500rpx;
text-align: right;
}
}
.order-submission .wrapper .item .discount .iconfont {
color: #515151;
font-size: 30rpx;
margin-left: 15rpx;
}
.order-submission .wrapper .item .discount .num {
font-size: 32rpx;
margin-right: 20rpx;
}
.order-submission .wrapper .item .shipping {
font-size: 30rpx;
color: #999;
position: relative;
padding-right: 58rpx;
}
.order-submission .wrapper .item .shipping .iconfont {
font-size: 35rpx;
color: #707070;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
margin-left: 30rpx;
}
.order-submission .wrapper .item input {
flex: 1;
height: 100%;
margin-left: 20rpx;
text-align: right;
}
.order-submission .wrapper .item .placeholder {
color: #ccc;
}
.order-submission .wrapper .item .list {
margin-top: 35rpx;
}
.order-submission .wrapper .item .list .payItem {
border: 1px solid #eee;
border-radius: 6rpx;
height: 86rpx;
width: 100%;
box-sizing: border-box;
margin-top: 20rpx;
font-size: 28rpx;
color: #282828;
}
.order-submission .wrapper .item .list .payItem.on {
border-color: var(--view-theme);
color: var(--view-theme);
}
.order-submission .wrapper .item .list .payItem .name {
width: 50%;
text-align: center;
border-right: 1px solid #eee;
justify-content: left;
padding-left: 80rpx;
}
.order-submission .wrapper .item .list .payItem .name .iconfont {
width: 44rpx;
height: 44rpx;
border-radius: 50%;
text-align: center;
line-height: 44rpx;
background-color: #fe960f;
color: #fff;
font-size: 30rpx;
margin-right: 15rpx;
}
.order-submission .wrapper .item .list .payItem .name .iconfont.icon-weixin2 {
background-color: #41b035;
}
.order-submission .wrapper .item .list .payItem .name .iconfont.icon-icon34 {
background-color: #4295D5;
}
.order-submission .wrapper .item .list .payItem .tip {
width: 49%;
text-align: center;
font-size: 26rpx;
color: #aaa;
}
.order-submission .moneyList {
margin-top: 12rpx;
background-color: #fff;
padding: 30rpx;
}
.order-submission .moneyList .item {
font-size: 28rpx;
color: #282828;
}
.order-submission .moneyList .item~.item {
margin-top: 20rpx;
}
.order-submission .moneyList .item .money {
color: #868686;
display: flex;
align-items: center;
}
.order-submission .footer {
width: 100%;
height: 100rpx;
height: calc(100rpx+ constant(safe-area-inset-bottom)); /// IOS<11.2/
height: calc(100rpx + env(safe-area-inset-bottom)); /// IOS>11.2/
background-color: #fff;
padding: 0 30rpx;
font-size: 28rpx;
color: #333;
box-sizing: border-box;
position: fixed;
bottom: 0;
left: 0;
z-index: 30;
.footer_count{
font-size: 28rpx;
}
.coupon_price{
color: #999999;
font-size: 20rpx;
margin-top: 10rpx;
text{
color: #282828;
padding: 2rpx 10rpx;
background: #F5F5F5;
border-radius: 26rpx;
margin-left: 20rpx;
line-height: 30rpx;
height: 30rpx;
display: inline-block;
}
}
}
.pColor{
color: var(--view-priceColor);
}
.order-submission .footer .settlement {
font-size: 30rpx;
color: #fff;
width: 240rpx;
height: 70rpx;
background-color: var(--view-theme);
border-radius: 50rpx;
text-align: center;
line-height: 70rpx;
&.disabled {
background-color: #cccccc;
}
}
.footer .transparent {
opacity: 0
}
.event_bg {
background: #FF7F00;
}
.event_color {
color: #FF7F00;
}
.color_red {
color: var(--view-theme);
}
.storeinfo-wrapper {
.store-item {
margin-top: 12rpx;
background-color: #fff;
.store-title {
display: flex;
align-items: center;
padding: 28rpx 30rpx;
.icon-shangjiadingdan {
font-size: 32rpx;
}
.icon-xiangyou {
font-size: 26rpx;
color: #999;
}
.txt {
margin: 0 8rpx;
}
}
.product-item {
display: flex;
padding: 25rpx 30rpx;
border-top: 1px solid #F0F0F0;
.img-box {
width: 130rpx;
height: 130rpx;
image {
width: 130rpx;
height: 130rpx;
border-radius: 16rpx;
}
}
.content {
position: relative;
width: 550rpx;
margin-left: 30rpx;
font-size: 28rpx;
color: #282828;
overflow: hidden;
&.event_content {
.line1 {
width: 360rpx;
}
.price {
position: absolute;
top: 0;
right: 0;
margin-top: 0;
text {
display: block;
text-align: right;
}
}
}
.event_name {
display: inline-block;
margin-right: 9rpx;
color: #fff;
font-size: 20rpx;
padding: 0 8rpx;
line-height: 30rpx;
text-align: center;
border-radius: 6rpx;
}
.event_ship {
font-size: 20rpx;
margin-top: 10rpx;
}
.label {
margin-top: 10rpx;
color: #868686;
font-size: 20rpx;
}
.price {
margin-top: 20rpx;
color: var(--view-priceColor);
position: relative;
text {
margin-left: 10rpx;
color: #999;
}
.delivery_type{
float: right;
text{
color: var(--view-priceColor);
font-size: 20rpx;
}
}
}
.err-txt {
display: flex;
align-items: center;
margin-top: 18rpx;
color: $theme-color;
.iconfont {
margin-right: 10rpx;
}
}
}
}
}
.event_payTime {
padding: 0 30rpx 24rpx;
.event_progress {
margin-top: 50rpx;
position: relative;
}
.progress_step {
height: 80rpx;
position: relative;
padding-left: 60rpx;
&::before {
content: '';
display: block;
width: 2rpx;
height: 40rpx;
background: var(--view-theme);
position: absolute;
left: 35rpx;
top: 18rpx;
}
&:nth-child(2) {
&::before {
bottom: 64rpx;
top: auto;
background: #EFEFEF;
}
&::after {
background: #EFEFEF;
}
}
&::after {
content: '';
display: block;
width: 14rpx;
height: 14rpx;
background: var(--view-theme);
border-radius: 50%;
position: absolute;
top: 10rpx;
left: 29rpx;
}
.name {
float: left;
color: #282828;
&.color_red {
color: var(--view-theme);
}
}
.price {
float: right;
color: #282828;
&.color_red {
color: var(--view-priceColor);
}
}
}
.progress_pay {
padding-left: 60rpx;
font-size: 24rpx;
color: #868686;
margin-top: -34rpx;
}
}
}
.integral_checked {
margin-left: 10rpx;
display: inline;
.iconfont{
font-size: 38rpx;
}
.icon-weixuanzhong {
color: #BFBFBF;
}
.icon-xuanzhong1 {
color: var(--view-theme);
}
}
uni-checkbox-group,
.checkgroup {
width: 100%;
.checkbox {
float: right;
}
}
.icon-wenhao1 {
color: #868686;
margin-right: 6rpx;
}
.total {
display: flex;
justify-content: flex-end;
padding-right: 30rpx;
padding-bottom: 30rpx;
font-size: 26rpx;
color: #282828;
.price {
margin-left: 10rpx;
color: var(--view-priceColor);
font-size: 28rpx;
font-weight: bold;
text {
font-size: 20rpx;
}
}
}
.store-address {
padding: 30rpx 23rpx;
margin: 0 30rpx;
background: #F6F6F6;
border-radius: 8rpx;
font-size: 24rpx;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
/*垂直居中*/
-webkit-box-align: center;
/*旧版本*/
-moz-box-align: center;
/*旧版本*/
-ms-flex-align: center;
/*混合版本*/
-webkit-align-items: center;
/*新版本*/
align-items: center;
/*新版本*/
.name {
width: 148rpx;
margin-right: 20rpx;
}
.info {
flex: 1;
}
.map {
text-align: center;
padding-left: 40rpx;
position: relative;
&::before {
content: '';
display: inline-block;
width: 2rpx;
height: 42rpx;
background-color: #DDDDDD;
position: absolute;
left: 0;
top: 18rpx;
}
.iconfont {
color: var(--view-theme);
}
.map_text {
color: var(--view-theme);
}
}
}
.settlementAgreement {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background: rgba(0, 0, 0, .5);
z-index: 40;
}
.settlementAgreement .setAgCount {
background: #fff;
width: 656rpx;
height: 458px;
position: absolute;
top: 50%;
left: 50%;
border-radius: 12rpx;
-webkit-border-radius: 12rpx;
padding: 52rpx;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
overflow: hidden;
.content {
height: 900rpx;
overflow-y: scroll;
/deep/ p {
font-size: 13px;
line-height: 22px;
}
/deep/ img {
max-width: 100%;
}
}
}
.settlementAgreement .setAgCount .icon {
font-size: 42rpx;
color: #b4b1b4;
position: absolute;
top: 15rpx;
right: 15rpx;
}
.settlementAgreement .setAgCount .title {
color: #333;
font-size: 32rpx;
text-align: center;
font-weight: bold;
}
.settlementAgreement .setAgCount .content {
margin-top: 32rpx;
color: #333;
font-size: 26rpx;
line-height: 22px;
text-align: justify;
text-justify: distribute-all-lines;
height: 756rpx;
overflow-y: scroll;
}
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 393 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 511 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 KiB

BIN
static/images/prize.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 MiB

View File

@ -9,6 +9,7 @@ import {
} from '@/plugin/image-tools/index.js'; } from '@/plugin/image-tools/index.js';
// #ifdef APP-PLUS // #ifdef APP-PLUS
import permision from "./permission.js" import permision from "./permission.js"
import prompt from "./prompt.js"
// #endif // #endif
export default { export default {
@ -861,7 +862,11 @@ export default {
* @param callable successCallback 成功执行方法 data * @param callable successCallback 成功执行方法 data
* @param callable errorCallback 失败执行方法 * @param callable errorCallback 失败执行方法
*/ */
uploadImageOne: function(opt, successCallback, errorCallback) { uploadImageOne: async function(opt, successCallback, errorCallback) {
// #ifdef APP-PLUS
let res = await prompt.requestPermissions(['CAMERA','WRITE_EXTERNAL_STORAGE'])
if(res!==1) return
// #endif
let that = this; let that = this;
if (typeof opt === 'string') { if (typeof opt === 'string') {
let url = opt; let url = opt;