Jonlin 6 gadi atpakaļ
vecāks
revīzija
d053bada41

+ 165 - 0
application/admin/controller/Material.php

@@ -0,0 +1,165 @@
+<?php
+/**
+ * User: nickbai
+ * Date: 2017/10/23 13:33
+ * Email: 1902822973@qq.com
+ */
+namespace app\admin\controller;
+
+class Material extends Base
+{
+    // 素材列表
+    public function index()
+    {
+        $div = '<div>';
+        if(request()->isAjax()){
+            $param  = input('param.');
+            $limit  = $param['pageSize'];
+            $offset = (($param['pageNumber'] - 1) * $limit);
+            $where = [];
+            if (empty($param['searchText']) === false || intval($param['searchText']) == 0) {
+                if($param['user'] == 'user_account'){
+                    $where['user_account'] = ['like', '%' . $param['searchText'] . '%'];
+                }
+                if($param['user'] == 'user_name'){
+                    $where['user_name'] = ['like', '%' . $param['searchText'] . '%'];
+                }
+                // $where['user_account|user_name|user_job_number|fullname'] = ['like', '%' . $param['searchText'] . '%'];
+            }else{
+                return 1;
+            }
+            $result = db('material')->where($where)->limit($offset, $limit)->order('id', 'desc')->select();
+
+            foreach($result as $key=>$vo){
+                // 优化显示头像
+                $result[$key]['url'] = '<img src="' . $vo['url'] . '" height="40px">';
+
+                $div .= $result[$key]['url'];
+                // 生成操作按钮
+                $result[$key]['operate'] = $this->makeBtn($vo['id']);
+            }
+
+//            $return['total'] = db('users')->where($where)->count();  //总数据
+//            $return['rows'] = $result;
+
+//            return json($return);
+
+        }
+
+        //所有素材
+        $material = db('material')->select();
+        $allmaterial = '';
+        if(!empty($material)){
+            $allmaterial = '<div style="margin-top: 20px;">';
+            for($i=0;$i<count($material);$i++){
+                $allmaterial .= '<div style="width: 33.3%;height:150px;float: left;border: 1px solid red;">';
+                $allmaterial .= '<img src="' . $material[$i]['url'] . '" height="30%">';
+                $allmaterial .= '</div>';
+            }
+            $allmaterial .= '</div>';
+        }
+        $this->assign([
+            'div' => $div,
+            'material' => $material,
+            'allmaterial' => $allmaterial
+        ]);
+
+        return $this->fetch();
+    }
+
+    // 添加素材
+    public function add()
+    {
+        if(request()->isPost()){
+
+            $param = input('post.');
+            unset($param['file']); // 删除layui头像上传隐藏字段
+
+            // 检测图片
+            if(empty($param['material'])){
+                return json(['code' => -1, 'data' => '', 'msg' => '请上传素材']);
+            }
+            $info =array();
+            $info['url'] = $param['material'];
+            $info['name'] = $param['img_name'];
+
+
+            try{
+                db('material')->insert($info);
+            }catch(\Exception $e){
+                return json(['code' => -5, 'data' => '', 'msg' => $e->getMessage()]);
+            }
+
+            return json(['code' => 1, 'data' => 'material/index', 'msg' => '添加素材成功']);
+        }
+
+        $this->assign([
+            'status' => config('kf_status')
+        ]);
+
+        return $this->fetch('add');
+    }
+
+    // 删除素材
+    public function del()
+    {
+        if(request()->isAjax()){
+            $id = input('param.id/d');
+            $material = db('material')->where('id',$id)->find();
+            try{
+                db('material')->where('id', $id)->delete();
+            }catch(\Exception $e){
+                return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
+            }
+
+            return json(['code' => 1, 'data' => url('material/index'), 'msg' => '删除素材成功']);
+        }
+    }
+
+    // 上传图片
+    public function upMaterial()
+    {
+        if(request()->isAjax()) {
+            $file = request()->file('file');
+            if (!empty($file)) {
+                // 移动到框架应用根目录/public/static/material/ 目录下
+                $name = $_FILES['file']['name'];
+                $res = db('material')->where('url','/static/material/'.$name)->find();
+                if(!empty($res)){
+                    return json(['code' => -1, 'data' => '', 'msg' => '素材已存在']);
+                }
+                //中文乱码问题
+                $name = iconv("UTF-8", "gbk",$name);
+                $info = $file->move(ROOT_PATH . 'public' . DS . 'static/material/',$savename = $name,$replace = true);
+                $name = iconv("gbk","UTF-8",$name);
+                if ($info) {
+                    $src = '/static/material' . '/' . $name;
+                    return json(['code' => 0, 'data' => ['src' => $src,'name' => $name], 'msg' => 'ok']);
+                } else {
+                    // 上传失败获取错误信息
+                    return json(['code' => -1, 'data' => '', 'msg' => $file->getError()]);
+                }
+            }
+        }
+    }
+
+    // 生成按钮
+    private function makeBtn($id)
+    {
+//        $operate = '<a href="' . url('users/edituser', ['id' => $id]) . '">';
+//        $operate .= '<button type="button" class="btn btn-primary btn-sm"><i class="fa fa-paste"></i> 编辑</button></a> ';
+
+        $operate = '<a href="javascript:resetPwd(' . $id . ')"><button type="button" class="btn btn-primary btn-sm"><i class="fa fa-paste"></i> 重置密码</button></a>';
+
+        $operate .= '<a style="margin-left:5px;" href="' . url('users/editUser', ['id' => $id]) . '">';
+        $operate .= '<button type="button" class="btn btn-primary btn-sm"><i class="fa fa-paste"></i> 编辑</button></a> ';
+
+        $operate .= '<a style="margin-left:5px;" href="javascript:userDel(' . $id . ')"><button type="button" class="btn btn-danger btn-sm">';
+        $operate .= '<i class="fa fa-trash-o"></i> 删除</button></a> ';
+
+        //$operate .= '<a href="javascript:;">';
+        //$operate .= '<button type="button" class="btn btn-info btn-sm"><i class="fa fa-institution"></i> 详情</button></a>';
+
+        return $operate;
+    }
+}

