Browse Source

feat: 康保学院大数据页面

zhangying 1 week ago
parent
commit
91b03f47df

+ 10 - 10
src/main/java/com/ghsc/partybuild/controller/BigDataController.java

@@ -540,28 +540,28 @@ public class BigDataController {
     }
 
     @GetMapping("/getDnpxxxTotalList")
-    public List<HashMap<String, Object>> getDnpxxxTotalList() {
-        return bigDataService.getDnpxxxTotalList();
+    public List<HashMap<String, Object>> getDnpxxxTotalList(@RequestParam(required = false) String dzzdm) {
+        return bigDataService.getDnpxxxTotalList(dzzdm);
     }
 
     @GetMapping("/getPartyBrandTotalList")
-    public List<HashMap<String, Object>> getPartyBrandTotalList() {
-        return bigDataService.getPartyBrandTotalList();
+    public List<HashMap<String, Object>> getPartyBrandTotalList(@RequestParam(required = false) String dzzdm) {
+        return bigDataService.getPartyBrandTotalList(dzzdm);
     }
 
     @GetMapping("/getSzpyTotalList")
-    public List<HashMap<String, Object>> getSzpyTotalList() {
-        return bigDataService.getSzpyTotalList();
+    public List<HashMap<String, Object>> getSzpyTotalList(@RequestParam(required = false) String dzzdm) {
+        return bigDataService.getSzpyTotalList(dzzdm);
     }
 
     @GetMapping("/getDnghbfTotalList")
-    public List<HashMap<String, Object>> getDnghbfTotalList() {
-        return bigDataService.getDnghbfTotalList();
+    public List<HashMap<String, Object>> getDnghbfTotalList(@RequestParam(required = false) String dzzdm) {
+        return bigDataService.getDnghbfTotalList(dzzdm);
     }
 
     @GetMapping("/getZtdrTotalList")
-    public List<HashMap<String, Object>> getZtdrTotalList(Integer year) {
-        return bigDataService.getZtdrTotalList(year);
+    public List<HashMap<String, Object>> getZtdrTotalList(Integer year, @RequestParam(required = false) String dzzdm) {
+        return bigDataService.getZtdrTotalList(year, dzzdm);
     }
 
     @ResponseBody

+ 5 - 5
src/main/java/com/ghsc/partybuild/mapper/BigDataCQuery.java

@@ -241,15 +241,15 @@ public interface BigDataCQuery {
 
     List<HashMap<String, Object>> selectZzpxqkList();
 
-    List<HashMap<String, Object>> selectDnpxxxTotalList();
+    List<HashMap<String, Object>> selectDnpxxxTotalList(@Param("dzzdm") String dzzdm);
 
-    List<HashMap<String, Object>> selectPartyBrandTotalList();
+    List<HashMap<String, Object>> selectPartyBrandTotalList(@Param("dzzdm") String dzzdm);
 
-    List<HashMap<String, Object>> selectSzpyTotalList();
+    List<HashMap<String, Object>> selectSzpyTotalList(@Param("dzzdm") String dzzdm);
 
-    List<HashMap<String, Object>> selectDnghbfTotalList();
+    List<HashMap<String, Object>> selectDnghbfTotalList(@Param("dzzdm") String dzzdm);
 
-    List<HashMap<String, Object>> selectZtdrTotalList(Integer year);
+    List<HashMap<String, Object>> selectZtdrTotalList(Integer year, @Param("dzzdm") String dzzdm);
 
     // 中层干部年龄分段统计
     List<HashMap<String, Object>> selectLeaderTeamNlCount();

+ 5 - 5
src/main/java/com/ghsc/partybuild/service/BigDataService.java

@@ -360,15 +360,15 @@ public interface BigDataService {
 
     List<HashMap<String, Object>> getZzpxqkList();
 
-    List<HashMap<String, Object>> getDnpxxxTotalList();
+    List<HashMap<String, Object>> getDnpxxxTotalList(String dzzdm);
 
-    List<HashMap<String, Object>> getPartyBrandTotalList();
+    List<HashMap<String, Object>> getPartyBrandTotalList(String dzzdm);
 
-    List<HashMap<String, Object>> getSzpyTotalList();
+    List<HashMap<String, Object>> getSzpyTotalList(String dzzdm);
 
-    List<HashMap<String, Object>> getDnghbfTotalList();
+    List<HashMap<String, Object>> getDnghbfTotalList(String dzzdm);
 
-    List<HashMap<String, Object>> getZtdrTotalList(Integer year);
+    List<HashMap<String, Object>> getZtdrTotalList(Integer year, String dzzdm);
 
     // 中层干部年龄分段统计
     List<HashMap<String, Object>> selectLeaderTeamNlCount();

+ 25 - 18
src/main/java/com/ghsc/partybuild/service/impl/BigDataServiceImpl.java

@@ -490,8 +490,8 @@ public class BigDataServiceImpl implements BigDataService {
     }
 
     @Override
-    public List<HashMap<String, Object>> getDnpxxxTotalList() {
-        List<HashMap<String, Object>> list = bigDataCquery.selectDnpxxxTotalList();
+    public List<HashMap<String, Object>> getDnpxxxTotalList(String dzzdm) {
+        List<HashMap<String, Object>> list = bigDataCquery.selectDnpxxxTotalList(dzzdm);
 
         List<HashMap<String, Object>> result = new ArrayList<>();
 
@@ -519,8 +519,8 @@ public class BigDataServiceImpl implements BigDataService {
     }
 
     @Override
-    public List<HashMap<String, Object>> getPartyBrandTotalList() {
-        List<HashMap<String, Object>> list = bigDataCquery.selectPartyBrandTotalList();
+    public List<HashMap<String, Object>> getPartyBrandTotalList(String dzzdm) {
+        List<HashMap<String, Object>> list = bigDataCquery.selectPartyBrandTotalList(dzzdm);
 
         List<HashMap<String, Object>> result = new ArrayList<>();
 
@@ -532,13 +532,16 @@ public class BigDataServiceImpl implements BigDataService {
             data.put("year", year);
 
             Integer finalYear = year;
-            HashMap<String, Object> dbData = list.stream().filter(e -> e.get("year").toString().equals(finalYear.toString())).findFirst().orElse(null);
-            if (dbData != null) {
-                data.put("count", dbData.get("count"));
-            } else {
+            if (list != null && !list.isEmpty()){
+                HashMap<String, Object> dbData = list.stream().filter(e -> e.get("year").toString().equals(finalYear.toString())).findFirst().orElse(null);
+                if (dbData != null) {
+                    data.put("count", dbData.get("count"));
+                } else {
+                    data.put("count", 0);
+                }
+            } else{
                 data.put("count", 0);
             }
-
             result.add(data);
         }
 
@@ -546,14 +549,14 @@ public class BigDataServiceImpl implements BigDataService {
     }
 
     @Override
-    public List<HashMap<String, Object>> getSzpyTotalList() {
-        List<HashMap<String, Object>> list = bigDataCquery.selectSzpyTotalList();
+    public List<HashMap<String, Object>> getSzpyTotalList(String dzzdm) {
+        List<HashMap<String, Object>> list = bigDataCquery.selectSzpyTotalList(dzzdm);
         return list;
     }
 
     @Override
-    public List<HashMap<String, Object>> getDnghbfTotalList() {
-        List<HashMap<String, Object>> list = bigDataCquery.selectDnghbfTotalList();
+    public List<HashMap<String, Object>> getDnghbfTotalList(String dzzdm) {
+        List<HashMap<String, Object>> list = bigDataCquery.selectDnghbfTotalList(dzzdm);
 
         List<HashMap<String, Object>> result = new ArrayList<>();
 
@@ -565,9 +568,13 @@ public class BigDataServiceImpl implements BigDataService {
             data.put("year", year);
 
             Integer finalYear = year;
-            HashMap<String, Object> dbData = list.stream().filter(e -> e.get("year").toString().equals(finalYear.toString())).findFirst().orElse(null);
-            if (dbData != null) {
-                data.put("count", dbData.get("count"));
+            if (list != null && !list.isEmpty()) {
+                HashMap<String, Object> dbData = list.stream().filter(e -> e.get("year").toString().equals(finalYear.toString())).findFirst().orElse(null);
+                if (dbData != null) {
+                    data.put("count", dbData.get("count"));
+                } else {
+                    data.put("count", 0);
+                }
             } else {
                 data.put("count", 0);
             }
@@ -579,8 +586,8 @@ public class BigDataServiceImpl implements BigDataService {
     }
 
     @Override
-    public List<HashMap<String, Object>> getZtdrTotalList(Integer year) {
-        List<HashMap<String, Object>> list = bigDataCquery.selectZtdrTotalList(year);
+    public List<HashMap<String, Object>> getZtdrTotalList(Integer year, String dzzdm) {
+        List<HashMap<String, Object>> list = bigDataCquery.selectZtdrTotalList(year, dzzdm);
 
         List<HashMap<String, Object>> result = new ArrayList<>();
 

+ 5 - 1
src/main/java/com/ghsc/partybuild/service/impl/PEUserServiceImpl.java

@@ -226,7 +226,7 @@ public class PEUserServiceImpl implements PEUserService {
 
                 List<HashMap<String, Object>> zgList = zgUserlList.stream().filter(it -> it.get("DZZDM").toString().equals(itDzzdm)).collect(Collectors.toList());
 
-                Object numSqrd = 0, numJjfz = 0, numFzdx = 0, numYbdy = 0,numZsdy=0;
+                Object numSqrd = 0, numJjfz = 0, numFzdx = 0, numYbdy = 0,numZsdy=0,numXsdy=0,numLsdy=0;
 
                 if (zgList.size() > 0) {
                     numSqrd = zgList.get(0).get("NUM_SQRD");
@@ -234,6 +234,8 @@ public class PEUserServiceImpl implements PEUserService {
                     numFzdx = zgList.get(0).get("NUM_FZDX");
                     numYbdy = zgList.get(0).get("NUM_YBDY");
                     numZsdy = zgList.get(0).get("NUM_ZSDY");
+                    numXsdy = zgList.get(0).get("NUM_XSDY");
+                    numLsdy = zgList.get(0).get("NUM_LSDY");
                 }
 
                 item.put("SQRD", numSqrd);//申请入党数
@@ -241,6 +243,8 @@ public class PEUserServiceImpl implements PEUserService {
                 item.put("FZDX", numFzdx);//发展对象数
                 item.put("YBDY", numYbdy);//预备党员数
                 item.put("ZSDY", numZsdy);//预备党员数
+                item.put("XSDY", numXsdy);//学生身份党员数
+                item.put("LSDY", numLsdy);//老师身份党员数
             }
         }
 

+ 35 - 4
src/main/resources/mapping/BigDataCQuery.xml

@@ -751,11 +751,21 @@
         select year(honourtime) as year
             , sum(case when HONOURTYPE=3 then 1 else 0 end) as count_partyUser
             , sum(case when HONOURTYPE=4 then 1 else 0 end) as count_workUser
-            from dj_dnpxxx where pxlx=1 and OPERATESTATE <![CDATA[ <> ]]> 'D' group by year(honourtime)
+            from dj_dnpxxx
+        where pxlx=1 and OPERATESTATE <![CDATA[ <> ]]> 'D'
+        <if test="dzzdm!=null and dzzdm !=''">
+            and DZZDM = #{dzzdm}
+        </if>
+        group by year(honourtime)
     </select>
     
     <select id="selectPartyBrandTotalList" resultType="java.util.HashMap">
-        select year(BRANDTIME) as year,count(1) as count from dj_brand where OPERATESTATE <![CDATA[ <> ]]> 'D' group by year(BRANDTIME)
+        select year(BRANDTIME) as year,count(1) as count from dj_brand
+        where OPERATESTATE <![CDATA[ <> ]]> 'D'
+        <if test="dzzdm!=null and dzzdm !=''">
+            and PARTYCODE = #{dzzdm}
+        </if>
+        group by year(BRANDTIME)
     </select>
 
     <select id="selectSzpyTotalList" resultType="java.util.HashMap">
@@ -763,6 +773,9 @@
         from CF_DICTIONARY dic
             left join pt_reportScore prs on prs.reportResult=dic.DICKEY
             left join pt_reportdata prd on prd.reportId = prs.reportId
+            <if test="dzzdm!=null and dzzdm !=''">
+                and prd.dzzdm = #{dzzdm}
+            </if>
             left join ZZ_ZZQKXX zz on prd.dzzdm = zz.DZZDM
         where dic.DICTYPEKEY='reportResult'
         group by dic.DICKEY,dic.DICVALUE
@@ -770,11 +783,29 @@
     </select>
 
     <select id="selectDnghbfTotalList" resultType="java.util.HashMap">
-        select year(CAREDATE) as year,count(1) as count from dj_dnghbfmx where 1=1 group by year(CAREDATE)
+        SELECT YEAR
+            ( CAREDATE ) AS `year`,
+            count( mx.ID ) AS count
+        FROM
+            dj_dnghbfmx mx
+            LEFT JOIN dj_dnghbf bf ON mx.DNGHBFID = bf.ID
+        WHERE
+            1 = 1
+            <if test="dzzdm!=null and dzzdm !=''">
+                and bf.dzzdm = #{dzzdm}
+            </if>
+        GROUP BY
+            YEAR (
+            CAREDATE)
     </select>
 
     <select id="selectZtdrTotalList" resultType="java.util.HashMap">
-        select month(ACTIVITYTIME) as month,count(1) as count from dj_ztdrxx where year(ACTIVITYTIME) = #{year} group by month(ACTIVITYTIME)
+        select month(ACTIVITYTIME) as `month`,count(1) as count from dj_ztdrxx
+        where year(ACTIVITYTIME) = #{year}
+        <if test="dzzdm!=null and dzzdm !=''">
+            and dzzdm = #{dzzdm}
+        </if>
+        group by month(ACTIVITYTIME)
     </select>
 
     <select id="selectLeaderTeamNlCount" resultType="java.util.HashMap">

+ 4 - 2
src/main/resources/mapping/PartyTotalCQuery.xml

@@ -214,7 +214,7 @@
     <select id="selectZgUsertotalList" resultType="java.util.HashMap">
         select z.DZZDM,sum(NUM_ZGUSER) as NUM_ZGUSER,sum(NUM_LTX) as NUM_LTX,sum(NUM_SQRD) as NUM_SQRD,sum(NUM_JJFZ) as
         NUM_JJFZ,sum(NUM_FZDX) as NUM_FZDX,sum(NUM_YBDY) as NUM_YBDY,
-        sum(NUM_ZSDY) as NUM_ZSDY
+        sum(NUM_ZSDY) as NUM_ZSDY, sum(NUM_XSDY) AS NUM_XSDY, sum(NUM_LSDY) as NUM_LSDY
         from ZZ_ZZQKXX z
         inner join (
         select us.SZDZBDM,
@@ -226,7 +226,9 @@
         sum(case when us.RYZT ='5' then 1 else 0 end) as NUM_JJFZ, -- 积极分子数
         sum(case when us.RYZT ='6' then 1 else 0 end) as NUM_FZDX, -- 发展对象数
         sum(case when us.RYZT ='2' then 1 else 0 end) as NUM_YBDY, -- 预备党员数
-        sum(case when us.RYZT ='3' then 1 else 0 end) as NUM_ZSDY -- 正式党员
+        sum(case when us.RYZT ='3' then 1 else 0 end) as NUM_ZSDY, -- 正式党员
+        sum(case when us.RYZT in ('2', '3') and fb.isStudent = 1 then 1 else 0 end) as NUM_XSDY, -- 学生党员
+        sum(case when us.RYZT in ('2', '3') and fb.isStudent = 0 then 1 else 0 end) as NUM_LSDY -- 老师党员
         from VM_RYJBXX_ALL us
         inner join ZZ_ZZQKXX z on us.SZDZBDM=z.DZZDM
         inner join rs_ryjbxxfb fb on us.rybm = fb.rybm

+ 2 - 2
src/main/resources/static/app/main/app.js

@@ -75,13 +75,13 @@
                 }]
             }
         }).state("localLogin", {
-            url: "/login1",
+            url: "/loginkb",
             templateUrl: "login-e.html?" + window.sysVersion,
             controller: "loginECtrl",
             resolve: {
                 load: ['$ocLazyLoad', function ($ocLazyLoad) {
                     $ocLazyLoad.load('css/login.css?' + window.sysVersion);
-                    return $ocLazyLoad.load('login.js?' + window.sysVersion);
+                    return $ocLazyLoad.load('login-e.js?' + window.sysVersion);
                 }]
             }
         }).state("homeTabs", {

+ 313 - 0
src/main/resources/static/app/main/bigdata/kbxy/css/style.css

@@ -0,0 +1,313 @@
+/* -------------------------------- 公用 -------------------------------- */
+.head-nav{ width:75%; padding: 10px; position: absolute; left: 240px; top: 5px; z-index: 100;}
+.head-nav ul{ position: relative;}
+.head-nav ul li{ width: 236px; height: 70px; font-size: 22px; color: #F8B551; line-height: 70px; text-align: center; text-shadow: 0 0 20px #F8B551; background: url(../../showDjdsj/images/navbg-normal.png)no-repeat center center;  transition: all 0.25s ease-in-out;}
+.head-nav ul li:hover{ color: #FFF3B3; text-shadow: 0 0 20px #FFF3B3;}
+.head-nav ul li.active { color: #ffc196; text-shadow: 0 0 20px #FFF3B3; background: url(../../showDjdsj/images/navbg-on.png)no-repeat center center; }
+.head-nav ul a.l-li{ margin-left: 2%; float: left;}
+.head-nav ul a.r-li{ margin-right: 2%;float: right; transform: rotateY(180deg);}
+.head-nav ul a.r-li li h2{transform:rotateY(180deg);}
+
+.title{ width:900px; height: 123px; text-align:center; background: url(../../showDjdsj/images/title-bg.png) no-repeat center center; position: absolute; top:0; left: 50%; margin-left: -440px; text-shadow: 0 0 60px #F8B551;}
+.title h1{ font-size: 36px; color:#F8B551; font-weight:600; text-indent: 60px; letter-spacing:8px; margin-top: 10px; background: url(../../showDjdsj/images/d-logo.png) no-repeat 21% bottom;font-weight: bold;}
+
+.container{ width: 100%; height: 100%; padding: 90px 10px 10px 10px; display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; position: absolute; }
+.content{ padding: 10px; overflow: hidden;  }
+.left{width:25%; }
+.right{width:25%;}
+.mid{width:50%; }
+
+/* -------------------------------- 左 -------------------------------- */
+.box{ 
+	width:100%;	
+	background-image: linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3);
+    background-repeat: no-repeat;
+    background-size: 12px 1px, 12px 1px, 12px 1px, 12px 1px, 1px 12px, 1px 12px, 1px 12px, 1px 12px;
+    background-position: 0 0, 100% 0, 0 100%, 100% 100%;
+	padding: 20px 25px;
+	background-color: rgba(0,0,0,.1);
+	box-shadow:inset 0 0 1px #FFF3B3,inset 0 0 20px rgba(248,181,81,.2);
+	position: relative;
+}
+
+.box-2{
+	width:100%;
+	padding: 10px 5px;
+	position: relative;
+}
+
+.b-1{ height: 500px; overflow: hidden;}
+.b-2{ height: 410px; top:90px; }
+
+.box-header{ width:300px; height: 82px; background: url(../../showDjdsj/images/d-logo.png) no-repeat 0 center; position: relative; left: 50%; margin: 20px 0 30px -150px;}
+.bh-2{ background: url(../../showDjdsj/images/icon-2.png) no-repeat 0 center; }
+.box-header span{ font-size: 18px; line-height: 82px; margin-left: 95px; float: left;}
+.box-header h2{ font-family: Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif"; font-size: 36px; color: #ffc196; line-height: 82px; float: left;}
+.box-1-list{ width:100%; background: rgba(255,255,255,.05); padding: 13px 20px; float: left; margin-bottom: 10px; border-radius: 3px;}
+.box-1-list table th{ width:90px; font-size: 16px; color: #fff; text-align: left;}
+.box-1-list table td{ font-size: 16px; color: #fff; text-align: left; padding: 2px 0;}
+.box-1-list table td.t-number{ font-family: Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif"; font-size: 26px; color: #FFC196;}
+.list-2 table td{ width:33.33%;}
+
+.b-3{ margin-top: 15px; float: left; overflow: hidden;}
+.box h1,.box-2 h1{  font-size: 22px; color: #fff; float: left; padding-bottom: 10px;}
+.b-3 p,.b-5 p{ font-size: 16px; margin-bottom: 10px; float: left; margin-left: 10px;margin-top: 5px;}
+.b-3 h2,.b-5 h2{ font-size: 24px; color: #ffc196; line-height: 20px; float: left;margin-top: 5px;}
+.charts,.charts2,.charts3,.charts4,.charts5{ width:100%; float: left; /*background: #333;*/}
+
+.bottom{ position: relative; top: 105px;}
+.b-4{ width:49%; float: left; overflow: hidden;}
+
+/* -------------------------------- 中 -------------------------------- */
+.mid-nav{ width:100%; display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: center; position: relative; top: -87px;}
+.mid-nav-content{ margin: 0 4%; position: relative;}
+
+.nav-title{ font-size: 20px; color: #fff; text-align: center;}
+.nav-number{
+	font-family: Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
+	font-size: 36px;
+	color: #ffc196;
+	text-align: center;
+	text-shadow: 0 0 20px #f90;
+	min-width: 160px;
+	background-image: linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3), linear-gradient(#FFF3B3, #FFF3B3);
+    background-repeat: no-repeat;
+    background-size: 10px 1px, 10px 1px, 10px 1px, 10px 1px, 1px 10px, 1px 10px, 1px 10px, 1px 10px;
+    background-position: 0 0, 100% 0, 0 100%, 100% 100%;
+	padding: 5px 20px;
+	margin: 15px 0;
+	background-color: #841B0C;
+	box-shadow:inset 0 0 1px #FFF3B3,inset 0 0 20px rgba(124,43,255,.1);
+	position: relative;
+}
+.nav-number:before{ content: ""; width:15px; height: 1px; background: #FFF3B3; position: absolute; top:50%; left: -15px; margin-top: -1px;}
+.nav-number:after{ content: ""; width:15px; height: 1px; background: #FFF3B3; position: absolute; top:50%; right: -15px; margin-top: -1px;}
+
+.map-content{ width:100%; display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; position: relative; top:-80px;}
+.map-content .map-box{ width:33.33%; padding: 0 3%; }
+.map-content .map-box h3{ font-size: 18px; text-align: center;}
+.map-content .map-box .map{ width:100%; height: 230px;}
+.map-content .map-box .guangdong{ background: url(../../showDjdsj/images/guangdong.png)no-repeat center center; background-size: 95%;}
+.map-content .map-box .hunan{ background: url(../../showDjdsj/images/hunan.png)no-repeat center center; background-size: 70%;}
+.map-content .map-box .hainan{ background: url(../../showDjdsj/images/hainan.png)no-repeat center center; background-size: 75%;}
+.map-items{ width:100%; display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; }
+.map-items li span{ font-size: 16px; }
+.map-items li h1{width:100%; font-size: 30px; color: #ffc196; padding: 6px 0; }
+
+/*-------------------------------- 下拉 --------------------------------*/
+
+.filter-box {
+	width:100px;
+    position: absolute;
+	top:15px;
+	left: 75%;
+	display: inline-block;
+	border-radius: 3px; 
+	border:1px solid rgba(255,255,255,.2);
+	background: rgba(0,0,0,.2);
+	z-index: 100;
+	transition: all 0.25s ease-in-out;
+}
+
+.filter-box:hover{ border-color: rgba(255,255,255,.5);}
+
+.filter-disabled {
+	-moz-user-select: none;
+    -webkit-user-select: none;
+    -ms-user-select: none;
+}
+
+.filter-box select{
+	display: none;
+}
+
+.filter-text {
+	height: 100%;
+	overflow: hidden;
+	position: relative;
+	cursor: pointer;
+	padding: 0 30px 0 5px;
+}
+
+.filter-text input {
+	font-size: 16px;
+	color: #fff;
+	text-align: center;
+}
+
+.filter-text .filter-title {
+	width: 100%;
+	height: 36px;
+	line-height: 36px;
+	border: 0;
+	background-color: transparent;
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	padding: 0;
+	cursor: pointer;
+}
+
+.filter-list {
+	display: none;
+	width: 100%;
+	max-height: 230px;
+	background-color: rgba(0,0,0,.5);
+	font-size: 14px;
+	padding: 1px;
+	position: absolute;
+	top: 41px;
+	left: 0;
+	z-index: 999;
+	border-radius: 3px;
+    border: 1px solid rgba(255,255,255,.2);
+    box-shadow:0 5px 11px rgba(0,0,0,.16);
+	overflow: auto;
+}
+
+.filter-list li.filter-null a {
+	color: #d2d2d2;
+}
+
+.filter-list li a {
+	display: block;
+	padding: 0 10px;
+	line-height: 34px;
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	cursor: pointer;
+	color: #6c799c;
+}
+
+.filter-list li:hover {
+    background-color: rgba(1,255,255,.07);
+}
+
+.filter-list li a:hover {
+    color: #fff;
+}
+
+.filter-list li.filter-selected {
+	color: #fff;
+    background-color: rgba(1,255,255,.07);
+}
+
+.filter-list li.filter-selected a{
+	display: block;
+	color: #fff;
+}
+
+.filter-list li.filter-disabled {
+	background-color: #666;
+}
+
+.filter-list li.filter-disabled a{
+	display: block;
+	color: #d2d2d2;
+}
+
+.filter-list li.filter-disabled:hover a {
+	cursor: not-allowed!important;
+	background-color: #fff;
+}
+
+.filter-text .icon {
+	position: absolute;
+}
+
+.icon-filter-arrow {
+	width: 12px;
+    background: url(../../showDjdsj/images/drop.svg) no-repeat center center;
+    background-size: 100%;
+    right: 10px;
+    top: 10px;
+    transition: all .2s;
+}
+
+.icon-filter-arrow.filter-show {
+	-webkit-transform: rotate(-180deg);
+	transform: rotate(-180deg);
+}
+
+/* -------------------------------- 左菜单 -------------------------------- */
+
+.boxheight{ position: absolute; top:90px;}
+.leftmenu{ width:20%; padding: 20px; left: 20px; overflow-y: auto;}
+.leftmenu .menus{ width:100%; font-size: 16px; float: left;}
+.leftmenu .menus .menu-1{ width:100%; color: #fff; padding: 20px 0; background: url(../../showDjdsj/images/drop.svg) no-repeat right center; background-size: 5%;}
+.leftmenu .menus ul li{ width:100%; float: left; text-indent: 20px; padding: 15px 0; transition: all 0.25s ease-in-out;}
+.leftmenu .menus ul li:hover{ color: #ffc196; text-shadow: 0 0 20px #f90; cursor: pointer;}
+.leftmenu .menus ul li.active{ color: #ffc196; text-shadow: 0 0 20px #f90; box-shadow:inset 0 0 20px rgba(255,153,0,.1), 0 0 20px rgba(255,153,0,.2); border:1px solid #feaa00; border-radius: 3px;}
+
+/* -------------------------------- 右内容区 -------------------------------- */
+
+.right-content{ width:77%; left: 22%;}
+.right-nav{ display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: center;}
+.rn{ font-size: 18px; text-align: center; border: 1px solid rgba(0,0,0,.01); padding: 10px 3%; border-radius: 3px; transition: all 0.25s ease-in-out;}
+.rn:hover{ color: #ffc196; text-shadow: 0 0 20px #f90; cursor: pointer;}
+.right-nav .active{ color: #ffc196; text-shadow: 0 0 20px #f90; box-shadow:inset 0 0 20px rgba(255,153,0,.1), 0 0 20px rgba(255,153,0,.2); border:1px solid #feaa00; }
+
+.right-container{ display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between;}
+.rc-1{ height: 100%; align-content: center;}
+.b-5{ width:32%; margin: 13px 5px; overflow: hidden;height: 47%;}
+.b-5-top{
+	margin-top: 30px;
+}
+.b-all{ flex-grow:3;}
+.b-all-2{ flex-grow:2; margin-right: 20px;}
+.text-all{ position: absolute; top:26px; left: 150px;}
+
+.ct-1{ flex-wrap: wrap;}
+.b-6{ width:49%; margin: 0.5%; overflow: hidden;}
+
+.round-box{ max-width:900px; height: 180px; background: url(../../showDjdsj/images/round-bg.png) no-repeat center center; background-size: 180px; position: relative; top:5%;}
+.round-box h1{ font-size: 18px; color: #ffc196; text-align: center; position: relative; top:40%;}
+.round-box h1 span{ font-size: 14px; color: #fff; }
+.round{ width:25%; position: absolute; }
+.round h2{ font-size: 18px; color: #fff; text-align: left; padding-bottom: 3%; left: 0;}
+.round span{ font-size: 18px; text-align: right; padding-bottom: 3%; position: absolute;top:0;right:0;}
+.r-1{ left: 125px; top:-26px;}
+.r-2{ right: 125px; top:-26px;}
+.r-3{ left: 125px; bottom:7px;}
+.r-4{ right: 125px; bottom:7px;}
+.s-number{
+	width:100%; 
+	font-size: 24px;
+	color: #ffc196;
+	text-align: center; 
+	background:rgba(255,255,255,.03);
+	padding: 3% 1%;
+}
+
+.party_active { color: #ffc196; text-shadow: 0 0 20px #f90; box-shadow:inset 0 0 20px rgba(255,153,0,.1), 0 0 20px rgba(255,153,0,.2);
+	/*border:1px solid #feaa00; */
+	border-radius: 3px;}
+
+.main-table{
+
+}
+
+.main-table thead tr th{
+	color: #ffc196;
+	border: 1px solid #ffc196;
+	font-size: 12px;
+	padding: 2px;
+}
+
+.main-table thead tr:first-child th{
+	color: #ffc196;
+	border: 1px solid #ffc196;
+	font-size: 18px;
+	padding: 5px;
+	font-weight: bold;
+}
+
+.main-table tbody tr td{
+	color: white;
+	border: 1px solid #787777;
+	font-size: 12px;
+	padding: 2px;
+	height: 35px;
+}
+

+ 64 - 0
src/main/resources/static/app/main/bigdata/kbxy/dwdt.html

@@ -0,0 +1,64 @@
+<div class="title"><h1>康复保健学院党建大数据</h1></div>
+<!-- 导航 -->
+<nav class="head-nav">
+    <ul>
+        <a class="l-li" ui-sref="kbshowDjdsj">
+            <li class="active"><h2>学院概况</h2></li>
+        </a>
+        <a class="r-li" ui-sref="kbshowDjdsj_dwdt">
+            <li><h2>党务动态</h2></li>
+        </a>
+    </ul>
+</nav>
+
+<!-- 内容区 -->
+<div class="container ct-1">
+    <div class="box b-6">
+        <h1>评先情况</h1>
+        <!-- 图表容器 -->
+        <div e-chart ec-data="pxpy_barOption" class="charts5"></div>
+    </div>
+    <div class="box b-6">
+        <h1>三会一课</h1>
+        <!-- 图表容器 -->
+        <div class="charts5">
+            <div class="round-box">
+                <h1>{{shykDataTotal}}次<br><span>统计</span></h1>
+                <div ng-repeat="item in shykData" class="round r-{{$index+1}}" ng-if="$index<4">
+                    <h2>{{item.SHYKTYPENAME}}</h2>
+                    <span>{{shykDataTotal>0?((item.NUM/shykDataTotal)*100|number:2):0}}%</span>
+                    <div class="s-number">{{item.NUM}}</div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="box b-6">
+        <h1>党内品牌</h1>
+        <!-- 图表容器 -->
+        <div e-chart ec-data="dnpp_barOption" class="charts5"></div>
+    </div>
+    <div class="box b-6">
+        <h1>述职评议情况</h1>
+        <!-- 图表容器 -->
+        <div e-chart ec-data="szpy_barOption" class="charts5"></div>
+    </div>
+    <div class="box b-6">
+        <h1>党内关怀帮扶情况</h1>
+        <!-- 图表容器 -->
+        <div e-chart ec-data="dnghbf_barOption" class="charts5"></div>
+    </div>
+    <div class="box b-6">
+        <h1>主题党日情况</h1>
+        <!-- 图表容器 -->
+        <div e-chart ec-data="ztdr_barOption" class="charts5"></div>
+    </div>
+</div>
+<page-resizes></page-resizes>
+
+<!--
+<div e-chart ec-data="pxpy_barOption" style='width: auto; height: 550px;'></div>
+<div e-chart ec-data="cgjq_barOption" style='width: auto; height: 550px;'></div>
+<div e-chart ec-data="dnpp_pieOption" style='width: auto; height: 550px;'></div>
+<div e-chart ec-data="nydt_lineOption" style='width: auto; height: 550px;'></div>
+<div e-chart ec-data="czqk_barOption" style='width: auto; height: 550px;'></div>
+-->

+ 389 - 0
src/main/resources/static/app/main/bigdata/kbxy/dwdt.js

@@ -0,0 +1,389 @@
+(function ($app) {
+    'use strict';
+    $app.module('gtPartyApp').controller('showKBDjdsj_dwdtCtrl', function ($scope, $state, $alert, AuthUser, flowaudit, $http, $ocLazyLoad, $loading, $timeout) {
+        if (AuthUser.getUser().Id == null || AuthUser.getUser().Id == '') {
+            window.location.href = "/app/main/index.html#!/loginkb";
+            return false;
+        }
+
+        //初始化查询参数
+        $scope.selectparams = {
+            colors: ['#F8B551', '#918879', '#EFF0C7', '#91C7AE', '#DCDCDC', '#F0FFFF', '#005983'],
+            dzzdm: "001091209017010"  // 康保学院党组织代码
+        };
+
+        //图表取数begin
+        {
+            //评先评优
+            $scope.pxpy_x_dataList = [];
+            $scope.pxpy_y_dataList = [
+                {
+                    name: '优秀党务工作者',
+                    type: 'bar',
+                    data: [],
+                    color: '#5B9BD5'
+                },
+                {
+                    name: '优秀共产党员',
+                    type: 'bar',
+                    data: [],
+                    color: '#ED7D31'
+                }
+            ];
+            $scope.pxpy_legend = ['优秀党务工作者', '优秀共产党员'];
+            $scope.pxpy_barOption = {
+                tooltip: {
+                    trigger: 'axis',
+                    axisPointer: {
+                        type: 'shadow'
+                    }
+                },
+                legend: {
+                    x: 'center',
+                    y: 'bottom',
+                    data: $scope.pxpy_legend,
+                    icon: "circle",
+                    textStyle: {
+                        color: '#fff'
+                    }
+                },
+                xAxis: {
+                    type: "category",
+                    data: $scope.pxpy_x_dataList,
+                    axisLabel: {
+                        color: '#fff'
+                    }
+                },
+                yAxis: {
+                    type: "value",
+                    axisLabel: {
+                        color: '#fff'
+                    },
+                    axisTick: {       //y轴刻度线
+                        show: false
+                    },
+                    splitLine: {     //网格线
+                        show: false
+                    },
+                    splitNumber: 1
+                },
+                series: $scope.pxpy_y_dataList,
+                grid: {
+                    top: 20,
+                    bottom: 25,
+                    containLabel: true
+                }
+            };
+            $scope.load_pxpy = function () {
+                $http
+                ({
+                    method: 'get',
+                    url: '../../api/bigdata/getDnpxxxTotalList',
+                    params: {
+                        dzzdm: $scope.selectparams.dzzdm
+                    }
+                }).then(function (result) {
+                    if (result.data != null && result.data.length > 0) {
+                        angular.forEach(result.data, function (val) {
+                            $scope.pxpy_x_dataList.push(val.year);
+                            $scope.pxpy_y_dataList[0].data.push(val.count_workUser);
+                            $scope.pxpy_y_dataList[1].data.push(val.count_partyUser);
+                        });
+                    }
+                });
+            };
+            $scope.load_pxpy();
+
+            //党内品牌
+            $scope.dnpp_dataList = [];
+            $scope.dnpp_nameList = [];
+            $scope.dnpp_barOption = {
+                color: ['#F8B551'],
+                tooltip: {
+                    trigger: 'axis',
+                    axisPointer: {            // 坐标轴指示器,坐标轴触发有效
+                        type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
+                    },
+                    formatter: "{a} <br/>{b} : {c}"
+                },
+                xAxis: {
+                    type: "category",
+                    axisLabel: {
+                        color: '#fff'
+                    },
+                    data: $scope.dnpp_nameList
+                },
+                yAxis: {
+                    type: "value",
+                    axisLabel: {
+                        color: '#fff'
+                    },
+                    axisTick: {       //y轴刻度线
+                        show: false
+                    },
+                    splitLine: {     //网格线
+                        show: false
+                    },
+                    splitNumber: 1
+                },
+                series: [
+                    {
+                        name: '党内品牌',
+                        data: $scope.dnpp_dataList,
+                        type: "bar",
+                        barWidth: 30
+                    }
+                ],
+                grid: {
+                    top: 20,
+                    bottom: 0,
+                    containLabel: true
+                }
+            };
+            $scope.load_dnpp = function () {
+                $http
+                ({
+                    method: 'get',
+                    url: '../../api/bigdata/getPartyBrandTotalList',
+                    params: {
+                        dzzdm: $scope.selectparams.dzzdm
+                    }
+                }).then(function (result) {
+                    if (result.data != null && result.data.length > 0) {
+                        angular.forEach(result.data, function (val) {
+                            $scope.dnpp_nameList.push(val.year);
+                            $scope.dnpp_dataList.push(val.count);
+                        });
+                    }
+                });
+            };
+            $scope.load_dnpp();
+
+            //述职评议
+            $scope.szpy_dataList = [];
+            $scope.szpy_nameList = [];
+            $scope.szpy_barOption = {
+                color: ['#F8B551'],
+                tooltip: {
+                    trigger: 'axis',
+                    axisPointer: {            // 坐标轴指示器,坐标轴触发有效
+                        type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
+                    },
+                    formatter: "{a} <br/>{b} : {c}"
+                },
+                xAxis: {
+                    type: "category",
+                    axisLabel: {
+                        color: '#fff'
+                    },
+                    data: $scope.szpy_nameList
+                },
+                yAxis: {
+                    type: "value",
+                    axisLabel: {
+                        color: '#fff'
+                    },
+                    axisTick: {       //y轴刻度线
+                        show: false
+                    },
+                    splitLine: {     //网格线
+                        show: false
+                    },
+                    splitNumber: 1
+                },
+                series: [
+                    {
+                        name: '述职评议情况',
+                        data: $scope.szpy_dataList,
+                        type: "bar",
+                        barWidth: 30
+                    }
+                ],
+                grid: {
+                    top: 20,
+                    bottom: 0,
+                    containLabel: true
+                }
+            };
+            $scope.load_szpy = function () {
+                $http
+                ({
+                    method: 'get',
+                    url: '../../api/bigdata/getSzpyTotalList',
+                    params: {
+                        dzzdm: $scope.selectparams.dzzdm
+                    }
+                }).then(function (result) {
+                    if (result.data != null && result.data.length > 0) {
+                        angular.forEach(result.data, function (val) {
+                            $scope.szpy_nameList.push(val.typeName);
+                            $scope.szpy_dataList.push(val.count);
+                        });
+                    }
+                });
+            };
+            $scope.load_szpy();
+
+            //党内关怀帮扶情况
+            $scope.dnghbf_dataList = [];
+            $scope.dnghbf_nameList = [];
+            $scope.dnghbf_barOption = {
+                color: ['#F8B551'],
+                tooltip: {
+                    trigger: 'axis',
+                    axisPointer: {            // 坐标轴指示器,坐标轴触发有效
+                        type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
+                    },
+                    formatter: "{a} <br/>{b} : {c}"
+                },
+                xAxis: {
+                    type: "category",
+                    axisLabel: {
+                        color: '#fff'
+                    },
+                    data: $scope.dnghbf_nameList
+                },
+                yAxis: {
+                    type: "value",
+                    axisLabel: {
+                        color: '#fff'
+                    },
+                    axisTick: {       //y轴刻度线
+                        show: false
+                    },
+                    splitLine: {     //网格线
+                        show: false
+                    },
+                    splitNumber: 1
+                },
+                series: [
+                    {
+                        name: '党内关怀帮扶情况',
+                        data: $scope.dnghbf_dataList,
+                        type: "bar",
+                        barWidth: 30
+                    }
+                ],
+                grid: {
+                    top: 20,
+                    bottom: 0,
+                    containLabel: true
+                }
+            };
+            $scope.load_dnghbf = function () {
+                $http
+                ({
+                    method: 'get',
+                    url: '../../api/bigdata/getDnghbfTotalList',
+                    params: {
+                        dzzdm: $scope.selectparams.dzzdm
+                    }
+                }).then(function (result) {
+                    if (result.data != null && result.data.length > 0) {
+                        angular.forEach(result.data, function (val) {
+                            $scope.dnghbf_nameList.push(val.year);
+                            $scope.dnghbf_dataList.push(val.count);
+                        });
+                    }
+                });
+            };
+            $scope.load_dnghbf();
+
+            //主题党日
+            $scope.ztdr_dataList = [];
+            $scope.ztdr_nameList = [];
+            $scope.ztdr_barOption = {
+                color: ['#F8B551'],
+                tooltip: {
+                    trigger: 'axis',
+                    axisPointer: {            // 坐标轴指示器,坐标轴触发有效
+                        type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
+                    },
+                    formatter: "{a} <br/>{b} : {c}"
+                },
+                xAxis: {
+                    type: "category",
+                    axisLabel: {
+                        color: '#fff'
+                    },
+                    data: $scope.ztdr_nameList
+                },
+                yAxis: {
+                    type: "value",
+                    axisLabel: {
+                        color: '#fff'
+                    },
+                    axisTick: {       //y轴刻度线
+                        show: false
+                    },
+                    splitLine: {     //网格线
+                        show: false
+                    },
+                    splitNumber: 1
+                },
+                series: [
+                    {
+                        name: '主题党日',
+                        data: $scope.ztdr_dataList,
+                        type: "bar",
+                        barWidth: 30
+                    }
+                ],
+                grid: {
+                    top: 20,
+                    bottom: 0,
+                    containLabel: true
+                }
+            };
+            $scope.load_ztdr = function () {
+                $http
+                ({
+                    method: 'get',
+                    url: '../../api/bigdata/getZtdrTotalList',
+                    params: {
+                        year: new Date().getFullYear(),
+                        dzzdm: $scope.selectparams.dzzdm
+                    }
+                }).then(function (result) {
+                    if (result.data != null && result.data.length > 0) {
+                        angular.forEach(result.data, function (val) {
+                            $scope.ztdr_nameList.push(val.month);
+                            $scope.ztdr_dataList.push(val.count);
+                        });
+                    }
+                });
+            };
+            $scope.load_ztdr();
+
+
+            //三会一课
+            $scope.shykData = [];
+            $scope.shykDataTotal = 0;
+            $scope.load_shyk = function () {
+                $http
+                ({
+                    method: 'get',
+                    url: '../../api/bigdata/getShykCount',
+                    params: {
+                        dzzdm: $scope.selectparams.dzzdm
+                    }
+                }).then(function (result) {
+                    if (result.data != null) {
+                        $scope.shykData = result.data.item;
+                        angular.forEach($scope.shykData, function (val, index) {
+                            $scope.shykDataTotal += val.NUM;
+                        });
+                    }
+                });
+            };
+            $scope.load_shyk();
+
+
+            //组织饼图数据
+            $scope.getPieData = function (val, name, color) {
+                return {value: val, name: name, itemStyle: {color: color}};
+            };
+        }
+        //图表取数end
+    });
+})(angular);

+ 91 - 0
src/main/resources/static/app/main/bigdata/kbxy/home.html

@@ -0,0 +1,91 @@
+<div class="title"><h1>康复保健学院党建大数据</h1></div>
+<!-- 导航 -->
+<nav class="head-nav">
+    <ul>
+        <a class="l-li" ui-sref="kbshowDjdsj">
+            <li class="active"><h2>学院概况</h2></li>
+        </a>
+        <a class="r-li" ui-sref="kbshowDjdsj_dwdt">
+            <li><h2>党务动态</h2></li>
+        </a>
+    </ul>
+</nav>
+<!-- 左 -->
+<div class="container">
+    <div class="content left">
+        <div class="box b-3" style="height: calc(100% - 540px);">
+            <h1>正式党员和预备党员比例</h1>
+            <!-- 图表容器 -->
+            <div e-chart ec-data="dyzsrate_pieOption" class="charts3"></div>
+        </div>
+        <div class="box b-3" style="height: calc(100% - 540px);">
+            <h1>学历情况</h1>
+            <!-- 图表容器 -->
+            <div e-chart ec-data="pieOption_xueli" class="charts3"></div>
+        </div>
+        <div class="box b-3" style="height: calc(100% - 540px);">
+            <h1>教师/学生党员比例</h1>
+            <!-- 图表容器 -->
+            <div e-chart ec-data="xsjsfbqk_pieOption" class="charts3"></div>
+        </div>
+    </div>
+
+    <!-- 中 -->
+    <div class="content mid">
+        <div class="box b-2">
+            <div class="mid-nav">
+                <div class="mid-nav-content">
+                    <div class="nav-title">党员总数</div>
+                    <div class="nav-number">{{dyxx.dys}}</div>
+                </div>
+                <div class="mid-nav-content">
+                    <div class="nav-title">学生党员数</div>
+                    <div class="nav-number">{{dyxx.xsdy}}</div>
+                </div>
+                <div class="mid-nav-content">
+                    <div class="nav-title">发展党员数</div>
+                    <div class="nav-number">{{dyxx.fzdx}}</div>
+                </div>
+
+            </div>
+
+            <div class="map-content">
+                <div class="box-2" style="padding: 0px 0px;">
+                    <!-- 图表容器 -->
+                </div>
+            </div>
+        </div>
+
+        <div class="bottom" style="height: calc(100% - 153px);">
+            <div class="box b-5 b-all" style="width: 100%;margin: 0px;">
+                <h1>发展党员</h1>
+                <div class="text-all">
+                    <p>入党申请人数:
+                    <h2>{{dyxx.sqrds}}</h2></p>
+                </div>
+                <!-- 图表容器 -->
+                <div e-chart ec-data="fzdyqk_barOption" class="charts2"></div>
+            </div>
+        </div>
+    </div>
+
+    <!-- 右 -->
+    <div class="content right">
+        <div class="box b-3" style="height: calc(100% - 540px);">
+            <h1>党员年龄分布</h1>
+            <!-- 图表容器 -->
+            <div e-chart ec-data="dynl_pieOption" class="charts3"></div>
+        </div>
+        <div class="box b-3" style="height: calc(100% - 540px);">
+            <h1>党龄情况</h1>
+            <!-- 图表容器 -->
+            <div e-chart ec-data="dydl_pieOption" class="charts3"></div>
+        </div>
+        <div class="box b-3" style="height: calc(100% - 540px);">
+            <h1>性别比例情况</h1>
+            <!-- 图表容器 -->
+            <div e-chart ec-data="dyxb_pieOption" class="charts3"></div>
+        </div>
+    </div>
+</div>
+<page-resizes></page-resizes>

+ 580 - 0
src/main/resources/static/app/main/bigdata/kbxy/home.js

@@ -0,0 +1,580 @@
+(function ($app) {
+    'use strict';
+    $app.module('gtPartyApp').controller('showKBDjdsjCtrl', function ($scope, $state, $alert, AuthUser, flowaudit, $http, $ocLazyLoad, $loading, $filter) {
+        if (AuthUser.getUser().Id == null || AuthUser.getUser().Id == '') {
+            window.location.href = "/app/main/index.html#!/loginkb";
+            return false;
+        }
+        $scope.id = $state.params.id;
+        //初始化查询参数
+        $scope.selectparams = {
+            colors: ['#F8B551', '#918879', '#EFF0C7', '#91C7AE', '#DCDCDC', '#F0FFFF', '#005983'],
+            dzzdm: "001091209017010"  // 康保学院党组织代码
+        };
+
+        // 图标取数
+        {
+            //正式和预备党员统计图
+            $scope.dyzsrate_dataList = [];
+            $scope.dyzsrate_pieOption = {
+                legend: {
+                    type: 'scroll',
+                    orient: 'vertical',
+                    right: 0,
+                    bottom: 5,
+                    data: ["正式党员", "预备党员"],
+                    top: '10%',
+                    icon: "circle",
+                    textStyle: {
+                        color: '#fff'
+                    },
+                    formatter: function (name) {
+                        var target = 0;
+                        angular.forEach($scope.dyzsrate_dataList, function (item, index) {
+                            if (item.name == name) {
+                                target = item.value;
+                            }
+                        });
+                        return name + ':' + target;
+                    }
+                },
+                series: [
+                    {
+                        name: '正式党员和预备党员比例',
+                        type: 'pie',
+                        radius: ['50%', '80%'],
+                        avoidLabelOverlap: false,
+                        label: {
+                            normal: {
+                                show: false,
+                                position: 'center'
+                            },
+                            emphasis: {
+                                show: true,
+                                textStyle: {
+                                    fontSize: '20',
+                                    fontWeight: 'bold'
+                                }
+                            }
+                        },
+                        labelLine: {
+                            normal: {
+                                show: false
+                            }
+                        },
+                        data: $scope.dyzsrate_dataList,
+                        center: ['30%', '50%']
+                    }
+                ],
+                tooltip: {
+                    trigger: 'item',
+                    formatter: function (data) {
+                        return data.seriesName + "<br/>" + data.name + " : " + data.value + " (" + data.percent.toFixed(0) + "%)";
+                    }
+                }
+            };
+
+            // 学生党员/教师党员比例
+            $scope.xsjsfbqk_dataList = [];
+            $scope.xsjsfbqk_pieOption = {
+                legend: {
+                    type: 'scroll',
+                    orient: 'vertical',
+                    right: 0,
+                    bottom: 5,
+                    data: ["学生党员", "教师党员"],
+                    top: '10%',
+                    icon: "circle",
+                    textStyle: {
+                        color: '#fff'
+                    },
+                    formatter: function (name) {
+                        var target = 0;
+                        angular.forEach($scope.xsjsfbqk_dataList, function (item, index) {
+                            if (item.name == name) {
+                                target = item.value;
+                            }
+                        });
+                        return name + ':' + target;
+                    }
+                },
+                series: [
+                    {
+                        name: '党员身份',
+                        type: 'pie',
+                        radius: ['50%', '80%'],
+                        avoidLabelOverlap: false,
+                        label: {
+                            normal: {
+                                show: false,
+                                position: 'center'
+                            },
+                            emphasis: {
+                                show: true,
+                                textStyle: {
+                                    fontSize: '20',
+                                    fontWeight: 'bold'
+                                }
+                            }
+                        },
+                        labelLine: {
+                            normal: {
+                                show: false
+                            }
+                        },
+                        data: $scope.xsjsfbqk_dataList,
+                        center: ['30%', '50%']
+                    }
+                ],
+                tooltip: {
+                    trigger: 'item',
+                    formatter: function (data) {
+                        return data.seriesName + "<br/>" + data.name + " : " + data.value + " (" + data.percent.toFixed(0) + "%)";
+                    }
+                }
+            };
+
+            //党员数量信息
+            $scope.dyxx = {};
+            $scope.load_dyxx = function () {
+                $http
+                ({
+                    method: 'get', url: '../../api/partyExpand/getJoinUserTotalList', params: {
+                        pageindex: 1,
+                        pagesize: 10,
+                        ssdzzdm: $scope.selectparams.dzzdm
+                    }
+                }).then(function (result) {
+                    if (result.data != null) {
+                        var data = result.data.item.list[0];
+                        $scope.dyxx.ybdys = data.YBDY;
+                        $scope.dyxx.rdjjfzs = data.JJFZ;
+                        $scope.dyxx.sqrds = data.SQRD;
+                        $scope.dyxx.fzdx = data.FZDX + data.SQRD + data.JJFZ;
+                        $scope.dyxx.zsdy = data.ZSDY;
+                        $scope.dyxx.xsdy = data.XSDY;
+                        $scope.dyxx.lsdy = data.LSDY;
+
+                        $scope.fzdyqk_dataList.push(data.YBDY);
+                        $scope.fzdyqk_dataList.push(data.SQRD);
+                        $scope.fzdyqk_dataList.push(data.JJFZ);
+                        $scope.fzdyqk_dataList.push(data.FZDX);
+
+                        // 正式党员和预备党员饼图数据
+                        $scope.dyzsrate_dataList.push($scope.getPieData(data.ZSDY, "正式党员", $scope.selectparams.colors[0]));
+                        $scope.dyzsrate_dataList.push($scope.getPieData(data.YBDY, "预备党员", $scope.selectparams.colors[1]));
+
+                        // 教师和学生党员分布情况
+                        $scope.xsjsfbqk_dataList.push($scope.getPieData(data.XSDY, "学生党员", $scope.selectparams.colors[0]));
+                        $scope.xsjsfbqk_dataList.push($scope.getPieData(data.LSDY, "教师党员", $scope.selectparams.colors[1]));
+                    }
+                }, function (resp) {
+                });
+
+                $http
+                ({
+                    method: 'get', url: '../../api/bigdata/getPartyUserTotalList', params: {
+                        dzzdm: "001091209017010",// 康保学院党组织代码
+                    }
+                }).then(function (result) {
+                    if (result.data != null) {
+                        $scope.dyxx.dys = result.data.TOTAL;
+                        $scope.dyxx.zgcount = result.data.ZGCOUNT;
+                        $scope.dyxx.zgrs = result.data.ZGRS;
+                        $scope.dyxx.ltxcount = result.data.LTXCOUNT;
+                    }
+                }, function (resp) {
+                });
+            };
+
+            //发展党员情况
+            $scope.fzdyqk_dataList = [];
+            $scope.fzdyqk_nameList = ["入党申请人数", "入党积极分子", "发展对象", "预备党员"];
+            $scope.fzdyqk_barOption = {
+                tooltip: {
+                    trigger: 'axis',
+                    axisPointer: {            // 坐标轴指示器,坐标轴触发有效
+                        type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
+                    },
+                    formatter: "{a} <br/>{b} : {c}"
+                },
+                xAxis: {
+                    type: 'value',
+                    name: '数量',
+                    axisLabel: {
+                        formatter: '{value}',
+                        color: '#fff'
+                    },
+                    axisTick: {       //y轴刻度线
+                        show: false
+                    },
+                    splitLine: {     //网格线
+                        show: false
+                    }
+                },
+                yAxis: {
+                    type: 'category',
+                    inverse: true,
+                    axisLabel: {
+                        color: '#fff'
+                    },
+                    data: $scope.fzdyqk_nameList
+                },
+                series: [
+                    {
+                        name: '发展党员情况',
+                        data: $scope.fzdyqk_dataList,
+                        type: "bar",
+                        barWidth: 20,
+                        itemStyle: {
+                            normal: {
+                                color: function (params) {
+                                    var colorList = ['#F8B551', '#918879', '#EFF0C7', '#91C7AE'];
+                                    return colorList[params.dataIndex];
+                                }
+                            }
+                        }
+                    }
+                ],
+                grid: {
+                    top: 20,
+                    bottom: 10,
+                    containLabel: true
+                }
+            };
+
+            //学历比例
+            $scope.xueli_data = [];
+            $scope.xueli_legend_data = [];
+            $scope.pieOption_xueli = {
+                legend: {
+                    type: 'scroll',
+                    orient: 'vertical',
+                    right: 0,
+                    bottom: 5,
+                    data: $scope.xueli_legend_data,
+                    top: '10%',
+                    icon: "circle",
+                    textStyle: {
+                        color: '#fff'
+                    },
+                    formatter: function (name) {
+                        var target = 0;
+                        angular.forEach($scope.xueli_data, function (item, index) {
+                            if (item.name == name) {
+                                target = item.value;
+                            }
+                        });
+                        return name + ':' + target;
+                    }
+                },
+                series: [
+                    {
+                        name: '学历水平',
+                        type: 'pie',
+                        radius: ['50%', '80%'],
+                        avoidLabelOverlap: false,
+                        label: {
+                            normal: {
+                                show: false,
+                                position: 'center'
+                            },
+                            emphasis: {
+                                show: true,
+                                textStyle: {
+                                    fontSize: '20',
+                                    fontWeight: 'bold'
+                                }
+                            }
+                        },
+                        labelLine: {
+                            normal: {
+                                show: false
+                            }
+                        },
+                        data: $scope.xueli_data,
+                        center: ['30%', '50%']
+                    }
+                ],
+                tooltip: {
+                    trigger: 'item',
+                    formatter: function (data) {
+                        return data.seriesName + "<br/>" + data.name + " : " + data.value + " (" + data.percent.toFixed(0) + "%)";
+                    }
+                }
+            };
+            $scope.load_dyxl = function () {
+                $scope.xueli_legend_data.length = 0;
+                $scope.xueli_data.length = 0;
+                $http
+                ({
+                    method: 'get',
+                    url: '../../api/bigdata/getUserEducationList',
+                    params: {
+                        dzzdm: $scope.selectparams.dzzdm,
+                    }
+                }).then(function (result) {
+                    $scope.xueli_legend_data.length = 0;
+                    $scope.xueli_data.length = 0;
+                    if (result.data.item != null) {
+                        angular.forEach(result.data.item, function (val, index) {
+                            $scope.xueli_legend_data.push(val.EDUCATIONNAME);
+                            $scope.xueli_data.push($scope.getPieData(val.NUM, val.EDUCATIONNAME, $scope.selectparams.colors[index]));
+                        });
+                    }
+                });
+            };
+
+            //年龄分布
+            $scope.dynl_dataList = [];
+            $scope.dynl_pieOption = {
+                legend: {
+                    type: 'scroll',
+                    orient: 'vertical',
+                    right: 0,
+                    bottom: 5,
+                    data: $scope.dynl_dataList,
+                    top: '10%',
+                    icon: "circle",
+                    textStyle: {
+                        color: '#fff'
+                    },
+                    formatter: function (name) {
+                        var target = 0;
+                        angular.forEach($scope.dynl_dataList, function (item, index) {
+                            if (item.name == name) {
+                                target = item.value;
+                            }
+                        });
+                        return name + ':' + target;
+                    }
+                },
+                series: [
+                    {
+                        name: '年龄分布',
+                        type: 'pie',
+                        radius: ['50%', '80%'],
+                        avoidLabelOverlap: false,
+                        label: {
+                            normal: {
+                                show: false,
+                                position: 'center'
+                            },
+                            emphasis: {
+                                show: true,
+                                textStyle: {
+                                    fontSize: '20',
+                                    fontWeight: 'bold'
+                                }
+                            }
+                        },
+                        labelLine: {
+                            normal: {
+                                show: false
+                            }
+                        },
+                        data: $scope.dynl_dataList,
+                        center: ['30%', '50%']
+                    }
+                ],
+                tooltip: {
+                    trigger: 'item',
+                    formatter: function (data) {
+                        return data.seriesName + "<br/>" + data.name + " : " + data.value + " (" + data.percent.toFixed(0) + "%)";
+                    }
+                }
+            };
+            $scope.load_dynl = function () {
+                $scope.dynl_dataList.length = 0;
+                $http
+                ({
+                    method: 'get',
+                    url: '../../api/bigdata/getDynlCount',
+                    params: {
+                        dzzdm: $scope.selectparams.dzzdm
+                    }
+                }).then(function (result) {
+                    $scope.dynl_dataList.length = 0;
+                    if (result.data != null && result.data.length > 0) {
+                        angular.forEach(result.data, function (val, index) {
+                            $scope.dynl_dataList.push($scope.getPieData(val.NUM, val.AGENAME, $scope.selectparams.colors[index]));
+                        });
+
+
+                    }
+                });
+            };
+
+            //党员党龄
+            $scope.dydl_dataList = [];
+            $scope.dydl_pieOption = {
+                legend: {
+                    type: 'scroll',
+                    orient: 'vertical',
+                    right: 0,
+                    bottom: 5,
+                    data: $scope.dydl_dataList,
+                    top: '10%',
+                    icon: "circle",
+                    textStyle: {
+                        color: '#fff'
+                    },
+                    formatter: function (name) {
+                        var target = 0;
+                        angular.forEach($scope.dydl_dataList, function (item, index) {
+                            if (item.name == name) {
+                                target = item.value;
+                            }
+                        });
+                        return name + ':' + target;
+                    }
+                },
+                series: [
+                    {
+                        name: '党员党龄',
+                        type: 'pie',
+                        radius: ['50%', '80%'],
+                        avoidLabelOverlap: false,
+                        label: {
+                            normal: {
+                                show: false,
+                                position: 'center'
+                            },
+                            emphasis: {
+                                show: true,
+                                textStyle: {
+                                    fontSize: '20',
+                                    fontWeight: 'bold'
+                                }
+                            }
+                        },
+                        labelLine: {
+                            normal: {
+                                show: false
+                            }
+                        },
+                        data: $scope.dydl_dataList,
+                        center: ['20%', '50%']
+                    }
+                ],
+                tooltip: {
+                    trigger: 'item',
+                    formatter: function (data) {
+                        return data.seriesName + "<br/>" + data.name + " : " + data.value + " (" + data.percent.toFixed(0) + "%)";
+                    }
+                }
+            };
+            $scope.load_dydl = function () {
+                $scope.dydl_dataList.length = 0;
+                $http
+                ({
+                    method: 'get',
+                    url: '../../api/bigdata/getDydlCount',
+                    params: {
+                        dzzdm: $scope.selectparams.dzzdm
+                    }
+                }).then(function (result) {
+                    $scope.dydl_dataList.length = 0;
+                    if (result.data != null && result.data.length > 0) {
+                        angular.forEach(result.data, function (val, index) {
+                            $scope.dydl_dataList.push($scope.getPieData(val.NUM, val.AGENAME, $scope.selectparams.colors[index]));
+                        });
+
+                    }
+                });
+            };
+
+            //党员性别
+            $scope.dyxb_dataList = [];
+            $scope.dyxb_pieOption = {
+                legend: {
+                    type: 'scroll',
+                    orient: 'vertical',
+                    right: 0,
+                    bottom: 5,
+                    data: $scope.dyxb_dataList,
+                    top: '10%',
+                    icon: "circle",
+                    textStyle: {
+                        color: '#fff'
+                    },
+                    formatter: function (name) {
+                        var target = 0;
+                        angular.forEach($scope.dyxb_dataList, function (item, index) {
+                            if (item.name == name) {
+                                target = item.value;
+                            }
+                        });
+                        return name + ':' + target;
+                    }
+                },
+                series: [
+
+                    {
+                        name: '党员性别',
+                        type: 'pie',
+                        radius: ['50%', '80%'],
+                        avoidLabelOverlap: false,
+                        label: {
+                            normal: {
+                                show: false,
+                                position: 'center'
+                            },
+                            emphasis: {
+                                show: true,
+                                textStyle: {
+                                    fontSize: '20',
+                                    fontWeight: 'bold'
+                                }
+                            }
+                        },
+                        labelLine: {
+                            normal: {
+                                show: false
+                            }
+                        },
+                        data: $scope.dyxb_dataList,
+                        center: ['30%', '50%']
+                    }
+                ],
+                tooltip: {
+                    trigger: 'item',
+                    formatter: function (data) {
+                        return data.seriesName + "<br/>" + data.name + " : " + data.value + " (" + data.percent.toFixed(0) + "%)";
+                    }
+                }
+            };
+            $scope.load_dyxb = function () {
+                $scope.dyxb_dataList.length = 0;
+                $http
+                ({
+                    method: 'get',
+                    url: '../../api/bigdata/getDyxbCount',
+                    params: {
+                        dzzdm: $scope.selectparams.dzzdm
+                    }
+                }).then(function (result) {
+                    $scope.dyxb_dataList.length = 0;
+                    if (result.data != null && result.data.length > 0) {
+                        var colors = ['#F8B551', '#918879'];
+                        angular.forEach(result.data, function (val, index) {
+                            $scope.dyxb_dataList.push($scope.getPieData(val.NUM, val.SEXNAME, colors[index]));
+                        });
+                    }
+                });
+            };
+
+            //组织饼图数据
+            $scope.getPieData = function (val, name, color) {
+                return {value: val, name: name, itemStyle: {color: color}};
+            };
+        }
+
+        // 执行查询方法
+        $scope.load_dyxx();
+        $scope.load_dyxl();
+        $scope.load_dynl();
+        $scope.load_dydl();
+        $scope.load_dyxb();
+    });
+})(angular);

+ 134 - 0
src/main/resources/static/app/main/index-kbdsj.html

@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html lang="zh-cn">
+<head>
+    <title>党建工作信息管理系统</title>
+    <meta charset="utf-8"/>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+
+    <meta http-equiv="Cache-Control" content="no-cache">
+
+    <script src="../../scripts/jquery-1.11.1.js"></script>
+    <style src="js/bootstrap.min.js"></style>
+    <script src="../../scripts/angular.js"></script>
+    <script src="../../scripts/angular-ui-router.js"></script>
+    <script src="../../scripts/crypto-js/crypto-js.js"></script>
+    <script src="../../scripts/moment.min.js"></script>
+    <script src="../../scripts/ocLazyLoad.js"></script>
+    <script src="../../scripts/angular-animate.js"></script>
+    <script src="../../scripts/angular-sanitize.js"></script>
+    <script src="../../scripts/bootstrap.js"></script>
+    <script src="../../scripts/angular-strap.js"></script>
+    <script src="../../scripts/angular-strap.tpl.js"></script>
+    <script src="../../scripts/angular-strap.tpl.js"></script>
+    <script src="../../scripts/ng-file-upload-shim.min.js"></script>
+    <script src="../../scripts/ng-file-upload.min.js"></script>
+    <script src="../../scripts/i18n/angular-locale_zh-cn.js"></script>
+    <script src="../../scripts/angular-awesome-slider.min.js"></script>
+
+    <!--add-->
+    <script src="../../content/themes/plugins/node-waves/waves.js"></script>
+    <link href="../../content/themes/css/gt-font-icon.css" rel="stylesheet" type="text/css">
+
+    <!--add-->
+    <script src="../js/service.js?v=20190624_v1"></script>
+
+    <script>
+        var gtdj_v = "20190624_v1";//版本号
+        (function () {
+            "use strict";
+            angular.module('gtPartyApp', ['ui.router', 'oc.lazyLoad', 'ngSanitize', 'ngAnimate', 'mgcrea.ngStrap', 'ngFileUpload', 'devself.common', 'angularAwesomeSlider']).config(function ($stateProvider, $urlRouterProvider, $modalProvider, $tooltipProvider, $asideProvider, $alertProvider, $qProvider) {
+
+                angular.extend($modalProvider.defaults, {
+                    animation: 'am-flip-x',
+                    backdrop: 'static'
+                });
+
+                angular.extend($tooltipProvider.defaults, {
+                    html: true
+                });
+
+                angular.extend($asideProvider.defaults, {
+                    container: 'body',
+                    html: true
+                });
+
+                $qProvider.errorOnUnhandledRejections(false);
+
+                //设置路由
+                $stateProvider.state("localLogin", {
+                    url: "/loginkb",
+                    templateUrl: "login-e.html?" + window.sysVersion,
+                    controller: "loginECtrl",
+                    resolve: {
+                        load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                            $ocLazyLoad.load('css/login.css?' + window.sysVersion);
+                            return $ocLazyLoad.load('login-e.js?' + window.sysVersion);
+                        }]
+                    }
+                }).state("kbshowDjdsj", {
+                    url: "/kb/showDjdsj?id",
+                    templateUrl: "../main/bigdata/kbxy/home.html?v=" + gtdj_v,
+                    controller: "showKBDjdsjCtrl",
+                    resolve: {
+                        load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                            $ocLazyLoad.load(['../main/bigdata/showDjdsj/css/reset.css?v=' + gtdj_v,
+                                '../main/bigdata/kbxy/css/style.css?v=' + gtdj_v]);
+                            return $ocLazyLoad.load('../main/bigdata/kbxy/home.js?v=' + gtdj_v);
+                        }]
+                    }
+                }).state("kbshowDjdsj_dwdt", {
+                    url: "/kb/showDjdsj_dwdt?id",
+                    templateUrl: "../main/bigdata/kbxy/dwdt.html?v=" + gtdj_v,
+                    controller: "showKBDjdsj_dwdtCtrl",
+                    resolve: {
+                        load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                            $ocLazyLoad.load(['../main/bigdata/showDjdsj/css/reset.css?v=' + gtdj_v,
+                                '../main/bigdata/kbxy/css/style.css?v=' + gtdj_v]);
+                            return $ocLazyLoad.load('../main/bigdata/kbxy/dwdt.js?v=' + gtdj_v);
+                        }]
+                    }
+                });
+            }).directive("pageResizes",['$timeout',function($timeout){
+                var setSizes=function() {
+                    var $cbox = $('.charts');
+                    var $cbox2 = $('.charts2');
+                    var $cbox3 = $('.charts3');
+                    var $cbox3_1 = $('.charts3_1');
+                    var $cbox4 = $('.charts4');
+                    var $cbox5 = $('.charts5');
+                    var $cbox6 = $('.boxheight');
+                    var WindoHeit = $(window).height();
+
+                    $cbox.css({'height': '' + WindoHeit-775 + 'px'});
+                    $cbox2.css({'height': '' + WindoHeit-706 + 'px'});
+                    $cbox3.css({'height': '' + WindoHeit/3-156 + 'px'});
+                    $cbox3_1.css({'height': '' + WindoHeit/3-156+46 + 'px'});
+                    $cbox4.css({'height': '' + WindoHeit-650 + 'px'});
+                    $cbox5.css({'height': '' + WindoHeit/3-140 + 'px'});
+                    $cbox6.css({'height': '' + WindoHeit-110 + 'px'});
+                };
+
+                var directiveObject = {
+                    restrict: 'EAC',
+                    link: function (scope, element, attr, controller) {
+                        $(window).resize(function () {
+                            setSizes();
+                        });
+                        $timeout(function () {
+                            setSizes();
+                        }, 100);
+                    }
+
+                };
+                return directiveObject;
+            }]);
+        })();
+
+    </script>
+
+</head>
+<body ng-app="gtPartyApp" class="theme-red">
+<div ui-view>
+</div>
+</body>
+</html>

+ 282 - 0
src/main/resources/static/app/main/login-e.js

@@ -0,0 +1,282 @@
+(function ($ang, win) {
+    'use strict';
+    $ang.module('gtPartyApp').controller("loginCtrl", ['$scope', '$state', '$http', '$loading', '$alert', '$desData', '$modal', 'AuthUser', function ($scope, $state, $http, $loading, $alert, $desData, $modal, AuthUser) {
+        $scope.loginuser = {uid: '', pwd: ''};
+
+        $scope.sysName = window.sysCompanyName;
+
+        $scope.reset = function () {
+            $scope.loginuser.uid = '';
+            $scope.loginuser.pwd = '';
+        };
+        $scope.errorMsg = '';
+
+        //站点ID
+        $scope.menudatas = {
+            appkey: "appId",
+            defrolekey: "DefaultRoleId",
+            getMenuUrl: '../../api/user/getmenubyuid',
+            toggle: true
+        };
+
+        $scope.loadCurUser = function () {
+
+            $http.get("../../api/user/curloginuser", {params: {appkey: $scope.menudatas.appkey}}).then(function (res) {
+                if (res.data.success) {
+                    if (res.data.item) {
+
+                        angular.extend(res.data.item, {dataDzzdm: res.data.extdata.dataDzzdm});
+                        angular.extend(res.data.item, {gddwdm: res.data.extdata.gddwdm});
+                        angular.extend(res.data.item, {userType: res.data.extdata.userType});
+                        angular.extend(res.data.item, {dataScope: res.data.extdata.dataScope});
+                        angular.extend(res.data.item, {dwId: res.data.extdata.dwId});
+                        angular.extend(res.data.item, {dwName: res.data.extdata.dwName});
+                        angular.extend(res.data.item, {oaUserId: res.data.extdata.oaUserId});
+                        angular.extend(res.data.item, {oaIdCard: res.data.extdata.oaIdCard});
+                        angular.extend(res.data.item, {generalPartyCode: res.data.extdata.generalPartyCode});
+
+                        AuthUser.setUser(res.data.item);
+
+                        AuthUser.clearExtData();
+                        window.location.href = '../main/index-kbdsj.html#!/kb/showDjdsj';
+                    }
+                }
+
+            });
+
+
+        };
+
+        $scope.chechUserAgent = function () {
+            if (win.navigator.userAgent.toLocaleLowerCase().indexOf('chrome') < 0) {
+                $alert({
+                    title: '消息',
+                    content: '非谷歌浏览器浏览本网站可能出现排版错误,请点击右上方下载浏览器,以体验最好浏览效果!',
+                    placement: 'bottom',
+                    type: 'info',
+                    show: true,
+                    duration: 5
+                });
+            }
+        };
+
+        $scope.chechUserAgent();
+
+        $scope.loadCurUser();
+
+
+        $scope.login = function () {
+
+            var tk = $scope.loginuser.uid + '|' + $scope.loginuser.pwd;
+            $loading.show();
+            AuthUser.clearUser();
+            $http.post('../../api/home/login', $desData.GetToken(tk)).then(function (req) {
+                $loading.hide();
+                if (req.data.success) {
+                    window.location.href = '../main/index-kbdsj.html#!/kb/showDjdsj';
+                } else {
+
+                    $scope.errorMsg = req.data.msg;
+                }
+            }, function (reason) {
+                $loading.hide();
+            });
+
+        };
+
+        $scope.getLastActiveDate = function (uid) {
+            //var uid = encodeURI(encodeURI(uid));
+            $http({
+                method: "post",
+                url: "../../api/home/getLastActivityDate",
+                params: {
+                    uid: uid
+                }
+            }).then(function (req) {
+                if (req.data.success) {
+                    $state.go("home.todolist");
+                } else {
+                    $scope.changePassword();
+                }
+            }, function (reason) {
+                $loading.hide();
+            });
+        }
+
+        var forgotPasswordCtrl = function ($scope, $http) {
+            // $scope.params = parkModal.params;
+            // $scope.parkvm = parkModal.parkvm;
+            $scope.sendPassword = function (isflag) {
+                if (isflag) {
+                    $loading.show();
+                    $http({
+                        method: "post",
+                        url: "../../api/home/sendPassword",
+                        data: $scope.loginuser
+                    }).then(function (result) {
+                        $loading.hide();
+                        if (result.data.success) {
+                            $scope.showMsg('成功', result.data.msg);
+                            $scope.$hide();
+                        } else {
+                            $scope.showMsg('失败', result.data.msg);
+                        }
+
+                    }), function (resp) {
+                        $scope.showMsg('错误', '服务器错误');
+                    }
+                }
+            }
+        };
+        forgotPasswordCtrl.$inject = ['$scope', '$http'];
+
+        var parkModal = $modal({
+            resolve: {
+                load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                    //return [$ocLazyLoad.load('../main/css/theme1.css')];
+                }]
+            },
+            scope: $scope,
+            controller: forgotPasswordCtrl,
+            templateUrl: '../main/forgotPassword.html',
+            show: false,
+            animation: 'am-fade-and-slide-top'
+        });
+
+        $scope.forgotPassword = function () {
+            $scope.forgot("找回密码");
+        };
+        $scope.forgot = function (title) {
+            parkModal.params = {
+                title: title,
+                reqFileModelOfService: {
+                    loginuser: {FileRefID: '', pageindex: 1, pagesize: 10, ptotal: 0},
+                    filetype: 1,
+                    items: [],
+                    readonly: false
+                }
+            };
+            $loading.show();
+            $http.get("../../api/home/forgotPassword").then(function (result) {
+                $loading.hide();
+                parkModal.parkvm = null;
+                // parkModal.params.reqFileModelOfService.selectdata.FileRefID = result.data.item.servicefileid;
+                parkModal.$promise.then(parkModal.show);
+            }, function () {
+                $scope.showMsg('错误', '服务器错误');
+            });
+        };
+
+        $scope.showMsg = function (title, content) {
+            $alert({
+                title: title + ':',
+                content: content,
+                placement: 'top',
+                type: 'info',
+                show: true,
+                duration: 3
+            });
+
+        };
+        $loading.hide();
+
+        var updatepassword = function ($scope, $http) {
+            $scope.params = passwordModal.params;
+            $scope.uservm = passwordModal.uservm;
+            $scope.userinfovm = passwordModal.userinfovm;
+            $scope.pwd = {
+                pwd_default: '',
+                pwd_confirm: ''
+            };
+
+            $scope.submitUser = function (isflag) {
+                if (isflag) {
+                    if ($scope.pwd.pwd_default != $scope.pwd.pwd_confirm) {
+                        return;
+                    }
+
+                    $scope.uservm.userpwd = $scope.pwd.pwd_default;
+
+                    $loading.show();
+                    $http({
+                        method: "post",
+                        url: "../../api/user/updatePassword",
+                        data: {
+                            userModel: $scope.uservm
+                        }
+                    }).then(function (result) {
+                        $loading.hide();
+                        if (result.data.success) {
+                            $scope.showMsg('成功', result.data.msg);
+                            $scope.$hide();
+                            $state.go("home.todolist");
+                        } else {
+                            $scope.showMsg('失败', result.data.msg);
+                        }
+
+                    }), function (resp) {
+                        $scope.showMsg('错误', '服务器错误');
+                    }
+                }
+            }
+        };
+
+        var passwordModal = $modal({
+            resolve: {
+                load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                    //return [$ocLazyLoad.load('../main/user/edituser.css')];
+                }]
+            },
+            scope: $scope,
+            controller: updatepassword,
+            templateUrl: '../main/firstEditPassword.html',
+            show: false,
+            animation: 'am-fade-and-slide-top'
+        });
+
+        $scope.changePassword = function () {
+            var username = $scope.loginuser.uid;
+            passwordModal.params = {};
+            $http.get("../../api/user/getUserByUserName", {params: {'username': username}}).then(function (result) {
+                passwordModal.uservm = result.data.extdata.userModel;
+                passwordModal.userinfovm = result.data.item;
+                passwordModal.$promise.then(passwordModal.show);
+            }, function () {
+                $scope.showMsg('错误', '服务器错误');
+            });
+        };
+        $loading.hide();
+    }]).controller("loginECtrl", ['$scope', '$state', '$http', '$loading', '$alert', '$desData', 'AuthUser', function ($scope, $state, $http, $loading, $alert, $desData, AuthUser) {
+        $scope.loginuser = {uid: '', pwd: ''};
+        $scope.sysName = window.sysCompanyName;
+
+        $scope.reset = function () {
+            $scope.loginuser.uid = '';
+            $scope.loginuser.pwd = '';
+        };
+
+        $scope.login = function () {
+
+            var tk = $scope.loginuser.uid + '|' + $scope.loginuser.pwd;
+            $loading.show();
+            AuthUser.clearUser();
+            $http.post('../../api/home/locallogin', $desData.GetToken(tk)).then(function (req) {
+                $loading.hide();
+                if (req.data.success) {
+                    window.location.href = '../main/index-kbdsj.html#!/kb/showDjdsj';
+                } else {
+                    $scope.errorMsg = req.data.msg;
+                }
+            }, function (reason) {
+                $loading.hide();
+            });
+
+        };
+
+        $scope.apply = function () {
+            $state.go("register");
+        };
+
+        $loading.hide();
+    }]);
+})(angular, this);