Commit a7c8b1c3 authored by lc@weface.com.cn's avatar lc@weface.com.cn

''

parents 42918aed cdbd67c6
# kitty
### 在线演示
演示地址:http://139.196.87.48:9002/kitty
用户名:admin 密码:admin
温馨提示:
有在演示环境删除数据的童鞋们,如果可以的话,麻烦动动小指,点击头像面板,
选择 -> 备份还原 帮忙恢复到系统默认备份数据,方便后来的童鞋查看,谢谢啦。
### 技术交流
为了方便大家提问和技术交流,整了个QQ群,欢迎童鞋们加入。
QQ技术交流群: 528818161
### 博客教程
本人技术博客提供同步系列文章教程, 讲解了Kitty从零开始搭建的全过程:
[Vue.js + Element UI 实现权限管理系统 前端篇](https://www.cnblogs.com/xifengxiaoma/p/9533018.html)
[Spring Boot + Spring Cloud 实现权限管理系统 后端篇](https://www.cnblogs.com/xifengxiaoma/p/9474953.html)
### 分支说明
- master: 主推版本分支,支持分布式,服务治理(Spring Security + Spring Cloud)
- dev: 开发分支,适时合并到master分支,支持分布式,服务治理(Spring Security + Spring Cloud)
- shiro-cloud: 基于Spring Boot + Shiro + Spring Cloud,支持分布式、服务治理
- shiro: 基于Spring Boot + Shiro,不包含 Spring Cloud,部署环境稍微简单一点
### 项目介绍
- Kitty是基于Spring Boot、Spring Cloud、Vue、Element实现的Java快速开发平台。
- 目标是搭建出一套简洁易用的快速解决方案,可以帮助用户有效降低项目开发难度和成本。
- 个人博客提供本项目开发过程同步系列教程文章,手把手的教你如何开发同类系统。
### 功能列表
- ✔ 系统登录:系统用户登录,系统登录认证(token方式)
- ✔ 用户管理:新建用户,修改用户,删除用户,查询用户
- ✔ 机构管理:新建机构,修改机构,删除机构,查询机构
- ✔ 角色管理:新建角色,修改角色,删除角色,查询角色
- ✔ 菜单管理:新建菜单,修改菜单,删除菜单,查询菜单
- ✔ 字典管理:新建字典,修改字典,删除字典,查询字典
- ✔ 系统日志:记录用户操作日志,查看系统执行日志记录
- ✔ 数据监控:定制Druid信息,提供简洁有效的SQL监控
- ✔ 聚合文档:定制在线文档,提供简洁美观的API文档
- ✔ 备份还原:系统备份还原,一键恢复系统初始化数据
- ✔ 主题切换:支持主题切换,自定主题颜色,一键换肤
- ✔ 服务治理:集成Consul注册中心,实现服务注册和发现
- ✔ 服务监控:集成Spring Boot Admin,实现服务监控
- ✔ 服务消费:集成Ribbon、Feign,服务调用和负载均衡
- ✔ 服务熔断:集成Hystrix、Turbine,实现熔断和监控
- ✔ 服务网关:集成Spring Cloud Zuul,实现API网关
- ✔ 链路追踪:集成Sleuth、Zipkin,实现分布式链路追踪
- ✔ 配置中心:集成Config、Bus,实现分布式配置中心
- ✔ 代码生成:提供代码生成器,最大化的降低代码开发量
- ✘ 单点登录:利用 OAuth2, 提供统一的单点登录功能
- ✘ 系统登录:集成第三方登录功能(QQ、微信、微博)
- ...
### 代码生成器
代码生成器放在独立项目,地址如下:
[https://gitee.com/liuge1988/kitty-generator](https://gitee.com/liuge1988/kitty-generator)
### 软件架构
#### 后端架构
##### 开发环境
- IDE : eclipse 4.x
- JDK : JDK1.8.x
- Maven : Maven 3.5.x
- MySQL: MySQL 5.7.x
##### 技术选型
- 核心框架:Spring Boot 2.x
- 服务治理:Spring Cloud Finchley
- 安全框架:Spring Security 5.x
- 视图框架:Spring MVC 5.x
- 持久层框架:MyBatis 3.x
- 数据库连接池:Druid 1.x
- 日志管理:SLF4J、Log4j
##### 项目结构
- kitty-common: 公共代码模块,主要放置一些工具类
- kitty-core: 核心代码模块,主要封装公共业务模块
- kitty-admin: 后台管理模块,包含用户、角色、菜单管理等
- kitty-backup: 系统数据备份备份模块,可选择独立部署
- kitty-monitor: 系统监控服务端,监控Spring Boot服务模块
- kitty-producer: 服务提供者示例,方便在此基础上搭建模块
- kitty-consumer: 服务消费者示例,方便在此基础上搭建模块
- kitty-hystrix: 服务熔断监控模块,收集汇总熔断统计信息
- kitty-zuul: API服务网关模块,统一管理和转发外部调用请求
- kitty-config: 配置中心服务端,生成GIT配置文件的访问接口
- kitty-consul: 注册中心,安装说明目录,内附安装引导说明
- kitty-zipkin: 链路追踪,安装说明目录,内附安装引导说明
- config-repo: 配置中心仓库,在GIT上统一存储系统配置文件
- kitty-pom: 聚合模块,仅为简化打包,一键执行打包所有模块
#### 前端架构
##### 开发环境
- IDE : VS Code 1.27
- NODE: Node 8.9.x
- NPM : NPM 6.4.x
##### 技术选型
- 前端框架:Vue 2.x
- 页面组件:Element 2.x
- 状态管理:Vuex 2.x
- 后台交互:axios 0.18.x
- 图标使用:Font Awesome 4.x
##### 项目结构
kitty-ui
- assets: 图标、字体、国际化信息等静态信息
- components: 组件库,对常用组件进行封装
- http: 后台交互模块,统一后台接口请求API
- i18n: 国际化模块,使用Vue i18n进行国际化
- mock: Mock模块,模拟接口调用并返回定制数据
- permission: 权限控制模块,处理权限认证逻辑
- router: 路由管理模块,负责页面各种路由配置
- store: 状态管理模块,提供组件间状态共享
- utils: 工具模块,提供一些通用的工具方法
- views: 页面模块,主要放置各种页面视图组件
### 安装教程
#### 后端安装
1. 下载源码
git clone https://gitee.com/liuge1988/kitty.git
2. 导入工程
使用 Eclipse导入 Maven 项目,在此之前请确认已安装 JDK 和 Maven 工具。
3. 编译代码
找到 kitty-pom 工程的 pom.xml,执行 maven clean install 命令编译一键打包。
一般来说不会有什么问题,如果还是编译不成功,可以按照优先级逐个编译试一试。
4. 导入数据库
新建 kitty 数据库,导入 kitty-admin 工程 doc/kitty.sql 脚本,导入初始化数据库。
修改 kitty-admin 下 application.yml 中的数据库连接和账号密码为自己的数据库配置。
修改 kitty-backup 下 application.yml 中的数据库连接和账号密码为自己的数据库配置。
5. 启动系统
基础必需模块(注册中心:kitty-consul,服务监控:kitty-monitor)
找到 kitty-consul 工程,根据安装说明安装注册中心,完成后执行 consul agent -dev 启动。
找到 kitty-monitor 工程下的 KittyMonitorApplication, 启动项目,开启服务监控。
权限管理模块(权限管理:kitty-admin,备份还原:kitty-backup)
找到 kitty-admin 工程下的 KittyAdminApplication, 启动项目,开启权限管理系统服务。
找到 kitty-backup 工程下的 KittyBackupApplication.java,启动项目,开启备份还原服务。
其他模块根据各自需要选择性启动,模块依赖可以参见我的博客同步教程...
注意事项:
如果需要链路追踪服务,需要安装zipkin,找到 kitty-zipkin 工程,根据安装说明安装zipkin。
如果需要配置中心服务,需要安装rabbitMQ,找到 kitty-config 工程,根据安装说明安装rabbitMQ。
#### 前端安装
1. 下载源码
git clone https://gitee.com/liuge1988/kitty-ui.git
2. 编译代码
进入项目根目录,执行 npm install, 下载和安装项目相关依赖包。
3. 启动系统
执行 npm run dev 命令,启动项目,通过 http://localhost:8090 访问。
4. 项目打包
执行 npm run build 命令,启动打包,完成之后会生成 dist 目录。
5. Mock 开关
通过修改src/mock/index.js中的openMock变量,可以一键开启或关闭Mock功能。
6. 修改配置
如果想自定义端口(默认是8090),可以修改 config/index.js 下的 port 属性。
后台接口和备份服务器地址配置在 src/utils/global.js,如有修改请做相应变更。
### 系统展示
#### 登录界面
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/155412_c2f72f83_645970.png "屏幕截图.png")
#### 用户管理
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/154342_b8a9eaeb_645970.png "屏幕截图.png")
#### 机构管理
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/154417_7aefe6c2_645970.png "屏幕截图.png")
#### 角色管理
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/154431_6d8efe43_645970.png "屏幕截图.png")
#### 菜单管理
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/154446_61cd21a5_645970.png "屏幕截图.png")
#### 字典管理
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/154459_22ae6f2d_645970.png "屏幕截图.png")
#### 系统日志
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/154510_3c1bfd3f_645970.png "屏幕截图.png")
#### 数据监控
用户名:admin, 密码:admin,即服务端配置的密码
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/154556_8de439d5_645970.png "屏幕截图.png")
#### 服务监控
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/154701_6bcd25f2_645970.png "屏幕截图.png")
#### 注册中心
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/154734_877e893e_645970.png "屏幕截图.png")
#### 接口文档
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/154803_6a612548_645970.png "屏幕截图.png")
#### 代码生成
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/154840_18fc781c_645970.png "屏幕截图.png")
#### 主题切换
![输入图片说明](https://images.gitee.com/uploads/images/2018/1227/154943_1752c336_645970.png "屏幕截图.png")
### 参与贡献
1. Fork 本项目
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
### 码云特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
5. 码云官方提供的使用手册 [http://git.mydoc.io/](http://git.mydoc.io/)
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
\ No newline at end of file
......@@ -114,7 +114,7 @@ export const seleyhkbgdc = (data) => {
data
})
}
//银行卡变更导出
//档次变更导出
export const seledcbgdc = (data) => {
return axios({
url: '/baseInfo/getUpdateGrade',
......@@ -177,6 +177,7 @@ export const updatePassword = (data)=>{
data
})
}
<<<<<<< HEAD
export const getTown = () => {
return axios({
url: '/dept/findTreeByUser',
......@@ -207,6 +208,14 @@ export const updateFileState = (id,state)=>{
url: 'news/update/'+id+'/'+state,
method: 'post',
data:{}
=======
export const getTown = () => {
return axios({
url: '/dept/findTreeByUser',
method: 'get',
})
>>>>>>> cdbd67c6b8b39eb57f99fa7312b409566ab17998
}
)
}
......@@ -219,3 +228,19 @@ export const newsPreView = (id)=>{
)
}
//
//参保注销导出
export const selecbzxdc = (data) => {
return axios({
url: '/baseInfo/getInsuranceCancel',
method: 'post',
data
})
};
//补缴保费导出
export const selebjbfdc = (data) => {
return axios({
url: '/baseInfo/getSupPayment',
method: 'post',
data
})
};
......@@ -25,6 +25,7 @@ import receivePersonnel from "@/views/Myvue/receivePersonnel";
import AllbaseInfo from "@/views/Myvue/allbaseInfo"
import PayInfo from "@/views/Myvue/payInfo"
import application from "@/views/Myvue/application"
<<<<<<< HEAD
import importByExcel from "@/views/Myvue/importByExcel"
import treatmentApplicationAudit from "@/views/Myvue/treatmentApplicationAudit"
import insuranceCancellationAudit from "@/views/Myvue/insuranceCancellationAudit"
......@@ -33,6 +34,18 @@ import traRelationsAudit from "@/views/Myvue/traRelationsAudit"
import upgradeReoAudit from "@/views/Myvue/upgradeReoAudit"
import interact from "@/views/Myvue/interact"
import preView from "@/views/Myvue/preView"
=======
import importByExcel from "@/views/Myvue/importByExcel";
import treatmentApplicationAudit from "@/views/Myvue/treatmentApplicationAudit";
import insuranceCancellationAudit from "@/views/Myvue/insuranceCancellationAudit";
import supPaymentAudit from "@/views/Myvue/supPaymentAudit";
import traRelationsAudit from "@/views/Myvue/traRelationsAudit";
import upgradeReoAudit from "@/views/Myvue/upgradeReoAudit";
import drcbzx from "@/views/Myvue/drcbzx";
import drbjbf from "@/views/Myvue/drbjbf";
import drtsyw from "@/views/Myvue/drtsyw";
>>>>>>> cdbd67c6b8b39eb57f99fa7312b409566ab17998
Vue.use(Router)
......@@ -79,27 +92,27 @@ const router = new Router({
},
{
path:"/Output_1",
name:"参保登记",
name:"参保登记导出",
component: drcbdj
},
{
path:"/modifyall",
name:"所有变更",
path:"/modifyAllExport",
name:"所有变更导出",
component: drxxbg
},
{
path:"/modifybankcard",
name:"银行卡变更",
path:"/modifyBanExport",
name:"银行卡变更导出",
component: dryhkbg
},
{
path:"/modifygrade",
name:"档次变更",
path:"/modifyGraExport",
name:"档次变更导出",
component: drdcbg
},
{
path:"/treatmentApplication",
name:"待遇申请",
path:"/treatmentAppExport",
name:"待遇申请导出",
component: drdysq
},
{
......@@ -163,6 +176,7 @@ const router = new Router({
component: traRelationsAudit
},
{
<<<<<<< HEAD
path:"/interact",
name:"交互中心",
component: interact
......@@ -172,6 +186,22 @@ const router = new Router({
name:"预览",
component:preView
}
=======
path:"/insCanExport",
name:"参保注销导出",
component: drcbzx
},
{
path:"/supPayExport",
name:"补缴保费导出",
component: drbjbf
},
{
path:"/speBusExport",
name:"特殊业务导出",
component: drtsyw
},
>>>>>>> cdbd67c6b8b39eb57f99fa7312b409566ab17998
]
},
{
......
<template>
<div>
<el-table
v-loading.fullscreen.lock="loading"
:data="tableData"
style="width: 100%"
>
<el-table-column
prop="idcard"
label="身份证号码"
min-width="20%">
</el-table-column>
<el-table-column
prop="name"
label="姓名"
min-width="20%">
</el-table-column>
<el-table-column
prop="bankAccount"
label="银行账号"
min-width="20%">
</el-table-column>
<el-table-column
prop="bank"
label="所属银行"
min-width="20%">
</el-table-column>
<el-table-column label="操作"
min-width="20%">
<template slot-scope="scope">
<el-button
size="mini"
type="primary"
@click="toPdf(scope.$index, scope.row)">导出pdf
</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pone"
:page-size='10'
layout="total, prev, pager, next, jumper"
:total="totals"
:current-page.sync="PageNum"
@current-change="current_change"
>
</el-pagination>
<!-- <el-button type="success" @click="toexcel" style="margin:50px">全部导出</el-button>-->
</div>
</template>
<script>
import {Loading} from 'element-ui';
import {baseUrl} from "../../utils/global"
import axios from "axios"
import Cookies from "js-cookie";
export default {
data() {
return {
PageNum: 1,
totals: 0,
tableData: [],
loading: false
}
},
methods: {
toPdf(s, d) {
this.loading = true;
console.log(d)
axios.get(baseUrl + '/exportPdf/supPayment?id=' + d.eventId, {
headers: {
"token": Cookies.get("token")
},
responseType: 'blob' //告诉服务器我们需要的响应格式
})
.then(res => {
let a = document.createElement("a");
let blob = new Blob([res.data], {
type: 'application/vnd.ms-excel' //将会被放入到blob中的数组内容的MIME类型
});
a.href = URL.createObjectURL(blob); //生成一个url
a.download = "西充县城乡居民社会养老保险补缴申请表" + Date.now() + ".pdf";
a.click();
// let objectUrl = URL.createObjectURL(blob); //生成一个url
// window.location.href = objectUrl; //浏览器打开这个url
this.loading = false;
})
.catch(err => {
console.log(err);
this.loading = false;
});
},
current_change(s) {
var data = {
"pageNum": s,
"pageSize": 10
}
Loading.service();
this.$api.getlist.selebjbfdc(data).then((res) => {
let loadingInstance = Loading.service();
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
loadingInstance.close();
});
if (res.code == 200) {
this.tableData = res.data.content
this.totals = res.data.totalSize
}
}).catch((res) => {
});
},
// toexcel() {
// this.loading = true;
// axios.get(baseUrl + '/exportExcel/updateBankCard', {
// headers: {
// "token": Cookies.get("token")
// },
// responseType: 'blob' //告诉服务器我们需要的响应格式
// })
// .then(res => {
// let a = document.createElement("a");
// let blob = new Blob([res.data], {
// type: 'application/vnd.ms-excel' //将会被放入到blob中的数组内容的MIME类型
// });
// a.href = URL.createObjectURL(blob); //生成一个url
// a.download = "补缴保费表" + Date.now() + ".xlsx";
// a.click();
// // let objectUrl = URL.createObjectURL(blob); //生成一个url
// // window.location.href = objectUrl; //浏览器打开这个url
// this.loading = false;
// })
// .catch(err => {
// console.log(err);
// this.loading = false;
// });
// // this.$api.getlist.dccc().then((res) => {
// // let loadingInstance = Loading.service();
// // this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
// // loadingInstance.close();
// // });
// // if(res.code==200){
// // this.tableData=res.data.result
// // this.totals=res.data.total
// // }
//
// // }).catch((res) => {
//
// // });
// }
},
created() {
var data = {
"pageNum": 1,
"pageSize": 10
}
Loading.service();
this.$api.getlist.selebjbfdc(data).then((res) => {
let loadingInstance = Loading.service();
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
loadingInstance.close();
});
if (res.code == 200) {
this.tableData = res.data.content
this.totals = res.data.totalSize
}
}).catch((res) => {
});
},
}
</script>
<template>
<div>
<el-table
v-loading.fullscreen.lock="loading"
:data="tableData"
style="width: 100%"
>
<el-table-column
prop="idcard"
label="身份证号码"
min-width="15%">
</el-table-column>
<el-table-column
prop="name"
label="姓名"
min-width="10%">
</el-table-column>
<el-table-column
prop="bankAccount"
label="终止原因"
min-width="10%">
</el-table-column>
<el-table-column
prop="bank"
label="个人账户余额"
min-width="10%">
</el-table-column>
<el-table-column
prop="bank"
label="合计发放金额"
min-width="15%">
</el-table-column>
<el-table-column
prop="bank"
label="发放账户"
min-width="15%">
</el-table-column>
<el-table-column
prop="bank"
label="指定受益人或法定继承人"
min-width="15%">
</el-table-column>
<el-table-column
prop="bank"
label="与终止人关系"
min-width="10%">
</el-table-column>
<el-table-column label="操作"
min-width="15%">
<template slot-scope="scope">
<el-button
size="mini"
type="primary"
@click="toPdf(scope.$index, scope.row)">导出pdf
</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pone"
:page-size='10'
layout="total, prev, pager, next, jumper"
:total="totals"
:current-page.sync="PageNum"
@current-change="current_change"
>
</el-pagination>
<!-- <el-button type="success" @click="toexcel" style="margin:50px">全部导出</el-button>-->
</div>
</template>
<script>
import {Loading} from 'element-ui';
import {baseUrl} from "../../utils/global"
import axios from "axios"
import Cookies from "js-cookie";
export default {
data() {
return {
PageNum: 1,
totals: 0,
tableData: [],
loading: false
}
},
methods: {
toPdf(s, d) {
this.loading = true;
console.log(d)
axios.get(baseUrl + '/exportPdf/insuranceCancel?id=' + d.eventId, {
headers: {
"token": Cookies.get("token")
},
responseType: 'blob' //告诉服务器我们需要的响应格式
})
.then(res => {
let a = document.createElement("a");
let blob = new Blob([res.data], {
type: 'application/vnd.ms-excel' //将会被放入到blob中的数组内容的MIME类型
});
a.href = URL.createObjectURL(blob); //生成一个url
a.download = "西充县城乡居民社会养老保险终止注销登记表" + Date.now() + ".pdf";
a.click();
// let objectUrl = URL.createObjectURL(blob); //生成一个url
// window.location.href = objectUrl; //浏览器打开这个url
this.loading = false;
})
.catch(err => {
console.log(err);
this.loading = false;
});
},
current_change(s) {
var data = {
"pageNum": s,
"pageSize": 10
}
Loading.service();
this.$api.getlist.selecbzxdc(data).then((res) => {
let loadingInstance = Loading.service();
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
loadingInstance.close();
});
if (res.code == 200) {
this.tableData = res.data.content
this.totals = res.data.totalSize
}
}).catch((res) => {
});
},
// toexcel() {
// this.loading = true;
// axios.get(baseUrl + '/exportExcel/updateBankCard', {
// headers: {
// "token": Cookies.get("token")
// },
// responseType: 'blob' //告诉服务器我们需要的响应格式
// })
// .then(res => {
// let a = document.createElement("a");
// let blob = new Blob([res.data], {
// type: 'application/vnd.ms-excel' //将会被放入到blob中的数组内容的MIME类型
// });
// a.href = URL.createObjectURL(blob); //生成一个url
// a.download = "参保注销表" + Date.now() + ".xlsx";
// a.click();
// // let objectUrl = URL.createObjectURL(blob); //生成一个url
// // window.location.href = objectUrl; //浏览器打开这个url
// this.loading = false;
// })
// .catch(err => {
// console.log(err);
// this.loading = false;
// });
// // this.$api.getlist.dccc().then((res) => {
// // let loadingInstance = Loading.service();
// // this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
// // loadingInstance.close();
// // });
// // if(res.code==200){
// // this.tableData=res.data.result
// // this.totals=res.data.total
// // }
//
// // }).catch((res) => {
//
// // });
// }
},
created() {
var data = {
"pageNum": 1,
"pageSize": 10
}
Loading.service();
this.$api.getlist.selecbzxdc(data).then((res) => {
let loadingInstance = Loading.service();
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
loadingInstance.close();
});
if (res.code == 200) {
this.tableData = res.data.content
this.totals = res.data.totalSize
}
}).catch((res) => {
});
},
}
</script>
......@@ -60,7 +60,7 @@
methods: {
toPdf(s, d) {
console.log(d)
axios.get(baseUrl + '/exportPdf/specialAudit?id=' + d.eventId, {
axios.get(baseUrl + '/exportPdf/receivingAudit?id=' + d.eventId, {
headers: {
"token": Cookies.get("token")
},
......
<template>
<div>
<el-table
v-loading.fullscreen.lock="loading"
:data="tableData"
style="width: 100%"
>
<el-table-column
prop="idcard"
label="身份证号码"
min-width="20%">
</el-table-column>
<el-table-column
prop="name"
label="姓名"
min-width="20%">
</el-table-column>
<el-table-column
prop="bankAccount"
label="银行账号"
min-width="20%">
</el-table-column>
<el-table-column
prop="bank"
label="所属银行"
min-width="20%">
</el-table-column>
<el-table-column label="操作"
min-width="20%">
<template slot-scope="scope">
<el-button
size="mini"
type="primary"
@click="toPdf(scope.$index, scope.row)">导出pdf
</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pone"
:page-size='10'
layout="total, prev, pager, next, jumper"
:total="totals"
:current-page.sync="PageNum"
@current-change="current_change"
>
</el-pagination>
<!-- <el-button type="success" @click="toexcel" style="margin:50px">全部导出</el-button>-->
</div>
</template>
<script>
import {Loading} from 'element-ui';
import {baseUrl} from "../../utils/global"
import axios from "axios"
import Cookies from "js-cookie";
export default {
data() {
return {
PageNum: 1,
totals: 0,
tableData: [],
loading: false
}
},
methods: {
toPdf(s, d) {
this.loading = true;
console.log(d)
axios.get(baseUrl + '/exportPdf/specialAudit?id=' + d.eventId, {
headers: {
"token": Cookies.get("token")
},
responseType: 'blob' //告诉服务器我们需要的响应格式
})
.then(res => {
let a = document.createElement("a");
let blob = new Blob([res.data], {
type: 'application/vnd.ms-excel' //将会被放入到blob中的数组内容的MIME类型
});
a.href = URL.createObjectURL(blob); //生成一个url
a.download = "西充县城乡居民社会养老保险特殊人群待遇审核表" + Date.now() + ".pdf";
a.click();
// let objectUrl = URL.createObjectURL(blob); //生成一个url
// window.location.href = objectUrl; //浏览器打开这个url
this.loading = false;
})
.catch(err => {
console.log(err);
this.loading = false;
});
},
current_change(s) {
var data = {
"pageNum": s,
"pageSize": 10
}
Loading.service();
this.$api.getlist.seleyhkbgdc(data).then((res) => {
let loadingInstance = Loading.service();
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
loadingInstance.close();
});
if (res.code == 200) {
this.tableData = res.data.content
this.totals = res.data.totalSize
}
}).catch((res) => {
});
},
toexcel() {
this.loading = true;
axios.get(baseUrl + '/exportExcel/updateBankCard', {
headers: {
"token": Cookies.get("token")
},
responseType: 'blob' //告诉服务器我们需要的响应格式
})
.then(res => {
let a = document.createElement("a");
let blob = new Blob([res.data], {
type: 'application/vnd.ms-excel' //将会被放入到blob中的数组内容的MIME类型
});
a.href = URL.createObjectURL(blob); //生成一个url
a.download = "特殊业务表" + Date.now() + ".xlsx";
a.click();
// let objectUrl = URL.createObjectURL(blob); //生成一个url
// window.location.href = objectUrl; //浏览器打开这个url
this.loading = false;
})
.catch(err => {
console.log(err);
this.loading = false;
});
// this.$api.getlist.dccc().then((res) => {
// let loadingInstance = Loading.service();
// this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
// loadingInstance.close();
// });
// if(res.code==200){
// this.tableData=res.data.result
// this.totals=res.data.total
// }
// }).catch((res) => {
// });
}
},
created() {
var data = {
"pageNum": 1,
"pageSize": 10
}
Loading.service();
this.$api.getlist.seleyhkbgdc(data).then((res) => {
let loadingInstance = Loading.service();
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
loadingInstance.close();
});
if (res.code == 200) {
this.tableData = res.data.content
this.totals = res.data.totalSize
}
}).catch((res) => {
});
},
}
</script>
......@@ -242,7 +242,7 @@
// 关闭当前标签
let closeAll = document.querySelectorAll(".el-icon-close");
for(let j = 0, len = closeAll.length; j < len; j++) {
if (closeAll[j].previousSibling.innerText === "参保注销审核 ") {
if (closeAll[j].previousSibling != null && closeAll[j].previousSibling.innerText === "参保注销审核 ") {
closeAll[j].click();
return;
}
......@@ -307,7 +307,7 @@
// 关闭当前标签
let closeAll = document.querySelectorAll(".el-icon-close");
for(let j = 0, len = closeAll.length; j < len; j++) {
if (closeAll[j].previousSibling.innerText === "参保注销审核 ") {
if (closeAll[j].previousSibling != null && closeAll[j].previousSibling.innerText === "参保注销审核 ") {
closeAll[j].click();
return;
}
......
......@@ -155,7 +155,14 @@ export default {
message: res.message
});
}
// 关闭当前标签
let closeAll = document.querySelectorAll(".el-icon-close");
for(let j = 0, len = closeAll.length; j < len; j++) {
if (closeAll[j].previousSibling != null && closeAll[j].previousSibling.innerText === "参保登记审核 ") {
closeAll[j].click();
return;
}
}
}).catch((res) => {
let loadingInstance = Loading.service();
that.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
......@@ -209,7 +216,14 @@ export default {
message: res.message
});
}
// 关闭当前标签
let closeAll = document.querySelectorAll(".el-icon-close");
for(let j = 0, len = closeAll.length; j < len; j++) {
if (closeAll[j].previousSibling != null && closeAll[j].previousSibling.innerText === "参保登记审核 ") {
closeAll[j].click();
return;
}
}
}).catch((res) => {
let loadingInstance = Loading.service();
that.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
......
......@@ -167,7 +167,7 @@
// 关闭当前标签
let closeAll = document.querySelectorAll(".el-icon-close");
for(let j = 0, len = closeAll.length; j < len; j++) {
if (closeAll[j].previousSibling.innerText === "补缴保费审核 ") {
if (closeAll[j].previousSibling != null && closeAll[j].previousSibling.innerText === "补缴保费审核 ") {
closeAll[j].click();
return;
}
......@@ -226,7 +226,7 @@
// 关闭当前标签
let closeAll = document.querySelectorAll(".el-icon-close");
for(let j = 0, len = closeAll.length; j < len; j++) {
if (closeAll[j].previousSibling.innerText === "补缴保费审核 ") {
if (closeAll[j].previousSibling != null && closeAll[j].previousSibling.innerText === "补缴保费审核 ") {
closeAll[j].click();
return;
}
......
......@@ -155,7 +155,7 @@
// 关闭当前标签
let closeAll = document.querySelectorAll(".el-icon-close");
for(let j = 0, len = closeAll.length; j < len; j++) {
if (closeAll[j].previousSibling.innerText === "关系转移审核 ") {
if (closeAll[j].previousSibling != null && closeAll[j].previousSibling.innerText === "关系转移审核 ") {
closeAll[j].click();
return;
}
......@@ -214,7 +214,7 @@
// 关闭当前标签
let closeAll = document.querySelectorAll(".el-icon-close");
for(let j = 0, len = closeAll.length; j < len; j++) {
if (closeAll[j].previousSibling.innerText === "关系转移审核 ") {
if (closeAll[j].previousSibling != null && closeAll[j].previousSibling.innerText === "关系转移审核 ") {
closeAll[j].click();
return;
}
......
......@@ -177,7 +177,7 @@
// 关闭当前标签
let closeAll = document.querySelectorAll(".el-icon-close");
for(let j = 0, len = closeAll.length; j < len; j++) {
if (closeAll[j].previousSibling.innerText === "待遇申请审核 ") {
if (closeAll[j].previousSibling != null && closeAll[j].previousSibling.innerText === "待遇申请审核 ") {
closeAll[j].click();
return;
}
......@@ -237,7 +237,7 @@
// 关闭当前标签
let closeAll = document.querySelectorAll(".el-icon-close");
for(let j = 0, len = closeAll.length; j < len; j++) {
if (closeAll[j].previousSibling.innerText === "待遇申请审核 ") {
if (closeAll[j].previousSibling != null && closeAll[j].previousSibling.innerText === "待遇申请审核 ") {
closeAll[j].click();
return;
}
......
......@@ -162,7 +162,7 @@
// 关闭当前标签
let closeAll = document.querySelectorAll(".el-icon-close");
for(let j = 0, len = closeAll.length; j < len; j++) {
if (closeAll[j].previousSibling.innerText === "升档改办审核 ") {
if (closeAll[j].previousSibling != null && closeAll[j].previousSibling.innerText === "升档改办审核 ") {
closeAll[j].click();
return;
}
......@@ -221,7 +221,7 @@
// 关闭当前标签
let closeAll = document.querySelectorAll(".el-icon-close");
for(let j = 0, len = closeAll.length; j < len; j++) {
if (closeAll[j].previousSibling.innerText === "升档改办审核 ") {
if (closeAll[j].previousSibling != null && closeAll[j].previousSibling.innerText === "升档改办审核 ") {
closeAll[j].click();
return;
}
......
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