4 Commits

Author SHA1 Message Date
3e87a5aaf5 Merge branch 'master' of http://git.luyuan.tk/luyuan/deming into xbx 2020-08-24 14:23:22 +08:00
52e6489a2c 优惠券完成 2020-08-22 16:45:26 +08:00
92771d8174 图标 2020-08-22 09:46:30 +08:00
60a619fa7b fix 756 2020-08-22 09:00:00 +08:00
20 changed files with 96 additions and 192 deletions

12
App.vue
View File

@@ -28,7 +28,7 @@
// #endif // #endif
}, },
onShow(){ onShow(){
this.getVersion();
}, },
onHide(){ onHide(){
@@ -45,16 +45,6 @@
} }
}) })
}, },
getVersion() {
this.$u.post("Specialci/checkVersion",{ app_version: this.$app_version }).then(res => {
// console.log(res);
if(res.data.app_version != this.$app_version) {
this.$u.route('/pageE/setting/updateVersion', {
status: res.data.is_focus_upgrade
});
}
})
},
} }
} }
</script> </script>

View File

@@ -49,12 +49,4 @@ unescapeHTML(temp){}
* @return { object } promise 对象 resolve 返回文件服务器地址 reject 返回错误信息 * @return { object } promise 对象 resolve 返回文件服务器地址 reject 返回错误信息
*/ */
uploadFile({ url, name, filePath }) {} uploadFile({ url, name, filePath }) {}
/**
* 广告位跳转
* @param { String } type 跳转类型 1 商品 2 店铺 3 领取优惠券
* @param { String | Number } id 跳转id 商品id/商家id...
* @return { undefined } undefined
*/
jumpPage({ type, id }) ()
``` ```

View File

@@ -2,8 +2,8 @@
<view class="c-coupon"> <view class="c-coupon">
<view class="coupon-usable"> <view class="coupon-usable">
<view class="info-type" :style="{ backgroundImage: 'url(' + '/static/image/mine/30.png' + ')', backgroundSize:'contain', backgroundRepeat: 'no-repeat' }"> <view class="info-type" :style="{ backgroundImage: 'url(' + '/static/image/mine/30.png' + ')', backgroundSize:'contain', backgroundRepeat: 'no-repeat' }">
<div class="wrap_left_top" v-if="couponInfo.type == 1">{{ couponInfo.vouchertemplate_id == 1 ? '新人专享' : '平台优惠券' }}</div> <div class="wrap_left_top"></div>
<div class="wrap_left_top" v-else-if="couponInfo.type == 2">店铺优惠券</div> {{ couponInfo.type == 2 ? '店铺优惠券' : '平台优惠券' }}
</view> </view>
<view class="coupon-info"> <view class="coupon-info">
<view class="info-usable"> <view class="info-usable">

View File

