修正了 pages 名为拼音的问题,以及部分细节

This commit is contained in:
TermiNexus committed 2026-06-13 12:23:44 +08:00
1 parent 296e41a8a7
commit 6fbae9b32c
57 files changed
+1317 -1463

No files matched your search

+5 -5
View File
@@ -69,7 +69,7 @@
"usingComponents": {
"popup-notice": "/components/popup-notice/popup-notice",
"custom-tab-bar": "/custom-tab-bar/index"
"tab-bar": "/tab-bar/index"
},
"window": {
@@ -87,14 +87,14 @@
{
"pagePath": "pages/order-pool/order-pool",
"text": "接单池",
"iconPath": "/images/jiedanchi.png",
"selectedIconPath": "/images/jiedanchi.png"
"iconPath": "/images/order-pool.png",
"selectedIconPath": "/images/order-pool.png"
},
{
"pagePath": "pages/order-pool2/order-pool2",
"text": "接单池",
"iconPath": "/images/jiedanchi.png",
"selectedIconPath": "/images/jiedanchi.png"
"iconPath": "/images/order-pool.png",
"selectedIconPath": "/images/order-pool.png"
}
]
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

File renamed without changes.
+1 -1
View File
@@ -216,5 +216,5 @@
<global-notification id="global-notification" />
<popup-notice id="popupNotice" />
<custom-tab-bar />
<tab-bar />
</view>
+1 -1
View File
@@ -1,7 +1,7 @@
{
"usingComponents": {
"global-notification": "/components/global-notification/global-notification",
"custom-tab-bar": "/custom-tab-bar/index",
"tab-bar": "/tab-bar/index",
"popup-notice": "/components/popup-notice/popup-notice"
},
"navigationBarTitleText": "考核官",
+1 -1
View File
@@ -125,4 +125,4 @@
</view>
<global-notification id="global-notification" />
<custom-tab-bar />
<tab-bar />
+1 -1
View File
@@ -1,6 +1,6 @@
{
"usingComponents": {
"global-notification": "/components/global-notification/global-notification",
"custom-tab-bar": "/custom-tab-bar/index"
"tab-bar": "/tab-bar/index"
}
}
+2 -2
View File
@@ -3,7 +3,7 @@
<!-- 1. 毛玻璃搜索框区域(固定) -->
<view class="search-container">
<view class="search-box search-box--glass">
<image src="/images/sousuo.png" class="search-icon" />
<image src="/images/search.png" class="search-icon" />
<input
type="text"
class="search-input"
@@ -213,5 +213,5 @@
</view>
<!-- 底部自定义TabBar -->
<custom-tab-bar />
<tab-bar />
<global-notification id="global-notification" />
+1 -1
View File
@@ -109,4 +109,4 @@
</view>
</view>
<global-notification id="global-notification" />
<custom-tab-bar />
<tab-bar />
+6
View File
@@ -126,6 +126,7 @@ Page({
iconContact: gsBase + 'icon-contact.png',
avatarDefault: ossImageUrl + 'avatar/default.jpg',
iconClear: ossImageUrl + 'beijing/tubiao/grzx_qingchu.jpg',
iconSwitch: '/images/_exit.png',
iconKefu: ossImageUrl + 'beijing/tubiao/grzx_kefu.jpg',
iconKuaishou: ossImageUrl + 'beijing/tubiao/grzx_guanzhualong.jpg',
iconKaoheDafen: khBase + 'daofen.png',
@@ -1181,4 +1182,9 @@ Page({
},
});
},
switchToNormal() {
lockPrimaryRole('normal');
wx.reLaunch({ url: '/pages/mine/mine' });
},
})
+1 -1
View File
@@ -2,7 +2,7 @@
"usingComponents": {
"global-notification": "/components/global-notification/global-notification",
"chenghao-tag": "/components/chenghao-tag/chenghao-tag",
"custom-tab-bar": "/custom-tab-bar/index"
"tab-bar": "/tab-bar/index"
},
"navigationBarBackgroundColor": "#e8ecf4",
"navigationBarTextStyle": "black",
+12 -3
View File
@@ -12,9 +12,13 @@
<view class="unreg-btn unreg-btn-secondary" bindtap="quickRegisterAsPlatform">
<text class="unreg-btn-text">平台直签注册</text>
</view>
<view class="unreg-clear" bindtap="switchToNormal">
<image class="unreg-clear-icon" src="{{imgUrls.iconSwitch}}" mode="aspectFit" />
<text class="unreg-clear-text">返回点单端</text>
</view>
<view class="unreg-clear" bindtap="clearCache">
<image class="unreg-clear-icon" src="{{imgUrls.iconClear}}" mode="aspectFit" />
<text class="unreg-clear-text">清除缓存,回到点单端</text>
<text class="unreg-clear-text">清除缓存,重新登录</text>
</view>
</view>
</view>
@@ -363,10 +367,15 @@
<text class="list-text">用户规则</text>
<image class="list-arrow" src="{{imgUrls.iconArrow}}" mode="aspectFit" />
</view>
<view class="list-item" bindtap="switchToNormal">
<image class="list-icon" src="{{imgUrls.iconSwitch}}" mode="aspectFit" />
<text class="list-text">返回点单端</text>
<image class="list-arrow" src="{{imgUrls.iconArrow}}" mode="aspectFit" />
</view>
<view class="list-item" bindtap="clearCache">
<image class="list-icon" src="{{imgUrls.iconClear}}" mode="aspectFit" />
<text class="list-text">清除缓存</text>
<text class="list-sub">回点单端</text>
<text class="list-sub">重新登录</text>
<image class="list-arrow" src="{{imgUrls.iconArrow}}" mode="aspectFit" />
</view>
</view>
@@ -380,5 +389,5 @@
</view>
<global-notification id="global-notification" />
<custom-tab-bar />
<tab-bar />
<popup-notice id="popupNotice" />
+271 -459
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -2,7 +2,7 @@
"usingComponents": {
"global-notification": "/components/global-notification/global-notification",
"chenghao-tag": "/components/chenghao-tag/chenghao-tag",
"custom-tab-bar": "/custom-tab-bar/index"
"tab-bar": "/tab-bar/index"
},
"navigationBarTitleText": "金牌用户",
"navigationBarBackgroundColor": "#0B2A4A",
+1 -1
View File
@@ -184,7 +184,7 @@
</view>
<global-notification id="global-notification" />
<custom-tab-bar />
<tab-bar />
<popup-notice id="popupNotice" />
</view>
+1 -1
View File
@@ -1,7 +1,7 @@
{
"usingComponents": {
"global-notification": "/components/global-notification/global-notification",
"custom-tab-bar": "/custom-tab-bar/index"
"tab-bar": "/tab-bar/index"
},
"navigationBarTitleText": "商城",
+171 -171
View File
@@ -1,171 +1,171 @@
<!-- pages/shangpin/shangpin.wxml -->
<view class="shangpin-page">
<!-- 1. 公告栏 -->
<view class="gonggao-box" bindtap="showGonggaoDetail">
<view class="gonggao-icon">
<image src="/images/gonggao.png" mode="aspectFit" />
</view>
<view class="gonggao-content">
<text class="gonggao-text {{gonggaoAnim ? 'gonggao-anim' : ''}}">
{{shangpingonggao || '暂无公告'}}
</text>
</view>
</view>
<!-- 2. 轮播图区域 -->
<view class="lunbo-container">
<swiper
class="lunbo-swiper"
indicator-dots="{{lunboList.length > 1}}"
indicator-color="rgba(255,255,255,0.6)"
indicator-active-color="#ffcc00"
autoplay="{{lunboList.length > 1}}"
interval="3000"
circular
>
<block wx:for="{{lunboList}}" wx:key="index">
<swiper-item>
<!-- 移除点击预览事件 -->
<image
src="{{item}}"
mode="aspectFill"
class="lunbo-image"
/>
</swiper-item>
</block>
</swiper>
<!-- 轮播图占位图(无数据时显示) -->
<view wx:if="{{lunboList.length === 0}}" class="lunbo-placeholder">
<image src="{{lunbozhanwei}}" mode="aspectFill" class="lunbo-image" />
</view>
<!-- 刷新按钮 -->
<view class="refresh-btn" bindtap="refreshAllData">
<image
src="/images/shuaxin.png"
mode="aspectFit"
class="refresh-icon {{isRefreshing ? 'refreshing' : ''}}"
/>
<view class="refresh-dot"></view>
</view>
</view>
<!-- 3. 商品展示区域 -->
<view class="shangpin-container">
<!-- 3.1 商品类型选择 -->
<scroll-view
class="leixing-scroll"
scroll-x
scroll-with-animation
show-scrollbar="{{false}}"
>
<view class="leixing-list">
<block wx:for="{{shangpinleixing}}" wx:key="id">
<view
class="leixing-item {{selectedLeixingId === item.id ? 'leixing-active' : ''}}"
bindtap="selectLeixing"
data-id="{{item.id}}"
>
<view class="leixing-image-box">
<image
src="{{ossImageUrl + item.tupian_url}}"
mode="aspectFill"
class="leixing-image"
lazy-load="{{true}}"
/>
<view class="leixing-glow"></view>
</view>
<text class="leixing-text">{{item.jieshao}}</text>
</view>
</block>
</view>
</scroll-view>
<!-- 3.2 商品展示 -->
<view class="shangpin-list-container">
<block wx:for="{{filteredData}}" wx:key="*this">
<!-- 专区标题 -->
<view class="zhuanqu-title" wx:if="{{item.shangpinList.length > 0}}">
<view class="zhuanqu-icon">
<image
src="/images/zhuanqu.png"
mode="aspectFit"
class="zhuanqu-icon-image {{idx % 3 === 0 ? 'zhuanqu-sparkle' : ''}}"
/>
</view>
<text class="zhuanqu-text">{{item.zhuanqu.mingzi}}</text>
</view>
<!-- 商品网格 -->
<view class="shangpin-grid" wx:if="{{item.shangpinList.length > 0}}">
<block wx:for="{{item.shangpinList}}" wx:key="id">
<view
class="shangpin-card"
bindtap="goToDetail"
data-id="{{item.id}}"
>
<!-- 商品图片 -->
<view class="shangpin-image-box">
<image
src="{{ossImageUrl + item.tupian_url}}"
mode="aspectFill"
class="shangpin-image"
lazy-load="{{true}}"
/>
</view>
<!-- 商品标题 -->
<view class="shangpin-title">
<text class="title-text">{{item.biaoqian}}</text>
</view>
<!-- 价格和购买按钮 -->
<view class="shangpin-footer">
<view class="price-box">
<text class="price-icon">¥</text>
<text class="price-integer">{{item.priceInteger}}</text>
<text class="price-decimal">.{{item.priceDecimal}}</text>
</view>
<view class="buy-btn">
<image src="/images/goumai.png" mode="aspectFit" class="buy-icon" />
</view>
</view>
</view>
</block>
</view>
</block>
<!-- 空状态 -->
<view wx:if="{{filteredData.length === 0}}" class="empty-state">
<image src="/images/empty.png" mode="aspectFit" class="empty-image" />
<text class="empty-text">暂无商品</text>
<button class="empty-btn" bindtap="refreshAllData">刷新试试</button>
</view>
</view>
</view>
<!-- 公告详情弹窗 -->
<view class="gonggao-modal" wx:if="{{showGonggaoModal}}">
<view class="modal-mask" bindtap="hideGonggaoDetail"></view>
<view class="modal-content">
<view class="modal-header">
<text class="modal-title">公告详情</text>
<view class="modal-close" bindtap="hideGonggaoDetail">×</view>
</view>
<scroll-view class="modal-body" scroll-y>
<text class="modal-text">{{shangpingonggao || '暂无公告内容'}}</text>
</scroll-view>
</view>
</view>
<!-- 加载提示 -->
<view class="loading-toast" wx:if="{{isLoading}}">
<view class="loading-spinner"></view>
<text class="loading-text">加载中...</text>
</view>
<global-notification id="global-notification" />
<popup-notice id="popupNotice" />
</view>
<!-- 底部自定义TabBar -->
<custom-tab-bar />
<!-- pages/shangpin/shangpin.wxml -->
<view class="shangpin-page">
<!-- 1. 公告栏 -->
<view class="gonggao-box" bindtap="showGonggaoDetail">
<view class="gonggao-icon">
<image src="/images/notice.png" mode="aspectFit" />
</view>
<view class="gonggao-content">
<text class="gonggao-text {{gonggaoAnim ? 'gonggao-anim' : ''}}">
{{shangpingonggao || '暂无公告'}}
</text>
</view>
</view>
<!-- 2. 轮播图区域 -->
<view class="lunbo-container">
<swiper
class="lunbo-swiper"
indicator-dots="{{lunboList.length > 1}}"
indicator-color="rgba(255,255,255,0.6)"
indicator-active-color="#ffcc00"
autoplay="{{lunboList.length > 1}}"
interval="3000"
circular
>
<block wx:for="{{lunboList}}" wx:key="index">
<swiper-item>
<!-- 移除点击预览事件 -->
<image
src="{{item}}"
mode="aspectFill"
class="lunbo-image"
/>
</swiper-item>
</block>
</swiper>
<!-- 轮播图占位图(无数据时显示) -->
<view wx:if="{{lunboList.length === 0}}" class="lunbo-placeholder">
<image src="{{lunbozhanwei}}" mode="aspectFill" class="lunbo-image" />
</view>
<!-- 刷新按钮 -->
<view class="refresh-btn" bindtap="refreshAllData">
<image
src="/images/refresh.png"
mode="aspectFit"
class="refresh-icon {{isRefreshing ? 'refreshing' : ''}}"
/>
<view class="refresh-dot"></view>
</view>
</view>
<!-- 3. 商品展示区域 -->
<view class="shangpin-container">
<!-- 3.1 商品类型选择 -->
<scroll-view
class="leixing-scroll"
scroll-x
scroll-with-animation
show-scrollbar="{{false}}"
>
<view class="leixing-list">
<block wx:for="{{shangpinleixing}}" wx:key="id">
<view
class="leixing-item {{selectedLeixingId === item.id ? 'leixing-active' : ''}}"
bindtap="selectLeixing"
data-id="{{item.id}}"
>
<view class="leixing-image-box">
<image
src="{{ossImageUrl + item.tupian_url}}"
mode="aspectFill"
class="leixing-image"
lazy-load="{{true}}"
/>
<view class="leixing-glow"></view>
</view>
<text class="leixing-text">{{item.jieshao}}</text>
</view>
</block>
</view>
</scroll-view>
<!-- 3.2 商品展示 -->
<view class="shangpin-list-container">
<block wx:for="{{filteredData}}" wx:key="*this">
<!-- 专区标题 -->
<view class="zhuanqu-title" wx:if="{{item.shangpinList.length > 0}}">
<view class="zhuanqu-icon">
<image
src="/images/zone.png"
mode="aspectFit"
class="zhuanqu-icon-image {{idx % 3 === 0 ? 'zhuanqu-sparkle' : ''}}"
/>
</view>
<text class="zhuanqu-text">{{item.zhuanqu.mingzi}}</text>
</view>
<!-- 商品网格 -->
<view class="shangpin-grid" wx:if="{{item.shangpinList.length > 0}}">
<block wx:for="{{item.shangpinList}}" wx:key="id">
<view
class="shangpin-card"
bindtap="goToDetail"
data-id="{{item.id}}"
>
<!-- 商品图片 -->
<view class="shangpin-image-box">
<image
src="{{ossImageUrl + item.tupian_url}}"
mode="aspectFill"
class="shangpin-image"
lazy-load="{{true}}"
/>
</view>
<!-- 商品标题 -->
<view class="shangpin-title">
<text class="title-text">{{item.biaoqian}}</text>
</view>
<!-- 价格和购买按钮 -->
<view class="shangpin-footer">
<view class="price-box">
<text class="price-icon">¥</text>
<text class="price-integer">{{item.priceInteger}}</text>
<text class="price-decimal">.{{item.priceDecimal}}</text>
</view>
<view class="buy-btn">
<image src="/images/purchase.png" mode="aspectFit" class="buy-icon" />
</view>
</view>
</view>
</block>
</view>
</block>
<!-- 空状态 -->
<view wx:if="{{filteredData.length === 0}}" class="empty-state">
<image src="/images/empty.png" mode="aspectFit" class="empty-image" />
<text class="empty-text">暂无商品</text>
<button class="empty-btn" bindtap="refreshAllData">刷新试试</button>
</view>
</view>
</view>
<!-- 公告详情弹窗 -->
<view class="gonggao-modal" wx:if="{{showGonggaoModal}}">
<view class="modal-mask" bindtap="hideGonggaoDetail"></view>
<view class="modal-content">
<view class="modal-header">
<text class="modal-title">公告详情</text>
<view class="modal-close" bindtap="hideGonggaoDetail">×</view>
</view>
<scroll-view class="modal-body" scroll-y>
<text class="modal-text">{{shangpingonggao || '暂无公告内容'}}</text>
</scroll-view>
</view>
</view>
<!-- 加载提示 -->
<view class="loading-toast" wx:if="{{isLoading}}">
<view class="loading-spinner"></view>
<text class="loading-text">加载中...</text>
</view>
<global-notification id="global-notification" />
<popup-notice id="popupNotice" />
</view>
<!-- 底部自定义TabBar -->
<tab-bar />
+1 -1
View File
@@ -6,6 +6,6 @@
"backgroundTextStyle": "light",
"usingComponents": {
"global-notification": "/components/global-notification/global-notification",
"custom-tab-bar": "/custom-tab-bar/index"
"tab-bar": "/tab-bar/index"
}
}
+1 -1
View File
@@ -99,7 +99,7 @@
</view>
<global-notification id="global-notification" />
<custom-tab-bar />
<tab-bar />
</view>
<!-- 加载遮罩(保持不变) -->
+1 -1
View File
@@ -2,7 +2,7 @@
"usingComponents": {
"global-notification": "/components/global-notification/global-notification",
"chenghao-tag": "/components/chenghao-tag/chenghao-tag",
"custom-tab-bar": "/custom-tab-bar/index"
"tab-bar": "/tab-bar/index"
},
"navigationBarBackgroundColor": "#f0f4f8",
"navigationBarTextStyle": "black",
+1 -1
View File
@@ -118,5 +118,5 @@
</view>
<global-notification id="global-notification" />
<custom-tab-bar />
<tab-bar />
<popup-notice id="popupNotice" />
+195 -159
View File
@@ -1,159 +1,195 @@
<!-- pages/merchant-dispatch/merchant-dispatch.wxml -->
<view class="page-container" style="background-image: url('{{bgImageUrl}}');">
<!-- 顶部商家余额展示 (黑金卡片) -->
<view class="balance-card">
<text class="balance-label">可用余额</text>
<view class="balance-amount">
<text class="amount-value">{{sjyue}}</text>
<text class="amount-unit">元</text>
</view>
<text class="balance-tip">派单将从此余额扣除</text>
</view>
<!-- 商品类型选择 (横向滑动) -->
<view class="section">
<text class="section-title">选择订单类型</text>
<scroll-view class="type-scroll" scroll-x="true" enable-flex>
<block wx:for="{{shangpinList}}" wx:key="id">
<view
class="type-item {{selectedTypeId === item.id ? 'type-active' : ''}}"
data-id="{{item.id}}"
data-item="{{item}}"
bindtap="onSelectType"
>
<text class="type-text">{{item.jieshao}}</text>
</view>
</block>
</scroll-view>
</view>
<!-- 表单区域 -->
<view class="form-container">
<!-- 订单介绍 -->
<view class="form-item">
<text class="form-label required">订单介绍</text>
<input
class="form-input"
placeholder="请输入订单主要内容(必填,最多50字)"
maxlength="50"
value="{{dingdanJieshao}}"
bindinput="onDingdanJieshaoInput"
/>
<text class="word-count">{{dingdanJieshao.length}}/50</text>
</view>
<!-- 订单备注 -->
<view class="form-item">
<text class="form-label">订单备注(选填)</text>
<input
class="form-input"
placeholder="填写或补充其他信息"
maxlength="50"
value="{{dingdanBeizhu}}"
bindinput="onDingdanBeizhuInput"
/>
<text class="word-count">{{dingdanBeizhu.length}}/50</text>
</view>
<!-- 老板游戏昵称/UID -->
<view class="form-item">
<text class="form-label required">老板昵称/ID</text>
<input
class="form-input"
placeholder="请输入(必填,最多15字)"
maxlength="15"
value="{{laobanName}}"
bindinput="onLaobanNameInput"
/>
<text class="word-count">{{laobanName.length}}/15</text>
</view>
<!-- 指定打手UID -->
<view class="form-item">
<text class="form-label">指定UID(选填)</text>
<input
class="form-input"
placeholder="请输入指定UID"
maxlength="10"
value="{{zhidingUid}}"
bindinput="onZhidingUidInput"
/>
</view>
<!-- 订单价格 -->
<view class="form-item">
<text class="form-label required">订单价格(元)</text>
<input
class="form-input"
type="digit"
placeholder="0.1 - 10000,支持两位小数"
value="{{jiage}}"
bindinput="onJiageInput"
/>
<text class="price-tip">范围:0.1 - 10000元</text>
</view>
<!-- 新增:抢单要求标签(从商品类型的称号列表选择) -->
<view class="form-item" wx:if="{{currentTypeChenghaoList.length > 0}}">
<text class="form-label">要求打手标签*如金牌打手(选填)</text>
<picker
mode="selector"
range="{{currentTypeChenghaoList}}"
range-key="mingcheng"
bindchange="onLabelChange"
>
<view class="picker-view">
<text>{{selectedLabelName || '无'}}</text>
</view>
</picker>
</view>
<!-- 新增:佣金要求(压金) -->
<view class="form-item commission-item">
<text class="form-label">要求打手押金(建议≤50元)</text>
<switch checked="{{commissionEnabled}}" bindchange="onCommissionToggle"/>
<input
wx:if="{{commissionEnabled}}"
class="commission-input"
type="digit"
placeholder="押金金额"
value="{{commissionValue}}"
bindinput="onCommissionValueInput"
/>
</view>
</view>
<!-- 立即派发按钮 -->
<view class="btn-container">
<view
class="submit-btn {{isSubmitting ? 'btn-disabled' : ''}}"
bindtap="onSubmit"
hover-class="btn-hover"
>
<text class="btn-text">{{isSubmitting ? '派发中...' : '立即派发'}}</text>
</view>
</view>
<!-- 加载遮罩 -->
<view class="loading-mask" wx:if="{{isLoading}}">
<view class="loading-content">
<view class="loading-spinner"></view>
<text class="loading-text">加载中...</text>
</view>
</view>
<!-- 全局通知组件 -->
<global-notification id="global-notification" />
<!-- 教程按钮(紧贴右侧,5秒后缩进) -->
<view
class="tutorial-btn {{tutorialBtnHidden ? 'tutorial-btn-hidden' : ''}}"
bindtap="onTutorialBtnTap"
hover-class="tutorial-btn-hover"
>
<text class="tutorial-btn-text">教程</text>
</view>
<!-- 使用教程弹窗组件 -->
<popup-notice id="popupNotice" />
</view>
<!-- pages/merchant-dispatch/merchant-dispatch.wxml -->
<view class="page">
<!-- 余额卡片 -->
<view class="balance-card">
<text class="balance-label">可用余额</text>
<view class="balance-row">
<text class="balance-value">{{sjyue}}</text>
<text class="balance-unit">元</text>
</view>
<text class="balance-tip">派单将从此余额扣除</text>
</view>
<!-- 订单类型 -->
<view class="card">
<view class="card-header">
<view class="card-dot"></view>
<text class="card-title">选择订单类型</text>
</view>
<scroll-view class="type-scroll" scroll-x="true" enable-flex>
<view
class="type-chip {{selectedTypeId === item.id ? 'type-chip--active' : ''}}"
wx:for="{{shangpinList}}"
wx:key="id"
data-id="{{item.id}}"
data-item="{{item}}"
bindtap="onSelectType"
>
{{item.jieshao}}
</view>
</scroll-view>
</view>
<!-- 表单 -->
<view class="card">
<view class="card-header">
<view class="card-dot"></view>
<text class="card-title">填写订单信息</text>
</view>
<!-- 订单介绍 -->
<view class="field">
<view class="field-head">
<text class="field-label">订单介绍</text>
<text class="field-required">*</text>
<text class="field-count">{{dingdanJieshao.length}}/50</text>
</view>
<input
class="field-input"
placeholder="请输入订单主要内容"
maxlength="50"
value="{{dingdanJieshao}}"
bindinput="onDingdanJieshaoInput"
/>
</view>
<!-- 订单备注 -->
<view class="field">
<view class="field-head">
<text class="field-label">订单备注</text>
<text class="field-count">{{dingdanBeizhu.length}}/50</text>
</view>
<input
class="field-input"
placeholder="选填,补充其他信息"
maxlength="50"
value="{{dingdanBeizhu}}"
bindinput="onDingdanBeizhuInput"
/>
</view>
<!-- 老板昵称/ID -->
<view class="field">
<view class="field-head">
<text class="field-label">老板昵称/ID</text>
<text class="field-required">*</text>
<text class="field-count">{{laobanName.length}}/15</text>
</view>
<input
class="field-input"
placeholder="请输入老板昵称或ID"
maxlength="15"
value="{{laobanName}}"
bindinput="onLaobanNameInput"
/>
</view>
<!-- 指定打手UID -->
<view class="field">
<view class="field-head">
<text class="field-label">指定UID</text>
<text class="field-optional">选填</text>
</view>
<input
class="field-input"
placeholder="指定某位打手接单"
maxlength="10"
value="{{zhidingUid}}"
bindinput="onZhidingUidInput"
/>
</view>
<!-- 订单价格 -->
<view class="field">
<view class="field-head">
<text class="field-label">订单价格</text>
<text class="field-required">*</text>
</view>
<view class="price-input-wrap">
<text class="price-prefix">¥</text>
<input
class="field-input price-input"
type="digit"
placeholder="0.1 - 10000"
value="{{jiage}}"
bindinput="onJiageInput"
/>
</view>
<text class="field-hint">范围 0.1 ~ 10000 元,最多两位小数</text>
</view>
<!-- 打手标签 -->
<view class="field" wx:if="{{currentTypeChenghaoList.length > 0}}">
<view class="field-head">
<text class="field-label">要求打手标签</text>
<text class="field-optional">选填</text>
</view>
<picker
mode="selector"
range="{{currentTypeChenghaoList}}"
range-key="mingcheng"
bindchange="onLabelChange"
>
<view class="field-picker">
<text class="{{selectedLabelName ? '' : 'field-picker-ph'}}">{{selectedLabelName || '不限制'}}</text>
<text class="field-picker-arrow">▸</text>
</view>
</picker>
</view>
<!-- 押金要求 -->
<view class="field">
<view class="field-head">
<text class="field-label">要求打手押金</text>
<text class="field-optional">选填</text>
</view>
<view class="switch-row">
<switch checked="{{commissionEnabled}}" bindchange="onCommissionToggle" color="#9C27B0"/>
<text class="switch-label">{{commissionEnabled ? '已开启' : '未开启'}}</text>
</view>
<input
wx:if="{{commissionEnabled}}"
class="field-input"
type="digit"
placeholder="输入押金金额(建议≤50元)"
value="{{commissionValue}}"
bindinput="onCommissionValueInput"
/>
</view>
</view>
<!-- 底部留白 -->
<view class="bottom-space"></view>
<!-- 提交按钮 -->
<view class="submit-bar">
<view
class="submit-btn {{isSubmitting ? 'submit-btn--disabled' : ''}}"
bindtap="onSubmit"
hover-class="submit-btn--hover"
>
{{isSubmitting ? '派发中...' : '立即派发'}}
</view>
</view>
<!-- 加载遮罩 -->
<view class="loading-mask" wx:if="{{isLoading}}">
<view class="loading-box">
<view class="loading-spinner"></view>
<text class="loading-text">加载中...</text>
</view>
</view>
<global-notification id="global-notification" />
<!-- 教程按钮 -->
<view
class="tutorial-btn {{tutorialBtnHidden ? 'tutorial-btn--hidden' : ''}}"
bindtap="onTutorialBtnTap"
hover-class="tutorial-btn--hover"
>
<text class="tutorial-btn-text">教程</text>
</view>
<popup-notice id="popupNotice" />
</view>
+339 -374
View File
@@ -1,374 +1,339 @@
/* pages/merchant-dispatch/merchant-dispatch.wxss - 黑金升级版 + 背景图由js动态拼接 */
page {
background-color: #0a0a0f;
}
.page-container {
min-height: 100vh;
/* 背景图通过内联 style 动态设置,此处不再写死 */
background-size: cover;
background-position: center;
background-attachment: fixed;
position: relative;
padding: 30rpx;
box-sizing: border-box;
padding-bottom: 140rpx;
}
/* 半透明遮罩增强文字可读性 - 不使用通配符 */
.page-container::before {
content: '';
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(10, 10, 15, 0.75);
backdrop-filter: blur(6rpx);
z-index: 0;
pointer-events: none;
}
/* 所有直接子元素手动提升层级(替代 * 选择器) */
.balance-card,
.section,
.form-container,
.btn-container,
.loading-mask {
position: relative;
z-index: 1;
}
/* 余额卡片 - 黑金风格 */
.balance-card {
background: linear-gradient(135deg, rgba(20,20,30,0.95), rgba(30,30,50,0.95));
border-radius: 24rpx;
padding: 36rpx;
margin-bottom: 40rpx;
color: #fff;
box-shadow: 0 15rpx 35rpx rgba(0,0,0,0.4), 0 0 40rpx rgba(0,180,255,0.15);
text-align: center;
border: 1.5rpx solid rgba(0,180,255,0.2);
backdrop-filter: blur(10rpx);
overflow: hidden;
}
.balance-card::before {
content: '';
position: absolute;
top: -50%; left: -50%;
width: 200%; height: 200%;
background: linear-gradient(45deg, transparent 30%, rgba(0,180,255,0.1) 50%, transparent 70%);
animation: cardShine 6s infinite linear;
z-index: 1;
}
@keyframes cardShine {
0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }
100% { transform: translateX(100%) translateY(100%) rotate(45deg); }
}
.balance-label {
font-size: 28rpx;
color: rgba(255,255,255,0.8);
margin-bottom: 18rpx;
font-weight: 500;
position: relative;
z-index: 2;
}
.balance-amount {
display: flex;
align-items: baseline;
justify-content: center;
margin-bottom: 15rpx;
position: relative;
z-index: 2;
}
.amount-value {
font-size: 64rpx;
font-weight: bold;
color: #FFD700;
text-shadow: 0 0 20rpx rgba(255,215,0,0.7);
animation: amountGlow 3s infinite alternate;
}
@keyframes amountGlow {
0% { color: #FFD700; text-shadow: 0 0 15rpx rgba(255,215,0,0.6); }
100% { color: #FFE44D; text-shadow: 0 0 25rpx rgba(255,215,0,0.9); }
}
.amount-unit {
font-size: 36rpx;
color: #FFD700;
margin-left: 12rpx;
font-weight: 500;
}
.balance-tip {
font-size: 24rpx;
color: rgba(255,255,255,0.6);
position: relative;
z-index: 2;
}
/* 区域标题 */
.section {
margin-bottom: 35rpx;
}
.section-title {
font-size: 32rpx;
font-weight: 700;
color: #FFFFFF;
margin-bottom: 25rpx;
padding-left: 12rpx;
border-left: 6rpx solid #9C27B0;
text-shadow: 0 2rpx 4rpx rgba(0,0,0,0.3);
}
/* 商品类型横向滚动 */
.type-scroll {
white-space: nowrap;
display: flex;
height: 90rpx;
}
.type-item {
display: inline-flex;
flex-shrink: 0;
align-items: center;
justify-content: center;
height: 85rpx;
padding: 0 40rpx;
margin-right: 20rpx;
background: rgba(255,255,255,0.08);
border-radius: 45rpx;
border: 2rpx solid rgba(255,255,255,0.15);
font-size: 28rpx;
color: rgba(255,255,255,0.8);
transition: all 0.3s cubic-bezier(0.175,0.885,0.32,1.275);
backdrop-filter: blur(10rpx);
}
.type-active {
background: linear-gradient(135deg, #9C27B0 0%, #673AB7 100%);
border-color: #9C27B0;
color: white;
transform: scale(1.05);
box-shadow: 0 10rpx 25rpx rgba(156,39,176,0.4);
}
.type-text {
max-width: 220rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-weight: 500;
}
/* 表单容器 - 玻璃态 */
.form-container {
background: rgba(30,30,45,0.85);
backdrop-filter: blur(20rpx);
border-radius: 30rpx;
padding: 30rpx;
box-shadow: 0 10rpx 30rpx rgba(0,0,0,0.3);
border: 1.5rpx solid rgba(255,255,255,0.1);
margin-bottom: 40rpx;
}
.form-item {
margin-bottom: 35rpx;
position: relative;
}
.form-item:last-child {
margin-bottom: 0;
}
.form-label {
font-size: 30rpx;
font-weight: 600;
color: rgba(255,255,255,0.9);
display: block;
margin-bottom: 15rpx;
}
.form-label.required::after {
content: '*';
color: #ff4444;
margin-left: 8rpx;
}
.form-input {
width: 100%;
height: 80rpx;
background: rgba(255,255,255,0.1);
border-radius: 16rpx;
padding: 0 25rpx;
font-size: 28rpx;
color: #FFFFFF;
border: 2rpx solid rgba(255,255,255,0.2);
box-sizing: border-box;
transition: all 0.3s;
}
.form-input:focus {
border-color: #9C27B0;
background: rgba(255,255,255,0.15);
}
.word-count {
position: absolute;
right: 0;
top: 0;
font-size: 24rpx;
color: rgba(255,255,255,0.5);
}
.price-tip {
font-size: 24rpx;
color: rgba(255,255,255,0.5);
margin-top: 10rpx;
display: block;
}
.picker-view {
background: rgba(255,255,255,0.1);
border-radius: 16rpx;
padding: 20rpx 25rpx;
border: 2rpx solid rgba(255,255,255,0.2);
color: rgba(255,255,255,0.9);
font-size: 28rpx;
}
.commission-item {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 20rpx;
}
.commission-item .form-label {
width: 100%;
margin-bottom: 10rpx;
}
.commission-input {
flex: 1;
background: rgba(255,255,255,0.1);
border-radius: 16rpx;
padding: 20rpx;
color: #fff;
border: 2rpx solid rgba(255,255,255,0.2);
font-size: 28rpx;
}
/* 提交按钮区域 */
.btn-container {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: linear-gradient(to top, rgba(10,10,15,0.95), transparent);
padding: 30rpx;
box-sizing: border-box;
z-index: 9999;
}
.submit-btn {
background: linear-gradient(135deg, #ff4444 0%, #cc0000 100%);
border-radius: 50rpx;
height: 90rpx;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 10rpx 30rpx rgba(255,68,68,0.3);
transition: all 0.3s;
position: relative;
overflow: hidden;
}
.submit-btn::after {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
animation: shine 2s infinite;
}
.btn-hover {
transform: translateY(-2rpx);
box-shadow: 0 15rpx 40rpx rgba(255,68,68,0.4);
}
.btn-disabled {
opacity: 0.6;
filter: grayscale(0.3);
pointer-events: none;
}
.btn-text {
font-size: 36rpx;
font-weight: bold;
color: white;
letter-spacing: 4rpx;
position: relative;
z-index: 2;
}
@keyframes shine {
0% { left: -100%; }
100% { left: 100%; }
}
/* 加载遮罩 */
.loading-mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.8);
display: flex;
align-items: center;
justify-content: center;
z-index: 10000;
}
.loading-content {
background: rgba(40,40,60,0.95);
padding: 60rpx 80rpx;
border-radius: 30rpx;
display: flex;
flex-direction: column;
align-items: center;
box-shadow: 0 25rpx 70rpx rgba(0,0,0,0.6);
}
.loading-spinner {
width: 90rpx;
height: 90rpx;
border: 8rpx solid rgba(0,180,255,0.2);
border-top: 8rpx solid #00B4FF;
border-radius: 50%;
animation: spin 1.2s linear infinite;
margin-bottom: 35rpx;
}
.loading-text {
font-size: 30rpx;
color: #00B4FF;
font-weight: 600;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* ========== 教程按钮样式(修改后:右上角,更大更显眼) ========== */
.tutorial-btn {
position: fixed;
right: 0;
top: 20%; /* 右上区域,不再是垂直居中 */
transform: translateY(-50%);
width: 120rpx; /* 增大宽度 */
height: 120rpx; /* 增大高度 */
background: rgba(0, 0, 0, 0.75);
backdrop-filter: blur(15rpx);
border-radius: 60rpx 0 0 60rpx;
display: flex;
align-items: center;
justify-content: center;
z-index: 10001;
box-shadow: -8rpx 0 20rpx rgba(0,0,0,0.3);
transition: right 0.3s ease-out;
border: 2rpx solid rgba(255,215,0,0.5);
border-right: none;
}
.tutorial-btn-text {
color: #FFD700;
font-size: 36rpx; /* 文字更大 */
font-weight: bold;
writing-mode: vertical-rl;
letter-spacing: 6rpx;
}
.tutorial-btn-hidden {
right: -80rpx; /* 缩进后只露出约40rpx边缘 */
}
.tutorial-btn-hover {
background: rgba(0, 0, 0, 0.9);
transform: translateY(-50%) scale(1.05);
}
/* 商家派单 */
page {
background: #f5f5f5;
}
.page {
min-height: 100vh;
padding: 24rpx;
padding-bottom: 160rpx;
box-sizing: border-box;
}
/* 余额卡片 */
.balance-card {
background: #1a1a2e;
border-radius: 16rpx;
padding: 36rpx 32rpx;
margin-bottom: 20rpx;
text-align: center;
}
.balance-label {
font-size: 24rpx;
color: rgba(255,255,255,0.5);
display: block;
}
.balance-row {
display: flex;
align-items: baseline;
justify-content: center;
margin: 12rpx 0 8rpx;
}
.balance-value {
font-size: 52rpx;
font-weight: 700;
color: #f0d060;
line-height: 1;
}
.balance-unit {
font-size: 26rpx;
color: #f0d060;
margin-left: 6rpx;
font-weight: 500;
}
.balance-tip {
font-size: 20rpx;
color: rgba(255,255,255,0.35);
display: block;
}
/* 卡片 */
.card {
background: #fff;
border-radius: 16rpx;
padding: 28rpx;
margin-bottom: 20rpx;
}
.card-header {
display: flex;
align-items: center;
margin-bottom: 20rpx;
}
.card-dot {
width: 8rpx;
height: 8rpx;
border-radius: 4rpx;
background: #9C27B0;
margin-right: 12rpx;
flex-shrink: 0;
}
.card-title {
font-size: 28rpx;
font-weight: 700;
color: #333;
}
/* 订单类型 */
.type-scroll {
white-space: nowrap;
display: flex;
padding: 8rpx 0;
}
.type-chip {
display: inline-flex;
flex-shrink: 0;
align-items: center;
justify-content: center;
height: 64rpx;
padding: 0 28rpx;
margin-right: 14rpx;
background: #f5f5f5;
border-radius: 32rpx;
font-size: 24rpx;
color: #666;
border: 1rpx solid transparent;
}
.type-chip--active {
background: #f3e5f9;
color: #9C27B0;
border-color: #9C27B0;
font-weight: 600;
}
/* 表单字段 */
.field {
margin-bottom: 24rpx;
}
.field:last-child {
margin-bottom: 0;
}
.field-head {
display: flex;
align-items: center;
margin-bottom: 10rpx;
}
.field-label {
font-size: 26rpx;
font-weight: 600;
color: #333;
}
.field-required {
font-size: 26rpx;
color: #e04040;
margin-left: 4rpx;
}
.field-optional {
font-size: 20rpx;
color: #bbb;
margin-left: 8rpx;
}
.field-count {
font-size: 20rpx;
color: #ccc;
margin-left: auto;
}
.field-input {
width: 100%;
height: 76rpx;
background: #f7f7f7;
border-radius: 12rpx;
padding: 0 20rpx;
font-size: 26rpx;
color: #333;
border: 1rpx solid #eee;
box-sizing: border-box;
}
.field-hint {
font-size: 20rpx;
color: #bbb;
margin-top: 8rpx;
display: block;
}
/* 价格输入 */
.price-input-wrap {
display: flex;
align-items: center;
background: #f7f7f7;
border-radius: 12rpx;
border: 1rpx solid #eee;
overflow: hidden;
}
.price-prefix {
font-size: 28rpx;
font-weight: 700;
color: #999;
padding-left: 20rpx;
flex-shrink: 0;
}
.price-input {
border: none;
background: transparent;
flex: 1;
}
/* Picker */
.field-picker {
display: flex;
align-items: center;
justify-content: space-between;
height: 76rpx;
background: #f7f7f7;
border-radius: 12rpx;
padding: 0 20rpx;
border: 1rpx solid #eee;
font-size: 26rpx;
color: #333;
}
.field-picker-ph {
color: #bbb;
}
.field-picker-arrow {
font-size: 24rpx;
color: #ccc;
}
/* Switch 行 */
.switch-row {
display: flex;
align-items: center;
margin-bottom: 12rpx;
}
.switch-label {
font-size: 22rpx;
color: #999;
margin-left: 12rpx;
}
/* 底部留白 */
.bottom-space {
height: 20rpx;
}
/* 提交栏 */
.submit-bar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: #fff;
padding: 16rpx 24rpx;
padding-bottom: calc(16rpx + env(safe-area-inset-bottom));
border-top: 1rpx solid #f0f0f0;
z-index: 9999;
}
.submit-btn {
height: 88rpx;
background: #e04040;
border-radius: 12rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
font-weight: 700;
color: #fff;
letter-spacing: 2rpx;
}
.submit-btn--hover {
opacity: 0.85;
}
.submit-btn--disabled {
opacity: 0.5;
pointer-events: none;
}
/* 加载 */
.loading-mask {
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
background: rgba(255,255,255,0.8);
display: flex;
align-items: center;
justify-content: center;
z-index: 10000;
}
.loading-box {
background: #fff;
padding: 48rpx 64rpx;
border-radius: 16rpx;
display: flex;
flex-direction: column;
align-items: center;
box-shadow: 0 4rpx 20rpx rgba(0,0,0,0.08);
}
.loading-spinner {
width: 44rpx;
height: 44rpx;
border: 4rpx solid #eee;
border-top-color: #333;
border-radius: 50%;
animation: spin 0.8s linear infinite;
margin-bottom: 16rpx;
}
.loading-text {
font-size: 24rpx;
color: #666;
}
/* 教程按钮 */
.tutorial-btn {
position: fixed;
right: 0;
top: 20%;
transform: translateY(-50%);
width: 72rpx;
height: 72rpx;
background: #9C27B0;
border-radius: 36rpx 0 0 36rpx;
display: flex;
align-items: center;
justify-content: center;
z-index: 10001;
transition: right 0.3s ease-out;
}
.tutorial-btn-text {
color: #fff;
font-size: 22rpx;
font-weight: 600;
writing-mode: vertical-rl;
letter-spacing: 4rpx;
}
.tutorial-btn--hidden {
right: -44rpx;
}
.tutorial-btn--hover {
opacity: 0.85;
}
+1 -1
View File
@@ -132,4 +132,4 @@
</view>
</view>
<global-notification id="global-notification" />
<custom-tab-bar />
<tab-bar />
+6
View File
@@ -127,6 +127,7 @@ Page({
iconCopy: `${imgDir}icon_copy.png`,
avatarFrame: `${imgDir}avatar_frame.png`,
iconClear: `${ossBase}beijing/tubiao/grzx_qingchu.jpg`,
iconSwitch: '/images/_exit.png',
}
});
},
@@ -359,4 +360,9 @@ Page({
},
});
},
switchToNormal() {
lockPrimaryRole('normal');
wx.reLaunch({ url: '/pages/mine/mine' });
},
});
+1 -1
View File
@@ -2,7 +2,7 @@
"usingComponents": {
"global-notification": "/components/global-notification/global-notification",
"popup-notice": "/components/popup-notice/popup-notice",
"custom-tab-bar": "/custom-tab-bar/index",
"tab-bar": "/tab-bar/index",
"chenghao-tag": "/components/chenghao-tag/chenghao-tag"
},
"navigationBarTitleText": "商家中心",
+11 -3
View File
@@ -15,10 +15,14 @@
</view>
<button class="register-btn" bindtap="onRegister">立即注册</button>
<view class="register-tip">已有邀请码?点击上方注册</view>
<view class="sys-item sys-item-unreg" bindtap="switchToNormal">
<image class="sys-icon" src="{{imgUrls.iconSwitch}}" mode="aspectFit" />
<text class="sys-text">返回点单端</text>
</view>
<view class="sys-item sys-item-unreg" bindtap="clearCache">
<image class="sys-icon" src="{{imgUrls.iconClear}}" mode="aspectFit" />
<text class="sys-text">清除缓存</text>
<text class="sys-sub">回点单端</text>
<text class="sys-sub">重新登录</text>
</view>
</view>
</view>
@@ -167,10 +171,14 @@
</view>
<view class="sys-list">
<view class="sys-item" bindtap="switchToNormal">
<image class="sys-icon" src="{{imgUrls.iconSwitch}}" mode="aspectFit" />
<text class="sys-text">返回点单端</text>
</view>
<view class="sys-item" bindtap="clearCache">
<image class="sys-icon" src="{{imgUrls.iconClear}}" mode="aspectFit" />
<text class="sys-text">清除缓存</text>
<text class="sys-sub">回点单端</text>
<text class="sys-sub">重新登录</text>
</view>
</view>
@@ -188,4 +196,4 @@
<!-- 全局组件 -->
<global-notification id="global-notification" />
<popup-notice id="popupNotice" />
<custom-tab-bar />
<tab-bar />
+1 -1
View File
@@ -1,6 +1,6 @@
{
"usingComponents": {
"global-notification": "/components/global-notification/global-notification",
"custom-tab-bar": "/custom-tab-bar/index"
"tab-bar": "/tab-bar/index"
}
}
+1 -1
View File
@@ -64,6 +64,6 @@
</view>
<!-- 底部自定义TabBar -->
<custom-tab-bar />
<tab-bar />
<global-notification id="global-notification" />
</view>
+1 -1
View File
@@ -1,7 +1,7 @@
{
"usingComponents": {
"global-notification": "/components/global-notification/global-notification",
"custom-tab-bar": "/custom-tab-bar/index"
"tab-bar": "/tab-bar/index"
},
"navigationBarTitleText": "个人中心",
"navigationBarBackgroundColor": "#F7F3ED",
+1 -1
View File
@@ -113,5 +113,5 @@
</scroll-view>
</view>
<custom-tab-bar />
<tab-bar />
<global-notification id="global-notification" />
+261 -249
View File
@@ -1,251 +1,263 @@
/* pages/gerenzhongxin/gerenzhongxin.wxss — 最终完美版(毛玻璃强化+图标左右贴边) */
/* 我的页面 */
/* 全局 */
page {
background: #F7F3ED;
height: 100vh;
overflow: hidden;
}
.page-root {
position: relative;
width: 100%;
height: 100vh;
display: flex;
flex-direction: column;
}
.bg-layer {
position: fixed;
top: 0; left: 0;
width: 100vw; height: 100vh;
background: radial-gradient(ellipse at 30% 20%, rgba(201,169,98,0.08) 0%, transparent 60%),
radial-gradient(ellipse at 80% 70%, rgba(201,169,98,0.05) 0%, transparent 50%);
z-index: 0;
pointer-events: none;
}
.main-scroll {
position: relative;
z-index: 2;
flex: 1;
width: 100%;
overflow-y: auto;
padding-bottom: calc(140rpx + env(safe-area-inset-bottom));
}
.main-content {
padding: 60rpx 40rpx 0;
}
/* 图标基础 */
.icon-dark {
filter: brightness(0) saturate(100%) opacity(0.65);
}
.icon-color {
filter: none;
}
.icon-size {
width: 52rpx;
height: 52rpx;
}
/* 图标独立淡金背景 */
.icon-bg {
background: rgba(201,169,98,0.08);
border-radius: 24rpx;
display: flex;
align-items: center;
justify-content: center;
padding: 18rpx;
}
/* 头部(头像完美正圆) */
.hero {
position: relative;
margin-bottom: 100rpx;
}
.settings-icon {
position: absolute;
top: 0; right: 0;
width: 60rpx; height: 60rpx;
display: flex; align-items: center; justify-content: center;
}
.user-block {
display: flex; align-items: center;
}
.avatar-outside {
width: 140rpx;
height: 140rpx;
border-radius: 50%;
background: rgba(201,169,98,0.06);
padding: 10rpx;
margin-right: 35rpx;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
}
.avatar {
width: 100%;
height: 100%;
border-radius: 50%;
display: block;
border: none;
}
.nickname {
font-size: 44rpx; font-weight: 700; color: #1A1A1A;
display: block;
}
.uid {
font-size: 28rpx; color: #7A7A7A;
margin-top: 12rpx;
display: block;
}
.login-btn {
margin-top: 45rpx;
height: 92rpx;
border-radius: 46rpx;
}
/* 分区间距 */
.section {
margin-top: 110rpx;
}
.section-close {
margin-top: 80rpx;
}
.title-line {
margin-bottom: 40rpx;
padding: 18rpx 28rpx;
line-height: 1.2;
}
.gradient-bg {
background: linear-gradient(to right, rgba(201,169,98,0.01), rgba(201,169,98,0.10));
}
.title-text {
font-size: 38rpx;
font-weight: 700;
color: #1A1A1A;
letter-spacing: 2rpx;
}
/* 毛玻璃订单容器(强化玻璃质感,淡灰半透,无白边) */
.frosted-box {
background: rgba(235, 235, 240, 0.45); /* 淡灰玻璃底 */
backdrop-filter: blur(25px);
-webkit-backdrop-filter: blur(25px);
border-radius: 36rpx;
padding: 45rpx 0; /* 去掉左右内边距,让图标真正贴边 */
box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.05), inset 0 1rpx 0 rgba(255,255,255,0.7);
border: none;
}
/* 订单行 - 图标完全左右贴边,间距最大化 */
.order-row {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 5rpx; /* 极微的内边距,防止图片被裁剪,但视觉上仍贴边 */
}
.order-unit {
display: flex;
flex-direction: column;
align-items: center;
position: relative;
flex: 1; /* 等分剩余空间 */
margin: 0; /* 无额外间距 */
}
.order-name {
font-size: 28rpx;
color: #1C1C1C;
margin-top: 18rpx;
font-weight: 500;
}
.badge {
position: absolute;
top: -10rpx;
right: 12rpx;
background: #C5615E;
color: #fff;
font-size: 22rpx;
min-width: 38rpx;
height: 38rpx;
border-radius: 19rpx;
display: flex;
align-items: center;
justify-content: center;
padding: 0 8rpx;
font-weight: 600;
}
/* 更多服务 */
.service-row {
display: flex;
gap: 80rpx;
justify-content: flex-start;
}
.auth-service-row {
gap: 100rpx;
}
.service-unit {
display: flex;
flex-direction: column;
align-items: center;
min-width: 120rpx;
}
.service-name {
font-size: 26rpx;
color: #1C1C1C;
margin-top: 14rpx;
font-weight: 500;
}
.icon-bg-sm {
padding: 14rpx;
border-radius: 20rpx;
}
.icon-size-sm {
width: 44rpx;
height: 44rpx;
}
.auth-tag {
font-size: 20rpx;
color: #aaa;
margin-top: 6rpx;
}
.auth-tag-done {
color: #C9A962;
font-weight: 500;
}
/* 清除缓存 */
.clear-row {
display: flex;
align-items: center;
padding: 22rpx 0;
}
.clear-word {
flex: 1;
font-size: 30rpx;
color: #1C1C1C;
margin-left: 18rpx;
font-weight: 500;
}
.arrow-right {
width: 36rpx;
height: 36rpx;
opacity: 0.45;
margin-left: 15rpx;
}
/* 底部 */
.footer {
margin-top: 130rpx;
padding-bottom: 20rpx;
text-align: center;
font-size: 26rpx;
color: #aaa;
}
.divider { margin: 0 15rpx; }
.coop { color: #C9A962; font-weight: 500; }
background: #F7F3ED;
height: 100vh;
overflow: hidden;
}
.page-root {
position: relative;
width: 100%;
height: 100vh;
display: flex;
flex-direction: column;
}
.bg-layer {
position: fixed;
top: 0; left: 0;
width: 100vw; height: 100vh;
background: radial-gradient(ellipse at 30% 20%, rgba(201,169,98,0.08) 0%, transparent 60%),
radial-gradient(ellipse at 80% 70%, rgba(201,169,98,0.05) 0%, transparent 50%);
z-index: 0;
pointer-events: none;
}
.main-scroll {
position: relative;
z-index: 2;
flex: 1;
width: 100%;
overflow-y: auto;
padding-bottom: calc(140rpx + env(safe-area-inset-bottom));
}
.main-content {
padding: 50rpx 36rpx 0;
}
/* 图标 */
.icon-dark {
filter: brightness(0) saturate(100%) opacity(0.65);
}
.icon-color {
filter: none;
}
.icon-size {
width: 48rpx;
height: 48rpx;
}
.icon-bg {
background: rgba(201,169,98,0.08);
border-radius: 22rpx;
display: flex;
align-items: center;
justify-content: center;
padding: 16rpx;
}
/* 头部 */
.hero {
position: relative;
margin-bottom: 60rpx;
}
.settings-icon {
position: absolute;
top: 0; right: 0;
width: 56rpx; height: 56rpx;
display: flex; align-items: center; justify-content: center;
}
.settings-icon .icon-dark {
width: 44rpx; height: 44rpx;
}
.user-block {
display: flex;
align-items: center;
}
.avatar-outside {
width: 128rpx;
height: 128rpx;
border-radius: 50%;
background: linear-gradient(135deg, rgba(201,169,98,0.12), rgba(201,169,98,0.04));
padding: 8rpx;
margin-right: 28rpx;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
}
.avatar {
width: 100%;
height: 100%;
border-radius: 50%;
display: block;
}
.nickname {
font-size: 40rpx;
font-weight: 700;
color: #1A1A1A;
display: block;
}
.uid {
font-size: 26rpx;
color: #999;
margin-top: 8rpx;
display: block;
}
.login-btn {
margin-top: 36rpx;
height: 88rpx;
border-radius: 44rpx;
}
/* 分区 */
.section {
margin-top: 48rpx;
}
.section-close {
margin-top: 36rpx;
}
.title-line {
margin-bottom: 24rpx;
padding: 14rpx 24rpx;
line-height: 1.2;
}
.gradient-bg {
background: linear-gradient(to right, rgba(201,169,98,0.01), rgba(201,169,98,0.10));
}
.title-text {
font-size: 34rpx;
font-weight: 700;
color: #1A1A1A;
letter-spacing: 1rpx;
}
/* 毛玻璃容器 */
.frosted-box {
background: rgba(255, 255, 255, 0.52);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-radius: 28rpx;
padding: 36rpx 20rpx;
box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.04), inset 0 1rpx 0 rgba(255,255,255,0.8);
border: 1rpx solid rgba(255,255,255,0.5);
}
/* 订单行 */
.order-row {
display: flex;
justify-content: space-around;
align-items: center;
}
.order-unit {
display: flex;
flex-direction: column;
align-items: center;
position: relative;
flex: 1;
}
.order-name {
font-size: 26rpx;
color: #333;
margin-top: 14rpx;
font-weight: 500;
}
.badge {
position: absolute;
top: -8rpx;
right: 10rpx;
background: #C5615E;
color: #fff;
font-size: 20rpx;
min-width: 34rpx;
height: 34rpx;
border-radius: 17rpx;
display: flex;
align-items: center;
justify-content: center;
padding: 0 8rpx;
font-weight: 600;
}
/* 更多服务 */
.service-row {
display: flex;
gap: 60rpx;
justify-content: flex-start;
padding: 8rpx 0;
}
.auth-service-row {
gap: 80rpx;
}
.service-unit {
display: flex;
flex-direction: column;
align-items: center;
min-width: 110rpx;
}
.service-name {
font-size: 24rpx;
color: #333;
margin-top: 12rpx;
font-weight: 500;
}
.icon-bg-sm {
padding: 12rpx;
border-radius: 18rpx;
}
.icon-size-sm {
width: 40rpx;
height: 40rpx;
}
.auth-tag {
font-size: 20rpx;
color: #bbb;
margin-top: 4rpx;
}
.auth-tag-done {
color: #C9A962;
font-weight: 500;
}
/* 清除缓存 */
.clear-row {
display: flex;
align-items: center;
padding: 20rpx 0;
}
.clear-word {
flex: 1;
font-size: 28rpx;
color: #333;
margin-left: 16rpx;
font-weight: 500;
}
.arrow-right {
width: 32rpx;
height: 32rpx;
opacity: 0.35;
margin-left: 12rpx;
}
/* 底部 */
.footer {
margin-top: 80rpx;
padding-bottom: 20rpx;
text-align: center;
font-size: 24rpx;
color: #bbb;
display: flex;
align-items: center;
justify-content: center;
}
.footer .divider {
margin: 0 12rpx;
height: auto;
background: none;
}
.coop {
color: #C9A962;
font-weight: 500;
}
+1 -1
View File
@@ -1,5 +1,5 @@
{
"usingComponents": {
"custom-tab-bar": "/custom-tab-bar/index"
"tab-bar": "/tab-bar/index"
}
}
+1 -1
View File
@@ -1,2 +1,2 @@
<view></view>
<custom-tab-bar />
<tab-bar />
+1 -1
View File
@@ -86,7 +86,7 @@
<!-- 支付方式 -->
<view class="payment-item">
<view class="payment-method">
<image src="/images/weixinzhifu.png" class="payment-icon" />
<image src="/images/wechat-pay.png" class="payment-icon" />
<text class="payment-text">微信支付</text>
<view class="payment-checkbox">
<text class="checkbox-text">✓</text>
+12 -12
View File
@@ -1,4 +1,4 @@
// custom-tab-bar/index.js — 三端固定,无身份切换
// tab-bar/index.js — 三端固定,无身份切换
const app = getApp();
import { getTabRole } from '../utils/primary-role.js';
@@ -6,27 +6,27 @@ const roleCfg = {
normal: {
name: '点单老板',
tabList: [
{ pagePath: 'pages/index/index', text: '商城', iconPath: '/images/zhuye.png', selectedIconPath: '/images/zhuye.png' },
{ pagePath: 'pages/category/category', text: '分类', iconPath: '/images/fenlei.png', selectedIconPath: '/images/fenlei.png' },
{ pagePath: 'pages/messages/messages', text: '消息', iconPath: '/images/xiaoxi.png', selectedIconPath: '/images/xiaoxi.png' },
{ pagePath: 'pages/mine/mine', text: '我的', iconPath: '/images/wode.png', selectedIconPath: '/images/wode.png' },
{ pagePath: 'pages/index/index', text: '商城', iconPath: '/images/home.png', selectedIconPath: '/images/home.png' },
{ pagePath: 'pages/category/category', text: '分类', iconPath: '/images/category.png', selectedIconPath: '/images/category.png' },
{ pagePath: 'pages/messages/messages', text: '消息', iconPath: '/images/messages.png', selectedIconPath: '/images/messages.png' },
{ pagePath: 'pages/mine/mine', text: '我的', iconPath: '/images/mine.png', selectedIconPath: '/images/mine.png' },
],
},
dashou: {
name: '打手',
tabList: [
{ pagePath: 'pages/accept-order/accept-order', text: '接单池', iconPath: '/images/jiedanchi.png', selectedIconPath: '/images/jiedanchi.png' },
{ pagePath: 'pages/fighter-orders/fighter-orders', text: '订单', iconPath: '/images/dingdan.png', selectedIconPath: '/images/dingdan.png' },
{ pagePath: 'pages/messages/messages', text: '消息', iconPath: '/images/xiaoxi.png', selectedIconPath: '/images/xiaoxi.png' },
{ pagePath: 'pages/fighter/fighter', text: '我的', iconPath: '/images/wode.png', selectedIconPath: '/images/wode.png' },
{ pagePath: 'pages/accept-order/accept-order', text: '接单池', iconPath: '/images/order-pool.png', selectedIconPath: '/images/order-pool.png' },
{ pagePath: 'pages/fighter-orders/fighter-orders', text: '订单', iconPath: '/images/orders.png', selectedIconPath: '/images/orders.png' },
{ pagePath: 'pages/messages/messages', text: '消息', iconPath: '/images/messages.png', selectedIconPath: '/images/messages.png' },
{ pagePath: 'pages/fighter/fighter', text: '我的', iconPath: '/images/mine.png', selectedIconPath: '/images/mine.png' },
],
},
shangjia: {
name: '商家',
tabList: [
{ pagePath: 'pages/merchant-orders/merchant-orders', text: '订单', iconPath: '/images/dingdan.png', selectedIconPath: '/images/dingdan.png' },
{ pagePath: 'pages/messages/messages', text: '消息', iconPath: '/images/xiaoxi.png', selectedIconPath: '/images/xiaoxi.png' },
{ pagePath: 'pages/merchant/merchant', text: '我的', iconPath: '/images/wode.png', selectedIconPath: '/images/wode.png' },
{ pagePath: 'pages/merchant-orders/merchant-orders', text: '订单', iconPath: '/images/orders.png', selectedIconPath: '/images/orders.png' },
{ pagePath: 'pages/messages/messages', text: '消息', iconPath: '/images/messages.png', selectedIconPath: '/images/messages.png' },
{ pagePath: 'pages/merchant/merchant', text: '我的', iconPath: '/images/mine.png', selectedIconPath: '/images/mine.png' },
],
},
};
File renamed without changes.
@@ -1,4 +1,4 @@
<view class="custom-tab-bar">
<view class="tab-bar">
<view class="bar-row">
<view class="tab-capsule">
<block wx:for="{{tabList}}" wx:key="index">
@@ -1,6 +1,6 @@
/* custom-tab-bar — 三端固定,全宽 Tab 胶囊 */
/* tab-bar — 三端固定,全宽 Tab 胶囊 */
.custom-tab-bar {
.tab-bar {
position: fixed;
bottom: 0;
left: 0;
+1 -1
View File
@@ -255,7 +255,7 @@ function updateTabBarBadge(app, unreadCount) {
const pages = getCurrentPages();
if (pages.length) {
const page = pages[pages.length - 1];
const tabBar = page.selectComponent('#custom-tab-bar');
const tabBar = page.selectComponent('#tab-bar');
if (tabBar && tabBar.setData) tabBar.setData({ badgeText });
if (page.getTabBar) {
const tb = page.getTabBar();