会员级别添加关联权益及图片

This commit is contained in:
2026-04-24 17:47:36 +08:00
parent 507894c8b4
commit 0471c0d2d9
5 changed files with 43 additions and 30 deletions

View File

@@ -1,6 +1,6 @@
<?php <?php
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | 麦沃德科技赋能开发者,助力商协会发展 // | 麦沃德科技赋能开发者,助力商协会发展
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Copyright (c) 20172024 www.wdsxh.cn All rights reserved. // | Copyright (c) 20172024 www.wdsxh.cn All rights reserved.
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
@@ -35,11 +35,13 @@ class Level extends Backend
protected $model = null; protected $model = null;
protected $modelValidate = true; protected $modelValidate = true;
protected $pay_method = null; protected $pay_method = null;
protected $member_benefit_model = null;
public function _initialize() public function _initialize()
{ {
parent::_initialize(); parent::_initialize();
$this->model = new \app\admin\model\wdsxh\member\Level; $this->model = new \app\admin\model\wdsxh\member\Level;
$this->member_benefit_model = new \app\admin\model\wdsxh\member\MemberBenefits;
$this->view->assign("statusList", $this->model->getStatusList()); $this->view->assign("statusList", $this->model->getStatusList());
$pay_method = (new FeesConfig())->where('id',1)->value('pay_method'); $pay_method = (new FeesConfig())->where('id',1)->value('pay_method');
$this->pay_method = $pay_method; $this->pay_method = $pay_method;
@@ -112,6 +114,8 @@ class Level extends Backend
public function add() public function add()
{ {
if (false === $this->request->isPost()) { if (false === $this->request->isPost()) {
$benefits = $this->member_benefit_model->getSimpleByStatus(0);
$this->view->assign('benefits', $benefits);
return $this->view->fetch(); return $this->view->fetch();
} }
$params = $this->request->post('row/a'); $params = $this->request->post('row/a');
@@ -166,6 +170,8 @@ class Level extends Backend
$this->error(__('You have no permission')); $this->error(__('You have no permission'));
} }
if (false === $this->request->isPost()) { if (false === $this->request->isPost()) {
$benefits = $this->member_benefit_model->getSimpleByStatus(0);
$this->view->assign('benefits', $benefits);
$this->view->assign('row', $row); $this->view->assign('row', $row);
return $this->view->fetch(); return $this->view->fetch();
} }

View File

@@ -1,6 +1,6 @@
<?php <?php
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | 麦沃德科技赋能开发者,助力商协会发展 // | 麦沃德科技赋能开发者,助力商协会发展
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Copyright (c) 20172024 www.wdsxh.cn All rights reserved. // | Copyright (c) 20172024 www.wdsxh.cn All rights reserved.
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
@@ -17,13 +17,13 @@ use think\Model;
class Level extends Model class Level extends Model
{ {
// 表名 // 表名
protected $name = 'wdsxh_member_level'; protected $name = 'wdsxh_member_level';
// 自动写入时间戳字段 // 自动写入时间戳字段
protected $autoWriteTimestamp = 'integer'; protected $autoWriteTimestamp = 'integer';
@@ -32,11 +32,15 @@ class Level extends Model
protected $updateTime = 'updatetime'; protected $updateTime = 'updatetime';
protected $deleteTime = false; protected $deleteTime = false;
protected $type = [
'benefits_id' => 'json',
];
// 追加属性 // 追加属性
protected $append = [ protected $append = [
'status_text' 'status_text'
]; ];
protected static function init() protected static function init()
{ {
@@ -46,7 +50,7 @@ class Level extends Model
}); });
} }
public function getStatusList() public function getStatusList()
{ {
return ['normal' => __('Status normal'), 'hidden' => __('Status hidden')]; return ['normal' => __('Status normal'), 'hidden' => __('Status hidden')];

View File

@@ -53,4 +53,13 @@ class MemberBenefits extends Model
$list = $this->getDisabledList(); $list = $this->getDisabledList();
return isset($list[$value]) ? $list[$value] : ''; return isset($list[$value]) ? $list[$value] : '';
} }
public function getSimpleByStatus($disabled = 0)
{
return Self::field(['id', 'title'])->where(function($query) use ($disabled) {
if (null !== $disabled) {
$query->where('disabled', '=', $disabled);
}
})->order('sort', 'asc')->select();
}
} }

View File

@@ -16,13 +16,10 @@
<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">会员权益:</label> <label class="control-label col-xs-12 col-sm-2">会员权益:</label>
<div class="col-xs-12 col-sm-8"> <div class="col-xs-12 col-sm-8">
<select id="input-group" name="row[benefits_id][]" class="selectpicker form-control" multiple title="请选择权益" placeholder="请选择权益" >
<select id="input-group" name="" class="selectpicker form-control" multiple title="请选择权益" placeholder="请选择权益" > {foreach $benefits as $benefit}
<option value="1">专属客服</option> <option value="{$benefit.id}">{$benefit.title}</option>
<option value="2">优先发货</option> {/foreach}
<option value="3">折扣优惠</option>
<option value="4">积分加倍</option>
<option value="5">免邮特权</option>
</select> </select>
</div> </div>
</div> </div>
@@ -41,9 +38,9 @@
<ul class="row list-inline faupload-preview" id="p-image"></ul> <ul class="row list-inline faupload-preview" id="p-image"></ul>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label> <label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
<div class="col-xs-12 col-sm-8"> <div class="col-xs-12 col-sm-8">
@@ -59,7 +56,7 @@
<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label> <label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
<div class="col-xs-12 col-sm-8"> <div class="col-xs-12 col-sm-8">
<div class="radio"> <div class="radio">
{foreach name="statusList" item="vo"} {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> <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>

View File

@@ -16,13 +16,10 @@
<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">会员权益:</label> <label class="control-label col-xs-12 col-sm-2">会员权益:</label>
<div class="col-xs-12 col-sm-8"> <div class="col-xs-12 col-sm-8">
<select id="input-group" name="row[benefits_id][]" class="selectpicker form-control" multiple title="请选择权益" placeholder="请选择权益" >
<select id="input-group" name="" class="selectpicker form-control" multiple title="请选择权益" placeholder="请选择权益" > {foreach $benefits as $benefit}
<option value="1">专属客服</option> <option value="{$benefit.id}" {if condition="in_array($benefit.id, $row.benefits_id)"}selected{/if}>{$benefit.title}</option>
<option value="2">优先发货</option> {/foreach}
<option value="3">折扣优惠</option>
<option value="4">积分加倍</option>
<option value="5">免邮特权</option>
</select> </select>
</div> </div>
</div> </div>
@@ -31,7 +28,7 @@
<label class="control-label col-xs-12 col-sm-2">会员卡片:</label> <label class="control-label col-xs-12 col-sm-2">会员卡片:</label>
<div class="col-xs-12 col-sm-8"> <div class="col-xs-12 col-sm-8">
<div class="input-group"> <div class="input-group">
<input id="c-image" data-rule="required" class="form-control" size="50" name="row[image]" type="text" placeholder="请选择或上传图片"> <input id="c-image" data-rule="required" class="form-control" size="50" name="row[image]" value="{$row.image|htmlentities}" type="text" placeholder="请选择或上传图片">
<div class="input-group-addon no-border no-padding"> <div class="input-group-addon no-border no-padding">
<span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> Upload</button></span> <span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> Upload</button></span>
<span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> Choose</button></span> <span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> Choose</button></span>
@@ -41,9 +38,9 @@
<ul class="row list-inline faupload-preview" id="p-image"></ul> <ul class="row list-inline faupload-preview" id="p-image"></ul>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label> <label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
<div class="col-xs-12 col-sm-8"> <div class="col-xs-12 col-sm-8">
@@ -59,7 +56,7 @@
<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label> <label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
<div class="col-xs-12 col-sm-8"> <div class="col-xs-12 col-sm-8">
<div class="radio"> <div class="radio">
{foreach name="statusList" item="vo"} {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="$row.status"}checked{/in} /> {$vo|htmlentities}</label> <label for="row[status]-{$key|htmlentities}"><input id="row[status]-{$key|htmlentities}" name="row[status]" type="radio" value="{$key|htmlentities}" {in name="key" value="$row.status"}checked{/in} /> {$vo|htmlentities}</label>