Przeglądaj źródła

增加系统设置模块

sugangqiang 2 lat temu
rodzic
commit
6be3341105

+ 45 - 0
app/admin/controller/SysConfig.php

@@ -0,0 +1,45 @@
+<?php
+
+namespace app\admin\controller;
+
+use app\admin\common\AdminController;
+use think\facade\Db;
+
+/**
+ * Description of SysConfig
+ *
+ * @author sgq
+ */
+class SysConfig extends AdminController {
+
+    private $valid_key = ["register"];
+
+    public function index() {
+        if ($this->request->isPost()) {
+            $params = $this->request->param();
+            $data = [];
+            foreach ($params as $key => $value) {
+                if (in_array($key, $this->valid_key)) {
+                    $_config = Db::table("sys_config")->where("key", $key)->find();
+                    if ($_config) {
+                        $data[] = ["id" => $_config["id"], "value" => json_encode($value), "updateTime" => date("Y-m-d H:i:s"), "updateUser" => session("user")["uid"]];
+                    } else {
+                        $data[] = ["key" => $key, "value" => json_encode($value), "createTime" => date("Y-m-d H:i:s"), "createUser" => session("user")["uid"]];
+                    }
+                }
+            }
+            $model = new \app\common\model\SysConfig();
+            $model->saveAll($data);
+            $res = ["code" => 200, "msg" => "保存成功"];
+            echo sprintf("<script>parent.SysConfig.callback(%s);</script>", json_encode($res));
+            exit;
+        }
+        $configs = \think\facade\Db::table("sys_config")->select();
+        $tmp = [];
+        foreach ($configs as $config) {
+            $tmp[$config["key"]] = json_decode($config["value"], true);
+        }unset($config);
+        return view("", ["config" => $tmp]);
+    }
+
+}

+ 140 - 0
app/admin/view/sys_config/index.html

