- 新增 invoice_title、showcase、wallet_log 模型及对应语言包 - 新增后台控制器、视图及搜索字段配置 - 修复服务类目删除保护逻辑 - 优化后台登录页面文案及样式 - 新增前端角色切换逻辑及页面拦截 - 新增 SVG 图标及样式变量 - 修复接口权限及下拉框默认值问题
97 行
5.1 KiB
HTML
97 行
5.1 KiB
HTML
<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}
|
||
|
|
||
<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>
|