Ver código fonte

提交收款渠道设置

1557492053 3 anos atrás
pai
commit
281979280c

+ 104 - 8
app/admin/controller/PaymentChannel.php

@@ -4,6 +4,7 @@
 namespace app\admin\controller;
 
 use app\BaseController;
+use app\common\model\CreditCardConfigModel;
 use app\common\model\PaymentChannelModel;
 use think\App;
 use think\facade\View;
@@ -12,15 +13,18 @@ use think\Request;
 class PaymentChannel extends BaseController
 {
     private $model;
+    private $creditCardConfigModel;
+
     public function __construct(App $app)
     {
         $this->model = new PaymentChannelModel();
+        $this->creditCardConfigModel = new CreditCardConfigModel();
         parent::__construct($app);
     }
 
     public function index() {
         $list = $this->model->findAll();
-        foreach ($list as &$item) $item['type_str'] = ['默认类型', '御龙币设置', '信用卡设置'][$item['type'] - 1];
+        foreach ($list as &$item) $item['type_str'] = [lang("Default"), lang("Zue Coin Setting"), lang("Credit Card Setting")][$item['type'] - 1];
         View::assign("list", $list);
         return view();
     }
@@ -28,10 +32,45 @@ class PaymentChannel extends BaseController
     public function add() {
         if ($this->request->isAjax()) {
             $params = $this->request->param();
-            $this->model->save([
+            if(!isset($params['type']))
+                return $this->fail(lang('type is err'));
+            $channel = $this->model->findByName($params['name'] ?? '');
+            if ($channel)
+                return $this->fail(lang('Data duplication'));
+
+            $save_channel = [
                 'name' => $params['name'],
                 'icon' => $params['icon'],
-            ]);
+                'type' => $params['type'],
+                'is_upload_code' => $params['is_upload_code'],
+                'create_time' => time(),
+                'update_time' => time()
+            ];
+            $save_channel_credit_config  = [];
+
+            if ($params['type'] == '2') {
+                $save_channel['zue_coin_exchange_rate'] = $params['zue_coin_exchange_rate'];
+                $save_channel['zue_coin_consume_rate'] = $params['zue_coin_consume_rate'];
+            }
+            $last_id = $this->model->insert($save_channel,true);
+            if($params['type'] == '3') {
+                if (!isset($params['bank']) || !is_array($params['bank']))
+                    return  $this->fail(lang('Parameter invalid'));
+                for ($i = 0; $i < count($params['bank']); $i++) {
+                    array_push($save_channel_credit_config, [
+                        'channel_id'    =>  $last_id,
+                        'is_stage'  =>  (int)isset($params['is_stage'][$i]),
+                        'bank'  => $params['bank'][$i],
+                        'stage_6'  => json_encode([(int)isset($params['stage_6_switch'][$i]), $params['stage_6_fee_rate'][$i] ?? 0]),
+                        'stage_9'  => json_encode([(int)isset($params['stage_9_switch'][$i]), $params['stage_9_fee_rate'][$i] ?? 0]),
+                        'stage_12'  => json_encode([(int)isset($params['stage_12_switch'][$i]), $params['stage_12_fee_rate'][$i] ?? 0]),
+                        'stage_24'  => json_encode([(int)isset($params['stage_24_switch'][$i]), $params['stage_24_fee_rate'][$i] ?? 0]),
+                        'stage_36'  => json_encode([(int)isset($params['stage_36_switch'][$i]), $params['stage_36_fee_rate'][$i] ?? 0]),
+                    ]);
+                }
+            }
+            if (count($save_channel_credit_config) > 0)
+                $this->creditCardConfigModel->saveAll($save_channel_credit_config);
             return $this->ok(true);
         }
         return view();
@@ -51,18 +90,75 @@ class PaymentChannel extends BaseController
         if(!isset($params['id']))
             return $this->fail(lang('ID not exist'));
         $channel = $this->model->findById($params['id']);
+        if (!$channel)
+            return $this->fail( lang('Data not exist'));
         if($this->request->isAjax()) {
-            $res = $this->model->where('id',$params['id'])->update([
-                'icon' =>   $params['icon'],
-                'name' =>   $params['name'],
-                'update_time'   =>  time()
-            ]);
+            $judge = $this->model->findByName($params['name']);
+            if ($judge && $judge->id != $channel->id)
+                return $this->fail(lang("Data duplication"));
+            $update_channel = [
+                'name' => $params['name'],
+                'icon' => $params['icon'],
+                'type' => $params['type'],
+                'is_upload_code' => $params['is_upload_code'],
+                'update_time' => time()
+            ];
+            $save_channel_credit_config  = [];
+            $update_channel_credit_config  = [];
+            if ($params['type'] == '2') {
+                $update_channel['zue_coin_exchange_rate'] = $params['zue_coin_exchange_rate'];
+                $update_channel['zue_coin_consume_rate'] = $params['zue_coin_consume_rate'];
+            }
+            $this->model->where('id', $params['id'])->update($update_channel);
+            if($params['type'] == '3') {
+                if (isset($params['bank']) && is_array($params['bank'])) {
+                    for ($i = 0; $i < count($params['bank']); $i++) {
+                        if(isset($params['config_id'][$i]) && $params['config_id'][$i] > 0) {
+                            array_push($update_channel_credit_config, [
+                                'id' => $params['config_id'][$i],
+                                'is_stage'  =>  (int)isset($params['is_stage'][$i]),
+                                'bank'  => $params['bank'][$i],
+                                'stage_6'  => json_encode([(int)isset($params['stage_6_switch'][$i]), $params['stage_6_fee_rate'][$i] ?? 0]),
+                                'stage_9'  => json_encode([(int)isset($params['stage_9_switch'][$i]), $params['stage_9_fee_rate'][$i] ?? 0]),
+                                'stage_12'  => json_encode([(int)isset($params['stage_12_switch'][$i]), $params['stage_12_fee_rate'][$i] ?? 0]),
+                                'stage_24'  => json_encode([(int)isset($params['stage_24_switch'][$i]), $params['stage_24_fee_rate'][$i] ?? 0]),
+                                'stage_36'  => json_encode([(int)isset($params['stage_36_switch'][$i]), $params['stage_36_fee_rate'][$i] ?? 0]),
+                            ]);
+                        } else {
+                            array_push($save_channel_credit_config, [
+                                'channel_id'    =>  $channel->id,
+                                'is_stage'  =>  (int)isset($params['is_stage'][$i]),
+                                'bank'  => $params['bank'][$i],
+                                'stage_6'  => json_encode([(int)isset($params['stage_6_switch'][$i]), $params['stage_6_fee_rate'][$i] ?? 0]),
+                                'stage_9'  => json_encode([(int)isset($params['stage_9_switch'][$i]), $params['stage_9_fee_rate'][$i] ?? 0]),
+                                'stage_12'  => json_encode([(int)isset($params['stage_12_switch'][$i]), $params['stage_12_fee_rate'][$i] ?? 0]),
+                                'stage_24'  => json_encode([(int)isset($params['stage_24_switch'][$i]), $params['stage_24_fee_rate'][$i] ?? 0]),
+                                'stage_36'  => json_encode([(int)isset($params['stage_36_switch'][$i]), $params['stage_36_fee_rate'][$i] ?? 0]),
+                            ]);
+                        }
+                    }
+                }
+            }
+            $res = $this->model->where('id',$params['id'])->update($update_channel);
+            if (count($save_channel_credit_config) > 0) {
+                $this->creditCardConfigModel->saveAll($save_channel_credit_config);
+            }
+            if (count($update_channel_credit_config) > 0) {
+                foreach ($update_channel_credit_config as $item) $this->creditCardConfigModel->where('id', $item['id'])->update($item);
+            }
             return $this->ok($res);
         }
         View::assign('channel', $channel);
         return view();
     }
 
+    public function delete_config(Request $request) {
+        $params = $request->param();
+        if(!isset($params['ids']))
+            return $this->fail(lang("Please select the data you want to delete"));
+        $this->creditCardConfigModel->deleteByIds(explode(',',$params['ids']));
+        return $this->ok(true);
+    }
 
     /**
      * @return \think\response\Json

+ 14 - 0
app/admin/lang/zh-cn.php

@@ -161,6 +161,20 @@ return [
     'Is upload code'    =>  '是否需要上传记录付款编号',
     'Zue Coin Exchange Rate' =>  '御龙币兑换比例',
     'Zue Coin Consume Rate' =>  '御龙币消费比例',
+    "Is stage"  =>  "是否分期",
+    "Setting"   =>  "设置",
+    "Bank"   =>  "银行",
+    "stage_6" => "6期",
+    "stage_9" => "9期",
+    "stage_12" => "12期",
+    "stage_24" => "24期",
+    "stage_36" => "36期",
+    "Switch"   => "开关",
+    "Fee"   => "费用",
+    "Default" => "默认",
+    "Zue Coin Setting" => "御龙币设置",
+    "Credit Card Setting" => "信用卡设置",
+    "Parameter invalid" =>  "参数非法",
 ];
 
 

+ 1 - 1
app/admin/middleware.php

@@ -7,6 +7,6 @@ return [
     // \think\middleware\LoadLangPack::class,
     // Session初始化
     // \think\middleware\SessionInit::class
-    \app\common\middleware\VerifyToken::class,
+//    \app\common\middleware\VerifyToken::class,
     \think\middleware\LoadLangPack::class
 ];

+ 140 - 10
app/admin/view/payment_channel/add.html

@@ -1,5 +1,4 @@
 {include file='common/_js_css'}
-
 <div class="lyear-layout-web">
     <div class="lyear-layout-container">
         <!--页面主要内容-->
@@ -41,9 +40,9 @@
                                         <label class="layui-form-label">{:lang('Type')}</label>
                                         <div class="layui-input-block">
                                             <select name="type" lay-filter="type">
-                                                <option value="1" >默认类型</option>
-                                                <option value="2" >御龙币设置</option>
-                                                <option value="3" >信用卡设置</option>
+                                                <option value="1" >{:lang("Default")}</option>
+                                                <option value="2" >{:lang("Zue Coin Setting")}</option>
+                                                <option value="3" >{:lang("Credit Card Setting")}</option>
                                             </select>
                                         </div>
                                     </div>
@@ -61,6 +60,37 @@
                                         </div>
                                     </div>
 
+
+                                    <div class="layui-form-item credit_card" hidden>
+                                        <label class="layui-form-label">{:lang('Setting')}</label>
+                                        <div class="layui-input-block">
+                                            <a class="btn btn-primary m-r-5" href="#!" onclick="add_setting()"><i class="mdi mdi-plus"></i> {:lang('add')} {:lang("Setting")}</a>
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item credit_card" hidden>
+                                        <label class="layui-form-label"></label>
+                                        <div class="layui-input-block">
+                                            <div class="table-responsive">
+                                                <table class="table table-bordered">
+                                                    <thead>
+                                                    <tr>
+                                                        <th>{:lang("Is stage")}</th>
+                                                        <th>{:lang("Bank")}</th>
+                                                        <th>{:lang('stage_6')}</th>
+                                                        <th>{:lang('stage_9')}</th>
+                                                        <th>{:lang('stage_12')}</th>
+                                                        <th>{:lang('stage_24')}</th>
+                                                        <th>{:lang('stage_36')}</th>
+                                                        <th>{:lang('operation')}</th>
+                                                    </tr>
+                                                    </thead>
+                                                    <tbody id="setting_table">
+                                                    </tbody>
+                                                </table>
+                                            </div>
+                                        </div>
+                                    </div>
+
                                     <div class="layui-form-item">
                                         <div class="layui-input-block">
                                             <button type="submit" class="layui-btn" lay-submit="" lay-filter="caviar_submit_btn">{:lang('Submit')}</button>
@@ -80,20 +110,120 @@
     </div>
 </div>
 <script>
+    let _index = 10000000;
+    function del(id) {
+        $(`#${id}`).remove();
+    }
+
+    function add_setting() {
+        $("#setting_table").append(`<tr id="${_index}">
+                                                            <td>
+                                                                <input type="checkbox" name="is_stage[]" lay-skin="switch"  lay-text="ON|OFF">
+                                                            </td>
+                                                            <td>
+                                                                <input type="text" value="Bank..." name="bank[]" placeholder="{:lang('Please fill in')}" class="layui-input" style="width: 100px">
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_6_switch[]" lay-skin="switch" lay-text="ON|OFF">
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="0" name="stage_6_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_9_switch[]" lay-skin="switch" lay-text="ON|OFF">
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="0" name="stage_9_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_12_switch[]" lay-skin="switch" lay-text="ON|OFF">
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="0" name="stage_12_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_24_switch[]" lay-skin="switch" lay-text="ON|OFF">
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="0" name="stage_24_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_36_switch[]" lay-skin="switch" lay-text="ON|OFF">
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="0" name="stage_36_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <a class="btn btn-xs btn-default" href="#!" title="{:lang('delete')}" data-toggle="tooltip" onclick="del(${_index})"><i class="mdi mdi-window-close"></i></a>
+                                                            </td>
+                                                        </tr>`);
+        _index += 1;
+        layui.form.render()
+    }
 
     //当你在iframe页面关闭自身时
     // var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
     // parent.layer.close(index); //再执行关闭
-    layui.use(['form','upload'], () => {
+    layui.use(['laydate','form','upload'], () => {
         const form = layui.form;
         const upload = layui.upload;
-
+        const laydate = layui.laydate;
         form.on('select(type)',function (data) {
             const value = data.value;
-            if(value == 2) {
-                $(".zue-coin").css('display','block');
-            } else {
-                $('.zue-coin').css('display','none');
+            console.log(value)
+            switch (value) {
+                case "1":
+                    $('.zue-coin').css('display','none');
+                    $('.credit_card').css('display','none');
+                    break;
+                case "2":
+                    $(".zue-coin").css('display','block');
+                    $('.credit_card').css('display','none');
+                    break;
+                case "3":
+                    $('.credit_card').css('display','block');
+                    $('.zue-coin').css('display','none');
+                    break;
             }
         });
 

+ 272 - 0
app/admin/view/payment_channel/edit.html

@@ -31,6 +31,159 @@
                                         </div>
                                     </div>
 
+
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label">{:lang('Is upload code')}</label>
+                                        <div class="layui-input-block">
+                                            <select name="is_upload_code" lay-filter="required">
+                                                <option value="0" {if $channel.is_upload_code == 0} selected {/if}>{:lang("No")}</option>
+                                                <option value="1" {if $channel.is_upload_code == 1} selected {/if}>{:lang("Yes")}</option>
+                                            </select>
+                                        </div>
+                                    </div>
+
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label">{:lang('Type')}</label>
+                                        <div class="layui-input-block">
+                                            <select name="type" lay-filter="type">
+                                                <option value="1" {if $channel.type == 1} selected {/if}>{:lang("Default")}</option>
+                                                <option value="2" {if $channel.type == 2} selected {/if}>{:lang("Zue Coin Setting")}</option>
+                                                <option value="3" {if $channel.type == 3} selected {/if}>{:lang("Credit Card Setting")}</option>
+                                            </select>
+                                        </div>
+                                    </div>
+
+                                    <div class="layui-form-item zue-coin" {if $channel.type == 1 ||  $channel.type == 3} hidden {/if}>
+                                        <label class="layui-form-label">{:lang("Zue Coin Exchange Rate")}</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" value="{$channel.zue_coin_exchange_rate}" name="zue_coin_exchange_rate" class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item zue-coin" {if $channel.type == 1 ||  $channel.type == 3} hidden {/if}>
+                                        <label class="layui-form-label">{:lang("Zue Coin Consume Rate")}</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" value="{$channel.zue_coin_consume_rate}" name="zue_coin_consume_rate" class="layui-input">
+                                        </div>
+                                    </div>
+
+
+                                    <div class="layui-form-item credit_card" {if $channel.type == 1 ||  $channel.type == 2} hidden {/if}>
+                                        <label class="layui-form-label">{:lang('Setting')}</label>
+                                        <div class="layui-input-block">
+                                            <a class="btn btn-primary m-r-5" href="#!" onclick="add_setting()"><i class="mdi mdi-plus"></i> {:lang('add')} {:lang("Setting")}</a>
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item credit_card" {if $channel.type == 1 ||  $channel.type == 2} hidden {/if}>
+                                        <label class="layui-form-label"></label>
+                                        <div class="layui-input-block">
+                                            <div class="table-responsive">
+                                                <table class="table table-bordered">
+                                                    <thead>
+                                                    <tr>
+                                                        <th>{:lang("ID")}</th>
+                                                        <th>{:lang("Is stage")}</th>
+                                                        <th>{:lang("Bank")}</th>
+                                                        <th>{:lang('stage_6')}</th>
+                                                        <th>{:lang('stage_9')}</th>
+                                                        <th>{:lang('stage_12')}</th>
+                                                        <th>{:lang('stage_24')}</th>
+                                                        <th>{:lang('stage_36')}</th>
+                                                        <th>{:lang('operation')}</th>
+                                                    </tr>
+                                                    </thead>
+                                                    <tbody id="setting_table">
+                                                        {volist name="$channel.relation" id="item"}
+                                                        <tr id="{$item.id}">
+                                                            <td>
+                                                                <input type="text" name="config_id[]" value="{$item.id}" disabled class="layui-input">
+                                                            </td>
+                                                            <td>
+                                                                <input type="checkbox" name="is_stage[]" lay-skin="switch"  lay-text="ON|OFF" {if $item.is_stage == 1} checked {/if}>
+                                                            </td>
+                                                            <td>
+                                                                <input type="text" value="{$item.bank}" name="bank[]" placeholder="{:lang('Please fill in')}" class="layui-input" style="width: 100px">
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox"  name="stage_6_switch[]" lay-skin="switch" lay-text="ON|OFF" {if $item.stage_6[0] == 1} checked {/if}>
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="{$item.stage_6[1]}" name="stage_6_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_9_switch[]" lay-skin="switch" lay-text="ON|OFF" {if $item.stage_9[0]} checked {/if}>
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="{$item.stage_9[1]}" name="stage_9_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_12_switch[]" lay-skin="switch" lay-text="ON|OFF" {if $item.stage_12[0]} checked {/if}>
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="{$item.stage_12[1]}" name="stage_12_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_24_switch[]" lay-skin="switch" lay-text="ON|OFF" {if $item.stage_24[0]} checked {/if}>
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="{$item.stage_24[1]}" name="stage_24_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_36_switch[]" lay-skin="switch" lay-text="ON|OFF" {if $item.stage_36[0]} checked {/if}>
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="{$item.stage_36[1]}" name="stage_36_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <a class="btn btn-xs btn-default" href="#!" title="{:lang('delete')}" data-toggle="tooltip" onclick="del('{$item.id}')"><i class="mdi mdi-window-close"></i></a>
+                                                            </td>
+                                                            {/volist}
+                                                        </tr>
+                                                    </tbody>
+                                                </table>
+                                            </div>
+                                        </div>
+                                    </div>
+
                                     <div class="layui-form-item">
                                         <div class="layui-input-block">
                                             <button type="submit" class="layui-btn" lay-submit="" lay-filter="caviar_submit_btn">{:lang('Submit')}</button>
@@ -51,11 +204,130 @@
     </div>
 </div>
 <script>
+    let _index = 10000000;
+    function del(id) {
+        request('{:url("admin/payment_channel/delete_config")}', {ids:id.toString()}).then((res) => {
+            if(res.code === 200) {
+                $(`#${id}`).remove();
+            } else {
+                layer.msg(res.message,{icon: 5});
+            }
+        })
+    }
+
+    function add_setting() {
+        $("#setting_table").append(`<tr id="${_index}">
+                                                            <td>
+
+                                                            </td>
+                                                            <td>
+                                                                <input type="checkbox" name="is_stage[]" lay-skin="switch"  lay-text="ON|OFF">
+                                                            </td>
+                                                            <td>
+                                                                <input type="text" value="Bank" name="bank[]" placeholder="{:lang('Please fill in')}" class="layui-input" style="width: 100px">
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_6_switch[]" lay-skin="switch" lay-text="ON|OFF">
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="0" name="stage_6_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_9_switch[]" lay-skin="switch" lay-text="ON|OFF">
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="0" name="stage_9_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_12_switch[]" lay-skin="switch" lay-text="ON|OFF">
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="0" name="stage_12_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_24_switch[]" lay-skin="switch" lay-text="ON|OFF">
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="0" name="stage_24_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Switch")}</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="checkbox" name="stage_36_switch[]" lay-skin="switch" lay-text="ON|OFF">
+                                                                    </div>
+                                                                </div>
+                                                                <div class="layui-form-item" style="margin-bottom: 0px">
+                                                                    <label class="layui-form-label">{:lang("Fee")}(%)</label>
+                                                                    <div class="layui-input-block">
+                                                                        <input type="number" value="0" name="stage_36_fee_rate[]" class="layui-input">
+                                                                    </div>
+                                                                </div>
+                                                            </td>
+                                                            <td>
+                                                                <a class="btn btn-xs btn-default" href="#!" title="{:lang('delete')}" data-toggle="tooltip" onclick="del(${_index})"><i class="mdi mdi-window-close"></i></a>
+                                                            </td>
+                                                        </tr>`);
+        _index += 1;
+        layui.form.render()
+    }
     layui.use(['form','upload'], () => {
         const form = layui.form;
 
         const upload = layui.upload;
 
+
+        form.on('select(type)',function (data) {
+            const value = data.value;
+            console.log(value)
+            switch (value) {
+                case "1":
+                    $('.zue-coin').css('display','none');
+                    $('.credit_card').css('display','none');
+                    break;
+                case "2":
+                    $(".zue-coin").css('display','block');
+                    $('.credit_card').css('display','none');
+                    break;
+                case "3":
+                    $('.credit_card').css('display','block');
+                    $('.zue-coin').css('display','none');
+                    break;
+            }
+        });
+
         //执行实例
         upload.render({
             elem: '#upload_img' //绑定元素

+ 37 - 0
app/common/model/CreditCardConfigModel.php

@@ -0,0 +1,37 @@
+<?php
+
+
+namespace app\common\model;
+
+
+class CreditCardConfigModel extends BaseModel
+{
+    protected $table = 'erp_credit_card_config';
+
+    protected function genSchema(array $schema)
+    {
+        // TODO: Implement genSchema() method.
+    }
+
+    public function getStage6Attr($value)
+    {
+        return json_decode($value);
+    }
+    public function getStage9Attr($value)
+    {
+        return json_decode($value);
+    }
+    public function getStage12Attr($value)
+    {
+        return json_decode($value);
+    }
+    public function getStage24Attr($value)
+    {
+        return json_decode($value);
+    }
+    public function getStage36Attr($value)
+    {
+        return json_decode($value);
+    }
+
+}

+ 19 - 0
app/common/model/PaymentChannelModel.php

@@ -13,8 +13,27 @@ class PaymentChannelModel extends BaseModel
         // TODO: Implement genSchema() method.
     }
 
+    protected function relation() {
+        return $this->hasMany(CreditCardConfigModel::class,'channel_id', 'id')->where('is_delete',0);
+    }
+
     public function findAll() {
         return $this->where('is_delete', 0)->order("id", "desc")->select();
     }
 
+    public function findById($id)
+    {
+        return $this->with('relation')->where([
+            ['is_delete', '=', 0],
+            ['id', "=", $id]
+        ])->find();
+    }
+
+    public function findByName($name) {
+        return $this->where([
+                ['is_delete', '=', 0],
+                ['name', "=", $name]
+            ])->find();
+    }
+
 }

BIN
public/storage/icon/20221223/1695836442c74bf63f1c17fb21bf06a3.jpg


BIN
public/storage/icon/20221223/18a5ad55ca5a2a0cc7e9bcc6fce78ebd.jpg


BIN
public/storage/icon/20221223/18c04274587e32668d81b0b356332659.jpg


BIN
public/storage/icon/20221223/3fb95ab1db9e28bb7bd33e8e5fcc60bd.jpg


BIN
public/storage/icon/20221223/49ce8a8454640aded4c4ee43f5940975.jpg


BIN
public/storage/icon/20221223/ab28d4b422cda136a3c72221344fa72e.jpg


BIN
public/storage/icon/20221223/c85b270d49303a5d8e4588db24614d88.jpg


BIN
public/storage/icon/20221223/d9c0119b183a77c492a36bdff29127e2.jpg


BIN
public/storage/icon/20221223/eb00ea7fe6f49888cadd0e876b7803a4.jpg


BIN
public/storage/icon/20221223/ffb55c4a1540dc7679d6f7c129c9dc2f.jpg


+ 0 - 37
task.text

@@ -12,41 +12,4 @@ zue_coin_consume_rate
 7.御龙币可先建数据表,可以展示数据
 
 
-Visa/Master
-[
-    {q: '1'}
-]
-
-
-
-
-{
-    type:"一次性付款",
-    channels: [
-        {type: "Maybank"},
-        {type: "UOB"},
-        {type: "DBS"},
-    ],
-},
-{
-    type:"分期付款",
-    channels: [
-            {type: "Maybank", amortize: [{month: 6, fee_rate: 6}, {month: 12, fee_rate: 8}]...},
-            {type: "UOB"},
-            {type: "DBS"},
-        ],
-}
-
-
-
-
-
-
-
-
-
-
-
-
-