@@ -0,0 +1,140 @@
+{extend name="layout/content"}
+{block name="content"}
+<style type="text/css">
+    .panel-heading{
+        color:#333;
+        background-color:#f5f5f5;
+        border-color:#ddd
+    }
+    .spacing {
+        margin-bottom: 10px;
+        padding-right:4px;
+        padding-left: 4px;
+    }
+    .panel label {
+        font-size: xx-small;
+    }
+    .has-feedback .form-control {
+        padding-right: 5px;
+    }
+    .control-label{
+        color: #337ab7;
+    }
+    .rowGroup{
+        padding-bottom: 5px;
+    }
+    .imgs>li{
+        list-style: none;
+        float: left;
+        border: 1px solid #d8d1d1;
+        text-align: center;
+        height: 35px;
+        width:100%;
+        padding:5px 0;
+    }
+    .table .td-label{
+        display: block;
+        text-align: left;
+        border-bottom: 1px solid #ccc;
+        margin-bottom: 10px;
+    }
+    .imgs li>div{float:left;}
+    .info td{background:#f5f5f5 !important;}
+    .word-wrap{
+        width:100%;
+        white-space:nowrap;
+        word-wrap:break-word;
+        word-break:break-all;
+        text-overflow:ellipsis;
+        overflow:hidden;
+    }
+    .control-symbol{
+        display: inline-block;
+        position:absolute;
+        right:0;
+        top:50%;
+        font-style:normal;
+        margin-top: -16px;
+        height:32px;
+        width:32px;
+        line-height:32px;
+        text-align:center;
+        border-left:1px solid #ddd;
+    }
+    #annual_salary{padding-right:32px;}
+</style>
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal">
+            <div class="row">
+                <div class="col-sm-12" >
+                    <form id="configForm" action="/admin/sys_config" method="post" enctype="multipart/form-data" target="hiddenIframe">
+                        <div class="tab-content">
+                            <div id="tab-1" class="tab-pane active">
+                                <div class="panel panel-default">
+                                    <div class="panel-heading">开放注册时间设置</div>
+                                    <div class="panel-body">
+                                        <table style="width: 100%;border-collapse: collapse;" class="table table-bordered">
+                                            <tr>
+                                                <td>
+                                                    <div class="rowGroup">
+                                                        <label class="control-label spacing td-label"><span style="color: red">*</span>晋江市现代产业体系人才-4341现代产业体系企业</label>
+                                                        <input type="text" class="form-control rangedate" id="register_jjrc_4341" name="register[jjrc_4341]" value="{$config.register.jjrc_4341}"/>
+                                                    </div>
+                                                </td>
+                                                <td>
+                                                    <div class="rowGroup">
+                                                        <label class="control-label spacing td-label"><span style="color: red">*</span>晋江市现代产业体系人才-非4341现代产业体系企业</label>
+                                                        <input type="text" class="form-control rangedate" id="register_jjrc_n4341" name="register[jjrc_no4341]" value="{$config.register.jjrc_no4341}"/>
+                                                    </div>
+                                                </td>
+                                                <td>
+                                                    <div class="rowGroup">
+                                                        <label class="control-label spacing td-label"><span style="color: red">*</span>集成电路优秀人才</label>
+                                                        <input type="text" class="form-control rangedate" id="register_jcrc" name="register[jcrc]" value="{$config.register.jcrc}"/>
+                                                    </div>
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <td>
+                                                    <div class="rowGroup">
+                                                        <label class="control-label spacing td-label"><span style="color: red">*</span>民办非企业</label>
+                                                        <input type="text" class="form-control rangedate" id="register_mbfqy" name="register[mbfqy]" value="{$config.register.mbfqy}"/>
+                                                    </div>
+                                                </td>
+                                                <td>
+                                                    <div class="rowGroup">
+                                                        <label class="control-label spacing td-label"><span style="color: red">*</span>事业单位-非媒体单位</label>
+                                                        <input type="text" class="form-control rangedate" id="register_sy_nomedia" name="register[sy_nomedia]" value="{$config.register.sy_nomedia}"/>
+                                                    </div>
+                                                </td>
+                                                <td>
+                                                    <div class="rowGroup">
+                                                        <label class="control-label spacing td-label"><span style="color: red">*</span>事业单位-媒体单位</label>
+                                                        <input type="text" class="form-control rangedate" id="register_sy_media" name="register[sy_media]" value="{$config.register.sy_media}"/>
+                                                    </div>
+                                                <td>
+                                            </tr>
+                                        </table>
+                                    </div>
+                                </div>
+                                <div class="row">
+                                    <div class="col-sm-12" style="text-align: center;margin-top: 10px;">
+                                        <button type="button" class="btn btn-sm btn-primary " onclick="SysConfig.save()" id="ensure">
+                                            <i class="fa fa-check"></i>&nbsp;保存
+                                        </button>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<iframe id="hiddenIframe" name="hiddenIframe" style="display: none;"></iframe>
+<script type="text/javascript">
+    document.write('<script src="/static/modular/system/config/sys_config.js?v=' + (new Date()).getTime() + '"><\/script>');
+</script>
+{/block}

+ 72 - 0
app/common/controller/Auth.php

@@ -15,6 +15,63 @@ use app\common\api\UploadApi;
 
 
 class Auth extends BaseController {
 class Auth extends BaseController {
 
 
+    private function checkRegisterTime($special, $type1, $type2 = null) {
+        $now = time();
+        $key = "";
+        $agency_label = "";
+        $registerCfg = \app\common\model\SysConfig::where("key", "register")->find();
+        if ($registerCfg) {
+            $registerCfg = json_decode($registerCfg["value"], true);
+            switch ($special) {
+                case 0://企业
+                    if ($type1 == 1) {
+                        //晋江人才
+                        if ($type2 == 1) {
+                            //4341
+                            $key = "jjrc_4341";
+                            $agency_label = "晋江市现代产业体系人才(4341现代产业体系)";
+                        } else {
+                            //非4341
+                            $key = "jjrc_no4341";
+                            $agency_label = "晋江市现代产业体系人才(非4341现代产业体系)";
+                        }
+                    } else if ($type1 == 2) {
+                        //电路人才
+                        $key = "jcrc";
+                        $agency_label = "集成电路优秀人才";
+                    }
+                    break;
+                case 1://事业
+                    if ($type1 == "institution_common") {
+                        $key = "sy_nomedia";
+                        $agency_label = "事业单位-非媒体单位";
+                    } else if ($type1 == "institution_media") {
+                        $key = "sy_media";
+                        $agency_label = "事业单位-媒体单位";
+                    }
+                    break;
+                case 3://民非
+                    if ($type1 == "minfei") {
+                        $key = "mbfqy";
+                        $agency_label = "民办非企业";
+                    }
+                    break;
+            }
+            if ($registerCfg[$key]) {
+                list($startdate, $enddate) = explode(" - ", $registerCfg[$key]);
+                $starttime = strtotime($startdate . "00:00:00");
+                $endtime = strtotime($enddate . "23:59:59");
+                if ($starttime && $endtime && ($now < $starttime || $now > $endtime)) {
+                    $response_object = new \StdClass();
+                    $response_object->code = 500;
+                    $response_object->msg = sprintf("您注册的类型【%s】不在可注册时间内(%s)", $agency_label, $registerCfg[$key]);
+                    return $response_object;
+                }
+            }
+        }
+        return true;
+    }
+
     public function register() {
     public function register() {
         $msg = "";
         $msg = "";
         if ($this->request->isPost()) {
         if ($this->request->isPost()) {
@@ -61,6 +118,9 @@ class Auth extends BaseController {
                         if ($data['type'] == 1) {
                         if ($data['type'] == 1) {
                             if ($data["agencyType"] == 1) {
                             if ($data["agencyType"] == 1) {
                                 validate(Enterprise::class)->batch(true)->scene('add')->check($data);
                                 validate(Enterprise::class)->batch(true)->scene('add')->check($data);
+                                $registerTimeLimitReturnObj = $this->checkRegisterTime(0, $data['type'], $data["agencyType"]);
+                                if ($registerTimeLimitReturnObj !== true)
+                                    return \StrUtil::back($registerTimeLimitReturnObj, "Register.epCallBack");
                                 if (!array_key_exists('domainImg', $files) || $files['domainImg'] == '') {
                                 if (!array_key_exists('domainImg', $files) || $files['domainImg'] == '') {
                                     $response_object->code = 500;
                                     $response_object->code = 500;
                                     $response_object->msg = '行业领域佐证材料不能为空';
                                     $response_object->msg = '行业领域佐证材料不能为空';
@@ -68,6 +128,9 @@ class Auth extends BaseController {
                                 }
                                 }
                             } else {
                             } else {
                                 validate(Enterprise::class)->batch(true)->scene('add2')->check($data);
                                 validate(Enterprise::class)->batch(true)->scene('add2')->check($data);
+                                $registerTimeLimitReturnObj = $this->checkRegisterTime(0, $data['type'], $data["agencyType"]);
+                                if ($registerTimeLimitReturnObj !== true)
+                                    return \StrUtil::back($registerTimeLimitReturnObj, "Register.epCallBack");
                             }
                             }
                             $checkTypes = ["guishang", "gaoxinjishu", "zhuanjingtexin"];
                             $checkTypes = ["guishang", "gaoxinjishu", "zhuanjingtexin"];
                             if (in_array($data["enterpriseType"], $checkTypes) && (!array_key_exists('typeImg', $files) || $files['typeImg'] == '')) {
                             if (in_array($data["enterpriseType"], $checkTypes) && (!array_key_exists('typeImg', $files) || $files['typeImg'] == '')) {
@@ -77,6 +140,9 @@ class Auth extends BaseController {
                             }
                             }
                         } else {
                         } else {
                             validate(Enterprise::class)->batch(true)->scene('jc_add')->check($data); //集成电路
                             validate(Enterprise::class)->batch(true)->scene('jc_add')->check($data); //集成电路
+                            $registerTimeLimitReturnObj = $this->checkRegisterTime(0, $data['type']);
+                            if ($registerTimeLimitReturnObj !== true)
+                                return \StrUtil::back($registerTimeLimitReturnObj, "Register.epCallBack");
                         }
                         }
                         if (!array_key_exists('imgurl', $files) || $files['imgurl'] == '') {
                         if (!array_key_exists('imgurl', $files) || $files['imgurl'] == '') {
                             $response_object->code = 500;
                             $response_object->code = 500;
@@ -97,6 +163,9 @@ class Auth extends BaseController {
                         break;
                         break;
                     case 'minfei':
                     case 'minfei':
                         $data['type'] = 1;
                         $data['type'] = 1;
+                        $registerTimeLimitReturnObj = $this->checkRegisterTime(3, $data['organizationTag']);
+                        if ($registerTimeLimitReturnObj !== true)
+                            return \StrUtil::back($registerTimeLimitReturnObj, "Register.epCallBack");
                         if (!array_key_exists('imgurl', $files) || $files['imgurl'] == '') {
                         if (!array_key_exists('imgurl', $files) || $files['imgurl'] == '') {
                             $response_object->code = 500;
                             $response_object->code = 500;
                             $response_object->msg = '营业执照不能为空';
                             $response_object->msg = '营业执照不能为空';
@@ -117,6 +186,9 @@ class Auth extends BaseController {
                     case 'shiye':
                     case 'shiye':
                         $data['type'] = 1;
                         $data['type'] = 1;
                         validate(Enterprise::class)->batch(true)->scene('sy_add')->check($data); //事业单位
                         validate(Enterprise::class)->batch(true)->scene('sy_add')->check($data); //事业单位
+                        $registerTimeLimitReturnObj = $this->checkRegisterTime(1, $data['institutionTag']);
+                        if ($registerTimeLimitReturnObj !== true)
+                            return \StrUtil::back($registerTimeLimitReturnObj, "Register.epCallBack");
                         if (!array_key_exists('imgurl', $files) || $files['imgurl'] == '') {
                         if (!array_key_exists('imgurl', $files) || $files['imgurl'] == '') {
                             $response_object->code = 500;
                             $response_object->code = 500;
                             $response_object->msg = '法人代表证或批文不能为空';
                             $response_object->msg = '法人代表证或批文不能为空';

+ 16 - 0
app/common/model/SysConfig.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace app\common\model;
+
+use think\Model;
+
+/**
+ * Description of SysConfig
+ *
+ * @author sgq
+ */
+class SysConfig extends Model {
+
+    protected $table = "sys_config";
+
+}

+ 87 - 0
public/static/modular/system/config/sys_config.js

@@ -0,0 +1,87 @@
+/**
+ * 系统设置
+ */
+var locked = false;
+var SysConfig = {
+    sysConfigInfoData: {},
+    validateFields: {
+    }
+    /*
+     'register[jjrc_4341]': {validators: {notEmpty: {message: '晋江市现代产业体系人才-4341现代产业体系企业开放注册时间不能为空'}}},
+     'register[jjrc_no4341]': {validators: {notEmpty: {message: '晋江市现代产业体系人才-非4341现代产业体系企业开放注册时间不能为空'}}},
+     'register[jcrc]': {validators: {notEmpty: {message: '集成电路优秀人才开放注册时间不能为空'}}},
+     'register[mbfqy]': {validators: {notEmpty: {message: '民办非企业开放注册时间不能为空'}}},
+     'register[sy_nomedia]': {validators: {notEmpty: {message: '事业单位-非媒体单位开放注册时间不能为空'}}},
+     'register[sy_media]': {validators: {notEmpty: {message: '事业单位-媒体单位开放注册时间不能为空'}}}
+     */
+};
+
+/**
+ * 验证数据
+ */
+SysConfig.validate = function () {
+    $('#configForm').data("bootstrapValidator").resetForm();
+    $('#configForm').bootstrapValidator('validate');
+    return $("#configForm").data('bootstrapValidator').isValid();
+}
+
+/**
+ * 保存
+ */
+SysConfig.save = function () {
+    if (!SysConfig.validate()) {
+        return;
+    }
+    if (locked) {
+        return;
+    }
+    locked = true;
+    $("#configForm")[0].submit();
+}
+
+//回调
+SysConfig.callback = function (data) {
+    locked = false;
+    if (data.code == 200) {
+        Feng.success(data.msg);
+    } else {
+        Feng.error(data.msg);
+    }
+}
+
+$(function () {
+    $('#configForm').bootstrapValidator({
+        feedbackIcons: {
+            valid: 'glyphicon glyphicon-ok',
+            invalid: 'glyphicon glyphicon-remove',
+            validating: 'glyphicon glyphicon-refresh'
+        },
+        container: 'tooltip',
+        group: '.rowGroup',
+        fields: SysConfig.validateFields,
+        live: 'enabled',
+        message: '该字段不能为空'
+    }).on('error.field.bv', function (e, data) {
+        // Get the tooltip
+        var $parent = data.element.parents('#configForm'),
+                $icon = $parent.find('.form-control-feedback[data-bv-icon-for="' + data.field + '"]'),
+                title = $icon.data('bs.tooltip').getTitle();
+        $icon.tooltip('show').tooltip({
+            html: true,
+            placement: 'right',
+            title: title,
+            container: 'body'
+        });
+    });
+    //批量加载时间控件
+    $(".rangedate").each(function () {
+        laydate.render({
+            elem: this,
+            type: "date",
+            range: true,
+            trigger: "click"
+        })
+    })
+});
+
+