瀏覽代碼

培训,后台

lizhen_gitee 8 月之前
父節點
當前提交
60b26beb33

+ 44 - 1
application/admin/controller/Trainactive.php

@@ -3,7 +3,7 @@
 namespace app\admin\controller;
 namespace app\admin\controller;
 
 
 use app\common\controller\Backend;
 use app\common\controller\Backend;
-
+use think\Db;
 /**
 /**
  * 培训活动
  * 培训活动
  *
  *
@@ -71,4 +71,47 @@ class Trainactive extends Backend
         return $this->view->fetch();
         return $this->view->fetch();
     }
     }
 
 
+    /**
+     * 二维码
+     */
+    public function qrcode(){
+        $id = input('id');
+        $info = Db::name('train_active')->where('id',$id)->find();
+
+        //二维码
+        $sign_data = [
+            'type' => 'sign',
+            'name' => $info['name'],
+            'id'   => $info['id'],
+        ];
+        $pingjia_data = [
+            'type' => 'pingjia',
+            'name' => $info['name'],
+            'id'   => $info['id'],
+        ];
+        $info['sign_qrcode'] = $this->introimage(json_encode($sign_data));
+        $info['pingjia_qrcode'] = $this->introimage(json_encode($pingjia_data));
+
+        $this->assign('row',$info);
+        return $this->view->fetch();
+    }
+
+    //生成邀请码二维码图片
+    private function introimage($data) {
+        $params['text'] = $data;
+        $qrcode_service = \addons\qrcode\library\Service::qrcode($params);
+
+        $qrcodePath = ROOT_PATH . 'public/uploads/trainqrcode/'.date('Ymd');
+        if (!is_dir($qrcodePath)) {
+            @mkdir($qrcodePath);
+        }
+        $filename = md5($data) . '.png';
+        if (is_really_writable($qrcodePath)) {
+            $filePath = $qrcodePath .'/'. $filename;
+            $qrcode_service->writeFile($filePath);
+        }
+
+        return request()->domain().'/uploads/trainqrcode/'.date('Ymd') .'/'. $filename;
+    }
+
 }
 }

+ 3 - 3
application/admin/view/trainactive/index.html

@@ -18,8 +18,8 @@
                     <div id="toolbar" class="toolbar">
                     <div id="toolbar" class="toolbar">
                         <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
                         <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
                         <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('trainactive/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
                         <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('trainactive/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
-                        <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('trainactive/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
-                        <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('trainactive/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
+                        <!--<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('trainactive/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>-->
+                        <!--<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('trainactive/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
                         
                         
 
 
                         <div class="dropdown btn-group {:$auth->check('trainactive/multi')?'':'hide'}">
                         <div class="dropdown btn-group {:$auth->check('trainactive/multi')?'':'hide'}">
@@ -31,7 +31,7 @@
                             </ul>
                             </ul>
                         </div>
                         </div>
 
 
-                        <a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('trainactive/recyclebin')?'':'hide'}" href="trainactive/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>
+                        <!--<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('trainactive/recyclebin')?'':'hide'}" href="trainactive/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>-->
                     </div>
                     </div>
                     <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
                     <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
                            data-operate-edit="{:$auth->check('trainactive/edit')}"
                            data-operate-edit="{:$auth->check('trainactive/edit')}"

+ 33 - 0
application/admin/view/trainactive/qrcode.html

@@ -0,0 +1,33 @@
+<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
+
+
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-name" disabled class="form-control" name="row[name]" type="text" value="{$row.name|htmlentities}">
+        </div>
+    </div>
+
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Sign_endtime')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-sign_endtime" disabled class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[sign_endtime]" type="text" value="{:$row.sign_endtime?datetime($row.sign_endtime):''}">
+        </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">
+            <img width="200px" height="200px" src="{$row.sign_qrcode}">
+        </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">
+            <img width="200px" height="200px" src="{$row.pingjia_qrcode}">
+        </div>
+    </div>
+
+
+</form>

+ 17 - 2
public/assets/js/backend/trainactive.js

@@ -28,6 +28,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     [
                     [
                         {checkbox: true},
                         {checkbox: true},
                         {field: 'id', title: __('Id')},
                         {field: 'id', title: __('Id')},
+                        {field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"0":__('Status 0')}, formatter: Table.api.formatter.status},
                         {field: 'logo_image', title: __('Logo_image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
                         {field: 'logo_image', title: __('Logo_image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
                         {field: 'title', title: __('Title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
                         {field: 'title', title: __('Title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
                         {field: 'number', title: __('Number'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
                         {field: 'number', title: __('Number'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
@@ -62,10 +63,21 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {field: 'sign_starttime', title: __('Sign_starttime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'sign_starttime', title: __('Sign_starttime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'sign_endtime', title: __('Sign_endtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'sign_endtime', title: __('Sign_endtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
-                        {field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"0":__('Status 0')}, formatter: Table.api.formatter.status},
                         {field: 'usercount', title: __('Usercount')},
                         {field: 'usercount', title: __('Usercount')},
                         {field: 'userauth_status', title: __('Userauth_status'), searchList: {"0":__('Userauth_status 0'),"1":__('Userauth_status 1')}, formatter: Table.api.formatter.status},
                         {field: 'userauth_status', title: __('Userauth_status'), searchList: {"0":__('Userauth_status 0'),"1":__('Userauth_status 1')}, formatter: Table.api.formatter.status},
-                        {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
+                        {field: 'operate', title: __('Operate'), table: table,
+                            buttons:[
+                                {
+                                    name:'qrcode',
+                                    text:'二维码',
+                                    title:'二维码',
+                                    icon:'fa fa-exclamation-circle',
+                                    classname:'btn btn-xs btn-info btn-dialog',
+                                    url:'trainactive/qrcode/id/{ids}?dialog=1',
+                                    target:'_self',
+                                }
+                            ],
+                            events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                     ]
                     ]
                 ]
                 ]
             });
             });
@@ -137,6 +149,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         add: function () {
         add: function () {
             Controller.api.bindevent();
             Controller.api.bindevent();
         },
         },
+        qrcode: function () {
+            Controller.api.bindevent();
+        },
         edit: function () {
         edit: function () {
             Controller.api.bindevent();
             Controller.api.bindevent();
         },
         },