文件
yjyf/server/application/admin/view/order/dispatch.html
MiAn fafddceaf2 feat: 新增发票抬头、晒单、钱包日志等模型及后台管理功能
- 新增 invoice_title、showcase、wallet_log 模型及对应语言包
- 新增后台控制器、视图及搜索字段配置
- 修复服务类目删除保护逻辑
- 优化后台登录页面文案及样式
- 新增前端角色切换逻辑及页面拦截
- 新增 SVG 图标及样式变量
- 修复接口权限及下拉框默认值问题
2026-11-11 17:02:35 +08:00

97 行
5.1 KiB
HTML

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<style>
.dp-wrap { padding: 4px 10px; color: #1e293b; }
.dp-order-summary {
background: #fff7ed;
border: 1px solid #fed7aa;
border-radius: 10px;
padding: 12px 16px;
margin-bottom: 16px;
}
.dp-order-hd { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.dp-order-no { font-size: 15px; font-weight: 700; color: #9a3412; font-family: monospace; }
.dp-order-meta { font-size: 12.5px; color: #475569; line-height: 1.6; }
.dp-cand-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 16px; }
.dp-cand-card {
border: 1px solid #e2e8f0;
border-radius: 8px;
padding: 10px 12px;
background: #fff;
cursor: pointer;
transition: all 0.15s;
display: flex;
align-items: center;
justify-content: space-between;
}
.dp-cand-card:hover { border-color: #fb923c; background: #fffaf5; }
.dp-cand-card.is-picked { border-color: #ea580c; background: #fff7ed; box-shadow: 0 0 0 2px rgba(234,88,12,0.15); }
.dp-cand-name { font-size: 13.5px; font-weight: 700; color: #0f172a; display: flex; align-items: center; gap: 6px; }
.dp-cand-sub { font-size: 11.5px; color: #64748b; margin-top: 3px; }
</style>
<form id="dispatch-form" class="form-horizontal dp-wrap" role="form" data-toggle="validator" method="POST" action="">
<div class="dp-order-summary">
<div class="dp-order-hd">
<span class="dp-order-no"><i class="fa fa-file-text-o"></i> {$row.order_no|htmlentities} · {$row.service_name|htmlentities}</span>
<span class="label label-warning">{$row.status_text}</span>
</div>
<div class="dp-order-meta">
<div><strong>上门地址:</strong>{$row.province|htmlentities}{$row.city|htmlentities}{$row.district|htmlentities}{$row.address|htmlentities}({$row.contact|htmlentities} {$row.mobile|htmlentities})</div>
<div>
<strong>预约时间:</strong>{if $row.appoint_time > 0}{$row.appoint_time|datetime}{else/}尽快上门{/if}
&nbsp;|&nbsp;
<strong>当前师傅:</strong>{if $row.master_id && $row.master}<span class="text-primary">{$row.master.realname|htmlentities}({$row.master.mobile|htmlentities})</span>{else/}<span class="text-muted">尚未指派</span>{/if}
</div>
</div>
</div>
{if !empty($candidateMasters)}
<div style="margin-bottom: 8px; font-size: 13px; font-weight: 700; color: #0f172a;">
<i class="fa fa-bolt" style="color:#ea580c;"></i> 推荐可承接认证师傅(点击卡片快捷选定)
</div>
<div class="dp-cand-grid">
{foreach name="candidateMasters" item="cm"}
<div class="dp-cand-card {if $row.master_id == $cm.id}is-picked{/if}" data-id="{$cm.id}" data-name="{$cm.realname|htmlentities}">
<div>
<div class="dp-cand-name">
{$cm.realname|htmlentities}
{if $cm.work_status == 'on'}
<span class="label label-success" style="font-size:10px;">听单中</span>
{else /}
<span class="label label-default" style="font-size:10px;">休息</span>
{/if}
<span style="color:#d97706;font-size:12px;"><i class="fa fa-star"></i> {$cm.score}</span>
</div>
<div class="dp-cand-sub">
{$cm.mobile|htmlentities} · {$cm.city|default='同城'|htmlentities} · 完工{$cm.order_count}单
{if !empty($cm.skills)}<br><span class="text-primary">{:implode(' / ', $cm.skills)}</span>{/if}
</div>
</div>
<span class="btn btn-xs btn-warning">选择</span>
</div>
{/foreach}
</div>
{/if}
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">指定承接师傅:</label>
<div class="col-xs-12 col-sm-9">
<input id="c-dispatch-master" data-rule="required" data-source="master/index" data-field="realname" data-params='{"custom[verify_status]":"pass"}' class="form-control selectpage" name="master_id" type="text" value="{$row.master_id ?: ''}" placeholder="输入姓名或手机号检索已认证师傅">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">调度备注:</label>
<div class="col-xs-12 col-sm-9">
<input type="text" class="form-control" name="dispatch_remark" placeholder="选填:记录派单或改派说明(将写入工单履约日志)">
</div>
</div>
<div class="form-group layer-footer">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-9">
<button type="submit" class="btn btn-primary btn-embossed"><i class="fa fa-paper-plane"></i> 确认指派并通知师傅</button>
<button type="button" class="btn btn-default btn-embossed" onclick="parent.Layer.closeAll();">取消</button>
</div>
</div>
</form>