linwu 3 月之前
父節點
當前提交
da68c744bf
共有 44 個文件被更改,包括 3881 次插入6 次删除
  1. 9 0
      app/admin/controller/Api.php
  2. 44 0
      app/admin/controller/Industry.php
  3. 36 0
      app/admin/controller/OddJob.php
  4. 36 0
      app/admin/controller/Recruit.php
  5. 24 3
      app/admin/view/home/console.html
  6. 226 0
      app/admin/view/industry/setting.html
  7. 87 0
      app/admin/view/odd_job/setting.html
  8. 181 0
      app/admin/view/talent/index.html
  9. 38 0
      app/common/model/SettingModel.php
  10. 1 1
      public/bi/css/index.css
  11. 二進制
      public/bi/images/logo.png
  12. 二進制
      public/bi/images/logo1.png
  13. 2 2
      public/bi/index.html
  14. 625 0
      public/jucai/css/index.css
  15. 62 0
      public/jucai/fonts/icomoon.css
  16. 二進制
      public/jucai/fonts/icomoon.eot
  17. 22 0
      public/jucai/fonts/icomoon.svg
  18. 二進制
      public/jucai/fonts/icomoon.ttf
  19. 二進制
      public/jucai/fonts/icomoon.woff
  20. 二進制
      public/jucai/images/border.png
  21. 二進制
      public/jucai/images/line.png
  22. 二進制
      public/jucai/images/logo.png
  23. 二進制
      public/jucai/images/logo1.png
  24. 二進制
      public/jucai/images/logob.png
  25. 二進制
      public/jucai/images/rect.png
  26. 215 0
      public/jucai/index.html
  27. 5 0
      public/jucai/js/350582.json
  28. 408 0
      public/jucai/js/index.js
  29. 1 0
      public/jucai/js/jquery.min.js
  30. 600 0
      public/linggong/css/index.css
  31. 62 0
      public/linggong/fonts/icomoon.css
  32. 二進制
      public/linggong/fonts/icomoon.eot
  33. 22 0
      public/linggong/fonts/icomoon.svg
  34. 二進制
      public/linggong/fonts/icomoon.ttf
  35. 二進制
      public/linggong/fonts/icomoon.woff
  36. 二進制
      public/linggong/images/border.png
  37. 二進制
      public/linggong/images/line.png
  38. 二進制
      public/linggong/images/logo.png
  39. 二進制
      public/linggong/images/logob.png
  40. 二進制
      public/linggong/images/rect.png
  41. 281 0
      public/linggong/index.html
  42. 5 0
      public/linggong/js/350582.json
  43. 888 0
      public/linggong/js/index.js
  44. 1 0
      public/linggong/js/jquery.min.js

+ 9 - 0
app/admin/controller/Api.php

@@ -95,6 +95,8 @@ class Api extends BaseController
         $res['comjobs_total'] = JobModel::where($comjobs_map)->count();
         $res['user_total']    = UserModel::count();
 
+
+
         return json($res);
     }
 
@@ -147,4 +149,11 @@ class Api extends BaseController
 
         return json($data);
     }
+
+    public function odd_job_other()
+    {
+        $setting = SettingModel::getConfigValue(SettingModel::ODD_JOB);
+
+        return json($setting);
+    }
 }

+ 44 - 0
app/admin/controller/Industry.php

@@ -0,0 +1,44 @@
+<?php
+
+namespace app\admin\controller;
+
+use app\admin\AdminBaseController;
+use app\common\model\SettingModel;
+
+class Industry extends AdminBaseController
+{
+    /**
+     * 系统配置
+     */
+    public function setting()
+    {
+        $system = SettingModel::getConfigValue(SettingModel::INDUSTRY);
+        return view('', [
+            'system' => $system,
+        ]);
+    }
+
+    public function editSetting()
+    {
+        $data = $this->_post(SettingModel::INDUSTRY);
+        SettingModel::setConfigValue($data);
+        ajax_return();
+    }
+
+    /**
+     * 获取数据
+     * @param array $param 要获取的数据
+     * @return array
+     */
+    public function _post(array $param)
+    {
+        $res = [];
+        foreach ($param as $v) {
+            if (input($v) == '0' || !empty(input($v))) {
+                $res[$v] = input($v);
+            }
+        }
+
+        return $res;
+    }
+}

+ 36 - 0
app/admin/controller/OddJob.php

@@ -6,6 +6,7 @@ use app\admin\AdminBaseController;
 use app\common\model\odd_job\JobModel;
 use app\common\model\odd_job\UserModel;
 use app\common\model\odd_job\WorkerModel;
+use app\common\model\SettingModel;
 
 class OddJob extends AdminBaseController
 {
@@ -95,4 +96,39 @@ class OddJob extends AdminBaseController
         }
         list_return($list, $count);
     }
+
+    /**
+     * 列表
+     */
+    public function setting()
+    {
+        $system = SettingModel::getConfigValue(SettingModel::ODD_JOB);
+        return view('', [
+            'system' => $system,
+        ]);
+    }
+
+    public function editSetting()
+    {
+        $data = $this->_post(SettingModel::ODD_JOB);
+        SettingModel::setConfigValue($data);
+        ajax_return();
+    }
+
+    /**
+     * 获取数据
+     * @param array $param 要获取的数据
+     * @return array
+     */
+    public function _post(array $param)
+    {
+        $res = [];
+        foreach ($param as $v) {
+            if (input($v) === '0' || !empty(input($v))) {
+                $res[$v] = input($v);
+            }
+        }
+
+        return $res;
+    }
 }

+ 36 - 0
app/admin/controller/Recruit.php

@@ -5,6 +5,7 @@ namespace app\admin\controller;
 use app\admin\AdminBaseController;
 use app\common\model\jucai\RecruitAppointInfoModel;
 use app\common\model\jucai\RecruitModel;
+use app\common\model\SettingModel;
 
 class Recruit extends AdminBaseController
 {
@@ -37,4 +38,39 @@ class Recruit extends AdminBaseController
         }
         list_return($list, $count);
     }
+
+    /**
+     * 列表
+     */
+    public function setting()
+    {
+        $system = SettingModel::getConfigValue(SettingModel::ODD_JOB);
+        return view('', [
+            'system' => $system,
+        ]);
+    }
+
+    public function editSetting()
+    {
+        $data = $this->_post(SettingModel::ODD_JOB);
+        SettingModel::setConfigValue($data);
+        ajax_return();
+    }
+
+    /**
+     * 获取数据
+     * @param array $param 要获取的数据
+     * @return array
+     */
+    public function _post(array $param)
+    {
+        $res = [];
+        foreach ($param as $v) {
+            if (input($v) === '0' || !empty(input($v))) {
+                $res[$v] = input($v);
+            }
+        }
+
+        return $res;
+    }
 }

+ 24 - 3
app/admin/view/home/console.html

@@ -9,9 +9,30 @@
 					<div class="layui-row layui-col-space10">
 						<div class="layui-col-xs12 layui-col-sm4">
 							<div class="layuiadmin-card-text">
-								<div class="layui-text-top"><i class="layui-icon layui-icon-water"></i><a href="/bi" target="_blank">大数据看板</a></div>
-								<p class="layui-text-center">打开后,按F11进入全屏模式进行观看,效果更佳。</p>
-								<p class="layui-text-bottom"><span>智能大数据</span></p>
+								<div class="layui-text-top"><i class="layui-icon layui-icon-windows"></i><a href="/bi" target="_blank">大数据看板</a></div>
+								<p class="layui-text-center">聚才网,零工,人才相关大数据看板。</p>
+								<p class="layui-text-bottom"><span>按F11可全屏观看</span></p>
+							</div>
+						</div>
+						<div class="layui-col-xs12 layui-col-sm4">
+							<div class="layuiadmin-card-text">
+								<div class="layui-text-top"><i class="layui-icon layui-icon-chart-screen"></i><a href="/jucai" target="_blank">聚才网看板</a></div>
+								<p class="layui-text-center">聚才网企业,岗位,用户,简历,招考等信息大数据看板。</p>
+								<p class="layui-text-bottom"><span>按F11可全屏观看</span></p>
+							</div>
+						</div>
+						<div class="layui-col-xs12 layui-col-sm4">
+							<div class="layuiadmin-card-text">
+								<div class="layui-text-top"><i class="layui-icon layui-icon-group"></i><a href="/linggong" target="_blank">零工看板</a></div>
+								<p class="layui-text-center">零工相关的用工单位及零工人员信息大数据看板。</p>
+								<p class="layui-text-bottom"><span>按F11可全屏观看</span></p>
+							</div>
+						</div>
+						<div class="layui-col-xs12 layui-col-sm4">
+							<div class="layuiadmin-card-text">
+								<div class="layui-text-top"><i class="layui-icon layui-icon-template-1"></i><a href="/linggong" target="_blank">人才看板</a></div>
+								<p class="layui-text-center">高层次人才相关的信息大数据看板。</p>
+								<p class="layui-text-bottom"><span>按F11可全屏观看</span></p>
 							</div>
 						</div>
 					</div>

+ 226 - 0
app/admin/view/industry/setting.html

@@ -0,0 +1,226 @@
+<div class="layui-fluid">
+    <div class="layui-row layui-col-space15">
+        <div class="layui-col-md12">
+            <div class="layui-card layui-tab  layui-tab-brief" lay-filter="linktab">
+                <ul class="layui-tab-title">
+                    <li class="layui-this">聚才网数据大屏</li>
+                </ul>
+                <div class="layui-tab-content">
+                    <div class="layui-form layui-form-pane">
+                        <div class="layui-tab-item layui-show">
+                            <div class="layui-card">
+                                <div class="layui-card-header">产业园补充数据</div>
+                                <div class="layui-card-body" pad15>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>机构数量</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入机构数量"
+                                                   name="industry_institution_num"
+                                                   value="{:array_get($system,'industry_institution_num')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>营业额</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入营业额"
+                                                   name="industry_institution_turnover"
+                                                   value="{:array_get($system,'industry_institution_turnover')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>员工数量</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入员工数量"
+                                                   name="industry_institution_employee"
+                                                   value="{:array_get($system,'industry_institution_employee')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>服务企业数</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入服务企业数"
+                                                   name="industry_enterprise_num"
+                                                   value="{:array_get($system,'industry_enterprise_num')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>服务人数</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入服务人数"
+                                                   name="industry_service_num"
+                                                   value="{:array_get($system,'industry_service_num')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="layui-tab-item layui-show">
+                            <div class="layui-card">
+                                <div class="layui-card-header">产业园机构类型</div>
+                                <div class="layui-card-body" pad15>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>软件技术</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入软件技术机构数量"
+                                                   name="industry_institution_type_software"
+                                                   value="{:array_get($system,'industry_institution_type_software')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>管理咨询</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入管理咨询机构数量"
+                                                   name="industry_institution_type_consult"
+                                                   value="{:array_get($system,'industry_institution_type_consult')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>培训教育</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入培训教育机构数量"
+                                                   name="industry_institution_type_train"
+                                                   value="{:array_get($system,'industry_institution_type_train')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>灵活用工</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入灵活用工机构数量"
+                                                   name="industry_institution_type_flexible"
+                                                   value="{:array_get($system,'industry_institution_type_flexible')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>派遣外包</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入派遣外包机构数量"
+                                                   name="industry_institution_type_dispatch"
+                                                   value="{:array_get($system,'industry_institution_type_dispatch')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>人才猎聘</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入人才猎聘机构数量"
+                                                   name="industry_institution_type_talent"
+                                                   value="{:array_get($system,'industry_institution_type_talent')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>测评背调</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入测评背调机构数量"
+                                                   name="industry_institution_type_evaluation"
+                                                   value="{:array_get($system,'industry_institution_type_evaluation')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>劳务输出</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入劳务输出机构数量"
+                                                   name="industry_institution_type_labor"
+                                                   value="{:array_get($system,'industry_institution_type_labor')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>商业保险</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入商业保险机构数量"
+                                                   name="industry_institution_type_insurance"
+                                                   value="{:array_get($system,'industry_institution_type_insurance')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>其他</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入其他机构数量"
+                                                   name="industry_institution_type_other"
+                                                   value="{:array_get($system,'industry_institution_type_other')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="layui-tab-item layui-show">
+                            <div class="layui-card">
+                                <div class="layui-form-item">
+                                    <div class="layui-input-block">
+                                        <button class="layui-btn" lay-submit lay-filter="{$lay_btn}">确认修改</button>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script>
+    layui.use(['index', 'form'], function () {
+        const admin = layui.admin;
+        const form = layui.form;
+        form.render();
+
+        form.on('submit({$lay_btn})', function (obj) {
+            admin.req({
+                url: "{:url('industry/editSetting')}",
+                type: 'post',
+                data: obj.field,
+                done: function (res) {
+                    layer.msg("提交成功", {icon: 1});
+                    setTimeout(function () {
+                        location.reload();
+                    },2000);
+                }
+            });
+
+        });
+    });
+</script>

+ 87 - 0
app/admin/view/odd_job/setting.html

@@ -0,0 +1,87 @@
+<div class="layui-fluid">
+    <div class="layui-row layui-col-space15">
+        <div class="layui-col-md12">
+            <div class="layui-card layui-tab  layui-tab-brief" lay-filter="linktab">
+                <ul class="layui-tab-title">
+                    <li class="layui-this">零工数据大屏</li>
+                </ul>
+                <div class="layui-tab-content">
+                    <div class="layui-form layui-form-pane">
+                        <div class="layui-tab-item layui-show">
+                            <div class="layui-card">
+                                <div class="layui-card-header">数据补充</div>
+                                <div class="layui-card-body" pad15>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>成交单数</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入成交单数"
+                                                   name="obb_job_deal_num"
+                                                   value="{:array_get($system,'obb_job_deal_num')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>成交金额</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入成交金额"
+                                                   name="obb_job_deal_money"
+                                                   value="{:array_get($system,'obb_job_deal_money')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>服务站数量</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="请输入服务站数量"
+                                                   name="obb_job_service_num"
+                                                   value="{:array_get($system,'obb_job_service_num')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="layui-tab-item layui-show">
+                            <div class="layui-card">
+                                <div class="layui-form-item">
+                                    <div class="layui-input-block">
+                                        <button class="layui-btn" lay-submit lay-filter="{$lay_btn}">确认修改</button>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script>
+    layui.use(['index', 'form'], function () {
+        const admin = layui.admin;
+        const form = layui.form;
+        form.render();
+
+        form.on('submit({$lay_btn})', function (obj) {
+            admin.req({
+                url: "{:url('odd_job/editSetting')}",
+                type: 'post',
+                data: obj.field,
+                done: function (res) {
+                    layer.msg("提交成功", {icon: 1});
+                    setTimeout(function () {
+                        location.reload();
+                    },2000);
+                }
+            });
+
+        });
+    });
+</script>

+ 181 - 0
app/admin/view/talent/index.html

@@ -281,6 +281,187 @@
                             </div>
                         </div>
 
+                        <div class="layui-tab-item layui-show">
+                            <div class="layui-card">
+                                <div class="layui-card-header">人才咨询问题</div>
+                                <div class="layui-card-body" pad15>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>咨询问题数</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="咨询问题总数"
+                                                   name="talent_problem_total"
+                                                   value="{:array_get($system,'talent_problem_total')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>解决问题数</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="解决问题总数"
+                                                   name="talent_problem_deal"
+                                                   value="{:array_get($system,'talent_problem_deal')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>人才津贴</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="人才津贴相关问题数"
+                                                   name="talent_problem_talent"
+                                                   value="{:array_get($system,'talent_problem_talent')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>人才认定</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="人才认定相关问题数"
+                                                   name="talent_problem_determine"
+                                                   value="{:array_get($system,'talent_problem_determine')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>交通补贴</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="交通补贴相关问题数"
+                                                   name="talent_problem_traffic"
+                                                   value="{:array_get($system,'talent_problem_traffic')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>购房补贴</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="购房补贴相关问题数"
+                                                   name="talent_problem_house"
+                                                   value="{:array_get($system,'talent_problem_house')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>人才活动</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="人才活动相关问题数"
+                                                   name="talent_problem_activity"
+                                                   value="{:array_get($system,'talent_problem_activity')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>子女就学</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="子女就学相关问题数"
+                                                   name="talent_problem_children"
+                                                   value="{:array_get($system,'talent_problem_children')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>配偶就业</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="配偶就业相关问题数"
+                                                   name="talent_problem_spouse"
+                                                   value="{:array_get($system,'talent_problem_spouse')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>其他问题</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="其他相关问题数"
+                                                   name="talent_problem_other"
+                                                   value="{:array_get($system,'talent_problem_other')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="layui-tab-item layui-show">
+                            <div class="layui-card">
+                                <div class="layui-card-header">人才咨询渠道</div>
+                                <div class="layui-card-body" pad15>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>来电咨询</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="来电咨询人数"
+                                                   name="talent_channel_call"
+                                                   value="{:array_get($system,'talent_channel_call')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>微信咨询</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="微信咨询人数"
+                                                   name="talent_channel_wechat"
+                                                   value="{:array_get($system,'talent_channel_wechat')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>上门拜访</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="人才服务专员上门拜访人数"
+                                                   name="talent_channel_door"
+                                                   value="{:array_get($system,'talent_channel_door')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>现场咨询</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="人才现场咨询人数"
+                                                   name="talent_channel_scene"
+                                                   value="{:array_get($system,'talent_channel_scene')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label"><span
+                                                style="color:#f90c05;">*</span>其他渠道</label>
+                                        <div class="layui-input-block">
+                                            <input type="number" placeholder="其他渠道咨询人数"
+                                                   name="talent_channel_other"
+                                                   value="{:array_get($system,'talent_channel_other')}"
+                                                   lay-verify="required"
+                                                   class="layui-input">
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+
                         <div class="layui-tab-item layui-show">
                             <div class="layui-card">
                                 <div class="layui-card-header">其他</div>

