Compare commits

...

10 Commits

Author SHA1 Message Date
faiz b568700d26 1 2024-07-23 15:14:51 +08:00
faiz f430c1169b 1 2024-07-04 10:02:06 +08:00
faiz 12f44b5857 1 2024-07-01 14:18:03 +08:00
faiz 9ab223b54f 1 2024-06-28 15:22:32 +08:00
faiz 2972699741 1 2024-06-24 11:38:28 +08:00
faiz 20d994a8b0 1 2024-05-29 15:46:29 +08:00
faiz ed4b7c88a1 edit 2024-05-19 11:52:22 +08:00
faiz a293629c81 edit 2024-05-17 18:35:31 +08:00
faiz 6b402a0d47 edit 2024-05-14 17:44:25 +08:00
faiz 1013ef4e55 edit 2024-05-08 17:48:33 +08:00
108 changed files with 3034 additions and 525 deletions

14
App.vue
View File

@ -23,7 +23,7 @@
store_user_min_recharge: 0, //
yue_pay_status: 0, //
alipay_open: 0, //
integration_pay_open:0,//
integration_pay_open:0,//
routine_logo: '', //logo
share_pic: '',
site_logo: '',
@ -118,9 +118,9 @@
if (this.$store.state.app.token) {
//
// #ifdef H5
history({
page: location.pathname + location.search,
}).then(() => {});
// history({
// page: location.pathname + location.search,
// }).then(() => {});
//#endif
};
// #ifndef H5
@ -232,9 +232,9 @@
$route(n) {
if (this.$store.state.app.token) {
//
history({
page: location.pathname + location.search,
}).then(() => {});
// history({
// page: location.pathname + location.search,
// }).then(() => {});
}
},
}

View File

@ -2,13 +2,13 @@
"version" : "1",
"prompt" : "template",
"title" : "服务协议与隐私政策",
"message" : "\t <br/>\r\r\r
\t <a href=\"https://请修改为自己的域名/register.html\">《用户协议》</a> 与 <a href=\"https://请修改为自己的域名/protocol.html\">《隐私政策》</a>了解详细信息。如你同意,请点击“我同意”开始接受我们的服务。",
"message" : "\t <br/>\r\r\r\r
\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" : "同意并接受",
"buttonRefuse" : "暂不同意",
"second" : {
"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" : "同意并继续",
"buttonRefuse" : "退出应用"
},

View File

