Quellcode durchsuchen

师资评价系统

linwu vor 8 Monaten
Ursprung
Commit
4fb9122c59

+ 191 - 0
app/admin/controller/Evaluate.php

@@ -0,0 +1,191 @@
+<?php
+
+namespace app\admin\controller;
+
+use app\admin\AdminBaseController;
+use app\common\model\q\UserFormDataModel;
+use app\common\model\q\UserFormItemModel;
+use app\common\model\q\UserFormModel;
+
+class Evaluate extends AdminBaseController
+{
+
+    /**
+     * 项目列表
+     */
+    public function project()
+    {
+        return view();
+    }
+
+    public function listProject()
+    {
+        $where = [
+            ['user_id', '=', 723],
+            ['is_folder', '=', 1],
+            ['is_deleted', '=', 0],
+        ];
+        $list  = UserFormModel::where($where)
+            ->order('create_time desc')
+            ->limit(input('limit'))
+            ->page(input('page'))
+            ->select();
+        $count = UserFormModel::where($where)->count();
+        if ($count == 0) {
+            ajax_return(1, '未查询到数据');
+        }
+
+        //数据处理
+        foreach ($list as $v) {
+            $v['sub_count'] = UserFormModel::where('folder_id', $v['id'])->count();
+        }
+
+        list_return($list, $count);
+    }
+
+    public function exportProject()
+    {
+        $id = input('id', 0);
+        if (empty($id)) {
+            return '参数有误';
+        }
+
+        $form = UserFormModel::find($id);
+        if (empty($form) || $form['is_folder'] != 1) {
+            return '参数有误';
+        }
+
+        $form_list = UserFormModel::where([
+            ['folder_id', '=', $id],
+            ['is_deleted', '=', 0],
+        ])->select();
+
+        $form_key_list = $form_list->column('form_key');
+        if (empty($form_key_list)) {
+            return '暂无评价';
+        }
+
+        //表单问题
+        $form_item          = UserFormItemModel::where('form_key', 'in', $form_key_list)->where('type', 'RADIO')->select();
+        $form_key_item_list = [];
+        foreach ($form_item as $v) {
+            $item                                 = $v->toArray();
+            $item['scheme_array']                 = json_decode($item['scheme'], true);
+            $item['label']                        = strip_tags($item['label']);
+            $form_key_item_list[$v['form_key']][] = $item;
+        }
+
+        //具体数据
+        $form_data = UserFormDataModel::where('form_key', 'in', $form_key_list)->select();
+        if (empty($form_data)) {
+            return '暂无评价';
+        }
+        $form_key_data_list = [];
+        foreach ($form_data as $v) {
+            $item                                 = $v->toArray();
+            $item['original_data_array']          = json_decode($item['original_data'], true);
+            $form_key_data_list[$v['form_key']][] = $item;
+        }
+
+        //计算百分比
+        $res = [];
+        foreach ($form_key_item_list as $key => $form_item_list) {
+            //每个问题
+            $answer_list       = $form_key_data_list[$key];
+            $res[$key]['list'] = $this->_dealPercent($answer_list, $form_item_list);
+        }
+
+        //组合数据
+        foreach ($form_list as $v) {
+            $res[$v['form_key']]['title'] = trim(str_replace("\n", '', strip_tags($v['name'])));
+        }
+
+        return view('', ['form' => $form, 'list' => $res]);
+    }
+
+    public function course()
+    {
+        $id = input('id',0);
+        if (empty($id)) {
+            return '参数错误';
+        }
+
+        return view('',['id'=>$id]);
+    }
+
+    public function listCourse()
+    {
+        $id = input('id',0);
+        if (empty($id)) {
+            ajax_return(1, '未查询到数据');
+        }
+
+        $where = [
+            ['user_id', '=', 723],
+            ['folder_id', '=', $id],
+            ['is_deleted', '=', 0],
+        ];
+        $list  = UserFormModel::where($where)
+            ->order('create_time desc')
+            ->limit(input('limit'))
+            ->page(input('page'))
+            ->select();
+        $count = UserFormModel::where($where)->count();
+        if ($count == 0) {
+            ajax_return(1, '未查询到数据');
+        }
+
+        //数据处理
+        foreach ($list as $v) {
+            $v['evaluate_count'] = UserFormDataModel::where('form_key', $v['form_key'])->count();
+        }
+
+        list_return($list, $count);
+    }
+
+    private function _dealPercent($answer_list, $form_item_list)
+    {
+        /* $res = [
+             'form_key' => [
+                 'form_item_id' => [
+                     'title'=>'标题',
+                     'answer'=> [
+                         'value' => ['title'=>'非常满意','num'=>'数量'],
+                         'value' => ['title'=>'满意','num'=>'数量'],
+                     ],
+                     'answer_total' => '总数',
+                 ],
+             ],
+         ];*/
+
+        //问题列表
+        $problem_list = [];
+        foreach ($form_item_list as $k => $v) {
+            $options = [];
+            if (!empty($v['scheme_array']['config']['options'])) {
+                foreach ($v['scheme_array']['config']['options'] as $option) {
+                    $options[$option['value']] = ['title' => $option['label'], 'num' => 0];
+                }
+            }
+
+            $problem_list[$v['form_item_id']] = [
+                'title'        => $v['label'],
+                'answer'       => $options,
+                'answer_total' => count($answer_list),
+            ];
+        }
+
+        //问题答案
+        foreach ($answer_list as $answer) {
+            foreach ($answer['original_data_array'] as $answer_item_key => $answer_item) {
+                if (!empty($problem_list[$answer_item_key])) {
+                    if (!empty($problem_list[$answer_item_key]['answer'][$answer_item])) {
+                        $problem_list[$answer_item_key]['answer'][$answer_item]['num']++;
+                    }
+                }
+            }
+        }
+
+        return $problem_list;
+    }
+}