@@ -1,9 +1,9 @@
<template> <template>
<view class="c-coupon" v-if="goodsClass.length"> <view class="c-coupon" v-if="goodsClass.length" @click="use">
<view :class="couponInfo.voucher_state != 1 ? 'coupon-unable' : 'coupon-usable'"> <view :class="couponInfo.voucher_state != 1 ? 'coupon-unable' : 'coupon-usable'" :style="{'width': type ? '650rpx' : '' }">
<view class="info-type" :style="{ backgroundImage: 'url(' + (couponInfo.voucher_state == 1 ? '/static/image/mine/30.png' : '/static/image/mine/31.png') + ')', backgroundSize:'contain', backgroundRepeat: 'no-repeat' }"> <view class="info-type" :style="{ backgroundImage: 'url(' + (couponInfo.voucher_state == 1 ? '/static/image/mine/30.png' : '/static/image/mine/31.png') + ')', backgroundSize:'contain', backgroundRepeat: 'no-repeat' }">
<div class="wrap_left_top" v-if="couponInfo.type == 1">{{ couponInfo.vouchertemplate_id == 1 ? '新人专享' : '平台优惠券' }}</div> <div class="wrap_left_top"></div>
<div class="wrap_left_top" v-else-if="couponInfo.type == 2">店铺优惠券</div> {{ couponInfo.type == 2 ? '店铺优惠券' : '平台优惠券' }}
</view> </view>
<view class="coupon-info"> <view class="coupon-info">
<view class="info-usable"> <view class="info-usable">
@@ -14,12 +14,13 @@
<view class="info-integral">兑换积分{{ couponInfo.voucher_points }}积分</view> <view class="info-integral">兑换积分{{ couponInfo.voucher_points }}积分</view>
<view class="info-date">有效期{{ couponInfo.voucher_startdate }}-{{ couponInfo.voucher_enddate }}</view> <view class="info-date">有效期{{ couponInfo.voucher_startdate }}-{{ couponInfo.voucher_enddate }}</view>
</view> </view>
<view class="coupon-btn"> <view class="coupon-btn" :style="{'right': type ? '110rpx' : '' }">
<text v-if="couponInfo.voucher_state == 1" @click="use">立即使用</text> <text v-if="couponInfo.voucher_state == 1">立即使用</text>
<image v-if="couponInfo.voucher_state == 2" src="/static/image/mine/28.png"></image> <image v-if="couponInfo.voucher_state == 2" src="/static/image/mine/28.png"></image>
<image v-if="couponInfo.voucher_state == 3" src="/static/image/mine/29.png"></image> <image v-if="couponInfo.voucher_state == 3" src="/static/image/mine/29.png"></image>
</view> </view>
</view> </view>
<image v-if="type" style="width:35rpx;height:35rpx;margin-left:14rpx;" :src="'/static/image/mine/' + (sel ? '41.png' : '42.png') "></image>
</view> </view>
</template> </template>
<script> <script>
@@ -37,6 +38,8 @@ export default {
status: Number, status: Number,
couponInfo: Object, couponInfo: Object,
goodsClass: Array, goodsClass: Array,
type:Boolean,
sel:Boolean
}, },
created() { created() {
// console.log(this.goodsClass); // console.log(this.goodsClass);
@@ -53,6 +56,7 @@ export default {
}, },
methods: { methods: {
use() { use() {
if(this.couponInfo.voucher_state != 1) return;
this.$emit('use', this.couponInfo); this.$emit('use', this.couponInfo);
}, },
}, },
@@ -63,6 +67,8 @@ export default {
position: relative; position: relative;
z-index: 9; z-index: 9;
margin-bottom: 30rpx; margin-bottom: 30rpx;
display: flex;
align-items: center;
@mixin coupon-image($url) { @mixin coupon-image($url) {
width: 690rpx; width: 690rpx;
height: 194rpx; height: 194rpx;

View File

@@ -50,8 +50,8 @@
data() { data() {
return { return {
remaining: 7, remaining: 7,
type: false, type: true,
banner: true, banner: false,
protocol: false, protocol: false,
heightOut: '', heightOut: '',
imgurl: [], imgurl: [],
@@ -116,18 +116,18 @@
}, },
// 3秒倒计时 // 3秒倒计时
remaining_time() { remaining_time() {
// this.timer = setInterval(() => { this.timer = setInterval(() => {
// this.remaining--; this.remaining--;
// if (this.remaining <= 0) { if (this.remaining <= 0) {
// clearInterval(this.timer); clearInterval(this.timer);
// console.log("完了") console.log("完了")
// // this.type = !this.type; this.type = !this.type;
// // this.banner = !this.banner; this.banner = !this.banner;
// } }
// }, 1000); }, 1000);
}, },
leap_over() { leap_over() {
// this.type = !this.type this.type = !this.type
this.banner = !this.banner; this.banner = !this.banner;
clearInterval(this.timer) clearInterval(this.timer)
// 获取屏幕高度 // 获取屏幕高度

View File

@@ -5,10 +5,6 @@ import uView from "uview-ui";
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.use(uView); Vue.use(uView);
App.mpType = 'app' App.mpType = 'app'
// 当前 app 版本号
Vue.prototype.$app_version = '1.0.0';
Vue.prototype.imService = new IMService(); Vue.prototype.imService = new IMService();
Vue.prototype.a = 1; Vue.prototype.a = 1;
import store from '@/common/store/index.js' import store from '@/common/store/index.js'

View File

@@ -1,44 +0,0 @@
<template>
<view style="width:750rpx" :style="{'height':height}">
<image @click="calose()" style="width:30rpx;height:30rpx;position: fixed;top:80rpx;right:30rpx;" src="/static/image/clons.png"></image>
<video :src="url" class="video" :style="{'padding-top':top,'height': width}" :autoplay="true"></video>
</view>
</template>
<style>
.video{
width: 750rpx;
}
</style>
<script>
export default {
name:"video",
data(){
return {
url:"",
top:0,
height:0,
width:0
}
},
onLoad(a){
const res = uni.getSystemInfoSync();
let height = res.windowHeight
let width = res.windowWidth
this.width = width + ( (height - width) / 2) + 'px'
console.log(this.width)
this.top = (height - width) / 2+ 'px'
console.log(this.top)
this.height = height + 'px';
console.log(a)
this.url = a.url
},
methods:{
calose(){
uni.navigateBack({
delta: 1
});
}
}
}
</script>

View File

@@ -71,11 +71,12 @@
</view> </view>
<text class="child_content">{{ child.content }}</text> <text class="child_content">{{ child.content }}</text>
</view> </view>
<!-- <view> --> <view>
<text class="more-comment" @click="getReplyList(item.id)" v-if="item.reply_count"> <text class="more-comment" @click="getReplyList(item.id)" v-if="item.reply_count">
{{ child_end[item.id] ? "暂无更多回复" : "展开更多回复" }} {{ child_end[item.id] ? "暂无更多回复" : "展开更多回复" }}
</text> </text>
<!-- </view> --> <text></text>
</view>
</view> </view>
</view> </view>
<view class="send-box" @click="openKeyInput"> <view class="send-box" @click="openKeyInput">
@@ -677,17 +678,14 @@
} }
.child_content { .child_content {
width: 550rpx; padding: 4rpx 0;
padding-top: 6rpx;
margin-left: 40rpx; margin-left: 40rpx;
font-size: 26rpx; font-size: 26rpx;
} }
.more-comment { .more-comment {
width: 150rpx; margin: 10rpx 0;
height: 40rpx;
font-size: 22rpx; font-size: 22rpx;
line-height: 4;
color: #999; color: #999;
} }

View File

@@ -70,13 +70,13 @@
<scroll-view class="coupon-choose" scroll-y style="height: 50vh;" v-if="this.couponType.type == 1"> <scroll-view class="coupon-choose" scroll-y style="height: 50vh;" v-if="this.couponType.type == 1">
<view class="title">优惠券详情</view> <view class="title">优惠券详情</view>
<view class="text">平台优惠券</view> <view class="text">平台优惠券</view>
<Coupon :couponInfo="coupon" @use="useCoupon($event)" :goodsClass="goodsClass" v-for="(coupon, index) in orderInfo.store_voucher_all_list" :key="index"></Coupon> <Coupon :couponInfo="coupon" @use="useCoupon($event)" :goodsClass="goodsClass" v-for="(coupon, index) in orderInfo.store_voucher_all_list" :key="index" :type="true" :sel="coupon.sel"></Coupon>
<u-empty text="无可用优惠券" mode="coupon" v-if="!orderInfo.store_voucher_all_list.length" style="height: 200rpx"></u-empty> <u-empty text="无可用优惠券" mode="coupon" v-if="!orderInfo.store_voucher_all_list.length" style="height: 200rpx"></u-empty>
</scroll-view> </scroll-view>
<scroll-view class="coupon-choose" scroll-y style="height: 50vh;" v-if="this.couponType.type == 2"> <scroll-view class="coupon-choose" scroll-y style="height: 50vh;" v-if="this.couponType.type == 2">
<view class="title">优惠券详情</view> <view class="title">优惠券详情</view>
<view class="text">店铺优惠券</view> <view class="text">店铺优惠券</view>
<Coupon :couponInfo="coupon" @use="useCoupon($event)" :goodsClass="goodsClass" v-for="(coupon, index) in orderInfo.store_voucher_list[this.couponType.store_id]" :key="index"></Coupon> <Coupon :couponInfo="coupon" @use="useCoupon($event)" :goodsClass="goodsClass" v-for="(coupon, index) in orderInfo.store_voucher_list[this.couponType.store_id]" :key="index" :type="true" :sel="coupon.sel"></Coupon>
<u-empty text="无可用优惠券" mode="coupon" v-if="!orderInfo.store_voucher_list[this.couponType.store_id].length" style="height: 200rpx"></u-empty> <u-empty text="无可用优惠券" mode="coupon" v-if="!orderInfo.store_voucher_list[this.couponType.store_id].length" style="height: 200rpx"></u-empty>
</scroll-view> </scroll-view>
</u-popup> </u-popup>
@@ -282,15 +282,42 @@ export default {
this.couponStatus = true; this.couponStatus = true;
}, },
useCoupon(coupon) { useCoupon(coupon) {
if(this.couponType.type == 1) this.choiceCoupon = coupon; console.log(coupon)
if(this.couponType.type == 1){
this.choiceCoupon = {}
for(let i in this.orderInfo.store_voucher_all_list){
if(this.orderInfo.store_voucher_all_list[i].voucher_id == coupon.voucher_id && !this.orderInfo.store_voucher_all_list[i].sel){
this.orderInfo.store_voucher_all_list[i].sel = true
this.choiceCoupon = coupon;
}else{
this.orderInfo.store_voucher_all_list[i].sel = false
}
}
this.$forceUpdate()
}
if(this.couponType.type == 2) { if(this.couponType.type == 2) {
Object.assign(this.storeCoupon, { this.storeCoupon = {}
[this.couponType.store_id]: coupon for(let i in this.orderInfo.store_voucher_list[this.couponType.store_id]){
}) console.log(this.orderInfo.store_voucher_list[this.couponType.store_id][i])
if(this.orderInfo.store_voucher_list[this.couponType.store_id][i].voucher_id == coupon.voucher_id && !this.orderInfo.store_voucher_list[this.couponType.store_id][i].sel){
this.orderInfo.store_voucher_list[this.couponType.store_id][i].sel = true
Object.assign(this.storeCoupon, {
[this.couponType.store_id]: coupon
})
}else{
this.orderInfo.store_voucher_list[this.couponType.store_id][i].sel = false
}
}
this.$forceUpdate()
} }
// console.log(this.choiceCoupon); // console.log(this.choiceCoupon);
// console.log(this.storeCoupon); // console.log(this.storeCoupon);
this.couponStatus = false; // this.couponStatus = false;
this.setTotalPrice(); // 计算总价 this.setTotalPrice(); // 计算总价
}, },
getFreight() { getFreight() {

View File

@@ -15,7 +15,6 @@
</view> </view>
</view> </view>
</block> </block>
<u-loadmore :status="loadStatus" bg-color="#ECECEC" margin-top="20" v-if="loadStatus=='nomore'" />
</view> </view>
</template> </template>
@@ -24,8 +23,9 @@
data() { data() {
return { return {
height:'600', height:'600',
actives: [], actives: [
loadStatus: 'loadmore'
]
}; };
}, },
onLoad(){ onLoad(){
@@ -45,9 +45,7 @@
messageactivityList(){ messageactivityList(){
this.$u.api.messageactivityList({}).then((res)=>{ this.$u.api.messageactivityList({}).then((res)=>{
if (res.errCode == 0) { if (res.errCode == 0) {
this.actives = res.data; this.actives = res.data;
// 目前没有分页,只无数据提示用,他们建议这样做
if(!this.actives.length) this.loadStatus = 'nomore';
} }
}) })
} }

View File

@@ -18,7 +18,6 @@
</view> </view>
</view> </view>
</view> </view>
<u-loadmore :status="loadStatus" bg-color="#ECECEC" margin-top="20" @loadmore="loadmore" />
</view> </view>
</template> </template>
@@ -27,45 +26,20 @@
data() { data() {
return { return {
actives: [], actives: [],
page: 1, page: 1
timer: true,
loadStatus: 'loadmore'
}; };
}, },
onLoad() { onLoad() {
this.getCartList(); this.getCartList();
}, },
onReachBottom() {
this.loadmore();
},
methods: { methods: {
loadmore() { getCartList() {
if(!this.timer) return false; this.$u.post("message/orderDeliveryList",{page: this.page}).then(res => {
this.loadStatus = "loading"; console.log(res.data.data)
this.page++; if (res.errCode == 0) {
this.getCartList({ load: 'loadmore' }).then(length => { this.actives = res.data.data;
if(length == 0) { }
this.page--; })
this.loadStatus = 'nomore';
} else {
this.loadStatus = 'loading';
}
}).catch(() => {
this.loadStatus = "nomore";
this.page--;
})
},
async getCartList({ load = 'reload' } = {}) {
const res = await this.$u.post("message/orderDeliveryList",{ page: this.page })
this.timer = true;
if (res.errCode == 0) {
if(load == 'reload') {
this.actives = res.data.data;
if(res.data.data.length < 12) this.loadStatus = "nomore";
}
else if(load == 'loadmore') this.actives.push(...res.data.data);
}
return res.data.data.length;
}, },
viewLogistics(item) { viewLogistics(item) {
let url; let url;

View File

@@ -2,7 +2,6 @@
<view id="viewes" :style="{height : height + 'px'}"> <view id="viewes" :style="{height : height + 'px'}">
<!-- 公告咨询 --> <!-- 公告咨询 -->
<notice :list="list"></notice> <notice :list="list"></notice>
<u-loadmore :status="loadStatus" bg-color="#ECECEC" margin-top="20" v-if="loadStatus=='nomore'" />
</view> </view>
</template> </template>
@@ -12,7 +11,6 @@
data() { data() {
return { return {
list: [], list: [],
loadStatus: 'loadmore'
}; };
}, },
onLoad() { onLoad() {
@@ -31,8 +29,6 @@
this.$u.api.informationList({}).then((res) => { this.$u.api.informationList({}).then((res) => {
if (res.errCode == 0) { if (res.errCode == 0) {
this.list = res.data; this.list = res.data;
// 目前没有分页,只无数据提示用
if(!this.list.length) this.loadStatus = 'nomore';
} }
}) })
} }
@@ -43,7 +39,7 @@
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss">
page { page {
background-color: #ECECEC; background-color: #ECECEC;
} }

View File

@@ -1,7 +1,7 @@
<template> <template>
<u-modal v-model="show" :show-cancel-button="is_focus_upgrade" confirm-text="升级" title="发现新版本" @cancel="cancel" @confirm="confirm"> <u-modal v-model="show" :show-cancel-button="true" confirm-text="升级" title="发现新版本" @cancel="cancel" @confirm="confirm">
<view class="u-update-content"> <view class="u-update-content">
<!-- <rich-text :nodes="content"></rich-text> --> <rich-text :nodes="content"></rich-text>
</view> </view>
</u-modal> </u-modal>
</template> </template>
@@ -10,7 +10,6 @@
export default { export default {
data() { data() {
return { return {
is_focus_upgrade: Boolean, // 是否强制更新
show: true, show: true,
// 传递给uni-app"rich-text"组件的内容,可以使用"<br>"进行换行 // 传递给uni-app"rich-text"组件的内容,可以使用"<br>"进行换行
content: ` content: `
@@ -20,9 +19,6 @@
`, `,
} }
}, },
onLoad(option) {
this.is_focus_upgrade = option.status == 1 ? false : true;
},
onReady() { onReady() {
this.show = true; this.show = true;
}, },
@@ -31,18 +27,7 @@
this.closeModal(); this.closeModal();
}, },
confirm() { confirm() {
// #ifdef APP-PLUS
if (plus.os.name == "Android") {
const appurl = "market://details?id=com.tencent.mobileqq"; //这个是通用应用市场如果想指定某个应用商店需要单独查这个应用商店的包名或scheme及参数
plus.runtime.openURL(appurl);
} else if(plus.os.name == "ios") {
const appurl = "itms-apps://itunes.apple.com/cn/app/id1144816653?mt=8";
plus.runtime.openURL(appurl);
}
// endif
// ifdef H5
this.closeModal(); this.closeModal();
// #endif
}, },
closeModal() { closeModal() {
uni.navigateBack(); uni.navigateBack();
@@ -51,11 +36,11 @@
} }
</script> </script>
<style lang="scss"> <style scoped lang="scss">
page { page {
background-color: rgba(0, 0, 0, 0); background-color: rgba(0, 0, 0, 0);
} }
.u-mode-center-box { /deep/ .u-mode-center-box {
background-color: transparent; background-color: transparent;
} }
// .u-full-content { // .u-full-content {

View File

@@ -3,7 +3,7 @@
<view class="header"> <view class="header">
<image src="../../pageD/images/file.png" class="tit-img" mode=""></image> <image src="../../pageD/images/file.png" class="tit-img" mode=""></image>
<view class="title">德铭阳光</view> <view class="title">德铭阳光</view>
<view class="tit-info">版本: {{ $app_version }} for {{ phone_type }}</view> <view class="tit-info">版本:{{ version }} for {{ phone_type }}</view>
</view> </view>
<view class="main"> <view class="main">
<view @click="viewAboutUs"> <view @click="viewAboutUs">
@@ -12,8 +12,8 @@
</view> </view>
<view class="version-view"> <view class="version-view">
<text class="title">版本更新</text> <text class="title">版本更新</text>
<text class="tips" v-if="version" @click="updateVersion">发现新版本: {{ version }}</text> <text class="tips" v-if="1">已是最新版本</text>
<text class="tips" v-else>已是最新版本</text> <text class="tips" v-else @click="updateVersion">发现新版本</text>
</view> </view>
</view> </view>
</view> </view>
@@ -22,9 +22,8 @@
export default { export default {
data() { data() {
return { return {
version: '', version: "",
phone_type: "", phone_type: "",
status: '',
} }
}, },
onLoad() { onLoad() {
@@ -34,12 +33,9 @@ export default {
methods: { methods: {
// 检查版本号 // 检查版本号
getVersion() { getVersion() {
this.$u.post("Specialci/checkVersion",{ app_version: this.$app_version }).then(res => { this.$u.post("Specialci/checkVersion",{ app_version: 1 }).then(res => {
// console.log(res); // console.log(res);
if(res.data.app_version != this.$app_version) { this.version = res.data.app_version;
this.version = res.data.app_version;
this.status = res.data.is_focus_upgrade; // 0 不强制 1 强制
}
}) })
}, },
viewAboutUs() { viewAboutUs() {
@@ -48,9 +44,7 @@ export default {
}); });
}, },
updateVersion() { updateVersion() {
this.$u.route('/pageE/setting/updateVersion', { this.$u.route('/pageE/setting/updateVersion');
status: this.status
});
} }
} }
}; };

View File

@@ -56,7 +56,6 @@
"style": { "style": {
"navigationBarTitleText": "", "navigationBarTitleText": "",
"navigationStyle": "custom", "navigationStyle": "custom",
"backgroundColorBottom":"#000000",
"app-plus": { "app-plus": {
"titleNView": false "titleNView": false
} }
@@ -80,13 +79,6 @@
{ {
"root": "pageB", "root": "pageB",
"pages": [ "pages": [
{
"path": "playVideo/index",
"style": {
"navigationStyle":"custom",
"backgroundColor":"#000000"
}
},
{ {
"path": "follow/index", "path": "follow/index",
"style": { "style": {
@@ -1019,10 +1011,10 @@
"style": { "style": {
"navigationStyle": "custom", // 取消本页面的导航栏 "navigationStyle": "custom", // 取消本页面的导航栏
"app-plus": { "app-plus": {
"animationType": "fade-in", "animationType": "fade-in", // 设置fade-in淡入动画为最合理的动画类型
"background": "transparent", "background": "transparent", // 背景透明
"backgroundColor": "rgba(0,0,0,0)", "backgroundColor": "rgba(0,0,0,0)", // 背景透明
"popGesture": "none" "popGesture": "none" // 关闭IOS屏幕左边滑动关闭当前页面的功能
} }
} }
}, },

View File

@@ -179,8 +179,8 @@ export default {
}) })
} else { } else {
this.getOrderNumber(); this.getOrderNumber();
this.getUserInfo();
} }
this.getUserInfo();
}, },
onNavigationBarButtonTap(e) { onNavigationBarButtonTap(e) {
// console.log(e); // console.log(e);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1008 B

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
static/image/mine/41.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
static/image/mine/42.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB