544782275@qq.com 4 years ago
parent
commit
7d1e2e9e67

+ 169 - 44
app/admin/controller/School.php

@@ -3,9 +3,9 @@
 // +----------------------------------------------------------------------
 // | ThinkAdmin
 // +----------------------------------------------------------------------
-// | 版权所有 2014~2019 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
+// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
 // +----------------------------------------------------------------------
-// | 官方网站: http://demo.thinkadmin.top
+// | 官方网站: https://thinkadmin.top
 // +----------------------------------------------------------------------
 // | 开源协议 ( https://mit-license.org )
 // +----------------------------------------------------------------------
@@ -13,99 +13,224 @@
 // | github 代码仓库:https://github.com/zoujingli/ThinkAdmin
 // +----------------------------------------------------------------------
 
-namespace app\admin\controller;
+namespace app\county\controller;
 
 use think\admin\Controller;
 
 /**
- * 学校信息管理
- * Class Worker
- * @package app\store\controller
+ * 学校管理
+ * Class User
+ * @package app\admin\controller
  */
 class School extends Controller
 {
+
     /**
      * 绑定数据表
      * @var string
      */
-    protected $table = 'School2';
+    private $table = 'School2';
 
     /**
-     * 学校信息管理
+     * 学校管理
      * @auth true
      * @menu true
-     * @throws \think\Exception
      * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
      * @throws \think\db\exception\ModelNotFoundException
-     * @throws \think\exception\DbException
-     * @throws \think\exception\PDOException
      */
     public function index()
     {
-        $this->title = '学校信息管理';
-        $query = $this->_query($this->table)->where('is_deleted',0)->like('phone')->like('name')->equal('type,county_id');
-        $query->order('id desc')->page();
+        $this->title = '学校管理';
+        $query = $this->_query($this->table);
+        $query->equal('status')->dateBetween('login_at,create_at');
+        $query->like('name,contact_phone#phone,contact_mail#mail');
+        // 加载对应数据列表
+        $this->type = input('type', 'all');
+        if ($this->type === 'all') {
+            $query->where(['is_deleted' => 0, 'status' => 1]);
+        } elseif ($this->type = 'recycle') {
+            $query->where(['is_deleted' => 0, 'status' => 0]);
+        }
+        // 列表排序并显示
+        $query->order('sort desc,id desc')->page();
     }
+
     /**
-     * 数据列表处理
-     * @param array $data
+     * 添加学校
+     * @auth true
      * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
      * @throws \think\db\exception\ModelNotFoundException
-     * @throws \think\exception\DbException
      */
-    protected function _index_page_filter(&$data)
+    public function add()
     {
-
+        $this->_applyFormToken();
+        $this->_form($this->table, 'form');
     }
-    protected function _form_filter(&$data){
-        if($this->request->isGet()) {
-
-        }elseif ($this->request->isPost()){
 
-        }
-    }
     /**
      * 编辑学校
      * @auth true
-     * @throws \think\Exception
      * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
      * @throws \think\db\exception\ModelNotFoundException
-     * @throws \think\exception\DbException
-     * @throws \think\exception\PDOException
      */
     public function edit()
     {
-        $this->title = '编辑';
+        $this->_applyFormToken();
         $this->_form($this->table, 'form');
     }
+
     /**
-     * 删除学校
+     * 修改用户密码
      * @auth true
-     * @throws \think\Exception
-     * @throws \think\exception\PDOException
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
      */
-    public function remove()
+    public function pass()
     {
-        $this->_save($this->table, ['is_deleted' => '1']);
+        $this->_applyFormToken();
+        if ($this->request->isGet()) {
+            $this->verify = false;
+            $this->_form($this->table, 'pass');
+        } else {
+            $data = $this->_vali([
+                'id.require'                  => '用户ID不能为空!',
+                'password.require'            => '登录密码不能为空!',
+                'repassword.require'          => '重复密码不能为空!',
+                'repassword.confirm:password' => '两次输入的密码不一致!',
+            ]);
+            if (data_save('system_user', ['id' => $data['id'], 'password' => md5($data['password'])], 'id')) {
+                sysoplog('学校管理', "修改用户[{$data['id']}]密码成功");
+                $this->success('密码修改成功,请使用新密码登录!', '');
+            } else {
+                $this->error('密码修改失败,请稍候再试!');
+            }
+        }
     }
+
     /**
-     * 禁用学校
+     * 表单数据处理
+     * @param array $data
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+    protected function _form_filter(array &$data)
+    {
+        if ($this->request->isPost()) {
+            if (isset($data['id']) && $data['id'] > 0) {
+                unset($data['username']);
+            } else {
+                // 检查登录账号是否出现重复
+                if (empty($data['username'])) $this->error('登录账号不能为空!');
+                $where = ['username' => $data['username'], 'is_deleted' => 0];
+                if ($this->app->db->name('system_user')->where($where)->count() > 0) {
+                    $this->error("账号已经存在,请使用其它账号!");
+                }
+                // 新添加的用户密码与账号相同
+                // $data['password'] = md5($data['username']);
+            }
+            // 账号权限绑定处理
+            // $data['authorize'] = arr2str($data['authorize'] ?? []);
+        } else {
+            /*$data['authorize'] = str2arr($data['authorize'] ?? '');
+            $query = $this->app->db->name('SystemAuth')->where(['status' => 1]);
+            $this->authorizes = $query->order('sort desc,id desc')->select()->toArray();*/
+        }
+    }
+
+    /**
+     * 修改用户状态
      * @auth true
-     * @throws \think\Exception
-     * @throws \think\exception\PDOException
+     * @throws \think\db\exception\DbException
      */
