修复了诸多问题
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -186,7 +186,7 @@ Page({
|
||||
// 抢单成功,弹出联系打手弹窗
|
||||
wx.showModal({
|
||||
title: '接待成功',
|
||||
content: '请认真考核,点击联系他查看打手信息并打分。',
|
||||
content: '请认真考核,点击联系他查看接单员信息并打分。',
|
||||
showCancel: false,
|
||||
confirmText: '联系他',
|
||||
confirmColor: '#c9a558',
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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),
|
||||
});
|
||||
},
|
||||
|
||||
@@ -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}}">
|
||||
|
||||
@@ -493,7 +493,7 @@ Page({
|
||||
}
|
||||
wx.showModal({
|
||||
title: '⚠️ 提交确认',
|
||||
content: '在提交订单之前,请确保您已在打手端页面认真阅读打手规则。如有漏交图片,订单被退款,概不申诉。',
|
||||
content: '在提交订单之前,请确保您已在接单员端页面认真阅读接单员规则。如有漏交图片,订单被退款,概不申诉。',
|
||||
confirmText: '我已阅读',
|
||||
cancelText: '我再想想',
|
||||
success: (res) => {
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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: [
|
||||
|
||||
@@ -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 });
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 || '',
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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 });
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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' },
|
||||
|
||||
@@ -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 || '鉴权接口异常');
|
||||
|
||||
@@ -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}`);
|
||||
|
||||
Reference in New Issue
Block a user