Commit 9bd9a54d authored by wangqinghua's avatar wangqinghua

update

parent e55d665b
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
\ 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
\ No newline at end of file
......
This diff is collapsed.
......@@ -716,9 +716,9 @@
"dev": true
},
"android-versions": {
"version": "1.4.0",
"resolved": "http://r.cnpmjs.org/android-versions/download/android-versions-1.4.0.tgz",
"integrity": "sha1-gH6ilB1+V4Dm3WHF2be288Bwbgk=",
"version": "1.5.0",
"resolved": "http://r.cnpmjs.org/android-versions/download/android-versions-1.5.0.tgz",
"integrity": "sha1-d5C8dOCBKq/Wn7GtDLTbRHSlJdY=",
"requires": {
"semver": "^5.4.1"
}
......@@ -802,6 +802,11 @@
"resolved": "http://r.cnpmjs.org/array-flatten/download/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"array-ify": {
"version": "1.0.0",
"resolved": "http://r.cnpmjs.org/array-ify/download/array-ify-1.0.0.tgz",
"integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4="
},
"array-union": {
"version": "1.0.2",
"resolved": "http://r.cnpmjs.org/array-union/download/array-union-1.0.2.tgz",
......@@ -1563,6 +1568,15 @@
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
"dev": true
},
"compare-func": {
"version": "1.3.2",
"resolved": "http://r.cnpmjs.org/compare-func/download/compare-func-1.3.2.tgz",
"integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=",
"requires": {
"array-ify": "^1.0.0",
"dot-prop": "^3.0.0"
}
},
"component-emitter": {
"version": "1.3.0",
"resolved": "http://r.cnpmjs.org/component-emitter/download/component-emitter-1.3.0.tgz",
......@@ -1748,16 +1762,16 @@
}
},
"cordova-android": {
"version": "8.0.0",
"resolved": "http://r.cnpmjs.org/cordova-android/download/cordova-android-8.0.0.tgz",
"integrity": "sha1-H74FqRRzHfYZUiuThdTRsYPDa9s=",
"version": "8.1.0",
"resolved": "http://r.cnpmjs.org/cordova-android/download/cordova-android-8.1.0.tgz",
"integrity": "sha1-2a6mK75KTI0i/fIWFoaUOc0claA=",
"requires": {
"android-versions": "^1.3.0",
"cordova-common": "^3.1.0",
"elementtree": "^0.1.7",
"android-versions": "^1.4.0",
"compare-func": "^1.3.2",
"cordova-common": "^3.2.0",
"nopt": "^4.0.1",
"properties-parser": "^0.3.1",
"q": "^1.4.1",
"q": "^1.5.1",
"shelljs": "^0.5.3"
},
"dependencies": {
......@@ -2393,6 +2407,14 @@
"integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=",
"dev": true
},
"dot-prop": {
"version": "3.0.0",
"resolved": "http://r.cnpmjs.org/dot-prop/download/dot-prop-3.0.0.tgz",
"integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=",
"requires": {
"is-obj": "^1.0.0"
}
},
"dotenv": {
"version": "6.2.0",
"resolved": "http://r.cnpmjs.org/dotenv/download/dotenv-6.2.0.tgz",
......@@ -4117,6 +4139,11 @@
"kind-of": "^3.0.2"
}
},
"is-obj": {
"version": "1.0.1",
"resolved": "http://r.cnpmjs.org/is-obj/download/is-obj-1.0.1.tgz",
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
},
"is-plain-object": {
"version": "2.0.4",
"resolved": "http://r.cnpmjs.org/is-plain-object/download/is-plain-object-2.0.4.tgz",
......
......@@ -37,7 +37,7 @@
"@ionic-native/status-bar": "~4.20.0",
"@ionic/storage": "2.2.0",
"com.lampa.startapp": "^6.1.6",
"cordova-android": "^8.0.0",
"cordova-android": "^8.1.0",
"cordova-browser": "^6.0.0",
"cordova-ios": "^5.0.1",
"cordova-plugin-add-swift-support": "^2.0.2",
......@@ -112,8 +112,7 @@
},
"platforms": [
"browser",
"ios",
"android"
"ios"
]
}
}
}
\ No newline at end of file
These are Cordova resources. You can replace icon.png and splash.png and run
`ionic cordova resources` to generate custom icons and splash screens for your
app. See `ionic cordova resources --help` for details.
Cordova reference documentation:
- Icons: https://cordova.apache.org/docs/en/latest/config_ref/images.html
- Splash Screens: https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-splashscreen/
<?xml version="1.0" encoding="utf-8"?><network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">localhost</domain> </domain-config></network-security-config>
\ No newline at end of file
2c3fc936a7667a90275e56d7c6c32ef5
\ No newline at end of file
b27a9654b61f960b7ffc65645f8be36e
\ No newline at end of file
2c3fc936a7667a90275e56d7c6c32ef5
\ No newline at end of file
644a448814c4e15932cad2ef1635a6b2
\ No newline at end of file
644a448814c4e15932cad2ef1635a6b2
\ No newline at end of file
644a448814c4e15932cad2ef1635a6b2
\ No newline at end of file
......@@ -45,7 +45,7 @@ export class MyApp {
//app字体不跟随手机字体大小变化
this.mobileAccess.usePreferredTextZoom(false);
this.splashScreen.show();
this.splashScreen.hide();
this.statusBar.show();
this.statusBar.overlaysWebView(false);
this.statusBar.backgroundColorByHexString('#5991CA');
......
import { Animation, PageTransition } from 'ionic-angular'; /** * modal侧边栏的弹出方式 */ export class ModalFromRightEnter extends PageTransition { public init() { super.init(); const ele = this.enteringView.pageRef().nativeElement; const backdrop = new Animation(this.plt, ele.querySelector('ion-backdrop')); backdrop.beforeStyles({ 'z-index': 0, 'opacity': 0.3, 'visibility': 'visible' }); const wrapper = new Animation(this.plt, ele.querySelector('.modal-wrapper')); wrapper.beforeStyles({ 'opacity': 1 }); wrapper.fromTo('transform', 'translateX(100%)', 'translateX(20%)'); const contentWrapper = new Animation(this.plt, ele.querySelector('ion-content.content')); contentWrapper.beforeStyles({ 'width': '80%' }); this .element(this.enteringView.pageRef()) .duration(300) .easing('cubic-bezier(.25, .1, .25, 1)') .add(backdrop) .add(wrapper) .add(contentWrapper); }} export class ModalFromRightLeave extends PageTransition { public init() { super.init(); const ele = this.leavingView.pageRef().nativeElement; const backdrop = new Animation(this.plt, ele.querySelector('ion-backdrop')); backdrop.beforeStyles({ 'visibility': 'hidden' }); const wrapper = new Animation(this.plt, ele.querySelector('.modal-wrapper')); wrapper.fromTo('transform', 'translateX(20%)', 'translateX(100%)'); this .element(this.leavingView.pageRef()) .duration(300) .easing('cubic-bezier(.25, .1, .25, 1)') .add(backdrop) .add(wrapper); }} export class ModalScaleEnter extends PageTransition { public init() { super.init(); const ele = this.enteringView.pageRef().nativeElement; const wrapper = new Animation(this.plt, ele.querySelector('.modal-wrapper')); wrapper.beforeStyles({ 'opacity': 1 }); wrapper.fromTo('transform', 'scale(0)', 'scale(1)'); this .element(this.enteringView.pageRef()) .duration(400) .easing('cubic-bezier(.1, .7, .1, 1)') .add(wrapper); }} export class ModalScaleLeave extends PageTransition { public init() { super.init(); const ele = this.leavingView.pageRef().nativeElement; const wrapper = new Animation(this.plt, ele.querySelector('.modal-wrapper')); wrapper.fromTo('transform', 'scale(1)', 'scale(0)'); this .element(this.leavingView.pageRef()) .duration(400) .easing('cubic-bezier(.1, .7, .1, 1)') .add(wrapper); }}
\ No newline at end of file
import { Animation, PageTransition } from 'ionic-angular'; /** * modal侧边栏的弹出方式 */ export class ModalFromRightEnter extends PageTransition { public init() { super.init(); const ele = this.enteringView.pageRef().nativeElement; const backdrop = new Animation(this.plt, ele.querySelector('ion-backdrop')); backdrop.beforeStyles({ 'z-index': 0, 'opacity': 0.3, 'visibility': 'visible' }); const wrapper = new Animation(this.plt, ele.querySelector('.modal-wrapper')); wrapper.beforeStyles({ 'opacity': 1 }); wrapper.fromTo('transform', 'translateX(100%)', 'translateX(10%)'); const contentWrapper = new Animation(this.plt, ele.querySelector('ion-content.content')); contentWrapper.beforeStyles({ 'width': '90%' }); this .element(this.enteringView.pageRef()) .duration(300) .easing('cubic-bezier(.25, .1, .25, 1)') .add(backdrop) .add(wrapper) .add(contentWrapper); }} export class ModalFromRightLeave extends PageTransition { public init() { super.init(); const ele = this.leavingView.pageRef().nativeElement; const backdrop = new Animation(this.plt, ele.querySelector('ion-backdrop')); backdrop.beforeStyles({ 'visibility': 'hidden' }); const wrapper = new Animation(this.plt, ele.querySelector('.modal-wrapper')); wrapper.fromTo('transform', 'translateX(10%)', 'translateX(100%)'); this .element(this.leavingView.pageRef()) .duration(300) .easing('cubic-bezier(.25, .1, .25, 1)') .add(backdrop) .add(wrapper); }} export class ModalScaleEnter extends PageTransition { public init() { super.init(); const ele = this.enteringView.pageRef().nativeElement; const wrapper = new Animation(this.plt, ele.querySelector('.modal-wrapper')); wrapper.beforeStyles({ 'opacity': 1 }); wrapper.fromTo('transform', 'scale(0)', 'scale(1)'); this .element(this.enteringView.pageRef()) .duration(400) .easing('cubic-bezier(.1, .7, .1, 1)') .add(wrapper); }} export class ModalScaleLeave extends PageTransition { public init() { super.init(); const ele = this.leavingView.pageRef().nativeElement; const wrapper = new Animation(this.plt, ele.querySelector('.modal-wrapper')); wrapper.fromTo('transform', 'scale(1)', 'scale(0)'); this .element(this.leavingView.pageRef()) .duration(400) .easing('cubic-bezier(.1, .7, .1, 1)') .add(wrapper); }}
\ No newline at end of file
......
......@@ -68,7 +68,7 @@
</ion-item>
</div>
<div class="space"></div>
<div class="handle">
<div class="handle" *ngIf="type != 'db'">
<ion-item>
<ion-label class="item-left">选择当前业务办理对应批文</ion-label>
<ion-label (click)="openApproval()" class="choose">选择</ion-label>
......
page-deal-detail {
.item-left {
text-align: right;
width: 20%;
width: 22%;
font-weight: bold;
font-size: 1.4rem;
flex: none;
......@@ -111,4 +111,10 @@ page-deal-detail {
z-index: 999;
margin-right: 20px;
}
.history {
background: #5991CA;
color: #fff;
font-size: 14px;
}
}
......@@ -18,6 +18,7 @@ import {SearchPersonComponent} from "../../../components/search-person/search-pe
export class DealDetailPage {
itemInfo;
type; //db
obj = {
opinion: "",
flag: 0,
......@@ -26,6 +27,7 @@ export class DealDetailPage {
constructor(public navCtrl: NavController, public navParams: NavParams,
private dealSer: DealService, private modalCtrl: ModalController) {
this.itemInfo = this.navParams.get("item");
this.type = this.navParams.get("type");
}
ionViewDidLoad() {
......
......@@ -109,8 +109,7 @@ page-deal {
background-color: white;
border: 1px solid #90da91;
color: #90da91;
padding: 2px 6px;
font-size: 6px;
padding: 4px 8px;
}
.color1 {
......
<ion-header>
<ion-navbar>
<ion-title>附件记录</ion-title>
</ion-navbar>
<ion-navbar>
<ion-title>附件记录</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<ion-content>
<div class="file-list">
<div class="file-item">
<div>申请文件1</div>
<div>查看</div>
</div>
<div class="file-item">
<div>申请文件2</div>
<div>查看</div>
</div>
<div class="file-item">
<div>申请文件3</div>
<div>查看</div>
</div>
</div>
</ion-content>
page-file-list {
.toolbar-ios ion-title{
.toolbar-ios ion-title {
padding: 0;
width: 80%;
}
.file-list {
.file-item {
display: flex;
align-items: center;
padding: 15px 10px;
> div:first-child {
width: 80%;
}
> div:last-child {
width: 20%;
color: #5991CA;
}
}
.file-item + .file-item{
border-top: 1px solid #dddddd;
}
}
}
......@@ -10,23 +10,24 @@
<div class="audit-more">
<span class="audit">
<span class="left">审核节点:</span>
<span class="right">{{item.auditNode}}</span>
<span class="right">{{item.auditNode || "-"}}</span>
</span>
<span class="audit">
<span class="left">审核人:</span>
<span class="right">{{item.auditor}}</span>
<span class="right">{{item.auditor || "-"}}</span>
</span>
</div>
<div class="audit-result">
<span class="audit">
<span class="left">审核结果:</span>
<span class="right">{{item.auditResult}}</span>
<span class="right">{{item.auditResult || "-"}}</span>
</span>
<span class="time">{{item.auditTime}}</span>
<span class="left">时间:</span>
<span class="right">{{item.auditTime || "-"}}</span>
</div>
<div class="audit-option">
<span class="option-left">审核意见:</span>
<span class="option-right">{{item.auditOpinion}}</span>
<span class="option-right">{{item.auditOpinion || "-"}}</span>
</div>
</div>
</div>
......
......@@ -4,15 +4,74 @@ page-history {
width: 80%;
}
span {
margin-right: 5px;
}
.history {
padding: 10px 10px 10px 30px;
}
.history::before {
content: "";
position: absolute;
left: 15px;
top: 5px;
width: 2px;
height: 90%;
background-color: #dddddd;
z-index: 1;
border-radius: 5px;
}
.history-item {
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
position: relative;
> div {
margin-bottom: 5px;
}
}
.audit-more {
position: relative;
}
.history-item::before {
content: "";
position: absolute;
left: -20px;
top: 5px;
z-index: 2;
width: 5px;
height: 5px;
border-radius: 50%;
border: 2px solid #5991CA;
background-color: #fff;
}
.audit-more::before {
content: "";
position: absolute;
left: -18px;
top: -4px;
z-index: 2;
border-top: 4px solid transparent;
border-right: 8px solid #dddddd;
border-bottom: 4px solid transparent;
}
.audit-more::after {
content: "";
position: absolute;
left: -16px;
top: -4px;
z-index: 2;
border-top: 4px solid transparent;
border-right: 8px solid #ffffff;
border-bottom: 4px solid transparent;
}
.history-item + .history-item {
......@@ -26,4 +85,16 @@ page-history {
.right {
color: #4b90c8;
}
.audit-option {
display: flex;
.option-left {
width: 65px;
}
.option-right {
width: calc(100% - 60px);
}
}
}
......@@ -9,11 +9,11 @@ import * as Mock from "mockjs";
export class HistoryPage {
historyList = [
{auditNode: "事业单位填报", auditResult: "1", auditTime: "2019-11-21 15:29",auditOpinion:""},
{auditNode: "受理", auditor: "徐委", auditResult: "0", auditTime: "2019-11-21 15:29" ,auditOpinion:"因你单位委制定时间到登记籍贯提交书面材料,网上提交的信息已自动退回,请重新提交"},
{auditNode: "受理", auditor: "系统定时", auditResult: "1", auditTime: "2019-11-21 15:29",auditOpinion:""},
{auditNode: "受理", auditor: "徐委", auditResult: "0", auditTime: "2019-11-21 15:29",auditOpinion:"退回修改"},
{auditNode: "事业单位填报", auditor: "系统定时", auditResult: "1", auditTime: "2019-11-21 15:29"},
{auditNode: "事业单位填报", auditResult: "通过", auditTime: "2019-11-21 15:29",auditOpinion:""},
{auditNode: "受理", auditor: "徐委", auditResult: "退回", auditTime: "2019-11-21 15:29" ,auditOpinion:"因你单位委制定时间到登记籍贯提交书面材料,网上提交的信息已自动退回,请重新提交"},
{auditNode: "受理", auditor: "系统定时", auditResult: "通过", auditTime: "2019-11-21 15:29",auditOpinion:""},
{auditNode: "受理", auditor: "徐委", auditResult: "退回", auditTime: "2019-11-21 15:29",auditOpinion:"退回修改"},
{auditNode: "事业单位填报", auditor: "系统定时", auditResult: "通过", auditTime: "2019-11-21 15:29"},
];
constructor(public navCtrl: NavController, public navParams: NavParams) {
......
......@@ -7,46 +7,38 @@
<ion-content>
<div class="echart-data">
<div class="echart-title">
<span>全员编制变动情况</span>
<span>事业单位总览信息</span>
</div>
<div class="echart">
<echart-data [data]="echartData1"></echart-data>
</div>
<div class="data">
<div>
<p>上月在编数量</p>
<p>{{count?.lastCount}}</p>
<p>单位数</p>
<p>7749</p>
</div>
<div>
<p>本月在编数量</p>
<p>{{count?.nowCount}}</p>
<p>编制数</p>
<p>524845</p>
</div>
<div>
<p>实有数</p>
<p>429171</p>
</div>
</div>
</div>
<div class="echart-data">
<div class="echart-title">
<span>业务办理情况</span>
<span>实名制上报率</span>
</div>
<div class="echart">
<echart-data [data]="echartData2"></echart-data>
</div>
<div class="data">
<div>
<p>审批通过数量</p>
<p>{{count?.YeWuBanLi}}</p>
</div>
<div>
<p>批复审核通过数量</p>
<p>{{count?.ShenHeTongGuo}}</p>
</div>
<div>
<p>批复审核拒绝数量</p>
<p>{{count?.ShenHeJuJue}}</p>
</div>
<div>
<p>批复发回补充数量</p>
<p>{{count?.FaHuiBuCong}}</p>
</div>
</div>
<ion-row class="data-report">
<ion-col col-4 *ngFor="let item of data2">
<p>{{item.name}}</p>
<p>{{item?.value}}%</p>
</ion-col>
</ion-row>
</div>
</ion-content>
......@@ -22,7 +22,7 @@ page-data-report {
flex: 1;
text-align: center;
border: 1px solid #eeeeee;
padding: 10px 5px;
padding: 10px 5px;
margin-left: -1px;
> p:last-child {
......@@ -31,4 +31,20 @@ page-data-report {
}
}
}
.data-report {
> ion-col {
text-align: center;
border: 1px solid #eeeeee;
padding: 10px 5px;
margin-left: -1px;
margin-top: -1px;
> p:last-child {
color: #5991CA;
margin-top: 10px;
}
}
}
}
......@@ -17,66 +17,134 @@ export class DataReportPage {
ShenHeJuJue: "30",
FaHuiBuCong: "40"
};
data2;
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
ionViewDidLoad() {
const ser1 = [
{name: "上月在编数量", value: this.count.lastCount},
{name: "本月在编数量", value: this.count.nowCount},
{name: "单位数", value: "7749"},
{name: "编制数", value: "524845"},
{name: "实有数", value: "429171"},
];
this.echartData1 = {
//百分比提示信息
grid: {
left: "3%",
right: "4%",
bottom: "3%",
width: "100%",
height: "100%",
containLabel: true
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
xAxis: {
type: 'category',
data: ser1.map(e => {
return e.name
})
},
yAxis: {
type: 'value',
},
//扇形配置项
series: [
{
type: 'pie',
radius: '70%',
center: ['50%', '45%'],
data: ser1,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
data: ser1.map(e => {
return e.value
}),
color: ['#58afed'], //折线颜色
type: 'bar',
name: '柱状图',
},
{
data: ser1.map(e => {
return e.value
}),
color: ['#d77ab1'], //折线颜色
type: 'line',
name: '折线图',
}
]
};
const ser2 = [
{name: "审批通过数量", value: this.count.YeWuBanLi},
{name: "批复审核通过数量", value: this.count.ShenHeTongGuo},
{name: "批复审核拒绝数量", value: this.count.ShenHeJuJue},
{name: "批复发回补充数量", value: this.count.FaHuiBuCong},
]
{name: "宝山区", value: "100"},
{name: "嘉定区", value: "100"},
{name: "金山区", value: "99.74"},
{name: "杨浦区", value: "99.67"},
{name: "徐汇区", value: "99.67"},
{name: "虹口区", value: "99.63"},
{name: "闵行区", value: "99.25"},
{name: "奉贤区", value: "98.8"},
{name: "松江区", value: "98.54"},
{name: "崇明区", value: "98.29"},
{name: "青浦区", value: "98.24"},
{name: "普陀区", value: "98.24"},
{name: "静安区", value: "97.65"},
{name: "浦东新区", value: "97.33"},
{name: "黄浦区", value: "97.17"},
{name: "长宁区", value: "96.43"},
{name: "市属", value: "93.17"},
];
this.data2 = ser2;
this.echartData2 = {
//百分比提示信息
grid: {
left: "3%",
right: "4%",
bottom: "3%",
width: "80%",
height: "80%",
containLabel: true
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
trigger: 'axis',
formatter: '{c}%',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
xAxis: {
type: 'category',
data: ser2.map(e => {
return e.name
}),
axisLabel: {
interval: 0,
}
},
//扇形配置项
yAxis: {
type: 'value',
},
dataZoom: [{
type: "slider", //详细配置可见echarts官网
show: true, //是否显示
realtime: true, //
start: 0, //伸缩条开始位置(1-100),可以随时更改
end: 10, //伸缩条结束位置(1-100),可以随时更改
}],
series: [
{
name: '访问来源',
type: 'pie',
radius: '70%',
center: ['50%', '45%'],
data: ser2,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
data: ser2.map(e => {
return e.value
}),
color: ['#58afed'], //折线颜色
type: 'bar',
name: '柱状图',
},
{
data: ser2.map(e => {
return e.value
}),
color: ['#d77ab1'], //折线颜色
type: 'line',
name: '折线图',
}
]
};
......
......@@ -54,6 +54,6 @@ export class DoSupervisePage {
}
goToDetail(item) {
this.navCtrl.push(DealDetailPage, {item: item});
this.navCtrl.push(DealDetailPage, {item: item,type:"db"});
}
}
......@@ -6,17 +6,16 @@
<ion-content class="content">
<ion-list class="activity-title">
<ion-item>
<ion-select [(ngModel)]="option.type" cancelText="取消" okText="确定" placeholder="选择"
<ion-select float-end cancelText="取消" okText="确定" placeholder="选择">
<ion-option [value]="'市属'">市属</ion-option>
<ion-option [value]="'区属'">区属</ion-option>
</ion-select>
<ion-select style="position: absolute;right: 0;" [(ngModel)]="option.type" cancelText="取消" okText="确定" placeholder="选择"
(ngModelChange)="changeOption()">
<ng-container *ngFor="let item of option.list">
<ion-option [value]="item.type">{{item.name}}</ion-option>
</ng-container>
</ion-select>
<ion-select style="position: absolute;right: 0;" float-end cancelText="取消" okText="确定" placeholder="选择"
(ngModelChange)="changeOption()">
<ion-option [value]="'市属'">市属</ion-option>
<ion-option [value]="'区属'">区属</ion-option>
</ion-select>
</ion-item>
</ion-list>
......
......@@ -182,6 +182,7 @@ page-do-verity {
.item-box {
display: inline-block;
font-size: 14px;
margin-bottom: 10px;
}
.person-name {
......
......@@ -14,7 +14,7 @@ export class DoVerityPage {
list: [
{name: "全部", type: '0'},
{name: "事业单位", type: '1'},
{name: "机关群团", type: '2'},
{name: "机关团体", type: '2'},
{name: "其他", type: '3'}
]
};
......
......@@ -48,9 +48,9 @@ export class HomePage {
Mock.mock(/mockjs/, "post", {
"data":
{
"unitcount": "20",
"bianzhicount": "70",
"shiyoucount": '100',
"unitcount": "7749",
"bianzhicount": "524845",
"shiyoucount": '429171',
}
})
this.getUnits();
......@@ -68,28 +68,48 @@ export class HomePage {
{name: "单位数", value: this.unitsInfo.unitcount},
{name: "编制数", value: this.unitsInfo.bianzhicount},
{name: "实有数", value: this.unitsInfo.shiyoucount},
]
];
this.echartData = {
//百分比提示信息
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
grid: {
left: "3%",
right: "4%",
bottom: "3%",
width: "100%",
height: "100%",
containLabel: true
},
tooltip : {
trigger: 'axis',
axisPointer : { // 坐标轴指示器,坐标轴触发有效
type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
xAxis: {
type: 'category',
data: ser.map(e => {
return e.name
})
},
yAxis: {
type: 'value',
},
//扇形配置项
series: [
{
name: '访问来源',
type: 'pie',
radius: '70%',
center: ['50%', '45%'],
data: ser,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
data: ser.map(e => {
return e.value
}),
color: ['#58afed'], //折线颜色
type: 'bar',
name: '柱状图',
},
{
data: ser.map(e => {
return e.value
}),
color: ['#d77ab1'], //折线颜色
type: 'line',
name: '折线图',
}
]
};
......
......@@ -21,8 +21,8 @@ export class LoginPage {
codeNum;
user = {
userName: "",
password: "",
userName: "李华",
password: "123456",
captcha: ""
};
......
......@@ -14,7 +14,7 @@
<img src="./assets/imgs/man.png" class="head-photo">
</ion-col>
<ion-col class="mine-info" col-8>
<p class="mine-name">曹晋海</p>
<p class="mine-name">{{mineInfo?.userName}}</p>
<p class="address">中共上海市委机构编制委员会办公室</p>
</ion-col>
<ion-col col-2 class="text-right">
......
......@@ -9,6 +9,7 @@ import {OperationPage} from "./operation/operation";
import {SetPage} from "./set/set";
import {PersonPage} from "./person/person";
import {ChangePasswordPage} from "./change-password/change-password";
import {SharePage} from "./share/share";
@NgModule({
declarations: [
......@@ -18,7 +19,8 @@ import {ChangePasswordPage} from "./change-password/change-password";
OperationPage,
SetPage,
PersonPage,
ChangePasswordPage
ChangePasswordPage,
SharePage,
],
imports: [
IonicPageModule.forChild(MinePage),
......@@ -31,7 +33,8 @@ import {ChangePasswordPage} from "./change-password/change-password";
OperationPage,
SetPage,
PersonPage,
ChangePasswordPage
ChangePasswordPage,
SharePage
],
schemas: [NO_ERRORS_SCHEMA]
})
......
......@@ -39,7 +39,7 @@ export class MinePage {
private commonSer: CommonService,
private appSer: AppService, private app: App, private storage: Storage) {
//获取个人信息
this.storage.get('user').then(value => {
this.storage.get('mineInfo').then(value => {
this.mineInfo = value;
})
}
......
......@@ -13,7 +13,7 @@
<div class="info-item">
<span class="info-span">头像</span>
<div class="photo-box" (click)="tackePic()">
<img src="./assets/imgs/head.png" class="img">
<img src="./assets/imgs/man.png" class="img">
<ion-icon name="ios-arrow-forward"></ion-icon>
</div>
</div>
......
<ion-header>
<ion-navbar>
<ion-title>设置</ion-title>
</ion-navbar>
<ion-navbar>
<ion-title>设置</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<ion-content>
<ion-list>
<ion-item (click)="goToShare()">
<span>分享客户端</span>
<ion-icon float-right name="ios-arrow-forward"></ion-icon>
</ion-item>
<ion-item>
<span>系统建议</span>
<ion-icon float-right name="ios-arrow-forward"></ion-icon>
</ion-item>
<ion-item class="margin-top-20">
<span>清除缓存</span>
<span float-right name="ios-arrow-forward"></span>
</ion-item>
<ion-item>
<span>当前版本</span>
<span float-right>v0.0.1</span>
</ion-item>
</ion-list>
</ion-content>
page-set {
.searchToolBar {
display: flex;
flex-direction: row;
align-items: center;
justify-content: left;
box-sizing: border-box;
}
.back-btn {
width: 30px;
height: 30px;
}
.version-box {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
box-sizing: border-box;
}
.logo {
width: 100px;
height: 100px;
border-radius: 100px;
margin-top: 30px;
}
.version {
margin-top: 15px;
font-size: 16px;
}
.update-btn {
margin-top: 20px;
width: 130px;
height: 30px;
border-radius: 5px;
background-color: #12b7f5;
color: white;
font-size: 16px;
}
.list-ios .item-block .item-inner {
border-bottom: 1px solid #c8c7cc;
}
.red-span {
background-color: red;
display: inline-block;
width: 6px;
height: 6px;
border-radius: 50%;
margin-right: 10px;
margin-bottom: 2px;
}
}
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import {Component} from '@angular/core';
import {IonicPage, NavController, NavParams} from 'ionic-angular';
import {SharePage} from "../share/share";
@Component({
selector: 'page-set',
templateUrl: 'set.html',
selector: 'page-set',
templateUrl: 'set.html',
})
export class SetPage {
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
ionViewDidLoad() {
console.log('ionViewDidLoad SetPage');
}
ionViewDidLoad() {
console.log('ionViewDidLoad SetPage');
}
goToShare() {
this.navCtrl.push(SharePage)
}
}
<ion-header>
<ion-navbar>
<ion-title>分享客户端</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<div class="share">
<div class="code-title">
<div class="img">
<img src="./assets/imgs/logo.png">
</div>
<div class="name">
上海登记管理
</div>
</div>
<div class="barCode">
<img src="./assets/imgs/code.png" alt="">
</div>
<div class="codetips">
手机扫描二维码安装上海登记管理APP
</div>
</div>
</ion-content>
page-share {
ion-content{
padding: 2rem 1rem;
background-color: #938B98;
}
.share{
background-color: #f1f1f1;
height: 100%;
padding: 4rem 2rem;
}
.code-title{
display: flex;
align-items: center;
padding: 1rem 0;
background-color: #fff;
border-bottom: 1px solid #eee;
font-size: 1.6rem;
.img{
width: 40%;
text-align: center;
img{
border-radius: 5px;
width: 60px;
}
}
.name{
width: 80%;
padding-left: 1rem;
}
}
.barCode{
background-color: #fff;
text-align: center;
}
.codetips{
text-align: center;
color: #666666;
padding: 2rem 0;
background-color: #fff;
border-top: 1px solid #eee;
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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