更新前端

This commit is contained in:
zoomtk@126.com 2023-04-07 17:00:02 +08:00
parent 550a129818
commit b29428ffdb
38 changed files with 1740 additions and 917 deletions

View File

@ -1,7 +1,6 @@
<script>
import auth from 'common/js/auth.js';
import { Weixin } from 'common/js/wx-jssdk.js';
export default {
mixins: [auth],
onLaunch: function() {
@ -30,13 +29,11 @@ export default {
//
});
// #endif
// #ifdef H5
if (uni.getSystemInfoSync().platform == 'ios') {
uni.setStorageSync('initUrl', location.href);
}
// #endif
uni.onNetworkStatusChange(function(res) {
if (!res.isConnected) {
uni.showModal({
@ -46,9 +43,7 @@ export default {
});
}
});
this.$store.dispatch('init');
// #ifdef H5
//
if (!uni.getStorageSync('token')) {

View File

@ -1,5 +1,4 @@
import WxMap from 'common/js/map-wx-jssdk.js';
let systemInfo = uni.getSystemInfoSync();
export default {
data() {
@ -44,9 +43,7 @@ export default {
uni.hideTabBar();
this.name = data.name || '';
this.isDefault = data.is_default || '';
if (data.source_member) uni.setStorageSync('source_member', data.source_member);
// 小程序扫码进入
if (data.scene) {
var sceneParams = decodeURIComponent(data.scene);

View File

@ -6,8 +6,7 @@
:style="{
'padding-top': menuButtonBounding.top + 'px',
height: menuButtonBounding.height + 'px'
}"
>
}">
<view class="navbar-title">确认订单</view>
</view>
<view class="payment-navbar-block" :style="{ height: menuButtonBounding.bottom + 'px' }"></view>
@ -24,8 +23,7 @@
:class="{ active: item.name == orderCreateData.delivery.delivery_type }"
v-for="(item, index) in goodsData.express_type"
:key="index"
@click="selectDeliveryType(item)"
>
@click="selectDeliveryType(item)">
{{ item.title }}
<!-- 外圆角 -->
<view class="out-radio"></view>
@ -166,9 +164,7 @@
v-if="
orderCreateData.delivery &&
goodsItem.support_trade_type &&
goodsItem.support_trade_type.indexOf(orderCreateData.delivery.delivery_type) == -1
"
>
goodsItem.support_trade_type.indexOf(orderCreateData.delivery.delivery_type) == -1">
<text class="iconfont icon-gantanhao"></text>
<text>该商品不支持{{ orderCreateData.delivery.delivery_type_name }}</text>
</view>
@ -203,8 +199,7 @@
<view
class="member-goods-card order-cell"
v-if="calculateGoodsData && calculateGoodsData.goods_list[goodsIndex].member_card_list"
@click="selectMemberGoodsCard(goodsIndex)"
>
@click="selectMemberGoodsCard(goodsIndex)">
<text class="tit">次卡抵扣</text>
<view class="box text-overflow">
<block v-if="calculateGoodsData.goods_list[goodsIndex].card_promotion_money">
@ -231,32 +226,25 @@
</view>
<view class="site-wrap buyer-message" v-if="createDataKey !== 'futuresOrderCreateData'">
<view class="order-cell">
<!-- <view class="order-cell">
<text class="tit">买家留言</text>
<view class="box text-overflow " @click="openPopup('buyerMessagePopup')">
<text v-if="orderCreateData.buyer_message">{{ orderCreateData.buyer_message }}</text>
<text class="color-sub" v-else>无留言</text>
</view>
<text class="iconfont icon-right"></text>
</view> -->
</view>
</view>
<view v-if="paymentData.system_form" class="system-form-wrap">
<view class="order-cell">
<text class="tit">{{ paymentData.system_form.form_name }}</text>
</view>
<ns-form :data="paymentData.system_form.json_data" ref="form"></ns-form>
</view>
<view
class="site-wrap"
v-if="
(calculateGoodsData && calculateGoodsData.coupon_list && calculateGoodsData.coupon_list.length) ||
promotionInfo ||
(calculateGoodsData && calculateGoodsData.max_usable_point > 0) ||
goodsData.invoice
"
>
class="site-wrap" v-if="(calculateGoodsData && calculateGoodsData.coupon_list && calculateGoodsData.coupon_list.length) ||
promotionInfo ||(calculateGoodsData && calculateGoodsData.max_usable_point > 0) ||
goodsData.invoice">
<view class="site-footer">
<view class="order-cell coupon" v-if="calculateGoodsData && calculateGoodsData.coupon_list && calculateGoodsData.coupon_list.length">
<text class="tit">优惠券</text>
@ -298,7 +286,6 @@
</view>
</view>
</view>
<view class="site-wrap box member-card-wrap" v-if="paymentData.recommend_member_card">
<view class="head" @click="selectMemberCard">
<text class="iconfont icon-huiyuan"></text>

View File

@ -26,8 +26,7 @@
<view
class="graphic-img"
v-show="value.mode != 'text'"
:style="{ fontSize: value.imageSize * 2 + 'rpx', width: value.imageSize * 2 + 'rpx', height: value.imageSize * 2 + 'rpx' }"
>
:style="{ fontSize: value.imageSize * 2 + 'rpx', width: value.imageSize * 2 + 'rpx', height: value.imageSize * 2 + 'rpx' }">
<image
v-if="item.iconType == 'img'"
:src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')"

View File

@ -98,8 +98,9 @@
<view class="title">积分</view>
</view>
<view class="solid"></view>
<view class="account-item" @click="redirect('/pages_promotion/fenxiao/bill')">
<view class="value price-font">{{ fenxiaoInfo && fenxiaoInfo.diamond != undefined ? parseInt(fenxiaoInfo.diamond) : '--' }}</view>
<view class="account-item" @click="redirect('/pages_tool/member/balance_detail',{'from_type':'diamond'})">
<view class="value price-font">{{ memberInfo ? memberInfo.diamond : '--' }}</view>
<!-- <view class="value price-font">{{ fenxiaoInfo && fenxiaoInfo.diamond != undefined ? parseInt(fenxiaoInfo.diamond) : '--' }}</view> -->
<view class="title">钻石</view>
</view>
<!-- <view class="solid"></view>-->

View File

@ -235,6 +235,7 @@
success: res => {
uni.hideLoading();
if (res.code >= 0) {
console.log(1111);
if (res.data.pay_success) {
this.paySuccess();
return;
@ -435,6 +436,7 @@
* 支付成功之后跳转
*/
paySuccess() {
console.log(this.payInfo)
if (this.payInfo.event == 'BlindboxGoodsOrderPayNotify') {
this.$util.redirectTo('/pages_promotion/blindbox/index', {
outTradeNo: this.payInfo.out_trade_no

View File

@ -895,7 +895,7 @@
// #ifdef H5
"navigationStyle": "custom",
// #endif
"navigationBarTitleText": "分销商"
"navigationBarTitleText": "服务商"
}
},
{

View File

@ -23,7 +23,6 @@ export default {
onLoad(data) {
uni.hideTabBar();
this.name = 'DIY_VIEW_MEMBER_INDEX';
if (data.code) {
this.$api.sendRequest({
url: '/wechat/api/wechat/authcodetoopenid',
@ -33,8 +32,7 @@ export default {
success: res => {
if (res.code >= 0) {
if (res.data.userinfo.nickName) this.modifyNickname(res.data.userinfo.nickName);
if (res.data.userinfo.avatarUrl) this.modifyHeadimg(res.data.userinfo
.avatarUrl);
if (res.data.userinfo.avatarUrl) this.modifyHeadimg(res.data.userinfo.avatarUrl);
}
}
});

View File

@ -8,7 +8,6 @@
<!-- #ifndef H5 -->
<!-- <view class="head-nav color-base-bg" :class="{ active: isIphoneX }"></view> -->
<!-- #endif -->
<view v-if="status === ''">
<block v-if="basicsConfig.is_apply == 1">
<view class="image" :class="fenXiaoAgreement.agreement.img ? '' : 'color-base-bg'">
@ -18,7 +17,6 @@
<view class="bg-img"><image :src="$util.img('public/uniapp/fenxiao/apply/edit.png')" mode="scaleToFill"></image></view>
</view>
</view>
<view class="apply-wrap">
<view class="app-info">
<view class="info">
@ -51,7 +49,6 @@
</view>
</view>
</view>
<view class="apply-message-wrap" v-if="fenxiaoConfig.fenxiao_condition == 2 || fenxiaoConfig.fenxiao_condition == 3">
<view class="apply-message">
<view class="apply-message-title color-base-bg-before">分销商申请条件</view>
@ -136,8 +133,8 @@
<text v-if="status == 1">您已提交{{ fenxiaoWords.fenxiao_name }}申请等待平台审核</text>
<block v-else-if="status == -1">
<text>您提交的{{ fenxiaoWords.fenxiao_name }}申请已被拒绝请再接再厉</text>
<view class="again-btn color-base-bg" @click="againApply" v-if="fenxiaoConfig.fenxiao_condition != 0">重新申请</view>
<view class="again-btn color-base-bg" @click="applyFenXiao" v-else>重新申请</view>
<view class="again-btn color-base-bg" @click="againApply">重新申请</view>
<!-- <view class="again-btn color-base-bg" @click="applyFenXiao" v-else>重新申请</view> -->
</block>
</view>
<view @touchmove.prevent v-if="fenXiaoAgreement.document">
@ -426,7 +423,6 @@ export default {
}
};
</script>
<style lang="scss">
.image {
width: 100%;
@ -497,7 +493,6 @@ input::placeholder {
.apply-adv {
width: 100%;
}
.apply-wrap {
padding-bottom: 100rpx;
.app-info {
@ -793,13 +788,11 @@ input::placeholder {
flex-direction: column;
align-items: center;
justify-content: center;
image {
width: 300rpx;
height: 176rpx;
margin-bottom: 50rpx;
}
text {
font-size: $font-size-goods-tag;
font-weight: 600;

View File

@ -1,6 +1,7 @@
<template>
<page-meta :page-style="themeColor"></page-meta>
<view class="apply-upgrade">
<view v-if="status === ''">
<!--顶部提示内容-->
<view class="top-tips" v-if="parseInt(info.status) === 3">驳回原因{{ info.reject_cause }}</view>
<!--表单让你-->
@ -8,21 +9,15 @@
<view class="form-list">
<view class="form-list-block">
<view class="left">真实姓名</view>
<view class="right">
<input class="uni-input" v-model="info.username" placeholder="请输入真实姓名" />
</view>
<view class="right"><input class="uni-input" v-model="info.username" placeholder="请输入真实姓名" /></view>
</view>
<view class="form-list-block">
<view class="left">联系电话</view>
<view class="right">
<input class="uni-input" v-model="info.phone" placeholder="请输入联系电话" />
</view>
<view class="right"><input class="uni-input" v-model="info.mobile" placeholder="请输入联系电话" /></view>
</view>
<view class="form-list-block">
<view class="left">身份证号</view>
<view class="right">
<input class="uni-input" v-model="info.id_card" placeholder="请输入身份证号" />
</view>
<view class="right"><input class="uni-input" v-model="info.id_card" placeholder="请输入身份证号" /></view>
</view>
</view>
<view class="title">2.请拍摄并上传你的有效身份证</view>
@ -40,7 +35,8 @@
<view class="id-card-tips">
<view class="id-card-tips-line">大陆公民持有的本人有效二代身份证</view>
<view class="id-card-tips-line">
上传时确保身份证<text class="tips-stress">边框完整字体清晰亮度均匀</text>
上传时确保身份证
<text class="tips-stress">边框完整字体清晰亮度均匀</text>
</view>
</view>
</view>
@ -49,49 +45,266 @@
<textarea class="textarea-content" placeholder="请填写如下段落" auto-height v-model="info.upgrade_agree"></textarea>
<view class="agree-text">
<text class="agree-red">请输入这段话</text>
{{ baseInfo.upgrade_agree }}
<text class="agree-red" @click="$util.copy(baseInfo.upgrade_agree)">[复制]</text>
{{ basicsConfig.upgrade_agree }}
<text class="agree-red" @click="$util.copy(basicsConfig.upgrade_agree)">[复制]</text>
</view>
</view>
<button class="submit-button" @click="submitApply" v-if="parseInt(info.status) === 1" disabled>审核中</button>
<button class="submit-button" @click="submitApply" v-if="parseInt(info.status) === 3 || parseInt(info.status) === 0">确定提交</button>
<button class="submit-button" @click="submitApply">确定提交</button>
</view>
<view class="empty" v-else>
<image :src="$util.img('public/uniapp/fenxiao/index/no-fenxiao.png')" mode="widthFix"></image>
<text v-if="status == 1">您已提交{{ fenxiaoWords.fenxiao_name }}申请等待平台审核</text>
<block v-else-if="status == -1">
<text>您提交的{{ fenxiaoWords.fenxiao_name }}申请已被拒绝请再接再厉</text>
<view class="again-btn color-base-bg" @click="againApply">重新申请</view>
</block>
</view>
<!--登录弹框-->
<ns-login ref="login"></ns-login>
<!--加载动画-->
<loading-cover ref="loadingCover"></loading-cover>
</view>
</template>
<script>
import fenxiaoWords from 'common/js/fenxiao-words.js';
export default {
components: {},
data() {
return {
isChecked: false,
isShow: true,
isIphoneX: false,
//
sourceMemberInfo: {
fenxiao_name: '无'
},
formData: {
fenXiaoName: '',
mobile: ''
},
fenXiaoAgreement: {
agreement: {},
document: {}
},
isAgreement: false,
back: '',
isAbled: false,
status: '',
isSub: false,
fenxiaoConfig: {
fenxiao_condition: 0
},
basicsConfig: {},
goodsList: [],
isOpen: false,
baseInfo: {},
default_card_front: 'public/static/img/fenxiao/id_card_front.png',
default_card_reverse: 'public/static/img/fenxiao/id_card_reverse.png',
info: {
username: '',
phone: '',
mobile: '',
id_card: '',
id_card_front: '',
id_card_reverse: '',
upgrade_agree: '',
status: 0,
},
status: 0
}
};
},
mixins: [],
onLoad(option) {},
mixins: [fenxiaoWords],
onLoad(option) {
if (option.back) this.back = option.back;
},
onReady() {
// if (uni.getStorageSync('token')) {
// this.getBaseInfo();
// } else {
// this.$refs.login.open('/pages_promotion/fenxiao/apply_upgrade');
// }
},
async onShow() {
setTimeout(() => {
if (this.addonIsExist && !this.addonIsExist.fenxiao) {
this.$util.showToast({
title: '商家未开启分销',
mask: true,
duration: 2000
});
setTimeout(() => {
this.$util.redirectTo('/pages/index/index');
}, 2000);
return;
}
}, 1000);
this.isIphoneX = this.$util.uniappIsIPhoneX();
if (this.fenxiaoWords && this.fenxiaoWords.fenxiao_name) this.$langConfig.title(this.fenxiaoWords.fenxiao_name + '申请');
if (uni.getStorageSync('token')) {
this.getBaseInfo();
this.applyStatus();
this.getSourceMemberInfo();
} else {
this.$refs.login.open('/pages_promotion/fenxiao/apply_upgrade');
this.$util.redirectTo(
'/pages_tool/login/login',
{
back: '/pages_promotion/fenxiao/apply'
},
'redirectTo'
);
}
this.getFenxiaoConfig();
this.getFenxiaoBasicsConfig();
},
methods: {
toClose() {
this.$refs.applyPopup.close();
},
ckeckedRuler() {
this.isChecked = !this.isChecked;
},
goodsImg(imgStr) {
let imgs = imgStr.split(',');
return imgs[0]
? this.$util.img(imgs[0], {
size: 'mid'
})
: this.$util.getDefaultImage().goods;
},
imgError(index) {
this.goodsList[index].goods_image = this.$util.getDefaultImage().goods;
},
onOpen() {
this.isOpen = this.isOpen ? false : true;
this.getFenxiaoConfig();
},
goodsTag(data) {
return data.label_name || '';
},
applyStatus() {
this.$api.sendRequest({
url: '/fenxiao/api/apply/status',
data: {},
success: res => {
if (res.code >= 0 && res.data) {
this.status = res.data.status;
this.isSub = false;
if (this.status == 2) {
this.$util.redirectTo('/pages/member/index');
}
}
this.$refs.loadingCover.hide();
}
});
},
navigateBack() {
this.$util.goBack();
},
//
getAgreement() {
this.$api.sendRequest({
url: '/fenxiao/api/config/agreement',
success: res => {
if (res.code === 0) {
this.fenXiaoAgreement = res.data;
if (this.fenXiaoAgreement.agreement.is_agreement === '1') {
this.isAgreement = true;
}
}
}
});
},
openPopup() {
if (this.isAgreement) this.$refs.applyPopup.open();
},
closePopup() {
this.$refs.applyPopup.close();
},
fenXiaoValidata() {
let rule = [
{
name: 'fenXiaoName',
checkType: 'required',
errorMsg: '请输入' + this.fenxiaoWords.fenxiao_name + '名称'
},
{
name: 'mobile',
checkType: 'required',
errorMsg: '请输入手机号'
},
{
name: 'mobile',
checkType: 'phoneno',
errorMsg: '请输入正确的手机号'
}
];
var checkRes = validate.check(this.formData, rule);
if (checkRes) {
return true;
} else {
this.$util.showToast({
title: validate.error
});
return false;
}
},
onShow() {},
methods: {
// 广
getSourceMemberInfo() {
this.$api.sendRequest({
url: '/fenxiao/api/fenxiao/sourceinfo',
success: res => {
if (res.code == 0 && res.data) {
this.sourceMemberInfo = res.data;
}
}
});
},
/**
* 重新申请
*/
againApply() {
this.status = '';
},
/**
* 获取申请条件
*/
getFenxiaoConfig() {
this.$api.sendRequest({
url: '/fenxiao/api/config/fenxiao',
data: {},
success: res => {
if (res.code >= 0 && res.data) {
this.fenxiaoConfig = res.data;
this.goodsList = res.data.goods_list;
if (this.goodsList.length <= 3) {
this.isShow = false;
} else if (this.goodsList.length > 3 && this.isOpen == true) {
this.isShow = true;
this.goodsList = res.data.goods_list.slice(0, 3);
}
}
}
});
},
/**
* 获取分销基本配置
*/
getFenxiaoBasicsConfig() {
this.$api.sendRequest({
url: '/fenxiao/api/config/basics',
data: {},
success: res => {
if (res.code >= 0 && res.data) {
this.basicsConfig = res.data;
}
}
});
},
onBackPress(options) {
if (options.from === 'navigateBack') {
return false;
}
this.$util.redirectTo('/pages/member/index');
return true;
},
//
getBaseInfo() {
let _this = this;
@ -101,10 +314,9 @@ export default {
if (res.code === 0) {
_this.baseInfo = res.data;
if (res.data.info) _this.info = res.data.info;
if (parseInt(this.info.status) === 2) {
_this.$util.showToast({
title: "审核已经通过",
title: '审核已经通过',
mask: true,
duration: 1000,
success: function() {
@ -114,10 +326,8 @@ export default {
}
});
}
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
}
else{
} else {
this.$util.showToast({
title: res.message
});
@ -143,28 +353,32 @@ export default {
let _this = this;
let defaultRule = [
{ name: 'username', checkType: 'required', errorMsg: '请输入真实姓名' },
{name: 'phone', checkType: 'required', errorMsg: '请输入联系电话'},
{name: 'phone', checkType: 'phoneno', errorMsg: '请输入正确的手机号'},
{ name: 'mobile', checkType: 'required', errorMsg: '请输入联系电话' },
{ name: 'mobile', checkType: 'phoneno', errorMsg: '请输入正确的手机号' },
{ name: 'id_card', checkType: 'required', errorMsg: '请输入身份证号' },
{ name: 'id_card_front', checkType: 'required', errorMsg: '请上传身份证正面' },
{ name: 'id_card_reverse', checkType: 'required', errorMsg: '请上传身份证反面' },
{ name: 'upgrade_agree', checkType: 'required', errorMsg: '请输入协议内容以代表同意当前协议' },
{name: 'upgrade_agree', checkType: 'same', errorMsg: '协议不一致,请检查输入协议是否和下放协议内容一直', checkRule: this.baseInfo.upgrade_agree},
{ name: 'upgrade_agree', checkType: 'same', errorMsg: '协议不一致,请检查输入协议是否和下放协议内容一直', checkRule: this.basicsConfig.upgrade_agree }
];
_this.$util.verify(_this.info,defaultRule).then(res => {
_this.$util
.verify(_this.info, defaultRule)
.then(res => {
_this.$api.sendRequest({
url: '/fenxiao/api/apply/upgradeApply',
data: _this.info,
url: '/fenxiao/api/apply/applyfenxiao',
data: {
..._this.info,
fenxiao_condition: 1
},
success: res => {
if (res.code === 0) {
_this.$util.showToast({
title: '申请成功',
success: function () {
_this.getBaseInfo();
_this.$forceUpdate();
}
});
if (res.code >= 0 && res.data) {
if (this.basicsConfig.is_examine == 1) {
this.applyStatus();
} else {
this.$util.redirectTo('/pages_promotion/fenxiao/index');
}
} else {
this.isSub = false;
this.$util.showToast({
title: res.message
});
@ -174,11 +388,11 @@ export default {
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
}
});
}).catch((reject)=>{
})
.catch(reject => {
console.log(reject);
});
},
}
},
onBackPress(options) {
if (options.from === 'navigateBack') return false;
@ -187,11 +401,9 @@ export default {
}
};
</script>
<style lang="scss" scoped>
.apply-upgrade {
padding: 30rpx;
.top-tips {
color: #f56c6c;
background-color: #fde2e2;
@ -210,7 +422,6 @@ export default {
margin-bottom: 20rpx;
}
.form-list {
.form-list-block {
width: 100%;
color: #000000;
@ -248,7 +459,6 @@ export default {
align-content: center;
align-items: flex-start;
justify-content: space-between;
.id-card-block {
width: calc(50% - 15rpx);
position: relative;
@ -263,14 +473,12 @@ export default {
overflow: hidden;
padding-top: 20rpx;
padding-bottom: 75rpx;
/deep/ image {
width: 90%;
div {
background-position: top center !important;
}
}
.upload-buttons {
position: absolute;
bottom: 0;
@ -287,7 +495,6 @@ export default {
}
.id-card-tips {
padding: 30rpx 0;
.id-card-tips-line {
.tips-stress {
color: #e15c5c;
@ -325,5 +532,35 @@ export default {
line-height: 70rpx;
margin-top: 100rpx;
}
.again-btn {
display: flex;
justify-content: center;
width: auto;
border-radius: $border-radius;
margin-top: 20rpx;
color: #ffffff;
display: flex;
align-items: center;
justify-content: center;
padding: 10rpx 60rpx;
box-sizing: border-box;
}
.empty {
width: 100%;
margin-top: 200rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
image {
width: 300rpx;
height: 176rpx;
margin-bottom: 50rpx;
}
text {
font-size: $font-size-goods-tag;
font-weight: 600;
}
}
}
</style>

View File

@ -255,7 +255,7 @@ export default {
this.getTeamNum();
this.showEmpty = true;
} else {
this.$util.redirectTo('/pages_promotion/fenxiao/apply', {}, 'redirectTo');
this.$util.redirectTo('/pages_promotion/fenxiao/apply_upgrade', {}, 'redirectTo');
}
},
fail: res => {

View File

@ -7,8 +7,7 @@
:style="{
'padding-top': menuButtonBounding.top + 'px',
height: menuButtonBounding.height + 'px'
}"
>
}">
<view class="navbar-title">确认订单</view>
</view>
<view class="payment-navbar-block" :style="{ height: menuButtonBounding.bottom + 'px' }"></view>
@ -37,8 +36,7 @@
<view
class="address-box"
:class="{ 'not-delivery-type': orderPaymentData.shop_goods_list.express_type.length <= 1 }"
v-if="orderPaymentData.delivery.delivery_type != 'store'"
>
v-if="orderPaymentData.delivery.delivery_type != 'store'">
<block v-if="orderPaymentData.delivery.delivery_type == 'local'">
<block v-if="storeInfo.storeList.length > 1">
<view class="local-delivery-store" v-if="Object.keys(storeInfo.currStore).length" @click="$refs.deliveryPopup.open()">

View File

@ -0,0 +1,174 @@
<template>
<view class='szjp'>
<view v-if="show">
<view class="mask" @tap="Close"></view>
<view class="box" :class="AlertObj[AlertClass][AlertClassUp]">
<view class="bottom">
<view class="bg">
<image src="./static/bg.png" mode="widthFix" />
</view>
<view class="tle">
<view class="tle_lft">
<image src="./static/pwd.png" mode="widthFix" />
<view class="tle_1">{{txt}}</view>
<view class="tle_2">(长度{{pwdlength}})</view>
</view>
<view class="tle_rgt" @tap.stop="is_vis=!is_vis">
<block v-if="is_vis">
<image src="./static/yj2.png" mode="widthFix" />
</block>
<block v-else>
<image src="./static/yj1.png" mode="widthFix" />
</block>
</view>
</view>
<view class="pwd_box" @click.stop>
<view class="pwd-text" :class="{active:(idx==k)}" v-for="(v,k) in pwdlength" :key="k">
{{star_lis[k]}}
</view>
</view>
<view class="pwd_info">
<view @click="$util.redirectTo('/pages_tool/member/pay_password')">忘记密码?</view>
</view>
<view class="solt" @click.stop>
<view class="s_lft">
<button class="s_li" type="primary" plain="true" v-for="(v,k) in 9" :key="k"
@tap="click(k+1)">{{k+1}}</button>
<button class="s_li s_o" type="primary" plain="true" @tap=click(0)>0</button>
<button class="s_li s_sq" type="primary" plain="true" @tap="Close">
<image src="./static/sq.png" mode="widthFix" />
</button>
</view>
<view class="s_rgt">
<view class="s_cx">
<button class="s_li s_x" type="primary" plain="true" @tap="del">
<image src="./static/ht.png" mode="widthFix" />
</button>
</view>
<view class="s_qd">
<button class="s_li s_s " type="primary" plain="true" @tap="submit">确定</button>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
/*引入插件*/
export default {
props: {
txt: {
type: String,
default: '支付密码'
},
pwdlength: {
type: [Number, String],
default: 1
},
isPass:{
type: Boolean,
default: false
}
},
data() {
return {
Repeat: true,
show: false,
AlertObj: [
['a-bounceinB', 'a-bounceoutB'],
],
AlertClass: 0,
AlertClassUp: 0,
res_pwd: [],
fa_par: '',
is_vis: false,//
}
},
//
computed: {
idx() {
return this.res_pwd.length
},
star_lis() {
if (this.is_vis) {
return this.res_pwd
}else {
let arr = [];
this.res_pwd.forEach(v => {
arr.push('*')
});
return arr;
}
}
},
methods: {
click(e) {
if (this.res_pwd.length <= this.pwdlength - 1) {
this.res_pwd.push(e)
// #ifdef APP-PLUS
plus.device.vibrate(50);//
// #endif
} else {
this.toast(`最大长度${this.pwdlength}`)
}
},
del() {
this.res_pwd.pop()
// #ifdef APP-PLUS
plus.device.vibrate(50);//
// #endif
},
submit() {
// console.log('', this.res_pwd.join(''))
// #ifdef APP-PLUS
plus.device.vibrate(50);//
// #endif
if (this.res_pwd.length == this.pwdlength) {
let res = this.res_pwd.join('')
this.$emit('pwd_e', res);//
this.Close()
} else {
this.toast(`长度未满足`)
}
},
//
Open(par) {
if (par) {
console.log('父元素传参', par)
this.fa_par = par;//
}
if (!this.Repeat) { return false }
this.res_pwd = []
this.Repeat = false;
this.AlertClassUp = 0;
this.show = true
setTimeout(() => {
this.Repeat = true;
}, 300);
},
//
Close() {
if (!this.Repeat) { return false }
clearTimeout(this.SetTime);
this.Repeat = false;
this.AlertClassUp = 1;
setTimeout(() => {
this.show = false;
this.Repeat = true;
}, 300);
},
toast(val) {
uni.showToast({
title: val,
icon: 'error',
});
}
}
}
</script>
<style lang="scss" scoped>
/*引入css文件*/
@import "./static/szjp.scss";
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,288 @@
.mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.4);
}
.box {
width: 100vw;
height: 50vh;
position: fixed;
bottom: 0;
left: 0;
margin: auto;
z-index: 101;
display: flex;
justify-content: center;
align-items: center;
.center {
position: absolute;
}
.bottom {
position: absolute;
bottom: 0;
width: 100%;
background: #fff;
border-radius: 30rpx 30rpx 0 0;
.tle {
display: flex;
align-items: center;
justify-content: space-between;
padding: 30rpx 3%;
.tle_lft {
display: flex;
align-items: center;
image {
width:60rpx;
height:60rpx;
}
.tle_1 {
font-size: 30rpx;
color: #444;
font-weight: bold;
letter-spacing: 3rpx;
padding-left: 8rpx;
}
.tle_2 {
font-size: 24rpx;
color: #999;
letter-spacing: 3rpx;
padding-left: 10rpx;
}
}
.tle_rgt {
padding: 0 20rpx;
image {
width: 40rpx;
}
}
}
.pwd_info {
text-align: center;
font-size: 24rpx;
color: red;
margin: 10px;
height: 100rpx;
line-height: 80rpx;
}
.bg {
opacity: 0.5;
position: absolute;
top: 85rpx;
// left: 0;
right: 0;
image {
width: 250rpx;
}
}
}
}
.pwd_box {
display: flex;
align-items: center;
justify-content: center;
background: #fff;
padding: 20rpx 0 0 0;
.pwd-text {
position: relative;
line-height: 60rpx;
vertical-align: middle;
text-align: center;
font-size: 46rpx;
color: #0fb361;
font-weight: bold;
width: 60rpx;
height: 70rpx;
margin-right: 20rpx;
display: inline-block;
border-bottom: solid 1px #666;
}
.pwd-text.active:after {
-webkit-animation: twinkle 1s infinite;
animation: twinkle 1s infinite;
height: 40rpx;
width: 5rpx;
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: #007aff;
}
@-webkit-keyframes twinkle {
from {
background-color: #007aff;
}
to {
background-color: transparent;
}
}
}
.solt {
width: 96vw;
background: #f5f5f5;
padding: 40rpx 2vw;
display: flex;
align-items: center;
border-top: 1px solid #ccc;
// border-radius: 30rpx 30rpx 0 0;
.s_lft {
width: 78vw;
padding-right: 10rpx;
height: 100%;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
.s_li {
width: 31%;
margin-bottom: 20rpx;
background: #fff;
height: 90rpx;
line-height: 90rpx;
border-radius: 10rpx;
text-align: center;
font-size: 40rpx;
color: #444;
font-weight: bold;
border: 1px solid #fff;
margin: 10px 5px 5px 0;
}
.s_o {
width: 65%;
}
.button-hover {
background: #eee !important;
}
.s_sq {
display: flex;
align-items: center;
justify-content: center;
image {
width: 30rpx;
height: 30rpx;
}
}
}
.s_rgt {
width: 20vw;
height: 100%;
.s_li {
width: 100%;
margin-bottom: 20rpx;
background: #fff;
border-radius: 10rpx;
text-align: center;
font-size: 28rpx;
color: #000;
font-weight: bold;
border: 1px solid #fff;
}
.s_s {
height: 200rpx;
line-height: 200rpx;
color: #fff;
margin: 0 0 -5px;
background: #0fb361;
}
.s_x {
height: 200rpx;
line-height: 200rpx;
display: flex;
align-items: center;
justify-content: center;
margin: 0 0 5px;
image {
width: 50rpx;
}
}
.s_cx {
.button-hover {
background: #eee !important;
}
}
.s_qd {
.button-hover {
background: #2aa515 !important;
}
}
}
}
/* 弹入-从下 */
.a-bounceinB {
-webkit-animation: 0.3s ease-out backwards;
-moz-animation: 0.3s ease-out backwards;
-ms-animation: 0.3s ease-out backwards;
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-animation-name: bounceinB;
-moz-animation-name: bounceinB;
-ms-animation-name: bounceinB;
animation-name: bounceinB;
}
/* 弹入-从下 */
@keyframes bounceinB {
0% {
opacity: 0;
transform: translateY(100%);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
/* 弹出-向下 */
.a-bounceoutB {
-webkit-animation: 0.3s ease-in forwards;
-moz-animation: 0.3s ease-in forwards;
-ms-animation: 0.3s ease-in forwards;
animation: 0.3s ease-in forwards;
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-animation-name: bounceoutB;
-moz-animation-name: bounceoutB;
-ms-animation-name: bounceoutB;
animation-name: bounceoutB;
}
/* 弹出-向下 */
@keyframes bounceoutB {
0% {
opacity: 1;
transform: translateY(0);
}
100% {
opacity: 0;
transform: translateY(100%);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -27,9 +27,7 @@
<script>
import popup from '../uni-popup-new/popup.js'
import {
initVueI18n
} from '@dcloudio/uni-i18n'
import {initVueI18n} from '@dcloudio/uni-i18n'
import messages from '../uni-popup-new/i18n/index.js'
const { t } = initVueI18n(messages)
/**

View File

@ -52,46 +52,62 @@
ref="detail"
:show="details_show"
mode-class="slide-top"
:duration="2000"
>
<view v-html="info.goods_content"></view>
:duration="2000">
<view class="detail-content-item">
<view class="goods-details" v-if="info.goods_content">
<rich-text :nodes="info.goods_content" @click="showImg($event)" :data-nodes="info.goods_content"></rich-text>
</view>
<view class="goods-details active" v-else>该商家暂无上传相关详情哦</view>
</view>
</uni-transition>
</view>
</view>
<!--按钮-->
<view class="bottom-buttons">
<view class="button-item" @click="editRemark">添加备注</view>
<view class="button-item" @click="buy">立即采购</view>
<view class="button-item" @click="payOpen">立即采购</view>
</view>
<!--添加备注内容-->
<uni-popup ref="orderRemarks" type="dialog" class="order-remarks-content">
<uni-popup-dialog ref="inputClose" mode="input" placeholder="请输入订单备注" @close="$refs.orderRemarks.close()" @confirm="confirmRemarks"></uni-popup-dialog>
<uni-popup-dialog ref="inputClose" mode="input" placeholder="请输入订单备注"
:value="order_remarks"
@close="$refs.orderRemarks.close()"
@confirm="confirmRemarks">
</uni-popup-dialog>
</uni-popup>
</view>
<view v-else>
<ns-empty :isIndex="false" text="未到秒杀时间"></ns-empty>
</view>
<pay-pop txt="支付密码" :pwdlength="6" ref="payPop" @pwd_e="pwdEvend" />
<!--登录弹框-->
<ns-login ref="login"></ns-login>
<!--加载动画-->
<loading-cover ref="loadingCover"></loading-cover>
</view>
</template>
<script>
import uniTransition from '@/pages_rush/components/uni-transition/uni-transition.vue';
import uniPopup from '@/pages_rush/components/uni-popup-new/uni-popup.vue';
import uniPopupDialog from '@/pages_rush/components/uni-popup-dialog/uni-popup-dialog.vue';
import payPop from '@/pages_rush/components/pay-pop/pay-pop.vue';
import payment from './payment.js';
export default {
components: {
uniTransition,
uniPopup,
payPop,
uniPopupDialog
},
mixins: [payment],
data() {
return {
api: {
payment: '/futures/api/ordercreate/payment',
calculate: '/futures/api/ordercreate/calculate',
create: '/futures/api/ordercreate/create'
},
createDataKey:'futuresOrderCreateData',
id: 0,
//
end_time: 1680170346,//
@ -104,22 +120,48 @@ export default {
details_show: true,
info: {},
order_remarks: '',
userInfo:''
};
},
mixins: [],
onLoad(option) {
this.id = option.id;
this.orderCreateData.futures_id=this.id;
this.getDetail(option.id);
},
onShow() {},
onShow() {
this.getMemberInfo();
},
onReady(){
//
if (!uni.getStorageSync('token')) this.$refs.login.open('/pages_rush/futures/seckill');
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
},
methods: {
async getMemberInfo() {
this.userInfo = uni.getStorageSync('userInfo');
if(this.userInfo) return;
let res = await this.$api.sendRequest({
url: '/api/member/info',
async: false
});
if (res.code >= 0 && res.data) {
this.token = uni.getStorageSync('token');
this.userInfo = res.data;
uni.setStorageSync('userInfo', this.userInfo);
}
},
payOpen() {
if (!uni.getStorageSync('token')) {
this.$util.redirectTo('/pages_tool/login/login');
}
this.$refs.payPop.Open()
},
pwdEvend(pass){
console.log('密码是:', pass)
this.orderCreateData.payPassword=pass;
this.orderCreate(); //
},
//
getDetail(id) {
this.$api.sendRequest({
@ -161,7 +203,9 @@ export default {
},
//
confirmRemarks(value){
console.log(value)
this.order_remarks = value || '';
this.orderCreateData.buyer_message=this.order_remarks;
this.$refs.orderRemarks.close();
},
//
@ -177,6 +221,28 @@ export default {
this.$util.redirectTo('/pages_rush/futures/payment');
}
});
},
showImg(e) {
//
let contentimg = e.target.dataset.nodes || e.currentTarget.dataset.nodes;
let arrImg = [];
for (var i = 0; i < contentimg.length; i++) {
var img = contentimg[i].children;
if (Array.isArray(img)) {
for (var j = 0; j < img.length; j++) {
if (img[j].attrs && img[j].name == "img") {
if (img[j].attrs.src) {
arrImg.push(img[j].attrs.src)
}
}
}
}
}
//api
uni.previewImage({
current: arrImg,
urls: arrImg,
})
}
},
onBackPress(options) {
@ -315,7 +381,6 @@ export default {
background: #fcfcfc;
margin-top: 20rpx;
padding: 20rpx;
.detail-top{
width: 100%;
height: 70rpx;
@ -345,8 +410,23 @@ export default {
}
}
.goods-detail-content{
// padding: 5px 10px 10px;
margin-bottom: 52px;
overflow: hidden;
}
.goods-details{
// padding: 5px 10px 10px;
margin-bottom: 52px;
overflow: hidden;
}
.goods-details.active {
min-height: 150rpx;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
color: $color-tip;
}
}
.bottom-buttons{
position: fixed;

View File

@ -1,29 +1,12 @@
<template>
<page-meta :page-style="themeColor"></page-meta>
<view class="apply">
<!--登录弹框-->
<ns-login ref="login"></ns-login>
<!--加载动画-->
<loading-cover ref="loadingCover"></loading-cover>
</view>
</template>
<script>
export default {
data() {
@ -38,20 +21,12 @@ export default {
onReady(){
//
if (!uni.getStorageSync('token')) this.$refs.login.open('/pages_rush/futures/list');
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
},
methods: {
},
onBackPress(options) {
if (options.from === 'navigateBack') return false;
@ -60,14 +35,7 @@ export default {
}
};
</script>
<style lang="scss" scoped>
</style>

View File

@ -26,7 +26,7 @@
<view class="punish-title">违规总次数</view>
<view class="punish-num">{{ user.total_violation_num || 0 }}</view>
</view>
</view>
</view
<!--菜单列表-->
<view class="menu-list">
<view class="title">小店订单</view>
@ -43,6 +43,7 @@
<i class="icondiy icon-system-arrow-right-s-line"></i>
</view>
</view>
<view class="point">您已完成{{user.business_num}}次寄售</view>
</view>
</view>
<!--登录弹框-->
@ -306,6 +307,12 @@ export default {
}
}
}
.point {
justify-content: flex-end;
display: flex;
margin-top: 15px;
}
}
}
.punish{

View File

@ -13,8 +13,7 @@
<view
v-for="(item,index) in tabs" :key="index"
:class="['tabs-item',{'tabs-item-active': (item.status === tabs_active)}]"
@click="tabs_active = item.status"
>
@click="tabs_active = item.status">
{{ item.title }}
</view>
</view>
@ -40,7 +39,8 @@
</view>
</view>
<view class="buttons">
<view class="button-item" @click="$util.redirectTo('/pages_rush/futures/order_details',{ futures_id: item.id })">查看详情</view>
<view v-if="item.status=='6'" class="button-item color-base-text color-base-border" @click="quickPay(item)">支付</view>
<view v-else class="button-item" @click="$util.redirectTo('/pages_rush/futures/order_details',{ futures_id: item.id })">查看详情</view>
</view>
</view>
</view>
@ -49,26 +49,26 @@
</view>
</block>
</mescroll-uni>
<ns-payment ref="choosePaymentPopup"></ns-payment>
<ns-payment ref="choosePaymentMergePopup"></ns-payment>
<!--登录弹框-->
<ns-login ref="login"></ns-login>
<!--加载动画-->
<loading-cover ref="loadingCover"></loading-cover>
</view>
</template>
<script>
import nsPayment from '@/components/payment/payment.vue';
import orderMethod from '../order/public/js/orderMethod.js';
export default {
data() {
return {
orderData: '',
payMoney: 0,
payMoneyMerge: 0,
searchText: '',
// all:stock:release:sold:
tabs_active: 'all',
tabs: [
{title: '全部', status: 'all'},
{title: '库存', status: 'stock'},
{title: '已上架', status: 'release'},
{title: '已售卖', status: 'sold'}
],
tabs: [],
page_titles: {
all: '全部订单',
stock: '库存中订单',
@ -87,30 +87,32 @@ export default {
}
};
},
components: {},
mixins: [],
components: {
nsPayment
},
mixins: [orderMethod],
onLoad(option) {
//
if(option.status == 'release'){
this.tabs_active = '待付款订单';
this.tabs_active = 6;
this.tabs = [
{title: '待付款订单', status: '待付款订单'},
{title: '商城已完成', status: '商城已完成'},
{title: '未付款订单', status: 6},
{title: '订单已完成', status: 3},
]
}
if(option.status == 'all'){
this.tabs_active = '采购未付款';
this.tabs_active = 'myorderpay';
this.tabs = [
{title: '采购未付款', status: '采购未付款'},
{title: '成功完成订单', status: '成功完成订单'},
{title: '采购未付款', status: 'myorderpay'},
{title: '成功完成订单', status: 'myorderend'},
]
}
if(option.status == 'stock'){
this.tabs_active = '库存订单';
this.tabs_active = 'stock';
this.tabs = [
{title: '库存订单', status: '库存订单'},
{title: '提货订单', status: '提货订单'},
{title: '审核出售', status: '审核出售'},
{title: '库存订单', status: 'stock'},
{title: '提货订单', status: 'pickup'},
{title: '审核出售', status: 'time'},
]
}
//
@ -133,6 +135,12 @@ export default {
}
},
methods: {
quickPay(orderData){
console.log(orderData);
this.orderData = orderData;
this.payMoney = parseFloat(orderData.pay_money);
this.orderPay(orderData);
},
statusText(item){
switch (item.status){
case 1:
@ -176,7 +184,6 @@ export default {
success: res => {
if(parseInt(res.code) === 0){
mescroll.endSuccess(Object.keys(res.data.list).length);
//
if (parseInt(mescroll.num) === 1){
this.list = []; //
@ -185,7 +192,6 @@ export default {
}else {
this.msg = res.message;
}
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
},
fail: res => {
@ -384,6 +390,17 @@ export default {
font-size: 26rpx;
border-radius: 10rpx;
}
.action-btn {
line-height: 1;
padding: 20rpx 26rpx;
color: #333;
display: inline-block;
border-radius: $border-radius;
background: #fff;
border: 2rpx solid #999;
font-size: $font-size-tag;
margin-left: 10rpx;
}
}
}
}

View File

@ -20,6 +20,10 @@
<view class="left">用户昵称</view>
<view class="right">{{ info.seller_nickname }}</view>
</view>
<view class="info-list-block">
<view class="left">买家姓名</view>
<view class="right ">{{ info.buyer_name }}</view>
</view>
<view class="info-list-block">
<view class="left">订单金额</view>
<view class="right right-price">{{ info.unit_price }}</view>
@ -219,7 +223,7 @@ export default {
}
});
},
//
//
sale(agree_split_order = 0){
let _this = this;
//
@ -264,7 +268,7 @@ export default {
duration: 2000,
success: function () {
setTimeout(() => {
_this.$util.redirectTo('/pages_rush/futures/order', { status: 'release' });
_this.$util.redirectTo('/pages_rush/futures/order', {status: 'stock'});
}, 1000);
}
});

View File

@ -0,0 +1,67 @@
export default {
data() {
return {
isIphoneX: false,
orderCreateData: {
buyer_message: '',
futures_id: '',
},
orderPaymentData: {},
isSub: false,
tempData: null,
canLocalDelicery: true,
// 选择自提、配送防重判断
judge:true,
goodsOpen: true,
min:1,
modifyFlag: false,
};
},
methods: {
// 订单创建
orderCreate() {
if (this.verify()) {
if (this.isSub) return;
this.isSub = true;
var data = this.$util.deepClone(this.orderCreateData);
this.$api.sendRequest({
url: '/futures/api/ordercreate/create',
data,
success: res => {
uni.hideLoading();
if (res.code >= 0) {
// if (parseFloat(this.orderPaymentData.pay_money) > 0) {
// let orderCreateData = uni.getStorageSync('giftcardOrderCreateData');
// orderCreateData.out_trade_no = res.data;
// uni.setStorageSync('giftcardOrderCreateData', orderCreateData);
// this.$refs.choosePaymentPopup.getPayInfo(res.data);
// this.isSub = false;
// } else {
// }
} else {
this.$util.showToast({
title: res.message
});
}
},
fail: res => {
uni.hideLoading();
this.isSub = false;
}
})
}
},
// 订单验证
verify() {
return true;
}
},
filters: {
// 金额格式化输出
moneyFormat(money) {
return parseFloat(money).toFixed(2);
}
}
}

View File

@ -4,7 +4,6 @@
<common-payment :api="api" create-data-key="futuresOrderCreateData" ref="payment"></common-payment>
</view>
</template>
<script>
export default {
data() {

View File

@ -7,17 +7,20 @@
<view class="seckill-count-down" v-if="h > 0 || i > 0 || s > 0">
<text v-if="parseInt(activity_status) === 1">距开始</text>
<text v-else>距结束</text>
<text class="count-down-time">{{ h }}</text>
<text class="count-down-time">{{ i }}</text>
<text class="count-down-time">{{ s }}</text>
<text class="count-down-time">{{ h }}</text>
<text class="count-down-time">{{ i }}</text>
<text class="count-down-time">{{ s }}</text>
</view>
<view class="tip" @click="openPopup()">
<view class="title">商品全部实物销售</view>
<view class="content">本区域销售的商品均为商家已经生产并承诺全额补货</view>
<view class="content">本区域销售的商品均为商家已经生产并承诺全额补货(查看规则)</view>
</view>
</view>
<!--商品列表-->
<mescroll-uni ref="mescroll" @getData="getList" top="240">
<mescroll-uni ref="mescroll" @getData="getList" top="350">
<block slot="list">
<!--活动正常进行中 商品列表-->
<view class="goods-list" v-if="list.length > 0 && parseInt(activity_status) === 3">
@ -36,10 +39,13 @@
<view class="goods-bottom">
<view class="price">
<view class="price-item">单价:{{ item.market_price }}/{{ item.unit || '件' }}</view>
<view class="price-item">采购价:<text class="purchase_price">{{ item.price }}</text></view>
<view class="price-item">
采购价:
<text class="purchase_price">{{ item.price }}</text>
</view>
</view>
<view class="buy-button">
<view class="buy-btn" @click="$util.redirectTo('/pages_rush/futures/details', { id: item.id }, 'redirectTo');">前去采购</view>
<view class="buy-btn" @click="ToBuy(item)">前去采购</view>
</view>
</view>
</view>
@ -47,11 +53,19 @@
</view>
<!--秒杀活动未正常进行时的内容-->
<view class="not-list" v-else>
<image class="not-list-image" v-if="parseInt(activity_status) === 1" :src="$util.img('public/static/img/futures/futures_not_started.png')" mode="widthFix"></image>
<image class="not-list-image" v-if="parseInt(activity_status) === 2" :src="$util.img('public/static/img/futures/futures_not_goods.png')" mode="widthFix"></image>
<view class="back-buttons">
<view class="back-buttons-btn" @click="$util.goBack();">返回</view>
</view>
<image
class="not-list-image"
v-if="parseInt(activity_status) === 1"
:src="$util.img('public/static/img/futures/futures_not_started.png')"
mode="widthFix"
></image>
<image
class="not-list-image"
v-if="parseInt(activity_status) === 2"
:src="$util.img('public/static/img/futures/futures_not_goods.png')"
mode="widthFix"
></image>
<view class="back-buttons"><view class="back-buttons-btn" @click="$util.goBack()">返回</view></view>
</view>
</block>
</mescroll-uni>
@ -60,7 +74,6 @@
<!--加载动画-->
<loading-cover ref="loadingCover"></loading-cover>
</view>
<view @touchmove.prevent>
<uni-popup ref="registerPopup" type="center" :maskClick="false">
<view class="conten-box">
@ -73,7 +86,6 @@
</uni-popup>
</view>
</template>
<script>
export default {
data() {
@ -87,7 +99,7 @@ export default {
4: '提货中',
5: '提货完成',
6: '待支付',
7 : '捡漏',
7: '捡漏'
},
//
setInterval_time: 0, //
@ -100,19 +112,32 @@ export default {
//
title: '',
content: ''
},
}
};
},
components: {},
mixins: [],
onLoad(option) {
this.getRegisiterAggrement();},
this.getRegisiterAggrement();
},
onReady() {
//
if (!uni.getStorageSync('token')) this.$refs.login.open('/pages_rush/futures/seckill');
},
onShow() {},
methods: {
ToBuy(data){
uni.setStorage({
key: 'futuresOrderCreateData',
data: {
futures_id: data.id,
order_remarks: ''
},
success: () => {
this.$util.redirectTo('/pages_rush/futures/details',{ id: data.id });
}
});
},
/**
* 获取注册协议
*/
@ -133,7 +158,7 @@ export default {
data: {
page: mescroll.num,
page_size: mescroll.size,
status: 'miaosha',
status: 'miaosha'
},
success: res => {
if (parseInt(res.code) === 0) {
@ -154,10 +179,10 @@ export default {
}
//
this.countDown();
setTimeout(() => {
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
}, 1000);
this.$refs.loadingCover.hide();
// setTimeout(() => {
// if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
// }, 1000);
},
fail: res => {
mescroll.endErr();
@ -169,14 +194,14 @@ export default {
countDown() {
this.interval = setInterval(() => {
//
let nowTime = Math.ceil((new Date()).getTime() / 1000);
let nowTime = Math.ceil(new Date().getTime() / 1000);
this.diff_time = this.setInterval_time - nowTime;
//
let result = this.$util.countDown(this.diff_time);
this.h = (parseInt(result.d) * 24) + parseInt(result.h);
this.h = parseInt(result.d) * 24 + parseInt(result.h);
this.i = parseInt(result.i);
this.s = parseInt(result.s);
}, 1000)
}, 1000);
},
/**
* 展示注册协议
@ -189,7 +214,7 @@ export default {
*/
toClose() {
this.$refs.registerPopup.close();
},
}
},
onBackPress(options) {
if (options.from === 'navigateBack') return false;
@ -245,7 +270,7 @@ export default {
}
.tip {
position: absolute;
top: 214rpx;
top: 198rpx;
display: flex;
flex-direction: column;
align-items: center;
@ -263,14 +288,13 @@ export default {
text-align: center;
}
.content {
font-size: 20rpx;
color: #f4de38;
font-size: 26rpx;
color: #fff;
}
}
}
.goods-list {
margin: 0 30rpx;
.goods-block {
--size--: calc((100vw - 100rpx) / 3);
border-radius: 20rpx;
@ -286,7 +310,6 @@ export default {
justify-content: center;
align-items: center;
height: var(--size--);
.left {
margin-right: 20rpx;
height: var(--size--);
@ -294,7 +317,6 @@ export default {
position: relative;
border-radius: 20rpx;
overflow: hidden;
.goods-image {
max-width: 100% !important;
max-height: 100% !important;
@ -415,7 +437,6 @@ export default {
flex-wrap: nowrap;
justify-content: center;
align-items: center;
.not-list-image {
max-width: 60vw !important;
max-height: 60vw !important;

View File

@ -342,14 +342,14 @@
</view>
</block>
<!-- 联系客服 -->
<ns-contact :niushop="{ order_id: orderData.order_id }">
<!-- <ns-contact :niushop="{ order_id: orderData.order_id }">
<view class="kefu">
<view>
<text class="iconfont icon-ziyuan"></text>
<text>联系客服</text>
</view>
</view>
</ns-contact>
</ns-contact> -->
</view>
<block v-if="orderData.virtual_goods && orderData.goods_class == 2 && orderData.virtual_goods.is_veirfy == 0">

View File

@ -119,8 +119,7 @@
<view
class="order-box-btn"
v-if="evaluateConfig.evaluate_status == 1 && orderItem.is_evaluate == 1"
@click="operation('memberOrderEvaluation', orderItem)"
>
@click="operation('memberOrderEvaluation', orderItem)">
<text v-if="orderItem.evaluate_status == 0">评价</text>
<text v-else-if="orderItem.evaluate_status == 1">追评</text>
</view>
@ -129,8 +128,7 @@
:class="{ 'color-base-border color-base-bg': operationItem.action == 'orderPay' }"
v-for="(operationItem, operationIndex) in orderItem.action"
:key="operationIndex"
@click="operation(operationItem.action, orderItem)"
>
@click="operation(operationItem.action, orderItem)">
{{ operationItem.title }}
</view>
</view>

View File

@ -56,15 +56,15 @@
</view>
<view class="assets-list">
<view class="assets-li">
<view>{{ fenxiao_info.account }}</view>
<view>{{ fenxiao_info.account ||0 }}</view>
<view>可提现佣金</view>
</view>
<view class="assets-li">
<view>{{ fenxiao_info.account_withdraw_apply }}</view>
<view>{{ fenxiao_info.account_withdraw_apply ||0}}</view>
<view>提现中佣金</view>
</view>
<view class="assets-li">
<view>{{ accountInfo.fenxiao_order_count }}</view>
<view>{{ accountInfo.fenxiao_order_count ||0}}</view>
<view>待结算订单</view>
</view>
</view>

View File

@ -2,11 +2,11 @@
<page-meta :page-style="themeColor"></page-meta>
<view class="container">
<view class="withdraw-wrap">
<view class="withdraw-wrap-title">会员账号</view>
<view class="withdraw-wrap-title">账号</view>
<view class="money-wrap">
<input type="text" class="withdraw-money" style="font-size: 16px;" placeholder="请输入会员账号" v-model="username" />
<input type="text" class="withdraw-money" style="font-size: 16px;" placeholder="请输入会员账号或手机号" v-model="username" />
<view class="delete" @click="removeUsername" v-if="username">
<image :src="$util.img('upload/picture/member/apply_withdrawal/close.png')" mode="widthFix"></image>
<image :src="$util.img('public/uniapp/member/apply_withdrawal/close.png')" mode="widthFix"></image>
</view>
</view>
</view>
@ -17,7 +17,7 @@
<text class="unit">{{ $lang('common.currencySymbol') }}</text>
<input type="digit" class="withdraw-money" v-model="withdrawMoney" />
<view class="delete" @click="remove" v-if="withdrawMoney">
<image :src="$util.img('upload/picture/member/apply_withdrawal/close.png')" mode="widthFix"></image>
<image :src="$util.img('public/uniapp/member/apply_withdrawal/close.png')" mode="widthFix"></image>
</view>
</view>
<view class="bootom">
@ -30,11 +30,10 @@
<view class="withdraw-wrap">
<view class="withdraw-wrap-title">支付密码</view>
<view class="money-wrap">
<input type="digit" class="withdraw-money" v-model="buy_password" />
<input type="password" class="withdraw-money" v-model="buy_password" />
</view>
</view>
<view class="btn color-base-border ns-gradient-otherpages-member-widthdrawal-withdrawal"
:class="{ disabled: withdrawMoney == '' || withdrawMoney == 0 || username==''}" @click="withdraw">
<view class="btn color-base-border ns-gradient-otherpages-member-widthdrawal-withdrawal" :class="{ disabled: withdrawMoney == '' || withdrawMoney == 0 || username==''}" @click="withdraw">
确认转账
</view>
<loading-cover ref="loadingCover"></loading-cover>
@ -103,7 +102,7 @@ export default {
content: '您未设置支付密码,需设置支付密码后进行转账,点击确定前往支付密码设置',
success: function (res) {
if (res.confirm) {
_this.$util.redirectTo('/pages_tool/member/info_edit', {action: 'pay_password'}, '');
_this.$util.redirectTo('/pages_tool/member/pay_password',{'back':'/pages_tool/member/balance_transfer'});
} else if (res.cancel) {
_this.isSub = false;
console.log('用户点击取消');
@ -206,9 +205,6 @@ export default {
});
}
}
},
filters: {
/**

View File

@ -70,6 +70,7 @@
<text class="cell-tit">{{ $lang('paypassword') }}</text>
<text class="cell-more"></text>
</view>
<view class="info-list-cell info-list-con" hover-class="cell-hover" @click="modifyInfo('address')">
<text class="cell-tit">所在地址</text>
<text class="cell-tip" v-if="memberInfo.full_address">{{ memberInfo.full_address }} {{ memberInfo.address }}</text>

View File

@ -62,8 +62,8 @@
</view>
</view>
<!-- 修改密码 -->
<view v-if="indent == 'password' || indent == 'pay_password'" class="edit-info">
<block v-if="memberInfo.password =='' || memberInfo.pay_password == '' && memberInfo.mobile == ''">
<view v-if="indent == 'password'" class="edit-info">
<block v-if="memberInfo.password =='' && memberInfo.mobile == ''">
<view class="empty">
<view class="empty_img"><image :src="$util.img('public/uniapp/common/common-empty.png')" mode="aspectFit"></image></view>
<view class="color-tip margin-top margin-bottom">请先绑定手机再执行该操作</view>
@ -71,7 +71,7 @@
</view>
</block>
<block v-else>
<view class="edit-info-box" v-if="memberInfo.password">
<view class="edit-info-box" v-if="memberInfo.password && indent == 'password'">
<text class="info-name">{{ $lang('nowPassword') }}</text>
<input class="uni-input info-content input-len" type="password" maxlength="30" :placeholder="$lang('nowPassword')" v-model="formData.currentPassword" />
</view>
@ -97,12 +97,14 @@
<input class="uni-input info-content input-len" type="password" maxlength="30" :placeholder="$lang('confirmPassword')" v-model="formData.confirmPassword" />
</view>
<view class="save-item" @click="save(indent)">
<view class="save-item" @click="save('password')">
<button type="primary">{{ $lang('save') }}</button>
</view>
</block>
</view>
<!-- 修改手机号 -->
<view v-if="indent == 'mobile'" class="edit-info">
<view class="edit-info-box">

View File

@ -15,7 +15,6 @@
</view>
</view>
</template>
<script>
import mypOne from '@/pages_tool/components/myp-one/myp-one.vue';
export default {
@ -167,14 +166,12 @@ export default {
if (this.dynacodeData.seconds != 120) return;
if (this.dynacodeData.isSend) return;
this.dynacodeData.isSend = true;
this.$api.sendRequest({
url: '/api/member/paypwdcode',
success: res => {
this.dynacodeData.isSend = false;
if (res.code >= 0) {
this.key = res.data.key;
if (this.dynacodeData.seconds == 120 && this.dynacodeData.timer == null) {
this.dynacodeData.timer = setInterval(() => {
this.dynacodeData.seconds--;
@ -193,11 +190,7 @@ export default {
}
},
onLoad(option) {
if (option.back) this.back = option.back;
//
if (!uni.getStorageSync('token')) {
this.$util.redirectTo('/pages_tool/login/login');

View File

@ -237,6 +237,11 @@ export default {
}
});
break;
case 'pay_password':
this.$util.redirectTo('/pages_tool/member/pay_password', {
back: '/pages_tool/member/info'
});
break;
default:
this.$util.redirectTo('/pages_tool/member/info_edit', {
action
@ -351,7 +356,7 @@ export default {
case 'birthday':
this.modifyBirthday();
break;
case 'password' || 'pay_password':
case 'password':
this.modifyPassword();
break;
case 'mobile':
@ -581,7 +586,7 @@ export default {
});
},
modifyPassword() {
if ((this.indent=='password'&&this.memberInfo.password) || (this.indent=='pay_password'&&this.memberInfo.pay_password)) {
if (this.indent=='password' && this.memberInfo.password) {
var rule = [{
name: 'currentPassword',
checkType: 'required',
@ -786,7 +791,6 @@ export default {
}
},
async modifyMobile() {
var mobileRule = [{
name: 'mobile',
checkType: 'phoneno',
@ -856,7 +860,6 @@ export default {
*/
passwordMoblieCode() {
if (this.seconds != 120) return;
if (this.formData.mobileVercode == '') {
this.$util.showToast({
title: this.$lang("confirmCodeInput")