feat: 新增商品详情搭配优惠组件和客服弹窗

refactor: 优化页面样式和交互逻辑

fix: 修复洗车券列表和详情页的数据展示问题

style: 调整用户页面按钮样式和布局

chore: 移除无用页面和代码,更新项目配置

docs: 更新单次启动页面的使用说明和注意事项

perf: 优化网络请求和数据处理逻辑

build: 更新依赖和配置文件

test: 更新测试用例以适应新功能

ci: 调整CI配置以适应新项目结构
This commit is contained in:
2026-01-03 11:26:51 +08:00
parent b80b33c81f
commit 95eed74b96
68 changed files with 1197 additions and 2036 deletions

View File

@@ -35,15 +35,6 @@ Page({
});
},
selectItem: function (t) {
// 1. 提示用户先绑定设备, isScan
if (!this.data.isScan) return wx.showModal({
title: "提示",
content: "请先扫码设备~"
}), !1;
var e = t.currentTarget.dataset, a = (e.index, e.code);
if (1 != e.available) return wx.showToast({
title: "该洗车券不可用~",
@@ -86,12 +77,11 @@ Page({
success: function (i) {
wx.showLoading({
title: ""
}), t.globalData.qrcode = i.result, e.request("/miniprogram/identify/index", i, !0).then(function (e) {
}), t.globalData.qrcode = i.result, e.request("/miniprogram/identify", i, !0).then(function (e) {
if (wx.hideLoading(), 200 != e.code) return wx.showModal({
title: "提示",
content: e.message
}), !1;
t.globalData.deviceData = e.data || t.globalData.deviceData || {};
t.globalData.devicecode = e.data.devicecode || t.globalData.devicecode, a.setData({
isScan: !!e.data.devicecode
}), a.getList();
@@ -118,22 +108,15 @@ Page({
var a = this;
wx.showModal({
title: "提示",
content: "你当前将要使用的机器编号是:".concat(t.globalData.deviceData.title || t.globalData.deviceData.devicecode, ",确认开机吗?"),
content: "你当前将要使用的机器编号是:".concat(t.globalData.devicecode, ",确认开机吗?"),
success: function (i) {
// 合并参数 t.globalData.deviceData 与 washcode
let params = Object.assign(t.globalData.deviceData, {
washcode: a.data.selectID
});
i.confirm && (a.isSubmit = !0, wx.showLoading({
title: "正在启动"
}), e.request('/miniprogram/' + t.globalData.deviceData.type + '/carwashcodestartup', params, !0).then(function (t) {
// 成功后返回提示
wx.showToast({ title: t.message || '启动成功', icon: 'success' });
// 成功后跳转
}), e.request('/miniprogram/machine/carwashcodestartup', {
washcode: a.data.selectID
}, !0).then(function (t) {
a.isSubmit = !1, wx.hideLoading(), 200 == t.code && wx.redirectTo({
url: "/pages/washing/washing"
url: "/pages/user/user"
});
}).catch(function (t) {
a.isSubmit = !1, wx.hideLoading();

View File

@@ -5,15 +5,11 @@
<view bindtap="selectItem" class="{{item.available!=1?'item item-notavailable':selectID==item.code?'active item':'item'}}" data-available="{{item.available}}" data-code="{{item.code}}" wx:for="{{list}}" wx:key="index">
<view class="top">
<view class="radio"></view>
<view class="code">{{item.title}}</view>
<view class="code">{{item.code}}</view>
</view>
<view class="location">可使用网点:<block wx:for="{{item.agent}}" wx:for-index="i" wx:for-item="s">{{s.t_name}}{{ i< item.agent.length-1?'、':''}}</block>
<block wx:if="{{item.agent.length==0}}">不限</block>
<view class="location">可使用网点:<block wx:for="{{item.agent}}" wx:for-index="i" wx:for-item="s">{{s.t_name+(i<item.agent.length-1?'、':'')}} </block>
</view>
<view class="indate">有效期:{{item.starttime}} - {{item.deadline}}</view>
<view class="indate">兑换时间:{{item.created_at}}, 兑换码: {{item.code}}</view>
<!-- 如果有note -->
<view class="indate" wx:if="{{item.note}}">{{item.note}}</view>
</view>
</view>
<view class="no-content" wx:if="{{list.length==0&&!loading}}">

View File

@@ -72,7 +72,6 @@
border-radius: 18rpx;
box-shadow: 0 0rpx 9rpx 4rpx hsla(0,0%,80%,.75);
padding: 14rpx 20rpx 14rpx 14rpx;
margin-bottom: 20rpx;
}
.item .top {