修复了诸多问题

This commit is contained in:
2026-06-16 00:17:36 +08:00
parent 3dc03f6fe5
commit 0767e23f11
32 changed files with 167 additions and 166 deletions

View File

@@ -401,7 +401,7 @@ Page({
// 校验1: 打手身份
if (!this.data.dashoustatus || this.data.dashoustatus != 1) {
wx.showToast({ title: '请先开启打手身份', icon: 'none' });
wx.showToast({ title: '请先开启接单员身份', icon: 'none' });
return;
}
// 校验2: 账号状态
@@ -409,7 +409,7 @@ Page({
wx.showToast({ title: '账号异常,无法接单', icon: 'none' });
return;
}
// 校验3: 打手接单状态
// 校验3: 接单员接单状态
if (this.data.dashouzhuangtai != 1) {
wx.showToast({ title: '您有订单正在接待中', icon: 'none' });
return;

View File

@@ -74,13 +74,13 @@
<text class="pingtai-tag">⚙️ 平台订单</text>
</view>
<!-- 指定打手行(新增标签滚动) -->
<!-- 指定接单员行(新增标签滚动) -->
<view wx:if="{{item.isZhiding}}" class="zhiding-row">
<text class="zhiding-icon">指定</text>
<image wx:if="{{item.zhiding_avatar_full}}" class="zhiding-avatar" src="{{item.zhiding_avatar_full}}" mode="aspectFill"/>
<text class="zhiding-nicheng">{{item.zhiding_nicheng || '指定打手'}}</text>
<text class="zhiding-nicheng">{{item.zhiding_nicheng || '指定接单员'}}</text>
<text class="zhiding-uid">UID: {{item.zhiding_uid || '未知'}}</text>
<!-- 🆕 打手标签 -->
<!-- 🆕 接单员标签 -->
<scroll-view wx:if="{{item.dashou_biaoqian.length > 0}}" class="biaoqian-inline-scroll" scroll-x>
<chenghao-tag wx:for="{{item.dashou_biaoqian}}" wx:for-item="tag" wx:key="id" mingcheng="{{tag.mingcheng}}" texiaoJson="{{tag.texiao_json}}" />
</scroll-view>
@@ -139,13 +139,13 @@
<text class="pingtai-tag">🏪 商家发单</text>
</view>
<!-- 指定打手行 -->
<!-- 指定接单员行 -->
<view wx:if="{{item.isZhiding}}" class="zhiding-row">
<text class="zhiding-icon">指定</text>
<image wx:if="{{item.zhiding_avatar_full}}" class="zhiding-avatar" src="{{item.zhiding_avatar_full}}" mode="aspectFill"/>
<text class="zhiding-nicheng">{{item.zhiding_nicheng || '指定打手'}}</text>
<text class="zhiding-nicheng">{{item.zhiding_nicheng || '指定接单员'}}</text>
<text class="zhiding-uid">UID: {{item.zhiding_uid || '未知'}}</text>
<!-- 🆕 打手标签 -->
<!-- 🆕 接单员标签 -->
<scroll-view wx:if="{{item.dashou_biaoqian.length > 0}}" class="biaoqian-inline-scroll" scroll-x>
<chenghao-tag wx:for="{{item.dashou_biaoqian}}" wx:for-item="tag" wx:key="id" mingcheng="{{tag.mingcheng}}" texiaoJson="{{tag.texiao_json}}" />
</scroll-view>

View File

@@ -186,7 +186,7 @@ Page({
// 抢单成功,弹出联系打手弹窗
wx.showModal({
title: '接待成功',
content: '请认真考核,点击联系他查看打手信息并打分。',
content: '请认真考核,点击联系他查看接单员信息并打分。',
showCancel: false,
confirmText: '联系他',
confirmColor: '#c9a558',

View File

@@ -103,8 +103,8 @@
<view class="detail-section">
<text class="detail-title">其他信息</text>
<view class="info-grid">
<text>打手游戏ID{{item.dashou_youxi_id || '无'}}</text>
<text>打手备注:{{item.dashou_beizhu || '无'}}</text>
<text>接单员游戏ID{{item.dashou_youxi_id || '无'}}</text>
<text>接单员备注:{{item.dashou_beizhu || '无'}}</text>
<text>审核官游戏ID{{item.shenheguan_youxi_id || '无'}}</text>
<text>创建时间:{{item.create_time}}</text>
<text>更新时间:{{item.update_time}}</text>

View File

@@ -73,12 +73,12 @@ Page({
contactDashou(e) {
const item = e.currentTarget.dataset.item;
if (!item || !item.shenqingren_id) {
wx.showToast({ title: '无法获取打手ID', icon: 'none' });
wx.showToast({ title: '无法获取接单员ID', icon: 'none' });
return;
}
openPrivateChat(this, {
toUserId: buildDashouPeerId(item.shenqingren_id),
toName: '打手' + item.shenqingren_id,
toName: '接单员' + item.shenqingren_id,
toAvatar: resolveAvatarUrl(item.shenqingren_avatar),
});
},

View File

@@ -31,7 +31,7 @@
</view>
<!-- 🆕 添加被考核人游戏昵称 -->
<view class="detail-item" wx:if="{{item.dashou_youxi_id}}">
<text class="label">打手游戏昵称</text>
<text class="label">接单员游戏昵称</text>
<text class="value">{{item.dashou_youxi_id}}</text>
</view>
<view class="detail-item" wx:if="{{item.dashou_beizhu}}">

View File

@@ -493,7 +493,7 @@ Page({
}
wx.showModal({
title: '⚠️ 提交确认',
content: '在提交订单之前,请确保您已在打手端页面认真阅读打手规则。如有漏交图片,订单被退款,概不申诉。',
content: '在提交订单之前,请确保您已在接单员端页面认真阅读接单员规则。如有漏交图片,订单被退款,概不申诉。',
confirmText: '我已阅读',
cancelText: '我再想想',
success: (res) => {

View File

@@ -198,11 +198,11 @@
</view>
</view>
<!-- 打手交付历史(只读模式) -->
<!-- 接单员交付历史(只读模式) -->
<view class="dashou-jiaofu-area" wx:if="{{!isModifying && xiangxiShuju.dashou_jiaofu.length > 0}}">
<view class="info-title">我的交付</view>
<!-- 打手交付图片 -->
<!-- 接单员交付图片 -->
<view class="dashou-jiaofu-container">
<text class="section-subtitle">交付图片</text>
<view class="jiaofu-grid">

View File

@@ -6,7 +6,7 @@ import request from '../../utils/request.js'
import { resolveAvatarUrl, getDefaultAvatarUrl } from '../../utils/avatar.js'
const ROLE_LIST = [
{ key: 'dashou', label: '打手' },
{ key: 'dashou', label: '接单员' },
{ key: 'guanshi', label: '管事' },
{ key: 'zuzhang', label: '组长' },
{ key: 'shangjia', label: '商家' },
@@ -24,7 +24,7 @@ const DATE_LIST = [
const ROLE_META = {
dashou: {
title: '打手排行榜',
title: '接单员排行榜',
sortField: 'chengjiao_zonge',
sortLabel: '分红总额',
metrics: [

View File

@@ -57,7 +57,7 @@ Page(createPage({
pendingShenheCount: 0,
layoutSparse: false,
rankBoardList: [
{ type: 'dashou', name: '打手榜', sub: '接单成交', icon: '', shapeClass: 'rank-shape-left', themeClass: 'rank-theme-blue' },
{ type: 'dashou', name: '接单员榜', sub: '接单成交', icon: '', shapeClass: 'rank-shape-left', themeClass: 'rank-theme-blue' },
{ type: 'guanshi', name: '管事榜', sub: '邀请收入', icon: '', shapeClass: 'rank-shape-right', themeClass: 'rank-theme-gold' },
{ type: 'zuzhang', name: '组长榜', sub: '团队分红', icon: '', shapeClass: 'rank-shape-left', themeClass: 'rank-theme-purple' },
{ type: 'shangjia', name: '商家榜', sub: '派单流水', icon: '', shapeClass: 'rank-shape-right', themeClass: 'rank-theme-orange' },
@@ -240,7 +240,7 @@ Page(createPage({
_updateTotalAssets() {
const d = this.data;
const breakdown = [{ label: '打手佣金', amount: d.yongjin || '0.00' }];
const breakdown = [{ label: '接单员佣金', amount: d.yongjin || '0.00' }];
let total = this._parseMoney(d.yongjin);
if (d.isGuanshi) {
total += this._parseMoney(d.fenyongtixian);
@@ -711,7 +711,7 @@ Page(createPage({
that.setData({ isAutoRegistering: true });
that.onRegister();
} else {
wx.showToast({ title: '您已是打手', icon: 'success', duration: 2000 });
wx.showToast({ title: '您已是接单员', icon: 'success', duration: 2000 });
}
}
},

View File

@@ -4,7 +4,7 @@
<block wx:if="{{!isDashou && !isGuanshi && !isZuzhang && !isKaoheguan}}">
<view class="unreg-area">
<view class="unreg-card">
<text class="unreg-title">打手认证</text>
<text class="unreg-title">接单员认证</text>
<input class="unreg-input" type="text" placeholder="输入邀请码" maxlength="100" value="{{inviteCode}}" bindinput="onInviteCodeInput" placeholder-class="ph" />
<view class="unreg-btn" bindtap="onRegister">
<text class="unreg-btn-text">立即注册</text>
@@ -37,9 +37,9 @@
<image class="user-avatar" src="{{avatarUrl || imgUrls.avatarDefault}}" mode="aspectFill" bindtap="previewAvatar" />
<view class="user-info">
<view class="name-row">
<text class="user-name">{{dashouNicheng || '打手'}}</text>
<text class="user-name">{{dashouNicheng || '接单员'}}</text>
<view class="role-tags">
<view class="role-tag role-tag-dashou">打手</view>
<view class="role-tag role-tag-dashou">接单员</view>
<view class="role-tag role-tag-guanshi" wx:if="{{isGuanshi}}">管事</view>
<view class="role-tag role-tag-zuzhang" wx:if="{{isZuzhang}}">组长</view>
<view class="role-tag role-tag-kaohe" wx:if="{{isKaoheguan}}">考核</view>
@@ -174,7 +174,7 @@
</view>
</view>
<!-- 荣耀排行榜(无外层大框,梯形榜格) -->
<!-- 荣耀排行榜 -->
<view class="rank-section">
<view class="rank-hub-head">
<image class="rank-hub-head-icon" src="{{imgUrls.iconSectionRank}}" mode="aspectFit" />
@@ -185,29 +185,31 @@
</view>
<view class="rank-grid">
<view
class="rank-cell {{item.shapeClass}} {{item.themeClass}}"
class="rank-card {{item.themeClass}}"
wx:for="{{rankBoardList}}"
wx:key="type"
bindtap="goToRanking"
data-type="{{item.type}}"
>
<view class="rank-cell-inner">
<image class="rank-bg-icon" src="{{item.icon}}" mode="aspectFit" />
<view class="rank-cell-content">
<image class="rank-main-icon" src="{{item.icon}}" mode="aspectFit" />
<text class="rank-cell-name">{{item.name}}</text>
<text class="rank-cell-sub">{{item.sub}}</text>
<!-- 背景水印图标 -->
<image class="rank-card-watermark" src="{{item.icon}}" mode="aspectFit" />
<!-- 内容区:左卡片靠左,右卡片靠右 -->
<view class="rank-card-body">
<view class="rank-card-info">
<image class="rank-card-icon" src="{{item.icon}}" mode="aspectFit" />
<text class="rank-card-title">{{item.name}}</text>
<text class="rank-card-desc">{{item.sub}}</text>
</view>
</view>
</view>
</view>
</view>
<!-- 打手功能 -->
<!-- 接单员功能 -->
<view class="section-card">
<view class="section-head-line">
<image class="section-head-icon" src="{{imgUrls.iconSectionFunc}}" mode="aspectFit" />
<text class="section-title section-title-sm">打手功能</text>
<text class="section-title section-title-sm">接单员功能</text>
</view>
<view class="func-panel">
<image class="func-panel-bg" src="{{imgUrls.funcPanelBg}}" mode="aspectFill" />

View File

@@ -442,109 +442,108 @@ page {
display: block;
}
/* ===== 荣耀排行榜 ===== */
.rank-grid {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
row-gap: 12rpx;
gap: 20rpx;
}
.rank-cell {
width: 48.5%;
height: 140rpx;
.rank-card {
width: 48%;
height: 180rpx;
border-radius: 20rpx;
position: relative;
border-radius: 16rpx;
overflow: hidden;
box-shadow: 0 2rpx 8rpx rgba(0,0,0,0.08);
box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.12);
}
.rank-shape-left,
.rank-shape-right {
clip-path: none;
/* 左列卡片:右侧倾斜切角 */
.rank-card:nth-child(odd) {
clip-path: polygon(0% 0%, 100% 0%, 92% 100%, 0% 100%);
}
/* 右列卡片:左侧倾斜切角 */
.rank-card:nth-child(even) {
clip-path: polygon(8% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.rank-cell-inner {
width: 100%;
height: 100%;
position: relative;
display: flex;
align-items: center;
padding: 0 24rpx;
box-sizing: border-box;
border-radius: 16rpx;
overflow: hidden;
}
.rank-bg-icon {
/* 背景水印 */
.rank-card-watermark {
position: absolute;
width: 100rpx;
height: 100rpx;
right: 8rpx;
top: 50%;
transform: translateY(-50%) rotate(-10deg);
opacity: 0.12;
width: 150rpx;
height: 150rpx;
opacity: 0.16;
z-index: 0;
pointer-events: none;
}
/* 左列卡片水印在右下角 */
.rank-card:nth-child(odd) .rank-card-watermark {
right: -20rpx;
bottom: -20rpx;
transform: rotate(-15deg);
}
/* 右列卡片水印在左下角 */
.rank-card:nth-child(even) .rank-card-watermark {
left: -20rpx;
bottom: -20rpx;
transform: rotate(15deg);
}
.rank-cell-content {
/* 内容区 */
.rank-card-body {
position: relative;
z-index: 1;
width: 100%;
height: 100%;
display: flex;
align-items: center;
padding: 24rpx 28rpx;
box-sizing: border-box;
}
/* 左列靠左对齐,右列靠右对齐 */
.rank-card:nth-child(odd) .rank-card-body {
justify-content: flex-start;
padding-right: 50rpx; /* 给斜边留空间 */
}
.rank-card:nth-child(even) .rank-card-body {
justify-content: flex-end;
padding-left: 50rpx; /* 给斜边留空间 */
}
.rank-card-info {
display: flex;
flex-direction: column;
align-items: flex-start;
}
.rank-card:nth-child(even) .rank-card-info {
align-items: flex-end;
}
.rank-main-icon {
width: 44rpx;
height: 44rpx;
margin-bottom: 8rpx;
.rank-card-icon {
width: 56rpx;
height: 56rpx;
margin-bottom: 10rpx;
}
.rank-shape-right .rank-cell-inner {
padding: 0 20rpx;
flex-direction: row-reverse;
}
.rank-shape-right .rank-bg-icon {
right: auto;
left: -12rpx;
transform: translateY(-50%) rotate(10deg);
}
.rank-shape-right .rank-cell-content {
text-align: right;
}
.rank-theme-blue .rank-cell-inner {
background: linear-gradient(135deg, #5ba3e6, #3b82e8);
}
.rank-theme-gold .rank-cell-inner {
background: linear-gradient(135deg, #f0c850, #e8a820);
}
.rank-theme-purple .rank-cell-inner {
background: linear-gradient(135deg, #9b87f5, #7c6be8);
}
.rank-theme-orange .rank-cell-inner {
background: linear-gradient(135deg, #f08050, #e05a30);
}
.rank-cell-name {
font-size: 24rpx;
.rank-card-title {
font-size: 32rpx;
font-weight: 700;
color: #fff;
line-height: 1.2;
line-height: 1.3;
}
.rank-cell-sub {
font-size: 18rpx;
.rank-card-desc {
font-size: 22rpx;
color: rgba(255,255,255,0.8);
margin-top: 2rpx;
margin-top: 4rpx;
}
.rank-shape-right .rank-cell-name,
.rank-shape-right .rank-cell-sub {
text-align: right;
}
/* 四种主题色 */
.rank-theme-blue { background: linear-gradient(135deg, #5BA3E6, #3B82E8); }
.rank-theme-gold { background: linear-gradient(135deg, #F5C850, #E8A520); }
.rank-theme-purple { background: linear-gradient(135deg, #A78BFA, #7C6BE8); }
.rank-theme-orange { background: linear-gradient(135deg, #F08860, #E05A38); }
/* 功能面板 */
.func-panel {

View File

@@ -67,11 +67,11 @@
<view class="instruction">
<view class="instruction-item">
<text class="instruction-icon">🔗</text>
<text class="instruction-text">将邀请码分享给打手,他们注册时填写即可绑定</text>
<text class="instruction-text">将邀请码分享给接单员,他们注册时填写即可绑定</text>
</view>
<view class="instruction-item">
<text class="instruction-icon">💰</text>
<text class="instruction-text">成功邀请的打手充值押金,您将获得分佣奖励</text>
<text class="instruction-text">成功邀请的接单员充值押金,您将获得分佣奖励</text>
</view>
<view class="instruction-item">
<text class="instruction-icon">⚠️</text>

View File

@@ -170,7 +170,7 @@ Page({
return list.map(item => ({
// 打手信息
dashouAvatar: this.getFullUrl(item.dashou_avatar, ossUrl, defaultAvatar),
dashouNicheng: item.dashou_nicheng || '打手',
dashouNicheng: item.dashou_nicheng || '接单员',
dashouYonghuid: item.dashou_yonghuid || '',
// 管事信息
guanshiAvatar: this.getFullUrl(item.guanshi_avatar, ossUrl, defaultAvatar),

View File

@@ -47,7 +47,7 @@
<view wx:elif="{{!loading && jiluList.length === 0}}" class="empty-state">
<text class="empty-icon">📭</text>
<text class="empty-title">暂无分红记录</text>
<text class="empty-tip">邀请管事并让打手充值即可获得分红</text>
<text class="empty-tip">邀请管事并让接单员充值即可获得分红</text>
<view class="empty-btn" bindtap="onRefresh">刷新</view>
</view>

View File

@@ -84,7 +84,7 @@
/>
</view>
<!-- 指定打手UID -->
<!-- 指定接单员UID -->
<view class="field">
<view class="field-head">
<text class="field-label">指定UID</text>
@@ -92,7 +92,7 @@
</view>
<input
class="field-input"
placeholder="指定某位打手接单"
placeholder="指定某位接单员接单"
maxlength="10"
value="{{zhidingUid}}"
bindinput="onZhidingUidInput"
@@ -118,10 +118,10 @@
<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-label">要求接单员标签</text>
<text class="field-optional">选填</text>
</view>
<picker
@@ -140,7 +140,7 @@
<!-- 押金要求 -->
<view class="field">
<view class="field-head">
<text class="field-label">要求打手押金</text>
<text class="field-label">要求接单员押金</text>
<text class="field-optional">选填</text>
</view>
<view class="switch-row">

View File

@@ -75,7 +75,7 @@
<!-- 🔴【修改】申请人改为被罚打手 -->
<view class="qingqiu-row">
<text class="qingqiu-label">被罚打手</text>
<text class="qingqiu-label">被罚接单员</text>
<text class="qingqiu-value">{{ item.qingqiuid || '--' }}</text>
</view>
@@ -141,8 +141,8 @@
</view>
</view>
<view class="detail-row">
<!-- 🔴【修改】申请人ID改为被罚打手ID -->
<text class="detail-label">被罚打手ID</text>
<!-- 🔴【修改】申请人ID改为被罚接单员ID -->
<text class="detail-label">被罚接单员ID</text>
<view class="detail-value-container">
<text class="detail-value">{{ xuanzhongChufa.qingqiuid || '--' }}</text>
<text class="fuzhi-btn" bindtap="fuzhiWenben" data-text="{{ xuanzhongChufa.qingqiuid }}">复制</text>

View File

@@ -300,7 +300,7 @@ Page({
})
.catch((err) => {
console.error('替打手订阅失败,仍可跳转群聊', err)
wx.showToast({ title: '通知打手可能失败', icon: 'none' })
wx.showToast({ title: '通知接单员可能失败', icon: 'none' })
that.tiaozhuanQunLiao(orderId, groupName, isCross)
})
} else {
@@ -349,7 +349,7 @@ Page({
data: { name: '订单群', avatar: '' }
},
type: 'text',
payload: '此消息为系统自动发送,打手看到后会尽快回复您。'
payload: '此消息为系统自动发送,接单员看到后会尽快回复您。'
},
success: (msgRes) => {
if (msgRes.data.code === 200) {

View File

@@ -44,16 +44,16 @@
</view>
</view>
<!-- 打手信息卡片,仅当打手ID存在时显示 -->
<!-- 接单员信息卡片,仅当接单员ID存在时显示 -->
<view class="card dashou-card" wx:if="{{dashouInfo.yonghuid}}">
<view class="card-title">服务打手</view>
<view class="card-title">服务接单员</view>
<view class="dashou-header">
<!-- 打手头像,圆形 -->
<!-- 接单员头像,圆形 -->
<image class="dashou-avatar" src="{{dashouInfo.avatar || '/images/default-avatar.png'}}" mode="aspectFill"/>
<view class="dashou-detail">
<!-- 打手昵称 -->
<!-- 接单员昵称 -->
<text class="dashou-nicheng">{{dashouInfo.nicheng || '未知昵称'}}</text>
<!-- 打手用户ID行可复制 -->
<!-- 接单员用户ID行可复制 -->
<view class="dashou-id-row"><text class="label">用户ID</text><text class="value">{{dashouInfo.yonghuid}}</text><text class="copy-btn" bindtap="fuzhiWenben" data-text="{{dashouInfo.yonghuid}}">📋</text></view>
</view>
</view>
@@ -76,9 +76,9 @@
</block>
</view>
</block>
<!-- 打手留言 -->
<!-- 接单员留言 -->
<block wx:if="{{xiangxiShuju.dashou_liuyan}}">
<view class="sub-title">打手留言</view>
<view class="sub-title">接单员留言</view>
<view class="content-box">{{xiangxiShuju.dashou_liuyan}}</view>
</block>
<!-- 退款理由 -->
@@ -128,9 +128,9 @@
</view>
</view>
<!-- 更换打手后生成的新订单ID展示卡片 -->
<!-- 更换接单员后生成的新订单ID展示卡片 -->
<view class="card new-order-card" wx:if="{{xinDingdanId}}">
<view class="card-title">更换打手成功</view>
<view class="card-title">更换接单员成功</view>
<view class="info-row"><text class="label">新订单ID</text><view class="value-with-copy"><text class="value">{{xinDingdanId}}</text><text class="copy-btn" bindtap="fuzhiWenben" data-text="{{xinDingdanId}}">📋</text></view></view>
</view>
@@ -156,17 +156,17 @@
<!-- 底部固定操作栏 -->
<view class="bottom-bar">
<!-- 第一行按钮:联系客服、联系打手 -->
<!-- 第一行按钮:联系客服、联系接单员 -->
<view class="bottom-btn-group">
<view class="btn-outline" bindtap="goToKefu">联系客服</view>
<view class="btn-outline" bindtap="goToChatWithDashou" wx:if="{{dashouInfo.yonghuid}}">联系打手</view>
<view class="btn-outline" bindtap="goToChatWithDashou" wx:if="{{dashouInfo.yonghuid}}">联系接单员</view>
</view>
<!-- 第二行按钮:各种操作按钮,根据订单状态显示 -->
<view class="bottom-btn-group">
<!-- 撤销按钮状态为1或7时显示 -->
<view class="btn-warn" bindtap="showChexiaoBtn" wx:if="{{jibenShuju.zhuangtai == 1 || jibenShuju.zhuangtai == 7}}">撤销订单</view>
<!-- 【暂时隐藏】更换打手按钮:恢复时取消下面整段注释即可 -->
<!-- <view class="btn-primary" bindtap="showGhDashouConfirm" wx:if="{{(jibenShuju.zhuangtai == 2 || jibenShuju.zhuangtai == 8) && dashouInfo.yonghuid}}">更换打手</view> -->
<!-- 【暂时隐藏】更换接单员按钮:恢复时取消下面整段注释即可 -->
<!-- <view class="btn-primary" bindtap="showGhDashouConfirm" wx:if="{{(jibenShuju.zhuangtai == 2 || jibenShuju.zhuangtai == 8) && dashouInfo.yonghuid}}">更换接单员</view> -->
<!-- 申请退款按钮状态为2或8时显示 -->
<view class="btn-danger" bindtap="showTuikuanBtn" wx:if="{{jibenShuju.zhuangtai == 2 || jibenShuju.zhuangtai == 8}}">申请退款</view>
</view>
@@ -198,13 +198,13 @@
</view>
</view>
<!-- 更换打手确认弹窗 -->
<!-- 更换接单员确认弹窗 -->
<view class="modal" wx:if="{{showGhDashouModal}}">
<view class="modal-mask" bindtap="closeGhDashouModal"></view>
<view class="modal-content">
<view class="modal-hd">更换打手<text class="modal-close" bindtap="closeGhDashouModal">×</text></view>
<view class="modal-hd">更换接单员<text class="modal-close" bindtap="closeGhDashouModal">×</text></view>
<view class="modal-body">
<text class="modal-tip">确认更换打手吗?当前订单将被撤销,并生成一条相同内容的新订单(打手清空)。</text>
<text class="modal-tip">确认更换接单员吗?当前订单将被撤销,并生成一条相同内容的新订单(接单员清空)。</text>
</view>
<view class="modal-btns">
<view class="modal-btn cancel" bindtap="closeGhDashouModal">取消</view>

View File

@@ -22,7 +22,7 @@
<view class="filter-row">
<view class="search-box">
<image class="search-icon" src="/images/icon_search.svg" mode="aspectFit"/>
<input class="search-input" placeholder="搜索订单ID/介绍/昵称/打手ID" value="{{searchKeyword}}" bindinput="onSearchInput" bindconfirm="onSearchConfirm" confirm-type="search"/>
<input class="search-input" placeholder="搜索订单ID/介绍/昵称/接单员ID" value="{{searchKeyword}}" bindinput="onSearchInput" bindconfirm="onSearchConfirm" confirm-type="search"/>
<view class="search-clear" wx:if="{{searchKeyword}}" bindtap="clearSearch"><text>✕</text></view>
</view>
</view>

View File

@@ -169,7 +169,7 @@ Page({
const item = this.data.dashouList.find(i => i.uid === dashouUid)
openPrivateChat(this, {
toUserId: buildDashouPeerId(dashouUid),
toName: item?.nicheng || '打手',
toName: item?.nicheng || '接单员',
toAvatar: item?.touxiang || item?.touxiangUrl || '',
})
}

View File

@@ -84,7 +84,7 @@
<view class="load-state" wx:if="{{!hasMore && dashouList.length > 0}}"><text>— 已全部加载 —</text></view>
<view class="empty" wx:if="{{!isLoading && dashouList.length === 0}}">
<image src="/images/empty.png" mode="aspectFit" />
<text>暂无下级打手</text>
<text>暂无下级接单员</text>
</view>
</view>
</scroll-view>

View File

@@ -49,9 +49,9 @@
</view>
</view>
<!-- 打手信息(有打手时显示) -->
<!-- 接单员信息(有接单员时显示) -->
<view class="block" wx:if="{{xiangxiShuju.dashou}}">
<view class="block-title">服务打手</view>
<view class="block-title">服务接单员</view>
<view class="row">
<text class="label">头像</text>
<image class="avatar" src="{{xiangxiShuju.dashouTouxiang}}" mode="aspectFill"></image>
@@ -61,7 +61,7 @@
<text class="value">{{xiangxiShuju.dashouNicheng || '未设置'}}</text>
</view>
<view class="row">
<text class="label">打手ID</text>
<text class="label">接单员ID</text>
<text class="value">{{xiangxiShuju.dashou}}</text>
<view class="copy-btn" bindtap="copyText" data-text="{{xiangxiShuju.dashou}}">复制</view>
</view>
@@ -73,8 +73,8 @@
<text class="label">提交时间</text>
<text class="value">{{xiangxiShuju.tijiaoTime}}</text>
</view>
<!-- 联系打手 -->
<view class="contact-btn" bindtap="contactDashou">联系打手</view>
<!-- 联系接单员 -->
<view class="contact-btn" bindtap="contactDashou">联系接单员</view>
</view>
<!-- 交付图片(九宫格) -->
@@ -85,9 +85,9 @@
</view>
</view>
<!-- 打手留言 -->
<!-- 接单员留言 -->
<view class="block" wx:if="{{xiangxiShuju.dashouliuyan}}">
<view class="block-title">打手留言</view>
<view class="block-title">接单员留言</view>
<view class="msg-text">{{xiangxiShuju.dashouliuyan}}</view>
</view>
@@ -120,7 +120,7 @@
<view class="row vertical">
<text class="label">翻车次数</text>
<input class="input" type="number" placeholder="请输入(必填)" value="{{jiesuan.fancheCishu}}" bindinput="onFancheshuInput" />
<text class="hint" wx:if="{{!jiesuan.fancheCishu}}">填写该订单翻车次数,用于评价打手实力</text>
<text class="hint" wx:if="{{!jiesuan.fancheCishu}}">填写该订单翻车次数,用于评价接单员实力</text>
</view>
<!-- 上线速度 -->
@@ -155,7 +155,7 @@
<!-- 留言 -->
<view class="row vertical">
<text class="label">留言(选填)</text>
<textarea class="textarea" value="{{jiesuan.liuyan}}" placeholder="给打手或平台留言" maxlength="50" bindinput="onLiuyanInput"></textarea>
<textarea class="textarea" value="{{jiesuan.liuyan}}" placeholder="给接单员或平台留言" maxlength="50" bindinput="onLiuyanInput"></textarea>
<text class="count">{{jiesuan.liuyan.length}}/50</text>
</view>

View File

@@ -319,7 +319,7 @@ Page({
if (!dingdanItem) return;
if (!this.data.dashoustatus || this.data.dashoustatus != 1) {
wx.showToast({ title: '请先开启打手身份', icon: 'none' });
wx.showToast({ title: '请先开启接单员身份', icon: 'none' });
return;
}
if (this.data.zhuanghaoStatus != 1) {

View File

@@ -104,7 +104,7 @@
src="{{item.zhiding_avatar_full}}"
mode="aspectFill"
/>
<text class="zhiding-nicheng">{{item.zhiding_nicheng || '指定打手'}}</text>
<text class="zhiding-nicheng">{{item.zhiding_nicheng || '指定接单员'}}</text>
<text class="zhiding-uid">UID: {{item.zhiding_uid || '未知'}}</text>
</view>
@@ -181,7 +181,7 @@
src="{{item.zhiding_avatar_full}}"
mode="aspectFill"
/>
<text class="zhiding-nicheng">{{item.zhiding_nicheng || '指定打手'}}</text>
<text class="zhiding-nicheng">{{item.zhiding_nicheng || '指定接单员'}}</text>
<text class="zhiding-uid">UID: {{item.zhiding_uid || '未知'}}</text>
</view>

View File

@@ -8,7 +8,7 @@
<!-- 标题区域 -->
<view class="title-section">
<text class="title">⚡ 推广海报 ⚡</text>
<text class="subtitle">邀请打手扫码注册,自动填充邀请码</text>
<text class="subtitle">邀请接单员扫码注册,自动填充邀请码</text>
</view>
<!-- 二维码展示区域(原有) -->
@@ -63,7 +63,7 @@
<!-- 使用说明(保留) -->
<view class="instruction">
<text class="instruction-text">* 打手扫码后自动进入注册页面,邀请码将自动填充</text>
<text class="instruction-text">* 接单员扫码后自动进入注册页面,邀请码将自动填充</text>
</view>
</view>

View File

@@ -15,14 +15,14 @@
<view class="tongji-bottom">
<view class="tongji-item">
<view class="tongji-number">{{yaoqingzongshu}}</view>
<view class="tongji-label">邀请打手</view>
<view class="tongji-label">邀请接单员</view>
</view>
<view class="tongji-divider"></view>
<view class="tongji-item">
<view class="tongji-number">{{chongzhiDashouShuliang}}</view>
<view class="tongji-label">充值打手</view>
<view class="tongji-label">充值接单员</view>
</view>
</view>
</view>
@@ -50,7 +50,7 @@
<view wx:if="{{!jiazaiZhong && dashouList.length === 0}}" class="kong-shuju">
<view class="kong-icon">🚀</view>
<view class="kong-text">暂无会员记录</view>
<view class="kong-tip">快去邀请打手吧</view>
<view class="kong-tip">快去邀请接单员吧</view>
<view class="kong-btn" bindtap="shuaxinShuju">点击刷新</view>
</view>

View File

@@ -126,10 +126,10 @@ Component({
const data = res.data.data;
const assets = [];
if (data.dashou_yue && parseFloat(data.dashou_yue) > 0) {
assets.push({ type: 'dashou_yue', label: '打手佣金', amount: data.dashou_yue, rate: data.dashou_rate || 0 });
assets.push({ type: 'dashou_yue', label: '接单员佣金', amount: data.dashou_yue, rate: data.dashou_rate || 0 });
}
if (data.dashou_yajin && parseFloat(data.dashou_yajin) > 0) {
assets.push({ type: 'dashou_yajin', label: '打手保证金', amount: data.dashou_yajin, rate: data.dashou_yajin_rate || 0 });
assets.push({ type: 'dashou_yajin', label: '接单员保证金', amount: data.dashou_yajin, rate: data.dashou_yajin_rate || 0 });
}
if (data.shangjia_yue && parseFloat(data.shangjia_yue) > 0) {
assets.push({ type: 'shangjia_yue', label: '商家余额', amount: data.shangjia_yue, rate: data.shangjia_rate || 0 });

View File

@@ -18,17 +18,17 @@ const TX_STATUS = {
};
const ASSET_CONFIG = {
dashou_yue: { leixing: 1, label: '打手佣金' },
dashou_yue: { leixing: 1, label: '接单员佣金' },
guanshi_fenyong: { leixing: 2, label: '管事分红' },
zuzhang_fenyong: { leixing: 3, label: '组长分红' },
kaoheguan_fenyong: { leixing: 4, label: '考核官分佣' },
dashou_yajin: { leixing: 5, label: '打手保证金' },
dashou_yajin: { leixing: 5, label: '接单员保证金' },
shangjia_yue: { leixing: 6, label: '商家余额' },
};
const LEIXING_LABEL = {
1: '打手佣金', 2: '管事分红', 3: '组长分红',
4: '考核官分佣', 5: '打手保证金', 6: '商家余额',
1: '接单员佣金', 2: '管事分红', 3: '组长分红',
4: '考核官分佣', 5: '接单员保证金', 6: '商家余额',
};
Component({

View File

@@ -13,7 +13,7 @@ const roleCfg = {
],
},
dashou: {
name: '打手',
name: '接单员',
tabList: [
{ 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' },

View File

@@ -30,7 +30,7 @@ async function dashoujianquan(app) {
mask: true
});
await new Promise(r => setTimeout(r, 2100));
return { allowed: false, reason: '打手消息权限被限制' };
return { allowed: false, reason: '接单员消息权限被限制' };
}
}
throw new Error(res.data?.msg || '鉴权接口异常');

View File

@@ -50,7 +50,7 @@ class ConnectionManager {
}
if (identityType === 'dashou' && !userId.startsWith('Ds')) {
throw new Error(`打手身份的用户ID必须以Ds开头实际为 ${userId}`);
throw new Error(`接单员身份的用户ID必须以Ds开头实际为 ${userId}`);
}
if (identityType === 'shangjia' && !userId.startsWith('Sj')) {
throw new Error(`商家身份的用户ID必须以Sj开头实际为 ${userId}`);
@@ -104,7 +104,7 @@ class ConnectionManager {
// 校验 userId 前缀
if (identityType === 'dashou' && !userId.startsWith('Ds')) {
throw new Error(`打手身份的用户ID必须以Ds开头实际为 ${userId}`);
throw new Error(`接单员身份的用户ID必须以Ds开头实际为 ${userId}`);
}
if (identityType === 'shangjia' && !userId.startsWith('Sj')) {
throw new Error(`商家身份的用户ID必须以Sj开头实际为 ${userId}`);