Compare commits
42 Commits
xbx-new
...
f4ba8edec2
| Author | SHA1 | Date | |
|---|---|---|---|
|
f4ba8edec2
|
|||
|
ccca4992ab
|
|||
| 704fb038df | |||
|
|
1fad28b7b0 | ||
| 840ba58aa6 | |||
|
6039328f54
|
|||
| 0de127d351 | |||
|
|
b1b4298721 | ||
|
e98ad66060
|
|||
| 2d8e738164 | |||
|
|
ee3ba5b0dc | ||
|
|
8937a31684 | ||
| 993e1bc647 | |||
|
97c9774cc4
|
|||
|
839b1728f0
|
|||
| 0e21019107 | |||
| 4dfacfb524 | |||
| d3154dc864 | |||
| 8f02597787 | |||
| 16115ba111 | |||
|
36f0675689
|
|||
|
18c99cd668
|
|||
| 5f233b8e06 | |||
| 916b1e0cbd | |||
|
|
2e36f2a22f | ||
| af612ef89e | |||
| 95c55de38b | |||
| d06394f6ad | |||
|
f4de9fe13b
|
|||
| 2512923891 | |||
| 4ab89711b2 | |||
| 4876ddb383 | |||
|
|
9b5fca48a2 | ||
| 81955085b5 | |||
| ffa18c92d2 | |||
| b63a84149e | |||
| 1aee3f3320 | |||
| 6d0c6a6b15 | |||
|
3e87a5aaf5
|
|||
|
52e6489a2c
|
|||
|
92771d8174
|
|||
|
60a619fa7b
|
5
App.vue
5
App.vue
@@ -28,7 +28,10 @@
|
||||
// #endif
|
||||
},
|
||||
onShow(){
|
||||
this.getVersion();
|
||||
// this.getVersion();
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
onHide(){
|
||||
|
||||
|
||||
@@ -86,11 +86,12 @@ export default {
|
||||
return vm.$u.post('Goods/getGoodsClassRecommend');
|
||||
},
|
||||
// goodsListByClassId
|
||||
goodsListByClassId({ gc_id, page, order }) {
|
||||
goodsListByClassId({ gc_id, page, order, keyword }) {
|
||||
return vm.$u.post('goods/goodsListByClassId', {
|
||||
gc_id: gc_id,
|
||||
page: page,
|
||||
order: order,
|
||||
keyword:keyword
|
||||
});
|
||||
},
|
||||
// 商品推荐
|
||||
@@ -364,6 +365,14 @@ export default {
|
||||
addrefundall({order_id,reason_info}) {
|
||||
return vm.$u.post('order/add_refund_all',{order_id,reason_info})
|
||||
},
|
||||
//提示文字
|
||||
tips(){
|
||||
return vm.$u.post('Shop/tips')
|
||||
},
|
||||
//内容
|
||||
tipsinfo({document_code}){
|
||||
return vm.$u.post('Shop/tipInfo',{document_code})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -454,6 +454,19 @@ export default {
|
||||
//获取默认头像
|
||||
getDefaultAvatar(){
|
||||
return vm.$u.post("member/getDefaultAvatar")
|
||||
},
|
||||
// 第三方账号绑定【微信|QQ】
|
||||
bindingThird({ openid, type }) {
|
||||
return vm.$u.post("auth/memberBindThird", {
|
||||
third_openid: openid,
|
||||
third_type: type,
|
||||
})
|
||||
},
|
||||
// 解绑
|
||||
unbindingThird({ type }) {
|
||||
return vm.$u.post("auth/memberUnbindThird", {
|
||||
third_type: type,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="c-coupon" v-if="goodsClass.length">
|
||||
<view :class="couponInfo.voucher_state != 1 ? 'coupon-unable' : 'coupon-usable'">
|
||||
<view class="c-coupon" v-if="goodsClass.length" @click="use">
|
||||
<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' }">
|
||||
<div class="wrap_left_top" v-if="couponInfo.type == 1">{{ couponInfo.vouchertemplate_id == 1 ? '新人专享' : '平台优惠券' }}</div>
|
||||
<div class="wrap_left_top" v-else-if="couponInfo.type == 2">店铺优惠券</div>
|
||||
@@ -14,12 +14,13 @@
|
||||
<view class="info-integral">兑换积分:{{ couponInfo.voucher_points }}积分</view>
|
||||
<view class="info-date">有效期{{ couponInfo.voucher_startdate }}-{{ couponInfo.voucher_enddate }}</view>
|
||||
</view>
|
||||
<view class="coupon-btn">
|
||||
<text v-if="couponInfo.voucher_state == 1" @click="use">立即使用</text>
|
||||
<view class="coupon-btn" :style="{'right': type ? '110rpx' : '' }">
|
||||
<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 == 3" src="/static/image/mine/29.png"></image>
|
||||
</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>
|
||||
</template>
|
||||
<script>
|
||||
@@ -37,6 +38,8 @@ export default {
|
||||
status: Number,
|
||||
couponInfo: Object,
|
||||
goodsClass: Array,
|
||||
type:Boolean,
|
||||
sel:Boolean
|
||||
},
|
||||
created() {
|
||||
// console.log(this.goodsClass);
|
||||
@@ -53,6 +56,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
use() {
|
||||
if(this.couponInfo.voucher_state != 1) return;
|
||||
this.$emit('use', this.couponInfo);
|
||||
},
|
||||
},
|
||||
@@ -63,6 +67,8 @@ export default {
|
||||
position: relative;
|
||||
z-index: 9;
|
||||
margin-bottom: 30rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@mixin coupon-image($url) {
|
||||
width: 690rpx;
|
||||
height: 194rpx;
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
<view class="swiper-item uni-bg-red">
|
||||
<image :src=" 'https://' + item.launch_path"></image>
|
||||
</view>
|
||||
<view class="btn-init" v-if="parseInt(index) == 2" @click="goNext">立即体验</view>
|
||||
</swiper-item>
|
||||
<view class="btn-init" v-if="parseInt(index) == list.length - 1" @click="goNext">立即体验</view>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name" : "德铭阳光",
|
||||
"appid" : "__UNI__EBFF00A",
|
||||
"description" : "",
|
||||
"versionName" : "1.0.0",
|
||||
"versionName" : "1.0.1",
|
||||
"versionCode" : "100",
|
||||
"transformPx" : false,
|
||||
/* 5+App特有相关 */
|
||||
@@ -16,6 +16,13 @@
|
||||
"autoclose" : true,
|
||||
"delay" : 0
|
||||
},
|
||||
"safearea" : {
|
||||
//安全区域配置,仅iOS平台生效
|
||||
"bottom" : {
|
||||
// 底部安全区域配置
|
||||
"offset" : "none" // 底部安全区域偏移,"none"表示不空出安全区域,"auto"自动计算空出安全区域,默认值为"none"
|
||||
}
|
||||
},
|
||||
/* 模块配置 */
|
||||
"modules" : {
|
||||
"OAuth" : {},
|
||||
|
||||
@@ -37,6 +37,10 @@
|
||||
<text>{{ goodsInfo.is_collect == 1 ? '已收藏' : '收藏' }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="shuliang">
|
||||
<text>历史销售数量:{{goodsInfo.goods_salenum}}</text>
|
||||
<text>库存仅剩数量:{{goodsInfo.goods_storage}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
<!-- <navs :value="领券"></navs> -->
|
||||
@@ -776,7 +780,15 @@ export default {
|
||||
.goods-name {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
}
|
||||
.shuliang{
|
||||
padding-top: 33rpx;
|
||||
font-size: 24rpx;
|
||||
color:#656565;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.price-collect {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -1252,6 +1264,7 @@ export default {
|
||||
font-size: 30rpx;
|
||||
color: #ff3131;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
.num {
|
||||
|
||||
33
pageB/tipsinfo/index.vue
Normal file
33
pageB/tipsinfo/index.vue
Normal file
@@ -0,0 +1,33 @@
|
||||
<template>
|
||||
<view class="u-content">
|
||||
<u-parse :html="info"></u-parse>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
.u-content{
|
||||
line-height: 46rpx;
|
||||
font-size: 30rpx;
|
||||
color: #333;
|
||||
padding: 30rpx;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
export default {
|
||||
data(){
|
||||
return {
|
||||
info:""
|
||||
}
|
||||
},
|
||||
onLoad(o){
|
||||
console.log(o.id)
|
||||
this.$u.api.tipsinfo({document_code:o.id}).then((res)=>{
|
||||
console.log(JSON.stringify(res))
|
||||
uni.setNavigationBarTitle({
|
||||
title: res.data.document_title
|
||||
});
|
||||
this.info = res.data.document_content
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -500,7 +500,6 @@
|
||||
|
||||
.container {
|
||||
position: relative;
|
||||
background-color: #FF0000 !important;
|
||||
}
|
||||
|
||||
/* 关闭 */
|
||||
|
||||
@@ -70,13 +70,13 @@
|
||||
<scroll-view class="coupon-choose" scroll-y style="height: 50vh;" v-if="this.couponType.type == 1">
|
||||
<view class="title">优惠券详情</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>
|
||||
</scroll-view>
|
||||
<scroll-view class="coupon-choose" scroll-y style="height: 50vh;" v-if="this.couponType.type == 2">
|
||||
<view class="title">优惠券详情</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>
|
||||
</scroll-view>
|
||||
</u-popup>
|
||||
@@ -282,15 +282,42 @@ export default {
|
||||
this.couponStatus = true;
|
||||
},
|
||||
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) {
|
||||
Object.assign(this.storeCoupon, {
|
||||
[this.couponType.store_id]: coupon
|
||||
})
|
||||
this.storeCoupon = {}
|
||||
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.storeCoupon);
|
||||
this.couponStatus = false;
|
||||
// this.couponStatus = false;
|
||||
this.setTotalPrice(); // 计算总价
|
||||
},
|
||||
getFreight() {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<view class="classify-goods">
|
||||
<u-search style="padding: 0 30rpx" placeholder="请搜索商品" v-model="keyword" @search="select" @custom="select"></u-search>
|
||||
<view class="tab-container">
|
||||
<view class="salenum" :class="{ 'current' : current == 0 }" @click="switchCurrent(0)">销量</view>
|
||||
<view class="price" :class="{ 'current' : current == 1 }" @click="switchCurrent(1)">
|
||||
@@ -19,6 +20,7 @@
|
||||
<view class="briefing u-line-1">{{ goods.goods_advword }}</view>
|
||||
<!-- <view class="price">¥{{ goods.goods_price }}</view> -->
|
||||
<view class="price">
|
||||
<view class="type-tag" v-show="goods.goods_type != 1">{{ goods.goods_type == 2 ? "秒杀" : "拼团" }}</view>
|
||||
<view class="present">¥{{ goods.goods_price }}</view>
|
||||
<view class="origin">¥{{ goods.goods_marketprice }}</view>
|
||||
</view>
|
||||
@@ -42,6 +44,8 @@ export default {
|
||||
scrollHeight: '',
|
||||
loadStatus: 'loadmore',
|
||||
timer: true, // 防止上拉加载短时间内多次调用
|
||||
keyword:"",
|
||||
sel:""
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -80,6 +84,7 @@ export default {
|
||||
gc_id: this.cid,
|
||||
page: this.page,
|
||||
order: sort,
|
||||
keyword:this.sel
|
||||
})
|
||||
this.timer = true;
|
||||
if(res.errCode == 0) {
|
||||
@@ -123,6 +128,11 @@ export default {
|
||||
id: id,
|
||||
type: 1 // 商品详情 商品类型 1普通 2拼团 3秒杀 4优惠券
|
||||
});
|
||||
},
|
||||
select(){
|
||||
this.sel = this.keyword;
|
||||
this.page = 1;
|
||||
this.goodsListByClassId({ laod: 'reload' });
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -200,6 +210,13 @@ export default {
|
||||
.price {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.type-tag {
|
||||
padding: 4rpx 10rpx;
|
||||
color: #fff;
|
||||
font-size: 22rpx;
|
||||
border-radius: 10rpx;
|
||||
background-color: #FF7810;
|
||||
}
|
||||
.present {
|
||||
font-size: 26rpx;
|
||||
color: rgba(255,49,49,1);
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
<style lang="scss">
|
||||
page {
|
||||
background-color: #ECECEC;
|
||||
}
|
||||
|
||||
@@ -128,6 +128,8 @@
|
||||
this.friend = JSON.parse(options.id);
|
||||
this.currentUser = this.imService.currentUser;
|
||||
let privateMessages = this.imService.getPrivateMessages(this.friend.uuid);
|
||||
this.imService.uid = this.friend.uuid;
|
||||
|
||||
this.messages = privateMessages.sentMessages;
|
||||
this.pendingMessages = privateMessages.pendingMessages;
|
||||
|
||||
@@ -153,6 +155,7 @@
|
||||
this.imService.onPrivateHistoryLoad = (friendId, messages) =>{};
|
||||
//将未读消息数清零
|
||||
this.imService.resetFriendUnReadMessage(this.friend);
|
||||
this.imService.uid = 0;
|
||||
},
|
||||
methods: {
|
||||
bindtapInput(){
|
||||
|
||||
@@ -10,6 +10,10 @@
|
||||
<view>{{ item.title }}</view>
|
||||
<image src="../static/mine/21.png"></image>
|
||||
</view>
|
||||
<view class="list-item" @click="clearCache">
|
||||
<view>清除缓存</view>
|
||||
<view class="left-text">{{ fileSizeString }}</view>
|
||||
</view>
|
||||
<view class="list-item" @click="sheetStatus=true">
|
||||
<view>退出登录</view>
|
||||
<image src="../static/mine/21.png"></image>
|
||||
@@ -58,13 +62,16 @@
|
||||
title: '证件中心',
|
||||
link: '../mine/ArticleDetails?type=1'
|
||||
},
|
||||
{
|
||||
title: '第三方绑定',
|
||||
link: './binding'
|
||||
},
|
||||
{
|
||||
title: '屏蔽用户',
|
||||
link: './ShieldUsers'
|
||||
},
|
||||
{
|
||||
title: '关于我们',
|
||||
// link: '../mine/ArticleDetails?type=2'
|
||||
link: '/pageE/setting/version'
|
||||
},
|
||||
{
|
||||
@@ -73,9 +80,13 @@
|
||||
},
|
||||
],
|
||||
content: "是否退出登录!",
|
||||
show: false
|
||||
show: false,
|
||||
fileSizeString: "", // 缓存大小
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getCache();
|
||||
},
|
||||
methods: {
|
||||
...mapMutations(['logout']),
|
||||
// 退出登录选择 0:切换账号 | 1:退出登录
|
||||
@@ -85,6 +96,45 @@
|
||||
this.show = true;
|
||||
}
|
||||
},
|
||||
// 获取缓存
|
||||
getCache() {
|
||||
let _this = this;
|
||||
// #ifdef APP-PLUS
|
||||
plus.cache.calculate(function(size) {
|
||||
let sizeCache = size;
|
||||
if (sizeCache == 0) {
|
||||
_this.fileSizeString = "0B";
|
||||
} else if (sizeCache < 1024) {
|
||||
_this.fileSizeString = sizeCache + "B";
|
||||
} else if (sizeCache < 1048576) {
|
||||
_this.fileSizeString = (sizeCache / 1024).toFixed(2) + "KB";
|
||||
} else if (sizeCache < 1073741824) {
|
||||
_this.fileSizeString = (sizeCache / 1048576).toFixed(2) + "MB";
|
||||
} else {
|
||||
_this.fileSizeString = (sizeCache / 1073741824).toFixed(2) + "GB";
|
||||
}
|
||||
});
|
||||
// #endif
|
||||
},
|
||||
// 清除缓存
|
||||
clearCache() {
|
||||
// #ifdef APP-PLUS
|
||||
uni.showModal({
|
||||
title: "确定要清理缓存吗?",
|
||||
cancelColor: "#999",
|
||||
confirmColor: "#f00",
|
||||
success: (res) => {
|
||||
// console.log(res);
|
||||
if (res.confirm) {
|
||||
plus.cache.clear(function(e) {
|
||||
console.log(e);
|
||||
})
|
||||
}
|
||||
this.getCache();
|
||||
}
|
||||
})
|
||||
// #endif
|
||||
},
|
||||
toNextPage(url, ...params) {
|
||||
uni.navigateTo({
|
||||
url: url
|
||||
@@ -122,6 +172,11 @@
|
||||
width: 14rpx;
|
||||
height: 24rpx;
|
||||
}
|
||||
|
||||
.left-text {
|
||||
margin-left: auto;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
129
pageE/setting/binding.vue
Normal file
129
pageE/setting/binding.vue
Normal file
@@ -0,0 +1,129 @@
|
||||
<template>
|
||||
<view class="binding">
|
||||
<view class="binding-item" v-for="(item, index) in bangdingList" :key="index">
|
||||
<view class="title">{{ item.title }}</view>
|
||||
<view class="btn unbundling-btn" @click="unbinding(item.type)" v-if="userInfo[item.name]">
|
||||
<image src="/static/image/mine/44.png"></image>
|
||||
<text>解绑</text>
|
||||
</view>
|
||||
<view class="btn bundling-btn" @click="binding(item.provider, item.type)" v-else>
|
||||
<image src="/static/image/mine/43.png"></image>
|
||||
<text>绑定</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
userInfo: '',
|
||||
bangdingList: [
|
||||
{
|
||||
title: 'QQ',
|
||||
provider: 'qq', // uni 登录 provider
|
||||
type: 'qq', // 后台需要解绑的参数名 type
|
||||
name: 'member_qqopenid', // 后台返回是否绑定的字段名
|
||||
},
|
||||
{
|
||||
title: '微信',
|
||||
provider: 'weixin',
|
||||
type: 'wechat',
|
||||
name: 'member_wxopenid',
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getMemberInfo();
|
||||
},
|
||||
methods: {
|
||||
getMemberInfo() {
|
||||
this.$u.api.getMemberInfo().then(res => {
|
||||
if (res.errCode == 0) {
|
||||
this.userInfo = res.data.MemberArray;
|
||||
}
|
||||
})
|
||||
},
|
||||
binding(provider, type) {
|
||||
uni.login({
|
||||
provider: provider,
|
||||
success: (loginRes) => {
|
||||
console.log(loginRes);
|
||||
uni.getUserInfo({
|
||||
provider: provider,
|
||||
success: (res) => {
|
||||
console.log(res.userInfo.openId);
|
||||
this.$u.api.bindingThird({
|
||||
openid: res.userInfo.openId,
|
||||
type: type
|
||||
}).then(res => {
|
||||
this.$u.toast(res.message);
|
||||
if(res.errCode == 0) {
|
||||
this.getMemberInfo();
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
fail: (e) => {
|
||||
console.log(e);
|
||||
}
|
||||
});
|
||||
},
|
||||
unbinding(type) {
|
||||
this.$u.api.unbindingThird({ type: type }).then(res => {
|
||||
this.$u.toast(res.message);
|
||||
if(res.errCode == 0) {
|
||||
this.getMemberInfo();
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.binding {
|
||||
min-height: calc(100vh - var(--window-top));
|
||||
background-color: #ECECEC;
|
||||
padding-top: 1rpx;
|
||||
.binding-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 35rpx 30rpx;
|
||||
height: 98rpx;
|
||||
background-color: #FFFFFF;
|
||||
&:not(:last-child) {
|
||||
margin-bottom: 2rpx;
|
||||
}
|
||||
.title {
|
||||
font-size: 30rpx;
|
||||
color: rgba(52,52,52,1);
|
||||
}
|
||||
.btn {
|
||||
// width: 112rpx;
|
||||
height: 48rpx;
|
||||
border-radius: 10rpx;
|
||||
font-size: 24rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 12rpx 16rpx;
|
||||
> image {
|
||||
width: 26rpx;
|
||||
height: 26rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
}
|
||||
.unbundling-btn {
|
||||
border: 1rpx solid rgba(102,102,102,1);
|
||||
color: rgba(102,102,102,1);
|
||||
}
|
||||
.bundling-btn {
|
||||
border: 1rpx solid rgba(255,120,16,1);
|
||||
color: #FF7810;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -18,6 +18,7 @@
|
||||
2. 新增Modal模态框组件<br>
|
||||
3. 新增压窗屏组件,可以在APP上以弹窗的形式遮盖导航栏和底部tabbar<br>
|
||||
`,
|
||||
isAutoUpdate: false,
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
@@ -45,7 +46,13 @@
|
||||
// #endif
|
||||
},
|
||||
closeModal() {
|
||||
uni.navigateBack();
|
||||
const pages = getCurrentPages();
|
||||
// console.log(pages);
|
||||
if(pages.length == 2) {
|
||||
this.$u.route('/pageA/welcome/welcome');
|
||||
} else {
|
||||
uni.navigateBack();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ export default {
|
||||
},
|
||||
updateVersion() {
|
||||
this.$u.route('/pageE/setting/updateVersion', {
|
||||
status: this.status
|
||||
status: this.status,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
36
pages.json
36
pages.json
@@ -80,6 +80,17 @@
|
||||
{
|
||||
"root": "pageB",
|
||||
"pages": [
|
||||
{
|
||||
"path": "tipsinfo/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"app-plus":{
|
||||
"titleNView":{
|
||||
"backgroundColor":"#ffffff"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "playVideo/index",
|
||||
"style": {
|
||||
@@ -124,10 +135,10 @@
|
||||
"backgroundColor":"#ffffff",
|
||||
"buttons": [
|
||||
{
|
||||
"type":"none",
|
||||
"text":"\ue636",
|
||||
// "type":"none",
|
||||
"text":"\ue503",
|
||||
"float":"right",
|
||||
"fontSize":"18",
|
||||
"fontSize":"20",
|
||||
"fontSrc": "/static/fonts/cart.ttf"
|
||||
}
|
||||
]
|
||||
@@ -156,9 +167,9 @@
|
||||
"buttons": [
|
||||
{
|
||||
"type":"none",
|
||||
"text":"\ue636",
|
||||
"text":"\ue503",
|
||||
"float":"right",
|
||||
"fontSize":"18",
|
||||
"fontSize":"20",
|
||||
"fontSrc": "/static/fonts/cart.ttf"
|
||||
}
|
||||
]
|
||||
@@ -367,7 +378,7 @@
|
||||
// },
|
||||
{
|
||||
"type":"none",
|
||||
"text":"\ue636",
|
||||
"text":"\ue503",
|
||||
"float":"right",
|
||||
"fontSize":"22",
|
||||
"fontSrc": "/static/fonts/cart.ttf",
|
||||
@@ -988,6 +999,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/binding",
|
||||
"style": {
|
||||
"navigationBarTitleText": "第三方绑定",
|
||||
"app-plus": {
|
||||
"titleSize": "36px",
|
||||
"titleNView": {
|
||||
"titleColor": "#333333",
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/ShieldUsers",
|
||||
"style": {
|
||||
|
||||
@@ -262,7 +262,8 @@
|
||||
loading: '努力加载中',
|
||||
nomore: '实在没有了'
|
||||
},
|
||||
refresher:true
|
||||
refresher:true,
|
||||
zqie:false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
@@ -354,7 +355,11 @@
|
||||
tabLiveList() {
|
||||
uni.showLoading({
|
||||
title: "loading..."
|
||||
})
|
||||
})
|
||||
if(this.zqie){
|
||||
return ;
|
||||
}
|
||||
this.zqie = true;
|
||||
this.$u.api.tabLiveList({page:this.live_page}).then((res) => {
|
||||
// uni.stopPullDownRefresh();
|
||||
this.status_live = "loading";
|
||||
@@ -371,6 +376,7 @@
|
||||
} else if (res.data.data.length == 0 && this.live_page > 1) {
|
||||
this.status_live = "nomore";
|
||||
} else {
|
||||
console.log(this.live_page,1223)
|
||||
this.tabLiveLists = this.tabLiveLists.concat(res.data.data);
|
||||
console.log(this.tabLiveLists)
|
||||
}
|
||||
@@ -381,6 +387,8 @@
|
||||
} else {
|
||||
this.status_live = "nomore"
|
||||
}
|
||||
this.zqie = false;
|
||||
|
||||
|
||||
})
|
||||
},
|
||||
|
||||
@@ -100,9 +100,10 @@
|
||||
<image src="/static/image/mine/16.png"></image>
|
||||
<view>使用帮助</view>
|
||||
</view>
|
||||
<view @click="toOtherPage('/more/Complaints')">
|
||||
<view class="badge-box" @click="toOtherPage('/more/Complaints')">
|
||||
<image src="/static/image/mine/15.png"></image>
|
||||
<view>投诉意见</view>
|
||||
<u-badge size="mini" :count="userInfo.feedback_show" :offset="offset" type="error"></u-badge>
|
||||
</view>
|
||||
<!-- <view></view> -->
|
||||
</view>
|
||||
@@ -163,7 +164,8 @@ export default {
|
||||
link: '/order/Index?current=7',
|
||||
number: '',
|
||||
},
|
||||
]
|
||||
],
|
||||
offset: [-10,6]
|
||||
};
|
||||
},
|
||||
filters: {
|
||||
@@ -466,6 +468,9 @@ export default {
|
||||
margin-right: 36rpx;
|
||||
}
|
||||
}
|
||||
.badge-box {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<u-swiper :list="list" mode="dot" @click="clickImage"></u-swiper>
|
||||
</view>
|
||||
<view class="chengnuo">
|
||||
<view>
|
||||
<!-- <view>
|
||||
<image src="/static/image/shop/4.png"></image>
|
||||
<text>免费洗衣</text>
|
||||
</view>
|
||||
@@ -32,6 +32,10 @@
|
||||
<view>
|
||||
<image src="/static/image/shop/7.png"></image>
|
||||
<text>上门取件</text>
|
||||
</view> -->
|
||||
<view v-for="(item,index) in tips" :key="index" @click="totips(item.document_code)">
|
||||
<image :src="item.file_name"></image>
|
||||
<text>{{item.document_title}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="fenlei">
|
||||
@@ -95,12 +99,14 @@
|
||||
pinTuanPush: {}, // 拼团推荐
|
||||
activityInfo: {},
|
||||
areaList: [], // 位置信息
|
||||
tips:[]
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getShopTopList();
|
||||
this.getLocation(); // 获取定位
|
||||
this.getStoreActivity();
|
||||
this.gettips()
|
||||
// this.area = uni.getStorageSync("address") || "请选择";
|
||||
},
|
||||
onShow() {
|
||||
@@ -110,6 +116,21 @@
|
||||
this.getAllLoaction(); // 获取位置
|
||||
},
|
||||
methods: {
|
||||
totips(id){
|
||||
this.$u.route({
|
||||
type:"to",
|
||||
url:"/pageB/tipsinfo/index",
|
||||
params:{
|
||||
id
|
||||
}
|
||||
})
|
||||
},
|
||||
gettips(){
|
||||
this.$u.api.tips().then((res)=>{
|
||||
console.log(res)
|
||||
this.tips = res.data
|
||||
})
|
||||
},
|
||||
sousuo() {
|
||||
// console.log(123)
|
||||
this.$u.route({
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<view class="hot" :style="{'top': top + 10 * rpx}">
|
||||
<text class="hottext">{{room.onlineUsers.users.length}}</text>
|
||||
</view>
|
||||
<image class="cart" src="../../static/cart.png" @click="show = true">
|
||||
<image v-if="list.length != 0" class="cart" src="../../static/cart.png" @click="show = true">
|
||||
|
||||
</image>
|
||||
<view class="danmufasongbox" @click="danmu = $store.state.hasLogin">
|
||||
@@ -29,7 +29,7 @@
|
||||
<!-- <image class="liketap" src="../../static/like.png" @click=""> -->
|
||||
|
||||
<view class="danmuinputbox" v-if="danmu">
|
||||
<input type="text" focus="true" style="width:600rpx;margin-left:30rpx;font-size:26rpx" maxlength="20" @blur="danmu=false" :focus="danmu" v-model="danmutext">
|
||||
<input type="text" focus="true" style="width:600rpx;margin-left:30rpx;font-size:26rpx" maxlength="100" @blur="danmu=false" :focus="danmu" v-model="danmutext">
|
||||
<view class="danmufasong" @click="sendMessage(room.MessageType.CHAT,danmutext)">
|
||||
<text style="font-size:24rpx;color:#fff">发送</text>
|
||||
</view>
|
||||
@@ -428,6 +428,7 @@ export default {
|
||||
that.room = that.chatRoomService.room;
|
||||
that.chatRoomService.initialWhenOnlineUserChange(that.newpeople)
|
||||
that.chatRoomService.initialWhenNewMessage(that.whenNewMessage);
|
||||
that.chatRoomService.jieshuzhibo = this.jieshu;
|
||||
this.$forceUpdate();
|
||||
console.log(that.room)
|
||||
|
||||
@@ -440,6 +441,19 @@ export default {
|
||||
this.chatRoomService.quitRoom();
|
||||
},
|
||||
methods:{
|
||||
jieshu(text){
|
||||
console.log(text)
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: text.content,
|
||||
showCancel:false,
|
||||
success: function (res) {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
errors(a){
|
||||
console.log(a)
|
||||
},
|
||||
|
||||
Binary file not shown.
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
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
BIN
static/image/mine/42.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
BIN
static/image/mine/43.png
Normal file
BIN
static/image/mine/43.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 665 B |
BIN
static/image/mine/44.png
Normal file
BIN
static/image/mine/44.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
@@ -8,6 +8,8 @@
|
||||
import GoEasyIM from './goeasy-im-1.0.9';
|
||||
// import GoEasyIM from './goeasy-im-1.1.1';
|
||||
import restApi from './restapi';
|
||||
import music from './music.mp3'
|
||||
|
||||
|
||||
function Friend(uuid, name, avatar,time = "", text = "",date = "",unReadMessage = 0) {
|
||||
this.uuid = uuid;
|
||||
@@ -52,6 +54,8 @@ function IMService() {
|
||||
|
||||
//群聊消息记录,map格式,每个群对应一个数组
|
||||
this.groupMessages = {};
|
||||
|
||||
this.uid = 0;
|
||||
|
||||
/*
|
||||
* 监听器们
|
||||
@@ -73,6 +77,8 @@ function IMService() {
|
||||
//群列表发生改变
|
||||
this.onGroupListChange = function (groups) {};
|
||||
|
||||
//结束直播
|
||||
this.jieshuzhibo = function(messages){}
|
||||
|
||||
this.whenNewMessage = function () {
|
||||
|
||||
@@ -283,6 +289,14 @@ IMService.prototype.initialIMListeners = function () {
|
||||
friends.sort(paixu)
|
||||
|
||||
}
|
||||
if(message.senderId != this.uid){
|
||||
const innerAudioContext = uni.createInnerAudioContext();
|
||||
innerAudioContext.autoplay = true;
|
||||
innerAudioContext.src = music;
|
||||
innerAudioContext.onPlay(() => {
|
||||
console.log('开始播放');
|
||||
});
|
||||
}
|
||||
|
||||
let that = this
|
||||
if(!friend && friend == undefined){
|
||||
@@ -773,6 +787,11 @@ IMService.prototype.initialWhenOnlineUserChange = function (whenOnlineUserChange
|
||||
IMService.prototype.listenerNewMessage = function () {
|
||||
|
||||
this.im.on(GoEasyIM.EVENT.GROUP_MESSAGE_RECEIVED, (message) => {
|
||||
console.log(message)
|
||||
if(message.senderId == 0){
|
||||
this.jieshuzhibo(JSON.parse(message.payload.text));
|
||||
return;
|
||||
}
|
||||
var content = JSON.parse(message.payload.text);
|
||||
this.addNewMessage(message);
|
||||
this.whenNewMessage(content);
|
||||
|
||||
BIN
static/music.mp3
Normal file
BIN
static/music.mp3
Normal file
Binary file not shown.
Reference in New Issue
Block a user