+ 38 - 0
app/common/model/SettingModel.php

@@ -43,8 +43,46 @@ class SettingModel extends BaseModel
         'talent_education_1',
         'talent_education_2',
         'talent_education_3',
+        'talent_problem_total',
+        'talent_problem_deal',
+        'talent_problem_talent',
+        'talent_problem_determine',
+        'talent_problem_traffic',
+        'talent_problem_house',
+        'talent_problem_activity',
+        'talent_problem_children',
+        'talent_problem_spouse',
+        'talent_problem_other',
+        'talent_channel_call',
+        'talent_channel_wechat',
+        'talent_channel_door',
+        'talent_channel_scene',
+        'talent_channel_other',
         'talent_total',
     ];
+    const ODD_JOB = [
+        'obb_job_deal_num',
+        'obb_job_deal_money',
+        'obb_job_service_num',
+    ];
+    const INDUSTRY = [
+        'industry_institution_num',
+        'industry_institution_turnover',
+        'industry_institution_employee',
+        'industry_institution_type_software',
+        'industry_institution_type_consult',
+        'industry_institution_type_train',
+        'industry_institution_type_flexible',
+        'industry_institution_type_dispatch',
+        'industry_institution_type_talent',
+        'industry_institution_type_evaluation',
+        'industry_institution_type_labor',
+        'industry_institution_type_insurance',
+        'industry_institution_type_other',
+        'industry_enterprise_num',
+        'industry_service_num',
+    ];
+    const INDUSTRY_TYPE = ['软件技术', '管理咨询', '培训教育', '灵活用工', '派遣外包', '人才猎聘', '测评背调', '劳务输出','商业保险','其他'];
 
     public static function getConfigValue($code)
     {

+ 1 - 1
public/bi/css/index.css

@@ -24,7 +24,7 @@ a{
     max-width: 1920px;
     min-height: 780px;
     margin: 0 auto;
-    background: url(../images/logo1.png) no-repeat 0 0 / contain;
+    background: url(../images/logo.png) no-repeat 0 0 / contain;
     display: flex;
     padding: 3.667rem 0.833rem 0;
 }

二進制
public/bi/images/logo.png


二進制
public/bi/images/logo1.png


+ 2 - 2
public/bi/index.html

@@ -5,7 +5,7 @@
         <meta charset="UTF-8">
         <meta name="viewport" content="width=device-width, initial-scale=1.0">
         <meta http-equiv="X-UA-Compatible" content="ie=edge">
-        <title>晋江人力大数据智能看板</title>
+        <title>晋江人力聚合大数据看板</title>
         <link rel="stylesheet" href="./css/index.css">
         <link rel="stylesheet" href="./fonts/icomoon.css">
     </head>
@@ -17,7 +17,7 @@
                 <div class="order panel">
                     <div class="inner">
                         <div class="caption">
-                            <h3>平台统计</h3>
+                            <h3>人才</h3>
                         </div>
                         <!-- 数据 -->
                         <div class="data total_count">

+ 625 - 0
public/jucai/css/index.css

@@ -0,0 +1,625 @@
+body{
+    line-height: 1.15;
+    font-size: 0.5rem;
+    margin: 0;
+    padding: 0;
+    background-repeat: no-repeat;
+    background-position: 0 0 / cover;
+    background-color: #101129;
+}
+*{
+    margin: 0;
+    padding: 0;
+    font-weight: normal;
+}
+ul{
+    list-style: none;
+}
+a{
+    text-decoration: none;
+}
+.viewport {
+    /* 限定大小 */
+    min-width: 1024px;
+    max-width: 1920px;
+    min-height: 780px;
+    margin: 0 auto;
+    background: url(../images/logo1.png) no-repeat 0 0 / contain;
+    display: flex;
+    padding: 3.667rem 0.833rem 0;
+}
+.column{
+    flex: 3;
+    position: relative;
+    margin-top: 3rem;
+}
+.column:nth-child(2){
+    flex: 4;
+    margin-left:0.833rem;
+    margin-right:0.833rem;
+}
+.panel {
+    /* 边框 */
+    box-sizing: border-box;
+    border: 2px solid red;
+    border-image: url(../images/border.png) 51 38 21 132;
+    border-width: 2.125rem 1.583rem 0.875rem 5.5rem;
+    position: relative;
+    margin-bottom: 0.833rem;
+}
+.panel .inner {
+    /* 装内容 */
+    /* height: 60px; */
+    position: absolute;
+    top: -2.125rem;
+    right: -1.583rem;
+    bottom: -0.875rem;
+    left: -5.5rem;
+    padding: 1rem 1.5rem;
+}
+.panel h3{
+    font-size: 0.833rem;
+    color: #fff;
+}
+
+/* 订单 */
+.order {
+  height: 7rem;
+}
+.order .filter {
+  display: flex;
+}
+.order .filter a {
+  display: block;
+  height: 0.75rem;
+  line-height: 1;
+  padding: 0 0.75rem;
+  color: #1950c4;
+  font-size: 0.75rem;
+  border-right: 0.083rem solid #00f2f1;
+}
+.order .filter a:first-child {
+  padding-left: 0;
+}
+.order .filter a:last-child {
+  border-right: none;
+}
+.order .filter a.active {
+  color: #fff;
+  font-size: 0.833rem;
+}
+.order .data {
+  display: flex;
+  margin-top: 0.833rem;
+}
+.order .item {
+  width: 50%;
+  text-align: center;
+}
+.order h4 {
+  font-size: 1.167rem;
+  color: #fff;
+  margin-bottom: 0.417rem;
+}
+.order span {
+  display: block;
+  color: #4c9bfd;
+  font-size: 0.667rem;
+}
+/* ------------------------------------------------------------动画 */
+@keyframes row{
+  0%{}
+  100%{
+    transform: translateY(-50%);
+  }
+}
+/* 监控 */
+.monitor{
+  height: 29rem;
+}
+.monitor .inner{
+  padding: 1rem 0;
+  display: flex;
+  flex-direction: column;
+}
+.monitor .tabs{
+  padding: 0 1.5rem;
+  margin-bottom: 0.75rem;
+}
+.monitor .tabs a{
+  color: #1950c4;
+  font-size: 0.75rem;
+  padding: 0 1.125rem;
+}
+
+.monitor .tabs a:first-child{
+  border-right: 0.083rem solid #00f2f1;
+  padding-left: 0;
+}
+
+.monitor .tabs a.active{
+  color: #fff;
+}
+.monitor .content{
+  flex: 1;
+  display: none;
+  position: relative;
+}
+.monitor .head{
+  background: rgba(255, 255, 255, 0.1);
+  font-size: 0.583rem;
+  padding: 0.5rem 1.5rem;
+  color: #68d8fe;
+  display: flex;
+  justify-content: space-between;
+  line-height: 1.05;
+}
+.monitor .col:nth-child(1) {
+  width: 12rem;
+}
+.monitor .col:nth-child(2) {
+  width: 8.4rem;
+  /* 不换行  一行省略*/
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.monitor .col:nth-child(3) {
+  width: 3.2rem;
+}
+.monitor .marquee-view{
+  position: absolute;
+  top: 1.6rem;
+  bottom: 0;
+  width: 100%;
+  overflow: hidden;
+}
+
+.monitor .row{
+  line-height: 1.05;
+  padding: 0.5rem 1.5rem;
+  color: #61a8ff;
+  font-size: 0.8rem;
+  position: relative;
+  display: flex;
+  justify-content: space-between;
+}
+.monitor .row:hover{
+  color:#68d8ff;
+  background: rgba(255, 255, 255, 0.1);
+}
+.monitor .row:hover .icon-dot{
+  opacity: 1;
+}
+
+.monitor .icon-dot{
+  position: absolute;
+  left: 0.64rem;
+  opacity: 0;
+}
+.monitor .marquee-view{
+  position: absolute;
+  top: 1.6rem;
+  bottom: 0;
+  width: 100%;
+  overflow: hidden;
+}
+
+.monitor .row{
+  line-height: 1.05;
+  padding: 0.5rem 1.5rem;
+  color: #61a8ff;
+  font-size: 0.8rem;
+  position: relative;
+  display: flex;
+  justify-content: space-between;
+}
+.monitor .row:hover{
+  color:#68d8ff;
+  background: rgba(255, 255, 255, 0.1);
+}
+.monitor .row:hover .icon-dot{
+  opacity: 1;
+}
+
+.monitor .icon-dot{
+  position: absolute;
+  left: 0.64rem;
+  opacity: 0;
+}
+/* 调用动画 */
+.monitor .marquee {
+  /* //infinite永久调用动画 */
+  animation: row  10s linear infinite;
+}
+/*鼠标划入 停止动画  */
+.monitor .marquee:hover {
+  animation-play-state: paused;
+}
+/* 点位 */
+.point {
+  height: 14rem;
+}
+.point .chart {
+  display: flex;
+  margin-top: 1rem;
+  justify-content: space-between;
+}
+.point .pie {
+  width: 13rem;
+  height: 10rem;
+  margin-left: -0.4rem;
+}
+.point .data {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  width: 7rem;
+  padding: 1.5rem 1.25rem;
+  box-sizing: border-box;
+  background-image: url(../images/rect.png);
+  background-size: cover;
+}
+.point h4 {
+  margin-bottom: 0.5rem;
+  font-size: 1.167rem;
+  color: #fff;
+}
+.point span {
+  display: block;
+  color: #4c9bfd;
+  font-size: 0.667rem;
+}
+/* 地图  */
+.map {
+  height: 28.8rem;
+  margin-bottom: 0.833rem;
+  display: flex;
+  flex-direction: column;
+}
+.map h3 {
+  line-height: 1;
+  padding: 0.667rem 0;
+  margin: 0;
+  font-size: 0.833rem;
+  color: #fff;
+}
+.map .icon-cube {
+  color: #68d8fe;
+}
+.map .chart {
+  flex: 1;
+  background-color: rgba(255, 255, 255, 0.05);
+}
+.map .geo {
+  width: 100%;
+  height: 100%;
+}
+/* 用户模块 */
+.users {
+  height: 14.167rem;
+  display: flex;
+}
+.users .chart {
+  display: flex;
+  margin-top: 1rem;
+}
+.users .bar {
+  width: 24.5rem;
+  height: 10rem;
+}
+.users .data {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  width: 7rem;
+  padding: 1.5rem 1.25rem;
+  box-sizing: border-box;
+  background-image: url(../images/rect.png);
+  background-size: cover;
+}
+.users h4 {
+  margin-bottom: 0.5rem;
+  font-size: 1.167rem;
+  color: #fff;
+}
+.users span {
+  display: block;
+  color: #4c9bfd;
+  font-size: 0.667rem;
+}
+/* 订单 */
+.order {
+  height: 6.167rem;
+}
+.order .filter {
+  display: flex;
+}
+.order .filter a {
+  display: block;
+  height: 0.75rem;
+  line-height: 1;
+  padding: 0 0.75rem;
+  color: #1950c4;
+  font-size: 0.75rem;
+  border-right: 0.083rem solid #00f2f1;
+}
+.order .filter a:first-child {
+  padding-left: 0;
+}
+.order .filter a:last-child {
+  border-right: none;
+}
+.order .filter a.active {
+  color: #fff;
+  font-size: 0.833rem;
+}
+.order .data {
+  display: flex;
+  margin-top: 0.833rem;
+}
+.order .item {
+  width: 50%;
+}
+.order h4 {
+  font-size: 1.167rem;
+  color: #fff;
+  margin-bottom: 0.417rem;
+}
+.order span {
+  display: block;
+  color: #4c9bfd;
+  font-size: 0.667rem;
+}
+/* 销售区域 */
+.sales {
+  height: 14rem;
+}
+.sales .caption {
+  display: flex;
+  line-height: 1;
+}
+.sales h3 {
+  height: 0.75rem;
+  padding-right: 0.75rem;
+  /* border-right: 0.083rem solid #00f2f1; */
+}
+.sales a {
+  padding: 0.167rem;
+  font-size: 0.667rem;
+  margin: -0.125rem 0 0 0.875rem;
+  border-radius: 0.125rem;
+  color: #0bace6;
+}
+.sales a.active {
+  background-color: #4c9bfd;
+  color: #fff;
+}
+.sales .inner {
+  display: flex;
+  flex-direction: column;
+}
+.sales .chart {
+  flex: 1;
+  padding-top: 0.6rem;
+  position: relative;
+}
+.sales .label {
+  position: absolute;
+  left: 1.75rem;
+  top: 0.75rem;
+  color: #4996f5;
+  font-size: 0.583rem;
+}
+.sales .line {
+  width: 100%;
+  height: 100%;
+}
+/* 渠道区块 */
+.wrap {
+  display: flex;
+}
+.channel,
+.quarter {
+  flex: 1;
+  height: 9.667rem;
+}
+.channel {
+  margin-right: 0.833rem;
+}
+.channel .data {
+  overflow: hidden;
+}
+.channel .item {
+  margin-top: 0.85rem;
+}
+.channel .item:first-child {
+  float: left;
+}
+.channel .item:last-child {
+  float: right;
+}
+.channel h4 {
+  color: #fff;
+  font-size: 1.333rem;
+  margin-bottom: 0.2rem;
+}
+.channel small {
+  font-size: 50%;
+}
+.channel span {
+  display: block;
+  color: #4c9bfd;
+  font-size: 0.583rem;
+}
+/* 季度区块 */
+.quarter .inner {
+  display: flex;
+  flex-direction: column;
+  margin: 0 -0.25rem;
+}
+.quarter .chart {
+  flex: 1;
+  padding-top: 0.75rem;
+}
+.quarter .box {
+  position: relative;
+}
+.quarter .label {
+  transform: translate(-50%, -30%);
+  color: #fff;
+  font-size: 1.25rem;
+  position: absolute;
+  left: 50%;
+  top: 50%;
+}
+.quarter .label small {
+  font-size: 50%;
+}
+.quarter .gauge {
+  height: 3.5rem;
+}
+.quarter .data {
+  display: flex;
+  justify-content: space-between;
+}
+.quarter .item {
+  width: 50%;
+}
+.quarter h4 {
+  color: #fff;
+  font-size: 1rem;
+  margin-bottom: 0.4rem;
+}
+.quarter span {
+  display: block;
+  width: 100%;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+  overflow: hidden;
+  color: #4c9bfd;
+  font-size: 0.583rem;
+}
+/* 排行榜 */
+.top {
+  height: 11.8rem;
+}
+.top .inner {
+  display: flex;
+}
+.top .all {
+  display: flex;
+  flex-direction: column;
+  width: 7rem;
+  color: #4c9bfd;
+  font-size: 0.6rem;
+  vertical-align: middle;
+}
+.top .all ul {
+  padding-left: 0.5rem;
+  margin-top: 0.5rem;
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-around;
+}
+.top .all li {
+  overflow: hidden;
+}
+.top .all [class^="icon-"] {
+  font-size: 1.5rem;
+  vertical-align: middle;
+  margin-right: 0.5rem;
+}
+.top .province {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+  color: #fff;
+}
+.top .province i {
+  padding: 0 0.5rem;
+  margin-top: 0.208rem;
+  float: right;
+  font-style: normal;
+  font-size: 0.583rem;
+  color: #0bace6;
+}
+.top .province s {
+  display: inline-block;
+  transform: scale(0.8);
+  text-decoration: none;
+}
+.top .province .icon-up {
+  color: #dc3c33;
+}
+.top .province .icon-down {
+  color: #36be90;
+}
+.top .province .data {
+  flex: 1;
+  display: flex;
+  margin-top: 0.6rem;
+}
+.top .province ul {
+  flex: 1;
+  line-height: 1;
+  margin-bottom: 0.25rem;
+}
+.top .province ul li {
+  display: flex;
+  justify-content: space-between;
+}
+.top .province ul span {
+  display: block;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
+.top .province ul.sup {
+  font-size: 0.583rem;
+}
+.top .province ul.sup li {
+  color: #4995f4;
+  padding: 0.5rem;
+}
+.top .province ul.sup li.active {
+  color: #a3c6f2;
+  background-color: rgba(10, 67, 188, 0.2);
+}
+.top .province ul.sub {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-around;
+  font-size: 0.5rem;
+  background-color: rgba(10, 67, 188, 0.2);
+}
+.top .province ul.sub li {
+  color: #52ffff;
+  padding: 0.417rem 0.6rem;
+}
+.clock {
+  position: absolute;
+  top: -1.5rem;
+  right: 1.667rem;
+  font-size: 0.833rem;
+  color: #0bace6;
+}
+.clock i {
+  margin-right: 5px;
+  font-size: 0.833rem;
+}
+@media screen and (max-width: 1600px) {
+  .top span {
+    transform: scale(0.9);
+  }
+  .top .province ul.sup li {
+    padding: 0.4rem 0.5rem;
+  }
+  .top .province ul.sub li {
+    padding: 0.23rem 0.5rem;
+  }
+  .quarter span {
+    transform: scale(0.9);
+  }
+}

+ 62 - 0
public/jucai/fonts/icomoon.css

@@ -0,0 +1,62 @@
+@font-face {
+  font-family: 'icomoon';
+  src:  url('icomoon.eot');
+  src:  url('icomoon.eot#iefix') format('embedded-opentype'),
+    url('icomoon.ttf') format('truetype'),
+    url('icomoon.woff') format('woff'),
+    url('icomoon.svg#icomoon') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+
+[class^="icon-"], [class*=" icon-"] {
+  /* use !important to prevent issues with browser extensions that change fonts */
+  font-family: 'icomoon' !important;
+  speak: none;
+  font-style: normal;
+  font-weight: normal;
+  font-variant: normal;
+  text-transform: none;
+  line-height: 1;
+
+  /* Better Font Rendering =========== */
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-dot:before {
+  content: "\e900";
+}
+.icon-cup1:before {
+  content: "\e901";
+}
+.icon-cup2:before {
+  content: "\e902";
+}
+.icon-cup3:before {
+  content: "\e903";
+}
+.icon-clock:before {
+  content: "\e904";
+}
+.icon-down:before {
+  content: "\e905";
+}
+.icon-cube:before {
+  content: "\e906";
+}
+.icon-plane:before {
+  content: "\e907";
+}
+.icon-train:before {
+  content: "\e908";
+}
+.icon-bus:before {
+  content: "\e909";
+}
+.icon-bag:before {
+  content: "\e90a";
+}
+.icon-up:before {
+  content: "\e90b";
+}

二進制
public/jucai/fonts/icomoon.eot


+ 22 - 0
public/jucai/fonts/icomoon.svg

@@ -0,0 +1,22 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="icomoon" horiz-adv-x="1024">
+<font-face units-per-em="1024" ascent="857.6" descent="-166.4" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
+<glyph unicode="&#xe900;" glyph-name="dot" d="M510-44.4v0c-109.2 0-198.8 89.2-198.8 198.8v395.2c0 109.2 89.2 198.8 198.8 198.8v0c109.2 0 198.8-89.2 198.8-198.8v-395.6c0-109.2-89.6-198.4-198.8-198.4z" />
+<glyph unicode="&#xe901;" glyph-name="cup1" d="M824.4 674c0 68.8-56.4 124.8-124.8 124.8h-375.6c-68.8 0-124.8-56.4-124.8-124.8-214 0-187.6 0-187.6-124.8 0-103.2 84.4-187.6 187.6-187.6 8 0 14 1.6 22 1.6 42-122 140.8-232.8 259.2-250v-145.2h-93.6c-17.2 0-31.2-14-31.2-31.2s14-31.2 31.2-31.2h250c17.2 0 31.2 14 31.2 31.2s-14 31.2-31.2 31.2h-93.6v145.2c118.8 17.2 217.2 126.4 259.2 250 6.4 0 14-1.6 22-1.6 103.2 0 187.6 84.4 187.6 187.6-2 124.8 24.8 124.8-187.6 124.8zM199.2 424c-68.8 0-125.2 56-125.2 124.8s1.6 62.4 124.8 62.4l0.4-187.2zM578.8 296h-94.4v202.4c0 29.2-0.8 46.8-2 52.8-1.6 6-5.2 10.4-11.6 13.6s-20.4 4.4-42 4.4h-9.2v44c45.6 10 80 30 103.6 60.4h55.6v-377.6zM824.4 424v187.2c123.6 0 124.8 6.4 124.8-62.4-1.6-68.8-56.4-124.8-124.8-124.8z" />
+<glyph unicode="&#xe902;" glyph-name="cup2" d="M824.4 674c0 68.8-56.4 124.8-124.8 124.8h-375.6c-68.8 0-124.8-56.4-124.8-124.8-214 0-187.6 0-187.6-124.8 0-103.2 84.4-187.6 187.6-187.6 8 0 14 1.6 22 1.6 42-122 140.8-232.8 259.2-250v-145.2h-93.6c-17.2 0-31.2-14-31.2-31.2s14-31.2 31.2-31.2h250c17.2 0 31.2 14 31.2 31.2s-14 31.2-31.2 31.2h-93.6v145.2c118.8 17.2 217.2 126.4 259.2 250 6.4 0 14-1.6 22-1.6 103.2 0 187.6 84.4 187.6 187.6-2 124.8 24.8 124.8-187.6 124.8zM74 548.8c0 68.8 1.6 62.4 124.8 62.4l0.4-187.2c-68.8 0-125.2 56-125.2 124.8zM618 359.2v-63.6h-205.2v53.2c60.8 99.6 96.8 161.2 108.4 184.8s17.2 42 17.2 55.2c0 10-1.6 17.6-5.2 22.8s-8.8 7.6-16 7.6-12.4-2.8-16-8.4c-3.6-5.6-5.2-16.4-5.2-33.2v-35.6h-83.6v14c0 20.8 1.2 37.6 3.2 49.6s7.6 24 16 35.6 19.6 20.4 33.2 26.4 29.6 9.2 48.8 9.2c37.2 0 65.2-9.2 84-27.6 19.2-18.4 28.4-41.6 28.4-70 0-21.6-5.2-44-16-68s-42.4-74.4-94.4-152h102.4zM824.4 424v187.2c123.6 0 124.8 6.4 124.8-62.4-1.6-68.8-56.4-124.8-124.8-124.8z" />
+<glyph unicode="&#xe903;" glyph-name="cup3" d="M824.4 674c0 68.8-56.4 124.8-124.8 124.8h-375.6c-68.8 0-124.8-56.4-124.8-124.8-214 0-187.6 0-187.6-124.8 0-103.2 84.4-187.6 187.6-187.6 8 0 14 1.6 22 1.6 42-122 140.8-232.8 259.2-250v-145.2h-93.6c-17.2 0-31.2-14-31.2-31.2s14-31.2 31.2-31.2h250c17.2 0 31.2 14 31.2 31.2s-14 31.2-31.2 31.2h-93.6v145.2c118.8 17.2 217.2 126.4 259.2 250 6.4 0 14-1.6 22-1.6 103.2 0 187.6 84.4 187.6 187.6-2 124.8 24.8 124.8-187.6 124.8zM74 548.8c0 68.8 1.6 62.4 124.8 62.4l0.4-187.2c-68.8 0-125.2 56-125.2 124.8zM620 337.2c-6.8-16.4-18.4-28.8-35.2-37.6-16.8-8.4-38-12.8-64-12.8-29.6 0-52.8 4.8-69.6 14.8s-28 22-33.2 36.4-8 39.2-8 74.8v29.6h93.2v-60.8c0-16 0.8-26.4 2.8-30.8s6-6.4 12.8-6.4c7.2 0 12 2.8 14.4 8.4s3.6 20 3.6 43.6v26c0 14.4-1.6 24.8-4.8 31.6s-8 10.8-14.4 13.2c-6.4 2-18.4 3.2-36.8 3.6v53.6c22 0 36 0.8 41.2 2.4s9.2 5.2 11.2 11.2c2.4 5.6 3.6 14.8 3.6 26.8v20.8c0 13.2-1.2 21.6-4 26-2.8 4-6.8 6.4-12.4 6.4-6.4 0-10.8-2-13.2-6.4s-3.6-13.6-3.6-28v-30.8h-93.2v32c0 35.6 8 60 24.4 72.4s42.4 18.8 78 18.8c44.4 0 74.8-8.8 90.4-26 16-17.2 23.6-41.6 23.6-72.4 0-20.8-2.8-36-8.4-45.2s-15.6-18-30-25.6c14-4.8 24.8-12.4 31.6-23.6 6.8-10.8 10.4-36.4 10.4-76.4-0.4-30.4-3.6-53.2-10.4-69.6zM824.4 424v187.2c123.6 0 124.8 6.4 124.8-62.4-1.6-68.8-56.4-124.8-124.8-124.8z" />
+<glyph unicode="&#xe904;" glyph-name="clock" d="M502.898 788.907c-245.76 0-443.733-197.973-443.733-443.733s200.249-443.733 443.733-443.733c245.76 0 443.733 197.973 443.733 443.733s-200.249 443.733-443.733 443.733zM791.893 210.916c-6.827-13.653-18.204-20.48-31.858-20.48-4.551 0-9.102 0-13.653 2.276l-261.689 118.329c-11.378 4.551-20.48 18.204-20.48 31.858v245.76c0 18.204 15.929 34.133 34.133 34.133s34.133-15.929 34.133-34.133v-225.28l241.209-109.227c18.204-6.827 25.031-25.031 18.204-43.236z" />
+<glyph unicode="&#xe905;" glyph-name="down" d="M174.56 163.976l288.192-242.864c26.864-22.384 70.512-22.384 97.368 0l288.192 242.864c43.088 36.936 12.312 99.608-48.128 99.608h-110.24v448.8c0 49.248-40.288 89.536-89.536 89.536h-179.072c-49.248 0-89.536-40.288-89.536-89.536v-448.8h-109.12c-61-0.56-91.216-63.232-48.128-99.608z" />
+<glyph unicode="&#xe906;" glyph-name="cube" d="M930.8 632.4c-2 1.2-4.4 2.4-6.4 3.2l-378 219.6c-21.2 12-47.2 12-68.4 0l-384.8-222.8c-21.2-12.4-34.4-34.8-34-59.2l1.2-442.4c0-24.4 12.8-47.2 34-59.2l378.4-219.6c1.6-1.2 3.2-2 4.8-3.2 3.6-2 7.6-3.6 11.6-5.2 0 0 0.4 0 0.4 0 0.4 0 1.2-0.4 1.6-0.4 6.4-2 12.8-3.2 19.6-3.2 0 0 0 0 0 0 0.4 0 0.8 0 0.8 0v0c12 0 23.6 2.8 34 8.8l385.2 222.4c21.2 12.4 34.4 34.8 34 59.2v442.8c0.4 24.4-12.8 47.2-34 59.2zM512.4 716.4l246.4-143.2-248.4-143.2-61.6 36-184.8 107.2 248.4 143.2zM829.2 169.6l-249.2-143.2v285.2l249.2 143.2v-285.2z" />
+<glyph unicode="&#xe907;" glyph-name="plane" d="M937.2 777.6c-22 18.4-53.2 20.8-93.6 7.6s-76.8-36-108.8-68.4l-101.2-101.2-421.6 100.8c-7.2 1.6-13.2 0.8-19.2-5.2l-80.8-81.2c-4.4-4.4-6.4-10-5.6-17.2 1.2-6.8 5.2-12 10.8-15.2l321.6-176.8-164-164-122.8 33.6c-0.8 0.8-2.4 0.8-5.2 0.8-5.6 0-10.8-2-14.4-5.6l-61.2-61.6c-4.8-4.8-6.4-10-5.6-16 0.8-6.8 4-11.2 8.4-14.4l159.6-119.6 119.6-159.6c3.6-4.8 8.8-7.6 15.2-8.4h1.2c5.6 0 10.8 2 14.4 5.6l60.8 60.8c5.6 5.6 6.8 12.8 5.2 19.6l-33.6 122.8 164 164 176.8-321.6c3.2-5.6 6.8-8.8 13.2-10 1.2-0.8 2.4-0.8 4.4-0.8 5.2 0 8.8 1.2 12 4l81.2 60.8c7.2 5.6 9.6 12.8 7.6 20.8l-101.2 440.8 102 102c32.4 32.4 55.2 68.4 68.4 108.8 13.2 40.8 10.8 72-7.6 94z" />
+<glyph unicode="&#xe908;" glyph-name="train" d="M576 237.2v-256h277.2c35.2 0 64-28.8 64-64s-28.8-64-64-64h-682.4c-35.2 0-64 28.8-64 64s28.8 64 64 64h277.2v256h-64c-35.2 0-64 28.8-64 64s28.8 64 64 64h256c35.2 0 64-28.8 64-64s-28.8-64-64-64h-64zM427.6 784c7.2 46.4 50.8 78.4 97.6 71.2 36.8-5.6 65.2-34.4 71.2-71.2 88-16.8 169.2-59.6 232.4-123.2 174.8-174.8 174.8-458.4 0-633.6-24.8-24.8-65.6-24.8-90.4 0s-24.8 65.6 0 90.4v0c124.8 124.8 124.8 327.6 0 452.4s-327.6 124.8-452.4 0-124.8-327.6 0-452.4c0 0 0 0 0 0 24.8-24.8 24.8-65.6 0-90.4s-65.6-24.8-90.4 0c-175.2 174.8-175.2 458.4-0.4 633.6 63.2 63.2 144.4 106.4 232.4 123.2v0z" />
+<glyph unicode="&#xe909;" glyph-name="bus" d="M203.902 20.316c-76.37 13.852-131.4 80.862-131.026 158.354l3.744 479.182c0.748 87.6 72.252 158.354 159.852 158.354h551.058c87.6 0 159.104-70.754 159.852-158.354l3.744-479.182c0.374-69.631-43.8-131.4-110.062-153.114l31.072-53.534c16.846-28.452 7.112-65.138-21.338-81.984s-65.138-7.112-81.984 21.338c0 0.374-0.374 0.374-0.374 0.748l-59.898 103.698c-0.374 0.748-0.748 1.124-1.124 1.872h-366.874c-0.374-0.748-0.748-1.498-1.124-1.872l-59.898-103.698c-16.472-28.826-52.784-38.934-81.61-22.462s-38.934 52.784-22.462 81.61c0 0.374 0.374 0.374 0.374 0.748l28.077 48.292zM452.102 656.354h-279.648c-10.856 0-19.842-8.984-19.842-19.842v0-239.59c0-10.856 8.984-19.842 19.842-19.842v0h279.648c10.856 0 19.842 8.984 19.842 19.842v0 239.59c0 10.856-8.984 19.842-19.842 19.842 0 0 0 0 0 0zM851.544 656.354h-279.648c-10.856 0-19.842-8.984-19.842-19.842v0-239.59c0-10.856 8.984-19.842 19.842-19.842 0 0 0 0 0 0h279.648c10.856 0 19.842 8.984 19.842 19.842v0 239.59c0 10.856-8.984 19.842-19.842 19.842 0 0 0 0 0 0zM731.75 296.97c-32.944 0-59.898-26.954-59.898-59.898s26.954-59.898 59.898-59.898 59.898 26.954 59.898 59.898-26.954 59.898-59.898 59.898zM292.25 296.97c-32.944 0-59.898-26.954-59.898-59.898s26.954-59.898 59.898-59.898 59.898 26.954 59.898 59.898-26.58 59.898-59.898 59.898z" />
+<glyph unicode="&#xe90a;" glyph-name="bag" d="M816.928 591.86h-87.137c0 120.346-97.563 218.028-217.791 218.028s-217.791-97.681-217.791-218.028h-87.137c-47.902 0-86.659-39.26-86.659-87.231l-0.478-523.315c0.109-48.101 39.043-87.067 87.119-87.231h609.844c48.090 0.163 87.028 39.13 87.137 87.222v523.299c-0.109 48.101-39.043 87.067-87.119 87.231h-0.017zM512 722.682c0.034 0 0.079 0 0.119 0 72.12 0 130.585-58.465 130.585-130.585 0-0.084 0-0.168 0-0.252v0.011h-261.406c0 0.069 0 0.153 0 0.237 0 72.12 58.465 130.585 130.585 130.585 0.040 0 0.084 0 0.124 0h-0.006zM512 286.577c-120.228 0-217.791 97.681-217.791 218.077h87.112c0-0.079 0-0.17 0-0.261 0-72.12 58.465-130.585 130.585-130.585 0.040 0 0.084 0 0.124 0h-0.006c0.022 0 0.048 0 0.074 0 72.12 0 130.585 58.465 130.585 130.585 0 0.084 0 0.168 0 0.252v-0.011h87.137c0-120.371-97.588-218.052-217.816-218.052z" />
+<glyph unicode="&#xe90b;" glyph-name="up" d="M848.728 541.856l-288.368 242.696c-26.864 22.392-70.752 22.392-97.616 0l-288.368-242.696c-42.984-36.72-12.536-99.408 48.36-99.408h110.152c0 0 0-0.896 0-0.896v-447.776c0-49.256 40.296-89.552 89.552-89.552h179.112c49.256 0 89.552 40.296 89.552 89.552v447.776c0 0 0 0.896 0 0.896h109.256c60.896 0 91.344 62.688 48.36 99.408z" />
+</font></defs></svg>

二進制
public/jucai/fonts/icomoon.ttf


二進制
public/jucai/fonts/icomoon.woff


二進制
public/jucai/images/border.png


二進制
public/jucai/images/line.png


二進制
public/jucai/images/logo.png


二進制
public/jucai/images/logo1.png


二進制
public/jucai/images/logob.png


二進制
public/jucai/images/rect.png


+ 215 - 0
public/jucai/index.html

@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<html lang="en">
+
+    <head>
+        <meta charset="UTF-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        <meta http-equiv="X-UA-Compatible" content="ie=edge">
+        <title>晋江人力聚合大数据看板</title>
+        <link rel="stylesheet" href="./css/index.css">
+        <link rel="stylesheet" href="./fonts/icomoon.css">
+    </head>
+
+    <body>
+        <div class="viewport">
+            <div class="column">
+                <div class="order panel">
+                    <div class="inner">
+                        <div class="caption">
+                            <h3>求职者</h3>
+                        </div>
+                        <div class="data">
+                            <div class="item">
+                                <h4 class="resume_sex-total">0</h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #ed3f35;"></i>
+                                    总人数
+                                </span>
+                            </div>
+                            <div class="item">
+                                <h4 class="resume_sex-male">0</h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #eacf19;"></i>
+                                    男
+                                </span>
+                            </div>
+                            <div class="item">
+                                <h4 class="resume_sex-female">0</h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #9fe6b8;"></i>
+                                    女
+                                </span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="sales panel">
+                    <div class="inner">
+                        <div class="caption">
+                            <h3>求职工种</h3>
+                        </div>
+                        <div class="chart">
+                            <div class="line resume_trade"></div>
+                        </div>
+                    </div>
+                </div>
+                <div class="point panel">
+                    <div class="inner">
+                        <h3>求职分布</h3>
+                        <div class="chart">
+                            <span>年龄分布</span>
+                            <span>学历分布</span>
+                        </div>
+                        <div class="chart">
+                            <div class="pie age resume_age"></div>
+                            <div class="pie age resume_education"></div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="column">
+                <!-- 零工 -->
+                <div class="order panel">
+                    <div class="inner">
+                        <div class="caption">
+                            <h3>企业</h3>
+                        </div>
+                        <div class="data">
+                            <div class="item">
+                                <h4 class="company_number">0</h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #ed3f35;"></i>
+                                    总企业数
+                                </span>
+                            </div>
+                            <div class="item">
+                                <h4 class="jobs_number">0</h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #eacf19;"></i>
+                                    岗位总数
+                                </span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <!-- 企业 -->
+                <div class="monitor panel">
+                    <div class="inner">
+                        <div class="tabs">
+                            <a href="javascript:;" data-index="0" class="active">企业所属行业</a>
+                            <a href="javascript:;" data-index="1">企业需求工种</a>
+                        </div>
+                        <div class="content" style="display: block;">
+                            <div class="head">
+                                <span class="col">所属行业</span>
+                                <span class="col">企业数量</span>
+                            </div>
+                            <div class="marquee-view">
+                                <div class="marquee company_trade ">
+                                </div>
+                            </div>
+                        </div>
+                        <div class="content">
+                            <div class="head">
+                                <span class="col">需求工种</span>
+                                <span class="col">需求数量</span>
+                            </div>
+                            <div class="marquee-view">
+                                <div class="marquee job_category">
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="column">
+                <!-- 订单 -->
+                <div class="order panel">
+                    <div class="inner">
+                        <div class="caption">
+                            <h3>招考</h3>
+                        </div>
+                        <div class="data">
+                            <div class="item">
+                                <h4 class="recruit_count">0</h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #ed3f35;"></i>
+                                    招考场次
+                                </span>
+                            </div>
+                            <div class="item">
+                                <h4 class="recruit_post">0</h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #eacf19;"></i>
+                                    招考岗位
+                                </span>
+                            </div>
+                            <div class="item">
+                                <h4 class="recruit_apply">0</h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #9fe6b8;"></i>
+                                    报名总人数
+                                </span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+               
+                <!--点位-->
+                <div class="point panel">
+                    <div class="inner">
+                        <h3>考生年龄分布</h3>
+                        <div class="chart">
+                            <div class="pie age recruit_age"></div>
+                            <div class="data">
+                                <div class="item">
+                                    <h4 class="age-gt35"></h4>
+                                    <span>
+                                        <i class="icon-dot" style="color: #ed3f35"></i>
+                                        35岁及以下
+                                    </span>
+                                </div>
+                                <div class="item">
+                                    <h4 class="age-lt35"></h4>
+                                    <span>
+                                        <i class="icon-dot" style="color: #eacf19"></i>
+                                        35岁以上
+                                    </span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <!--点位-->
+                <div class="point panel">
+                    <div class="inner">
+                        <h3>考生学历分布</h3>
+                        <div class="chart">
+                            <div class="pie edu recruit_education"></div>
+                            <div class="data">
+                                <div class="item">
+                                    <h4 class="edu-unknown"></h4>
+                                    <span>
+                                        <i class="icon-dot" style="color: #ed3f35"></i>
+                                        未知学历
+                                    </span>
+                                </div>
+                                <div class="item">
+                                    <h4 class="edu-total"></h4>
+                                    <span>
+                                        <i class="icon-dot" style="color: #eacf19"></i>
+                                        学历统计
+                                    </span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </body>
+    <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script>
+    <script src="https://www.jq22.com/jquery/echarts-4.2.1.min.js"></script>
+    <script src="./js/index.js"></script>
+
+</html>

文件差異過大導致無法顯示
+ 5 - 0
public/jucai/js/350582.json


+ 408 - 0
public/jucai/js/index.js

@@ -0,0 +1,408 @@
+//自调用函数
+(function() {
+	// 1、页面一加载就要知道页面宽度计算
+	var setFont = function() {
+		// 因为要定义变量可能和别的变量相互冲突,污染,所有用自调用函数
+		var html = document.documentElement; // 获取html
+		// 获取宽度
+		var width = html.clientWidth;
+
+		// 判断
+		if (width < 1024) width = 1024
+		if (width > 1920) width = 1920
+		// 设置html的基准值
+		var fontSize = width / 80 + 'px';
+		// 设置给html
+		html.style.fontSize = fontSize;
+	}
+	setFont();
+	// 2、页面改变的时候也需要设置
+	// 尺寸改变事件
+	window.onresize = function() {
+		setFont();
+	}
+})();
+$.get('https://www.jucai.gov.cn/api/config/bi/agg', (res) => {
+	agg_init(res)
+});
+$.get('https://www.jucai.gov.cn/api/config/bi/company', (res) => {
+	company_init(res)
+});
+
+function agg_init(data) {
+	$('.resume_sex-total').text(data.resume_sex[3].count);
+	$('.resume_sex-male').text(data.resume_sex[1].count);
+	$('.resume_sex-female').text(data.resume_sex[2].count);
+	$('.recruit_count').text(data.recruit_count);
+	$('.recruit_post').text(data.recruit_post);
+	$('.recruit_apply').text(data.recruit_apply);
+	this.resume_trade(data.resume_trade);
+	this.resume_age(data.resume_age);
+	this.resume_education(data.resume_education);
+	this.pieAge(data);
+	this.pieEdu(data);
+}
+
+function company_init(data) {
+	this.company_total(data);
+	this.company_count(data);
+}
+
+function resume_trade(data) {
+	let titleArr = [];
+	let countArr = [];
+	data.forEach((item, index) => {
+		titleArr.push(item.name)
+		countArr.push(item.count)
+	});
+	var option = {
+		//鼠标提示工具
+		tooltip: {
+			trigger: 'axis'
+		},
+		xAxis: {
+			// 类目类型
+			type: 'category',
+			// x轴刻度文字
+			data: titleArr,
+			axisTick: {
+				show: false //去除刻度线
+			},
+			axisLabel: {
+				color: '#4c9bfd' //文本颜色
+			},
+			axisLine: {
+				show: false //去除轴线
+			},
+			boundaryGap: false //去除轴内间距
+		},
+		yAxis: {
+			// 数据作为刻度文字
+			type: 'value',
+			axisTick: {
+				show: false //去除刻度线
+			},
+			axisLabel: {
+				color: '#4c9bfd' //文本颜色
+			},
+			axisLine: {
+				show: false //去除轴线
+			},
+			boundaryGap: false //去除轴内间距
+		},
+		//图例组件
+		legend: {
+			textStyle: {
+				color: '#4c9bfd' // 图例文字颜色
+
+			},
+			right: '10%' //距离右边10%
+		},
+		// 设置网格样式
+		grid: {
+			show: true, // 显示边框
+			top: '20%',
+			left: '3%',
+			right: '4%',
+			bottom: '3%',
+			borderColor: '#012f4a', // 边框颜色
+			containLabel: true // 包含刻度文字在内
+		},
+		series: [{
+			name: '求职人数',
+			// 数据
+			data: countArr,
+			// 图表类型
+			type: 'line',
+			// 圆滑连接
+			smooth: true,
+			itemStyle: {
+				color: '#00f2f1' // 线颜色
+			}
+		}]
+	};
+	var myechart = echarts.init($('.resume_trade')[0]);
+	myechart.setOption(option);
+}
+
+function resume_age(data) {
+	let unknown = 0;
+	let total = 0;
+	data.map((item, index) => {
+		if (item.name == '其他') {
+			unknown += item.count;
+			//其他数据
+			item.value = item.count;
+		} else {
+			total += item.count;
+			item.value = item.count;
+		}
+		return item;
+	});
+	var myechar = echarts.init($('.resume_age')[0]);
+	option = {
+		// 控制提示
+		tooltip: {
+			// 非轴图形,使用item的意思是放到数据对应图形上触发提示
+			trigger: 'item',
+			// 格式化提示内容:
+			// a 代表图表名称 b 代表数据名称 c 代表数据  d代表  当前数据/总数据的比例
+			formatter: "{a} <br/>{b} : {c} ({d}%)"
+		},
+		// 控制图表
+		series: [{
+			// 图表名称
+			name: '年龄',
+			// 图表类型
+			type: 'pie',
+			// 南丁格尔玫瑰图 有两个圆  内圆半径10%  外圆半径70%
+			// 百分比基于  图表DOM容器的半径
+			radius: ['10%', '70%'],
+			// 图表中心位置 left 50%  top 50% 距离图表DOM容器
+			center: ['50%', '50%'],
+			// 半径模式,另外一种是 area 面积模式
+			roseType: 'radius',
+			// 数据集 value 数据的值 name 数据的名称
+			data: data,
+			//文字调整
+			label: {
+				fontSize: 10
+			},
+			//引导线
+			labelLine: {
+				length: 8,
+				length2: 10
+			}
+		}],
+		color: ['#006cff', '#9fe6b8', '#32c5e9', '#1d9dff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff']
+	};
+	myechar.setOption(option);
+}
+
+function resume_education(data) {
+	let unknown = 0;
+	let total = 0;
+	data.map((item, index) => {
+		if (item.name == '其他') {
+			unknown += item.count;
+			//其他数据
+			item.value = item.count;
+		} else {
+			total += item.count;
+			item.value = item.count;
+		}
+		return item;
+	});
+	$('.resume_education-unknown').text(unknown);
+	$('.resume_education-total').text(total);
+	var myechar = echarts.init($('.resume_education')[0]);
+	option = {
+		// 控制提示
+		tooltip: {
+			// 非轴图形,使用item的意思是放到数据对应图形上触发提示
+			trigger: 'item',
+			// 格式化提示内容:
+			// a 代表图表名称 b 代表数据名称 c 代表数据  d代表  当前数据/总数据的比例
+			formatter: "{a} <br/>{b} : {c} ({d}%)"
+		},
+		// 控制图表
+		series: [{
+			// 图表名称
+			name: '学历',
+			// 图表类型
+			type: 'pie',
+			// 南丁格尔玫瑰图 有两个圆  内圆半径10%  外圆半径70%
+			// 百分比基于  图表DOM容器的半径
+			radius: ['10%', '70%'],
+			// 图表中心位置 left 50%  top 50% 距离图表DOM容器
+			center: ['50%', '50%'],
+			// 半径模式,另外一种是 area 面积模式
+			roseType: 'radius',
+			// 数据集 value 数据的值 name 数据的名称
+			data: data,
+			//文字调整
+			label: {
+				fontSize: 10
+			},
+			//引导线
+			labelLine: {
+				length: 8,
+				length2: 10
+			}
+		}],
+		color: ['#006cff', '#9fe6b8', '#32c5e9', '#1d9dff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff']
+	};
+	myechar.setOption(option);
+}
+
+function pieAge(data) {
+	let recruit_age = data.recruit_age;
+	let gt35 = 0;
+	let lt35 = 0;
+	recruit_age.map((item, index) => {
+		if (item.name == '35到40岁' || item.name == '40岁以上') {
+			gt35 += item.count;
+			//其他数据
+			item.value = item.count;
+		} else {
+			lt35 += item.count;
+			item.value = item.count;
+		}
+		return item;
+	});
+	$('.age-gt35').text(gt35);
+	$('.age-lt35').text(lt35);
+	var myechartAge = echarts.init($('.recruit_age')[0]);
+	option = {
+		// 控制提示
+		tooltip: {
+			// 非轴图形,使用item的意思是放到数据对应图形上触发提示
+			trigger: 'item',
+			// 格式化提示内容:
+			// a 代表图表名称 b 代表数据名称 c 代表数据  d代表  当前数据/总数据的比例
+			formatter: "{a} <br/>{b} : {c} ({d}%)"
+		},
+		// 控制图表
+		series: [{
+			// 图表名称
+			name: '年龄',
+			// 图表类型
+			type: 'pie',
+			// 南丁格尔玫瑰图 有两个圆  内圆半径10%  外圆半径70%
+			// 百分比基于  图表DOM容器的半径
+			radius: ['10%', '70%'],
+			// 图表中心位置 left 50%  top 50% 距离图表DOM容器
+			center: ['50%', '50%'],
+			// 半径模式,另外一种是 area 面积模式
+			roseType: 'radius',
+			// 数据集 value 数据的值 name 数据的名称
+			data: recruit_age,
+			//文字调整
+			label: {
+				fontSize: 10
+			},
+			//引导线
+			labelLine: {
+				length: 8,
+				length2: 10
+			}
+		}],
+		color: ['#006cff', '#9fe6b8', '#32c5e9', '#1d9dff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff']
+	};
+	myechartAge.setOption(option);
+}
+
+function pieEdu(data) {
+	let eduction = data.recruit_education;
+	let unknown = 0;
+	let total = 0;
+	eduction.map((item, index) => {
+		if (item.name == '其他') {
+			unknown += item.count;
+			eduction.splice(index, 1);
+		} else {
+			total += item.count;
+			item.value = item.count;
+		}
+		return item;
+	});
+	$('.edu-unknown').text(unknown);
+	$('.edu-total').text(total);
+	var myechart = echarts.init($('.recruit_education')[0]);
+	option = {
+		// 控制提示
+		tooltip: {
+			// 非轴图形,使用item的意思是放到数据对应图形上触发提示
+			trigger: 'item',
+			// 格式化提示内容:
+			// a 代表图表名称 b 代表数据名称 c 代表数据  d代表  当前数据/总数据的比例
+			formatter: "{a} <br/>{b} : {c} ({d}%)"
+		},
+		// 控制图表
+		series: [{
+			// 图表名称
+			name: '学历',
+			// 图表类型
+			type: 'pie',
+			// 南丁格尔玫瑰图 有两个圆  内圆半径10%  外圆半径70%
+			// 百分比基于  图表DOM容器的半径
+			radius: ['10%', '70%'],
+			// 图表中心位置 left 50%  top 50% 距离图表DOM容器
+			center: ['50%', '50%'],
+			// 半径模式,另外一种是 area 面积模式
+			roseType: 'radius',
+			// 数据集 value 数据的值 name 数据的名称
+			data: eduction,
+			//文字调整
+			label: {
+				fontSize: 10
+			},
+			//引导线
+			labelLine: {
+				length: 8,
+				length2: 10
+			}
+		}],
+		color: ['#006cff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff', '#9fe6b8', '#32c5e9', '#1d9dff']
+	};
+	myechart.setOption(option);
+}
+
+function company_total(data) {
+	$('.company_number').text(data.total_count[0].count);
+	$('.jobs_number').text(data.total_count[1].count);
+}
+
+function company_count(data) {
+	//事件委托
+	$('.monitor').on('click', ' a', function () {
+		//点击当前的a 加类名 active  他的兄弟删除类名
+		$(this).addClass('active').siblings().removeClass('active');
+		//获取一一对应的下标
+		var index = $(this).index();
+		//选取content 然后狗日对应下标的 显示   当前的兄弟.content隐藏
+		$('.content').eq(index).show().siblings('.content').hide();
+	});
+	var index = 0;
+	var monitortimer = setInterval(() => {
+		index++;
+		if (index > 1) {
+			index = 0;
+		}
+		$('.monitor a').eq(index).click();
+	}, 5000);
+	//填充数据
+	var company_trade = data.company_trade;
+	var job_category = data.job_category;
+	var html = '';
+	company_trade.forEach(function(item) {
+		html += `<div class="row">`;
+		html += `<span class="col">${item.name}</span>`;
+		html += `<span class="col">${item.count}</span>`;
+		html += `<span class="icon-dot"></span>`;
+		html += `</div>`;
+	});
+	//渲染
+	$('.company_trade').html(html);
+	html = '';
+	job_category.forEach(function(item) {
+		html += `<div class="row">`;
+		html += `<span class="col">${item.name}</span>`;
+		html += `<span class="col">${item.count}</span>`;
+		html += `<span class="icon-dot"></span>`;
+		html += `</div>`;
+	});
+	//渲染
+	$('.job_category').html(html);
+	//滚动
+	//原理:把marquee下面的子盒子都复制一遍 加入到marquee中
+	//      然后动画向上滚动,滚动到一半重新开始滚动
+	//因为选取的是两个marquee  所以要遍历
+	$('.monitor .marquee').each(function (index, dom) {
+		//将每个 的所有子级都复制一遍
+		var rows = $(dom).children().clone();
+		//再将新的到的加入原来的
+		$(dom).append(rows);
+	});
+
+}

文件差異過大導致無法顯示
+ 1 - 0
public/jucai/js/jquery.min.js


+ 600 - 0
public/linggong/css/index.css

@@ -0,0 +1,600 @@
+body{
+    line-height: 1.15;
+    font-size: 0.5rem;
+    margin: 0;
+    padding: 0;
+    background-repeat: no-repeat;
+    background-position: 0 0 / cover;
+    background-color: #101129;
+}
+*{
+    margin: 0;
+    padding: 0;
+    font-weight: normal;
+}
+ul{
+    list-style: none;
+}
+a{
+    text-decoration: none;
+}
+.viewport {
+    /* 限定大小 */
+    min-width: 1024px;
+    max-width: 1920px;
+    min-height: 780px;
+    margin: 0 auto;
+    background: url(../images/logo.png) no-repeat 0 0 / contain;
+    display: flex;
+    padding: 3.667rem 0.833rem 0;
+}
+.column{
+    flex: 3;
+    position: relative;
+}
+.column:nth-child(2){
+    flex: 4;
+    margin: 1.333rem 0.833rem 0;
+}
+.panel {
+    /* 边框 */
+    box-sizing: border-box;
+    border: 2px solid red;
+    border-image: url(../images/border.png) 51 38 21 132;
+    border-width: 2.125rem 1.583rem 0.875rem 5.5rem;
+    position: relative;
+    margin-bottom: 0.833rem;
+}
+.panel .inner {
+    /* 装内容 */
+    /* height: 60px; */
+    position: absolute;
+    top: -2.125rem;
+    right: -1.583rem;
+    bottom: -0.875rem;
+    left: -5.5rem;
+    padding: 1rem 1.5rem;
+}
+.panel h3{
+    font-size: 0.833rem;
+    color: #fff;
+}
+/* 概览区域 */
+.overview{
+    height: 4.583rem;
+  }
+  .overview .inner{
+    display: flex;
+    justify-content: space-between;
+  }
+  .overview h4{
+    font-size: 1.167rem;
+    padding-left: 0.2rem;
+    color: #fff;
+    margin-bottom: 0.333rem
+  }
+  .overview span{
+    font-size: 0.667rem;
+    color: #4c9bfd;
+    text-align: center;
+}
+/* 监控 */
+.monitor{
+	height: 27rem;
+  }
+  .monitor .inner{
+	padding: 1rem 0;
+	display: flex;
+	flex-direction: column;
+  }
+  .monitor .tabs{
+	padding: 0 1.5rem;
+	margin-bottom: 0.75rem;
+  }
+  .monitor .tabs a{
+	color: #1950c4;
+	font-size: 0.75rem;
+	padding: 0 1.125rem;
+  }
+  
+  .monitor .tabs a:first-child{
+	border-right: 0.083rem solid #00f2f1;
+	padding-left: 0;
+  }
+  
+  .monitor .tabs a.active{
+	color: #fff;
+  }
+  .monitor .content{
+	flex: 1;
+	display: none;
+	position: relative;
+  }
+  .monitor .head{
+	background: rgba(255, 255, 255, 0.1);
+	font-size: 0.583rem;
+	padding: 0.5rem 1.5rem;
+	color: #68d8fe;
+	display: flex;
+	justify-content: space-between;
+	line-height: 1.05;
+  }
+  .monitor .col:nth-child(1) {
+	width: 3.2rem;
+  }
+  .monitor .col:nth-child(2) {
+	width: 8.4rem;
+	/* 不换行  一行省略*/
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
+  }
+  .monitor .col:nth-child(3) {
+	width: 3.2rem;
+  }
+  .monitor .marquee-view{
+  position: absolute;
+  top: 1.6rem;
+  bottom: 0; 
+  width: 100%; 
+  overflow: hidden;
+}
+
+.monitor .row{
+  line-height: 1.05;
+  padding: 0.5rem 1.5rem;
+  color: #61a8ff;
+  font-size: 0.5rem;
+  position: relative;
+  display: flex;
+  justify-content: space-between;
+}
+.monitor .row:hover{
+  color:#68d8ff;
+  background: rgba(255, 255, 255, 0.1);
+}
+.monitor .row:hover .icon-dot{
+  opacity: 1;
+}
+
+.monitor .icon-dot{
+  position: absolute;
+  left: 0.64rem;
+  opacity: 0;
+}
+.monitor .marquee-view{
+	position: absolute;
+	top: 1.6rem;
+	bottom: 0; 
+	width: 100%; 
+	overflow: hidden;
+  }
+  
+  .monitor .row{
+	line-height: 1.05;
+	padding: 0.5rem 1.5rem;
+	color: #61a8ff;
+	font-size: 0.5rem;
+	position: relative; 
+	display: flex;
+	justify-content: space-between;
+  }
+  .monitor .row:hover{
+	color:#68d8ff;
+	background: rgba(255, 255, 255, 0.1);
+  }
+  .monitor .row:hover .icon-dot{
+	opacity: 1;
+  }
+  
+  .monitor .icon-dot{
+	position: absolute;
+	left: 0.64rem;
+	opacity: 0;
+}
+/* ------------------------------------------------------------动画 */
+@keyframes row{
+  0%{}
+  100%{
+    transform: translateY(-50%);
+  }
+}
+/* 调用动画 */
+.monitor .marquee {
+  /* //infinite永久调用动画 */
+  animation: row  10s linear infinite;
+}
+/*鼠标划入 停止动画  */
+.monitor .marquee:hover {
+  animation-play-state: paused;
+}
+/* 点位 */
+.point {
+  height: 14rem;
+}
+.point .chart {
+  display: flex;
+  margin-top: 1rem;
+  justify-content: space-between;
+}
+.point .pie {
+  width: 13rem;
+  height: 10rem;
+  margin-left: -0.4rem;
+}
+.point .data {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  width: 7rem;
+  padding: 1.5rem 1.25rem;
+  box-sizing: border-box;
+  background-image: url(../images/rect.png);
+  background-size: cover;
+}
+.point h4 {
+  margin-bottom: 0.5rem;
+  font-size: 1.167rem;
+  color: #fff;
+}
+.point span {
+  display: block;
+  color: #4c9bfd;
+  font-size: 0.667rem;
+}
+/* 地图  */
+.map {
+  height: 24.1rem;
+  margin-bottom: 0.833rem;
+  display: flex;
+  flex-direction: column;
+}
+.map h3 {
+  line-height: 1;
+  padding: 0.667rem 0;
+  margin: 0;
+  font-size: 0.833rem;
+  color: #fff;
+}
+.map .icon-cube {
+  color: #68d8fe;
+}
+.map .chart {
+  flex: 1;
+  background-color: rgba(255, 255, 255, 0.05);
+}
+.map .geo {
+  width: 100%;
+  height: 100%;
+}
+/* 用户模块 */
+.users {
+  height: 14.167rem;
+  display: flex;
+}
+.users .chart {
+  display: flex;
+  margin-top: 1rem;
+}
+.users .bar {
+  width: 24.5rem;
+  height: 10rem;
+}
+.users .data {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  width: 7rem;
+  padding: 1.5rem 1.25rem;
+  box-sizing: border-box;
+  background-image: url(../images/rect.png);
+  background-size: cover;
+}
+.users h4 {
+  margin-bottom: 0.5rem;
+  font-size: 1.167rem;
+  color: #fff;
+}
+.users span {
+  display: block;
+  color: #4c9bfd;
+  font-size: 0.667rem;
+}
+/* 订单 */
+.order {
+  height: 6.167rem;
+}
+.order .filter {
+  display: flex;
+}
+.order .filter a {
+  display: block;
+  height: 0.75rem;
+  line-height: 1;
+  padding: 0 0.75rem;
+  color: #1950c4;
+  font-size: 0.75rem;
+  border-right: 0.083rem solid #00f2f1;
+}
+.order .filter a:first-child {
+  padding-left: 0;
+}
+.order .filter a:last-child {
+  border-right: none;
+}
+.order .filter a.active {
+  color: #fff;
+  font-size: 0.833rem;
+}
+.order .data {
+  display: flex;
+  margin-top: 0.833rem;
+}
+.order .item {
+  width: 50%;
+}
+.order h4 {
+  font-size: 1.167rem;
+  color: #fff;
+  margin-bottom: 0.417rem;
+}
+.order span {
+  display: block;
+  color: #4c9bfd;
+  font-size: 0.667rem;
+  text-align: center;
+}
+/* 销售区域 */
+.sales {
+  height: 10.5rem;
+}
+.sales .caption {
+  display: flex;
+  line-height: 1;
+}
+.sales h3 {
+  height: 0.75rem;
+  padding-right: 0.75rem;
+  /* border-right: 0.083rem solid #00f2f1; */
+}
+.sales a {
+  padding: 0.167rem;
+  font-size: 0.667rem;
+  margin: -0.125rem 0 0 0.875rem;
+  border-radius: 0.125rem;
+  color: #0bace6;
+}
+.sales a.active {
+  background-color: #4c9bfd;
+  color: #fff;
+}
+.sales .inner {
+  display: flex;
+  flex-direction: column;
+}
+.sales .chart {
+  flex: 1;
+  padding-top: 0.6rem;
+  position: relative;
+}
+.sales .label {
+  position: absolute;
+  left: 1.75rem;
+  top: 0.75rem;
+  color: #4996f5;
+  font-size: 0.583rem;
+}
+.sales .line {
+  width: 100%;
+  height: 100%;
+}
+/* 渠道区块 */
+.wrap {
+  display: flex;
+}
+.channel,
+.quarter {
+  flex: 1;
+  height: 9.667rem;
+}
+.channel {
+  margin-right: 0.833rem;
+}
+.channel .data {
+  overflow: hidden;
+}
+.channel .item {
+  margin-top: 0.85rem;
+}
+.channel .item:first-child {
+  float: left;
+}
+.channel .item:last-child {
+  float: right;
+}
+.channel h4 {
+  color: #fff;
+  font-size: 1.333rem;
+  margin-bottom: 0.2rem;
+}
+.channel small {
+  font-size: 50%;
+}
+.channel span {
+  display: block;
+  color: #4c9bfd;
+  font-size: 0.583rem;
+}
+/* 季度区块 */
+.quarter .inner {
+  display: flex;
+  flex-direction: column;
+  margin: 0 -0.25rem;
+}
+.quarter .chart {
+  flex: 1;
+  padding-top: 0.75rem;
+}
+.quarter .box {
+  position: relative;
+}
+.quarter .label {
+  transform: translate(-50%, -30%);
+  color: #fff;
+  font-size: 1.25rem;
+  position: absolute;
+  left: 50%;
+  top: 50%;
+}
+.quarter .label small {
+  font-size: 50%;
+}
+.quarter .gauge {
+  height: 3.5rem;
+}
+.quarter .data {
+  display: flex;
+  justify-content: space-between;
+}
+.quarter .item {
+  width: 50%;
+}
+.quarter h4 {
+  color: #fff;
+  font-size: 1rem;
+  margin-bottom: 0.4rem;
+}
+.quarter span {
+  display: block;
+  width: 100%;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+  overflow: hidden;
+  color: #4c9bfd;
+  font-size: 0.583rem;
+}
+/* 排行榜 */
+.top {
+  height: 11.8rem;
+}
+.top .inner {
+  display: flex;
+}
+.top .all {
+  display: flex;
+  flex-direction: column;
+  width: 7rem;
+  color: #4c9bfd;
+  font-size: 0.6rem;
+  vertical-align: middle;
+}
+.top .all ul {
+  padding-left: 0.5rem;
+  margin-top: 0.5rem;
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-around;
+}
+.top .all li {
+  overflow: hidden;
+}
+.top .all [class^="icon-"] {
+  font-size: 1.5rem;
+  vertical-align: middle;
+  margin-right: 0.5rem;
+}
+.top .province {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+  color: #fff;
+}
+.top .province i {
+  padding: 0 0.5rem;
+  margin-top: 0.208rem;
+  float: right;
+  font-style: normal;
+  font-size: 0.583rem;
+  color: #0bace6;
+}
+.top .province s {
+  display: inline-block;
+  transform: scale(0.8);
+  text-decoration: none;
+}
+.top .province .icon-up {
+  color: #dc3c33;
+}
+.top .province .icon-down {
+  color: #36be90;
+}
+.top .province .data {
+  flex: 1;
+  display: flex;
+  margin-top: 0.6rem;
+}
+.top .province ul {
+  flex: 1;
+  line-height: 1;
+  margin-bottom: 0.25rem;
+}
+.top .province ul li {
+  display: flex;
+  justify-content: space-between;
+}
+.top .province ul span {
+  display: block;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
+.top .province ul.sup {
+  font-size: 0.583rem;
+}
+.top .province ul.sup li {
+  color: #4995f4;
+  padding: 0.5rem;
+}
+.top .province ul.sup li.active {
+  color: #a3c6f2;
+  background-color: rgba(10, 67, 188, 0.2);
+}
+.top .province ul.sub {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-around;
+  font-size: 0.5rem;
+  background-color: rgba(10, 67, 188, 0.2);
+}
+.top .province ul.sub li {
+  color: #52ffff;
+  padding: 0.417rem 0.6rem;
+}
+.clock {
+  position: absolute;
+  top: -1.5rem;
+  right: 1.667rem;
+  font-size: 0.833rem;
+  color: #0bace6;
+}
+.clock i {
+  margin-right: 5px;
+  font-size: 0.833rem;
+}
+@media screen and (max-width: 1600px) {
+  .top span {
+    transform: scale(0.9);
+  }
+  .top .province ul.sup li {
+    padding: 0.4rem 0.5rem;
+  }
+  .top .province ul.sub li {
+    padding: 0.23rem 0.5rem;
+  }
+  .quarter span {
+    transform: scale(0.9);
+  }
+}
+
+.panel .item h4 {text-align: center;}

+ 62 - 0
public/linggong/fonts/icomoon.css

@@ -0,0 +1,62 @@
+@font-face {
+  font-family: 'icomoon';
+  src:  url('icomoon.eot');
+  src:  url('icomoon.eot#iefix') format('embedded-opentype'),
+    url('icomoon.ttf') format('truetype'),
+    url('icomoon.woff') format('woff'),
+    url('icomoon.svg#icomoon') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+
+[class^="icon-"], [class*=" icon-"] {
+  /* use !important to prevent issues with browser extensions that change fonts */
+  font-family: 'icomoon' !important;
+  speak: none;
+  font-style: normal;
+  font-weight: normal;
+  font-variant: normal;
+  text-transform: none;
+  line-height: 1;
+
+  /* Better Font Rendering =========== */
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-dot:before {
+  content: "\e900";
+}
+.icon-cup1:before {
+  content: "\e901";
+}
+.icon-cup2:before {
+  content: "\e902";
+}
+.icon-cup3:before {
+  content: "\e903";
+}
+.icon-clock:before {
+  content: "\e904";
+}
+.icon-down:before {
+  content: "\e905";
+}
+.icon-cube:before {
+  content: "\e906";
+}
+.icon-plane:before {
+  content: "\e907";
+}
+.icon-train:before {
+  content: "\e908";
+}
+.icon-bus:before {
+  content: "\e909";
+}
+.icon-bag:before {
+  content: "\e90a";
+}
+.icon-up:before {
+  content: "\e90b";
+}

二進制
public/linggong/fonts/icomoon.eot


+ 22 - 0
public/linggong/fonts/icomoon.svg

@@ -0,0 +1,22 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="icomoon" horiz-adv-x="1024">
+<font-face units-per-em="1024" ascent="857.6" descent="-166.4" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
+<glyph unicode="&#xe900;" glyph-name="dot" d="M510-44.4v0c-109.2 0-198.8 89.2-198.8 198.8v395.2c0 109.2 89.2 198.8 198.8 198.8v0c109.2 0 198.8-89.2 198.8-198.8v-395.6c0-109.2-89.6-198.4-198.8-198.4z" />
+<glyph unicode="&#xe901;" glyph-name="cup1" d="M824.4 674c0 68.8-56.4 124.8-124.8 124.8h-375.6c-68.8 0-124.8-56.4-124.8-124.8-214 0-187.6 0-187.6-124.8 0-103.2 84.4-187.6 187.6-187.6 8 0 14 1.6 22 1.6 42-122 140.8-232.8 259.2-250v-145.2h-93.6c-17.2 0-31.2-14-31.2-31.2s14-31.2 31.2-31.2h250c17.2 0 31.2 14 31.2 31.2s-14 31.2-31.2 31.2h-93.6v145.2c118.8 17.2 217.2 126.4 259.2 250 6.4 0 14-1.6 22-1.6 103.2 0 187.6 84.4 187.6 187.6-2 124.8 24.8 124.8-187.6 124.8zM199.2 424c-68.8 0-125.2 56-125.2 124.8s1.6 62.4 124.8 62.4l0.4-187.2zM578.8 296h-94.4v202.4c0 29.2-0.8 46.8-2 52.8-1.6 6-5.2 10.4-11.6 13.6s-20.4 4.4-42 4.4h-9.2v44c45.6 10 80 30 103.6 60.4h55.6v-377.6zM824.4 424v187.2c123.6 0 124.8 6.4 124.8-62.4-1.6-68.8-56.4-124.8-124.8-124.8z" />
+<glyph unicode="&#xe902;" glyph-name="cup2" d="M824.4 674c0 68.8-56.4 124.8-124.8 124.8h-375.6c-68.8 0-124.8-56.4-124.8-124.8-214 0-187.6 0-187.6-124.8 0-103.2 84.4-187.6 187.6-187.6 8 0 14 1.6 22 1.6 42-122 140.8-232.8 259.2-250v-145.2h-93.6c-17.2 0-31.2-14-31.2-31.2s14-31.2 31.2-31.2h250c17.2 0 31.2 14 31.2 31.2s-14 31.2-31.2 31.2h-93.6v145.2c118.8 17.2 217.2 126.4 259.2 250 6.4 0 14-1.6 22-1.6 103.2 0 187.6 84.4 187.6 187.6-2 124.8 24.8 124.8-187.6 124.8zM74 548.8c0 68.8 1.6 62.4 124.8 62.4l0.4-187.2c-68.8 0-125.2 56-125.2 124.8zM618 359.2v-63.6h-205.2v53.2c60.8 99.6 96.8 161.2 108.4 184.8s17.2 42 17.2 55.2c0 10-1.6 17.6-5.2 22.8s-8.8 7.6-16 7.6-12.4-2.8-16-8.4c-3.6-5.6-5.2-16.4-5.2-33.2v-35.6h-83.6v14c0 20.8 1.2 37.6 3.2 49.6s7.6 24 16 35.6 19.6 20.4 33.2 26.4 29.6 9.2 48.8 9.2c37.2 0 65.2-9.2 84-27.6 19.2-18.4 28.4-41.6 28.4-70 0-21.6-5.2-44-16-68s-42.4-74.4-94.4-152h102.4zM824.4 424v187.2c123.6 0 124.8 6.4 124.8-62.4-1.6-68.8-56.4-124.8-124.8-124.8z" />
+<glyph unicode="&#xe903;" glyph-name="cup3" d="M824.4 674c0 68.8-56.4 124.8-124.8 124.8h-375.6c-68.8 0-124.8-56.4-124.8-124.8-214 0-187.6 0-187.6-124.8 0-103.2 84.4-187.6 187.6-187.6 8 0 14 1.6 22 1.6 42-122 140.8-232.8 259.2-250v-145.2h-93.6c-17.2 0-31.2-14-31.2-31.2s14-31.2 31.2-31.2h250c17.2 0 31.2 14 31.2 31.2s-14 31.2-31.2 31.2h-93.6v145.2c118.8 17.2 217.2 126.4 259.2 250 6.4 0 14-1.6 22-1.6 103.2 0 187.6 84.4 187.6 187.6-2 124.8 24.8 124.8-187.6 124.8zM74 548.8c0 68.8 1.6 62.4 124.8 62.4l0.4-187.2c-68.8 0-125.2 56-125.2 124.8zM620 337.2c-6.8-16.4-18.4-28.8-35.2-37.6-16.8-8.4-38-12.8-64-12.8-29.6 0-52.8 4.8-69.6 14.8s-28 22-33.2 36.4-8 39.2-8 74.8v29.6h93.2v-60.8c0-16 0.8-26.4 2.8-30.8s6-6.4 12.8-6.4c7.2 0 12 2.8 14.4 8.4s3.6 20 3.6 43.6v26c0 14.4-1.6 24.8-4.8 31.6s-8 10.8-14.4 13.2c-6.4 2-18.4 3.2-36.8 3.6v53.6c22 0 36 0.8 41.2 2.4s9.2 5.2 11.2 11.2c2.4 5.6 3.6 14.8 3.6 26.8v20.8c0 13.2-1.2 21.6-4 26-2.8 4-6.8 6.4-12.4 6.4-6.4 0-10.8-2-13.2-6.4s-3.6-13.6-3.6-28v-30.8h-93.2v32c0 35.6 8 60 24.4 72.4s42.4 18.8 78 18.8c44.4 0 74.8-8.8 90.4-26 16-17.2 23.6-41.6 23.6-72.4 0-20.8-2.8-36-8.4-45.2s-15.6-18-30-25.6c14-4.8 24.8-12.4 31.6-23.6 6.8-10.8 10.4-36.4 10.4-76.4-0.4-30.4-3.6-53.2-10.4-69.6zM824.4 424v187.2c123.6 0 124.8 6.4 124.8-62.4-1.6-68.8-56.4-124.8-124.8-124.8z" />
+<glyph unicode="&#xe904;" glyph-name="clock" d="M502.898 788.907c-245.76 0-443.733-197.973-443.733-443.733s200.249-443.733 443.733-443.733c245.76 0 443.733 197.973 443.733 443.733s-200.249 443.733-443.733 443.733zM791.893 210.916c-6.827-13.653-18.204-20.48-31.858-20.48-4.551 0-9.102 0-13.653 2.276l-261.689 118.329c-11.378 4.551-20.48 18.204-20.48 31.858v245.76c0 18.204 15.929 34.133 34.133 34.133s34.133-15.929 34.133-34.133v-225.28l241.209-109.227c18.204-6.827 25.031-25.031 18.204-43.236z" />
+<glyph unicode="&#xe905;" glyph-name="down" d="M174.56 163.976l288.192-242.864c26.864-22.384 70.512-22.384 97.368 0l288.192 242.864c43.088 36.936 12.312 99.608-48.128 99.608h-110.24v448.8c0 49.248-40.288 89.536-89.536 89.536h-179.072c-49.248 0-89.536-40.288-89.536-89.536v-448.8h-109.12c-61-0.56-91.216-63.232-48.128-99.608z" />
+<glyph unicode="&#xe906;" glyph-name="cube" d="M930.8 632.4c-2 1.2-4.4 2.4-6.4 3.2l-378 219.6c-21.2 12-47.2 12-68.4 0l-384.8-222.8c-21.2-12.4-34.4-34.8-34-59.2l1.2-442.4c0-24.4 12.8-47.2 34-59.2l378.4-219.6c1.6-1.2 3.2-2 4.8-3.2 3.6-2 7.6-3.6 11.6-5.2 0 0 0.4 0 0.4 0 0.4 0 1.2-0.4 1.6-0.4 6.4-2 12.8-3.2 19.6-3.2 0 0 0 0 0 0 0.4 0 0.8 0 0.8 0v0c12 0 23.6 2.8 34 8.8l385.2 222.4c21.2 12.4 34.4 34.8 34 59.2v442.8c0.4 24.4-12.8 47.2-34 59.2zM512.4 716.4l246.4-143.2-248.4-143.2-61.6 36-184.8 107.2 248.4 143.2zM829.2 169.6l-249.2-143.2v285.2l249.2 143.2v-285.2z" />
+<glyph unicode="&#xe907;" glyph-name="plane" d="M937.2 777.6c-22 18.4-53.2 20.8-93.6 7.6s-76.8-36-108.8-68.4l-101.2-101.2-421.6 100.8c-7.2 1.6-13.2 0.8-19.2-5.2l-80.8-81.2c-4.4-4.4-6.4-10-5.6-17.2 1.2-6.8 5.2-12 10.8-15.2l321.6-176.8-164-164-122.8 33.6c-0.8 0.8-2.4 0.8-5.2 0.8-5.6 0-10.8-2-14.4-5.6l-61.2-61.6c-4.8-4.8-6.4-10-5.6-16 0.8-6.8 4-11.2 8.4-14.4l159.6-119.6 119.6-159.6c3.6-4.8 8.8-7.6 15.2-8.4h1.2c5.6 0 10.8 2 14.4 5.6l60.8 60.8c5.6 5.6 6.8 12.8 5.2 19.6l-33.6 122.8 164 164 176.8-321.6c3.2-5.6 6.8-8.8 13.2-10 1.2-0.8 2.4-0.8 4.4-0.8 5.2 0 8.8 1.2 12 4l81.2 60.8c7.2 5.6 9.6 12.8 7.6 20.8l-101.2 440.8 102 102c32.4 32.4 55.2 68.4 68.4 108.8 13.2 40.8 10.8 72-7.6 94z" />
+<glyph unicode="&#xe908;" glyph-name="train" d="M576 237.2v-256h277.2c35.2 0 64-28.8 64-64s-28.8-64-64-64h-682.4c-35.2 0-64 28.8-64 64s28.8 64 64 64h277.2v256h-64c-35.2 0-64 28.8-64 64s28.8 64 64 64h256c35.2 0 64-28.8 64-64s-28.8-64-64-64h-64zM427.6 784c7.2 46.4 50.8 78.4 97.6 71.2 36.8-5.6 65.2-34.4 71.2-71.2 88-16.8 169.2-59.6 232.4-123.2 174.8-174.8 174.8-458.4 0-633.6-24.8-24.8-65.6-24.8-90.4 0s-24.8 65.6 0 90.4v0c124.8 124.8 124.8 327.6 0 452.4s-327.6 124.8-452.4 0-124.8-327.6 0-452.4c0 0 0 0 0 0 24.8-24.8 24.8-65.6 0-90.4s-65.6-24.8-90.4 0c-175.2 174.8-175.2 458.4-0.4 633.6 63.2 63.2 144.4 106.4 232.4 123.2v0z" />
+<glyph unicode="&#xe909;" glyph-name="bus" d="M203.902 20.316c-76.37 13.852-131.4 80.862-131.026 158.354l3.744 479.182c0.748 87.6 72.252 158.354 159.852 158.354h551.058c87.6 0 159.104-70.754 159.852-158.354l3.744-479.182c0.374-69.631-43.8-131.4-110.062-153.114l31.072-53.534c16.846-28.452 7.112-65.138-21.338-81.984s-65.138-7.112-81.984 21.338c0 0.374-0.374 0.374-0.374 0.748l-59.898 103.698c-0.374 0.748-0.748 1.124-1.124 1.872h-366.874c-0.374-0.748-0.748-1.498-1.124-1.872l-59.898-103.698c-16.472-28.826-52.784-38.934-81.61-22.462s-38.934 52.784-22.462 81.61c0 0.374 0.374 0.374 0.374 0.748l28.077 48.292zM452.102 656.354h-279.648c-10.856 0-19.842-8.984-19.842-19.842v0-239.59c0-10.856 8.984-19.842 19.842-19.842v0h279.648c10.856 0 19.842 8.984 19.842 19.842v0 239.59c0 10.856-8.984 19.842-19.842 19.842 0 0 0 0 0 0zM851.544 656.354h-279.648c-10.856 0-19.842-8.984-19.842-19.842v0-239.59c0-10.856 8.984-19.842 19.842-19.842 0 0 0 0 0 0h279.648c10.856 0 19.842 8.984 19.842 19.842v0 239.59c0 10.856-8.984 19.842-19.842 19.842 0 0 0 0 0 0zM731.75 296.97c-32.944 0-59.898-26.954-59.898-59.898s26.954-59.898 59.898-59.898 59.898 26.954 59.898 59.898-26.954 59.898-59.898 59.898zM292.25 296.97c-32.944 0-59.898-26.954-59.898-59.898s26.954-59.898 59.898-59.898 59.898 26.954 59.898 59.898-26.58 59.898-59.898 59.898z" />
+<glyph unicode="&#xe90a;" glyph-name="bag" d="M816.928 591.86h-87.137c0 120.346-97.563 218.028-217.791 218.028s-217.791-97.681-217.791-218.028h-87.137c-47.902 0-86.659-39.26-86.659-87.231l-0.478-523.315c0.109-48.101 39.043-87.067 87.119-87.231h609.844c48.090 0.163 87.028 39.13 87.137 87.222v523.299c-0.109 48.101-39.043 87.067-87.119 87.231h-0.017zM512 722.682c0.034 0 0.079 0 0.119 0 72.12 0 130.585-58.465 130.585-130.585 0-0.084 0-0.168 0-0.252v0.011h-261.406c0 0.069 0 0.153 0 0.237 0 72.12 58.465 130.585 130.585 130.585 0.040 0 0.084 0 0.124 0h-0.006zM512 286.577c-120.228 0-217.791 97.681-217.791 218.077h87.112c0-0.079 0-0.17 0-0.261 0-72.12 58.465-130.585 130.585-130.585 0.040 0 0.084 0 0.124 0h-0.006c0.022 0 0.048 0 0.074 0 72.12 0 130.585 58.465 130.585 130.585 0 0.084 0 0.168 0 0.252v-0.011h87.137c0-120.371-97.588-218.052-217.816-218.052z" />
+<glyph unicode="&#xe90b;" glyph-name="up" d="M848.728 541.856l-288.368 242.696c-26.864 22.392-70.752 22.392-97.616 0l-288.368-242.696c-42.984-36.72-12.536-99.408 48.36-99.408h110.152c0 0 0-0.896 0-0.896v-447.776c0-49.256 40.296-89.552 89.552-89.552h179.112c49.256 0 89.552 40.296 89.552 89.552v447.776c0 0 0 0.896 0 0.896h109.256c60.896 0 91.344 62.688 48.36 99.408z" />
+</font></defs></svg>

二進制
public/linggong/fonts/icomoon.ttf


二進制
public/linggong/fonts/icomoon.woff


二進制
public/linggong/images/border.png


二進制
public/linggong/images/line.png


二進制
public/linggong/images/logo.png


二進制
public/linggong/images/logob.png


二進制
public/linggong/images/rect.png


+ 281 - 0
public/linggong/index.html

@@ -0,0 +1,281 @@
+<!DOCTYPE html>
+<html lang="en">
+
+    <head>
+        <meta charset="UTF-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        <meta http-equiv="X-UA-Compatible" content="ie=edge">
+        <title>晋江人力聚合大数据看板</title>
+        <link rel="stylesheet" href="./css/index.css">
+        <link rel="stylesheet" href="./fonts/icomoon.css">
+    </head>
+
+    <body>
+        <div class="viewport">
+            <div class="column">
+                <!--概览-->
+                <div class="overview panel">
+                    <div class="inner">
+                        <div class="item">
+                            <h4 class="people_total"></h4>
+                            <span>
+                                <i class="icon-dot" style="color: #006cff"></i>
+                                注册人数
+                            </span>
+                        </div>
+                        <div class="item">
+                            <h4 class="broker_total"></h4>
+                            <span>
+                                <i class="icon-dot" style="color: #6acca3"></i>
+                                经纪人
+                            </span>
+                        </div>
+                        <div class="item">
+                            <h4 class="people_man"></h4>
+                            <span>
+                                <i class="icon-dot" style="color: #6acca3"></i>
+                                 男
+                            </span>
+                        </div>
+                        <div class="item">
+                            <h4 class="people_woman"></h4>
+                            <span>
+                                <i class="icon-dot" style="color: #ed3f35"></i>
+                                女
+                            </span>
+                        </div>
+                    </div>
+                </div>
+                <!--监控-->
+                <div class="monitor panel">
+                    <div class="inner">
+                        <div class="tabs">
+                            <a href="javascript:;" data-index="0" class="active">最热岗位</a>
+                            <a href="javascript:;" data-index="1">最新岗位</a>
+                        </div>
+                        <div class="content" style="display: block;">
+                            <div class="head">
+                                <span class="col">岗位名</span>
+                                <span class="col">公司名</span>
+                                <span class="col">工资</span>
+                            </div>
+                            <div class="marquee-view">
+                                <div class="marquee hot">
+                                </div>
+                            </div>
+                        </div>
+                        <div class="content">
+                            <div class="head">
+                                <span class="col">岗位名</span>
+                                <span class="col">公司名</span>
+                                <span class="col">工资</span>
+                            </div>
+                            <div class="marquee-view">
+                                <div class="marquee new">
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                
+                <!-- 用户 -->
+                <div class="users panel">
+                    <div class="inner">
+                        <h3>岗位类型</h3>
+                        <div class="chart">
+                            <div class="bar type"></div>
+                            <div class="data" style="padding: 1.5rem 0.5rem">
+                                <!-- <div class="item">
+                                    <h4 class="type-count"></h4>
+                                    <span>
+                                        <i class="icon-dot" style="color: #ed3f35"></i>
+                                        类型总数
+                                    </span>
+                                </div> -->
+                                <div class="item">
+                                    <h4 class="type-total"></h4>
+                                    <span>
+                                        <i class="icon-dot" style="color: #eacf19"></i>
+                                        岗位总数
+                                    </span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                
+            </div>
+            <div class="column">
+                <!-- 培训课程 -->
+                <div class="order panel">
+                    <div class="inner">
+                        <!-- 数据 -->
+                        <div class="data">
+                            <div class="item">
+                                <h4 class="train"></h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #ed3f35;"></i>
+                                    培训课程
+                                </span>
+                            </div>
+                            <div class="item">
+                                <h4 class="train_join"></h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #eacf19;"></i>
+                                    培训意向人数
+                                </span>
+                            </div>
+                            <div class="item">
+                                <h4 class="company_total"></h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #ed3f35;"></i>
+                                    雇主数量
+                                </span>
+                            </div>
+                            <div class="item">
+                                <h4 class="comjobs_total"></h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #eacf19;"></i>
+                                    发布岗位/任务
+                                </span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <!-- 地图 -->
+                <div class="map">
+                    <h3>
+                        <span class="icon-cube"></span>
+                        晋江人力大数据地图
+                    </h3>
+                    <div class="chart">
+                        <div class="geo"></div>
+                    </div>
+                </div>
+                <!-- 用户 -->
+                <div class="users panel">
+                    <div class="inner">
+                        <h3>岗位类别</h3>
+                        <div class="chart">
+                            <div class="bar cate"></div>
+                            <div class="data">
+                                <div class="item">
+                                    <h4 class="cate-count"></h4>
+                                    <span>
+                                        <i class="icon-dot" style="color: #ed3f35"></i>
+                                        类别总数
+                                    </span>
+                                </div>
+                                <div class="item">
+                                    <h4 class="cate-total"></h4>
+                                    <span>
+                                        <i class="icon-dot" style="color: #eacf19"></i>
+                                        岗位总数
+                                    </span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="column">
+                <!-- 订单 -->
+                <div class="order panel">
+                    <div class="inner">
+                        <!-- 数据 -->
+                        <div class="data">
+                            <div class="item">
+                                <h4 class="obb_job_deal_num"></h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #ed3f35;"></i>
+                                    成交单数
+                                </span>
+                            </div>
+                            <div class="item">
+                                <h4 class="obb_job_deal_money"></h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #eacf19;"></i>
+                                    成交金额
+                                </span>
+                            </div>
+                            <div class="item">
+                                <h4 class="obb_job_service_num"></h4>
+                                <span>
+                                    <i class="icon-dot" style="color: #ed3f35;"></i>
+                                    服务站数量
+                                </span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <!-- 销售额 -->
+                <div class="sales panel">
+                    <div class="inner">
+                        <div class="caption">
+                            <h3>月注册用户数</h3>
+                        </div>
+                        <div class="chart">
+                            <!-- <div class="label">单位:万</div> -->
+                            <div class="line"></div>
+                        </div>
+                    </div>
+                </div>
+               
+                <!--点位-->
+                <div class="point panel">
+                    <div class="inner">
+                        <h3>年龄分布统计</h3>
+                        <div class="chart">
+                            <div class="pie age"></div>
+                            <div class="data">
+                                <div class="item">
+                                    <h4 class="age-unknown"></h4>
+                                    <span>
+                                        <i class="icon-dot" style="color: #ed3f35"></i>
+                                        其他年龄
+                                    </span>
+                                </div>
+                                <div class="item">
+                                    <h4 class="age-total"></h4>
+                                    <span>
+                                        <i class="icon-dot" style="color: #eacf19"></i>
+                                        年龄统计
+                                    </span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <!--点位-->
+                <div class="point panel">
+                    <div class="inner">
+                        <h3>学历分布统计</h3>
+                        <div class="chart">
+                            <div class="pie edu"></div>
+                            <div class="data">
+                                <div class="item">
+                                    <h4 class="edu-unknown"></h4>
+                                    <span>
+                                        <i class="icon-dot" style="color: #ed3f35"></i>
+                                        未知学历
+                                    </span>
+                                </div>
+                                <div class="item">
+                                    <h4 class="edu-total"></h4>
+                                    <span>
+                                        <i class="icon-dot" style="color: #eacf19"></i>
+                                        学历统计
+                                    </span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </body>
+    <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script>
+    <script src="https://www.jq22.com/jquery/echarts-4.2.1.min.js"></script>
+    <script src="./js/index.js"></script>
+
+</html>

文件差異過大導致無法顯示
+ 5 - 0
public/linggong/js/350582.json


+ 888 - 0
public/linggong/js/index.js

@@ -0,0 +1,888 @@
+//自调用函数
+(function() {
+	// 1、页面一加载就要知道页面宽度计算
+	var setFont = function() {
+		// 因为要定义变量可能和别的变量相互冲突,污染,所有用自调用函数
+		var html = document.documentElement; // 获取html
+		// 获取宽度
+		var width = html.clientWidth;
+
+		// 判断
+		if (width < 1024) width = 1024
+		if (width > 1920) width = 1920
+		// 设置html的基准值
+		var fontSize = width / 80 + 'px';
+		// 设置给html
+		html.style.fontSize = fontSize;
+	}
+	setFont();
+	// 2、页面改变的时候也需要设置
+	// 尺寸改变事件
+	window.onresize = function() {
+		setFont();
+	}
+})();
+$.get('https://linggong.jinjianghc.com/mainapp.php/screen/index', (res) => {
+	init(res.data)
+})
+$.get('http://bd.aggadmin.com/admin/api/odd_job_other', (res) => {
+	init_other(res)
+})
+
+function init(data) {
+	$('.broker_total').text(data.broker_total);
+	$('.comjobs_total').text(data.comjobs_total);
+	$('.company_total').text(data.company_total);
+	$('.people_man').text(data.people_man);
+	$('.people_total').text(data.people_total);
+	$('.people_woman').text(data.people_woman);
+	$('.train').text(data.train);
+	$('.train_join').text(data.train_join);
+	this.geo(data);
+	this.monitor(data);
+	this.pieAge(data);
+	this.pie(data);
+	this.userType(data);
+	this.user(data);
+	this.order(data);
+	this.sale(data);
+	this.gauge(data);
+	this.province(data);
+}
+
+function init_other(data) {
+	$('.obb_job_deal_num').text(data.obb_job_deal_num);
+	$('.obb_job_deal_money').text(data.obb_job_deal_money);
+	$('.obb_job_service_num').text(data.obb_job_service_num);
+}
+
+function geo(data) {
+	let community = data.community;
+	let other = 0;
+	let max = 0; //最大人数
+	community = community.map((item) => {
+		if (item.name == '其他') {
+			other += item.count;
+		} else if (item.count > max) {
+			max = item.count;
+		}
+		return {
+			name: item.name,
+			value: item.count
+		};
+	});
+	community.push({
+		name: '泉州出口加工区',
+		value: 0
+	});
+	community.push({
+		name: '安平开发区',
+		value: 0
+	});
+	var myecharts = echarts.init($('.map .geo')[0])
+
+	// $.get('https://geo.datav.aliyun.com/areas_v3/bound/350582.json', result => {
+	$.get('js/350582.json', result => {
+		// 注册 echarts 地图
+		echarts.registerMap('jinjiang', result);
+		var option = {
+			backgroundColor: '#080a20',
+			title: {
+				text: '其他地区:' + other + ' (人)',
+				// subtext: '其他地区:' + community[community.length - 1].count,
+				left: 'left',
+				textStyle: {
+					color: '#ffffff'
+				}
+			},
+			tooltip: {
+				trigger: 'item',
+				formatter: '{b}<br/>{c} (人)'
+			},
+			visualMap: {
+				min: 0,
+				max: max,
+				text: ['多', '少'],
+				realtime: true,
+				calculable: true,
+				color: '#fff',
+				inRange: {
+					color: ['#142957', '#0b1c2d']
+				},
+				textStyle: {
+					color: '#fff'
+				}
+			},
+			series: [{
+				type: 'map',
+				map: 'jinjiang',
+				zoom: 1.2,
+				roam: true,
+				coordinateSystem: 'geo',
+				// rippleEffect: {
+				//     brushType: 'stroke'
+				// },
+				symbolSize: function(val, params) {
+					return 8;
+				},
+				label: {
+					show: true,
+					color: '#fff'
+				},
+				itemStyle: {
+					normal: {
+						areaColor: '#142957',
+						borderColor: '#0692a4'
+					}
+				},
+				emphasis: {
+					areaColor: '#0b1c2d'
+				},
+				data: community,
+				nameMap: {
+					'晋江市经济开发区': '经济开发区'
+				}
+			}]
+		};
+		myecharts.setOption(option);
+	})
+}
+
+function monitor(data) {
+	//事件委托
+	$('.monitor').on('click', ' a', function () {
+	    //点击当前的a 加类名 active  他的兄弟删除类名
+	    $(this).addClass('active').siblings().removeClass('active');
+	    //获取一一对应的下标 
+	    var index = $(this).index();
+	    //选取content 然后狗日对应下标的 显示   当前的兄弟.content隐藏
+	    $('.content').eq(index).show().siblings('.content').hide();
+	});
+	//填充数据
+	let comjobs = data.comjobs;
+	var html = '';
+	comjobs.hot.forEach(function(item) {
+		html += `<div class="row">`;
+		html += `<span class="col">${item.title}</span>`;
+		html += `<span class="col">${item.worker.ftitle}</span>`;
+		html += `<span class="col">${item.bwagall || '面谈'}</span>`;
+		html += `<span class="icon-dot"></span>`;
+		html += `</div>`;
+	});
+	//渲染
+	$('.monitor .marquee.hot').html(html);
+    html = '';
+	comjobs.new.forEach(function(item) {
+		html += `<div class="row">`;
+		html += `<span class="col">${item.title}</span>`;
+		html += `<span class="col">${item.company}</span>`;
+		html += `<span class="col">${item.salary || '面谈'}</span>`;
+		html += `<span class="icon-dot"></span>`;
+		html += `</div>`;
+	});
+	//渲染
+	$('.monitor .marquee.new').html(html);
+	//滚动
+	//原理:把marquee下面的子盒子都复制一遍 加入到marquee中
+	//      然后动画向上滚动,滚动到一半重新开始滚动
+	//因为选取的是两个marquee  所以要遍历
+	// $('.monitor .marquee').each(function (index, dom) {
+	//     //将每个 的所有子级都复制一遍
+	//     var rows = $(dom).children().clone();
+	//     //再将新的到的加入原来的
+	//     $(dom).append(rows);
+	// });
+
+}
+
+function pieAge(data) {
+	let eduction = data.user_age;
+	let unknown = 0;
+	let total = 0;
+	eduction.map((item, index) => {
+		if (item.name == '其他') {
+			unknown += item.count;
+			// eduction.splice(index, 1);
+			//其他数据
+			item.value = item.count;
+		} else {
+			total += item.count;
+			item.value = item.count;
+		}
+		return item;
+	});
+    console.log(eduction)
+	$('.age-unknown').text(unknown);
+	$('.age-total').text(total);
+	var myechartAge = echarts.init($('.pie.age')[0]);
+	option = {
+		// 控制提示
+		tooltip: {
+			// 非轴图形,使用item的意思是放到数据对应图形上触发提示
+			trigger: 'item',
+			// 格式化提示内容:
+			// a 代表图表名称 b 代表数据名称 c 代表数据  d代表  当前数据/总数据的比例
+			formatter: "{a} <br/>{b} : {c} ({d}%)"
+		},
+		// 控制图表
+		series: [{
+			// 图表名称
+			name: '年龄',
+			// 图表类型
+			type: 'pie',
+			// 南丁格尔玫瑰图 有两个圆  内圆半径10%  外圆半径70%
+			// 百分比基于  图表DOM容器的半径
+			radius: ['10%', '70%'],
+			// 图表中心位置 left 50%  top 50% 距离图表DOM容器
+			center: ['50%', '50%'],
+			// 半径模式,另外一种是 area 面积模式
+			roseType: 'radius',
+			// 数据集 value 数据的值 name 数据的名称
+			data: eduction,
+			//文字调整
+			label: {
+				fontSize: 10
+			},
+			//引导线
+			labelLine: {
+				length: 8,
+				length2: 10
+			}
+		}],
+		color: ['#006cff', '#9fe6b8', '#32c5e9', '#1d9dff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff']
+	};
+	myechartAge.setOption(option);
+}
+function pie(data) {
+	let eduction = data.eduction;
+	let unknown = 0;
+	let total = 0;
+	eduction.map((item, index) => {
+		if (item.name == '未知') {
+			unknown += item.count;
+			eduction.splice(index, 1);
+		} else {
+			total += item.count;
+			item.value = item.count;
+		}
+		return item;
+	});
+	$('.edu-unknown').text(unknown);
+	$('.edu-total').text(total);
+	var myechart = echarts.init($('.pie.edu')[0]);
+	option = {
+		// 控制提示
+		tooltip: {
+			// 非轴图形,使用item的意思是放到数据对应图形上触发提示
+			trigger: 'item',
+			// 格式化提示内容:
+			// a 代表图表名称 b 代表数据名称 c 代表数据  d代表  当前数据/总数据的比例
+			formatter: "{a} <br/>{b} : {c} ({d}%)"
+		},
+		// 控制图表
+		series: [{
+			// 图表名称
+			name: '学历',
+			// 图表类型
+			type: 'pie',
+			// 南丁格尔玫瑰图 有两个圆  内圆半径10%  外圆半径70%
+			// 百分比基于  图表DOM容器的半径
+			radius: ['10%', '70%'],
+			// 图表中心位置 left 50%  top 50% 距离图表DOM容器
+			center: ['50%', '50%'],
+			// 半径模式,另外一种是 area 面积模式
+			roseType: 'radius',
+			// 数据集 value 数据的值 name 数据的名称
+			data: eduction,
+			//文字调整
+			label: {
+				fontSize: 10
+			},
+			//引导线
+			labelLine: {
+				length: 8,
+				length2: 10
+			}
+		}],
+		color: ['#006cff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff', '#9fe6b8', '#32c5e9', '#1d9dff']
+	};
+	myechart.setOption(option);
+}
+// 用户
+function userType(data) {
+	let cate = data.type;
+	let titleArr = [];
+	let countArr = [];
+	let total = 0;
+	let count = cate.length;
+	// 中间省略的数据  准备三项
+	var hiddenItem = {
+		name: '',
+		value: 10,
+		// 柱子颜色
+		itemStyle: {
+			color: '#254065'
+		},
+		// 鼠标经过柱子颜色
+		emphasis: {
+			itemStyle: {
+				color: '#254065'
+			}
+		},
+		// 工具提示隐藏
+		tooltip: {
+			extraCssText: 'opacity:0'
+		}
+	};
+    let titleAttr = {
+            1: '按月',
+            2: '按时',
+            3: '按件',
+            4: '按项目',
+            5: '其他',
+    }
+	cate.forEach((item, index) => {
+		if (index < 5 || index + 5 >= count) {
+			titleArr.push(titleAttr[item.wtype])
+			countArr.push(item.count)
+		} else if (count > 10 && index == 5) {
+			//随机三个
+			let arr = []
+			for (let i = 5; i < count - 5; i++) {
+				arr.push(i)
+			}
+			let randomArr = [];
+			while (randomArr.length < 3) {
+				let temp = (Math.random() * arr.length) >> 0;
+				randomArr.push(arr.splice(temp, 1)[0]);
+			}
+			randomArr.forEach((randomIndex) => {
+				titleArr.push(titleAttr[cate[randomIndex].wtype])
+				countArr.push(cate[randomIndex].count)
+			})
+		}
+		total += item.count
+	});
+	$('.type-count').text(count)
+	$('.type-total').text(total)
+
+	option = {
+		// 工具提示
+		tooltip: {
+			// 触发类型  经过轴触发axis  经过轴触发item
+			trigger: 'item',
+			// 轴触发提示才有效
+			axisPointer: {
+				// 默认为直线,可选为:'line' 线效果 | 'shadow' 阴影效果       
+				type: 'shadow'
+			}
+		},
+		// 图表边界控制
+		grid: {
+			// 距离 上右下左 的距离
+			left: '0',
+			right: '3%',
+			bottom: '3%',
+			top: '5%',
+			// 大小是否包含文本【类似于boxsizing】
+			containLabel: true,
+			//显示边框
+			show: true,
+			//边框颜色
+			borderColor: 'rgba(0, 240, 255, 0.3)'
+		},
+		// 控制x轴
+		xAxis: [{
+			// 使用类目,必须有data属性
+			type: 'category',
+			// 使用 data 中的数据设为刻度文字
+			data: titleArr,
+			// 刻度设置
+			axisTick: {
+				// true意思:图形在刻度中间
+				// false意思:图形在刻度之间
+				alignWithLabel: false,
+				show: false
+			},
+			//文字
+			axisLabel: {
+				color: '#4c9bfd'
+			}
+		}],
+		// 控制y轴
+		yAxis: [{
+			// 使用数据的值设为刻度文字
+			type: 'value',
+			axisTick: {
+				// true意思:图形在刻度中间
+				// false意思:图形在刻度之间
+				alignWithLabel: false,
+				show: false
+			},
+			//文字
+			axisLabel: {
+				color: '#4c9bfd'
+			},
+			splitLine: {
+				lineStyle: {
+					color: 'rgba(0, 240, 255, 0.3)'
+				}
+			},
+		}],
+		// 控制x轴
+		series: [
+
+			{
+				// series配置
+				// 颜色
+				itemStyle: {
+					// 提供的工具函数生成渐变颜色
+					color: new echarts.graphic.LinearGradient(
+						// (x1,y2) 点到点 (x2,y2) 之间进行渐变
+						0, 0, 0, 1,
+						[{
+								offset: 0,
+								color: '#00fffb'
+							}, // 0 起始颜色
+							{
+								offset: 1,
+								color: '#0061ce'
+							} // 1 结束颜色
+						]
+					)
+				},
+				// 图表数据名称
+				name: '岗位统计',
+				// 图表类型
+				type: 'bar',
+				// 柱子宽度
+				barWidth: '60%',
+				// 数据
+				data: countArr
+			}
+		]
+	};
+	var myechart = echarts.init($('.users .bar.type')[0]);
+	myechart.setOption(option);
+}
+
+// 用户
+function user(data) {
+	let cate = data.cate;
+	let titleArr = [];
+	let countArr = [];
+	let total = 0;
+	let count = cate.length;
+	// 中间省略的数据  准备三项
+	var hiddenItem = {
+		name: '',
+		value: 10,
+		// 柱子颜色
+		itemStyle: {
+			color: '#254065'
+		},
+		// 鼠标经过柱子颜色
+		emphasis: {
+			itemStyle: {
+				color: '#254065'
+			}
+		},
+		// 工具提示隐藏
+		tooltip: {
+			extraCssText: 'opacity:0'
+		}
+	};
+	cate.forEach((item, index) => {
+		if (index < 5 || index + 5 >= count) {
+			titleArr.push(item.title)
+			countArr.push(item.count)
+		} else if (count > 10 && index == 5) {
+			//随机三个
+			let arr = []
+			for (let i = 5; i < count - 5; i++) {
+				arr.push(i)
+			}
+			let randomArr = [];
+			while (randomArr.length < 3) {
+				let temp = (Math.random() * arr.length) >> 0;
+				randomArr.push(arr.splice(temp, 1)[0]);
+			}
+			randomArr.forEach((randomIndex) => {
+				titleArr.push(cate[randomIndex].title)
+				countArr.push(cate[randomIndex].count)
+			})
+		}
+		total += item.count
+	});
+	$('.cate-count').text(count)
+	$('.cate-total').text(total)
+
+	option = {
+		// 工具提示
+		tooltip: {
+			// 触发类型  经过轴触发axis  经过轴触发item
+			trigger: 'item',
+			// 轴触发提示才有效
+			axisPointer: {
+				// 默认为直线,可选为:'line' 线效果 | 'shadow' 阴影效果       
+				type: 'shadow'
+			}
+		},
+		// 图表边界控制
+		grid: {
+			// 距离 上右下左 的距离
+			left: '0',
+			right: '3%',
+			bottom: '3%',
+			top: '5%',
+			// 大小是否包含文本【类似于boxsizing】
+			containLabel: true,
+			//显示边框
+			show: true,
+			//边框颜色
+			borderColor: 'rgba(0, 240, 255, 0.3)'
+		},
+		// 控制x轴
+		xAxis: [{
+			// 使用类目,必须有data属性
+			type: 'category',
+			// 使用 data 中的数据设为刻度文字
+			data: titleArr,
+			// 刻度设置
+			axisTick: {
+				// true意思:图形在刻度中间
+				// false意思:图形在刻度之间
+				alignWithLabel: false,
+				show: false
+			},
+			//文字
+			axisLabel: {
+				color: '#4c9bfd'
+			}
+		}],
+		// 控制y轴
+		yAxis: [{
+			// 使用数据的值设为刻度文字
+			type: 'value',
+			axisTick: {
+				// true意思:图形在刻度中间
+				// false意思:图形在刻度之间
+				alignWithLabel: false,
+				show: false
+			},
+			//文字
+			axisLabel: {
+				color: '#4c9bfd'
+			},
+			splitLine: {
+				lineStyle: {
+					color: 'rgba(0, 240, 255, 0.3)'
+				}
+			},
+		}],
+		// 控制x轴
+		series: [
+
+			{
+				// series配置
+				// 颜色
+				itemStyle: {
+					// 提供的工具函数生成渐变颜色
+					color: new echarts.graphic.LinearGradient(
+						// (x1,y2) 点到点 (x2,y2) 之间进行渐变
+						0, 0, 0, 1,
+						[{
+								offset: 0,
+								color: '#00fffb'
+							}, // 0 起始颜色
+							{
+								offset: 1,
+								color: '#0061ce'
+							} // 1 结束颜色
+						]
+					)
+				},
+				// 图表数据名称
+				name: '岗位统计',
+				// 图表类型
+				type: 'bar',
+				// 柱子宽度
+				barWidth: '60%',
+				// 数据
+				data: countArr
+			}
+		]
+	};
+	var myechart = echarts.init($('.users .bar.cate')[0]);
+	myechart.setOption(option);
+}
+
+//订单
+function order(data) {
+	var data = {
+		day365: {
+			orders: '20,301,987',
+			amount: '99834'
+		},
+		day90: {
+			orders: '301,987',
+			amount: '9834'
+		},
+		day30: {
+			orders: '1,987',
+			amount: '3834'
+		},
+		day1: {
+			orders: '987',
+			amount: '834'
+		}
+	}
+	//点击事件
+	$('.order').on('click', '.filter a', function() {
+		//点击之后加类名
+		$(this).addClass('active').siblings().removeClass('active');
+		// 先获取点击a的 data-key自定义属性
+		var key = $(this).attr('data-key');
+		//获取自定义属性
+		// data{}==>data.shuxing data['shuxing]
+		key = data[key]; //
+		$('.order .item h4:eq(0)').text(key.orders);
+		$('.order .item h4:eq(1)').text(key.amount);
+	});
+	//定时器
+	var index = 0;
+	var aclick = $('.order a');
+	setInterval(function() {
+		index++;
+		if (index > 3) {
+			index = 0;
+		}
+		//每san秒调用点击事件
+		aclick.eq(index).click();
+	}, 3000);
+}
+
+//销售
+function sale(data) {
+	let user_month = data.user_month;
+	let titleArr = [];
+	let countArr = [];
+	user_month.forEach((item, index) => {
+		titleArr.push(item.name)
+		countArr.push(item.count)
+	});
+	var option = {
+		//鼠标提示工具
+		tooltip: {
+			trigger: 'axis'
+		},
+		xAxis: {
+			// 类目类型                                  
+			type: 'category',
+			// x轴刻度文字                                  
+			data: titleArr,
+			axisTick: {
+				show: false //去除刻度线
+			},
+			axisLabel: {
+				color: '#4c9bfd' //文本颜色
+			},
+			axisLine: {
+				show: false //去除轴线  
+			},
+			boundaryGap: false //去除轴内间距
+		},
+		yAxis: {
+			// 数据作为刻度文字                                  
+			type: 'value',
+			axisTick: {
+				show: false //去除刻度线
+			},
+			axisLabel: {
+				color: '#4c9bfd' //文本颜色
+			},
+			axisLine: {
+				show: false //去除轴线  
+			},
+			boundaryGap: false //去除轴内间距
+		},
+		//图例组件
+		legend: {
+			textStyle: {
+				color: '#4c9bfd' // 图例文字颜色
+
+			},
+			right: '10%' //距离右边10%
+		},
+		// 设置网格样式
+		grid: {
+			show: true, // 显示边框
+			top: '20%',
+			left: '3%',
+			right: '4%',
+			bottom: '3%',
+			borderColor: '#012f4a', // 边框颜色
+			containLabel: true // 包含刻度文字在内
+		},
+		series: [{
+			name: '注册用户',
+			// 数据                                  
+			data: countArr,
+			// 图表类型                                  
+			type: 'line',
+			// 圆滑连接                                  
+			smooth: true,
+			itemStyle: {
+				color: '#00f2f1' // 线颜色
+			}
+		}]
+	};
+	var myechart = echarts.init($('.line')[0]);
+	myechart.setOption(option);
+
+	//点击效果
+	var data = {
+		year: [
+			[24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
+			[40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79]
+		],
+		quarter: [
+			[23, 75, 12, 97, 21, 67, 98, 21, 43, 64, 76, 38],
+			[43, 31, 65, 23, 78, 21, 82, 64, 43, 60, 19, 34]
+		],
+		month: [
+			[34, 87, 32, 76, 98, 12, 32, 87, 39, 36, 29, 36],
+			[56, 43, 98, 21, 56, 87, 43, 12, 43, 54, 12, 98]
+		],
+		week: [
+			[43, 73, 62, 54, 91, 54, 84, 43, 86, 43, 54, 53],
+			[32, 54, 34, 87, 32, 45, 62, 68, 93, 54, 54, 24]
+		]
+	}
+	$('.sales ').on('click', '.caption a', function() {
+		$(this).addClass('active').siblings('a').removeClass('active');
+		//option series   data
+		//获取自定义属性值
+		var key = $(this).attr('data-type');
+		//取出对应的值
+		key = data[key];
+		//将值设置到 图表中
+		option.series[0].data = key[0];
+		option.series[1].data = key[1];
+		//再次调用才能在页面显示
+		myechart.setOption(option);
+	});
+	//定时器
+	var index = 0;
+	var timer = setInterval(function() {
+		index++;
+		if (index > 4) {
+			index = 0;
+		};
+		$('.sales .caption a').eq(index).click();
+	}, 2000);
+}
+
+function gauge(data) {
+	var option = {
+		series: [{
+			type: 'pie',
+			radius: ['130%', '150%'], // 放大图形
+			center: ['50%', '80%'], // 往下移动  套住75%文字
+			label: {
+				show: false,
+			},
+			startAngle: 180,
+			hoverOffset: 0, // 鼠标经过不变大
+			data: [{
+					value: 100,
+					itemStyle: { // 颜色渐变#00c9e0->#005fc1
+						color: {
+							type: 'linear',
+							x: 0,
+							y: 0,
+							x2: 0,
+							y2: 1,
+							colorStops: [{
+									offset: 0,
+									color: '#00c9e0'
+								},
+								{
+									offset: 1,
+									color: '#005fc1'
+								}
+							]
+						}
+					}
+				},
+				{
+					value: 100,
+					itemStyle: {
+						color: '#12274d'
+					}
+				}, // 颜色#12274d
+
+				{
+					value: 200,
+					itemStyle: {
+						color: 'transparent'
+					}
+				} // 透明隐藏第三块区域
+			]
+		}]
+	};
+	var myechart = echarts.init($('.gauge')[0]);
+	myechart.setOption(option);
+}
+
+function province(data) {
+	var data = [{
+			name: '可爱多',
+			num: '9,086'
+		},
+		{
+			name: '娃哈哈',
+			num: '8,341'
+		},
+		{
+			name: '喜之郎',
+			num: '7,407'
+		},
+		{
+			name: '八喜',
+			num: '6,080'
+		},
+		{
+			name: '小洋人',
+			num: '6,724'
+		},
+		{
+			name: '好多鱼',
+			num: '2,170'
+		},
+	]
+	$('.inner').on('mouseenter', '.sup li', function() {
+		$(this).addClass('active').siblings().removeClass('active');
+		//获取随机的值  sort方法 是给数组排序 a-b是从小到大
+		//.5-随机0-1的数 可能为正可能为负 排序就会随机
+		var radomData = data.sort(function(a, b) {
+			return 0.5 - Math.random()
+		});
+		var html = '';
+		radomData.forEach(function(item) {
+			html +=
+				`<li><span>${item.name}</span><span>${item.num} <s class="icon-up"></s></span></li>`;
+		});
+		//渲染
+		$('.sub').html(html);
+	});
+	$('.province .sup li').eq(0).mouseenter();
+	var index = 0;
+	var timer = setInterval(() => {
+		index++;
+		if (index > 5) {
+			index = 0;
+		}
+		$('.sup li').eq(index).mouseenter();
+	}, 2000);
+}

文件差異過大導致無法顯示
+ 1 - 0
public/linggong/js/jquery.min.js


部分文件因文件數量過多而無法顯示