数据库: - db/schema_phase1.sql 16 张业务表(类目/服务/地址/师傅/订单/流水/取证/报价/评价/券/钱包/提现/结算/消息) - db/seed_phase1.sql 15 类目 + 32 服务项目 + 新人券(幂等) 后端 API (application/api/controller): - Base/Auth/Home/Address/Order/Master/Review - app/common/library/OrderStatus 11 状态机 + 流转矩阵 - application/api/common.php PHP 8.5 兼容垫片(E_DEPRECATED 不再升级为异常) 测试: - tests/e2e_flow.js 用户下单→支付→师傅抢单→履约→验收→结算→评价 全链路 65 项断言 - 含异常用例:越权/重复操作/非法状态流转/2h 未联系自动回流
42 行
1.9 KiB
HTML
可执行文件
42 行
1.9 KiB
HTML
可执行文件
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
|
{:token()}
|
|
<input type="hidden" name="row[rules]" />
|
|
<div class="form-group">
|
|
<label for="c-name" class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
|
<div class="col-xs-12 col-sm-8">
|
|
<input id="c-name" class="form-control" name="row[name]" type="text" value="">
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="control-label col-xs-12 col-sm-2">{:__('Permission')}:</label>
|
|
<div class="col-xs-12 col-sm-8">
|
|
<span class="text-muted"><input type="checkbox" name="" id="checkall" /> <label for="checkall"><small>{:__('Check all')}</small></label></span>
|
|
<span class="text-muted"><input type="checkbox" name="" id="expandall" /> <label for="expandall"><small>{:__('Expand all')}</small></label></span>
|
|
|
|
<div id="treeview"></div>
|
|
</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">
|
|
|
|
<div class="radio">
|
|
{foreach name="statusList" item="vo"}
|
|
<label for="row[status]-{$key|htmlentities}"><input id="row[status]-{$key|htmlentities}" name="row[status]" type="radio" value="{$key|htmlentities}" {in name="key" value="normal"}checked{/in} /> {$vo|htmlentities}</label>
|
|
{/foreach}
|
|
</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>
|
|
<script>
|
|
var nodeData = {:json_encode($nodeList); };
|
|
</script>
|