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

304 行
19 KiB
HTML

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

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

<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
<!-- 顶部现代 Tab 选项卡 -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#tab-order-basic" aria-controls="tab-order-basic" role="tab" data-toggle="tab"><i class="fa fa-file-text-o"></i> 订单与物流维护</a></li>
<li role="presentation"><a href="#tab-order-address" aria-controls="tab-order-address" role="tab" data-toggle="tab"><i class="fa fa-map-marker"></i> 上门联系与地址</a></li>
<li role="presentation"><a href="#tab-order-fulfill" aria-controls="tab-order-fulfill" role="tab" data-toggle="tab"><i class="fa fa-truck"></i> 师傅指派与履约节点</a></li>
<li role="presentation"><a href="#tab-order-finance" aria-controls="tab-order-finance" role="tab" data-toggle="tab"><i class="fa fa-cny"></i> 费用与结算核验(只读)</a></li>
</ul>
<div class="tab-content" style="padding: 15px 0;">
<!-- 1. 订单与物流维护 -->
<div role="tabpanel" class="tab-pane active" id="tab-order-basic">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">工单摘要:</label>
<div class="col-xs-12 col-sm-8">
<p class="form-control-static">
<code style="font-size:13px;">{$row.order_no|htmlentities}</code>
<span class="text-muted" style="margin:0 8px;">|</span>
下单账号:<strong>{$row.user.nickname|default=$row.user.username|default=$row.user_id|htmlentities}</strong>
{if !empty($catName)}
<span class="text-muted" style="margin:0 8px;">|</span>
所属类目:<span class="label label-info">{$catName|htmlentities}</span>
{/if}
</p>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Service_name')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-service_name" data-rule="required" class="form-control" name="row[service_name]" type="text" value="{$row.service_name|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">商品参数:</label>
<div class="col-xs-12 col-sm-8">
<div class="row">
<div class="col-xs-6">
<div class="input-group">
<span class="input-group-addon">商品规格</span>
<input id="c-goods_model" class="form-control" name="row[goods_model]" type="text" value="{$row.goods_model|htmlentities}" placeholder="如: 品牌/款式/细分规格">
</div>
</div>
<div class="col-xs-6">
<div class="input-group">
<span class="input-group-addon">服务数量</span>
<input id="c-goods_num" data-rule="required" min="1" class="form-control" name="row[goods_num]" type="number" value="{$row.goods_num|htmlentities}">
</div>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">施工现场环境:</label>
<div class="col-xs-12 col-sm-8">
<div class="row">
<div class="col-xs-4">
<div class="input-group">
<span class="input-group-addon">目标楼层</span>
<input id="c-floor" data-rule="required" class="form-control" name="row[floor]" type="number" value="{$row.floor|htmlentities}">
</div>
</div>
<div class="col-xs-4">
<div class="input-group">
<span class="input-group-addon">电梯</span>
<select id="c-has_elevator" class="form-control" name="row[has_elevator]">
<option value="1" {if $row.has_elevator==1}selected{/if}>有电梯</option>
<option value="0" {if $row.has_elevator==0}selected{/if}>无电梯(步梯)</option>
</select>
</div>
</div>
<div class="col-xs-4">
<div class="input-group">
<span class="input-group-addon">加急</span>
<select id="c-urgent" class="form-control" name="row[urgent]">
<option value="0" {if $row.urgent==0}selected{/if}>常规施工</option>
<option value="1" {if $row.urgent==1}selected{/if}>加急特快</option>
</select>
</div>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">大件货物物流:</label>
<div class="col-xs-12 col-sm-8">
<div class="row">
<div class="col-xs-4">
<select id="c-goods_arrived" class="form-control" name="row[goods_arrived]">
<option value="1" {if $row.goods_arrived==1}selected{/if}>货物已到现场</option>
<option value="0" {if $row.goods_arrived==0}selected{/if}>在途未到货</option>
</select>
</div>
<div class="col-xs-4">
<input id="c-express_company" class="form-control" name="row[express_company]" type="text" value="{$row.express_company|htmlentities}" placeholder="物流公司名称(选填)">
</div>
<div class="col-xs-4">
<input id="c-express_no" class="form-control" name="row[express_no]" type="text" value="{$row.express_no|htmlentities}" placeholder="物流运单号(选填)">
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Remark')}:</label>
<div class="col-xs-12 col-sm-8">
<textarea id="c-remark" class="form-control" rows="2" name="row[remark]" placeholder="客户施工备注或客服补充说明">{$row.remark|htmlentities}</textarea>
</div>
</div>
</div>
<!-- 2. 上门联系与地址 -->
<div role="tabpanel" class="tab-pane" id="tab-order-address">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">联系信息:</label>
<div class="col-xs-12 col-sm-8">
<div class="row">
<div class="col-xs-6">
<div class="input-group">
<span class="input-group-addon">联系人</span>
<input id="c-contact" data-rule="required" class="form-control" name="row[contact]" type="text" value="{$row.contact|htmlentities}">
</div>
</div>
<div class="col-xs-6">
<div class="input-group">
<span class="input-group-addon">电话</span>
<input id="c-mobile" data-rule="required;mobile" class="form-control" name="row[mobile]" type="text" value="{$row.mobile|htmlentities}">
</div>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('City')}:</label>
<div class="col-xs-12 col-sm-8">
<div class='control-relative'><input id="c-city" class="form-control" data-toggle="city-picker" name="row[city]" type="text" value="{$row.city|htmlentities}"></div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Address')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-address" data-rule="required" class="form-control" name="row[address]" type="text" value="{$row.address|htmlentities}" 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-8">
<div class="row">
<div class="col-xs-6">
<div class="input-group">
<span class="input-group-addon">经度</span>
<input id="c-lng" class="form-control" name="row[lng]" type="text" value="{$row.lng|htmlentities}">
</div>
</div>
<div class="col-xs-6">
<div class="input-group">
<span class="input-group-addon">纬度</span>
<input id="c-lat" class="form-control" name="row[lat]" type="text" value="{$row.lat|htmlentities}">
</div>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Appoint_time')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-appoint_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" name="row[appoint_time]" type="text" value="{:$row.appoint_time > 0 ? datetime($row.appoint_time) : ''}" placeholder="留空表示客户要求尽快上门">
</div>
</div>
</div>
<!-- 3. 师傅指派与履约节点 -->
<div role="tabpanel" class="tab-pane" id="tab-order-fulfill">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Master_id')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-master_id" data-source="master/index" data-field="realname" data-params='{"custom[verify_status]":"pass"}' class="form-control selectpage" name="row[master_id]" type="text" value="{:$row.master_id > 0 ? $row.master_id : ''}" placeholder="搜索并指定已实名认证师傅(留空保持未指派)">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="c-status" data-rule="required" class="form-control selectpicker" name="row[status]">
{foreach name="statusList" item="vo"}
<option value="{$key}" {in name="key" value="$row.status"}selected{/in}>{$vo}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">完工验收核验码:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-verify_code" class="form-control" name="row[verify_code]" type="text" value="{$row.verify_code|htmlentities}" readonly 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-8">
<div class="row">
<div class="col-xs-6" style="margin-bottom: 10px;">
<div class="input-group">
<span class="input-group-addon">接单</span>
<input id="c-accept_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" name="row[accept_time]" type="text" value="{:$row.accept_time > 0 ? datetime($row.accept_time) : ''}" placeholder="尚未接单">
</div>
</div>
<div class="col-xs-6" style="margin-bottom: 10px;">
<div class="input-group">
<span class="input-group-addon">上门到达</span>
<input id="c-arrive_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" name="row[arrive_time]" type="text" value="{:$row.arrive_time > 0 ? datetime($row.arrive_time) : ''}" placeholder="尚未到达">
</div>
</div>
<div class="col-xs-6">
<div class="input-group">
<span class="input-group-addon">开工施工</span>
<input id="c-start_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" name="row[start_time]" type="text" value="{:$row.start_time > 0 ? datetime($row.start_time) : ''}" placeholder="尚未开工">
</div>
</div>
<div class="col-xs-6">
<div class="input-group">
<span class="input-group-addon">完工验收</span>
<input id="c-finish_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" name="row[finish_time]" type="text" value="{:$row.finish_time > 0 ? datetime($row.finish_time) : ''}" placeholder="尚未完工">
</div>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Cancel_reason')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-cancel_reason" class="form-control" name="row[cancel_reason]" type="text" value="{$row.cancel_reason|htmlentities}" placeholder="将工单状态改为「已取消」时请填写取消原因">
</div>
</div>
</div>
<!-- 4. 费用与结算核验(只读保护,防篡改账务) -->
<div role="tabpanel" class="tab-pane" id="tab-order-finance">
<div class="alert alert-info" style="margin:0 15px 15px;">
<i class="fa fa-lock"></i> 订单交易金额、支付状态与师傅佣金结算受平台财务台账保护,此处仅作核验展示;佣金放款请前往「结算管理」操作。
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">计价与支付:</label>
<div class="col-xs-12 col-sm-8">
<p class="form-control-static">
计价模式:<span class="label label-primary">{$priceTypeList[$row.price_type]|default=$row.price_type|htmlentities}</span>
<span class="text-muted" style="margin:0 10px;">|</span>
支付状态:
{if $row.pay_status == 1}<span class="label label-success">已支付</span>
{elseif $row.pay_status == 2/}<span class="label label-danger">已退款</span>
{else/}<span class="label label-default">未支付</span>{/if}
{if $row.pay_time > 0}<span class="text-muted">({:datetime($row.pay_time)})</span>{/if}
</p>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">费用构成明细:</label>
<div class="col-xs-12 col-sm-8">
<table class="table table-bordered table-condensed" style="margin-bottom:0;">
<thead>
<tr class="active">
<th>基础服务费</th>
<th>远程上门费</th>
<th>步梯楼层费</th>
<th>现场补差价</th>
<th>优惠券抵扣</th>
<th>订单总额</th>
<th>客户实付</th>
</tr>
</thead>
<tbody>
<tr>
<td>¥{$row.base_amount|default='0.00'|htmlentities}</td>
<td>¥{$row.distance_amount|default='0.00'|htmlentities}</td>
<td>¥{$row.floor_amount|default='0.00'|htmlentities}</td>
<td>¥{$row.diff_amount|default='0.00'|htmlentities}</td>
<td class="text-success">-¥{$row.discount_amount|default='0.00'|htmlentities}</td>
<td>¥{$row.total_amount|default='0.00'|htmlentities}</td>
<td><strong style="color:#ff6a00;">¥{$row.pay_amount|default='0.00'|htmlentities}</strong></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">师傅佣金结算:</label>
<div class="col-xs-12 col-sm-8">
<p class="form-control-static">
{if $row.settle_status == 1}<span class="label label-success">已结算入账</span>{else/}<span class="label label-warning">待结算</span>{/if}
<span style="margin-left:10px;">应结师傅佣金:<strong>¥{$row.settle_amount|default='0.00'|htmlentities}</strong></span>
</p>
</div>
</div>
</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-8">
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
</div>
</div>
</form>