+ 149 - 0
application/admin/view/material/add.html

@@ -0,0 +1,149 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>添加素材</title>
+    <link rel="shortcut icon" href="favicon.ico">
+    <link href="__CSS__/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+    <link href="__CSS__/font-awesome.min.css?v=4.4.0" rel="stylesheet">
+    <link href="__CSS__/animate.min.css" rel="stylesheet">
+    <link href="__JS__/layui/css/layui.css" rel="stylesheet">
+    <link href="__CSS__/style.min.css?v=4.1.0" rel="stylesheet">
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content animated fadeInRight">
+    <div class="row">
+        <div class="col-sm-8">
+            <div class="ibox float-e-margins">
+                <div class="ibox-title">
+                    <h5>添加素材</h5>
+                </div>
+                <div class="ibox-content">
+                    <form class="form-horizontal m-t layui-form" id="commentForm" method="post" action="{:url('material/add')}">
+
+                        <!--<div class="form-group">-->
+                            <!--<label class="col-sm-3 control-label">客服昵称 <span style="color: red;">*</span>:</label>-->
+                            <!--<div class="input-group col-sm-4">-->
+                                <!--<input id="username" type="text" class="form-control" name="user_name" required="" aria-required="true">-->
+                            <!--</div>-->
+                        <!--</div>-->
+
+                        <div class="form-group layui-form-item form-inline" style="height: 60px;">
+                            <input type="hidden" name="material" id="material"/>
+                            <label class="col-sm-3 control-label">素材:</label>
+                            <div class="input-group col-sm-2">
+                                <button type="button" class="layui-btn layui-btn-small" id="up-material">
+                                    <i class="layui-icon"></i>上传图片</button>
+                            </div>
+                            <span>建议上传180px*180px</span>
+                            <div class="input-group col-sm-3" id="img_material">
+
+                            </div>
+                            <input type="hidden" name="img_name" id="img_name"/>
+                        </div>
+
+                        <div class="form-group">
+                            <div class="col-sm-4 col-sm-offset-6">
+                                <button class="btn btn-primary" type="submit">提交</button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+
+        </div>
+    </div>
+</div>
+<script src="__JS__/jquery.min.js?v=2.1.4"></script>
+<script src="__JS__/bootstrap.min.js?v=3.3.6"></script>
+<script src="__JS__/content.min.js?v=1.0.0"></script>
+<script src="__JS__/plugins/validate/jquery.validate.min.js"></script>
+<script src="__JS__/plugins/validate/messages_zh.min.js"></script>
+<script src="__JS__/plugins/layer/layer.min.js"></script>
+<script src="__JS__/layui/layui.js"></script>
+<script src="__JS__/jquery.form.js"></script>
+<script type="text/javascript">
+
+    layui.use(['form', 'upload'], function(){
+        var form = layui.form;
+        var upload = layui.upload;
+        //执行实例
+        var uploadInst = upload.render({
+            elem: '#up-material' //绑定元素
+            ,url: "{:url('material/upMaterial')}" //上传接口
+            ,exts: 'png|jpg|jpeg|gif'
+            ,done: function(res){
+                //上传完毕回调
+                if(0 == res.code){
+                    $("#img_material").html('<img src="' + res.data.src + '" height="40px">');
+                    $("#material").val(res.data.src);
+                    $("#img_name").val(res.data.name);
+                }else{
+                    layer.msg(res.msg);
+                }
+            }
+            ,error: function(){
+                //请求异常回调
+            }
+        });
+
+        form.on('select(group)', function(value){
+            $("#group_id").val(value.value);
+        });
+    });
+
+    var index = '';
+    function showStart(){
+        index = layer.load(0, {shade: false});
+        return true;
+    }
+
+    function showSuccess(res){
+
+        layer.ready(function(){
+            layer.close(index);
+            if(1 == res.code){
+               layer.alert(res.msg, {title: '友情提示', icon: 1, closeBtn: 0}, function(){
+                   window.location.href = '/admin/material/index.html';
+               });
+            }else if(111 == res.code){
+                window.location.reload();
+            }else{
+                layer.msg(res.msg, {anim: 6});
+            }
+        });
+    }
+
+    $(document).ready(function(){
+        // 添加管理员
+        var options = {
+            beforeSubmit:showStart,
+            success:showSuccess
+        };
+
+        $('#commentForm').submit(function(){
+            $(this).ajaxSubmit(options);
+            return false;
+        });
+    });
+
+    // 表单验证
+    $.validator.setDefaults({
+        highlight: function(e) {
+            $(e).closest(".form-group").removeClass("has-success").addClass("has-error")
+        },
+        success: function(e) {
+            e.closest(".form-group").removeClass("has-error").addClass("has-success")
+        },
+        errorElement: "span",
+        errorPlacement: function(e, r) {
+            e.appendTo(r.is(":radio") || r.is(":checkbox") ? r.parent().parent().parent() : r.parent())
+        },
+        errorClass: "help-block m-b-none",
+        validClass: "help-block m-b-none"
+    });
+
+</script>
+</body>
+</html>