@ -72,7 +72,7 @@ export function orderPay(id,data){
}
/**
* 积分商品订单支付
* 铸源星商品订单支付
* @param object data
*/
export function integralOrderPay(id,data){

View File

@ -1,61 +1,61 @@
import request from "@/utils/request.js";
/**
* 积分商城--banner和金刚区
* 铸源星商城--banner和金刚区
*/
export function getIntegralHome() {
return request.get("points/home",{},{noAuth: true});
}
/**
* 积分商城--积分兑换区间
* 铸源星商城--铸源星兑换区间
*/
export function getIntegralScope() {
return request.get("points/scope",{},{noAuth: true});
}
/**
* 积分商城--商品列表
* 铸源星商城--商品列表
*/
export function getIntegralGoodsList(data) {
return request.get("points/lst",data,{noAuth: true});
}
/**
* 积分商城--商品列表
* 铸源星商城--商品列表
*/
export function getIntegralProductDetail(id) {
return request.get(`points/detail/${id}`,{},{noAuth: true});
}
/**
* 积分商城--生成订单
* 铸源星商城--生成订单
*/
export function integralOrderConfirm(data) {
return request.post(`order/v3/check`,data,{noAuth: true});
}
/**
* 积分商城--下单
* 铸源星商城--下单
*/
export function integralOrderCreate(data) {
return request.post(`order/v3/create`,data,{noAuth: true});
}
/**
* 积分商城--订单列表
* 铸源星商城--订单列表
*/
export function integralOrderList(data) {
return request.get(`points/order/lst`,data,{noAuth: true});
}
/**
* 积分商城--订单详情
* 铸源星商城--订单详情
*/
export function integralOrderDetail(id) {
return request.get(`points/order/detail/${id}`,{},{noAuth: true});
}
/**
* 积分商城--订单详情
* 铸源星商城--订单详情
*/
export function integralOrderTake(id) {
return request.post(`points/order/take/${id}`,{},{noAuth: true});
}
/**
* 积分商城--删除
* 铸源星商城--删除
*/
export function integralOrderDelete(id) {
return request.post(`points/order/deleate/${id}`,{},{noAuth: true});

View File

@ -458,6 +458,14 @@ export function getApplicationRecordList(data) {
export function getGoodsDetails(id) {
return request.get('intention/detail/' + id, {});
}
/**
* 获取商户申请详情
* @param int id
*
*/
export function getIntentionBank(data) {
return request.post('intention/bank', data);
}
/**
* 修改入驻信息
* @param int id

View File

@ -135,6 +135,12 @@ export function getSignList(data) {
export function setSignIntegral() {
return request.post('user/sign/create')
}
/**
* 开盲盒
*/
export function setBlind() {
return request.post('user/sign/open')
}
/**
* 签到列表(年月)
@ -164,7 +170,7 @@ export function extractLst(data) {
return request.get("user/extract/lst", data);
}
/*
* 积分记录
* 铸源星记录
* */
export function getIntegralList(data) {
return request.get("user/integral/lst", data);
@ -414,6 +420,12 @@ export function feedback(data) {
export function feedbackList(data) {
return request.get("user/feedback/list", data);
}
/**
* 中奖列表
*/
export function signEntityLog() {
return request.get("user/sign/entity_log");
}
/**
* 反馈列表
*/
@ -601,6 +613,14 @@ export function cacheInfo(key) {
export function userOut(data) {
return request.post(`user/cancel`, data)
}
/**
* 地址
* @param object data
*
*/
export function signAddress(data) {
return request.post(`user/sign/address`, data)
}
/**
* 获取聊天用户信息
* @param object data
@ -834,7 +854,7 @@ export function getWhellAction() {
return request.get('wheel/create', {}, {noAuth: true})
}
/**
* 积分赠送
* 铸源星赠送
* @param object data
*
*/

View File

@ -2,7 +2,8 @@
<view>
<view class="priceChange" :class="change === true ? 'on' : ''">
<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>
</view>
<view class="listChange" v-if="status == 0">
@ -40,7 +41,7 @@
</view>
</view>
<view v-if="orderInfo.integral_price>0" class="item acea-row row-between-wrapper">
<view>积分抵扣(¥)</view>
<view>铸源星抵扣(¥)</view>
<view class="money">
{{ orderInfo.integral_price }}<span class="iconfont icon-suozi"></span>
</view>

View File

@ -13,6 +13,12 @@
<view>
预售价
<text class="num">{{ attr.productSelect.price }}</text>
<view class="discount" v-if="attr.productSelect.coupon">
<view class="discount_main">
<view class="discount_left">可用抵扣</view>
<view class="discount_right">{{attr.productSelect.coupon}}</view>
</view>
</view>
<text v-if="presell_type === 2">定金¥<text class="num">{{ attr.productSelect.down_price }}</text></text>
</view>
<text class="stock" v-if='isShow'>库存: {{ attr.productSelect.stock }}</text>
@ -22,6 +28,12 @@
<view class="acea-row row-middle">
<view class="acea-row row-middle">
<text></text><text class="num">{{ attr.productSelect.price }}</text>
<view class="discount" v-if="attr.productSelect.coupon">
<view class="discount_main">
<view class="discount_left">可用抵扣</view>
<view class="discount_right">{{attr.productSelect.coupon}}</view>
</view>
</view>
<view v-if="attr.productSelect && attr.productSelect.svip_price" class="acea-row row-middle">
<text class='vip-money'>{{attr.productSelect.svip_price}}</text>
<view class="vipImg">
@ -151,6 +163,28 @@
</script>
<style scoped lang="scss">
.discount{
display: inline-block;
margin-left: 20rpx;
line-height: 48rpx;
min-height: 48rpx;
vertical-align: top;
border: 1px solid #F8D2CB;
padding-left: 20rpx;
border-radius: 10rpx;
&_main{
display: flex;
}
&_left{
padding-right: 10rpx;
border-right: 2px dotted #F6D3D7;
}
&_right{
padding: 0 10rpx;
background: #FDEFEE;
width: auto;
}
}
.product-window {
position: fixed;
bottom: 0;

View File

@ -18,18 +18,24 @@
<view class="coupon_popups" v-if="popShow">
<view class="bg2"></view>
<view class="con" v-if="blind">
<view class="content">
<view class="content" v-if="!this.prize.name">
<image :src="drawInfo.img" mode=""></image>
<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>
<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 class="con" v-else>
<view class="content">
<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="btn" @click="closePop()">我知道了</view>
</view>
@ -40,7 +46,7 @@
</template>
<script>
import {} from '@/api/user.js'
import {setBlind} from '@/api/user.js'
export default {
components: {
},
@ -58,6 +64,11 @@
},
popShow:false,
list:[],
prize:{
name:'',
id:'',
image:''
},
drawInfo:{
img:'',
text:'',
@ -69,14 +80,27 @@
this.init()
},
methods: {
openBlindBox(val){
async openBlindBox(val){
this.actionIndex=val;
if(val/2){
setTimeout(()=>{
this.blind=false;
this.popShow=true;
},800)
// this.popShow=true;
// this.blind=true;
await setBlind().then(res=>{
if(res.status == 200){
setTimeout(()=>{
this.popShow=true;
this.prize = res.data.prize || {name:'',image:'',id:'',draw_time:''}
this.drawInfo.text = res.data.integral;
this.blind=!!res.data.integral || !!this.prize.name;
},1500)
}else{
return this.$util.Tips({title:err})
}
}).catch(err=>{
// this.close();
return this.$util.Tips({title:err})
// return this.$util.Tips({title:err.message})
});
}else{
setTimeout(()=>{
this.popShow=true;
@ -87,9 +111,17 @@
},
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(){
this.popShow=false;
this.blindShow=false;
this.$emit('cloneblindBox')
}
}
}
@ -131,7 +163,7 @@
height: 100vh;
position: fixed;
background-color: rgba(0,0,0,.9);
z-index: 10000;
z-index: 998;
top: 0;
display: flex;
align-items: center;
@ -259,9 +291,9 @@
margin: 20rpx 0;
line-height: 54rpx;
text-align: center;
background: url('https://store.tropjoin.com/images/mh-title.png') no-repeat;
background-size: 100% 100%;
background-position: center;
// background: url('https://store.tropjoin.com/images/mh-title.png') no-repeat;
// background-size: 100% 100%;
// background-position: center;
}
.blind-box{
width: 100%;

View File

@ -16,11 +16,17 @@
</view>
</view>
<view v-if="couponData.order_total_integral_price>0" class="check-item">
<view>积分抵扣</view>
<view>铸源星抵扣</view>
<view class="radio">
-{{couponData.order_total_integral_price}}
</view>
</view>
<view v-if="couponData.order_total_amount_price>0" class="check-item">
<view>抵扣券抵扣</view>
<view class="radio">
-{{couponData.order_total_amount_price}}
</view>
</view>
<view v-if="couponData.total_platform_coupon_price>0" class="check-item">
<view>平台优惠金额</view>
<view class="radio">

View File

@ -19,7 +19,7 @@
<div :id="'rtf'+uid"></div>
<!--#endif-->
<!--#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" />
<!--#endif-->
</view>
@ -57,6 +57,7 @@
return {
// #ifdef APP-PLUS
loadVideo: false,
// imgLoad:false,
// #endif
// #ifdef H5
uid: this._uid,
@ -80,6 +81,10 @@
// #endif
props: {
'html': null,
'previewImg':{
type: Boolean,
default: true
},
// #ifndef MP-ALIPAY
'autopause': {
type: Boolean,
@ -317,7 +322,7 @@
var preview = true;
this.ignore = () => preview = false;
_ts.$emit('imgtap', this);
if (preview) {
if (preview && _ts.previewImg) {
uni.previewImage({
current: this.i,
urls: _ts.imgList
@ -689,7 +694,7 @@
var preview = true;
data.img.ignore = () => preview = false;
this.$emit('imgtap', data.img);
if (preview)
if (preview && this.previewImg)
uni.previewImage({
current: data.img.i,
urls: this.imgList

View File

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

View File

@ -10,7 +10,7 @@
请输入支付密码
</view>
<view class="subTitle" v-show="show_subTitle&&show_integral">
扣除积分{{price*integral_cash_time}}
铸源星抵扣:{{price*integral_cash_time}}
</view>
<view class="subTitle" v-show="show_subTitle&&!show_integral">
付款{{price}}

View File

@ -15,8 +15,6 @@
<text v-if="item.value=='balance'"></text>
{{ item.number }}
</span>
</view>
<view class="info" v-else>{{item.title}}</view>
</view>
@ -109,6 +107,7 @@
});
},
goPay: function(number, paytype,password) {
console.log(paytype)
this.number=number;
if (this.isCall) {
return this.$emit('onChangeFun', {
@ -119,34 +118,80 @@
let that = this;
let type = '';
that.show_integral=false;
if (paytype == 'wechat') {
// #ifdef H5
type = this.$wechat.isWeixin() ? 'weixin' : 'h5';
// #endif
// #ifdef APP-PLUS
type = 'weixin';
// #endif
// #ifdef MP
type = 'routine';
// #endif
} else if (paytype == 'balance') {
type = 'balance';
}else if (paytype == 'integral') {
type = 'integral';
that.show_integral=true;
}else if(paytype == 'alipay'){
// #ifndef MP
type = 'alipay';
// #endif
// #ifdef MP
type = 'alipayQr';
// #endif
// if (paytype == 'wechat') {
// // #ifdef H5
// type = this.$wechat.isWeixin() ? 'weixin' : 'h5';
// // #endif
// // #ifdef APP-PLUS
// type = 'weixin';
// // #endif
// // #ifdef MP
// type = 'routine';
// // #endif
// } else if (paytype == 'balance') {
// type = 'balance';
// }else if (paytype == 'integral') {
// type = 'integral';
// that.show_integral=true;
// }else if(paytype == 'alipay'){
// // #ifndef MP
// type = 'alipay';
// // #endif
// // #ifdef MP
// type = 'alipayQr';
// // #endif
// }else if(paytype == 'sand'){
// type = 'sand'
// }else if(paytype == 'sandCard'){
// type = 'sandCard'
// }else if(paytype == 'hf'){
// type = 'hf'
// }
switch (paytype){
case 'balance':
type = 'balance'
break;
case 'wechat':
// #ifdef H5
type = this.$wechat.isWeixin() ? 'weixin' : 'h5';
// #endif
// #ifdef APP-PLUS
type = 'weixin';
// #endif
// #ifdef MP
type = 'routine';
// #endif
break;
case 'integral':
type = 'integral'
that.show_integral=true;
break;
case 'alipay':
// #ifndef MP
type = 'alipay';
// #endif
// #ifdef MP
type = 'alipayQr';
// #endif
break;
case 'sand':
type = 'sand'
break;
case 'sandCard':
type = 'sandCard'
break;
case 'hf':
type = 'hf'
break;
case 'sandQr':
type = 'sandQr'
break;
}
if (!that.order_id) return that.$util.Tips({
title: '请选择要支付的订单'
});
if (paytype == 'balance' && parseFloat(number) < parseFloat(that.totalPrice)) return that.$util.Tips({title: '余额不足!'});
if (paytype == 'integral' && parseFloat(number/that.integral_cash_time) < parseFloat(that.totalPrice)) return that.$util.Tips({title: '积分不足!'});
if (paytype == 'integral' && parseFloat(number/that.integral_cash_time) < parseFloat(that.totalPrice)) return that.$util.Tips({title: '铸源星不足!'});
uni.showLoading({
title: '支付中'
});
@ -376,9 +421,29 @@
location.href = locations;
}, 100);
break;
case 'sand':
case 'sandCard':
case 'hf':
case 'sandQr':
setTimeout(() => {
location.href = jsConfig;
}, 100);
break;
// #endif
// #ifdef APP-PLUS
case 'sand':
case 'sandCard':
case 'hf':
case 'sandQr':
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':
uni.requestPayment({
provider: 'alipay',

View File

@ -13,6 +13,12 @@
<view>
预售价
<text class="num">{{ attr.productSelect.price }}</text>
<view class="discount" v-if="globalData.show_coupon_status && attr.productSelect.coupon">
<view class="discount_main">
<view class="discount_left">可用抵扣</view>
<view class="discount_right">{{attr.productSelect.coupon}}</view>
</view>
</view>
<text v-if="presell_type === 2">定金¥<text class="num">{{ attr.productSelect.down_price }}</text></text>
</view>
<text class="stock" v-if='isShow'>库存: {{ attr.productSelect.stock }}</text>
@ -23,11 +29,17 @@
<view class="acea-row row-middle">
<view v-if="type=='points'" class="points_money">
<image :src="`${domain}/static/images/jf-point.png`" mode=""></image>
<text class="points-num">{{attr.productSelect.ot_price}}</text>积分 <text v-if="attr.productSelect.price > 0">+{{attr.productSelect.price}}</text>
<text class="points-num">{{attr.productSelect.ot_price}}</text>铸源星 <text v-if="attr.productSelect.price > 0">+{{attr.productSelect.price}}</text>
<text v-if="limitCount > 0" class="points-limit">限购{{limitCount}}</text>
</view>
<view v-else>
<text></text><text class="num">{{ attr.productSelect.price }}</text>
<view class="discount" v-if="globalData.show_coupon_status && attr.productSelect.coupon">
<view class="discount_main">
<view class="discount_left">可用抵扣</view>
<view class="discount_right">{{attr.productSelect.coupon}}</view>
</view>
</view>
</view>
<view v-if="svipPrice" class="acea-row row-middle">
<text class='vip-money'>{{attr.productSelect.svip_price}}</text>
@ -155,7 +167,7 @@
value: ''
}
},
computed: mapGetters(['viewColor']),
computed: mapGetters(['viewColor','globalData']),
data() {
return {
};
@ -215,6 +227,7 @@
//
getCheckedValue: function() {
let productAttr = this.attr.productAttr;
console.log(this.attr.productAttr);
let value = [];
for (let i = 0; i < productAttr.length; i++) {
for (let j = 0; j < productAttr[i].attr_values.length; j++) {
@ -230,6 +243,28 @@
</script>
<style scoped lang="scss">
.discount{
display: inline-block;
margin-left: 20rpx;
line-height: 48rpx;
min-height: 48rpx;
vertical-align: top;
border: 1px solid #F8D2CB;
padding-left: 20rpx;
border-radius: 10rpx;
&_main{
display: flex;
}
&_left{
padding-right: 10rpx;
border-right: 2px dotted #F6D3D7;
}
&_right{
padding: 0 10rpx;
background: #FDEFEE;
width: auto;
}
}
.product-window {
position: fixed;
bottom: 0;

View File

@ -2,7 +2,7 @@
<view class="content">
<view class="bg">
<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 class="lucky-draw">
@ -15,34 +15,34 @@
</view>
</view>
<view class="coupon_popups" v-if="popShow">
<view class="bg2"></view>
<view class="con" v-if="blind">
<view class="contents">
<image src="@/static/images/jf.png" style="width: 48px;height:48px;" mode=""></image>
<view class="text-black">恭喜您获得</view>
<view class="text-red">{{drawInfo.text}}积分</view>
<view class="text-red">{{drawInfo.text}}铸源星</view>
<view class="btn" @click="confirm" v-if="!drawInfo.wheel">开心收下</view>
<view class="btn" @click="goBlind" v-else>继续开盲盒</view>
</view>
<view class='iconfont icon-guanbi3' @click="popShow = false"></view>
</view>
<view class="con" v-else>
<view class="content">
<view class="contents">
<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="btn" @click="confirm">我知道了</view>
<view class="btn" @click="confirm" v-if="!drawInfo.wheel">我知道了</view>
<view class="btn" @click="goBlind" v-else>继续开盲盒</view>
</view>
<view class='iconfont icon-guanbi3' @click="popShow = false"></view>
</view>
</view>
<blindBox v-if="blindShow"></blindBox>
<blindBox v-if="blindShow" @cloneblindBox='close'></blindBox>
</view>
</template>
<script>
import {getWhellNumber,getWhellConfig,getWhellAction,getWhellList,setSignIntegral} from '@/api/user.js';
import {getWhellNumber,getWhellConfig,getWhellAction,getWhellList,setSignIntegral,setBlind} from '@/api/user.js';
import blindBox from '@/components/blindBox/blindBox.vue';
export default {
components: {
@ -72,23 +72,25 @@
this.blind=false;
this.close();
},
async openBox(){
await setSignIntegral().then(res=>{
openBox(){ ;
setSignIntegral().then(res=>{
this.drawInfo.text = res.data.integral;
this.drawInfo.wheel=res.data.wheel;
this.gifShow=true;
this.blind=!!res.data.integral;
setTimeout(()=>{
this.gifShow=false;
this.popShow=true;
},1500)
}).catch(err=>{
this.close();
// this.close();
return this.$util.Tips({title:err})
});
},
goBlind(){
this.blindShow=true;
this.popShow=false;
},
close(){
this.$emit('closeTreasureBox')
@ -103,11 +105,11 @@
height: 100vh;
position: fixed;
top: 0;
z-index: 1000;
z-index: 996;
padding-top: 200rpx;
background-color: rgba(0,0,0,1);
.coupon_popups{
z-index: 999;
z-index: 997;
position: fixed;
left: 0;
top: 0;
@ -126,7 +128,7 @@
.con{
position: absolute;
left: 50%;
top: 50%;
top: 48%;
transform: translate(-50%,-50%);
width: 680rpx;
height: 900rpx;
@ -218,8 +220,8 @@
.top{
width: 488rpx;
height: 140rpx;
background-image: url('https://store.tropjoin.com/images/box-title.png');
background-size: 100% 100%;
// background-image: url('https://store.tropjoin.com/images/box-title.png');
// background-size: 100% 100%;
margin: 0 auto;
}
.lucky-draw{

View File

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

View File

@ -28,8 +28,8 @@ let cookieName = "VCONSOLE",
query = parseQuery(),
urlSpread = query["spread"],
vconsole = query[cookieName.toLowerCase()],
md5 = "b14d1e9baeced9bb7525ab19ee35f2d2", // MD5 加密开启vconsole模式
md5Un = "3dca2162c4e101b7656793a1af20295c"; //UN_CREMB MD5 加密关闭vconsole模式
md5 = "4F02CE914A28098A5CDEA243CE51C333", // MD5 加密开启vconsole模式
md5Un = "AEC89F78998B46D17748574D027729B2"; //UN_CREMB MD5 加密关闭vconsole模式
if (urlSpread !== undefined) {
var spread = Cache.get(SPREAD);

View File

@ -1,9 +1,9 @@
{
"name" : "铸源商城",
"name" : "铸源优品",
"appid" : "__UNI__496DF55",
"description" : "",
"versionName" : "1.0.6",
"versionCode" : 127,
"versionName" : "1.1.3",
"versionCode" : 140,
"transformPx" : false,
/* 5+App */
"app-plus" : {
@ -13,8 +13,8 @@
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"alwaysShowBeforeRender" : false,
"waiting" : false,
"autoclose" : true,
"delay" : 0
},
@ -27,7 +27,8 @@
"iBeacon" : {},
"Geolocation" : {},
"Maps" : {},
"Barcode" : {}
"Barcode" : {},
"Camera" : {}
},
"safearea" : {
"bottom" : {
@ -60,21 +61,22 @@
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>"
],
"abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
"abiFilters" : [ "armeabi-v7a", "arm64-v8a" ],
"permissionExternalStorage" : {
"request" : "none",
"prompt" : "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
},
"permissionPhoneState" : {
"request" : "none" //
}
},
"targetSdkVersion" : 30
},
/* ios */
"ios" : {
"privacyDescription" : {
"NSPhotoLibraryUsageDescription" : "上传用户头像保存分享海报",
"NSPhotoLibraryAddUsageDescription" : "上传用户头像保存分享海报",
"NSCameraUsageDescription" : "上传用户头像保存分享海报",
"NSPhotoLibraryUsageDescription" : "应用需要获取相机相册权限,用于上传资料照片,上传用户头像保存分享海报",
"NSPhotoLibraryAddUsageDescription" : "应用需要获取相机相册权限,用于上传资料照片,上传用户头像保存分享海报",
"NSCameraUsageDescription" : "应用需要获取相机相册权限,用于上传资料照片,上传用户头像保存分享海报",
"NSLocationWhenInUseUsageDescription" : "根据客户地理位置推荐最近门店",
"NSLocationAlwaysUsageDescription" : "根据客户地理位置推荐最近门店"
},
@ -105,9 +107,7 @@
}
},
"push" : {},
"oauth" : {
"apple" : {}
},
"oauth" : {},
"ad" : {}
},
"icons" : {
@ -143,7 +143,14 @@
}
},
"splashscreen" : {
"useOriginalMsgbox" : true
"useOriginalMsgbox" : true,
"androidStyle" : "default",
"iosStyle" : "common",
"android" : {
"hdpi" : "C:/Users/user/Pictures/铸源启动页/480762.9/res/drawable-hdpi/480762.9.png",
"xhdpi" : "C:/Users/user/Pictures/铸源启动页/7201242.9/res/drawable-hdpi/7201242.9.png",
"xxhdpi" : "C:/Users/user/Pictures/铸源启动页/10801882__1.9/res/drawable-hdpi/10801882__1.9.png"
}
}
}
},

View File

@ -9,9 +9,9 @@ export default {
methods: {
getHistory() {
console.log(this.$util.getNowUrl(),'page')
history({
page:this.$util.getNowUrl()
}).then(res=>{})
// history({
// page:this.$util.getNowUrl()
// }).then(res=>{})
},
}
};

View File

@ -245,19 +245,19 @@
{
"path": "user_money/index",
"style": {
"navigationBarTitleText": "我的账户"
"navigationBarTitleText": "我的抵扣券"
}
},
{
"path": "user_bill/index",
"style": {
"navigationBarTitleText": "账单明细"
"navigationBarTitleText": "抵扣明细"
}
},
{
"path": "user_integral/index",
"style": {
"navigationBarTitleText": "积分详情"
"navigationBarTitleText": "铸源星详情"
}
},
{
@ -348,6 +348,12 @@
"navigationBarTitleText": "修改手机号"
}
},
{
"path": "user_luckyDraw/index",
"style": {
"navigationBarTitleText": "抽奖"
}
},
{
"path": "user_modify_pwd/index",
"style": {
@ -382,6 +388,12 @@
"navigationBarTitleText": "提交订单"
}
},
{
"path": "winning_confirm/index",
"style": {
"navigationBarTitleText": "奖品记录"
}
},
{
"path": "promoter-list/index",
"style": {
@ -1191,7 +1203,7 @@
"style": {
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#333333",
"navigationBarTitleText": "积分商城",
"navigationBarTitleText": "铸源星商城",
"app-plus": {
// #ifdef APP-PLUS
"titleNView": {
@ -1247,7 +1259,7 @@
{
"path": "integral_order",
"style": {
"navigationBarTitleText": "积分订单",
"navigationBarTitleText": "铸源星订单",
"app-plus": {
// #ifdef APP-PLUS
"titleNView": {

View File

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

View File

@ -201,14 +201,14 @@
type: 1,
title: "发货"
},
{
type: 2,
title: "送货"
},
{
type: 3,
title: "无需物流"
}
// {
// type: 2,
// title: ""
// },
// {
// type: 3,
// title: ""
// }
],
splitList: [
{

View File

@ -112,7 +112,7 @@
<view class="conter">-{{ orderInfo.coupon_price }}</view>
</view>
<view v-if="orderInfo.integral_price > 0" class="item acea-row row-between">
<view>积分抵扣</view>
<view>铸源星抵扣</view>
<view class="conter">-{{ orderInfo.integral_price }}</view>
</view>
<view v-if="orderInfo.pay_postage > 0" class="item acea-row row-between">
@ -155,9 +155,9 @@
<view style="height:100upx;"></view>
<view class="footer acea-row row-right row-middle" v-if="goname != 'looks'">
<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>

View File

@ -135,9 +135,9 @@
<view class="more">
</view>
<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 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 File

@ -21,7 +21,7 @@
</view>
<view class="item">
<view class="num">{{info.user.integral}}</view>
<view>积分</view>
<view>铸源星</view>
</view>
<view class="item">
<view class="num">{{ info.level_info.discount ? parseFloat(info.level_info.discount)/10 : '0'}}</view>

View File

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

View File

@ -39,7 +39,7 @@
</view>
</view>
<!--今日热搜模块-->
<view class="search-hot">
<!-- <view class="search-hot">
<scroll-view v-if="isShow" scroll-x="true" style="white-space: nowrap; display: flex;" scroll-with-animation show-scrollbar="true">
<view v-if="daySearchList.length>0" class="scroll-count">
<view class="scroll-item" :style="{'background-image':`url(${domain}/static/images/search-title-bg.png)`}">
@ -68,9 +68,9 @@
</navigator>
</view>
</view>
</view>
</view> -->
<!--热销排行-->
<view v-for="(item,index) in hotRankList" class="scroll-count">
<!-- <view v-for="(item,index) in hotRankList" class="scroll-count">
<view class="scroll-item" :style="{'background-image':`url(${domain}/static/images/search-title-bg.png)`}">
<view class="search-title">
<image :src="`${domain}/static/images/search-title-icon.png`" class="title-icon"></image>
@ -109,7 +109,7 @@
<text>开启热搜榜</text>
</view>
</view>
</view>
</view> -->
</view>
<!-- #ifndef H5 -->
<passwordPopup></passwordPopup>
@ -212,15 +212,15 @@
},
/*今日热搜*/
getHotSearchList(){
getTodayHotSearch().then(res => {
this.$set(this, 'daySearchList', res.data);
});
// getTodayHotSearch().then(res => {
// this.$set(this, 'daySearchList', res.data);
// });
},
/*热销排行*/
getHotRankingList(){
getHotRanking().then(res => {
this.$set(this, 'hotRankList', res.data);
});
// getHotRanking().then(res => {
// this.$set(this, 'hotRankList', res.data);
// });
},
setHotSearchValue: function(event, key) {
this.focus = false

View File

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

View File

@ -26,6 +26,12 @@
<!--有氛围图-->
<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="discount" v-if="globalData.show_coupon_status && skuCoupon">
<view class="discount_main">
<view class="discount_left">可用抵扣</view>
<view class="discount_right">{{skuCoupon}}</view>
</view>
</view>
<text v-if="!svipData" class='y-money'>{{storeInfo.ot_price}}</text>
<view class="atmosphere" v-if="svipData && svipData.show_svip_price && svipData.show_svip" style="display: inline-block;">
<text class="vip-money">{{storeInfo.svip_price}}</text>
@ -36,9 +42,11 @@
<view class='wrapper'>
<view v-if="storeInfo.atmosphere_pic" class='introduce skeleton-rect acea-row atmosphere'>
<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-else-if="(storeInfo.merchant && storeInfo.merchant.is_trader)" class="font-bg-red bt-color">自营</text>
{{storeInfo.store_name}}
</view>
<view class="fenxiang_btn">
<view @click="setCollect"><text class="iconfont" :class="storeInfo.isRelation ? 'icon-yishoucang2' : 'icon-shoucang4'"></text><br/>收藏</view>
@ -46,7 +54,7 @@
</view>
</view>
<view v-if="storeInfo.atmosphere_pic" class='integral_count skeleton-rect'>
<text v-if="storeInfo.max_integral > 0" class='integral'>积分最高可抵扣{{storeInfo.max_integral}}</text>
<!-- <text v-if="storeInfo.max_integral > 0" class='integral'>铸源星最高可抵扣{{storeInfo.max_integral}}</text> -->
<text v-if="storeInfo.delivery_free == 1" class='integral'>包邮</text>
</view>
<!--无氛围图-->
@ -54,6 +62,12 @@
<view class='money p-color skeleton-rect' style="min-width: 70rpx;">
<text class='num'>{{storeInfo.price}}</text>
<view class="discount" v-if="globalData.show_coupon_status && skuCoupon">
<view class="discount_main">
<view class="discount_left">可用抵扣</view>
<view class="discount_right">{{skuCoupon}}</view>
</view>
</view>
<view v-if="svipData && svipData.show_svip_price && svipData.show_svip" style="display: inline-block;">
<text class="vip-money">{{storeInfo.svip_price}}</text>
<image class="vip-image" :src="`${domain}/static/images/svip.png`"></image>
@ -82,10 +96,11 @@
</navigator>
</view>
<view v-if="!storeInfo.atmosphere_pic" class='integral_count skeleton-rect'>
<text v-if="storeInfo.max_integral > 0" class='integral'>积分最高可抵扣{{storeInfo.max_integral}}</text>
<!-- <text v-if="storeInfo.max_integral > 0" class='integral'>铸源星最高可抵扣{{storeInfo.max_integral}}</text> -->
<text v-if="storeInfo.delivery_free == 1" class='integral'>包邮</text>
</view>
<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-else-if="storeInfo.merchant.is_trader" class="font-bg-red bt-color">自营</text>
{{storeInfo.store_name || ''}}
@ -95,7 +110,7 @@
<view class="skeleton-rect">库存:{{storeInfo.stock ? storeInfo.stock : 0}}{{storeInfo.unit_name ? storeInfo.unit_name : ''}}</view>
<view class="skeleton-rect">销量:{{storeInfo.sales ? storeInfo.sales : 0}}{{storeInfo.unit_name ? storeInfo.unit_name : ''}}</view>
</view>
<navigator v-if="storeInfo.top_pid" hover-class='none' :url="`/pages/activity/rank/index?cate_id=${storeInfo.top_pid}`" class='label'>
<!-- <navigator v-if="storeInfo.top_pid" hover-class='none' :url="`/pages/activity/rank/index?cate_id=${storeInfo.top_pid}`" class='label'>
<view class="rank_list acea-row row-between-wrapper">
<view class="acea-row row-between-wrapper">
<text class="rank_title"></text>
@ -103,14 +118,14 @@
</view>
<text class="iconfont icon-xiala1"></text>
</view>
</navigator>
<view class='coupon acea-row row-between-wrapper skeleton-rect' @click='couponTap' style="margin-top: 20rpx;" v-if="coupon.list.length > 0">
</navigator> -->
<!-- <view class='coupon acea-row row-between-wrapper skeleton-rect' @click='couponTap' style="margin-top: 20rpx;" v-if="coupon.list.length > 0">
<view class='hide line1 acea-row'>
优惠券
<view class='activity' v-for="(item,index) in coupon.list" :key="index">{{item.use_min_price}}{{item.coupon_price}}</view>
</view>
<view class='iconfont icon-jiantou'></view>
</view>
</view> -->
</view>
<view class='attribute acea-row row-between-wrapper skeleton-rect' @click="selecAttr">
<view class="acea-row row-between-wrapper">{{attrTxt}}
@ -132,7 +147,7 @@
<!--运费-->
<view v-if="shipping || shippingValue" class='attribute acea-row row-between-wrapper' @click="showShip">
<view class="acea-row row-between-wrapper">运费
<text class='atterTxt'>{{shippingValue}}</text>
<text class='atterTxt'>运费说明</text>
</view>
<view class='iconfont icon-jiantou'></view>
</view>
@ -283,6 +298,16 @@
</view>
</view>
</view>
<view class="product-intro">
<view class='notice_conter' v-if="notice">
<!-- #ifndef APP-PLUS -->
<jyf-parser v-if="notice" :domain='domain' :html="notice.replace(/<br\/>/ig, '')" ref="article" :tag-style="tagStyle"></jyf-parser>
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<view v-if="notice" class="description" v-html="notice.replace(/<br\/>/ig, '')"></view>
<!-- #endif -->
</view>
</view>
<view class='product-intro' id="past3">
<view class='title'>产品介绍</view>
<view class='conter' v-if="description">
@ -377,10 +402,10 @@
</button>
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<view class="item" @click="appShare('WXSceneSession')">
<!-- <view class="item" @click="appShare('WXSceneSession')">
<view class="iconfont icon-weixin3"></view>
<view class="">分享给好友</view>
</view>
</view> -->
<!-- #endif -->
<button class="item" :class="weixinStatus ? 'item3' : ''" hover-class='none' @click="goPoster">
<view class="iconfont icon-haibao"></view>
@ -465,6 +490,7 @@
import discountsGoods from './discountsGoods';
import ClipboardJS from "@/plugin/clipboard/clipboard.js";
import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue';
import prompt from '@/utils/prompt.js'
let app = getApp();
export default {
components: {
@ -495,6 +521,7 @@
'coupon': false,
list: [],
},
skuCoupon:'',
attrTxt: '选择', //
attrValue: '', //
animated: false, //
@ -544,6 +571,7 @@
activity: [],
retunTop: true, //
navH: "",
notice:'',
navList: [],
opacity: 0,
scrollY: 0,
@ -617,7 +645,7 @@
};
},
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) {
let that = this
@ -874,6 +902,14 @@
});
},
// /**/
// getNoticeRule() {
// priceRuleApi(this.storeInfo.cate_id).then(res => {
// this.notice = res.data
// }).catch(err => {
// });
// },
goActivity: function(e) {
let item = e;
if (item.type === "1") {
@ -1015,6 +1051,7 @@
this.$set(this.attr.productSelect, "svip_price", productSelect.svip_price);
this.$set(this.attr.productSelect, "stock", productSelect.stock);
this.$set(this.attr.productSelect, "unique", productSelect.unique);
this.$set(this.attr.productSelect, "coupon", productSelect.coupon);
this.$set(this, "uniqueValue", productSelect.unique);
if (productSelect.stock == 0) {
this.$set(this.attr.productSelect, "cart_num", 0);
@ -1023,6 +1060,7 @@
}
this.$set(this, "attrValue", res);
this.$set(this, "attrTxt", "选择");
console.log(productSelect);
}
else {
this.$set(this.attr.productSelect, "image", productSelect.image);
@ -1030,6 +1068,7 @@
this.$set(this.attr.productSelect, "svip_price", productSelect.svip_price);
this.$set(this.attr.productSelect, "stock", 0);
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, "attrValue", res);
this.$set(this, "attrTxt", "选择");
@ -1072,6 +1111,7 @@
} else if (storeInfo.video_link && storeInfo.slider_image.length === 1) {
this.videoCoverImg = storeInfo.slider_image[0]
}
console.log(storeInfo);
that.$set(that, 'storeInfo', storeInfo);
that.$set(that, 'reply', res.data.topReply ? [res.data.topReply] : []);
that.$set(that, 'replyCount', res.data.replayData && res.data.replayData.count);
@ -1096,6 +1136,7 @@
that.$set(that, 'storeImage', that.storeInfo.image);
getProductParmas(that.id).then((res) => {
that.$set(that, 'description', res.data.content);
that.$set(that, 'notice', res.data.merchant.mer_notice);
if (that.description.type == 0) {
that.description.content = that.description.content.replace(
/<img/gi,
@ -1135,6 +1176,7 @@
}, 500);
that.DefaultSelect();
that.getPricrRule(that.storeInfo.cate_id)
// that.getNoticeRule(that.storeInfo.cate_id)
that.$nextTick(function() {
that.getCouponList();
})
@ -1187,6 +1229,7 @@
}
//sort();:--
let productSelect = this.productValue[value.join(",")];
this.skuCoupon = productSelect.coupon
if (productSelect && productAttr.length) {
this.$set(
this.attr.productSelect,
@ -1198,6 +1241,7 @@
this.$set(this.attr.productSelect, "svip_price", productSelect.svip_price);
this.$set(this.attr.productSelect, "stock", productSelect.stock);
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, "attrValue", value.join(","));
this.$set(this, "attrTxt", "选择");
@ -1217,6 +1261,7 @@
this.$set(this.attr.productSelect, "svip_price", this.storeInfo.svip_price);
this.$set(this.attr.productSelect, "stock", 0);
this.$set(this.attr.productSelect, "unique", "");
this.$set(this.attr.productSelect, "coupon", 0);
this.$set(this, "uniqueValue", "");
this.$set(this.attr.productSelect, "cart_num", 0);
this.$set(this, "attrValue", "");
@ -1234,6 +1279,7 @@
this.$set(this.attr.productSelect, "unique", this.storeInfo.unique || "");
this.$set(this, "uniqueValue", this.storeInfo.unique || "");
this.$set(this.attr.productSelect, "cart_num", 1);
this.$set(this.attr.productSelect, "coupon", 0);
this.$set(this, "attrValue", "");
this.$set(this, "attrTxt", "选择");
} else if (productSelect && !productAttr.length) {
@ -1243,6 +1289,7 @@
this.$set(this.attr.productSelect, "svip_price", productSelect.svip_price);
this.$set(this.attr.productSelect, "stock", productSelect.stock);
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, "attrValue", value.join(","));
this.$set(this, "attrTxt", "选择");
@ -1414,6 +1461,20 @@
};
postCartAdd(q)
.then(function(res) {
if('no_real' == res.data.status){
return uni.showModal({
title: res.message,
content: res.msg,
confirmText: '实名认证绑定',
success(res) {
if (res.confirm) {
uni.navigateTo({
url:`/pages/users/real_name_authentication/index?type=edit`
})
}
}
});
}
that.isOpen = that.attr.cartAttr = false;
let cartId = res.data.cart_id
let arr = (Cache.get(CART_ID)&&JSON.parse(Cache.get(CART_ID))) || []
@ -1642,7 +1703,9 @@
},
// #endif
// #ifdef APP-PLUS
savePosterPath(){
async savePosterPath(){
let res = await prompt.requestPermissions(['WRITE_EXTERNAL_STORAGE'])
if(res!==1) return
let that = this
uni.saveImageToPhotosAlbum({
filePath: that.posterImage,
@ -1755,6 +1818,33 @@
.ml8{
top:2rpx
}
.notice_conter{
background-color: #fff;
padding: 10rpx;
}
.discount{
display: inline-block;
margin-left: 20rpx;
margin-top: 10rpx;
line-height: 40rpx;
min-height: 40rpx;
vertical-align: top;
border: 1px solid #F8D2CB;
padding-left: 20rpx;
border-radius: 10rpx;
&_main{
display: flex;
}
&_left{
padding-right: 10rpx;
border-right: 2px dotted #F6D3D7;
}
&_right{
padding: 0 10rpx;
background: #FDEFEE;
width: auto;
}
}
.activity_pin {
width: auto;
height: 44rpx;

View File

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

View File

@ -25,7 +25,7 @@
<view class="name">{{item.mer_name}}</view>
<text class="iconfont icon-xiangyou"></text>
</navigator>
<view class="coupon-btn" v-if="item.hasCoupon>0" @click="giveCoupon(item)">优惠券</view>
<!-- <view class="coupon-btn" v-if="item.hasCoupon>0" @click="giveCoupon(item)">优惠券</view> -->
</view>
<navigator v-for="goods in item.list" :key="goods.cart_id" :url='"/pages/goods_details/index?id="+goods.product.product_id'
hover-class='none' class='picTxt acea-row'>
@ -52,6 +52,12 @@
<image :src="`${domain}/static/images/svip.png`"></image>
</view>
</view>
<view class="discount" v-if="globalData.show_coupon_status && goods.productAttr.coupon">
<view class="discount_main">
<view class="discount_left">可用抵扣</view>
<view class="discount_right">{{goods.productAttr.coupon}}</view>
</view>
</view>
</view>
<view class='carnum acea-row row-center-wrapper'>
<view class="reduce" :class="goods.numSub || (goods.product.once_max_count>0 && goods.product.once_min_count>0 && goods.cart_num <= goods.product.once_min_count) ? 'on' : ''" @click.stop='subCart(goods)'>-</view>
@ -217,7 +223,7 @@
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(){},
mounted: function() {},
onLoad: function(options) {
@ -601,6 +607,7 @@
getCartList: function(isChange) {
let that = this;
getCartList().then(res => {
console.log(res);
if(checkCart()){
that.selectedArr = (Cache.get(CART_ID)&&JSON.parse(Cache.get(CART_ID))) || []
}else{
@ -836,6 +843,30 @@
</script>
<style scoped lang="scss">
.discount{
color: var(--view-priceColor);
font-weight: 700;
display: inline-block;
margin-top: 10rpx;
line-height: 48rpx;
min-height: 48rpx;
border: 1px solid #F8D2CB;
padding-left: 8rpx;
font-size: 24rpx;
border-radius: 10rpx;
&_main{
display: flex;
}
&_left{
padding-right: 10rpx;
border-right: 2px dotted #F6D3D7;
}
&_right{
padding: 0 10rpx;
background: #FDEFEE;
width: auto;
}
}
.shoppingCart .labelNav {
height: 76rpx;
padding: 0 30rpx;

View File

@ -232,14 +232,18 @@
<view>运费</view>
<view class='conter'>+{{orderInfo.pay_postage}}</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 class='conter'>-{{orderInfo.coupon_price}}</view>
</view>
</view> -->
<view class='item acea-row row-between' v-if='orderInfo.integral'>
<view>积分抵扣</view>
<view>铸源星抵扣</view>
<view class='conter'>-{{orderInfo.integral_price}}</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>实付款</view>
<view class='conter'>{{orderInfo.presell_price}}</view>
@ -352,7 +356,7 @@
icon: "icon-weixinzhifu",
value: 'wechat',
title: '微信快捷支付',
payStatus: 1
payStatus: 2
},
{
name: "支付宝支付",
@ -368,6 +372,34 @@
title: '可用余额:',
number: 0,
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
},
{
"name": "支付宝支付",
"icon": "icon-zhifubao",
value: 'hf',
title: '支付宝支付',
payStatus: this.$store.getters.globalData.hf_alipay_open,
},
{
"name": "银联扫码",
"icon": "icon-icon-test",
value: 'sandQr',
title: '银联扫码',
payStatus: this.$store.getters.globalData.sand_qr_open,
}
],
pay_close: false,

View File

@ -147,12 +147,12 @@
<view>运费</view>
<view class='conter'>+{{orderInfo.pay_postage}}</view>
</view>
<view class='item acea-row row-between' v-if='orderInfo.coupon_price>0'>
<view>优惠券抵扣</view>
<view class='conter'>-{{orderInfo.coupon_price}}</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.integral'>
<view>积分抵扣</view>
<view>铸源星抵扣</view>
<view class='conter'>-{{orderInfo.integral_price}}</view>
</view>
<view class='item acea-row row-between'>
@ -211,7 +211,7 @@
icon: "icon-weixinzhifu",
value: 'wechat',
title: '微信快捷支付',
payStatus: 1
payStatus: 2
},
{
name: "支付宝支付",
@ -229,13 +229,41 @@
payStatus: this.$store.getters.globalData.yue_pay_status
},
{
name: "积分兑付",
name: "铸源星支付",
icon: "haiyuefont haiyue-jifenduihuan",
value: 'integral',
title: '可用积分:',
title: '可用铸源星:',
number: 0,
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
},
{
"name": "支付宝支付",
"icon": "icon-zhifubao",
value: 'hf',
title: '支付宝支付',
payStatus: this.$store.getters.globalData.hf_alipay_open,
},
{
"name": "银联扫码",
"icon": "icon-icon-test",
value: 'sandQr',
title: '银联扫码',
payStatus: this.$store.getters.globalData.sand_qr_open,
}
],
pay_close: false,
pay_order_id: '',

View File

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

View File

@ -19,16 +19,16 @@
</view>
<view v-if="order_type== 20" class='item acea-row row-between-wrapper'>
<view>兑换方式</view>
<view class='itemCom'>积分兑换</view>
<view class='itemCom'>铸源星兑换</view>
</view>
<view v-else class='item acea-row row-between-wrapper'>
<!-- <view v-else class='item acea-row row-between-wrapper'>
<view>支付方式</view>
<view v-if="order_pay_info.pay_type==1 || order_pay_info.pay_type==2 || order_pay_info.pay_type==3" class='itemCom'>微信</view>
<view v-else-if="order_pay_info.pay_type==4 || order_pay_info.pay_type==5" class='itemCom'>支付宝</view>
<view v-else class='itemCom'>余额</view>
</view>
</view> -->
<view v-if="order_type== 20" class='item acea-row row-between-wrapper'>
<view>支付积分</view>
<view>支付铸源星</view>
<view class='itemCom'>{{order_pay_info.integral}}</view>
</view>
<view class='item acea-row row-between-wrapper'>
@ -36,7 +36,7 @@
<view class='itemCom'>{{order_pay_info.pay_price}}</view>
</view>
<view v-if="order_pay_info.give_integral > 0 && order_pay_info.paid" class='item acea-row row-between-wrapper'>
<view>赠送积分</view>
<view>赠送铸源星</view>
<view class='itemCom t-color'>{{order_pay_info.give_integral}}</view>
</view>
<!--失败时加上这个 -->

View File

@ -26,7 +26,7 @@
<view class="count">
<image class="image" :src="`${domain}/static/images/jf-point.png`" mode="widthFix"></image>
<view class="price-box">
<text>{{ item.ot_price }}</text>积分
<text>{{ item.ot_price }}</text>铸源星
</view>
<view v-if="item.price>0" class="sales">+{{parseFloat(Number(item.price).toFixed(2))}}</view>
</view>

View File

@ -58,7 +58,7 @@
<view class="acea-row price-count">
<image class="image" :src="`${domain}/static/images/jf-point.png`" mode="widthFix"></image>
<view class="price-box">
<text>{{ item.ot_price }}</text>积分
<text>{{ item.ot_price }}</text>铸源星
</view>
<view class="sales">+{{parseFloat(Number(item.price).toFixed(2))}}</view>
</view>
@ -139,7 +139,7 @@
}
return newArray;
},
//
//
getIntegralScope() {
getIntegralScope().then(res => {
res.data.unshift({title: '全部',group_data_id: '',min: '',max: ''})
@ -167,7 +167,7 @@
this.goodList = [];
this.getIntegralGoods();
},
//
//
getIntegralGoods(){
let that = this;
if (that.loadend) return;

View File

@ -19,7 +19,7 @@
<image :src="`${domain}/static/images/jf-point.png`" mode=""></image>
<view class="price-count">
<text class="num">{{storeInfo.ot_price || 0}}</text>
<text>积分</text><text v-if="storeInfo.price > 0">+{{storeInfo.price}}</text>
<text>铸源星</text><text v-if="storeInfo.price > 0">+{{storeInfo.price}}</text>
</view>
</view>
@ -62,7 +62,7 @@
<view class='footer acea-row row-between-wrapper'>
<navigator hover-class="none" class="item" url="/pages/points_mall/index">
<view class="iconfont icon-jifenshangcheng"></view>
<view class="p_center">积分商城</view>
<view class="p_center">铸源星商城</view>
</navigator>
<view class="bnt acea-row"

View File

@ -13,7 +13,7 @@
<view class='nav acea-row row-middle'>
<view class='item line1' :class="{'font-num': where.order==''}" @click.native='set_where(1)'>默认</view>
<view class='item' :class="{'font-num': where.order=='ot_price_desc' || where.order=='ot_price_asc'}" @click='set_where(2)'>
积分
铸源星
<image v-if="price==1" :src="domain+'/static/diy/up'+keyColor+'.png'"></image>
<image v-else-if="price==2" :src="domain+'/static/diy/down'+keyColor+'.png'"></image>
<image v-else :src='`${domain}/static/images/horn.png`'></image>
@ -35,7 +35,7 @@
<view class="acea-row price-count">
<image class="image" :src="`${domain}/static/images/jf-point.png`" mode="widthFix"></image>
<view class="price-box">
<text>{{ item.ot_price }}</text>积分
<text>{{ item.ot_price }}</text>铸源星
</view>
<view v-if="item.price!=0" class="sales">+{{parseFloat(Number(item.price).toFixed(2))}}</view>
</view>

View File

@ -40,7 +40,7 @@
<view class="price acea-row row-between">
<view class="acea-row row-middle">
<block>
{{goods.productAttr.ot_price}}积分<block v-if="goods.productAttr.price>0">+{{goods.productAttr.price}}</block>
{{goods.productAttr.ot_price}}铸源星<block v-if="goods.productAttr.price>0">+{{goods.productAttr.price}}</block>
</block>
</view>
@ -57,13 +57,13 @@
</view>
<view class='wrapper'>
<view class='item acea-row row-between-wrapper'>
<view>可用积分</view>
<view class='discount'>{{resData.true_integral}}积分
<view>可用铸源星</view>
<view class='discount'>{{resData.true_integral}}铸源星
</view>
</view>
<view class='item acea-row row-between-wrapper'>
<view>兑换积分</view>
<view class='discount'>{{resData.order_total_integral}}积分
<view>兑换铸源星</view>
<view class='discount'>{{resData.order_total_integral}}铸源星
</view>
</view>
<view class='item acea-row row-between-wrapper'>
@ -125,7 +125,7 @@
<view style='height:120rpx;'></view>
<view class='footer acea-row row-between-wrapper'>
<view>支付
<text class='color-t'>{{resData.order_total_integral || 0}}积分</text><text class="color-t" v-if="resData.order_pay_price>0">+{{resData.order_pay_price}}</text>
<text class='color-t'>{{resData.order_total_integral || 0}}铸源星</text><text class="color-t" v-if="resData.order_pay_price>0">+{{resData.order_pay_price}}</text>
</view>
<view class='settlement' style='z-index:100' @tap="goPay">立即兑换</view>
</view>
@ -219,10 +219,10 @@
mark: '', //
couponTitle: '请选择', //
coupon_price: 0, //
useIntegral: false, //使
integral_price: 0, //
useIntegral: false, //使
integral_price: 0, //
integral: 0,
ChangePrice: 0, //使
ChangePrice: 0, //使
formIds: [], //formid
status: 0,
is_address: false,
@ -345,7 +345,7 @@
}
if (parseFloat(that.resData.true_integral) < parseFloat(that.resData.order_total_integral))
return that.$util.Tips({
title: '积分不足!'
title: '铸源星不足!'
});
data = {

View File

@ -42,7 +42,7 @@
</view>
<view class='attr line1'>{{item.cart_info.productAttr.sku || '默认'}}</view>
<view class='money'>
{{item.integral}}积分 <text v-if="item.product_price > 0">+{{item.product_price}}</text>
{{item.integral}}铸源星 <text v-if="item.product_price > 0">+{{item.product_price}}</text>
</view>
</view>
</view>
@ -84,8 +84,8 @@
<view class='conter'>{{orderInfo.paid == 1 ? '已支付' : '未支付'}}</view>
</view>
<view class='item acea-row row-between'>
<view>支付积分</view>
<view class='conter'>{{orderInfo.integral}}积分</view>
<view>支付铸源星</view>
<view class='conter'>{{orderInfo.integral}}铸源星</view>
</view>
<view class='item acea-row row-between'>
<view>支付金额</view>

View File

@ -18,10 +18,10 @@
</view>
<view class='item acea-row row-between-wrapper'>
<view>兑换方式</view>
<view class='itemCom'>积分兑换</view>
<view class='itemCom'>铸源星兑换</view>
</view>
<view class='item acea-row row-between-wrapper'>
<view>兑换积分</view>
<view>兑换铸源星</view>
<view class='itemCom'>{{order_pay_info.total_price}}</view>
</view>
<!--失败时加上这个 -->

View File

@ -8,7 +8,7 @@
<view class='text acea-row row-between'>
<view class='name line2'>{{orderInfo.store_name}}</view>
<view class='money'>
<view>{{orderInfo.total_price}}积分</view>
<view>{{orderInfo.total_price}}铸源星</view>
<view>x{{orderInfo.total_num}}</view>
</view>
</view>

View File

@ -53,9 +53,10 @@
<view class="shop_list_item_handle">
<view v-if="item.is_show == 1 && item.status == 1 && type != 5" class="shop_button" @click="upperShelfAndLowerShelf(item, index)">下架</view>
<view v-if="item.is_show == 0 && item.status == 1 && type != 5" class="shop_button" @click="upperShelfAndLowerShelf(item, index)">上架</view>
<view class="shop_button" v-if="type != 1 && type != 3" @click="handleDelete(item, index)">删除</view>
<view class="shop_button" v-if="type == 5" @click="reduction(item, index)">恢复</view>
<navigator :url="`/pages/product/addGoods/index?mer_id=${merId}&product_id=${item.product_id}`" v-if="type != 5" class="shop_button" hover-class="none">编辑</navigator>
<navigator :url="'/pages/admin/goods_details/index?product_id='+item.product_id+'&product_type=0'" class="shop_button" hover-class='none'>预览</navigator>
<!-- <view class="shop_button" v-if="type != 1 && type != 3" @click="handleDelete(item, index)">删除</view> -->
<!-- <view class="shop_button" v-if="type == 5" @click="reduction(item, index)">恢复</view> -->
<!-- <navigator :url="`/pages/product/addGoods/index?mer_id=${merId}&product_id=${item.product_id}`" v-if="type != 5" class="shop_button" hover-class="none">编辑</navigator> -->
</view>
</view>
</view>

View File

@ -16,7 +16,7 @@
<block>
<swiper-item :class="{ active: 0 == swiperCur }">
<view class="slide-navigator">
<!-- <view class="item" hover-class='none' @click="jumpAddGoods">
<!-- <view class="item" hover-class='none' @click="jumpAddGoods">
<image mode='widthFix' class="image" src="../static/images/product_add.png"></image>
<text class="text">添加商品</text>
</view> -->
@ -24,7 +24,7 @@
<image mode='widthFix' class="image" src="../static/images/product_sales.png"></image>
<text class="text">在售商品</text>
</navigator>
<navigator class="item" :url="`/pages/product/goodsOnSale/index?mer_id=${mer_id}&type=3`" hover-class='none'>
<!-- <navigator class="item" :url="`/pages/product/goodsOnSale/index?mer_id=${mer_id}&type=3`" hover-class='none'>
<image mode='widthFix' class="image" src="../static/images/product_out.png"></image>
<text class="text">售罄商品</text>
</navigator>
@ -39,10 +39,10 @@
<navigator class="item" :url="`/pages/product/addGoods/freightTemplate?mer_id=${mer_id}`" hover-class='none'>
<image mode='widthFix' class="image" src="../static/images/product_freight.png"></image>
<text class="text">运费模板</text>
</navigator>
</navigator> -->
</view>
</swiper-item>
<swiper-item :class="{ active: 1 == swiperCur }">
<!-- <swiper-item :class="{ active: 1 == swiperCur }">
<view class="slide-navigator">
<navigator class="item" :url="`/pages/product/addGoods/mulSpecification?mer_id=${mer_id}`" hover-class='none'>
@ -50,7 +50,7 @@
<text class="text">规格模板</text>
</navigator>
</view>
</swiper-item>
</swiper-item> -->
</block>
</swiper>
</div>
@ -86,8 +86,8 @@
<view v-if="item.is_show == 0 && item.status == 1" class="bnt" @tap.stop="handleShelves(item),1">上架</view>
<!-- <view @click="editGoods(item)" class="bnt">编辑</view> -->
<navigator :url="'/pages/admin/goods_details/index?product_id='+item.product_id+'&product_type=0'" class="bnt" hover-class='none'>预览</navigator>
<view class="bnt" v-if="item.is_show == 0" @tap.stop="handleRecycle(item,index)">删除</view>
<view class="bnt bnt_recommend" v-if="item.is_show == 1" @tap.stop="handleRecommend(item)">{{item.is_good ? '取消推荐' : '店铺推荐'}}</view>
<!-- <view class="bnt" v-if="item.is_show == 0" @tap.stop="handleRecycle(item,index)">删除</view> -->
<!-- <view class="bnt bnt_recommend" v-if="item.is_show == 1" @tap.stop="handleRecommend(item)">{{item.is_good ? '取消推荐' : '店铺推荐'}}</view> -->
</view>
</view>
</block>

View File

@ -0,0 +1,379 @@
<template>
<view class="superwei-combox" :class="border ? '' : 'superwei-combox__no-border'">
<view v-if="label" class="superwei-combox__label" :style="labelStyle">
<text>{{label}}</text>
</view>
<view class="superwei-combox__input-box">
<input class="superwei-combox__input" type="text" :placeholder="placeholder"
placeholder-class="superwei-combox__input-plac" v-model="inputVal" @input="onInput" @focus="onFocus"
@blur="onBlur" />
<uni-icons :type="showSelector? 'top' : 'bottom'" size="14" color="#999" @click="toggleSelector">
</uni-icons>
</view>
<view class="superwei-combox__selector" v-if="showSelector">
<view class="uni-popper__arrow"></view>
<scroll-view scroll-y="true" class="superwei-combox__selector-scroll">
<view class="superwei-combox__selector-empty" v-if="filterCandidatesLength === 0">
<text>{{emptyTips}}</text>
</view>
<view class="superwei-combox__selector-item" v-for="(item,index) in filterCandidates" :key="index">
<template v-if="(isJSON?(item.disabled?true:false):false)">
<text
:style="'color:'+disabledColor+';cursor: not-allowed;'">{{isJSON?item[keyName]?item[keyName]:'字段'+keyName+'不存在':item}}</text>
</template>
<template v-else>
<text @click="onSelectorClick(index)"
:style="(isJSON?item[keyName]?item[keyName]==inputVal:false:item==inputVal)?'font-weight: bold;background-color: '+selectedBackground+';color: '+selectedColor:''">{{isJSON?item[keyName]?item[keyName]:'字段'+keyName+'不存在':item}}</text>
</template>
</view>
</scroll-view>
</view>
</view>
</template>
<script>
/**
* Combox 组合输入框
* @description 组合输入框一般用于既可以输入也可以选择的场景
* @property {String} label 左侧文字
* @property {String} labelWidth 左侧内容宽度
* @property {String} placeholder 输入框占位符
* @property {Array} candidates 候选项列表
* @property {String} emptyTips 筛选结果为空时显示的文字
* @property {String} value 组合框的值
* @property {String} selectedBackground 选中项背景颜色
* @property {String} selectedColor 选中项文字颜色
* @property {Boolean} isJSON 是否是json数组
* @property {String} keyName json数组显示的字段值
* @property {String} disabledColor 禁用项文字颜色
* @property {Boolean} isAllowCreate 是否允许用户创建新条目
*/
export default {
name: 'superweiCombox',
emits: ['input', 'update:modelValue', 'select'],
props: {
isAllowCreate: {
type: Boolean,
default: true
},
disabledColor: {
type: String,
default: '#ababac'
},
isJSON: {
type: Boolean,
default: false
},
keyName: {
type: String,
default: ''
},
selectedBackground: {
type: String,
default: '#f5f7fa'
},
selectedColor: {
type: String,
default: '#409eff'
},
border: {
type: Boolean,
default: true
},
label: {
type: String,
default: ''
},
labelWidth: {
type: String,
default: 'auto'
},
placeholder: {
type: String,
default: ''
},
candidates: {
type: Array,
default () {
return []
}
},
emptyTips: {
type: String,
default: '无匹配项'
},
// #ifndef VUE3
value: {
type: [String, Number],
default: ''
},
// #endif
// #ifdef VUE3
modelValue: {
type: [String, Number],
default: ''
},
// #endif
},
data() {
return {
isInput: false,
showSelector: false,
isSelector: false,
inputVal: ''
}
},
computed: {
labelStyle() {
if (this.labelWidth === 'auto') {
return ""
}
return `width: ${this.labelWidth}`
},
filterCandidates() {
if (this.isInput) {
if (this.isJSON) {
return this.candidates.filter((item) => {
return item[this.keyName].toString().indexOf(this.inputVal) > -1
})
} else {
return this.candidates.filter((item) => {
return item.toString().indexOf(this.inputVal) > -1
})
}
} else {
return this.candidates
}
},
filterCandidatesLength() {
return this.filterCandidates.length
}
},
watch: {
// #ifndef VUE3
value: {
handler(newVal) {
this.inputVal = newVal
this.isInput = true
},
immediate: true
},
// #endif
// #ifdef VUE3
modelValue: {
handler(newVal) {
this.inputVal = newVal
this.isInput = true
},
immediate: true
},
// #endif
},
methods: {
toggleSelector() {
this.showSelector = !this.showSelector
this.isInput = false
},
onFocus() {
this.showSelector = true
this.isInput = false
},
onChange() {
setTimeout(() => {
this.showSelector = false
this.isInput = false
}, 200)
},
onBlur() {
if (!this.isInput) {
this.onChange()
} else {
if (this.inputVal && !this.isAllowCreate) {
let index = this.candidates.findIndex((item) => {
if (this.isJSON) {
return item[this.keyName].toString() == this.inputVal && !item.disabled
} else {
return item.toString() == this.inputVal
}
})
if (index == -1) {
if (this.filterCandidatesLength > 0) {
setTimeout(() => {
this.showSelector = false
this.isInput = false
if (!this.isSelector) {
this.inputVal = ''
this.$emit('input', this.inputVal)
this.$emit('update:modelValue', this.inputVal)
}
}, 200)
this.isSelector = false
} else {
this.showSelector = false
this.isInput = false
this.inputVal = ''
this.$emit('input', this.inputVal)
this.$emit('update:modelValue', this.inputVal)
}
} else {
this.onChange()
}
} else {
this.onChange()
}
}
},
onSelectorClick(index) {
let item = this.filterCandidates[index]
if (this.isJSON) {
this.inputVal = item[this.keyName]
} else {
this.inputVal = item
}
this.showSelector = false
this.isSelector = true
this.$emit('input', this.inputVal)
this.$emit('update:modelValue', this.inputVal)
this.$emit('select', item)
},
onInput() {
setTimeout(() => {
this.$emit('input', this.inputVal)
this.$emit('update:modelValue', this.inputVal)
})
}
}
}
</script>
<style lang="scss" scoped>
.superwei-combox {
font-size: 14px;
border: 1px solid #DCDFE6;
border-radius: 4px;
padding: 6px 10px;
position: relative;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
// height: 40px;
flex-direction: row;
align-items: center;
// border-bottom: solid 1px #DDDDDD;
}
.superwei-combox__label {
font-size: 16px;
line-height: 22px;
padding-right: 10px;
color: #999999;
}
.superwei-combox__input-box {
position: relative;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex: 1;
flex-direction: row;
align-items: center;
cursor: pointer;
}
.superwei-combox__input {
flex: 1;
font-size: 14px;
height: 22px;
line-height: 22px;
}
.superwei-combox__input-plac {
font-size: 14px;
color: #ccc; //placeholder-style="color:#FFFFFF"
}
.superwei-combox__selector {
/* #ifndef APP-NVUE */
box-sizing: border-box;
/* #endif */
position: absolute;
top: calc(100% + 12px);
left: 0;
width: 100%;
background-color: #FFFFFF;
border: 1px solid #EBEEF5;
border-radius: 6px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
z-index: 2;
padding: 4px 0;
}
.superwei-combox__selector-scroll {
/* #ifndef APP-NVUE */
max-height: 200px;
box-sizing: border-box;
/* #endif */
}
.superwei-combox__selector-empty,
.superwei-combox__selector-item {
/* #ifndef APP-NVUE */
display: flex;
cursor: pointer;
/* #endif */
line-height: 36px;
font-size: 14px;
text-align: center;
// border-bottom: solid 1px #DDDDDD;
padding: 0px 0px;
}
.superwei-combox__selector-empty text,
.superwei-combox__selector-item text {
width: 100%;
}
.superwei-combox__selector-item:hover {
background-color: #f9f9f9;
}
.superwei-combox__selector-empty:last-child,
.superwei-combox__selector-item:last-child {
/* #ifndef APP-NVUE */
border-bottom: none;
/* #endif */
}
// picker
.uni-popper__arrow,
.uni-popper__arrow::after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 6px;
}
.uni-popper__arrow {
filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
top: -6px;
left: 10%;
margin-right: 3px;
border-top-width: 0;
border-bottom-color: #EBEEF5;
}
.uni-popper__arrow::after {
content: " ";
top: 1px;
margin-left: -6px;
border-top-width: 0;
border-bottom-color: #fff;
}
.superwei-combox__no-border {
border: none;
}
</style>

View File

@ -64,9 +64,9 @@
<view :class="{ active: diyActive ===2 }" class="item" @click="set_where(5,2)">
<view class="cont">活动</view>
</view>
<view :class="{ active: diyActive == 3 }" class="item" @click="getCoupon">
<!-- <view :class="{ active: diyActive == 3 }" class="item" @click="getCoupon">
<view class="cont">领券</view>
</view>
</view> -->
</view>
</view>
<scroll-view class="main" scroll-y="true" @scroll="scrollHome" catchtouchmove :style="viewColor">
@ -152,9 +152,9 @@
<view :class="{ active: diyActive == 2 }" class="item" @click="set_where(5,2)">
<view class="cont">活动</view>
</view>
<view :class="{ active: diyActive == 3 }" class="item" @click="getCoupon">
<!-- <view :class="{ active: diyActive == 3 }" class="item" @click="getCoupon">
<view class="cont">领券</view>
</view>
</view> -->
</view>
<view v-show="select.show && !navShow" class="select">
<view v-for="item in select.options" :key="item.id" :class="{ active: item.id === select.selected }" class="item"
@ -168,7 +168,7 @@
<view v-show="diyActive == 0 && tabActive == 1">
<!-- #ifdef H5 -->
<view v-for="(item, index) in styleConfig" :key="index">
<block v-if="item.name != 'headerSerch' && item.name != 'tabNav'">
<block v-if="item.name != 'headerSerch' && item.name != 'tabNav' && item.name != 'pageFoot'">
<component
:is="item.name"
:index="index"
@ -535,11 +535,11 @@
name: '分类',
value: 2,
},
{
icon: 'icon-liwu_o',
name: '专场',
value: 4,
}
// {
// icon: 'icon-liwu_o',
// name: '',
// value: 4,
// }
],
//
tabs2: [{
@ -557,11 +557,11 @@
name: '分类',
value: 2,
},
{
icon: 'icon-zhuanti',
name: '专场',
value: 4,
}
// {
// icon: 'icon-zhuanti',
// name: '',
// value: 4,
// }
],
tabs: [],
storeScroll: true,
@ -635,7 +635,7 @@
this.type = parseInt(options.type) || 1
this.id = options.mer_id || options.id || 0;
this.isCoupon = options.coupon || 0;
this.diyActive = options.order || 0;
this.diyActive = options.order || 1;
this.order = options.order;
this.preview = options.time ? true : false;
if (options.spid) {

View File

@ -14,7 +14,7 @@
<view class="phone">
<view class="">
<text class="head">商户账号</text>
<text class="content">{{resData.mer_name}}</text>
<text class="content">{{resData.mer_account}}</text>
</view>
<text class="cope" @click="copyTBL()">复制</text>
</view>
@ -50,7 +50,7 @@
})
},
copyTBL(url) {
let copeData = `登录地址:${this.resData.login_url} 商户账号:${this.resData.mer_name}`
let copeData = `登录地址:${this.resData.login_url} 商户账号:${this.resData.mer_account}`
// #ifdef MP || APP-PLUS
uni.setClipboardData({
data: copeData,

View File

@ -244,7 +244,7 @@
</view>
</view>
<view class="item">
<!-- <view class="item">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
@ -252,12 +252,12 @@
<switch :checked="shopInfo.isVeteran" style="transform:scale(0.6)"
@change="viteran" />
</view>
<!-- <view class="acea-row row-middle">
<view class="acea-row row-middle">
<text class="tips-text" style="color: #0ca6cb;">如果为惠美乡村店铺需上传惠美乡村红头文件</text>
</view> -->
</view>
</view>
</view>
</view>
</view> -->
<!-- <view class="item" v-show="shopInfo.isVeteran">
<view class="uni-list">
<view class="uni-list-cell">
@ -282,7 +282,7 @@
</view>
</view> -->
<view class="item">
<!-- <view class="item">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
@ -318,7 +318,7 @@
</view>
</view>
</view>
</view>
</view> -->
<button class='submitBtn' :disabled="!validate" :class="validate === true ? 'on':''"
@click="nextStep">下一步</button>
</view>
@ -494,9 +494,9 @@
// if(isVeteran&&isVeteranPhoto.length==0){
// this.validate=false;
// }else
if (isFlagshipStore&&isFlagshipStorePhoto.length==0){
this.validate=false;
}else{
// if (isFlagshipStore&&isFlagshipStorePhoto.length==0){
// this.validate=false;
// }else{
let date2 = {
phone: EnterprisePhone,
mer_name:shopName,
@ -527,7 +527,7 @@
this.validate = true;
}
// }
}else{
this.validate=false;
@ -626,7 +626,11 @@
*/
uploadpic(item) {
let that = this;
that.$util.uploadImageOne('upload/image', function(res) {
let params = {
url:'upload/image',
name:'file'
}
that.$util.uploadImageOne(params, function(res) {
item.push(res.data.path);
that.validateBtn();
// that.$set(that, 'pics', that.pics);

View File

@ -29,7 +29,7 @@
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name required">身份证正反面及法人手持身份证清晰照片</text>
<text class="item-name required" style="min-height: 72rpx;">身份证正反面及法人手持身份证清晰照片</text>
<view class="">
{{shopInfo.idCardPhoto.length}}/3
</view>
@ -204,10 +204,25 @@
<text class="tips-text-yellow" >如为长期有效,请填写:2099年01月01日</text>
</view>
</view>
<view class="item">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db acea-row row-middle">
<text class="item-name required">营业执照注册地址</text>
<view class="acea-row row-middle" @click="changeRegion">
<input style="pointer-events:none;text-align: right;" placeholder="请选择"
type="text" readonly disabled v-model="shopInfo.registerAddress">
<view class='iconfont icon-jiantou'></view>
</view>
</view>
</view>
</view>
</view>
<view class="item">
<view class="acea-row row-middle">
<text class="item-name required">营业执照注册地址</text>
<input type="text" style="text-align: right;flex:1;" placeholder="请输入" v-model="shopInfo.registerAddressDetail" @input="validateBtn" placeholder-class='placeholder' />
<input type="text" style="text-align: right;flex:1;" placeholder="请输入详细地址" v-model="shopInfo.registerAddressDetail" @input="validateBtn" placeholder-class='placeholder' />
</view>
</view>
<!-- <view class="item">
@ -234,7 +249,7 @@
</view>
<areaWindow ref="areaWindow" :display="display" :address="[]"
@submit="OnChangeAddress" @changeClose="changeClose" :cityShow="1"></areaWindow>
@submit="OnChangeAddress" @changeClose="changeClose" :cityShow="2"></areaWindow>
<areaWindow ref="areaWindow2" :display="display2" :address="[]"
@submit="OnChangeAddress2" @changeClose="changeClose2" :cityShow="1"></areaWindow>
</view>
@ -268,6 +283,7 @@
countEndTime:'',
businessScope:'',
registerAddressDetail:'',
registerAddress:''
},
successful: false,
isType: false,
@ -366,12 +382,12 @@
return regex.test(dateString);
},
getGoodsDetails(){
let {idCardPhoto,idCardName,idCardNumber,idCardStartTime,idCardEndTime,businessLicense,countId,countStartTime,countEndTime,businessScope,registerAddressDetail}=this.shopInfo;
let {idCardPhoto,idCardName,idCardNumber,idCardStartTime,idCardEndTime,businessLicense,countId,countStartTime,countEndTime,businessScope,registerAddressDetail,registerAddress}=this.shopInfo;
let data2=uni.getStorageSync('updateShopInfo');
let idcard=data2.idcard;
let biz=data2.biz;
idCardPhoto=[idcard.image1,idcard.image2,idcard.image3],idCardName=idcard.name,idCardNumber=idcard.number,idCardStartTime=idcard.start,idCardEndTime=idcard.end,businessLicense=biz.image,countId=biz.number,countStartTime=biz.start,countEndTime=biz.end,registerAddressDetail=biz.address,businessScope=biz.businessScope
this.shopInfo={idCardPhoto,idCardName,idCardNumber,idCardStartTime,idCardEndTime,businessLicense,countId,countStartTime,countEndTime,businessScope,registerAddressDetail};
idCardPhoto=[idcard.image1,idcard.image2,idcard.image3],idCardName=idcard.name,idCardNumber=idcard.number,idCardStartTime=idcard.start,idCardEndTime=idcard.end,businessLicense=biz.image,countId=biz.number,countStartTime=biz.start,countEndTime=biz.end,registerAddress=biz.cityInfo,registerAddressDetail=biz.address,businessScope=biz.businessScope
this.shopInfo={idCardPhoto,idCardName,idCardNumber,idCardStartTime,idCardEndTime,businessLicense,countId,countStartTime,countEndTime,businessScope,registerAddressDetail,registerAddress};
uni.hideLoading();
this.validateBtn();
},
@ -396,6 +412,7 @@
this.shopInfo.countId=res.data.result.creditno;
this.shopInfo.countStartTime=res.data.result.start;
this.shopInfo.countEndTime=res.data.result.end;
this.shopInfo.registerAddressDetail=res.data.result.regaddress;
})
},
getAgreement() {
@ -421,8 +438,8 @@
this.display2 = false;
},
OnChangeAddress(address){
this.shopInfo.registerAddress = address.map(v=>v.name).join('/');
this.shopInfo.registerAddress = address.map(v=>v.name).join('');
this.validateBtn()
},
OnChangeAddress2(address){
@ -431,8 +448,8 @@
validateBtn(){
console.log(this.shopInfo)
let data2=uni.getStorageSync('shopInfo');
let {idCardPhoto,idCardName,idCardNumber,idCardStartTime,idCardEndTime,businessLicense,countId,countStartTime,countEndTime,businessScope,registerAddressDetail}=this.shopInfo;
if(idCardPhoto&&idCardName&&idCardNumber&&idCardStartTime&&idCardEndTime&&businessLicense&&countId&&countStartTime&&countEndTime&&registerAddressDetail){
let {idCardPhoto,idCardName,idCardNumber,idCardStartTime,registerAddress,idCardEndTime,businessLicense,countId,countStartTime,countEndTime,businessScope,registerAddressDetail}=this.shopInfo;
if(idCardPhoto&&idCardName&&idCardNumber&&idCardStartTime&&registerAddress&&idCardEndTime&&businessLicense&&countId&&countStartTime&&countEndTime&&registerAddressDetail){
let idcard={
image1:idCardPhoto[0],
image2:idCardPhoto[1],
@ -447,6 +464,7 @@
biz.number=countId;
biz.start=countStartTime;
biz.end=countEndTime;
biz.cityInfo=registerAddress
biz.address=registerAddressDetail;
biz.businessScope=businessScope;
data2.idcard=idcard;
@ -525,7 +543,11 @@
uploadpic: function(item) {
let that = this;
console.log(item);
that.$util.uploadImageOne('upload/image', function(res) {
let params = {
url:'upload/image',
name:'file'
}
that.$util.uploadImageOne(params, function(res) {
item.push(res.data.path);
});
},
@ -594,7 +616,7 @@
}
.item-name{
width: 340rpx;
min-height: 72rpx;
// min-height: 72rpx;
}
.uni-list-cell {
position: relative;

View File

@ -73,36 +73,36 @@
</view>
</view>
<view class="item">
<view class="acea-row row-middle">
<text class="item-name required" >银行名称</text>
<input type="text" style="text-align: right;flex:1;" maxlength="30" placeholder="请输入" v-model="shopInfo.bankName" @input="validateBtn" placeholder-class='placeholder' />
</view>
<view class="acea-row row-middle">
<text class="tips-text" >提示请核验信息是否正确</text>
</view>
</view>
<view class="item">
<view class="acea-row row-middle">
<text class="item-name required" >支行名称</text>
<input type="text" style="text-align: right;flex:1;" maxlength="30" @mousedown="searchBranch" placeholder="请输入" v-model="shopInfo.bankBranchName" @input="validateBtn" placeholder-class='placeholder' />
<view>
<view class="item-name required" style="width: 220rpx;margin-bottom: 20rpx;">支行名称</view>
<!-- <input type="text" style="text-align: right;flex:1;" maxlength="30" @mousedown="searchBranch" placeholder="请输入" v-model="shopInfo.bankBranchName" @input="validateBtn" placeholder-class='placeholder' />
<view class="search-list" v-show="searchFlag">
<view class="search-tips" v-for="(item,index) in searchList" @click="selectSearch(item)">
<text>{{item.lname}}</text>
<text style="color: #999;font-size: 10px;">{{item.addr}}</text>
</view>
</view>
</view> -->
<superwei-combox :candidates="candidatesList" :isJSON="true" keyName="name_child" placeholder="请选择或输入"
v-model="shopInfo.bankBranchName" @input="bankInput" @select="bankSelect"></superwei-combox>
</view>
<view class="acea-row row-middle">
<text class="tips-text" >提示请填写完整的支行名称中国农业银行天津迎宾支行</text>
</view>
</view>
<view class="item">
<view class="acea-row row-middle">
<text class="item-name required" >银行名称</text>
<input :disabled="true" type="text" style="text-align: right;flex:1;" maxlength="30" placeholder="请输入" v-model="shopInfo.bankName" @input="validateBtn" placeholder-class='placeholder' />
</view>
<view class="acea-row row-middle">
<text class="tips-text" >提示请核验信息是否正确</text>
</view>
</view>
<view class="item">
<view class="acea-row row-middle">
<text class="item-name required" >联行号</text>
<input type="text" style="text-align: right;flex:1;" maxlength="30" placeholder="请输入" v-model="shopInfo.CNAPS" @input="validateBtn" placeholder-class='placeholder' />
<input :disabled="true" type="text" style="text-align: right;flex:1;" maxlength="30" placeholder="请输入" v-model="shopInfo.CNAPS" @input="validateBtn" placeholder-class='placeholder' />
</view>
<view class="acea-row row-middle">
<text class="tips-text" >提示请核验信息是否正确</text>
@ -134,6 +134,9 @@
@submit="OnChangeAddress" @changeClose="changeClose" :cityShow="1"></areaWindow>
<areaWindow ref="areaWindow2" :display="display2" :address="[]"
@submit="OnChangeAddress2" @changeClose="changeClose2" :cityShow="1"></areaWindow>
<view class='loadingicon acea-row row-center-wrapper' v-if="loading">
<text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>
</view>
</view>
<view class="settledSuccessMain" v-else :style="viewColor">
<view class="settledSuccessful">
@ -153,12 +156,13 @@
import { toLogin } from '@/libs/login.js';
import {queryBankCard,queryCNAPS,getAgreementApi} from '@/api/user.js';
import { configMap,throttle } from "@/utils";
import {updateGoodsRecord,create,getGoodsDetails} from '@/api/store.js';
import {updateGoodsRecord,create,getGoodsDetails,getIntentionBank} from '@/api/store.js';
import superweiCombox from '../component/superwei-combox.vue'
const app = getApp();
export default {
components: {
areaWindow,
superweiCombox
},
data() {
return {
@ -186,6 +190,7 @@
tagStyle: {
img: 'width:100%;display:block;'
},
candidatesList:[],
dataInfo:{},
mer_i_id:'',
loading:false,
@ -226,6 +231,17 @@
},
},
methods: {
bankInput(e) {
getIntentionBank({name:e}).then((res)=>{
this.candidatesList = res.data
console.log(res.data);
})
},
bankSelect(e) {
this.shopInfo.bankName = e.name
this.shopInfo.CNAPS = e.code
this.validateBtn()
},
goHome(){
uni.navigateTo({
url:'/pages/store/settled/index'
@ -371,7 +387,11 @@
*/
uploadpic(item) {
let that = this;
that.$util.uploadImageOne('upload/image', function(res) {
let params = {
url:'upload/image',
name:'file'
}
that.$util.uploadImageOne(params, function(res) {
item.push(res.data.path);
// that.$set(that, 'pics', that.pics);
});

View File

@ -11,13 +11,13 @@
<input placeholder='搜索店铺名称' placeholder-class='placeholder' confirm-type='search' name="search" :value='sotreParam.keyword'
@confirm="searchSubmit"></input>
</view>
<view v-if="mer_location == 1" :class="'styleType'+store_street_theme" style="text-align: right;" class='iconfont search-right' @click='showMaoLocation(latitude,longitude)'>
<!-- <view v-if="mer_location == 1" :class="'styleType'+store_street_theme" style="text-align: right;" class='iconfont search-right' @click='showMaoLocation(latitude,longitude)'>
<view class="iconfont icon-dingwei"></view>
<view class="right-text" v-if="recommend_address">
{{recommend_address}}
</view>
<view class="iconfont icon-xiangyou" v-if="recommend_address"></view>
</view>
</view> -->
</view>
<view class="nav-wrapper" :class="'styleType'+store_street_theme">
<view class='nav acea-row row-middle' :class="'styleType'+store_street_theme">
@ -227,12 +227,12 @@
title: '好评',
key: 2,
order: 'rate'
},
{
title: '距离',
key: 3,
order: 'location'
}
// {
// title: '',
// key: 3,
// order: 'location'
// }
],
//
firstKey: 0,
@ -266,7 +266,7 @@
this.sotreParam.type_id = options.type_id && options.type_id.split(',').toString() || ''
this.sotreParam.category_id= options.cate_id && options.cate_id.split(',').toString() || ''
this.storeList = [];
if(this.mer_location)this.selfLocation()
// if(this.mer_location)this.selfLocation()
setTimeout(()=>{
this.storeMerchantList();
},500)
@ -751,6 +751,10 @@
border: none!important;
border-radius: 0!important;
}
.txt {
// flex: 1;
max-width: 440rpx;
}
.mer-item {
margin-bottom: 20rpx;
background-color: #fff;
@ -784,9 +788,6 @@
border-radius: 50%;
margin-right: 10rpx;
}
.txt {
flex: 1;
}
}
}
/deep/.easy-loadimage{

View File

@ -84,10 +84,10 @@
<text class="num">{{userInfo.member_value || 0}}</text>
<view class="txt">成长值</view>
</view> -->
<view class="num-item" >
<!-- <view class="num-item" >
<text class="num">{{userInfo.member_value || 0}}</text>
<view class="txt">累积成长值</view>
</view>
</view> -->
</view>
<view @click="goSvip" class="cardVipA acea-row row-between-wrapper" v-if="svip_switch_status == 1">
<image class="svip_user" :src="`${domain}/static/images/svip_user.png`"></image>
@ -106,7 +106,7 @@
<view class="iconfont icon-xiaoxi"></view>
<text class="iconnum" v-if="userInfo.total_unread">{{userInfo.total_unread}}</text>
</view>
<view class="iconfont icon-saoma" @tap='handleBorcode'></view>
<!-- <view class="iconfont icon-saoma" @tap='handleBorcode'></view> -->
</view>
</view>
</view>

View File

@ -10,7 +10,7 @@
<view class='name line1'>{{product.cart_info.product.store_name}}</view>
<view class="sku">{{product.cart_info.productAttr.sku}}</view>
<view class='money'>
<view v-if="orderInfo.activity_type == 20">{{product.cart_info.productAttr.ot_price}}个积分 <block v-if="product.cart_info.productAttr.price>0">+{{product.cart_info.productAttr.price}}</block></view>
<view v-if="orderInfo.activity_type == 20">{{product.cart_info.productAttr.ot_price}}个铸源星 <block v-if="product.cart_info.productAttr.price>0">+{{product.cart_info.productAttr.price}}</block></view>
<view v-else>{{product.product_price}}</view>
</view>
</view>

View File

@ -53,12 +53,11 @@
<div class="protocol acea-row row-between-wrapper">
<checkbox-group class="checkgroup" @change='isAgree=!isAgree'>
<checkbox class="checkbox" :checked="isAgree ? true : false" />
<text class="protocol_text">我已同意<text @click="userPrivacyAgree" class="font_pro">隐私政策</text></text>
<!-- <text class="protocol_text">我已同意<text @click="userAgree" class="font_pro">用户协议</text><text @click="userPrivacyAgree" class="font_pro">隐私政策</text></text> -->
<text class="protocol_text">我已同意<text @click="userAgree" class="font_pro">用户协议</text><text @click="userPrivacyAgree" class="font_pro">隐私政策</text></text>
</checkbox-group>
</div>
<!-- #ifdef APP-PLUS -->
<view class="appLogin" v-if="wechat_phone_switch == 1 || appleShow">
<!-- <view class="appLogin" v-if="wechat_phone_switch == 1 || appleShow">
<view class="hds">
<span class="line"></span>
<p>其他方式登录</p>
@ -72,7 +71,7 @@
<span class="iconfont icon-s-pingguo"></span>
</view>
</view>
</view>
</view> -->
<!-- #endif -->
</div>
<div class="whiteBg" v-else>
@ -109,7 +108,7 @@
</checkbox-group>
</div>
<!-- #ifdef APP-PLUS -->
<view class="appLogin" v-if="!appLoginStatus && !appleLoginStatus">
<!-- <view class="appLogin" v-if="!appLoginStatus && !appleLoginStatus">
<view class="hds">
<span class="line"></span>
<p>其他方式登录</p>
@ -123,7 +122,7 @@
<span class="iconfont icon-s-pingguo"></span>
</view>
</view>
</view>
</view> -->
<!-- #endif -->
</div>
<div class="bottom"></div>

View File

@ -141,7 +141,7 @@
</view>
<view class='discount' v-else>免运费</view>
</view>
<view class='item acea-row row-between-wrapper'
<!-- <view class='item acea-row row-between-wrapper'
v-if="order_type != 3 && order_type != 4 && item.order.enabledCoupon">
<view>店铺优惠券</view>
<block v-if="item.coupon.length>0">
@ -154,14 +154,14 @@
<block v-else>
<view class='discount'>暂无优惠券</view>
</block>
</view>
<view v-if="item.openReceipt == 1" class='item acea-row row-between-wrapper'>
</view> -->
<!-- <view v-if="item.openReceipt == 1" class='item acea-row row-between-wrapper'>
<view>开具发票 <text @tap="showInvoice" class="iconfont icon-wenhao1"></text></view>
<view class='discount discount_voice' @tap="goInvoice(item.mer_id)">
{{(item.invoiceData && item.invoiceData.receipt_title) ? item.invoiceData.receipt_title : '不开发票'}}
<text class='iconfont icon-jiantou'></text>
</view>
</view>
</view>-->
<view v-if="order_type === 2 && item.list[0].productPresell.presell_type ==2"
class="item acea-row row-between-wrapper"
style="border-top: 1px solid #f5f5f5; border-bottom: 1px solid #f5f5f5;">
@ -402,18 +402,30 @@
<view class='money'>-{{coupon_price}}</view>
</view>
<view class='item acea-row row-between-wrapper' v-if="open_integral && userInfo.integral>0 && order_type == 0">
<view>积分抵扣</view>
<view>铸源星抵扣</view>
<view class='money'>
<text v-if="!use_integral">当前积分<text class="pColor">{{userInfo.integral}}</text></text>
<text v-else>使用了{{integral_count}}积分抵扣<text
<text v-if="!use_integral">当前铸源星<text class="pColor">{{userInfo.integral}}</text></text>
<text v-else>使用了{{integral_count}}铸源星抵扣<text
class="pColor">{{integral_price}}</text></text>
<view class="checkbox integral_checked" @click="changeIntegral">
<view class="checkbox integral_checked" @click="changeIntegral('use')">
<view class="iconfont icon-weixuanzhong" v-if="!use_integral"></view>
<view class='iconfont icon-xuanzhong1' v-else></view>
</view>
</view>
</view>
<view class='item acea-row row-between-wrapper'
<view class='item acea-row row-between-wrapper' v-if="open_money">
<view>抵扣券抵扣</view>
<view class='money'>
<text v-if="!now_integral">当前抵扣券<text class="pColor">{{userInfo.now_money}}</text></text>
<text v-else>使用了{{use_count}}个抵扣券抵扣<text
class="pColor">{{use_amount}}</text></text>
<view class="checkbox integral_checked" @click="changeIntegral('now')">
<view class="iconfont icon-weixuanzhong" v-if="!now_integral"></view>
<view class='iconfont icon-xuanzhong1' v-else></view>
</view>
</view>
</view>
<!-- <view class='item acea-row row-between-wrapper'
v-if="order_type != 3 && order_type != 4 && enabledPlatformCoupon">
<view>平台优惠券<text @tap="showCoupon" class="iconfont icon-wenhao1"></text></view>
<block v-if="platformCoupon.length > 0">
@ -426,7 +438,7 @@
<block v-else>
<view class='discount'>暂无优惠券</view>
</block>
</view>
</view> -->
<view class='item acea-row row-between-wrapper' v-if="priceGroup.storePostage > 0">
<view>运费</view>
<view class='money'>+{{priceGroup.storePostage}}</view>
@ -437,7 +449,7 @@
<view class="footer_count">
<view>
合计:
<text class='pColor' v-if="payType=='integral'">扣除积分{{totalPrice*userInfo.integral_cash_time}}</text>
<text class='pColor' v-if="payType=='integral'">扣除铸源星{{totalPrice*userInfo.integral_cash_time}}</text>
<text class='pColor' v-else>{{totalPrice || 0}}</text>
</view>
<view class="coupon_price" v-if="couponData.total_coupon > 0">
@ -542,7 +554,7 @@
"icon": "icon-weixin2",
value: 'weixin',
title: '微信快捷支付',
payStatus: 1,
payStatus: 2,
},
{
name: "支付宝支付",
@ -564,10 +576,38 @@
payStatus: this.$store.getters.globalData.yue_pay_status,
},
{
"name": "积分兑付",
"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,
},
{
"name": "支付宝支付",
"icon": "icon-icon34",
value: 'hf',
title: '支付宝支付',
payStatus: this.$store.getters.globalData.hf_alipay_open,
},
{
"name": "银联扫码",
"icon": "icon-icon-test",
value: 'sandQr',
title: '银联扫码',
payStatus: this.$store.getters.globalData.sand_qr_open,
},
{
"name": "铸源星支付",
"icon": "haiyuefont haiyue-jifenduihuan",
value: 'integral',
title: '可用积分:',
title: '可用铸源星:',
payStatus: this.$store.getters.globalData.integration_pay_open,
},
{
@ -599,7 +639,7 @@
check:false
}
],
payType: 'weixin', //
payType: '', //
openType: 1, // 1=使
active: 0, //
coupon: {
@ -627,8 +667,9 @@
mark: '', //
couponTitle: '请选择', //
coupon_price: 0, //
useIntegral: false, //使
integral_price: 0, //
useIntegral: false, //使
integral_price: 0, //
use_amount: 0, //
integral: 0,
status: 0,
is_address: false,
@ -640,6 +681,7 @@
animated: false,
totalPrice: 0,
use_integral: false,
now_integral: true,
pagesUrl: "",
orderKey: "",
offlinePostage: "",
@ -663,12 +705,14 @@
orderPay: false,
take: [],
open_integral: 0,
open_money: false,
coupon_number: 0,
store_coupon_number: 0,
coupon_amount: 0,
store_coupon_amount: 0,
plant_coupon_amount: 0,
integral_count: '',
use_count: '',
agrementTtile: '发票说明',
pics: [],
order_model: 2,
@ -697,7 +741,7 @@
};
},
computed: {
...mapGetters(['isLogin','viewColor']),
...mapGetters(['isLogin','viewColor','globalData']),
...configMap(['hide_mer_status', 'alipay_open', 'yue_pay_status']),
},
watch: {
@ -793,7 +837,14 @@
this.isAgree = !this.isAgree;
},
changeIntegral: function(e) {
this.use_integral = !this.use_integral;
console.log(e);
if(e=='use'){
this.use_integral = !this.use_integral;
this.now_integral = false
}else{
this.now_integral = !this.now_integral;
this.use_integral = false
}
this.getConfirm(this.addressId);
},
showPresellAgree(){
@ -1065,7 +1116,8 @@
address_id: address_id,
takes: that.take,
use_coupon: that.subCoupon,
use_integral: that.use_integral
use_integral: that.use_integral,
use_amount:that.now_integral
}).then(res => {
//
that.is_take = false
@ -1102,8 +1154,11 @@
that.$set(that, 'order_type', res.data.order_type);
that.$set(that, 'coupon_price', res.data.order_coupon_price);
that.$set(that, 'integral_count', res.data.order_total_integral);
that.$set(that, 'use_count', res.data.order_total_amount);
that.$set(that, 'integral_price', res.data.order_total_integral_price);
that.$set(that, 'use_amount', res.data.order_total_amount_price);
that.$set(that, 'open_integral', res.data.openIntegral);
that.$set(that, 'open_money', res.data.openMoney);
that.$set(that, 'use_integral', res.data.useIntegral);
that.$set(that, 'order_extend', (that.order_extend && that.order_extend.length>0) ? that.order_extend : res.data.order_extend);
if(res.data.mer_form_id && !that.order_form.length && res.data.mer_form_info && res.data.mer_form_info.value){
@ -1231,6 +1286,7 @@
that.active = active;
that.animated = true;
that.payType = that.cartArr[active].value;
console.log(that.payType);
if (that.payType == 'weixin') {
that.payType = that.from
}
@ -1285,14 +1341,15 @@
data.balance_vert=1;
this.payInfo=data;
}
console.log(data)
createOrder(data).then(res => {
let status = res.data.status,
orderId = res.data.result.order_id,
callback_key = res.data.result.pay_key,
jsConfig = res.data.result.config,
goPages = '/pages/order_pay_status/index?order_id=' + orderId + '&msg=' + res.message;
that.orderPay = true;
that.orderPay = true;
console.log(status)
uni.hideLoading();
switch (status) {
case 'ORDER_EXIST':
@ -1467,8 +1524,37 @@
location.href = locations;
}, 100);
break;
case 'sandCard':
case 'sand':
case 'hf':
case 'sandQr':
setTimeout(() => {
location.href = jsConfig;
}, 100);
break;
// case 'sandCard':
// setTimeout(() => {
// location.href = jsConfig;
// }, 100);
// break;
// #endif
// #ifdef APP-PLUS
case 'sand':
case 'sandCard':
case 'hf':
case 'sandQr':
if (plus.os.name === 'iOS') {
plus.runtime.openURL(jsConfig);
} else if (plus.os.name === 'Android') {
plus.runtime.openURL(jsConfig);
}
break;
// if (plus.os.name === 'iOS') {
// plus.runtime.openURL(jsConfig);
// } else if (plus.os.name === 'Android') {
// plus.runtime.openURL(jsConfig);
// }
break;
case 'alipayApp':
uni.requestPayment({
provider: 'alipay',
@ -1681,6 +1767,7 @@
key: this.order_key,
takes: this.take,
use_integral: this.use_integral,
use_amount:this.now_integral,
receipt_data: this.invoiceData,
extend: this.extend,
post: this.post,

View File

@ -297,7 +297,7 @@
icon: "icon-weixinzhifu",
value: 'wechat',
title: '微信快捷支付',
payStatus: 1
payStatus: 2
},
{
name: "支付宝支付",
@ -315,13 +315,41 @@
payStatus: this.$store.getters.globalData.yue_pay_status
},
{
name: "积分兑付",
name: "铸源星抵扣",
icon: "haiyuefont haiyue-jifenduihuan",
value: 'integral',
title: '可用积分:',
title: '可用铸源星:',
number: 0,
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,
},
{
"name": "支付宝支付",
"icon": "icon-zhifubao",
value: 'hf',
title: '支付宝支付',
payStatus: this.$store.getters.globalData.hf_alipay_open,
},
{
"name": "银联扫码",
"icon": "icon-icon-test",
value: 'sandQr',
title: '银联扫码',
payStatus: this.$store.getters.globalData.sand_qr_open,
}
],
pay_close: false,
pay_order_id: '',

View File

@ -13,7 +13,7 @@
<input type="text" v-model="number" placeholder="请输入身份证号码"/>
</view>
</view>
<view class="title">
<!-- <view class="title">
证件
</view>
<view class="photo-items">
@ -57,7 +57,7 @@
</view>
</view>
</view>
</view> -->
<view class="btn" @click="submitReal">
提交认证
</view>
@ -75,8 +75,12 @@
number:'',
image1:[],
image2:[],
type:''
}
},
onLoad(e) {
this.type = e.type
},
methods:{
async submitReal(){
let data1={
@ -87,17 +91,26 @@
}
await userReal(data1).then((res)=>{
uni.showToast({
icon:'success',
title: res
});
uni.redirectTo({
url: '/pages/user/index',
success: res => {},
fail: () => {},
complete: () => {}
icon:'none',
title: res.message
});
console.log(this.type);
if(this.type == 'edit'){
setTimeout(()=>{
uni.navigateBack({
delta: 1
});
},1000)
}else{
setTimeout(()=>{
uni.switchTab({
url: '/pages/user/index'
});
},1000)
}
}).catch((err)=>{
console.log(this.type);
uni.showToast({
icon:'none',
title: err
@ -275,7 +288,7 @@
border-radius: 60rpx;
// background-color: red;
color: white;
font-size: 48rpx;
font-size: 32rpx;
text-align: center;
line-height: 100rpx;
display: flex;

View File

@ -27,7 +27,7 @@
</view>
<view class="form-item item-txt">
<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 class="form-item item-txt">
<text class="label">退款原因</text>
@ -61,6 +61,9 @@
</view>
</view>
</view>
<view class="mack_desc" v-if="refund_type==2">
提示: 请5天内上传退货单号超期此单则无法申请退款
</view>
<view class="btn-box" @click="bindComfirm">申请退款</view>
<alertBox :msg="msg" v-if="isShowBox" @bindClose="bindClose"></alertBox>
</view>
@ -203,6 +206,12 @@
},
//
async bindComfirm(){
if(!this.con){
return uni.showToast({
title:'申请退款必须填写备注说明',
icon:'none'
})
}
try {
const data = await refundApply(this.order_id,{
type:this.type,
@ -236,6 +245,12 @@
</script>
<style lang="scss">
.mack_desc{
color: red;
background: #fff;
padding: 20rpx;
margin-top: 20rpx;
}
.refund-wrapper{
.item{
position: relative;
@ -391,7 +406,7 @@
.btn-box{
width:690rpx;
height:86rpx;
margin: 70rpx auto;
margin: 50rpx auto;
line-height: 86rpx;
text-align: center;
color: #fff;

View File

@ -84,7 +84,25 @@
</view>
</view>
<view class="item">
<view class="label">退款金额</view>
<view class="label">退货金额</view>
<view class="txt flex">
<text>¥ {{detail.refund_price-detail.refund_postage}}</text>
</view>
</view>
<view class="item">
<view class="label">退抵扣券</view>
<view class="txt flex">
<text>¥ {{detail.amount}}</text>
</view>
</view>
<view class="item">
<view class="label">退运费金额</view>
<view class="txt flex">
<text>¥ {{detail.refund_postage}}</text>
</view>
</view>
<view class="item">
<view class="label">退款总金额</view>
<view class="txt flex">
<text>¥ {{detail.refund_price}}</text>
</view>

View File

@ -1,15 +1,16 @@
<template>
<view class="user_about" :style="viewColor">
<view>
<view class="text cancelTxt" :class="{cancelTxt: type == 'the_cancellation_msg'}">
<jyf-parser :html="data.replace(/<br\/>/ig, '')" ref="article" :tag-style="tagStyle"></jyf-parser>
<view style="margin-bottom: 148rpx;" class="text cancelTxt" :class="{cancelTxt: type == 'the_cancellation_msg'}">
<jyf-parser :previewImg="false" :html="data.replace(/<br\/>/ig, '')" ref="article" :tag-style="tagStyle"></jyf-parser>
</view>
</view>
<view class="cancel" v-if="type == 'the_cancellation_msg' && loaded">
<view class="checkbox" @click="setCheck">
<view v-if="!check" class="iconfont icon-weixuanzhong"></view>
<view v-else class="iconfont icon-xuanzhong1"></view>
<view>已阅读并同意<text class="font" @click.stop="toCancel">重要提醒</text></view>
<!-- <view>已阅读并同意<text class="font" @click.stop="toCancel">重要提醒</text></view> -->
<view>已阅读并同意</view>
</view>
<view class="btn" @click="cancelBtn">
申请注销
@ -140,6 +141,12 @@
})
this.getCacheinfo()
break;
case 'sys_user_sign_msg':
uni.setNavigationBarTitle({
title: '签到说明'
})
this.getCacheinfo()
break;
case 'sys_about_us':
uni.setNavigationBarTitle({
title: '关于我们'

View File

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

View File

@ -4,7 +4,7 @@
<view class='nav acea-row'>
<view class='item' :class='type==0 ? "on":""' @click='changeType(0)'>全部</view>
<view class='item' :class='type==1 ? "on":""' @click='changeType(1)'>消费</view>
<view class='item' :class='type==2 ? "on":""' @click='changeType(2)'>充值</view>
<!-- <view class='item' :class='type==2 ? "on":""' @click='changeType(2)'>充值</view> -->
</view>
<view class='sign-record'>
<view class='list' v-for="(item,index) in userBillList" :key="index">

View File

@ -21,7 +21,7 @@
</view>
</view>
</view>
<view v-if="next_level" class="card-wrapper" :style="'background-image: url('+brokerage_bg+')'">
<!-- <view v-if="next_level" class="card-wrapper" :style="'background-image: url('+brokerage_bg+')'">
<view class="growth">
<view class="info">今日获得成长值{{growthValue}}</view>
</view>
@ -33,7 +33,7 @@
</view>
<view class="progress"><text class="current_value" :style="'width:'+curPercent+'%'"></text></view>
</view>
</view>
</view> -->
</view>
<view class="grade_main">
<view v-if="gradeList.length > 0" class="grade_privilege">
@ -62,12 +62,12 @@
<view class="upgrade-svip acea-row">
<view class="svip-view acea-row">
<image src="../static/images/upgrade_icon.png"></image>
<text>{{userInfo.is_svip > 0 && svip_switch_status == 1 ? 'SVIP 会员中心,惊喜多多!' : '升级成为SVIP成长值奖励可翻倍哦'}}</text>
<!-- <text>{{userInfo.is_svip > 0 && svip_switch_status == 1 ? 'SVIP 会员中心,惊喜多多!' : '升级成为SVIP成长值奖励可翻倍哦'}}</text> -->
</view>
<navigator v-if="userInfo.is_svip > 0 && svip_switch_status == 1" url="/pages/annex/vip_center/index" class="svip-btn" hover-class="none">去看看<text class="iconfont icon-jinru2"></text></navigator>
<navigator v-else url="/pages/annex/vip_paid/index" class="svip-btn" hover-class="none">立即开通<text class="iconfont icon-jinru2"></text></navigator>
</view>
<view class="upgrade-main">
<!-- <view class="upgrade-main">
<view class="item acea-row row-between-wrapper">
<view class="item-icon"><text class="iconfont icon-qiandao"></text></view>
<view>
@ -117,7 +117,7 @@
</view>
<navigator class="get_btn" hover-class='none' url='/pages/plantGrass/plant_release/index'>去完成</navigator>
</view>
</view>
</view> -->
</view>
</view>
<view class='hotList'>

View File

@ -66,14 +66,15 @@
点击实名认证<text class="iconfont icon-xiangyou"></text>
</navigator>
<view class='input acea-row row-between-wrapper' v-else>
<input type='text' value='已实名' disabled='true' class='id'></input>
<input style="width: 500rpx;" type='text' :value='userInfo.real_name+" | "+userInfo.card_id' disabled='true' class='id'></input>
<text class='iconfont icon-suozi'></text>
</view>
</view>
<view class='item acea-row row-between-wrapper'>
<view>ID号</view>
<view>抵扣券余额</view>
<view class='input acea-row row-between-wrapper'>
<input type='text' :value='userInfo.uid' disabled='true' class='id'></input>
<input type='text' :value='userInfo.now_money' disabled='true' class='id'></input>
<text class='iconfont icon-suozi'></text>
</view>
</view>

View File

@ -29,9 +29,16 @@
</view>
</view>
<view class='item acea-row row-between-wrapper'>
<view>ID号</view>
<view>姓名</view>
<view class='input acea-row row-between-wrapper'>
<input type='text' :value='userInfo.uid' disabled='true' class='id'></input>
<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>身份证</view>
<view class='input acea-row row-between-wrapper'>
<input type='text' :value='userInfo.card_id' disabled='true' class='id'></input>
<text class='iconfont icon-suozi'></text>
</view>
</view>
@ -78,7 +85,7 @@
</view>
</view>
</view>
<button class='modifyBnt' formType="submit">保存修改</button>
<button class='modifyBnt' formType="submit">退出</button>
</view>
</form>
<canvas canvas-id="canvas" v-if="canvasStatus"
@ -163,96 +170,104 @@
* 提交修改
*/
formSubmit: function(e) {
let that = this,
value = e.detail.value;
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 || '保存失败,您并没有修改'
});
this.$util.Tips({
title: '退出中...'
});
setTimeout(()=>{
uni.switchTab({
url: '/pages/user/index'
})
},500)
// let that = this,
// value = e.detail.value;
// 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

@ -2,13 +2,13 @@
<view :style="viewColor">
<view class='integral-details'>
<view class='header'>
<view class='currentScore'>当前积分 <text @click="showProtocol=true" class="iconfont wenhao">?</text></view>
<view class='currentScore'>当前铸源星 <text @click="showProtocol=true" class="iconfont wenhao">?</text></view>
<view class="scoreNum">{{userInfo.integral ? userInfo.integral : 0}}</view>
<view class='line'></view>
<view class='nav acea-row'>
<view class='item'>
<view class='num'>{{userInfo.totalGainIntegral || 0}}</view>
<view>累计积分</view>
<view>累计铸源星</view>
</view>
<view class='item'>
<view class='num'>{{userInfo.deductionIntegral || 0}}</view>
@ -16,7 +16,7 @@
</view>
<view class='item'>
<view class='num'>{{userInfo.lockIntegral || 0}}</view>
<view>冻结积分</view>
<view>冻结铸源星</view>
</view>
</view>
</view>
@ -27,7 +27,7 @@
</view>
<view class='list' :hidden='current != 0' v-if="current == 0" >
<view class='tip' v-if="userInfo.clear && userInfo.clear.status && userInfo.clear.nextClearIntegral > 0"><text class='iconfont icon-shuoming'></text>
<text class="tip-text">提示您有部分积分将于{{userInfo.clear.nextClearDay}}过期请尽快使用</text>
<text class="tip-text">提示您有部分铸源星将于{{userInfo.clear.nextClearDay}}过期请尽快使用</text>
</view>
<view class='item acea-row row-between-wrapper' v-for="(item,index) in integralList" :key="index">
<view>
@ -41,7 +41,7 @@
<text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>{{loadTitle}}
</view>
<view v-if="integralList.length == 0">
<emptyPage title="暂无积分记录哦~"></emptyPage>
<emptyPage title="暂无铸源星记录哦~"></emptyPage>
</view>
</view>
<view v-else class='list2' :hidden='current==0'>
@ -58,8 +58,8 @@
<input type="text" placeholder="请输入身份证" v-model="presentExp.card_id"/>
</view>
<view class="list-item">
<text>积分</text>
<input type="number" placeholder="请输入积分" v-model="presentExp.integral"/>
<text>铸源星</text>
<input type="number" placeholder="请输入铸源星" v-model="presentExp.integral"/>
</view>
<view class="list-btn" @click="giveaway">
确认赠送
@ -70,7 +70,7 @@
<view class="instructions" v-if="showProtocol">
<view class="setAgCount">
<i class="icon iconfont icon-cha" @click="showProtocol = false"></i>
<div class="title">积分说明</div>
<div class="title">铸源星说明</div>
<view class="content">
<jyf-parser :html="protocol" ref="article" :tag-style="tagStyle"></jyf-parser>
</view>
@ -105,7 +105,7 @@
'status':1,
},
{
'name': '积分赠送',
'name': '铸源星赠送',
'icon': 'icon-tishengfenzhi',
'status':this.$store.getters.globalData.integral_give_status,
}
@ -184,7 +184,7 @@
if(integral<=0){
uni.showToast({
icon:'none',
title: '积分数量必须大于0',
title: '铸源星数量必须大于0',
});
return
}
@ -228,7 +228,7 @@
});
});
},
/*获取积分说明*/
/*获取铸源星说明*/
getAgreement() {
let that = this
getAgreementApi('sys_integral_rule').then(res => {
@ -236,7 +236,7 @@
})
},
/**
* 获取积分明细
* 获取铸源星明细
*/
getIntegralList: function() {
let that = this;

View File

@ -81,7 +81,7 @@
<view class='conter'>{{orderInfo.coupon_price}}</view>
</view>
<view v-if="orderInfo.integral_price > 0" class='item acea-row row-between'>
<view>积分抵扣</view>
<view>铸源星抵扣</view>
<view class='conter'>{{orderInfo.integral_price}}</view>
</view>
<view class='item acea-row row-between'>

View File

@ -11,8 +11,8 @@
<view class="title">
恭喜你获得 {{wheel}} 次抽奖机会
</view>
<LuckyWheel ref="myLucky" width="600rpx" height="600rpx" :blocks="blocks" :prizes="prizes"
:buttons="buttons" :defaultStyle="defaultStyle" @start="startCallBack" @end="endCallBack" :defaultConfig="defaultConfig" />
<!-- <LuckyWheel ref="myLucky" width="600rpx" height="600rpx" :blocks="blocks" :prizes="prizes"
:buttons="buttons" :defaultStyle="defaultStyle" @start="startCallBack" @end="endCallBack" :defaultConfig="defaultConfig" /> -->
</view>
<view class="lucky-draw-info">
<view class="title">
@ -44,11 +44,11 @@
<script>
import {getWhellNumber,getWhellConfig,getWhellAction,getWhellList} from '@/api/user.js'
import LuckyWheel from 'uni-luck-draw/lucky-wheel'
// import LuckyWheel from 'uni-luck-draw/lucky-wheel'
export default {
components: {
LuckyWheel
},
// components: {
// LuckyWheel
// },
data() {
return {
wheel:0,

View File

@ -4,50 +4,38 @@
<view class='wrapper'>
<view class='header'>
<view class='headerCon'>
<view class='account acea-row row-top row-between'>
<view class='assets'>
<view>总资产()</view>
<view class='money'>{{userInfo.now_money || 0}}</view>
</view>
<!-- #ifdef APP-PLUS || H5 -->
<navigator v-if="recharge_switch == 1" url="/pages/users/user_payment/index" hover-class="none" class='recharge t-color'>充值</navigator>
<!-- #endif -->
<!-- #ifdef MP -->
<view v-if="recharge_switch == 1" @click="openSubscribe('/pages/users/user_payment/index')" class='recharge t-color'>充值</view>
<!-- #endif -->
</view>
<view class='cumulative acea-row row-top'>
<!-- v-if="balance_func_status == 1" -->
<view class='item' >
<!-- <view class='item' >
<view>累计充值()</view>
<view class='money'>{{userInfo.total_recharge || 0}}</view>
</view>
</view> -->
<view class='item'>
<view>累计消费()</view>
<view class='money'>{{userInfo.total_consume || 0}}</view>
<view>累计使用抵扣()</view>
<view class='money'>{{Math.abs(userInfo.now_money) || 0}}</view>
</view>
</view>
</view>
</view>
<view class='nav acea-row row-middle'>
<navigator class='item' hover-class='none' url='/pages/users/user_bill/index'>
<!-- <navigator class='item' hover-class='none' url='/pages/users/user_bill/index'>
<view class='pictrue'>
<image :src="domain+'/static/diy/record1'+keyColor+'.png'"></image>
</view>
<view>账单记录</view>
</navigator>
</navigator> -->
<navigator class='item' hover-class='none' url='/pages/users/user_bill/index?type=1'>
<view class='pictrue'>
<image :src="domain+'/static/diy/record2'+keyColor+'.png'"></image>
</view>
<view>消费记录</view>
<view>抵扣记录</view>
</navigator>
<navigator class='item' hover-class='none' url='/pages/users/user_bill/index?type=2'>
<!-- <navigator class='item' hover-class='none' url='/pages/users/user_bill/index?type=2'>
<view class='pictrue'>
<image :src="domain+'/static/diy/record3'+keyColor+'.png'"></image>
</view>
<view>充值记录</view>
</navigator>
</navigator> -->
</view>
</view>
<recommend v-if="recommend_switch == 1" :hostProduct="hostProduct" :isLogin="isLogin"></recommend>
@ -149,7 +137,7 @@
}
.my-account .wrapper .header {
width: 690rpx;
height: 330rpx;
height: 220rpx;
background-image: linear-gradient(to right, var(--view-bntColor21) 0%, var(--view-bntColor22) 100%);
border-radius: 16rpx;
margin: 0 auto;

View File

@ -7,24 +7,32 @@
<view class='pictrue'><image :src='userInfo.avatar ? userInfo.avatar : "/static/images/f.png"'></image></view>
<view class='text'>
<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>
<navigator class='right acea-row row-middle' hover-class='none' url='/pages/users/user_sgin_list/index'>
<view class='iconfont icon-caidan'></view>
<view></view>
<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></view>
</navigator>
</view>
</view>
<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='item' v-for="(item,index) in signConfig" :key="index">
<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>
</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>
<button class='but b-color' :class="disabled ? 'disabled' : ''" formType="submit">立即签到</button>
</form>
@ -39,20 +47,32 @@
<view class='item'>{{signCount[3] || 0}}</view>
<view class='data'></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='item acea-row' v-for="(item,index) in signList" :key="index">
<view>
<view class='name line1'>{{item.title}}</view>
<view class='data'>{{item.create_time}}</view>
</view>
<view class='num'>+{{item.number}}</view>
<view class='num' v-if="item.type==1">+{{item.number}}</view>
</view>
<view class='loading' @click='goSignList' v-if="signList.length >= 3">点击加载更多<text class='iconfont icon-xiangyou'></text></view>
</view>
</view>
<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='signTipLight loadingpic'></view>
<view class='signTipCon' :style="'background-image: url('+domain+'/static/diy/signSuccess'+keyColor+'.png)'">
@ -69,13 +89,13 @@
<script>
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 { toLogin } from '@/libs/login.js';
import treasureBox from '@/components/treasureBox/index.vue';
import blindBox from '@/components/blindBox/blindBox.vue';
export default {
components: {treasureBox},
components: {treasureBox,blindBox},
data() {
return {
domain: HTTP_REQUEST_URL,
@ -89,29 +109,39 @@
day:0,
sign_index:0,
is_sign: false, //
is_open:false,
disabled: false,
treasureShow:false,
blindShow:false,
isBlind:true,
entityList:[],
winList:[]
};
},
computed: mapGetters(['isLogin','viewColor','keyColor']),
onLoad(){
if(this.isLogin){
this.getUserInfo();
this.getSignList();
}else{
toLogin()
}
// if(this.isLogin){
// this.getUserInfo();
// this.getSignList();
// }else{
// toLogin()
// }
},
onShow() {
if(this.isLogin){
this.getUserInfo();
this.getSignList();
this.signEntityLog()
}else{
toLogin()
}
},
methods: {
signEntityLog(){
signEntityLog().then((res)=>{
this.entityList = res.data
})
},
closeBox(){
this.treasureShow=false;
this.$router.go(0)
@ -126,6 +156,12 @@
goSignList:function(){
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;
that.$set(that,'signConfig',res.data.title);
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,'winList',res.data.entity);
that.signCount = that.PrefixInteger(sum_sgin_day, 4);
that.sign_index = res.data.sign_num;
});
@ -181,11 +219,11 @@
let that = this, sum_sgin_day = that.signConfig.sign_num;
if (that.userInfo.is_day_sgin) return this.$util.Tips({title:'您今日已签到!'});
that.disabled = true;
if(!that.userInfo.is_day_sgin&&that.sign_index==6){
that.blindShow=true;
}else{
// if(!that.userInfo.is_day_sgin&&that.sign_index==6){
// that.blindShow=true;
// }else{
that.treasureShow=true;
}
// }
// setSignIntegral().then(res=>{
// // that.active = true;
// that.integral = res.data.integral;
@ -199,11 +237,20 @@
// 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(){
this.active = false;
this.blindShow = false;
this.getSignList();
this.getUserInfo();
}
@ -212,6 +259,33 @@
</script>
<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 .headerCon{padding:0 0 0 30rpx;height:234rpx;}
.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 .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 .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 .wrapper{background-color:#fff;margin:-80rpx 20rpx 0 20rpx;border-radius:15rpx;padding-bottom:80rpx;position:relative;}
.sign .wrapper .list{padding:0 30rpx;height:240rpx;}
.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:180rpx;}
.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 .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.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,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAABHNCSVQICAgIfAhkiAAAB7dJREFUaEPtmn1sVeUdx7/POfece8+hpbfX2lJWCxQQLEjRjGSbMFx0M/DH4rRziDFImSbOAV002SZ7yVyCMdlM1cRtiSjo3B9Ts5c4MSYKWIYsNSjomGQiVUopfb+09+28PXueU3p7z73n3PcuhfRJbtKe5/f8fs/n9/I8z3khuMIbucL5MAt4uUc4I4L0fPtCi2Jn3yOHavWB+PxSAIkoyo333Kp56Yie6dMHD5/4Zik2+NjQ91e8pq5t6BQUuo9Ud4ym6ksC0pH2oBXDL1lnOxfofejAcSuit5RqvPHe2zxVxM8N9PS/c6yhVBs1O1qOB26sawHFqECwlczv+OukThvQhoviAKvI1ZMdMwFQXrwc2ulPcvInAS9JUgbpq+/Yy/+1AY3e9r+wP25P1TQTACu+dTvG30oGwxM0HZALskh+g9R3HCSs5m5mNXcgfXQ2wHw9y3WWkqLznn0Nw7/dlTOKboDMdLc4v2MRMXvbeSi3pAOO/vi9w9pw3Ei/LlRV++TrWiriRw86itnNvUSW/HV3rPuql+vNcOSLgf3/+sytX16xuiL0xN4vx955vSf85M8+zZan1TtbgtLKULK8JmUFH24g5rn2EZaowXQFkR91ueqU1m+EsHApEvueylkbRJFRcUuG3alxhnV27M33r3FTpP7iGYjNN9hd0Z9shdn9X097gW2Lj4srQ5kLIsWveASp20gvQG5YWLAUkR2toJHxrJDFAvq37IS84btJ3Rwu9uvtnvbKBuhjHlUYIG+JV5+Hxn7ZWjGAgQcfBc+S9MYhE7/f7RrJsgCKLC2Vnz8DMqciaTv+u93QD73hyVgIoLR+A+TWNghX12d1Gneqfmg/rIHzSbmSAd3gJrVng8wJGGy4EDt2pk5u3cbqLUutpiFbg33Q3/gzLBZV4+QHKBqQe1Nu3eqaMqk2TWaEe5YbS20OQEEHlOhUtyYDMX9ykZmw1cZsbfCMIAdL7HsaRte7DpmCAYn0JWgHQ/Azg4U04/1O27OToL7ltVDuvH4YIbnKGjqiU/QHHPo0n6YfpbLeJbKinjg18vrzb9kBok6VAr/O0zLx4lOuC01gy6J3xZZQVcZcBfydmD0PuK+iD//brjdpw12QN96VYTBVmZtx/3eug7y+KUXMhBl+j4H0Z/osRqG97YNxwmf3+dZ8HcrDu5Ny5skPEX3sh56+Vn6wEMLiOZn9FJ9lBZwcwdMn8MjjEBcscSih0XHEf/PTjNRUd3wFYtNVLhPKAsmktdfFJGTgwV12unIbke3Zt6SSAflMeTTVJ/ZCqJlnT5wbjj22PWPZ9q0yIK2rhK9hHas5qWhIbq9iz5t5bUdlAbRTJ3UffPFpaKzeUhupsqC0sds/hYCGg0lIGtNx8e2z0M6MQu+NQG6aC39TGOr1g67pGn3Wb9ekwrKGLyqpW4JbnhYF6JXwpPo+EP+1sPoezRCh491sYsNT1/21sCKrMPjcx6AxM0NeqgOq7xgAcS49gFoPovDfajbuQ8/ay9mRrQY9AZlRyNeyCDmjZ6ftMJsMtZJDaRwYeKEGNO796EdqpAjdmRZJQQapXslShtWxMZSTw1OgGEAIKoh0DWjilFOvGQEddV6LHlMwdsi53LtNJrSZbQ91A850Dy4DRJeVsRDcogD5gsMB9bMOU9QYA8LOE//IK0FoPW4LjXOWlbc0QF1zzrmFVC0F8VUWgpMpawN+us11HyxUMzXDQJzVYEob+mMQxkBuQPXGWgRbl7B98gjbKyYiSWR2JpVqC52G0+kWPU8ShzeXBRC+KESlx2Eg/wg2ovLWBYBlwBg+AmINwoyxZ1GGWhKg7aiyARINYoUzgvnW4NXbV0OafykdL0FaEba0zihA5i1xDnv6IEw95eCr6PCr2dM00BxC6N4VjkhZkTCMC6fZiswO5CW28kWQp4N/CILsXNb1fhEX36p0rUWJZWHNfWvYKcm5ERr9PbDGcj7yyQu9rICAyaL4uSOKfBY8krGTChKn2QnFdoQF/+IElBUJUKEGvtBNbAy7o7BlI9DPnclr8vkIeQImPh9jW8HUpp2PMi4jqBqUZSP5ik9AGSH4atfCiiUw3vURuzfKPPVkUyjM8UGud98zPQHPPn4M+oVYQROdFJ57kx91bXMLGhvrltD75CA72nm+yvDUpzZXY94Dza790wLILfkbRdQ/NBdSzcQ9XrYWPaWhf88Y9KHCM4brLQpw8PlPYF7MeO6ba64Z/WoLQWCZwH4TNTbZaNxC7BRF9IQFrbu0rVhuUFHdmnpzPWXHM4LjfzgFazBRMFDWWmGPl4WQALPXsheecjXfkkqo31tUWIpOB2C5gNL1zAK6eXY2gtOVb0XonU3R2RQtIm3+n0NmU/SKTtH44bv7CAh7QulsV8Q2QWmYHdXu/hu7Q/t2OqDZy151sfdBl0MjqsBenCpuUz1KtM5NbZQIey4HkCLmuMt+5Myi+B8WxeVFKJi5QyhGZIksnPiUq3NzU4LQTlaLJX18N2NoKeLsS6eN0to/HZj6GO/oPQ2abv0DhKyaMRMtbiIXKcimwNqX9/PhGW9FtH9uup9S4WbW18y+3lvOJNLf/RRndvpHdVFCX/IT42XytVeSr7hmv/idfsdPr4XZCE6vf6df+/8AmaDEKzXiudgAAAAASUVORK5CYII=');width:56rpx;height:56rpx;}
.sign .wrapper .list .item .venus.venusSelect{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYWFmYjU3Mi03MGJhLTRiNDctOTI2Yi0zOThlZDkzZDkxMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzkwRkI4NEFEMDFCMTFFODhDNDdBMDVGOTBBN0U2NTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzkwRkI4NDlEMDFCMTFFODhDNDdBMDVGOTBBN0U2NTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmRjNTM0MmUtNmFkOC1iMDRhLThjZTEtMjk2YWYzM2FkMmUxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBhYWZiNTcyLTcwYmEtNGI0Ny05MjZiLTM5OGVkOTNkOTEwOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkX00M0AAAfVSURBVHjaxFpdcBNVFD67STbppn9poU0LtSBYykBlgKrjqKOtihbq8ICKILyJwxM+6fjCk2/6pC+O4hs+6fgAbWFw1OID+ICMAwwKlRmKLW3Tpvlrskk3m13Pvdm0NNn//HA73+ymd3Pv+e4595xzT5bJ3DgJNWyMelUqNaD36a8N+9kaEeMR3yAERES952sxsbtya2lIbgQxqH72IT5EbEW8pZKuHkGlugyLyT3aBtW+qpJkKb/qgEeMIAYNnhlUn+Edz2NuokqtNVdTTbqVyhO0Q67qJMt2MnXbTq/cp+9+ZkyOYYFxN4EiLaF5SbokccyKkWRS1z4we4ZDfIE4hmhxvJLNu8HTtg85ekGRRcjOXwIp9pfT4aKIs4iP+f4zYrl78HPEqbLMJNAPXHBI/SQjSTd+PoD3LpCi15wMGVBlSiM+NfSihJ8Jjlt4Rheu5n7wtL+B93IJPO37aH8Z45+ohBdtKUtz7a+jJLK+/dN+BTX5p5MpWh6HF6XNE9iLwr9mSG6VZP65bPR6NVI1BwQZF3BtA+Bq2oG3Pt3HFCVnfUHaX6XQHCeXgVz8Nojz4+SDzTgo2yfIBV9G89utzi5DtRvDcnQ+JSciyd+rH+hdjb22tFOp5mreCUrocg0CPet5LATJvHbldWSiGllIzZpdeR2ZqFPtZTNJSIQeQGv3DucEbcrLmkRSXvP/cs4RZm6Ow/T1McffpyiSJTZ+jDfOZFDlOuARo5p9aKJ2IYkpCN+9AmLsIcSm/3Y0BkWpPCPRX9/nDVI1BTTAI0YRA9r99gWbv3MF90MGvG4WQrfHnRMslWcQMRL55SivbaJk064FjxhFDGj0gad5u22zkrMZiExcBQ7JcW4GlhfuQ3L+gSMTzc9fItcgYiTy8xHeTIOGmnMHtoEn2G971cP3MAUTk+B2MeBBkh4kGbp92ZEGyfxEDj1NLl56j9fbg4U9N6C179zNPZhK7cV7yRZkSYTI3atIjgUXywCLINf03L8gRGZtj0dA5CDyaMg5SPZk+OLhFZLMwtg7hTLDKGJAM09s6QGuY6+upxLTKcgkFmE5FUdFIYQEiHgv4VURl4BjgZon0SA9EeKKi1kZliU8Nnn84OabwIPw+huB8zdR+OqbwdcYMAwB4ux1yEYmtLp+I5WBdft/EApx8Cs9cu6mblyxXXTl9FpOFGDyjzGQMwlwIQlUEDAMagqvhBTVHl4ZplDezpsq+UdOTkMuIcByfBYElCWHmsgpLHQ/NwTe+gaTBH0XWkgGpPgDrfLHl4gTTOj8IVLdTqkF2aIslwF+2zCeGDjzIJ5OwtSVc6Cko9QMCUmWyZMiZJn8cI8E7Lwm11wJOTypBPuHoCG4yVrgz2VBmFBj69pGTvv1hVSN0XSxHE8LRUbaW9G01wdPvHgQQtcugJwMU5LFpIrWDjXMUGIsMNRR5DwcBPcMQV1L0NKchYHIkU2WkiVrTvgT6XEjyN/TY08R5KyAaWc6n3tagMvjhuCzQ+jlOmylVPRZjw/an9kPdYF1lucjIPLJmERoyP9j+8GflIIXPYW4XOKVJAmWZ27Y8nAMaq5t9yB4WjeumJ4hOaIErx/W978JXH2TbY9K5ZNKMhzC5dSjyTapQ5IyFxozvLJGz9Hp/Am+Y7utH8kan+yDhYVp8lVgdDWX33f+ji3gruNpnLPTxNl/8vKtbeTAeKDj0DmhuGShT3Jxkp4guGCv5cnT0QX0hgq4dOnBSshIxxehUbZJbu4OSJEpbXJvnxf0zoP6JMP/keVGTfZYEiCDQlttmXjE1hlTnJ3A+Ketuc53RwSz86AuSXFxitYzueBWUyGWE9E1pqiozoRhXdQJMLAaEyUMMdJyGp2Ux4Lm7iG5h5rkNhweFUpLFtonZANNTmOA3WzmFiGLGY3XlSel0DpOCzRs6gWXj4fkgwnIhKZIcKDhgsTLTCICfMs683gb1tbchiNjgt0TfYFkym7JQkyl8nkoixkMesiGzT1Q19q20t+0dTvwnU/A0iQSDYeoNinBQLOTE/2BjUcvCE5rMoJ2XcSYYBr3FOPmoHHLU+APdtJMpvg7bp8XAr19mKJ1weK9u5CJxUDpMt+HxfJ2HbsoVLzwa1aT4fw8dD3/Au43lv7YYjQF19gAHXv6UYMJa7UepQZFJzMT9fp9lJidorCvgbfkSRXbBB2UDRX5MdREnZYNwZECRcxQXLUnl8s5KPw6MNFsdBFzzdaaE8xGwrUx0eXZORrw3c1NNdEk0ZwUi2OQn7fvZBz9fEZKDjNzFLqn7dYApnVtNtKvecx5oxVfHCsmSt4ts/0rrxiO5NO6jvUWyC0guZgT+SPllu4Jzjr9AT0bjqKWQ1qH0RWQfvKcwzm+s6BB01X6RC1pHIf82w02NRmnsng7WjX28iJqLu5Ec4XXSE5XYg+S91A+UlHS/H2riXfq1n3N8mM2HKOOgutsodkNqZKIMxGQokvFw40jhnFMoZZ70CzyrpLd2S0kb00Oa5KMJDC8LAHL4QEmK4HGKYaSq+/bJFTyZ/GyX+VK3pzUStA1SRJrkTNZrWHG1e8IGuMZt5eqrUH9U8iwUbVci1w1BKnW65RWSVaVnBomAKoI3E9IQEEipX3jap9Q1hxmBElBocp/AmIYcQaRQSQQ36r/E8odvepOxoa5khfRT1pf+8q0/wUYAFU/P0XyeZQPAAAAAElFTkSuQmCC');}
.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}

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: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 881 B

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 491 B

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 912 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 B

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 14 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: 2.0 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Some files were not shown because too many files have changed in this diff Show More