+ 4 - 0
app/admin/controller/Login.php

@@ -41,4 +41,8 @@ class Login extends BaseController
         return redirect(url('login/index'));
     }
 
+    public function t1()
+    {
+        return view();
+    }
 }

+ 31 - 0
app/admin/view/evaluate/course.html

@@ -0,0 +1,31 @@
+<div class="layui-fluid">
+    <div class="layui-card">
+        <div class="layui-card-body">
+            <table id="{$lay_table}" lay-filter="{$lay_table}"></table>
+        </div>
+    </div>
+</div>
+
+<script>
+    layui.use(['index', 'admin', 'form', 'table'], function () {
+        const form = layui.form;
+        const table = layui.table;
+        form.render();
+
+        table.render({
+            elem: '#{$lay_table}',
+            url: "{:url('evaluate/listCourse')}?id={$id}",
+            cols: [
+                [
+                    {field: 'text_name', title: '课程名称'},
+                    {field: 'evaluate_count', title: '报名人数', width: 160},
+                    {field: 'create_time', title: '创建时间', width: 160},
+                ]
+            ],
+            page: true,
+            limit: 50,
+            cellMinWidth: 150,
+            text: '对不起,加载出现异常!'
+        });
+    });
+</script>

+ 28 - 0
app/admin/view/evaluate/export_project.html

