Commit 9127c87d authored by ytbdmhy's avatar ytbdmhy

归档version:0.4.0

parent 1f1c4026
<template>
<div class="archive-administration">
<el-backtop target=".archive-administration" right="70" bottom="70">
<div style="text-align: center;font-size: 20px"></div>
</el-backtop>
<el-backtop target=".archive-administration" :right="70" :bottom="70"></el-backtop>
<div class="op">
<div class="fileNumber">
<el-input
v-model="fileNumber"
size="mini"
placeholder="请输入案卷号"
clearable></el-input>
</div>
<div class="createTime">
<el-date-picker
v-model="createTime"
type="date"
size="mini"
placeholder="请选择归档日期">
</el-date-picker>
</div>
<div class="ywtype">
<el-cascader
size="mini"
:options="options"
:props="{ checkStrictly: true }"
placeholder="请选择业务类型"
clearable
@change="handleChange">
</el-cascader>
</div>
<el-button
type="primary"
size="mini"
style="background:#148A9B;margin-left:10px"
icon="el-icon-search"
@click="paramSearch">搜索
</el-button>
</div>
<el-table
v-loading.fullscreen.lock="loading"
:data="tableData"
......@@ -122,7 +154,7 @@
align="center"
prop="businessType"
label="业务类别"
width="200">
width="250">
</el-table-column>
<el-table-column
align="center"
......@@ -179,6 +211,94 @@
pageNum: 1,
pageSize: 10,
indexStart: 1,
options: [{
value: {
eventType: 1,
eventTypeDetail: null,
},
label: '参保登记',
}, {
value: 2,
label: '信息变更',
disabled: true,
children: [{
value: {
eventType: 2,
eventTypeDetail: 1,
},
label: '档次变更',
}, {
value: {
eventType: 2,
eventTypeDetail: 2,
},
label: '银行卡变更',
}, {
value: {
eventType: 2,
eventTypeDetail: 3,
},
label: '手机号变更',
}, {
value: {
eventType: 2,
eventTypeDetail: 4,
},
label: '参保身份变更',
}, {
value: {
eventType: 2,
eventTypeDetail: 5,
},
label: '户籍地址变更',
}, {
value: {
eventType: 2,
eventTypeDetail: 6,
},
label: '姓名变更',
}, {
value: {
eventType: 2,
eventTypeDetail: 7,
},
label: '身份证变更',
}]
}, {
value: {
eventType: 3,
eventTypeDetail: null,
},
label: '待遇申请',
}, {
value: {
eventType: 4,
eventTypeDetail: null,
},
label: '参保注销',
}, {
value: {
eventType: 5,
eventTypeDetail: null,
},
label: '补缴保费',
}, {
value: {
eventType: 6,
eventTypeDetail: null,
},
label: '升档改办',
}, {
value: {
eventType: 7,
eventTypeDetail: null,
},
label: '关系转移',
}],
fileNumber: '',
createTime: '',
eventType: null,
eventTypeDetail: null,
}
},
methods: {
......@@ -188,6 +308,10 @@
const data = {
pageNum: pageNum,
pageSize: this.pageSize,
fileNumber: this.fileNumber,
createTime: this.createTime,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
};
this.search(data);
},
......@@ -211,6 +335,10 @@
const data = {
pageNum: 1,
pageSize: pageSize,
fileNumber: this.fileNumber,
createTime: this.createTime,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
};
this.search(data);
},
......@@ -254,7 +382,7 @@
type: 'application/vnd.ms-excel' //将会被放入到blob中的数组内容的MIME类型
});
a.href = URL.createObjectURL(blob); //生成一个url
a.download = archive.title + ".rar";
a.download = archive.title + "-" + archive.fileNumber + ".rar";
a.click();
this.loading = false;
})
......@@ -265,10 +393,18 @@
},
exportArchiveList() {
this.loading = true;
axios.get(baseUrl + '/exportExcel/archiveList', {
axios.post(baseUrl + '/exportExcel/archiveList', null, {
headers: {
"token": Cookies.get("token")
},
data: {
pageNum: this.pageNum,
pageSize: this.pageSize,
fileNumber: this.fileNumber,
createTime: this.createTime,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
},
responseType: 'blob' //告诉服务器我们需要的响应格式
})
.then(res => {
......@@ -285,13 +421,39 @@
console.log(err);
this.loading = false;
});
}
},
handleChange(value) {
this.eventType = null;
this.eventTypeDetail = null;
for (const i in value) {
if (typeof (value[i].eventType) !== "undefined") {
this.eventType = value[i].eventType;
this.eventTypeDetail = value[i].eventTypeDetail;
break;
}
}
},
paramSearch() {
const data = {
pageNum: 1,
pageSize: this.pageSize,
fileNumber: this.fileNumber,
createTime: this.createTime,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
};
this.search(data);
},
},
created() {
this.loading = true;
const data = {
pageNum: 1,
pageSize: this.pageSize
pageSize: this.pageSize,
fileNumber: null,
createTime: null,
eventType: null,
eventTypeDetail: null,
};
this.$api.getlist.selectArchive(data)
.then((response) => {
......@@ -321,4 +483,26 @@
height: 100%;
overflow-y: scroll;
}
.op {
display: flex;
align-items: center;
margin-bottom: 10px;
/*margin-top: 10px;*/
}
.createTime {
/*width: 250px;*/
margin-left: 20px;
}
.fileNumber {
width: 200px;
/*margin-left: 20px;*/
}
.ywtype {
/*width: 200px;*/
margin-left: 20px;
}
</style>
<template>
<div class="archive-expect">
<el-backtop target=".archive-expect" right="70" bottom="70">
<div style="text-align: center;font-size: 20px"></div>
</el-backtop>
<el-backtop target=".archive-expect" :right="70" :bottom="70"></el-backtop>
<el-table
v-loading.fullscreen.lock="loading"
:data="tableData"
border
style="width: 100%">
<el-table-column
align="center"
type="selection"
width="50">
</el-table-column>
<!-- <el-table-column-->
<!-- align="center"-->
<!-- type="selection"-->
<!-- width="50">-->
<!-- </el-table-column>-->
<el-table-column
fixed
align="center"
......@@ -293,9 +291,23 @@
});
return;
}
this.loading = true;
const archives = [archive];
this.fileArchives(archives);
this.$confirm('该 ' + archive.title + ' 将归档为案卷号: ' + archive.fileNumber + ' 的档案, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.loading = true;
const archives = [archive];
this.fileArchives(archives);
}).catch(() => {
this.$message({
showClose: true,
type: 'info',
message: '已取消归档',
duration: 3000
});
});
},
fileArchives(archives) {
this.loading = true;
......
<template>
<div class="files-of-archive">
<el-backtop target=".files-of-archive" right="70" bottom="70">
<div style="text-align: center;font-size: 20px"></div>
</el-backtop>
<div align="left" v-if="this.archiveObject" class="files-of-archive-form">
<el-backtop target=".files-of-archive" :right="70" :bottom="70"></el-backtop>
<div class="op">
<div class="archiveFileNumber">
<el-input
v-model="archiveFileNumber"
size="mini"
placeholder="请输入案卷号"
clearable></el-input>
</div>
<el-button
type="primary"
size="mini"
style="background:#148A9B;margin-left:10px"
icon="el-icon-search"
@click="paramSearch">搜索
</el-button>
<el-button
type="primary"
size="mini"
style="margin-left: 20px"
@click="searchAllArchiveFile">
查看所有档案文件
</el-button>
<el-button
type="primary"
size="mini"
style="margin-left: 20px"
@click="exportAllArchiveAllFileList">
导出所有档案文件
</el-button>
</div>
<div align="left" class="files-of-archive-form">
<el-form
ref="form"
:model="this.archiveObject"
......@@ -14,7 +42,10 @@
style="width: 30%;float: left">
<div class="masks"></div>
<el-input
v-model="this.archiveObject.title"></el-input>
v-if="this.archiveObject"
v-model="this.archiveObject.title">
</el-input>
<el-input v-else></el-input>
</el-form-item>
<el-form-item
label="当前档案案卷号"
......@@ -22,17 +53,18 @@
style="width: 10%;float: left;margin-left: 20px">
<div class="masks"></div>
<el-input
v-model="this.archiveObject.fileNumber"></el-input>
v-if="this.archiveObject.archiveFileNumber"
v-model="this.archiveObject.archiveFileNumber">
</el-input>
<el-input
v-if="this.archiveObject.fileNumber"
v-model="this.archiveObject.fileNumber">
</el-input>
<el-input v-else></el-input>
</el-form-item>
<el-button
type="primary"
style="width: 10%;margin-left: 20px"
@click="searchAllArchiveFile">
查看所有档案文件
</el-button>
</el-form>
</div>
<div style="margin-top: 10px" class="files-of-archive-table">
<div class="files-of-archive-table">
<el-table
v-loading.fullscreen.lock="loading"
:data="tableData"
......@@ -163,11 +195,11 @@
align="center"
prop="businessType"
label="业务类别"
width="200">
width="250">
</el-table-column>
<el-table-column
align="center"
prop="fileNumber"
prop="archiveFileNumber"
label="案卷号"
width="70">
</el-table-column>
......@@ -242,8 +274,14 @@
<el-button
class="fileButton"
type="primary"
>
导出文件列表
@click="exportOneArchiveFileList">
导出当页文件列表
</el-button>
<el-button
class="fileButton"
type="primary"
@click="exportAllArchiveFileList">
导出全部文件列表
</el-button>
<el-pagination
class="pone"
......@@ -260,17 +298,21 @@
</template>
<script>
import CryptoJS from 'crypto-js'
import {baseUrl} from "../../utils/global"
import axios from "axios"
import Cookies from "js-cookie";
export default {
data() {
return {
archiveObject: {},
archiveObject: null,
tableData: [],
loading: false,
totals: 0,
pageNum: 1,
pageSize: 10,
indexStart: 1,
archiveFileNumber: '',
}
},
methods: {
......@@ -280,6 +322,7 @@
const data = {
pageNum: pageNum,
pageSize: this.pageSize,
archiveFileNumber: this.archiveFileNumber,
archiveId: this.archiveObject ? this.archiveObject.id : null
};
this.search(data);
......@@ -289,22 +332,29 @@
this.$api.getlist.selectArchiveFiles(data)
.then((response) => {
if (response.code === 200) {
for (const i in response.data.content) {
if (response.data.content[i].name !== null && response.data.content[i].name !== "") {
response.data.content[i].name = this.decrypt(response.data.content[i].name);
for (const i in response.data.content[0].archiveFileList) {
if (response.data.content[0].archiveFileList[i].name !== null && response.data.content[0].archiveFileList[i].name !== "") {
response.data.content[0].archiveFileList[i].name = this.decrypt(response.data.content[0].archiveFileList[i].name);
}
if (response.data.content[i].idcard !== null && response.data.content[i].idcard !== "") {
response.data.content[i].idcard = this.decrypt(response.data.content[i].idcard);
if (response.data.content[0].archiveFileList[i].idcard !== null && response.data.content[0].archiveFileList[i].idcard !== "") {
response.data.content[0].archiveFileList[i].idcard = this.decrypt(response.data.content[0].archiveFileList[i].idcard);
}
if (response.data.content[i].title !== null && response.data.content[i].title !== "") {
response.data.content[i].title = this.decrypt(response.data.content[i].title);
if (response.data.content[0].archiveFileList[i].title !== null && response.data.content[0].archiveFileList[i].title !== "") {
response.data.content[0].archiveFileList[i].title = this.decrypt(response.data.content[0].archiveFileList[i].title);
}
}
this.tableData = response.data.content;
this.archiveObject = response.data.content[0];
this.tableData = response.data.content[0].archiveFileList;
this.totals = response.data.totalSize;
} else {
this.archiveObject = null;
this.tableData = null;
this.totals = response.data.totalSize;
}
})
.catch((response) => {
this.archiveObject = null;
this.tableData = null;
});
this.loading = false;
},
......@@ -315,6 +365,7 @@
const data = {
pageNum: 1,
pageSize: pageSize,
archiveFileNumber: this.archiveFileNumber,
archiveId: this.archiveObject ? this.archiveObject.id : null
};
this.search(data);
......@@ -342,17 +393,80 @@
const data = {
pageNum: this.pageNum,
pageSize: this.pageSize,
archiveFileNumber: this.archiveFileNumber,
archiveId: null
};
this.search(data);
}
},
exportOneArchiveFileList() {
const data = {
pageNum: this.pageNum,
pageSize: this.pageSize,
archiveFileNumber: this.archiveFileNumber,
archiveId: this.archiveObject ? this.archiveObject.id : null
};
this.exportArchiveFileList(data);
},
exportAllArchiveFileList() {
const data = {
pageNum: null,
pageSize: null,
archiveFileNumber: this.archiveFileNumber,
archiveId: this.archiveObject ? this.archiveObject.id : null
};
this.exportArchiveFileList(data);
},
exportAllArchiveAllFileList() {
const data = {
pageNum: null,
pageSize: null,
archiveFileNumber: null,
archiveId: null
};
this.exportArchiveFileList(data);
},
exportArchiveFileList(data) {
this.loading = true;
axios.post(baseUrl + '/exportExcel/archiveFileList', null, {
headers: {
"token": Cookies.get("token")
},
data: data,
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();
this.loading = false;
})
.catch(err => {
console.log(err);
this.loading = false;
});
},
paramSearch() {
const data = {
pageNum: 1,
pageSize: this.pageSize,
archiveFileNumber: this.archiveFileNumber,
archiveId: null,
};
this.search(data);
},
},
created() {
// this.loading = true;
if (typeof (this.$route.params.archiveObject) !== "undefined" && this.$route.params.archiveObject) {
sessionStorage.setItem("archiveObject", JSON.stringify(this.$route.params.archiveObject));
}
this.archiveObject = JSON.parse(sessionStorage.getItem("archiveObject"));
if (JSON.parse(sessionStorage.getItem("archiveObject"))) {
this.archiveObject = JSON.parse(sessionStorage.getItem("archiveObject"));
}
const data = {
pageNum: 1,
pageSize: this.pageSize,
......@@ -361,18 +475,18 @@
this.$api.getlist.selectArchiveFiles(data)
.then((response) => {
if (response.code === 200) {
for (const i in response.data.content) {
if (response.data.content[i].name !== null && response.data.content[i].name !== "") {
response.data.content[i].name = this.decrypt(response.data.content[i].name);
for (const i in response.data.content[0].archiveFileList) {
if (response.data.content[0].archiveFileList[i].name !== null && response.data.content[0].archiveFileList[i].name !== "") {
response.data.content[0].archiveFileList[i].name = this.decrypt(response.data.content[0].archiveFileList[i].name);
}
if (response.data.content[i].idcard !== null && response.data.content[i].idcard !== "") {
response.data.content[i].idcard = this.decrypt(response.data.content[i].idcard);
if (response.data.content[0].archiveFileList[i].idcard !== null && response.data.content[0].archiveFileList[i].idcard !== "") {
response.data.content[0].archiveFileList[i].idcard = this.decrypt(response.data.content[0].archiveFileList[i].idcard);
}
if (response.data.content[i].title !== null && response.data.content[i].title !== "") {
response.data.content[i].title = this.decrypt(response.data.content[i].title);
if (response.data.content[0].archiveFileList[i].title !== null && response.data.content[0].archiveFileList[i].title !== "") {
response.data.content[0].archiveFileList[i].title = this.decrypt(response.data.content[0].archiveFileList[i].title);
}
}
this.tableData = response.data.content;
this.tableData = response.data.content[0].archiveFileList;
this.totals = response.data.totalSize;
}
})
......@@ -411,4 +525,21 @@
height: 100%;
overflow-y: scroll;
}
.op {
display: flex;
align-items: center;
margin-bottom: 10px;
/*margin-top: 10px;*/
}
.archiveNumber {
/*width: 250px;*/
margin-left: 20px;
}
.archiveTitle {
width: 200px;
/*margin-left: 20px;*/
}
</style>
<template xmlns:v-popover="http://www.w3.org/1999/xhtml">
<div class="no-archive-event-log">
<el-backtop target=".no-archive-event-log" right="70" bottom="70">
<div style="text-align: center;font-size: 20px"></div>
</el-backtop>
<el-backtop target=".no-archive-event-log" :right="70" :bottom="70"></el-backtop>
<div>
<el-alert
v-if="!showSelection"
......@@ -15,10 +13,18 @@
</div>
<div class="op">
<div class="name">
<el-input v-model="name" size="mini" placeholder="请输入姓名"></el-input>
<el-input
v-model="name"
size="mini"
placeholder="请输入姓名"
clearable></el-input>
</div>
<div class="idCard">
<el-input v-model="idcard" size="mini" placeholder="请输入身份证号"></el-input>
<div class="idcard">
<el-input
v-model="idcard"
size="mini"
placeholder="请输入身份证号"
clearable></el-input>
</div>
<div class="ywtype">
<el-cascader
......@@ -179,6 +185,30 @@
:current-page.sync="pageNum"
@current-change="current_change">
</el-pagination>
<el-dialog title="收货地址" :visible.sync="fileDialog">
<el-form label-position="right" label-width="80px">
<el-form-item label="文件列表">
<el-table v-if="fileDialog" :data="eventLogList" style="width: 100%">
<el-table-column prop="desName" label="姓名" width="100"></el-table-column>
<el-table-column prop="desIdCard" label="身份证" width="200"></el-table-column>
<el-table-column prop="eventTimeStr" label="成文时间" width="200"></el-table-column>
</el-table>
</el-form-item>
<el-form-item label="案卷号">
<el-input
onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
v-model="fileNumber"
style="float: left;width: 200px"
placeholder="请输入案卷号"
clearable
size="mini"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelFileDialog">取 消</el-button>
<el-button type="primary" @click="confirmFileDialog">确 定</el-button>
</div>
</el-dialog>
</div>
</div>
</template>
......@@ -286,7 +316,8 @@
eventTypeDetail: null,
showSelection: false,
eventLogList: [],
url: 'http://socialsecurity.oss-cn-beijing.aliyuncs.com/wechat_xichong/32CB3B7B9CB3A34F52FAF6E43B28DAD4/_sign_photo.jpg',
fileNumber: '',
fileDialog: false,
}
},
methods: {
......@@ -296,6 +327,8 @@
const data = {
pageNum: pageNum,
pageSize: this.pageSize,
name: this.name,
idcard: this.idcard,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
};
......@@ -329,6 +362,8 @@
const data = {
pageNum: 1,
pageSize: pageSize,
name: this.name,
idcard: this.idcard,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
};
......@@ -357,9 +392,12 @@
}
},
paramSearch() {
this.eventLogList.length = 0;
const data = {
pageNum: 1,
pageSize: this.pageSize,
name: this.name,
idcard: this.idcard,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
};
......@@ -393,63 +431,114 @@
this.eventLogList = selection;
},
fileEventLogs() {
console.log(this.eventLogList);
if (this.eventLogList.length === 0) {
this.$message({
showClose: true,
message: "请选择要归档的文件",
type: 'error',
duration: 5000
duration: 3000
});
return;
}
this.loading = true;
const data = [{
this.fileDialog = true;
},
reload() {
const data = {
pageNum: this.pageNum,
pageSize: this.pageSize,
name: this.name,
idcard: this.idcard,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
eventLogList: this.eventLogList,
}];
this.$api.getlist.fileArchives(data)
.then((response) => {
if (response.code === 200) {
this.$message({
showClose: true,
message: response.data,
type: 'success',
duration: 10000
});
} else {
};
this.search(data);
},
cancelFileDialog() {
this.eventLogList.length = 0;
this.fileNumber = null;
this.fileDialog = false;
this.$message({
showClose: true,
message: '取消归档',
type: 'info',
duration: 3000
});
},
confirmFileDialog() {
if (this.eventLogList.length === 0) {
this.$message({
showClose: true,
message: '请选择要归档的文件',
type: 'error',
duration: 3000
});
return;
}
if (this.fileNumber === null || this.fileNumber === '') {
this.$message({
showClose: true,
message: '请输入案卷号',
type: 'error',
duration: 3000
});
return;
}
this.$confirm('该 ' + this.eventLogList.length + ' 件文件将归档为案卷号: ' + this.fileNumber + ' 的档案, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.loading = true;
const data = [{
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
fileNumber: this.fileNumber,
eventLogList: this.eventLogList,
}];
this.$api.getlist.fileArchives(data)
.then((response) => {
if (response.code === 200) {
this.$message({
showClose: true,
message: response.data,
type: 'success',
duration: 10000
});
} else {
this.$message({
showClose: true,
message: response.message,
type: 'error',
duration: 10000
});
}
this.pageNum = 1;
this.reload();
this.fileDialog = false;
this.eventLogList.length = 0;
this.fileNumber = null;
this.loading = false;
})
.catch((response) => {
this.$message({
showClose: true,
message: response.message,
type: 'error',
duration: 10000
});
this.fileDialog = false;
this.eventLogList.length = 0;
}
this.pageNum = 1;
this.reload();
this.loading = false;
})
.catch((response) => {
this.$message({
showClose: true,
message: response.message,
type: 'error',
duration: 10000
this.fileNumber = null;
this.loading = false;
});
this.eventLogList.length = 0;
this.loading = false;
}).catch(() => {
this.$message({
showClose: true,
type: 'info',
message: '取消归档',
duration: 3000
});
},
reload() {
const data = {
pageNum: this.pageNum,
pageSize: this.pageSize,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
};
this.search(data);
});
}
},
created() {
......@@ -461,6 +550,8 @@
const data = {
pageNum: 1,
pageSize: this.pageSize,
name: null,
idcard: null,
eventType: null,
eventTypeDetail: null,
};
......@@ -503,7 +594,7 @@
margin-top: 10px;
}
.idCard {
.idcard {
width: 200px;
margin-left: 20px;
}
......
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