-    public function forbid()
+    public function state()
     {
-        $this->_save($this->table, ['status' => '0']);
+        $this->_checkInput();
+        $this->_applyFormToken();
+        $this->_save($this->table, $this->_vali([
+            'status.in:0,1'  => '状态值范围异常!',
+            'status.require' => '状态值不能为空!',
+        ]));
     }
+
     /**
-     * 启用学校
+     * 删除学校
      * @auth true
-     * @throws \think\Exception
-     * @throws \think\exception\PDOException
+     * @throws \think\db\exception\DbException
+     */
+    public function remove()
+    {
+        $this->_checkInput();
+        $this->_applyFormToken();
+        $this->_delete($this->table);
+    }
+
+    /**
+     * 检查输入变量
+     */
+    private function _checkInput()
+    {
+        if (in_array('10000', str2arr(input('id', '')))) {
+            $this->error('系统超级账号禁止删除!');
+        }
+    }
+
+    /**
+     * 表单结果处理
+     * @param bool $result
+     */
+    protected function _add_form_result(bool $result)
+    {
+        if ($result) {
+            $id = $this->app->db->name($this->table)->getLastInsID();
+            $res=$this->app->db->name($this->table)->where('id',$id)->find();
+            $data['username']=$res['username'];
+            $data['authorize']=1;
+            $data['nickname']='学校管理员';
+            $data['is_shcool']=1;
+            $admin_id=$this->app->db->name('system_user')->insertGetId($data);
+            $this->app->db->name($this->table)->where('id',$id)->update(['admin_id'=>$admin_id]);
+        }
+    }
+
+    /**
+     * 表单结果处理
+     * @param boolean $result
+     */
+    protected function _edit_form_result(bool $result)
+    {
+        if ($result) {
+            $id = input('id') ?: 0;
+            sysoplog('学校管理', "修改学校[{$id}]成功");
+        }
+    }
+
+    /**
+     * 状态结果处理
+     * @param boolean $result
      */
-    public function resume()
+    protected function _state_save_result(bool $result)
     {
-        $this->_save($this->table, ['status' => '1']);
+        if ($result) {
+            [$id, $state] = [input('id'), input('status')];
+            sysoplog('学校管理', ($state ? '激活' : '禁用') . "学校[{$id}]成功");
+        }
     }
+
+    /**
+     * 删除结果处理
+     * @param boolean $result
+     */
+    protected function _remove_delete_result(bool $result)
+    {
+        if ($result) {
+            $id = input('id') ?: 0;
+            sysoplog('学校管理', "删除学校[{$id}]成功");
+        }
+    }
+
 }

+ 64 - 219
app/admin/view/school/form.html

@@ -1,161 +1,64 @@
-
 <form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post" autocomplete="off">
-    <div class="layui-card-body">
-        {if $vo.check_status != 0}
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">工号</label>
-            <div class="layui-input-block">
-                <input name="job_num" value='{$vo.job_num|default=""}' required readonly="readonly" placeholder="请输入工号" class="layui-input">
-            </div>
-        </div>
-        {/if}
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">姓名</label>
-            <div class="layui-input-block">
-                <input name="name" value='{$vo.name|default=""}' required placeholder="请输入姓名" class="layui-input">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">手机号</label>
-            <div class="layui-input-block">
-                <input name="phone" value='{$vo.phone|default=""}'  placeholder="请输入手机号" class="layui-input">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">可用余额</label>
-            <div class="layui-input-block">
-                <input name="balance" value='{$vo.balance|default=""}' readonly="readonly" required placeholder="请输入可用余额" class="layui-input">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">共获余额</label>
-            <div class="layui-input-block">
-                <input name="balance_all" value='{$vo.balance_all|default=""}' readonly="readonly" required placeholder="请输入共获余额" class="layui-input">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">工程师类型</label>
-            <div class="layui-input-block">
-                <select class="layui-select" name="type">
-                    {foreach ['1'=>'平台工程师','2'=>'个人工程师'] as $k=>$v}
-                    <!--{if isset($vo.type) && $vo.type==$k}-->
-                    <option selected value="{$k}">{$v}</option>
-                    <!--{else}-->
-                    <option value="{$k}">{$v}</option>
-                    <!--{/if}-->
-                    {/foreach}
-                </select>
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">保证金</label>
-            <div class="layui-input-block">
-                <input name="deposit" value='{$vo.deposit|default=""}' required placeholder="请输入保证金" class="layui-input">
-            </div>
-        </div>
-        {if $vo.check_status != 0}
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">服务类型</label>
-            <div class="layui-input-block">
-                <input type="hidden" name="service_cate_id" value="{$vo.service_cate_id}">
-                <input name="service_cate" value='{$vo.service_cate|default=""}' required readonly="readonly" class="layui-input">
-            </div>
-        </div>
+    <div class="layui-card-body padding-left-40">
+        <div class="layui-row layui-col-space15">
 
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">服务范围</label>
-            <div class="layui-input-block" >
-                <div class="color-blue" style="line-height:38px;">{$vo.province|default='--'} {$vo.city|default=''} {$vo.county|default=''}</div>
-                <div class="layui-row">
-                    <div class="layui-col-xs4 margin-right-5" style="width: 120px;"><select class="layui-select block full-width" lay-ignore name="province"></select></div>
-                    <div class="layui-col-xs4 margin-right-5" style="width: 120px;"><select class="layui-select block full-width" lay-ignore name="city"></select></div>
-                    <div class="layui-col-xs4 margin-right-5" style="width: 120px;"><select class="layui-select block full-width" lay-ignore name="county"></select></div>
-                </div>
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">现居住地址</label>
-            <div class="layui-input-block">
-                <input name="address" value='{$vo.address|default=""}' placeholder="现居住地址" class="layui-input">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">银行卡卡号</label>
-            <div class="layui-input-block">
-                <input name="bank_card_num" value='{$vo.bank_card_num|default=""}' placeholder="请输入银行卡卡号" class="layui-input">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">开户行</label>
-            <div class="layui-input-block">
-                <input name="open_bank" value='{$vo.open_bank|default=""}' placeholder="开户行" class="layui-input">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">身份证号</label>
-            <div class="layui-input-block">
-                <input name="id_card" value='{$vo.id_card|default=""}' placeholder="请输入身份证号" class="layui-input">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">头像</label>
-            <div class="layui-input-block">
-                <input name="headimg" type="hidden" value="{$vo.headimg|default=''}">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">身份证正面照</label>
-            <div class="layui-input-block">
-                <input name="positive_card" type="hidden" value="{$vo.positive_card|default=''}">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">身份证背面照</label>
-            <div class="layui-input-block">
-                <input name="back_card" type="hidden" value="{$vo.back_card|default=''}">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">健康证</label>
-            <div class="layui-input-block">
-                <input name="health_certificate" type="hidden" value="{$vo.health_certificate|default=''}">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">专业证书</label>
-            <div class="layui-input-block">
-                <input name="major_certificate" type="hidden" value="{$vo.major_certificate|default=''}">
-            </div>
-        </div>
-        {/if}
-        {if $vo.check_status == 1}
-        <div class="layui-form-item">
-            <label class="layui-form-label label-required">工程师信息审核</label>
-            <div class="layui-input-block">
-                <select class="layui-select" lay-filter="check_status" name="check_status">
-                    {foreach ['2'=>'审核通过','3'=>'审核失败'] as $k=>$v}
-                    <!--{if isset($vo.check_status) && $vo.check_status==$k}-->
-                    <option selected value="{$k}">{$v}</option>
-                    <!--{else}-->
-                    <option value="{$k}">{$v}</option>
-                    <!--{/if}-->
-                    {/foreach}
-                </select>
+
+            <div class="layui-col-xs5">
+                <label class="block relative">
+                    <span class="color-green font-w7">学校名称</span>
+                    <span class="color-desc margin-left-5">Nick Name</span>
+                    <input name="name" value='{$vo.name|default=""}' required placeholder="请输入学校名称" class="layui-input">
+                    <span class="help-block">用户显示的账号别名,请尽量保持不要重复</span>
+                </label>
+            </div>
+            <div class="layui-col-xs5">
+                <label class="block relative">
+                    <span class="color-green font-w7">登录账号</span>
+                    <span class="color-desc margin-left-5">User Name</span>
+                    {if isset($vo) and isset($vo.contact_mail)}
+                    <input disabled value='{$vo.username|default=""}' class="layui-input layui-bg-gray">
+                    {else}
+                    <input name="username" value='{$vo.username|default=""}' required placeholder="请输入登录账号" class="layui-input">
+                    {/if}
+                    <span class="help-block">登录账号不能重复,账号创建后不能再次修改</span>
+                </label>
             </div>
+
         </div>
-        {/if}
-        {if $vo.check_status == 3 && isset($vo.refuse_reason)}
-        <div class="layui-form-item refuse_reason">
-            <label class="layui-form-label label-required">审核失败原因</label>
-            <div class="layui-input-block">
-                <input name="refuse_reason" value='{$vo.refuse_reason|default=""}' readonly="readonly" class="layui-input">
+
+        <div class="hr-line-dashed margin-top-10 margin-bottom-10"></div>
+        <div class="layui-row layui-col-space15">
+            <div class="layui-col-xs4">
+                <label class="relative block">
+                    <span class="color-green font-w7">联系邮箱</span><span class="color-desc margin-left-5">Contact Email</span>
+                    <input name="contact_mail" pattern="^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$" value='{$vo.contact_mail|default=""}' placeholder="请输入联系电子邮箱" class="layui-input">
+                    <span class="color-desc">可选,请填写常用的电子邮箱</span>
+                </label>
+            </div>
+            <div class="layui-col-xs4">
+                <label class="relative block">
+                    <span class="color-green font-w7">联系手机</span><span class="color-desc margin-left-5">Contact Mobile</span>
+                    <input type="tel" maxlength="11" name="contact_phone" value='{$vo.contact_phone|default=""}' pattern="^1[3-9][0-9]{9}$" placeholder="请输入用户联系手机" class="layui-input">
+                    <span class="color-desc">可选,请填写常用的联系手机号</span>
+                </label>
+            </div>
+            <div class="layui-col-xs4">
+                <label class="relative block">
+                    <span class="color-green font-w7">联系QQ</span><span class="color-desc margin-left-5">Contact QQ</span>
+                    <input name="contact_qq" pattern="^\d{6,}$" value='{$vo.contact_qq|default=""}' placeholder="请输入常用的联系QQ" class="layui-input">
+                    <span class="color-desc">可选,请填写常用的联系QQ号</span>
+                </label>
             </div>
         </div>
-        {/if}
-        <div class="layui-form-item refuse_reason" style="display: none">
-            <label class="layui-form-label label-required">审核失败原因</label>
-            <div class="layui-input-block">
-                <input name="refuse_reason" value='{$vo.refuse_reason|default=""}' placeholder="审核失败原因" class="layui-input">
+
+
+        <div class="layui-col-xs12 relative block">
+            <span class="color-green font-w7 label-required-prev">所在地</span>
+            <span class="color-desc margin-left-5">(原地点:{$vo.province|default='--'} - {$vo.city|default=''} - {$vo.area|default=''} )</span>
+            <div class="layui-row layui-col-space10">
+                <label class="layui-col-xs4"><select class="layui-select block full-width" lay-ignore name="province"></select></label>
+                <label class="layui-col-xs4"><select class="layui-select block full-width" lay-ignore name="city"></select></label>
+                <label class="layui-col-xs4"><select class="layui-select block full-width" lay-ignore name="area"></select></label>
             </div>
         </div>
 
@@ -166,73 +69,15 @@
             <button class="layui-btn" type='submit'>保存数据</button>
             <button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消编辑</button>
         </div>
+    </div>
 
-        <script>
-            window.form.render();
-
-            $('[name="headimg"]').uploadOneImage();
-            $('[name="positive_card"]').uploadOneImage();
-            $('[name="back_card"]').uploadOneImage();
-            $('[name="health_certificate"]').uploadOneImage();
-            $('[name="major_certificate"]').uploadOneImage();
-
-            $(function () {
-                var tagList = "";
-                var thisTag = [];
-                var id = "{$vo.id|default=0}";
-                $.ajax({
-                    url: "/store/worker/getTatInfo",
-                    async:false,
-                    data:{id:id},
-                    success: function(res){
-                        thisTag = res.data.tag;
-                        tagList = res.data.tagList;
-                    }});
-                layui.config({
-                    base : './'
-                }).extend({
-                    selectN: '/static/plugs/layui/layui_extends/selectN',
-                    selectM: '/static/plugs/layui/layui_extends/selectM',
-                }).use(['layer','form','jquery','selectN','selectM'],function(){
-                    layui.selectM({
-                        //元素容器【必填】
-                        elem: '#tag1'
-                        //候选数据【必填】
-                        ,data: tagList
-                        //默认值
-                        ,selected: thisTag
-                        //最多选中个数,默认5
-                        ,max : 100
-                        //input的name 不设置与选择器相同(去#.)
-                        ,name: 'tag'
-                        //值的分隔符
-                        ,delimiter: ','
-                        //候选项数据的键名
-                        ,field: {idName:'id',titleName:'title'}
-
-                    });
-                });
-
-            })
-
-            //日期时间范围选择
-            laydate.render({
-                elem: '#seckill-time'
-                ,type: 'datetime'
-                ,range: "~" //或 range: '~' 来自定义分割字符
-            });
-
-            require(['ckeditor', 'angular','pcasunzips'], function () {
-                new PCAS("province", "city", "county", '{$vo.province|default=""}', '{$vo.city|default=""}', '{$vo.county|default=""}');
+    <script>
+        require(['pcasunzips'], function () {
+            (function (province, city, area) {
+                new PCAS("province", "city", "area", province, city, area);
                 window.form.render();
-            });
-            form.on('select(check_status)', function(data){
-                if(data.value == 2){
-                    $('.refuse_reason').hide();
-                }else{
-                    $('.refuse_reason').show();
-                }
-            });
-        </script>
+            })('{$vo.province|default=""}', '{$vo.city|default=""}', '{$vo.area|default=""}');
+        });
 
-</form>
+    </script>
+</form>

+ 98 - 58
app/admin/view/school/index.html

@@ -1,64 +1,104 @@
 {extend name='main'}
 
-{block name="content"}
-<div class="think-box-shadow">
-    {include file='school/index_search'}
-    <table class="layui-table margin-top-10" lay-skin="line">
-        {notempty name='list'}
-        <thead>
-        <tr>
-            <th class='text-left nowrap'>学校代码</th>
-            <th class='text-left nowrap'>学校名称</th>
-            <th class='text-left nowrap'>行政负责人姓名</th>
-            <th class='text-left nowrap'>业务负责人姓名</th>
-            <th class='text-left nowrap'>业务负责人电话</th>
-            <th class='text-left nowrap'>学校地址</th>
-            <th class='text-left nowrap'>办公电话</th>
-            <th class='text-left nowrap'>所在地区</th>
-            <th class='text-left nowrap'>状态</th>
-            <th class="text-left">操作</th>
-        </tr>
-        </thead>
-        {/notempty}
-        <tbody>
-        {foreach $list as $key=>$vo}
-        <tr>
-            <td><div class="inline-block">{$vo.school_code|default='--'}</div></td>
-            <td><div class="inline-block">{$vo.name|default='--'}</div></td>
-            <td><div class="inline-block">{$vo.name|default='--'}</div></td>
-            <td class='text-left'>{$vo.xz_leader_name|default='--'}</td>
-            <td class='text-left'>{$vo.yw_leader_name|default='不在线'}</td>
-            <td class='text-left'>{$vo.yw_leader_phone|default='0'}</td>
-            <td class='text-left'>{$vo.address|default='0'}</td>
-            <td class='text-left'>{$vo.office_phone|default='--'}</td>
-            <td class='text-left'>{$vo.szd_province|default='--'}</td>
-            <td class='text-left nowrap'>
-                {eq name='vo.status' value='0'}
-                <span class="layui-badge">已禁用</span>{else}<span class="layui-badge layui-bg-green">使用中</span>
-                {/eq}
-            </td>
-            <td class='text-left nowrap'>
-                <div style="margin-bottom: 10px">
-                {if auth("admin/school/edit")}
-                <a data-title="编辑" class="layui-btn layui-btn-sm" data-modal='{:url("edit")}?id={$vo.id}'>编 辑</a>
-                {/if}
-                <a data-title="学生列表" class="layui-btn layui-btn-sm layui-btn-normal" data-open='{:url("admin/student/index")}?school_id={$vo.id}'>学生列表</a>
+{block name="button"}
+{if isset($type) and $type eq 'all'}
+<!--{if auth("add")}-->
+<button data-modal='{:url("add")}' data-title="添加学校" class='layui-btn layui-btn-sm layui-btn-primary'>添加学校</button>
+<!--{/if}-->
+<!--{if auth("state")}-->
+<a data-confirm="确定要启用该学校吗?" data-action="{:url('state')}" data-rule="id#{key};status#0" data-csrf="{:systoken('state')}" class='layui-btn layui-btn-sm layui-btn-primary'>批量禁用</a>
+<!--{/if}-->
+{else}
+<!--{if auth("state")}-->
+<a data-confirm="确定要恢复这些账号吗?" data-action="{:url('state')}" data-rule="id#{key};status#1" data-csrf="{:systoken('state')}" class='layui-btn layui-btn-sm layui-btn-primary'>批量恢复</a>
+<!--{/if}-->
+<!--{if auth("remove")}-->
+<a data-confirm="确定要永久删除这些账号吗?" data-action='{:url("remove")}' data-rule="id#{key}" data-csrf="{:systoken('remove')}" class='layui-btn layui-btn-sm layui-btn-primary'>批量删除</a>
+<!--{/if}-->
+{/if}
+{/block}
 
-                <a data-title="教师列表" class="layui-btn layui-btn-sm layui-btn-normal" data-open='{:url("admin/teacher/index")}?school_id={$vo.id}'>教师列表</a>
+{block name="content"}
+<div class="layui-tab layui-tab-card think-bg-white table-block">
+    <ul class="layui-tab-title">
+        {foreach ['all'=>'系统学校','recycle'=>'回 收 站'] as $k=>$v}
+        {if isset($type) and $type eq $k}
+        <li data-open="{:url('index')}?type={$k}" class="layui-this">{$v}</li>
+        {else}
+        <li data-open="{:url('index')}?type={$k}">{$v}</li>
+        {/if}{/foreach}
+    </ul>
+    <div class="layui-tab-content think-box-shadow table-block table-block">
+        {include file='school/index_search'}
+        <table class="layui-table margin-top-10" lay-skin="line">
+            {notempty name='list'}
+            <thead>
+            <tr>
+                <th class='list-table-check-td think-checkbox'>
+                    <label><input data-auto-none data-check-target='.list-check-box' type='checkbox'></label>
+                </th>
+                <th class='list-table-sort-td'>
+                    <button type="button" data-reload class="layui-btn layui-btn-xs">刷 新</button>
+                </th>
+                <th class='text-left nowrap'></th>
+                <th class='text-left nowrap'></th>
+                <th class='text-left nowrap'></th>
+                <th></th>
+            </tr>
+            </thead>
+            {/notempty}
+            <tbody>
+            {foreach $list as $key=>$vo}
+            <tr data-dbclick>
+                <td class='list-table-check-td think-checkbox'>
+                    <label><input class="list-check-box" value='{$vo.id}' type='checkbox'></label>
+                </td>
+                <td class='list-table-sort-td'>
+                    <label><input data-action-blur="{:request()->url()}" data-value="id#{$vo.id};action#sort;sort#{value}" data-loading="false" value="{$vo.sort}" class="list-sort-input"></label>
+                </td>
+                <td class='text-left nowrap'>
+                    <div class="headimg" data-tips-image data-lazy-src="{$vo.headimg|default=''}"></div>
+                    <div class="inline-block sub-span-blue">
+                        登录账号:<span><b>{$vo.username|default=''}</b></span><br>
+                        学校昵称:<span><b>{$vo.name|default='-'}</b></span><br>
+                    </div>
+                </td>
+                <td class='text-left nowrap'>
+                    联系手机:<span class="color-blue">{$vo.contact_phone|default='<i class="color-desc">未配置手机</i>'|raw}</span><br>
+                    联系邮箱:<span class="color-blue">{$vo.contact_mail|default='<i class="color-desc">未配置邮箱</i>'|raw}</span><br>
+                </td>
+                <td class='text-left nowrap'>
+                    创建时间:<span class="color-blue">{$vo.create_at|format_datetime}</span>( {eq name='vo.status' value='0'}<span class="color-red">已禁用</span>{else}<span class="color-green">已激活</span>{/eq} )<br>
 
-                {if $vo.status eq 1 and auth("forbid")}
-                    <a class="layui-btn layui-btn-sm layui-btn-warm" data-action="{:url('forbid')}" data-value="id#{$vo.id};status#0">禁 用</a>
-                {elseif auth("resume")}
-                    <a class="layui-btn layui-btn-sm layui-btn-warm" data-action="{:url('resume')}" data-value="id#{$vo.id};status#1">启 用</a>
-                {/if}
-                {if auth("admin/school/remove")}
-                <a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要删除该工程师吗?" data-action="{:url('remove')}" data-value="id#{$vo.id}">删 除</a>
-                {/if}
-            </td>
-        </tr>
-        {/foreach}
-        </tbody>
-    </table>
-    {empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
+                </td>
+                <td class='text-left nowrap'>
+                    {if isset($type) and $type eq 'all'}
+                    <!--{if auth("pass")}-->
+                    <a class="layui-btn layui-btn-sm layui-btn-normal" data-title="设置密码" data-modal='{:url("pass")}?id={$vo.admin_id}'>密 码</a>
+                    <!--{/if}-->
+                    <!--{if auth("edit")}-->
+                    <a data-dbclick class="layui-btn layui-btn-sm" data-title="编辑学校" data-modal='{:url("edit")}?id={$vo.id}'>编 辑</a>
+                    <!--{/if}-->
+                    <!--{if auth("state") and $vo.status eq 1}-->
+                    <a class="layui-btn layui-btn-sm layui-btn-warm" data-confirm="确定要禁用该禁用账号吗?" data-action="{:url('state')}" data-value="id#{$vo.id};status#0" data-csrf="{:systoken('state')}">禁 用</a>
+                    <!--{/if}-->
+                    {else}
+                    <!--{if auth("edit")}-->
+                    <a data-dbclick class="layui-btn layui-btn-sm" data-title="编辑学校" data-modal='{:url("edit")}?id={$vo.id}'>编 辑</a>
+                    <!--{/if}-->
+                    <!--{if auth("state") and $vo.status eq 0}-->
+                    <a class="layui-btn layui-btn-sm layui-btn-warm" data-confirm="确定要恢复该账号吗?" data-action="{:url('state')}" data-value="id#{$vo.id};status#1" data-csrf="{:systoken('state')}">恢 复</a>
+                    <!--{/if}-->
+                    <!--{if auth("remove")}-->
+                    <a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要永久删除此账号吗?" data-action="{:url('remove')}" data-value="id#{$vo.id}" data-csrf="{:systoken('remove')}">删 除</a>
+                    <!--{/if}-->
+                    {/if}
+                </td>
+            </tr>
+            {/foreach}
+            </tbody>
+        </table>
+        {empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
+    </div>
 </div>
 {/block}

+ 7 - 36
app/admin/view/school/index_search.html

@@ -3,47 +3,18 @@
     <form class="layui-form layui-form-pane form-search" action="{:request()->url()}" onsubmit="return false" method="get" autocomplete="off">
         <div class="layui-form-item layui-inline">
             <label class="layui-form-label">学校名称</label>
-            <div class="layui-input-inline">
-                <input name="name" value="{$Think.get.name|default=''}" placeholder="请输入学校名称" class="layui-input">
-            </div>
+            <label class="layui-input-inline">
+                <input name="name" value="{:input('get.name')}" placeholder="请输入学校名称" class="layui-input">
+            </label>
         </div>
-        <!--<div class="layui-form-item layui-inline">
-            <label class="layui-form-label">归属代理</label>
-            <div class="layui-input-inline">
-                <select class="layui-select" name="agency_id">
-                    <option value="">- 全部代理 -</option>
-                    {foreach $agency_list as $k=>$v}
-                    &lt;!&ndash;{eq name='Think.get.agency_id' value='$k.""'}&ndash;&gt;
-                    <option selected value="{$k}">{$v}</option>
-                    &lt;!&ndash;{else}&ndash;&gt;
-                    <option value="{$k}">{$v}</option>
-                    &lt;!&ndash;{/eq}&ndash;&gt;
-                    {/foreach}
-                </select>
-            </div>
-        </div>-->
 
-        <!--<div class="layui-form-item layui-inline">
-            <label class="layui-form-label">工程师类型</label>
-            <div class="layui-input-inline">
-                <select class="layui-select" name="type">
-                    {foreach [''=>'- 全部工程师 -','1'=>'平台工程师','2'=>'个人工程师'] as $k=>$v}
-                    &lt;!&ndash;{eq name='Think.get.type' value='$k.""'}&ndash;&gt;
-                    <option selected value="{$k}">{$v}</option>
-                    &lt;!&ndash;{else}&ndash;&gt;
-                    <option value="{$k}">{$v}</option>
-                    &lt;!&ndash;{/eq}&ndash;&gt;
-                    {/foreach}
-                </select>
-            </div>
-        </div>-->
+
+
 
         <div class="layui-form-item layui-inline">
             <button class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button>
         </div>
     </form>
-    <script>
-        form.render();
-        laydate.render({range: true, elem: '[name="create_at"]'})
-    </script>
 </fieldset>
+
+<script>form.render()</script>

+ 53 - 0
app/admin/view/school/pass.html

@@ -0,0 +1,53 @@
+<form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post" autocomplete="off">
+    <div class="layui-card-body padding-left-40">
+        <div class="layui-form-item">
+            <label class="relative block">
+                <span class="color-green font-w7">登录用户账号</span>
+                <span class="color-desc margin-left-5">Username</span>
+                <!--{if isset($vo) and isset($vo.username)}-->
+                <input disabled value='{$vo.username|default=""}' class="layui-input layui-bg-gray">
+                <!--{else}-->
+                <input name="username" value='{$vo.username|default=""}' required pattern="^.{4,}$" placeholder="请输入4位及以上字符登录用户账号" class="layui-input">
+                <!--{/if}-->
+            </label>
+            <p class="help-block">登录用户账号创建后,不允许再次修改。</p>
+        </div>
+
+        <!--{if $verify}-->
+        <div class="layui-form-item">
+            <label class="relative block">
+                <span class="color-green font-w7">旧的登录密码</span>
+                <span class="color-desc margin-left-5">Old Password</span>
+                <input type="password" autofocus name="oldpassword" value='' pattern="^\S{1,}$" required placeholder="请输入旧的登录密码" class="layui-input">
+            </label>
+            <p class="color-desc">请输入旧密码来验证修改权限,旧密码不限制格式。</p>
+        </div>
+        <!--{/if}-->
+
+        <div class="layui-form-item">
+            <label class="relative block">
+                <span class="color-green font-w7">新的登录密码</span>
+                <span class="color-desc margin-left-5">New Password</span>
+                <input type="password" name="password" maxlength="32" pattern="^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$).{6,32}$" required placeholder="请输入新的登录密码" class="layui-input">
+            </label>
+            <p class="color-desc">密码必需包含大小写字母、数字、符号的任意两者组合。</p>
+        </div>
+
+        <div class="layui-form-item">
+            <label class="relative block">
+                <span class="color-green font-w7">重复登录密码</span>
+                <span class="color-desc margin-left-5">Repeat Password</span>
+                <input type="password" name="repassword" maxlength="32" pattern="^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$).{6,32}$" required placeholder="请重复输入登录密码" class="layui-input">
+            </label>
+            <p class="color-desc">密码必需包含大小写字母、数字、符号的任意两者组合。</p>
+        </div>
+    </div>
+
+    <div class="hr-line-dashed"></div>
+    {notempty name='vo.id'}<input type='hidden' value='{$vo.id}' name='id'>{/notempty}
+
+    <div class="layui-form-item text-center">
+        <button class="layui-btn" type='submit'>保存数据</button>
+        <button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消编辑</button>
+    </div>
+</form>