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

261 行
17 KiB
HTML

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

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

<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
<!-- 1. 账号与基础资料 -->
<div class="panel panel-default panel-form-section">
<div class="panel-heading">
<h4 class="panel-title"><i class="fa fa-user-circle"></i> 账号与基础资料</h4>
</div>
<div class="panel-body">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('User_id')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-user_id" data-rule="required" min="0" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}" placeholder="请选择或搜索关联的用户账号">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Realname')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-realname" data-rule="required" class="form-control" name="row[realname]" type="text" value="{$row.realname|htmlentities}" placeholder="请输入师傅真实姓名">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Mobile')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-mobile" data-rule="required;mobile" class="form-control" name="row[mobile]" type="text" value="{$row.mobile|htmlentities}" placeholder="请输入师傅联系手机号">
</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}" placeholder="请选择服务常驻城市"></div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Avatar')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="input-group">
<input id="c-avatar" data-rule="" class="form-control" size="50" name="row[avatar]" type="text" value="{$row.avatar|htmlentities}" placeholder="上传或选择师傅头像">
<div class="input-group-addon no-border no-padding">
<span><button type="button" id="faupload-avatar" class="btn btn-danger faupload" data-category="avatar" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
<span><button type="button" id="fachoose-avatar" class="btn btn-primary fachoose" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
</div>
<span class="msg-box n-right" for="c-avatar"></span>
</div>
<ul class="row list-inline faupload-preview" id="p-avatar"></ul>
</div>
</div>
</div>
</div>
<!-- 2. 实名认证与资质证明 -->
<div class="panel panel-default panel-form-section">
<div class="panel-heading">
<h4 class="panel-title"><i class="fa fa-id-card"></i> 实名认证与资质证明</h4>
</div>
<div class="panel-body">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Idcard_no')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-idcard_no" data-rule="required" class="form-control" name="row[idcard_no]" type="text" value="{$row.idcard_no|htmlentities}" placeholder="请输入18位二代身份证号码(历史脱敏值保持不变即可)">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Idcard_front')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="input-group">
<input id="c-idcard_front" data-rule="" class="form-control" size="50" name="row[idcard_front]" type="text" value="{$row.idcard_front|htmlentities}" placeholder="请上传身份证人像面照片">
<div class="input-group-addon no-border no-padding">
<span><button type="button" id="faupload-idcard_front" class="btn btn-danger faupload" data-category="cert" data-input-id="c-idcard_front" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-idcard_front"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
<span><button type="button" id="fachoose-idcard_front" class="btn btn-primary fachoose" data-input-id="c-idcard_front" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
</div>
<span class="msg-box n-right" for="c-idcard_front"></span>
</div>
<ul class="row list-inline faupload-preview" id="p-idcard_front"></ul>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Idcard_back')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="input-group">
<input id="c-idcard_back" data-rule="" class="form-control" size="50" name="row[idcard_back]" type="text" value="{$row.idcard_back|htmlentities}" placeholder="请上传身份证国徽面照片">
<div class="input-group-addon no-border no-padding">
<span><button type="button" id="faupload-idcard_back" class="btn btn-danger faupload" data-category="cert" data-input-id="c-idcard_back" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-idcard_back"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
<span><button type="button" id="fachoose-idcard_back" class="btn btn-primary fachoose" data-input-id="c-idcard_back" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
</div>
<span class="msg-box n-right" for="c-idcard_back"></span>
</div>
<ul class="row list-inline faupload-preview" id="p-idcard_back"></ul>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Cert_images')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="input-group">
<input id="c-cert_images" data-rule="" class="form-control" size="50" name="row[cert_images]" type="text" value="{$row.cert_images|htmlentities}" placeholder="电工证/焊工证/特种作业证书等资质图片(支持多张)">
<div class="input-group-addon no-border no-padding">
<span><button type="button" id="faupload-cert_images" class="btn btn-danger faupload" data-category="cert" data-input-id="c-cert_images" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="true" data-preview-id="p-cert_images"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
<span><button type="button" id="fachoose-cert_images" class="btn btn-primary fachoose" data-input-id="c-cert_images" data-mimetype="image/*" data-multiple="true"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
</div>
<span class="msg-box n-right" for="c-cert_images"></span>
</div>
<ul class="row list-inline faupload-preview" id="p-cert_images"></ul>
</div>
</div>
</div>
</div>
<!-- 3. 服务区域与地理调度 -->
<div class="panel panel-default panel-form-section">
<div class="panel-heading">
<h4 class="panel-title"><i class="fa fa-map-marker"></i> 服务区域与地理调度</h4>
</div>
<div class="panel-body">
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Serve_radius')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="input-group">
<input id="c-serve_radius" data-rule="required" class="form-control" name="row[serve_radius]" type="number" value="{$row.serve_radius|htmlentities}">
<span class="input-group-addon">公里 (km)</span>
</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-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}" placeholder="如: 106.927231">
</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}" placeholder="如: 27.725654">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 4. 业务评级与出工状态 -->
<div class="panel panel-default panel-form-section">
<div class="panel-heading">
<h4 class="panel-title"><i class="fa fa-sliders"></i> 业务评级与出工状态</h4>
</div>
<div class="panel-body">
<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">{:__('Level')}</span>
<input id="c-level" data-rule="required" class="form-control" name="row[level]" type="number" value="{$row.level|htmlentities}">
</div>
</div>
<div class="col-xs-4">
<div class="input-group">
<span class="input-group-addon">{:__('Score')}</span>
<input id="c-score" data-rule="required" class="form-control" step="0.01" name="row[score]" type="number" value="{$row.score|htmlentities}">
</div>
</div>
<div class="col-xs-4">
<div class="input-group">
<span class="input-group-addon">{:__('Order_count')}</span>
<input id="c-order_count" class="form-control" name="row[order_count]" type="number" value="{$row.order_count|htmlentities}" readonly>
</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-6">
<div class="input-group">
<span class="input-group-addon">{:__('Accept_rate')}</span>
<input id="c-accept_rate" data-rule="required" class="form-control" step="0.01" name="row[accept_rate]" type="number" value="{$row.accept_rate|htmlentities}">
<span class="input-group-addon">%</span>
</div>
</div>
<div class="col-xs-6">
<div class="input-group">
<span class="input-group-addon">{:__('Ontime_rate')}</span>
<input id="c-ontime_rate" data-rule="required" class="form-control" step="0.01" name="row[ontime_rate]" type="number" value="{$row.ontime_rate|htmlentities}">
<span class="input-group-addon">%</span>
</div>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Work_status')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="radio">
{foreach name="workStatusList" item="vo"}
<label for="row[work_status]-{$key}"><input id="row[work_status]-{$key}" name="row[work_status]" type="radio" value="{$key}" {in name="key" value="$row.work_status"}checked{/in} /> {$vo}</label>
{/foreach}
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Verify_status')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="radio">
{foreach name="verifyStatusList" item="vo"}
<label for="row[verify_status]-{$key}"><input id="row[verify_status]-{$key}" name="row[verify_status]" type="radio" value="{$key}" {in name="key" value="$row.verify_status"}checked{/in} /> {$vo}</label>
{/foreach}
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Audit_msg')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-audit_msg" class="form-control" name="row[audit_msg]" type="text" value="{$row.audit_msg|htmlentities}" placeholder="审核不通过时在此处填写驳回具体原因">
</div>
</div>
</div>
</div>
<!-- 5. 钱包资金账户 -->
<div class="panel panel-default panel-form-section">
<div class="panel-heading">
<h4 class="panel-title"><i class="fa fa-cny"></i> 钱包资金账户</h4>
</div>
<div class="panel-body">
<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-money" class="form-control" step="0.01" name="row[money]" type="number" value="{$row.money|htmlentities}" readonly>
</div>
</div>
<div class="col-xs-6">
<div class="input-group">
<span class="input-group-addon">冻结 ¥</span>
<input id="c-frozen_money" class="form-control" step="0.01" name="row[frozen_money]" type="number" value="{$row.frozen_money|htmlentities}" readonly>
</div>
</div>
</div>
</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>