瀏覽代碼

打印页面

lizhen_gitee 8 月之前
父節點
當前提交
c875aecebb

+ 47 - 0
application/admin/controller/Trainactive.php

@@ -17,6 +17,7 @@ class Trainactive extends Backend
      * @var \app\admin\model\Trainactive
      */
     protected $model = null;
+    protected $noNeedLogin = ['qrcode','showinfo'];
 
     public function _initialize()
     {
@@ -114,4 +115,50 @@ class Trainactive extends Backend
         return request()->domain().'/uploads/trainqrcode/'.date('Ymd') .'/'. $filename;
     }
 
+    /**
+     * 打印
+     */
+    public function showinfo(){
+        $id = input('id');
+        $info = Db::name('train_active')->alias('ta')->field('ta.*,cate.name as cate_name,level.name as level_name,type.name as type_name,user.nickname as pingjia_nickname')
+            ->join('train_cate cate',  'ta.cate_id  = cate.id' ,'LEFT')
+            ->join('train_level level','ta.level_id = level.id','LEFT')
+            ->join('train_type type',  'ta.type_id  = type.id' ,'LEFT')
+            ->join('user',         'ta.pingjia_uid  = user.id' ,'LEFT')
+            ->where('ta.id',$id)->find();
+        $info = info_domain_image($info,['logo_image','files','pingjia_image']);
+
+        //重新定义附件
+        $files_json = json_decode($info['files_json'],true);
+        foreach($files_json as $key => $file){
+            $files_json[$key]['url'] = localpath_to_netpath($file['url']);
+        }
+        $info['files_json'] = $files_json;
+
+        $this->assign('row',$info);
+
+        //签到记录
+        $user_train = Db::name('user_train')->field('user_train.*,user.nickname')
+            ->join('user','user_train.user_id = user.id','LEFT')
+            ->where('user_train.train_id',$id)->order('id asc')->select();
+        $status_arr = [
+            1 => '正常',
+            2 => '迟到',
+        ];
+        foreach($user_train as $key => $val){
+            $user_train[$key]['sign_image'] = localpath_to_netpath($val['sign_image']);
+            $user_train[$key]['status_text'] = $status_arr[$val['status']];
+        }
+        $this->assign('user_train',$user_train);
+        $this->assign('user_train_chunk',array_chunk($user_train,10));
+
+        //杂项
+        $result = [
+            'yingdao' => count(explode(',',$info['user_ids'])),
+            'shidao' => count($user_train),
+        ];
+        $this->assign('result',$result);
+        //
+        return $this->view->fetch();
+    }
 }

+ 23 - 1
application/admin/model/Trainactive.php

@@ -4,7 +4,7 @@ namespace app\admin\model;
 
 use think\Model;
 use traits\model\SoftDelete;
-
+use think\Db;
 class Trainactive extends Model
 {
 
@@ -35,6 +35,28 @@ class Trainactive extends Model
     ];
     
 
