1. 新增会员权益配置控制器 Memberbenefit 和 Publish,拆分运营配置模块 2. 新增套餐表字段 free_view_quota、post_discount,支持按套餐配置免费看和发帖折扣 3. 优化前端页面,新增套餐编辑表单、区域选择器、发布配置交互 4. 新增调试支持,支持 mock openid、本地 IP 绕过权限,便于自动化测试 5. 新增数据库工具脚本,用于检查配置、修复数据、验证会员功能 6. 优化会员接口,返回套餐维度的权益信息,支持无限次免费看场景
117 行
6.5 KiB
HTML
117 行
6.5 KiB
HTML
<link href="__CDN__/assets/css/backend/fc-area.css?v={$Think.config.site.version|htmlentities}" rel="stylesheet">
|
|
|
|
<form id="edit-form" class="fc-area-form" role="form" data-toggle="validator" method="POST" action="">
|
|
|
|
<div class="fc-area-panel">
|
|
<div class="fc-area-panel__head">
|
|
<div class="fc-area-panel__title">区域信息</div>
|
|
<div class="fc-area-panel__desc">覆盖全国省 / 市 / 区县,支持点击级联选择、关键字搜索或直接输入新增</div>
|
|
</div>
|
|
|
|
<div class="fc-area-grid">
|
|
<div class="form-group fc-area-field">
|
|
<label class="control-label" for="c-province">省份<em>*</em></label>
|
|
<div class="fc-area-select-wrap" data-level="province">
|
|
<input id="c-province" data-rule="required" data-target="#msg-province" class="form-control fc-area-input" name="row[province]" type="text" value="{$row.province|htmlentities}" autocomplete="off" placeholder="选择或搜索全国省份">
|
|
<span class="fc-area-select-clear" title="清空"><i class="fa fa-times-circle"></i></span>
|
|
<span class="fc-area-select-arrow"><i class="fa fa-angle-down"></i></span>
|
|
<div id="province-dropdown" class="fc-area-dropdown"></div>
|
|
</div>
|
|
<span id="msg-province" class="msg-box"></span>
|
|
</div>
|
|
|
|
<div class="form-group fc-area-field">
|
|
<label class="control-label" for="c-city">城市<em>*</em></label>
|
|
<div class="fc-area-select-wrap" data-level="city">
|
|
<input id="c-city" data-rule="required" data-target="#msg-city" class="form-control fc-area-input" name="row[city]" type="text" value="{$row.city|htmlentities}" autocomplete="off" placeholder="选择或搜索全国城市">
|
|
<span class="fc-area-select-clear" title="清空"><i class="fa fa-times-circle"></i></span>
|
|
<span class="fc-area-select-arrow"><i class="fa fa-angle-down"></i></span>
|
|
<div id="city-dropdown" class="fc-area-dropdown"></div>
|
|
</div>
|
|
<span id="msg-city" class="msg-box"></span>
|
|
</div>
|
|
|
|
<div class="form-group fc-area-field">
|
|
<label class="control-label" for="c-district">区县<em>*</em></label>
|
|
<div class="fc-area-select-wrap" data-level="district">
|
|
<input id="c-district" data-rule="required" data-target="#msg-district" class="form-control fc-area-input" name="row[district]" type="text" value="{$row.district|htmlentities}" autocomplete="off" placeholder="选择或搜索区县,支持自定义输入">
|
|
<span class="fc-area-select-clear" title="清空"><i class="fa fa-times-circle"></i></span>
|
|
<span class="fc-area-select-arrow"><i class="fa fa-angle-down"></i></span>
|
|
<div id="district-dropdown" class="fc-area-dropdown"></div>
|
|
</div>
|
|
<span id="msg-district" class="msg-box"></span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="fc-area-preview">
|
|
<span>完整区域</span>
|
|
<strong id="area-full-name">未选择</strong>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="fc-area-panel">
|
|
<div class="fc-area-panel__head">
|
|
<div class="fc-area-panel__title">中心坐标</div>
|
|
<div class="fc-area-panel__desc">选择区域后自动匹配坐标,也可点击「地图选点」微调</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-sm-5">
|
|
<div class="form-group fc-area-field">
|
|
<label for="c-lat">中心纬度</label>
|
|
<input id="c-lat" class="form-control" name="row[lat]" type="text" value="{$row.lat|htmlentities}" autocomplete="off" placeholder="选定区域自动获取,或地图选点">
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-5">
|
|
<div class="form-group fc-area-field">
|
|
<label for="c-lng">中心经度</label>
|
|
<input id="c-lng" class="form-control" name="row[lng]" type="text" value="{$row.lng|htmlentities}" autocomplete="off" placeholder="选定区域自动获取,或地图选点">
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-2">
|
|
<div class="form-group fc-area-field">
|
|
<label> </label>
|
|
<button type="button" class="fc-area-map-btn" data-toggle="addresspicker" data-lat-id="c-lat" data-lng-id="c-lng">
|
|
<i class="fa fa-map-marker"></i> 地图选点
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="area-coord-tip" class="fc-area-coord-tip is-missing">未设置坐标:选择区域后将自动匹配中心坐标,也可点击「地图选点」手动指定</div>
|
|
</div>
|
|
|
|
<div class="fc-area-panel">
|
|
<div class="fc-area-panel__head">
|
|
<div class="fc-area-panel__title">展示设置</div>
|
|
<div class="fc-area-panel__desc">控制用户端区域下拉的排序与可见性</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<div class="form-group fc-area-field">
|
|
<label for="c-sort">排序</label>
|
|
<input id="c-sort" data-rule="required" class="form-control" name="row[sort]" type="number" value="{$row.sort|htmlentities}">
|
|
<span class="help-block">同省同市内按数字升序,留 0 时自动使用 ID。</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<div class="form-group fc-area-field">
|
|
<label for="c-enabled">是否启用</label>
|
|
<select id="c-enabled" class="form-control" name="row[enabled]">
|
|
<option value="1" {if condition="$row.enabled == 1"}selected{/if}>启用</option>
|
|
<option value="0" {if condition="$row.enabled == 0"}selected{/if}>停用</option>
|
|
</select>
|
|
<span class="help-block">停用后用户端不再显示,历史信息仍保留。</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<input type="hidden" id="area-options" data-current-id="{$row.id|htmlentities}" value="{$areaOptionsJson|htmlentities}">
|
|
|
|
<div class="fc-area-actions">
|
|
<button type="submit" class="btn btn-primary btn-embossed disabled">保存</button>
|
|
</div>
|
|
</form>
|