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