+ 176 - 0
application/admin/view/material/index.html

@@ -0,0 +1,176 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>素材库</title>
+    <link rel="shortcut icon" href="favicon.ico">
+    <link href="__CSS__/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+    <link href="__CSS__/font-awesome.min.css?v=4.4.0" rel="stylesheet">
+    <link href="__CSS__/plugins/bootstrap-table/bootstrap-table.min.css" rel="stylesheet">
+    <link href="__CSS__/animate.min.css" rel="stylesheet">
+    <link href="__CSS__/style.min.css?v=4.1.0" rel="stylesheet">
+    <link href="__JS__/layui/css/myLayui.css" rel="stylesheet">
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content animated fadeInRight">
+    <!-- Panel Other -->
+    <div class="ibox float-e-margins">
+        <div class="ibox-title">
+            <h5>素材库</h5>
+        </div>
+        <div class="ibox-content">
+            <a href="/admin/material/add.html">
+                <button class="btn btn-primary" type="button" style="margin-top:5px"><strong>新增素材</strong>
+                </button>
+            </a>
+            <!--搜索框开始-->
+            <form id='commentForm' role="form" method="post" class="form-inline pull-right">
+                <div class="content clearfix m-b">
+                    <div class="form-group">
+                        <div class="input-group col-sm-4 layui-form" style="width: 70px;">
+                            <input type="hidden" id="user" value="user_account"/>
+                            <select lay-verify="required" lay-filter="user">
+                                <option value="user_account">账号</option>
+                                <option value="user_name">名称</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <!--<label>客服名:</label>-->
+                        <input type="text" class="form-control" id="username" name="user_name">
+                    </div>
+                    <div class="form-group">
+                        <button class="btn btn-primary" type="button" style="margin-top:5px" id="search"><strong>搜 索</strong>
+                        </button>
+                    </div>
+                </div>
+            </form>
+            <!--搜索框结束-->
+            <!--<div style="margin-bottom: 20px;">{$allmaterial}1</div>-->
+            <div style="margin-top: 20px;">
+                {volist name="material" id="vo"}
+                <div style="width: 23%;height:120px;float: left;text-align: center;background-color: #DCDCDC;margin: 1%;position: relative;">
+                    <span class="layui-layer-setwin" style="right: 8px;top:8px;"><a class="layui-layer-ico layui-layer-close layui-layer-close1" href="javascript:Del('{$vo.id}')"></a></span>
+                    <div style="height:23px;line-height: 23px;">{$vo.name}</div>
+                    <img src="{$vo.url}"  style="margin-top: 0px;height: 90px;">
+                </div>
+                {/volist}
+            </div>
+            <div style="width: 10%;color: white;">1</div>
+
+            <div class="example-wrap">
+                <!--{$allmaterial}-->
+                <!--<div class="example">-->
+                    <!--<table id="cusTable">-->
+                        <!--<thead>-->
+                        <!--<th data-field="user_account">客服账号</th>-->
+                        <!--<th data-field="user_name">客服昵称</th>-->
+                        <!--<th data-field="user_job_number">客服工号</th>-->
+                        <!--<th data-field="user_email">客服邮箱</th>-->
+                        <!--<th data-field="user_avatar">客服头像</th>-->
+                        <!--<th data-field="phone">客服电话</th>-->
+                        <!--<th data-field="fullname">真实姓名</th>-->
+                        <!--<th data-field="operate">操作</th>-->
+                        <!--</thead>-->
+                    <!--</table>-->
+                <!--</div>-->
+            </div>
+            <!-- End Example Pagination -->
+        </div>
+    </div>
+</div>
+<!-- End Panel Other -->
+<script src="__JS__/jquery.min.js?v=2.1.4"></script>
+<script src="__JS__/bootstrap.min.js?v=3.3.6"></script>
+<script src="__JS__/content.min.js?v=1.0.0"></script>
+<script src="__JS__/plugins/bootstrap-table/bootstrap-table.min.js"></script>
+<script src="__JS__/plugins/bootstrap-table/bootstrap-table-mobile.min.js"></script>
+<script src="__JS__/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
+<script src="__JS__/plugins/layer/layer.min.js"></script>
+<script src="__JS__/layui/layui.js"></script>
+<script type="text/javascript">
+
+    layui.use(['form', 'upload'], function(){
+        var form = layui.form;
+
+        form.on('select(user)', function(value){
+            $("#user").val(value.value);
+            onSearch()
+        });
+
+    });
+
+</script>
+<script type="text/javascript">
+    function initTable() {
+        //先销毁表格
+        $('#cusTable').bootstrapTable('destroy');
+        //初始化表格,动态从服务器加载数据
+        $("#cusTable").bootstrapTable({
+            method: "get",  //使用get请求到服务器获取数据
+            url: "{:url('Material/index')}", //获取数据的地址
+            striped: true,  //表格显示条纹
+            pagination: true, //启动分页
+            pageSize: 50,  //每页显示的记录数
+            pageNumber:1, //当前第几页
+            pageList: [20, 50],  //记录数可选列表
+            sidePagination: "server", //表示服务端请求
+            paginationFirstText: "首页",
+            paginationPreText: "上一页",
+            paginationNextText: "下一页",
+            paginationLastText: "尾页",
+            queryParamsType : "undefined",
+            queryParams: function queryParams(params) {   //设置查询参数
+                var param = {
+                    pageNumber: params.pageNumber,
+                    pageSize: params.pageSize,
+                    searchText:$('#username').val(),
+                    user:$('#user').val()
+                };
+                return param;
+            },
+            onLoadSuccess: function(res){  //加载成功时执行
+                if(111 == res.code){
+                    window.location.reload();
+                }
+                layer.msg("加载成功", {time : 1000});
+            },
+            onLoadError: function(){  //加载失败时执行
+                layer.msg("加载数据失败");
+            }
+        });
+    }
+
+    $(document).ready(function () {
+        //调用函数,初始化表格
+        initTable();
+
+        //当点击查询按钮的时候执行
+        $("#search").bind("click", initTable);
+    });
+
+    function Del(id){
+        layer.confirm('确认删除此图片?', {icon: 3, title:'提示'}, function(index){
+            //do something
+            $.getJSON("{:url('material/del')}", {'id' : id}, function(res){
+                if(1 == res.code){
+                    layer.alert(res.msg, {title: '友情提示', icon: 1, closeBtn: 0}, function(){
+                        window.location.href = '/admin/material/index.html';
+                    });
+                }else if(111 == res.code){
+                    window.location.reload();
+                    window.location.href = '/admin/material/index.html';
+                }else{
+                    layer.alert(res.msg, {title: '友情提示', icon: 2});
+                    window.location.href = '/admin/material/index.html';
+                }
+            });
+
+            layer.close(index);
+        })
+
+    }
+</script>
+</body>
+</html>

+ 2 - 0
application/admin/view/users/edituser.html

@@ -28,12 +28,14 @@
                             <div class="input-group col-sm-2">
                                 <button type="button" class="layui-btn layui-btn-small" id="up-avatar">
                                     <i class="layui-icon"></i>上传图片</button>
+
                             </div>
                             <span>建议上传180px*180px</span>
                             <div class="input-group col-sm-3" id="avatar">
                                 <img src="{$info['user_avatar']}" height="40px"/>
                             </div>
                         </div>
+
                         <div class="form-group">
                             <label class="col-sm-3 control-label">客服账号:</label>
                             <div class="input-group col-sm-4">