@@ -0,0 +1,28 @@
+<style>
+    html {background:white;}
+    body {color:#333;width:794px;margin:0 auto;box-sizing:border-box;font-size:14px;font-family:"仿宋GB2312";}
+    .header {text-align:center;font-weight:bold;font-size:18px;}
+    .activity-title {margin-top:20px;font-size:16px;font-weight:bold;}
+    .form {padding-left:35px;}
+    .form .form-title {margin-top:20px;}
+    .form .form-title .num{margin-left:20px;color:red;}
+    .form .form-content {margin-top:10px;}
+    .form .form-content .form-span {margin-left:30px;}
+    .form .form-content .percent {color:red;margin-left:10px;}
+</style>
+<div class="header">{$form.text_name}</div>
+{volist name="list" id="item"}
+    <div class="activity-title">
+        {$item.title}
+    </div>
+    <div class="form">
+        {volist name="item.list" id="data"}
+        <div class="form-title">{$data.title}<span class="num">{$data.answer_total}人</span></div>
+        <div class="form-content">
+            {volist name="data.answer" id="answer"}
+            <span class="form-span">{$answer.title} <span class="percent">{:round($answer['num']/$data['answer_total'],4) * 100}%</span></span>
+            {/volist}
+        </div>
+        {/volist}
+    </div>
+{/volist}

+ 64 - 0
app/admin/view/evaluate/project.html

@@ -0,0 +1,64 @@
+<div class="layui-fluid">
+    <div class="layui-card">
+
+        <div class="layui-card-body">
+            <table id="{$lay_table}" lay-filter="{$lay_table}"></table>
+            <script type="text/html" id="setTpl">
+                <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="course">
+                    <i class="layui-icon layui-icon-list"></i>课程列表
+                </a>
+                <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="export">
+                    <i class="layui-icon layui-icon-list"></i>导出
+                </a>
+            </script>
+        </div>
+    </div>
+</div>
+
+<script>
+    layui.use(['index', 'admin', 'form', 'table'], function () {
+        const $ = layui.$;
+        const admin = layui.admin;
+        const form = layui.form;
+        const table = layui.table;
+        form.render();
+
+        table.render({
+            elem: '#{$lay_table}',
+            url: "{:url('evaluate/listProject')}",
+            cols: [
+                [
+                    {field: 'text_name', title: '项目名称'},
+                    {field: 'sub_count', title: '课程场数', width: 160},
+                    {field: 'create_time', title: '创建时间', width: 160},
+                    {title: '操作', width: 300, align: 'center', fixed: 'right', toolbar: '#setTpl'}
+                ]
+            ],
+            page: true,
+            limit: 50,
+            cellMinWidth: 150,
+            text: '对不起,加载出现异常!'
+        });
+
+        //监听工具条
+        table.on('tool({$lay_table})', function (obj) {
+            const data = obj.data;
+            if (obj.event === 'course') {
+                layer.open({
+                    type: 2,
+                    title: '课程列表',
+                    content: "{:url('evaluate/course')}?id=" + data.id,
+                    maxmin: true,
+                    area: ['1200px', '550px']
+                });
+            } else if (obj.event === 'export') {
+                window.open("{:url('evaluate/exportProject')}?id="+data.id);
+            }
+        });
+
+        $('.layui-btn.layuiadmin-btn').on('click', function () {
+            const type = $(this).data('type');
+            active[type] ? active[type].call(this) : '';
+        });
+    });
+</script>

+ 118 - 0
app/admin/view/login/t1.html

@@ -0,0 +1,118 @@
+<style>
+    html {background:white;}
+    body {color:#333;width:794px;margin:0 auto;box-sizing:border-box;font-size:14px;font-family:"仿宋GB2312";}
+    .header {text-align:center;font-weight:bold;font-size:18px;}
+    .activity-title {margin-top:20px;font-size:16px;font-weight:bold;}
+    .form {padding-left:35px;}
+    .form .form-title {margin-top:20px;}
+    .form .form-title .num{margin-left:20px;color:red;}
+    .form .form-content {margin-top:10px;}
+    .form .form-content .form-span {margin-left:30px;}
+    .form .form-content .percent {color:red;margin-left:10px;}
+</style>
+<div class="header">“精业笃行”市属国有企业人力资源专题培训班</div>
+<div class="activity-title">
+    《国有企业三项制度改革》-陈晓霞
+</div>
+<div class="form">
+    <div class="form-title">1.您对此课程满意吗?<span class="num">30人</span></div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+</div>
+<div class="activity-title">
+    《国有企业三项制度改革》-陈晓霞
+</div>
+<div class="form">
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+</div>
+<div class="activity-title">
+    《国有企业三项制度改革》-陈晓霞
+</div>
+<div class="form">
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+    <div class="form-title">1.您对此课程满意吗?</div>
+    <div class="form-content">
+        <span class="form-span">A.十分满意 <span class="percent">75%</span></span>
+        <span class="form-span">B.基本满意 <span class="percent">20%</span></span>
+        <span class="form-span">C.不满意 <span class="percent">5%</span></span>
+    </div>
+</div>

+ 14 - 0
app/common/model/q/UserFormDataModel.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace app\common\model\q;
+
+use think\Model;
+
+class UserFormDataModel extends Model
+{
+    protected $connection = 'q';
+
+    //设置表名
+    protected $name = 'fm_user_form_data';
+
+}

+ 14 - 0
app/common/model/q/UserFormItemModel.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace app\common\model\q;
+
+use think\Model;
+
+class UserFormItemModel extends Model
+{
+    protected $connection = 'q';
+
+    //设置表名
+    protected $name = 'fm_user_form_item';
+
+}

+ 14 - 0
app/common/model/q/UserFormModel.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace app\common\model\q;
+
+use think\Model;
+
+class UserFormModel extends Model
+{
+    protected $connection = 'q';
+
+    //设置表名
+    protected $name = 'fm_user_form';
+
+}

+ 38 - 0
config/database.php

@@ -58,6 +58,44 @@ return [
             'fields_cache'    => false,
         ],
 
+        'q' => [
+            // 数据库类型
+            'type'            => env('database_q.type', 'mysql'),
+            // 服务器地址
+            'hostname'        => env('database_q.hostname', '127.0.0.1'),
+            // 数据库名
+            'database'        => env('database_q.database', ''),
+            // 用户名
+            'username'        => env('database_q.username', 'root'),
+            // 密码
+            'password'        => env('database_q.password', ''),
+            // 端口
+            'hostport'        => env('database_q.hostport', '3306'),
+            // 数据库连接参数
+            'params'          => [],
+            // 数据库编码默认采用utf8
+            'charset'         => env('database_q.charset', 'utf8mb4'),
+            // 数据库表前缀
+            'prefix'          => env('database_q.prefix', ''),
+
+            // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
+            'deploy'          => 0,
+            // 数据库读写是否分离 主从式有效
+            'rw_separate'     => false,
+            // 读写分离后 主服务器数量
+            'master_num'      => 1,
+            // 指定从服务器序号
+            'slave_no'        => '',
+            // 是否严格检查字段是否存在
+            'fields_strict'   => true,
+            // 是否需要断线重连
+            'break_reconnect' => false,
+            // 监听SQL
+            'trigger_sql'     => env('app_debug', true),
+            // 开启字段缓存
+            'fields_cache'    => false,
+        ],
+
         // 更多的数据库配置信息
     ],
 ];

+ 0 - 8
public/.htaccess

@@ -1,8 +0,0 @@
-<IfModule mod_rewrite.c>
-  Options +FollowSymlinks -Multiviews
-  RewriteEngine On
-
-  RewriteCond %{REQUEST_FILENAME} !-d
-  RewriteCond %{REQUEST_FILENAME} !-f
-  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
-</IfModule>