+    protected static function init(){
+        //文件名
+        self::afterUpdate(function ($row) {
+
+            $changed = $row->getChangedData();
+            if (isset($changed['files'])) {
+                $files = Db::name('attachment')->where('url','IN',$row['files'])->field('url,filename')->select();
+
+                $update = ['files_json'=>json_encode($files)];
+                Db::name('train_active')->where('id',$row['id'])->update($update);
+            }
+        });
+        //文件名
+        self::afterInsert(function ($row) {
+            if (!empty($row['files'])) {
+                $files = Db::name('attachment')->where('url','IN',$row['files'])->field('url,filename')->select();
+
+                $update = ['files_json'=>json_encode($files)];
+                Db::name('train_active')->where('id',$row['id'])->update($update);
+            }
+        });
+    }
     
     public function getStatusList()
     {

+ 160 - 0
application/admin/view/trainactive/showinfo.html

@@ -0,0 +1,160 @@
+<div class="panel panel-default panel-intro">
+
+    <div class="panel-body">
+        <div id="myTabContent" class="tab-content">
+            <div class="tab-pane fade active in">
+                <div class="widget-body no-padding">
+                    <table class="table table-striped table-bordered table-hover table-nowrap" width="100%">
+                        <tr>
+                            <td></td>
+                            <td></td>
+                            <td></td>
+                            <td></td>
+                            <td></td>
+                            <td></td>
+                            <td><button type="button" class="btn btn-primary dropdown-toggle">打印</button></td>
+                            <td><button type="button" class="btn btn-primary dropdown-toggle">导出PDF</button></td>
+                        </tr>
+                        <tr>
+                            <td colspan="8"><img width="50" height="50" src="{$row.logo_image}"><span style="font-size:20px;margin-left: 10px">{$row.title}</span></td>
+                        </tr>
+
+                        <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+
+                        <tr>
+                            <td class="col-xs-12 col-sm-1">文件编号</td>
+                            <td>{$row.number}</td>
+                            <td>编制人</td>
+                            <td>{$row.bianzhiren}</td>
+                            <td>审核人</td>
+                            <td>{$row.shenheren}</td>
+                            <td>编制部门</td>
+                            <td>{$row.department}</td>
+                        </tr>
+                        <tr>
+                            <td>版本号</td>
+                            <td>{$row.version}</td>
+                            <td>批准人</td>
+                            <td>{$row.pizhunren}</td>
+                            <td>控制人</td>
+                            <td>{$row.kongzhiren}</td>
+                            <td>文件状态</td>
+                            <td>{$row.wenjianstatus}</td>
+                        </tr>
+
+                        <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+
+                        <tr>
+                            <td>培训主题</td>
+                            <td colspan="7">{$row.name}</td>
+                        </tr>
+                        <tr>
+                            <td>培训分类</td>
+                            <td colspan="3">{$row.cate_name}</td>
+                            <td>培训级别</td>
+                            <td colspan="3">{$row.level_name}</td>
+                        </tr>
+                        <tr>
+                            <td>培训方式</td>
+                            <td colspan="3">{$row.fangshi}</td>
+                            <td>培训时间</td>
+                            <td colspan="3">{$row.starttime|date="Y-m-d H:i:s",###}--{$row.starttime|date="Y-m-d H:i:s",###}</td>
+                        </tr>
+                        <tr>
+                            <td>培训地点</td>
+                            <td colspan="3">{$row.address}</td>
+                            <td>主持人</td>
+                            <td colspan="3">{$row.zhuchiren}</td>
+                        </tr>
+                        <tr>
+                            <td>主讲人</td>
+                            <td colspan="3">{$row.zhujiangren}</td>
+                            <td>培训类型</td>
+                            <td colspan="3">{$row.type_name}</td>
+                        </tr>
+                        <tr>
+                            <td>培训简介</td>
+                            <td colspan="7">{$row.info}</td>
+                        </tr>
+
+                        <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+
+                        <tr>
+                            <td colspan="8">培训附件</td>
+                        </tr>
+                        <tr>
+                            <td colspan="8">
+                                {volist name="$row.files_json" id="vo"}
+                                <span class="glyphicon glyphicon-save" aria-hidden="true"></span><a href="{$vo.url}" target="_blank">{$vo.filename}</a>&nbsp;&nbsp;&nbsp;
+                                {/volist}
+                            </td>
+                        </tr>
+
+                        <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+
+                        <tr>
+                            <td colspan="8">效果评价</td>
+                        </tr>
+                        <tr>
+                            <td>评价</td>
+                            <td colspan="8">{$row.pingjia}</td>
+                        </tr><tr>
+                            <td>评价人</td>
+                            <td colspan="3">{$row.pingjia_nickname}&nbsp;&nbsp;&nbsp;&nbsp;<img src="{$row.pingjia_image}" width="50px" height="50px"></td>
+                            <td>评价时间</td>
+                            <td colspan="3">{$row.pingjia_time|date="Y-m-d H:i:s",###}</td>
+                        </tr>
+
+
+                    </table>
+                    <div class="panel-heading">
+                        <ul class="nav nav-tabs" data-field="status">
+                            <li class="acitve"><a href="#t-left"  data-value="left"  data-toggle="tab">学习记录</a></li>
+                            <li class="">      <a href="#t-right" data-value="right" data-toggle="tab">签到详情</a></li>
+                        </ul>
+                    </div>
+
+                    <table class="table table-striped table-bordered table-hover table-nowrap" width="100%">
+                        <tr>
+                            <td colspan="5">学习情况</td>
+                            <td colspan="3">应到{$result.yingdao}人,实到{$result.shidao}人</td>
+                        </tr>
+                        {volist name="$user_train_chunk" id="chunk"}
+                        <tr>
+                            <td colspan="8">
+                                {volist name="$chunk" id="vo"}
+                                    <img src="{$vo.sign_image}" width="50px" height="50px">
+                                {/volist}
+                            </td>
+                        </tr>
+                        {/volist}
+                    </table>
+
+                    <table class="table table-striped table-bordered table-hover table-nowrap" width="100%">
+                        <tr>
+                            <td colspan="5">学习情况</td>
+                            <td colspan="3">应到{$result.yingdao}人,实到{$result.shidao}人</td>
+                        </tr>
+                        <tr>
+                            <td colspan="5">参与人</td>
+                            <td colspan="2">学习时间</td>
+                            <td>状态</td>
+                        </tr>
+                        {volist name="$user_train" id="vo"}
+                        <tr>
+                            <td colspan="2">{$vo.nickname}</td>
+                            <td colspan="3"><img src="{$vo.sign_image}" width="50px" height="50px"></td>
+                            <td colspan="2">{$vo.sign_time|date="Y-m-d H:i:s",###}</td>
+                            <td>{$vo.status_text}</td>
+                        </tr>
+                        {/volist}
+                        </table>
+                    </table>
+
+
+                </div>
+            </div>
+
+        </div>
+    </div>
+</div>

+ 12 - 0
public/assets/js/backend/trainactive.js

@@ -75,6 +75,15 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                     classname:'btn btn-xs btn-info btn-dialog',
                                     url:'trainactive/qrcode/id/{ids}?dialog=1',
                                     target:'_self',
+                                },
+                                {
+                                    name:'showinfo',
+                                    text:'打印',
+                                    title:'打印',
+                                    icon:'fa fa-exclamation-circle',
+                                    classname:'btn btn-xs btn-info btn-dialog',
+                                    url:'trainactive/showinfo/id/{ids}?dialog=1',
+                                    target:'_self',
                                 }
                             ],
                             events: Table.api.events.operate, formatter: Table.api.formatter.operate}
@@ -155,6 +164,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         edit: function () {
             Controller.api.bindevent();
         },
+        showinfo: function () {
+            Controller.api.bindevent();
+        },
         api: {
             bindevent: function () {
                 Form.api.bindevent($("form[role=form]"));