update: 长按图片测试问题,实现订阅消息功能

This commit is contained in:
mixtan 2025-09-20 09:14:44 +08:00
parent 41a6ada67b
commit 930cfd4886
3 changed files with 111 additions and 65 deletions

View File

@ -169,9 +169,10 @@
}"> }">
<label v-if="item.eltm4.btnType == 4">{{ item.eltm4.btnText }}</label> <label v-if="item.eltm4.btnType == 4">{{ item.eltm4.btnText }}</label>
</view> </view>
<view v-else :class="['c' + item.eltm4.btnType, { disable: getGoodsStatus(items) }]" @click.stop="addCart(items)"> <view v-else :class="['c' + item.eltm4.btnType, { disable: getGoodsStatus(items) }]"
<label v-if="item.eltm4.btnType == 3">buy</label> @click.stop="addCart(items)">
</view> <label v-if="item.eltm4.btnType == 3">buy</label>
</view>
</view> </view>
</view> </view>
</view> </view>
@ -304,13 +305,14 @@
:style="{ 'font-size': '30px', color: item.eltm8.fontColor }"></label> :style="{ 'font-size': '30px', color: item.eltm8.fontColor }"></label>
</view> </view>
<navigator :url="'/pagesub/search/search?store_id='+shopInfo.store_id" class="u-search-box" v-if="item.eltmType == 9" :style="{ <navigator :url="'/pagesub/search/search?store_id=' + shopInfo.store_id" class="u-search-box"
'background-color': item.bgColor, v-if="item.eltmType == 9" :style="{
'padding-top': item.eltm9.paddingTop + 'px', 'background-color': item.bgColor,
'padding-bottom': item.eltm9.paddingBottom + 'px', 'padding-top': item.eltm9.paddingTop + 'px',
'padding-left': item.eltm9.paddingLeft + 'px', 'padding-bottom': item.eltm9.paddingBottom + 'px',
'padding-right': item.eltm9.paddingRight + 'px', 'padding-left': item.eltm9.paddingLeft + 'px',
}"> 'padding-right': item.eltm9.paddingRight + 'px',
}">
<view class="u-search-cont"> <view class="u-search-cont">
<uni-icons type="search" size="18" color="#666666" /> <uni-icons type="search" size="18" color="#666666" />
<text>{{ item.eltm9.tipText }}</text> <text>{{ item.eltm9.tipText }}</text>
@ -333,7 +335,8 @@
</uni-nav-bar> </uni-nav-bar>
<movable-area class="movableAreaIM" v-if="item.eltmType == 11 && hasLogin && chatUrl"> <movable-area class="movableAreaIM" v-if="item.eltmType == 11 && hasLogin && chatUrl">
<movable-view class="movableView" @touchmove.stop.prevent="doNothing" direction="all" :x="initX" :y="initY + 44 + 10"> <movable-view class="movableView" @touchmove.stop.prevent="doNothing" direction="all" :x="initX"
:y="initY + 44 + 10">
<view class="mCS" :style="{ <view class="mCS" :style="{
'background-color': item.bgColor, 'background-color': item.bgColor,
borderTopLeftRadius: (item.borderTopLeftRadius || 0) + 'px', borderTopLeftRadius: (item.borderTopLeftRadius || 0) + 'px',
@ -398,21 +401,21 @@
<view v-for="(items, idx) in item.eltm13.data" :key="idx"> <view v-for="(items, idx) in item.eltm13.data" :key="idx">
<view class="fromInput" v-if="items.type == 1"><label :style="{ color: item.eltm13.labelColor }">{{ <view class="fromInput" v-if="items.type == 1"><label :style="{ color: item.eltm13.labelColor }">{{
items.labelText items.labelText
}}</label><input type="text" :name="'' + items.id" maxlength="200" :placeholder="items.placeholderText" }}</label><input type="text" :name="'' + items.id" maxlength="200" :placeholder="items.placeholderText"
:style="{ :style="{
borderColor: items.borderColor, borderColor: items.borderColor,
color: item.eltm13.textColor, color: item.eltm13.textColor,
}" /></view> }" /></view>
<view class="fromInput" v-if="items.type == 2"><label :style="{ color: item.eltm13.labelColor }">{{ <view class="fromInput" v-if="items.type == 2"><label :style="{ color: item.eltm13.labelColor }">{{
items.labelText items.labelText
}}</label> }}</label>
<picker mode="date" :value="items.name" :data-id="items.id" @change="bindDateChange"> <picker mode="date" :value="items.name" :data-id="items.id" @change="bindDateChange">
<view class="picker">{{ items.name || __("请选择时间") }} </view> <view class="picker">{{ items.name || __("请选择时间") }} </view>
</picker> </picker>
</view> </view>
<view class="fromInput" v-if="items.type == 3"><label :style="{ color: item.eltm13.labelColor }">{{ <view class="fromInput" v-if="items.type == 3"><label :style="{ color: item.eltm13.labelColor }">{{
items.labelText items.labelText
}}</label><textarea :name="'' + items.id" maxlength="400" :placeholder="items.placeholderText" :style="{ }}</label><textarea :name="'' + items.id" maxlength="400" :placeholder="items.placeholderText" :style="{
borderColor: items.borderColor, borderColor: items.borderColor,
color: item.eltm13.textColor, color: item.eltm13.textColor,
}"></textarea> }"></textarea>
@ -441,7 +444,7 @@
</checkbox-group> </checkbox-group>
<view class="fromInput" v-if="items.type == 6"><label :style="{ color: item.eltm13.labelColor }">{{ <view class="fromInput" v-if="items.type == 6"><label :style="{ color: item.eltm13.labelColor }">{{
items.labelText items.labelText
}}</label> }}</label>
<view class="upload-view"> <view class="upload-view">
<view v-for="(info, idx) in items.data" :key="idx" class="upload-img-item"> <view v-for="(info, idx) in items.data" :key="idx" class="upload-img-item">
<image mode="aspectFit" :src="info"></image> <image mode="aspectFit" :src="info"></image>
@ -568,7 +571,7 @@
<view class="activity-price" v-if=" <view class="activity-price" v-if="
item.eltm16.isShowPrice == null || item.eltm16.isShowPrice item.eltm16.isShowPrice == null || item.eltm16.isShowPrice
"><label class="price" :style="{ color: item.eltm16.priceColor }">{{ __("") }}{{ items.ItemSalePrice "><label class="price" :style="{ color: item.eltm16.priceColor }">{{ __("") }}{{ items.ItemSalePrice
}}</label><label class="del-price" v-if="items.selectType == 14">{{ __("") }}{{ items.MarketPice }}</label><label class="del-price" v-if="items.selectType == 14">{{ __("") }}{{ items.MarketPice
}}</label><label class="tip" v-if="items.selectType == 12 || items.selectType == 13">{{ }}</label><label class="tip" v-if="items.selectType == 12 || items.selectType == 13">{{
items.UserLimit }}{{ __("人团") }}</label> items.UserLimit }}{{ __("人团") }}</label>
</view> </view>
@ -606,7 +609,7 @@
<view class="activity-price" v-if=" <view class="activity-price" v-if="
item.eltm16.isShowPrice == null || item.eltm16.isShowPrice item.eltm16.isShowPrice == null || item.eltm16.isShowPrice
"><label class="price" :style="{ color: item.eltm16.priceColor }">{{ __("") }}{{ items.ItemSalePrice "><label class="price" :style="{ color: item.eltm16.priceColor }">{{ __("") }}{{ items.ItemSalePrice
}}</label> }}</label>
</view> </view>
<view class="activity-desc" v-if="item.eltm16.isShowNum"> <view class="activity-desc" v-if="item.eltm16.isShowNum">
{{ __("已有") }}{{ items.OrderCount }} {{ __("人参加") }} {{ __("已有") }}{{ items.OrderCount }} {{ __("人参加") }}
@ -650,7 +653,7 @@
<view class="activity-price" v-if=" <view class="activity-price" v-if="
item.eltm16.isShowPrice == null || item.eltm16.isShowPrice item.eltm16.isShowPrice == null || item.eltm16.isShowPrice
"><label class="price" :style="{ color: item.eltm16.priceColor }">{{ __("") }}{{ items.ItemSalePrice "><label class="price" :style="{ color: item.eltm16.priceColor }">{{ __("") }}{{ items.ItemSalePrice
}}</label><label class="del-price" v-if="items.selectType == 14">{{ __("") }}{{ items.MarketPice }}</label><label class="del-price" v-if="items.selectType == 14">{{ __("") }}{{ items.MarketPice
}}</label><label class="tip" v-if="items.selectType != 14">{{ items.UserLimit }}{{ __("人团") }}</label><label class="tip" v-if="items.selectType != 14">{{ items.UserLimit }}{{ __("人团")
}}</label> }}</label>
</view> </view>
@ -687,7 +690,7 @@
<view class="activity-price" v-if=" <view class="activity-price" v-if="
item.eltm16.isShowPrice == null || item.eltm16.isShowPrice item.eltm16.isShowPrice == null || item.eltm16.isShowPrice
"><label class="price" :style="{ color: item.eltm16.priceColor }">{{ __("") }}{{ items.ItemSalePrice "><label class="price" :style="{ color: item.eltm16.priceColor }">{{ __("") }}{{ items.ItemSalePrice
}}</label></view> }}</label></view>
<view class="activity-desc" v-if="item.eltm16.isShowNum">{{ __("已有") }}{{ items.OrderCount }} {{ <view class="activity-desc" v-if="item.eltm16.isShowNum">{{ __("已有") }}{{ items.OrderCount }} {{
__("人参加") }} __("人参加") }}
</view> </view>
@ -735,7 +738,7 @@
<view class="activity-price" v-if=" <view class="activity-price" v-if="
item.eltm16.isShowPrice == null || item.eltm16.isShowPrice item.eltm16.isShowPrice == null || item.eltm16.isShowPrice
"><label class="price" :style="{ color: item.eltm16.priceColor }">{{ __("") }}{{ items.ItemSalePrice "><label class="price" :style="{ color: item.eltm16.priceColor }">{{ __("") }}{{ items.ItemSalePrice
}}</label><label class="del-price" v-if="items.selectType == 14">{{ __("") }}{{ items.MarketPice }}</label><label class="del-price" v-if="items.selectType == 14">{{ __("") }}{{ items.MarketPice
}}</label> }}</label>
<view class="activity-btn" :style="{ <view class="activity-btn" :style="{
backgroundColor: item.eltm16.btnBgColor, backgroundColor: item.eltm16.btnBgColor,
@ -785,7 +788,7 @@
<view class="activity-price" v-if=" <view class="activity-price" v-if="
item.eltm16.isShowPrice == null || item.eltm16.isShowPrice item.eltm16.isShowPrice == null || item.eltm16.isShowPrice
"><label class="price" :style="{ color: item.eltm16.priceColor }">{{ __("") }}{{ items.ItemSalePrice "><label class="price" :style="{ color: item.eltm16.priceColor }">{{ __("") }}{{ items.ItemSalePrice
}}</label><label class="del-price" v-if="items.selectType == 14">{{ __("") }}{{ items.MarketPice }}</label><label class="del-price" v-if="items.selectType == 14">{{ __("") }}{{ items.MarketPice
}}</label> }}</label>
<view class="activity-btn" :style="{ <view class="activity-btn" :style="{
backgroundColor: item.eltm16.btnBgColor, backgroundColor: item.eltm16.btnBgColor,
@ -889,7 +892,7 @@
</view> </view>
<loginPopup :show="showLoginPopup" @close="closeLoginPopup"></loginPopup> <loginPopup :show="showLoginPopup" @close="closeLoginPopup"></loginPopup>
</view> </view>
</template> </template>
@ -977,9 +980,9 @@ export default {
return "diy"; return "diy";
}, },
}, },
isLogin:{ isLogin: {
type:Boolean, type: Boolean,
default(){ default() {
return false return false
} }
} }
@ -1065,13 +1068,13 @@ export default {
this.showLoginPopup = false; this.showLoginPopup = false;
}, },
getGoodsStatus (item){ getGoodsStatus(item) {
return item?.product_quantity == 0 || item?.item_quantity == 0 return item?.product_quantity == 0 || item?.item_quantity == 0
}, },
async addCart(item) { async addCart(item) {
if (!this.hasLogin) { if (!this.hasLogin) {
this.showLoginPopup = true; this.showLoginPopup = true;
return; return;
} }
@ -1138,21 +1141,25 @@ export default {
// return // return
// } // }
// } // }
var t = e.currentTarget.dataset; var t = e.currentTarget.dataset;
//console.info(t); //console.info(t);
console.log('=====',parseInt(t.type))
switch (parseInt(t.type)) { switch (parseInt(t.type)) {
case 0: case 0:
uni.makePhoneCall({ if (typeof t.mobile != "undefined" || t.mobile != "") {
phoneNumber: console.log('==进来了===')
typeof t.mobile != "undefined" ? t.mobile.toString() : "", // uni.makePhoneCall({
success: function (e) { phoneNumber:
console.log(e); typeof t.mobile != "undefined" ? t.mobile.toString() : "", //
}, success: function (e) {
fail: function (e) { console.log(e);
console.log(e); },
}, fail: function (e) {
}); console.log(e);
},
});
}
break; break;
case 1: case 1:
// this.$emit('buy', 'hello') // this.$emit('buy', 'hello')
@ -1532,14 +1539,14 @@ uni-page-body {
height: 100% !important; height: 100% !important;
} }
.mCS{ .mCS {
position: initial; position: initial;
} }
.diyPage { .diyPage {
// padding-bottom: 8rpx; // padding-bottom: 8rpx;
clear: both; clear: both;
overflow: hidden; overflow: hidden;
} }
.activity-info { .activity-info {

View File

@ -36,7 +36,8 @@
<image <image
lazy-load lazy-load
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/rpk_min.png" src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/rpk_min.png"
></image> >
</image>
</movable-view> </movable-view>
<view <view
@ -549,7 +550,8 @@
margin: auto; margin: auto;
" "
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/location.png" src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/location.png"
></image> >
</image>
<view <view
class="m-cell-ft m-order-typetxt" class="m-cell-ft m-order-typetxt"
style="color: #17abe3; margin-left: 4rpx" style="color: #17abe3; margin-left: 4rpx"
@ -669,8 +671,8 @@
v-if="item.return_id" v-if="item.return_id"
class="u-link-btn hide" class="u-link-btn hide"
style="line-height: 30rpx" style="line-height: 30rpx"
>{{ __("售后详情") }}</navigator >{{ __("售后详情") }}
> </navigator>
</view> </view>
</view> </view>
</navigator> </navigator>
@ -841,7 +843,8 @@
lazy-load lazy-load
src="/static/images/call.png" src="/static/images/call.png"
style="width: 30rpx; height: 26rpx; margin-right: 10rpx" style="width: 30rpx; height: 26rpx; margin-right: 10rpx"
></image> >
</image>
<view class="m-cell-ft m-order-typetxt" style="color: #17abe3"> <view class="m-cell-ft m-order-typetxt" style="color: #17abe3">
{{ OrderInfo.chain_mobile }}</view {{ OrderInfo.chain_mobile }}</view
> >
@ -1196,6 +1199,8 @@ export default {
_mapContext: null, _mapContext: null,
time: null, time: null,
isReminderOrder: false, isReminderOrder: false,
subscribe: 0,
tmplIds: ["kiDj_hSF_ASwD-Dlgxnypi6IJBQZ12a-hEpd3zZ-Uxc", "Lq6_OHOemtmBoWGrd9zvyJ3ultzXB5metmqPtYeV0pc"],
}; };
}, },
components: { components: {
@ -1219,7 +1224,12 @@ export default {
}); });
let that = this; let that = this;
this.subscribe =
options.subscribe && options.subscribe == 1
? options.subscribe
: this.subscribe;
that._mapContext = uni.createMapContext("map", this); that._mapContext = uni.createMapContext("map", this);
this.setData({ this.setData({
options: options, options: options,
discount: options.discount, discount: options.discount,
@ -1230,20 +1240,48 @@ export default {
}); });
/* if (that.$.isNull(this.userInfo)) /* if (that.$.isNull(this.userInfo))
{ {
that.forceUserInfo(function(user) { that.forceUserInfo(function(user) {
that.InitPage(options) that.InitPage(options)
}); });
} }
else else
{ {
that.InitPage(options) that.InitPage(options)
} */ } */
this.notice.addNotification("RefreshMessage", this.RefreshMessage, this); this.notice.addNotification("RefreshMessage", this.RefreshMessage, this);
}, },
onShow: function () { onShow: function () {
const _this = this
this.InitPage(this.options); this.InitPage(this.options);
if (this.subscribe == 1) {
$.showModal({
title: "订阅提示",
content: "是否订阅活动消息通知?",
cancelText: "暂不订阅",
confirmText: "立即订阅",
success: function (n) {
if (n.confirm) {
wx.requestSubscribeMessage({
tmplIds: _this.tmplIds,
success(res) {
console.log("success res====", res);
uni.showToast({
title: "消息已订阅",
});
},
fail(res) {
uni.showToast({
title: "稍后再试",
});
},
});
}
},
});
}
}, },
onUnload: function () { onUnload: function () {
// //
@ -1803,9 +1841,9 @@ export default {
}, },
}); });
/* var t = {store_id: this.shopInfo.Id, sponsorId: this.userInfo.Id, order_id: options.on}; /* var t = {store_id: this.shopInfo.Id, sponsorId: this.userInfo.Id, order_id: options.on};
that.$.xsr(that.$.makeUrl(orderapi.PrepareShareLuckyRedPacket, t), function (e) { that.$.xsr(that.$.makeUrl(orderapi.PrepareShareLuckyRedPacket, t), function (e) {
that.setData({maxRPK: e.Info.LuckyOrder, ActivityGroupId: e.Info.LuckyRedPacketActivityGroupId}) that.setData({maxRPK: e.Info.LuckyOrder, ActivityGroupId: e.Info.LuckyRedPacketActivityGroupId})
})*/ })*/
}, },
applyCancelOrder: function (OrderInfo) { applyCancelOrder: function (OrderInfo) {
let that = this; let that = this;
@ -1898,10 +1936,10 @@ export default {
}, 1500); }, 1500);
/* /*
that.$.navigateBack(1, function() { that.$.navigateBack(1, function() {
var e = {}; var e = {};
that.notice.postNotificationName("RefreshMessage", e) that.notice.postNotificationName("RefreshMessage", e)
}) })
*/ */
}); });
} }
@ -1939,7 +1977,7 @@ export default {
that.$.alert(that.__("收货成功!"), function () { that.$.alert(that.__("收货成功!"), function () {
that.notice.postNotificationName("RefreshMessage", e); that.notice.postNotificationName("RefreshMessage", e);
}); });
} }
}, },
}); });
} else if (e.extraData.status === "fail") { } else if (e.extraData.status === "fail") {
@ -2053,7 +2091,7 @@ export default {
/* /*
that.$.navigateBack(1, function() { that.$.navigateBack(1, function() {
var e = {}; var e = {};
that.notice.postNotificationName("RefreshMessage", e) that.notice.postNotificationName("RefreshMessage", e)
}) })
*/ */
}); });
@ -2360,6 +2398,7 @@ export default {
padding: 6px 12px; padding: 6px 12px;
border-top-left-radius: 0 !important; border-top-left-radius: 0 !important;
border-top-right-radius: 0 !important; border-top-right-radius: 0 !important;
.order-name { .order-name {
font-size: 30px; font-size: 30px;
font-weight: bold; font-weight: bold;
@ -2417,6 +2456,7 @@ export default {
.move-area { .move-area {
margin-top: 44px; margin-top: 44px;
} }
/* #endif */ /* #endif */
.nav-title { .nav-title {

View File

@ -1774,7 +1774,7 @@ export default {
} else { } else {
const item = that.submitinfo.items[0].items[0]; const item = that.submitinfo.items[0].items[0];
if (item.payment_type_id === 1) { if (item.payment_type_id === 1) {
that.$.gotopage("/member/order/detail?on=" + that.order_id); that.$.gotopage(`/member/order/detail?on=${that.order_id}&subscribe=1`);
} else { } else {
that.gotopay(); that.gotopay();
} }
@ -1816,13 +1816,12 @@ export default {
that.returnUrl(param.order_id); that.returnUrl(param.order_id);
}, },
fail: function (n) { fail: function (n) {
that.$.gotopage("/member/order/detail?on=" + param.order_id); that.$.gotopage(`/member/order/detail?on=${param.order_id}&subscribe=1`);
that.isTmplMsg && that.sendMessage(param.order_id, 1); that.isTmplMsg && that.sendMessage(param.order_id, 1);
}, },
complete: function (n) { complete: function (n) {
if (n.errMsg == "requestPayment:cancel") { if (n.errMsg == "requestPayment:cancel") {
that.$.gotopage("/member/order/detail?on=" + param.order_id); that.$.gotopage(`/member/order/detail?on=${param.order_id}&subscribe=1`);
that.isTmplMsg && that.sendMessage(param.order_id, 1); that.isTmplMsg && that.sendMessage(param.order_id, 1);
} }
}, },
@ -1956,7 +1955,7 @@ export default {
// 100setPaidYes // 100setPaidYes
setTimeout(function () { setTimeout(function () {
that.$.gotopage( that.$.gotopage(
"/member/order/detail?on=" + e + "&init_pay_flag=true" `/member/order/detail?on="${e}&init_pay_flag=true&subscribe=1`
); );
}, 100); }, 100);
} }