Commit 3a011617 authored by wangqinghua's avatar wangqinghua

权限新增

parent a4323848
npm install ionic serve ionic build --prod cordova build android --release xxxx data-wow-duration: Change the animation duration data-wow-delay: Delay before the animation starts data-wow-offset: Distance to start the animation (related to the browser bottom) data-wow-iteration: Number of times the animation is repeated jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore app-release-unsigned.apk shreg shregshreg 显示的菜单代码,1通讯录,2审核审批,3办理督办,4数据报表,5信息查询,6审批,7审核,8事业单位,9机关群团 13321810809 qweasd123
\ No newline at end of file
npm install ionic serve ionic build --prod cordova build android --release xxxx data-wow-duration: Change the animation duration data-wow-delay: Delay before the animation starts data-wow-offset: Distance to start the animation (related to the browser bottom) data-wow-iteration: Number of times the animation is repeated jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore app-release-unsigned.apk shreg shregshreg 显示的菜单代码,1通讯录,2审核审批,3办理督办,4数据报表,5信息查询,6审批,7审核,8事业单位,9机关群团 13321810809 qweasd123
\ No newline at end of file
......
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.shReg.start.h" version="0.0.2" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<widget id="com.shReg.start.h" version="0.0.2" xmlns="http://www.w3.org/ns/widgets"
xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>上海登记管理</name>
<description>An awesome Ionic/Cordova app.</description>
<author email="hi@ionicframework.com" href="http://ionicframework.com/">Ionic Framework Team</author>
<content src="index.html" />
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<preference name="ScrollEnabled" value="false" />
<preference name="android-minSdkVersion" value="19" />
<preference name="BackupWebStorage" value="none" />
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="FadeSplashScreenDuration" value="300" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="3000" />
<content src="index.html"/>
<access origin="*"/>
<allow-navigation href="*"/>
<allow-intent href="http://*/*"/>
<allow-intent href="https://*/*"/>
<allow-intent href="tel:*"/>
<allow-intent href="sms:*"/>
<allow-intent href="mailto:*"/>
<allow-intent href="geo:*"/>
<preference name="ScrollEnabled" value="false"/>
<preference name="android-minSdkVersion" value="19"/>
<preference name="BackupWebStorage" value="none"/>
<preference name="SplashMaintainAspectRatio" value="true"/>
<preference name="FadeSplashScreenDuration" value="300"/>
<preference name="SplashShowOnlyFirstTime" value="false"/>
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="3000"/>
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
<param name="ios-package" value="CDVWKWebViewEngine"/>
</feature>
<preference name="CordovaWebViewEngine" value="CDVUIWebViewEngine" />
<preference name="android-windowSoftInputMode" value="adjustPan|stateHidden" />
<preference name="CordovaWebViewEngine" value="CDVUIWebViewEngine"/>
<preference name="android-windowSoftInputMode" value="adjustPan|stateHidden"/>
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<application android:networkSecurityConfig="@xml/network_security_config" android:usesCleartextTraffic="true" />
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application"
xmlns:android="http://schemas.android.com/apk/res/android">
<application android:networkSecurityConfig="@xml/network_security_config"
android:usesCleartextTraffic="true"/>
</edit-config>
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
<allow-intent href="market:*" />
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
<icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
<icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
<splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
<splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
<splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
<splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
<splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
<splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
<splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
<splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
<splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
<splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
<splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
<splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
<resource-file src="resources/android/xml/network_security_config.xml"
target="app/src/main/res/xml/network_security_config.xml"/>
<allow-intent href="market:*"/>
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png"/>
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png"/>
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png"/>
<icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png"/>
<icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png"/>
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png"/>
<splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png"/>
<splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png"/>
<splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png"/>
<splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png"/>
<splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png"/>
<splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png"/>
<splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png"/>
<splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png"/>
<splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png"/>
<splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png"/>
<splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png"/>
<splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png"/>
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<icon height="57" src="resources/ios/icon/icon.png" width="57" />
<icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
<icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
<icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" />
<icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" />
<icon height="20" src="resources/ios/icon/icon-20.png" width="20" />
<icon height="40" src="resources/ios/icon/icon-20@2x.png" width="40" />
<icon height="60" src="resources/ios/icon/icon-20@3x.png" width="60" />
<icon height="48" src="resources/ios/icon/icon-24@2x.png" width="48" />
<icon height="55" src="resources/ios/icon/icon-27.5@2x.png" width="55" />
<icon height="29" src="resources/ios/icon/icon-29.png" width="29" />
<icon height="58" src="resources/ios/icon/icon-29@2x.png" width="58" />
<icon height="87" src="resources/ios/icon/icon-29@3x.png" width="87" />
<icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
<icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" />
<icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120" />
<icon height="88" src="resources/ios/icon/icon-44@2x.png" width="88" />
<icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
<icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" />
<icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
<icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" />
<icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" />
<icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
<icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" />
<icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
<icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" />
<icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167" />
<icon height="172" src="resources/ios/icon/icon-86@2x.png" width="172" />
<icon height="196" src="resources/ios/icon/icon-98@2x.png" width="196" />
<icon height="1024" src="resources/ios/icon/icon-1024.png" width="1024" />
<splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
<splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
<splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
<splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
<splash height="1125" src="resources/ios/splash/Default-Landscape-2436h.png" width="2436" />
<splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
<splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
<splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
<splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
<splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
<splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
<splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
<splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
<splash height="2436" src="resources/ios/splash/Default-2436h.png" width="1125" />
<splash height="2732" src="resources/ios/splash/Default@2x~universal~anyany.png" width="2732" />
<allow-intent href="itms:*"/>
<allow-intent href="itms-apps:*"/>
<icon height="57" src="resources/ios/icon/icon.png" width="57"/>
<icon height="114" src="resources/ios/icon/icon@2x.png" width="114"/>
<icon height="29" src="resources/ios/icon/icon-small.png" width="29"/>
<icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58"/>
<icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87"/>
<icon height="20" src="resources/ios/icon/icon-20.png" width="20"/>
<icon height="40" src="resources/ios/icon/icon-20@2x.png" width="40"/>
<icon height="60" src="resources/ios/icon/icon-20@3x.png" width="60"/>
<icon height="48" src="resources/ios/icon/icon-24@2x.png" width="48"/>
<icon height="55" src="resources/ios/icon/icon-27.5@2x.png" width="55"/>
<icon height="29" src="resources/ios/icon/icon-29.png" width="29"/>
<icon height="58" src="resources/ios/icon/icon-29@2x.png" width="58"/>
<icon height="87" src="resources/ios/icon/icon-29@3x.png" width="87"/>
<icon height="40" src="resources/ios/icon/icon-40.png" width="40"/>
<icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80"/>
<icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120"/>
<icon height="88" src="resources/ios/icon/icon-44@2x.png" width="88"/>
<icon height="50" src="resources/ios/icon/icon-50.png" width="50"/>
<icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100"/>
<icon height="60" src="resources/ios/icon/icon-60.png" width="60"/>
<icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120"/>
<icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180"/>
<icon height="72" src="resources/ios/icon/icon-72.png" width="72"/>
<icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144"/>
<icon height="76" src="resources/ios/icon/icon-76.png" width="76"/>
<icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152"/>
<icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167"/>
<icon height="172" src="resources/ios/icon/icon-86@2x.png" width="172"/>
<icon height="196" src="resources/ios/icon/icon-98@2x.png" width="196"/>
<icon height="1024" src="resources/ios/icon/icon-1024.png" width="1024"/>
<splash height="480" src="resources/ios/splash/Default~iphone.png" width="320"/>
<splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640"/>
<splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768"/>
<splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024"/>
<splash height="1125" src="resources/ios/splash/Default-Landscape-2436h.png" width="2436"/>
<splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208"/>
<splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536"/>
<splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048"/>
<splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048"/>
<splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732"/>
<splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640"/>
<splash height="1334" src="resources/ios/splash/Default-667h.png" width="750"/>
<splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242"/>
<splash height="2436" src="resources/ios/splash/Default-2436h.png" width="1125"/>
<splash height="2732" src="resources/ios/splash/Default@2x~universal~anyany.png" width="2732"/>
</platform>
<plugin name="cordova-plugin-whitelist" spec="~1.3.3" />
<plugin name="cordova-plugin-statusbar" spec="~2.4.2" />
<plugin name="cordova-plugin-device" spec="~2.0.2" />
<plugin name="cordova-plugin-splashscreen" spec="~5.0.2" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.1.3" />
<plugin name="cordova-plugin-nativestorage" spec="~2.3.2" />
<plugin name="cordova-plugin-whitelist" spec="~1.3.3"/>
<plugin name="cordova-plugin-statusbar" spec="~2.4.2"/>
<plugin name="cordova-plugin-device" spec="~2.0.2"/>
<plugin name="cordova-plugin-splashscreen" spec="~5.0.2"/>
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.1.3"/>
<plugin name="cordova-plugin-nativestorage" spec="~2.3.2"/>
<plugin name="cordova-plugin-advanced-http" spec="~2.1.1">
<variable name="OKHTTP_VERSION" value="3.10.0" />
<variable name="OKHTTP_VERSION" value="3.10.0"/>
</plugin>
<plugin name="cordova-plugin-file" spec="^6.0.2" />
<plugin name="cordova-plugin-file-opener2" spec="~2.2.1" />
<plugin name="cordova-plugin-inappbrowser" spec="~3.1.0" />
<plugin name="cordova-plugin-app-version" spec="~0.1.9" />
<plugin name="cordova-plugin-file" spec="^6.0.2"/>
<plugin name="cordova-plugin-file-opener2" spec="~2.2.1"/>
<plugin name="cordova-plugin-inappbrowser" spec="~3.1.0"/>
<plugin name="cordova-plugin-app-version" spec="~0.1.9"/>
<plugin name="cordova-plugin-photo-library" spec="git+https://github.com/nilebma/cordova-plugin-photo-library.git">
<variable name="PHOTO_LIBRARY_USAGE_DESCRIPTION" value=" " />
<variable name="PHOTO_LIBRARY_USAGE_DESCRIPTION" value=" "/>
</plugin>
<chcp>
<native-interface version="1"/>
<auto-download enabled="false"/>
<auto-install enabled="true"/>
<config-file url="http://{你自己的服务器地址}/hotcode/chcp.json"/>
</chcp>
</widget>
......@@ -5,14 +5,14 @@ page-detail3 {
}
table {
width: 100%;
width: 100%;
td, th {
text-align: center;
height: 30px;
padding: 2px;
}
}
td, th {
text-align: center;
height: 30px;
padding: 2px;
}
}
.changeBusiness{
p {
......
......@@ -8,6 +8,12 @@
<div class="echart-data">
<div class="echart-title">
<span>事业单位总览信息</span>
<ion-select [(ngModel)]="yearmonth" cancelText="取消" okText="确定" placeholder="选择"
(ngModelChange)="getUnits()">
<ng-container *ngFor="let item of yearList">
<ion-option [value]="item">{{item}}</ion-option>
</ng-container>
</ion-select>
</div>
<ion-segment style="padding: 0 30px" [(ngModel)]="type" (ngModelChange)="switchEchart()">
<ion-segment-button value="unit">
......@@ -21,7 +27,7 @@
</ion-segment-button>
</ion-segment>
<div class="echart">
<div #echart1 class="echart-pie"> </div>
<div #echart1 class="echart-pie"></div>
</div>
<div class="data">
<div class="table">
......@@ -38,10 +44,17 @@
<tbody>
<tr *ngFor="let item of unitsInfo">
<td>{{item.geo}}</td>
<td>{{type == 'unit'?item.unitCount1:type == 'bzrs'?item.bzrs1:item.syrs1}}</td>
<td>{{type == 'unit'?item.unitCount2:type == 'bzrs'?item.bzrs2:item.syrs2}}</td>
<td>{{type == 'unit'?item.unitCount3:type == 'bzrs'?item.bzrs3:item.syrs3}}</td>
<td>{{type == 'unit'?item.unitTotal:type == 'bzrs'?item.bzrsTotal:item.syrsTotal}}</td>
<td>{{type == 'unit' ? item.unitCount1 : type == 'bzrs' ? item.bzrs1 : item.syrs1}}</td>
<td>{{type == 'unit' ? item.unitCount2 : type == 'bzrs' ? item.bzrs2 : item.syrs2}}</td>
<td>{{type == 'unit' ? item.unitCount3 : type == 'bzrs' ? item.bzrs3 : item.syrs3}}</td>
<td>{{type == 'unit' ? item.unitTotal : type == 'bzrs' ? item.bzrsTotal : item.syrsTotal}}</td>
</tr>
<tr>
<td>合计:</td>
<td>{{count.count1}}</td>
<td>{{count.count2}}</td>
<td>{{count.count3}}</td>
<td>{{count.countTotal}}</td>
</tr>
</tbody>
</table>
......@@ -53,7 +66,7 @@
<span>实名制上报率</span>
</div>
<div class="echart">
<div #echart2 class="echart-pie"> </div>
<div #echart2 class="echart-pie"></div>
</div>
<ion-row class="data-report">
<ion-col col-4 *ngFor="let item of areaList">
......
......@@ -9,6 +9,17 @@ page-data-report {
}
.echart-title {
position: relative;
ion-select {
position: absolute;
right: 15px;
top: 10px;
border: 1px solid #ddd;
padding: 3px 10px;
border-radius: 3px;
}
span:last-child {
color: #5991CA;
}
......
import {Component, ElementRef, ViewChild} from '@angular/core';
import {IonicPage, NavController, NavParams} from 'ionic-angular';
import {IonicPage, LoadingController, NavController, NavParams} from 'ionic-angular';
import {HomeService} from "../home.service";
import {DatePipe} from "@angular/common";
import * as echarts from 'echarts';
......@@ -13,24 +13,30 @@ export class DataReportPage {
@ViewChild('echart2') echart2: ElementRef;//显示图形的容器
echartData1;
echartData2;
count = {
lastCount: "20",
nowCount: "50",
YeWuBanLi: "10",
ShenHeTongGuo: "20",
ShenHeJuJue: "30",
FaHuiBuCong: "40"
};
yearmonth = '2019-11';
areaList;
unitsInfo;
type = "unit";
yearList = [];
count = {
count1: 0,
count2: 0,
count3: 0,
countTotal: 0,
};
constructor(public navCtrl: NavController, public navParams: NavParams,
private datePipe: DatePipe,
private loadCtrl: LoadingController,
private homeSer: HomeService) {
const yearmonth = new Date().getFullYear() + '-' + new Date().getMonth();
this.yearmonth = this.datePipe.transform(yearmonth, 'yyyy-MM')
this.yearmonth = this.datePipe.transform(yearmonth, 'yyyy-MM');
const year = new Date().getFullYear();
const month = new Date().getMonth();
for (let i = 1; i < month + 1; i++) {
let d = this.datePipe.transform(year + '-' + i, 'yyyy-MM');
this.yearList.push(d);
}
}
ionViewDidLoad() {
......@@ -43,17 +49,47 @@ export class DataReportPage {
const data = {
yearmonth: this.yearmonth,
};
let loading = this.loadCtrl.create();
loading.present();
this.homeSer.units(data).subscribe(
(res) => {
if (res.code == 0) {
this.unitsInfo = res.data;
this.switchEchart();
this.countInfo();
}
loading.dismiss();
}
)
}
countInfo() {
if (this.type == 'unit') {
this.unitsInfo.forEach(e => {
this.count.count1 += e.unitCount1;
this.count.count2 += e.unitCount1;
this.count.count3 += e.unitCount1;
this.count.countTotal += e.unitTotal;
})
}
if (this.type == 'bzrs') {
this.unitsInfo.forEach(e => {
this.count.count1 += e.bzrs1;
this.count.count2 += e.bzrs2;
this.count.count3 += e.bzrs3;
this.count.countTotal += e.bzrsTotal;
})
}
if (this.type == 'syrs') {
this.unitsInfo.forEach(e => {
this.count.count1 += e.syrs1;
this.count.count2 += e.syrs2;
this.count.count3 += e.syrs3;
this.count.countTotal += e.syrsTotal;
})
}
}
switchEchart() {
this.echartData1 = {
grid: {
......
......@@ -43,6 +43,12 @@
<div class="echart-data">
<div class="echart-title">
<span>事业单位总览信息</span>
<ion-select [(ngModel)]="yearmonth" cancelText="取消" okText="确定" placeholder="选择"
(ngModelChange)="getUnits()">
<ng-container *ngFor="let item of yearList">
<ion-option [value]="item">{{item}}</ion-option>
</ng-container>
</ion-select>
</div>
<ion-segment style="padding: 0 30px" [(ngModel)]="type" (ngModelChange)="switchEchart()">
<ion-segment-button value="unit">
......@@ -56,7 +62,7 @@
</ion-segment-button>
</ion-segment>
<div class="echart">
<div #echart class="echart-pie"> </div>
<div #echart class="echart-pie"></div>
</div>
<div class="data">
<div class="table">
......@@ -73,10 +79,17 @@
<tbody>
<tr *ngFor="let item of unitsInfo">
<td>{{item.geo}}</td>
<td>{{type == 'unit'?item.unitCount1:type == 'bzrs'?item.bzrs1:item.syrs1}}</td>
<td>{{type == 'unit'?item.unitCount2:type == 'bzrs'?item.bzrs2:item.syrs2}}</td>
<td>{{type == 'unit'?item.unitCount3:type == 'bzrs'?item.bzrs3:item.syrs3}}</td>
<td>{{type == 'unit'?item.unitTotal:type == 'bzrs'?item.bzrsTotal:item.syrsTotal}}</td>
<td>{{type == 'unit' ? item.unitCount1 : type == 'bzrs' ? item.bzrs1 : item.syrs1}}</td>
<td>{{type == 'unit' ? item.unitCount2 : type == 'bzrs' ? item.bzrs2 : item.syrs2}}</td>
<td>{{type == 'unit' ? item.unitCount3 : type == 'bzrs' ? item.bzrs3 : item.syrs3}}</td>
<td>{{type == 'unit' ? item.unitTotal : type == 'bzrs' ? item.bzrsTotal : item.syrsTotal}}</td>
</tr>
<tr>
<td>合计:</td>
<td>{{count.count1}}</td>
<td>{{count.count2}}</td>
<td>{{count.count3}}</td>
<td>{{count.countTotal}}</td>
</tr>
</tbody>
</table>
......
......@@ -10,6 +10,8 @@ import {DoSupervisePage} from "./do-supervise/do-supervise";
import {DoVerityPage} from "./do-verity/do-verity";
import {InfoDetailPage} from "./report-info/info-detail/info-detail";
import {InfoListPage} from "./report-info/info-list/info-list";
import {YearReportPage} from "./report-info/year-report/year-report";
import {PipesModule} from "../../pipes/pipes.module";
@NgModule({
declarations: [
......@@ -22,10 +24,12 @@ import {InfoListPage} from "./report-info/info-list/info-list";
DoVerityPage,
InfoDetailPage,
InfoListPage,
YearReportPage,
],
imports: [
IonicPageModule.forChild(HomePage),
ComponentsModule,
PipesModule,
],
entryComponents: [
ContactPage,
......@@ -36,6 +40,7 @@ import {InfoListPage} from "./report-info/info-list/info-list";
DoVerityPage,
InfoDetailPage,
InfoListPage,
YearReportPage,
]
})
export class HomeModule {
......
......@@ -45,6 +45,17 @@ page-home {
}
.echart-title {
position: relative;
ion-select {
position: absolute;
right: 15px;
top: 10px;
border: 1px solid #ddd;
padding: 3px 10px;
border-radius: 3px;
}
span:last-child {
color: #5991CA;
}
......
import {HttpClient} from "@angular/common/http";import {Injectable} from "@angular/core";import {Observable} from "rxjs/Observable";import {SERVER_API_URL, SERVER_API_WEB} from "../../app/app.constants";import {HTTP} from "@ionic-native/http";import {DataFormatService} from "../../core/dataFormat.service"; @Injectable()export class HomeService { constructor(private http: HttpClient, private nativeHttp: HTTP, private dataFormat: DataFormatService) { } //单位信息总揽 units(data): Observable<any> { return this.http.post(SERVER_API_URL + '/statis/units.do', data); } //通讯录 getOrgList(data): Observable<any> { return this.http.post(SERVER_API_URL + '/user/addressinfo.do',data); } //部门人员 getPersonList(data): Observable<any> { return this.http.post(SERVER_API_URL + '/user/getPersonList.do',data); } //事项督办 searchDb(data): Observable<any> { return this.http.post(SERVER_API_URL + '/schedule/search_db.do', data); } //督办操作 dbSuper(data): Observable<any> { return this.http.post(SERVER_API_URL + '/schedule/super.do', data); } //获取附件信息接口 fileAttach(data): Observable<any> { return this.http.post(SERVER_API_URL + '/user/Attach.do', data); } //获取系统中区划信息的接口 getArea(data): Observable<any> { return this.http.post(SERVER_API_URL + '/user/area.do', data); } //实名制上报率排行榜 shangbaolv(data): Observable<any> { return this.http.post(SERVER_API_URL + '/statis/shangbaolv.do', data); } //事业单位信息查询 unitfind(data): Observable<any> { return this.http.post(SERVER_API_WEB + '/infomation/unitfind.do', data); } //机关群团信息查询 creditorgan(data): Observable<any> { return this.http.post(SERVER_API_WEB + '/infomation/creditorgan.do', data); } }
\ No newline at end of file
import {HttpClient} from "@angular/common/http";import {Injectable} from "@angular/core";import {Observable} from "rxjs/Observable";import {SERVER_API_URL, SERVER_API_WEB} from "../../app/app.constants";import {HTTP} from "@ionic-native/http";import {DataFormatService} from "../../core/dataFormat.service"; @Injectable()export class HomeService { constructor(private http: HttpClient, private nativeHttp: HTTP, private dataFormat: DataFormatService) { } //单位信息总揽 units(data): Observable<any> { return this.http.post(SERVER_API_URL + '/statis/units.do', data); } //通讯录 getOrgList(data): Observable<any> { return this.http.post(SERVER_API_URL + '/user/addressinfo.do',data); } //部门人员 getPersonList(data): Observable<any> { return this.http.post(SERVER_API_URL + '/user/getPersonList.do',data); } //事项督办 searchDb(data): Observable<any> { return this.http.post(SERVER_API_URL + '/schedule/search_db.do', data); } //督办操作 dbSuper(data): Observable<any> { return this.http.post(SERVER_API_URL + '/schedule/super.do', data); } //获取附件信息接口 fileAttach(data): Observable<any> { return this.http.post(SERVER_API_URL + '/user/Attach.do', data); } //获取系统中区划信息的接口 getArea(data): Observable<any> { return this.http.post(SERVER_API_URL + '/user/area.do', data); } //实名制上报率排行榜 shangbaolv(data): Observable<any> { return this.http.post(SERVER_API_URL + '/statis/shangbaolv.do', data); } //事业单位信息查询 unitfind(data): Observable<any> { return this.http.post(SERVER_API_WEB + '/infomation/unitfind.do', data); } //机关群团信息查询 creditorgan(data): Observable<any> { return this.http.post(SERVER_API_WEB + '/infomation/creditorgan.do', data); } //年度报告 yearreportdetail(data): Observable<any> { return this.http.post(SERVER_API_WEB + '/infomation/yearreportdetail.do', data); } }
\ No newline at end of file
......
......@@ -36,6 +36,14 @@ export class HomePage {
unitsInfo;
mineInfo; //个人信息
roles = [];
count = {
count1: 0,
count2: 0,
count3: 0,
countTotal: 0,
};
yearList = [];
constructor(public navCtrl: NavController, public homeSer: HomeService, private loadCtrl: LoadingController,
private commonSer: CommonService, private storage: Storage,
......@@ -47,9 +55,15 @@ export class HomePage {
this.mineInfo = this.global.userObj;
this.storage.get('roles').then((value) => {
this.roles = value || [];
})
});
const yearmonth = new Date().getFullYear() + '-' + new Date().getMonth();
this.yearmonth = this.datePipe.transform(yearmonth, 'yyyy-MM')
this.yearmonth = this.datePipe.transform(yearmonth, 'yyyy-MM');
const year = new Date().getFullYear();
const month = new Date().getMonth();
for (let i = 1; i < month + 1; i++) {
let d = this.datePipe.transform(year + '-' + i, 'yyyy-MM');
this.yearList.push(d);
}
}
ionViewDidLoad() {
......@@ -61,18 +75,49 @@ export class HomePage {
const data = {
yearmonth: this.yearmonth,
};
let loading = this.loadCtrl.create();
loading.present();
this.homeSer.units(data).subscribe(
(res) => {
if (res.code == 0) {
this.unitsInfo = res.data;
this.switchEchart();
this.countInfo()
}
loading.dismiss();
}
)
}
countInfo() {
if (this.type == 'unit') {
this.unitsInfo.forEach(e => {
this.count.count1 += e.unitCount1;
this.count.count2 += e.unitCount1;
this.count.count3 += e.unitCount1;
this.count.countTotal += e.unitTotal;
})
}
if (this.type == 'bzrs') {
this.unitsInfo.forEach(e => {
this.count.count1 += e.bzrs1;
this.count.count2 += e.bzrs2;
this.count.count3 += e.bzrs3;
this.count.countTotal += e.bzrsTotal;
})
}
if (this.type == 'syrs') {
this.unitsInfo.forEach(e => {
this.count.count1 += e.syrs1;
this.count.count2 += e.syrs2;
this.count.count3 += e.syrs3;
this.count.countTotal += e.syrsTotal;
})
}
}
switchEchart() {
this.countInfo();
this.echartData = {
grid: {
left: "8%",
......@@ -112,7 +157,7 @@ export class HomePage {
},
series: [
{
name: this.type == 'unit'?'单位数(个)':this.type == 'syrs'?'实有人数(人)':'编制人数(人)',
name: this.type == 'unit' ? '单位数(个)' : this.type == 'syrs' ? '实有人数(人)' : '编制人数(人)',
type: 'bar',
data: this.unitsInfo.map(e => {
let d;
......
......@@ -67,6 +67,18 @@
<span>{{ infoObj.zsh || '-'}}</span>
</div>
</div>
<p>年度报告情况</p>
<div>
<ng-container *ngFor="let year of infoObj?.ndbgUnitList">
<div class="item-box" (click)="goToYearReport(year)">
<div class="left">{{year.year}}</div>
<div class="right year">
<span
[ngClass]="{'select':year.is_public == '0'}">{{ year.is_public == '0' ? '未上报' : '已公开'}}</span>
</div>
</div>
</ng-container>
</div>
</ng-container>
<ng-container *ngIf="type == 2">
<div class="item-box">
......@@ -105,6 +117,30 @@
<span>{{infoObj?.issueDateStr || "-"}}</span>
</div>
</div>
<div class="item-box">
<div class="left">编制数:</div>
<div class="right">
<span>{{infoObj?.bzrs || "-"}}</span>
</div>
</div>
<div class="item-box">
<div class="left">实有人数:</div>
<div class="right">
<span>{{infoObj?.syrs || "-"}}</span>
</div>
</div>
<div class="item-box">
<div class="left">联系人:</div>
<div class="right">
<span>{{infoObj?.lxr || "-"}}</span>
</div>
</div>
<div class="item-box">
<div class="left">联系电话:</div>
<div class="right">
<span>{{infoObj?.lxdh || "-"}}</span>
</div>
</div>
</ng-container>
</div>
......
page-info-detail {
.content > p {
padding: 10px 30px;
font-weight: 600;
color: #2a77b0;
}
.year span.select {
padding: 5px 10px;
background-color: #fb9167;
color: #ffffff;
border-radius: 3px;
}
.year span {
color: #4db50e;
}
}
import {Component} from '@angular/core';
import {IonicPage, NavController, NavParams} from 'ionic-angular';
import {HomeService} from "../../home.service";
import {YearReportPage} from "../year-report/year-report";
@Component({
......@@ -22,4 +23,10 @@ export class InfoDetailPage {
console.log('ionViewDidLoad InfoDetailPage');
}
goToYearReport(item) {
if (item.is_public == '0') {
return;
}
this.navCtrl.push(YearReportPage, {ndbg_id: item.ndbg_id, unit_id: this.infoObj.unit_id});
}
}
import {NgModule} from '@angular/core';
import {StringSlicePipe} from './string-slice/string-slice';
import {LineFeedPipe} from "./line-feed/line-feed";
import { ToCountPipe } from './to-count/to-count';
@NgModule({
declarations: [StringSlicePipe, LineFeedPipe],
declarations: [StringSlicePipe, LineFeedPipe,
ToCountPipe],
imports: [],
exports: [StringSlicePipe, LineFeedPipe]
exports: [StringSlicePipe, LineFeedPipe,
ToCountPipe]
})
export class PipesModule {
}
//tab切换头 .scroll-tab { overflow: hidden; position: relative; } .news-content { overflow-y: hidden; overflow-x: scroll; width: 100%; .tabs-parent { position: relative; font-size: 1.4rem; white-space: nowrap; padding: .5rem 0; transition: all 500ms; } .tabs-parent::-webkit-scrollbar { display: none; } .selectTab { color: #e42417; padding: 6px 2px; -webkit-transition: background-color 500ms; -moz-transition: background-color 500ms; -ms-transition: background-color 500ms; -o-transition: background-color 500ms; transition: background-color 500ms; } .tabs-children { text-align: center; cursor: pointer; height: 3rem; padding: .5rem 1.2rem; display: inline-block; color: #747378; } #tips, .tips { position: absolute; bottom: 1px; height: 4px; width: 3rem; background-image: linear-gradient(to right, #fece50, #fff4d9); -webkit-transition: left 500ms; -moz-transition: left 500ms; -ms-transition: left 500ms; -o-transition: left 500ms; transition: left 500ms; } } .news-content::-webkit-scrollbar { display: none; } .color-fff { color: #ffffff; } .color-red { color: red; } .focus { float: right; font-size: 1.3rem; width: 6rem; height: 2.5rem; border-radius: 3rem; text-align: center; line-height: 2.5rem; font-weight: normal; } .focus-blue { background: #addae9; border: 0.08rem solid #addae9; } span.noFocus-blue { background-color: #cccccc; border: 0.08rem solid #cccccc; color: #fff; } .focus-yellow { background: linear-gradient(241deg, rgba(255, 247, 203, 1) 0%, rgba(255, 201, 45, 1) 100%); } //勋章 .badge { display: flex; > span.badgeSpan { display: flex; align-items: center; position: relative; height: 28px; > span { display: inline-block; font-size: 12px; transform: scale(0.9); font-family: PingFangSC-Semibold, PingFang SC; font-weight: 600; color: rgba(0, 0, 0, .7); background: rgba(250, 216, 114, 1); border-radius: 9px; line-height: 18px; padding: 2px 10px 2px 25px; margin-left: 2px; } img { position: absolute; top: 0; left: 0; z-index: 9; width: 28px; height: 28px; } } } .item-left { text-align: right; width: 20%; font-weight: bold; font-size: 1.4rem; flex: none; } .item-ios.item-block .item-inner { border-bottom: 0.55px solid #eeeeee; } .choose { text-align: right; margin-right: 20px; font-size: 1.5rem; color: #999; } .flowDetail .choose, .handle .choose { color: #5991CA; } .flowDetail .item-left { text-align: left; width: 80%; } ion-label { overflow: auto; white-space: normal; } .item-box { display: flex; border-bottom: 0.55px solid #eeeeee; background-color: #fff; .left { text-align: right; width: 30%; font-weight: bold; font-size: 1.4rem; margin: 11px 8px 11px 0; } .right { width: 80%; padding: 11px 8px 11px 16px; .div-tag { padding: 10px 0; span { display: inline-block; margin-right: 10px; white-space: initial; border: 1px solid #eee; font-size: 1rem; margin-bottom: 5px; border-radius: 4px; width: 60px; height: 25px; text-align: center; line-height: 25px; ion-icon { margin-left: 3px; color: #666666; font-size: 1rem; } } } button { margin: 0; } ion-textarea { padding: 6px; height: 100px; border: 1px solid #ddd; } .tag { border: 1px solid #ccc; margin: 0 5px 10px 0; display: inline-block; border-radius: 4px; font-size: 1.2rem; width: 60px; height: 25px; text-align: center; line-height: 25px; } span.selectLead { background-color: #fdf8f2; border: 1px solid #e42417; color: #e42417; } } } page-detail1.ion-page > ion-content, page-detail2.ion-page > ion-content, page-detail3.ion-page > ion-content, page-detail4.ion-page > ion-content, page-file-list.ion-page > ion-content, page-history.ion-page > ion-content, page-approvals.ion-page > ion-content, page-detail5.ion-page > ion-content { background-color: #fff; }
\ No newline at end of file
//tab切换头 .scroll-tab { overflow: hidden; position: relative; } .news-content { overflow-y: hidden; overflow-x: scroll; width: 100%; .tabs-parent { position: relative; font-size: 1.4rem; white-space: nowrap; padding: .5rem 0; transition: all 500ms; } .tabs-parent::-webkit-scrollbar { display: none; } .selectTab { color: #e42417; padding: 6px 2px; -webkit-transition: background-color 500ms; -moz-transition: background-color 500ms; -ms-transition: background-color 500ms; -o-transition: background-color 500ms; transition: background-color 500ms; } .tabs-children { text-align: center; cursor: pointer; height: 3rem; padding: .5rem 1.2rem; display: inline-block; color: #747378; } #tips, .tips { position: absolute; bottom: 1px; height: 4px; width: 3rem; background-image: linear-gradient(to right, #fece50, #fff4d9); -webkit-transition: left 500ms; -moz-transition: left 500ms; -ms-transition: left 500ms; -o-transition: left 500ms; transition: left 500ms; } } .news-content::-webkit-scrollbar { display: none; } .color-fff { color: #ffffff; } .color-red { color: red; } .focus { float: right; font-size: 1.3rem; width: 6rem; height: 2.5rem; border-radius: 3rem; text-align: center; line-height: 2.5rem; font-weight: normal; } .focus-blue { background: #addae9; border: 0.08rem solid #addae9; } span.noFocus-blue { background-color: #cccccc; border: 0.08rem solid #cccccc; color: #fff; } .focus-yellow { background: linear-gradient(241deg, rgba(255, 247, 203, 1) 0%, rgba(255, 201, 45, 1) 100%); } //勋章 .badge { display: flex; > span.badgeSpan { display: flex; align-items: center; position: relative; height: 28px; > span { display: inline-block; font-size: 12px; transform: scale(0.9); font-family: PingFangSC-Semibold, PingFang SC; font-weight: 600; color: rgba(0, 0, 0, .7); background: rgba(250, 216, 114, 1); border-radius: 9px; line-height: 18px; padding: 2px 10px 2px 25px; margin-left: 2px; } img { position: absolute; top: 0; left: 0; z-index: 9; width: 28px; height: 28px; } } } .item-left { text-align: right; width: 20%; font-weight: bold; font-size: 1.4rem; flex: none; } .item-ios.item-block .item-inner { border-bottom: 0.55px solid #eeeeee; } .choose { text-align: right; margin-right: 20px; font-size: 1.5rem; color: #999; } .flowDetail .choose, .handle .choose { color: #5991CA; } .flowDetail .item-left { text-align: left; width: 80%; } ion-label { overflow: auto; white-space: normal; } .item-box { display: flex; border-bottom: 0.55px solid #eeeeee; background-color: #fff; .left { text-align: right; width: 30%; font-weight: bold; font-size: 1.4rem; margin: 11px 8px 11px 2px; } .right { width: 80%; padding: 11px 8px 11px 16px; .div-tag { padding: 10px 0; span { display: inline-block; margin-right: 10px; white-space: initial; border: 1px solid #eee; font-size: 1rem; margin-bottom: 5px; border-radius: 4px; width: 60px; height: 25px; text-align: center; line-height: 25px; ion-icon { margin-left: 3px; color: #666666; font-size: 1rem; } } } button { margin: 0; } ion-textarea { padding: 6px; height: 100px; border: 1px solid #ddd; } .tag { border: 1px solid #ccc; margin: 0 5px 10px 0; display: inline-block; border-radius: 4px; font-size: 1.2rem; width: 60px; height: 25px; text-align: center; line-height: 25px; } span.selectLead { background-color: #fdf8f2; border: 1px solid #e42417; color: #e42417; } } } page-detail1.ion-page > ion-content, page-detail2.ion-page > ion-content, page-detail3.ion-page > ion-content, page-detail4.ion-page > ion-content, page-file-list.ion-page > ion-content, page-history.ion-page > ion-content, page-approvals.ion-page > ion-content, page-detail5.ion-page > ion-content { background-color: #fff; }
\ No newline at end of file
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment