Commit e533bb0e authored by ytbdmhy's avatar ytbdmhy

归档version:0.2.0

parent c2532112
...@@ -248,3 +248,43 @@ export const seletsywdc = (data) => { ...@@ -248,3 +248,43 @@ export const seletsywdc = (data) => {
data data
}) })
}; };
//查询归档档案
export const selectArchive = (data) => {
return axios({
url: '/archive/getList',
method: 'post',
data
})
};
//查询档案文件
export const selectArchiveFiles = (data) => {
return axios({
url: '/archiveFile/getListByArchiveId',
method: 'post',
data
})
};
//查询待归档案
export const selectExpectArchive = (data) => {
return axios({
url: '/archive/expectArchive',
method: 'post',
data
})
};
// 进行归档操作
export const fileArchives = (data) => {
return axios({
url: '/archive/fileArchives',
method: 'post',
data
})
};
// 查询未归档文件
export const selectNoArcEventLogList = (data) => {
return axios({
url: '/archive/getNoArcLogList',
method: 'post',
data
})
};
...@@ -48,6 +48,10 @@ import importBaseInfoByExcel from "@/views/Myvue/importBaseInfoByExcel"; ...@@ -48,6 +48,10 @@ import importBaseInfoByExcel from "@/views/Myvue/importBaseInfoByExcel";
import importPayInfoByExcel from "@/views/Myvue/importPayInfoByExcel"; import importPayInfoByExcel from "@/views/Myvue/importPayInfoByExcel";
import importGrantInfoByExcel from "@/views/Myvue/importGrantInfoByExcel"; import importGrantInfoByExcel from "@/views/Myvue/importGrantInfoByExcel";
import tablep from "@/views/Myvue/tablep"; import tablep from "@/views/Myvue/tablep";
import archivesAdministration from "@/views/Myvue/archivesAdministration";
import filesOfArchive from "@/views/Myvue/filesOfArchive";
import archivesExpect from "@/views/Myvue/archivesExpect";
import noArchiveEventLog from "@/views/Myvue/noArchiveEventLog";
Vue.use(Router) Vue.use(Router)
...@@ -216,6 +220,26 @@ const router = new Router({ ...@@ -216,6 +220,26 @@ const router = new Router({
name:"领取人员导入", name:"领取人员导入",
component: importGrantInfoByExcel component: importGrantInfoByExcel
}, },
{
path:"/archivesAdmin",
name:"档案管理",
component: archivesAdministration
},
{
path:"/archiveFiles",
name:"档案文件",
component: filesOfArchive
},
{
path:"/expectArchives",
name:"可归档案",
component: archivesExpect
},
{
path:"/noArchiveEventLog",
name:"未归档文件",
component: noArchiveEventLog
},
] ]
}, },
{ {
......
<template>
<div>
<el-table
v-loading.fullscreen.lock="loading"
:data="tableData"
border
style="width: 100%" >
<!-- @row-click="getFileList">-->
<el-table-column
align="center"
label="序号"
type="index"
width="50"
:index="this.indexStart">
</el-table-column>
<el-table-column
align="center"
prop="type"
label="档案类别"
width="250">
</el-table-column>
<el-table-column
align="center"
prop="volumeNumber"
label="全宗号"
width="70">
</el-table-column>
<el-table-column
align="center"
prop="number"
label="档号"
width="180">
<template slot-scope="scope">
<el-button type="text" @click="getFileList(scope.row)">{{scope.row.number}}</el-button>
</template>
</el-table-column>
<el-table-column
align="center"
prop="year"
label="年度"
width="70">
</el-table-column>
<el-table-column
align="center"
prop="retentionPeriod"
label="保管期限"
width="60">
</el-table-column>
<el-table-column
align="center"
prop="institution"
label="机构(问题)"
width="70">
</el-table-column>
<el-table-column
align="center"
prop="responsiblePerson"
label="责任者"
width="130">
</el-table-column>
<el-table-column
align="center"
prop="title"
label="正题名"
width="330">
</el-table-column>
<el-table-column
align="center"
prop="startTimeStr"
label="起时间"
width="120">
</el-table-column>
<el-table-column
align="center"
prop="endTimeStr"
label="止时间"
width="120">
</el-table-column>
<el-table-column
align="center"
prop="pages"
label="页数"
width="60">
</el-table-column>
<el-table-column
align="center"
prop="files"
label="件数"
width="60">
</el-table-column>
<el-table-column
align="center"
prop="createTimeStr"
label="归档时间"
width="120">
</el-table-column>
<el-table-column
align="center"
prop="fileType"
label="档案类别"
width="100">
</el-table-column>
<el-table-column
align="center"
prop="secondaryCategory"
label="二级类目"
width="250">
</el-table-column>
<el-table-column
align="center"
prop="categoryType"
label="类别代码"
width="70">
</el-table-column>
<el-table-column
align="center"
prop="businessType"
label="业务类别"
width="200">
</el-table-column>
<el-table-column
align="center"
prop="fileNumber"
label="案卷号"
width="70">
</el-table-column>
</el-table>
<el-pagination
class="pone"
:page-size="pageSize"
:page-sizes="[10, 30, 50, 100]"
@size-change="handleSizeChange"
layout="total, sizes, prev, pager, next, jumper"
:total="totals"
:current-page.sync="pageNum"
@current-change="current_change">
</el-pagination>
</div>
</template>
<script>
import CryptoJS from 'crypto-js'
import {Loading} from 'element-ui';
export default {
data() {
return {
tableData: [],
loading: false,
totals: 0,
pageNum: 1,
pageSize: 10,
indexStart: 1,
}
},
methods: {
current_change(pageNum) {
this.pageNum = pageNum;
this.indexStart = (pageNum - 1) * this.pageSize + 1;
const data = {
pageNum: pageNum,
pageSize: this.pageSize,
};
this.search(data);
},
search(data) {
this.loading = true;
this.$api.getlist.selectArchive(data)
.then((response) => {
if (response.code === 200) {
this.tableData = response.data.content;
this.totals = response.data.totalSize;
}
})
.catch((response) => {
});
this.loading = false;
},
handleSizeChange(pageSize) {
this.pageSize = pageSize;
this.pageNum = 1;
this.indexStart = 1;
const data = {
pageNum: 1,
pageSize: pageSize,
};
this.search(data);
},
getFileList(row) {
this.$router.push({
name: "档案文件",
params: {
archiveObject: row
}
});
},
decrypt(word) {
var key = CryptoJS.enc.Utf8.parse("KkweInfo23255625");
var decrypt = CryptoJS.AES.decrypt(word, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7});
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
},
decryptByDES(ciphertext) {
var keyHex = CryptoJS.enc.Utf8.parse("KkweFace95271124");
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
},
created() {
this.loading = true;
const data = {
pageNum: 1,
pageSize: this.pageSize
};
this.$api.getlist.selectArchive(data)
.then((response) => {
if (response.code === 200) {
this.tableData = response.data.content;
this.totals = response.data.totalSize;
}
})
.catch((response) => {
});
this.loading = false;
}
}
</script>
<style scoped>
.pone {
margin-top: 20px;
margin-bottom: 20px;
}
.wrap {
overflow: hidden;
position: relative;
}
.masks {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
z-index: 200
}
.form {
float: left;
width: 45%;
margin-left: 20px
}
.imgcon {
margin: 0 auto;
box-shadow: 0 0 15px lightgray;
overflow: hidden;
margin-bottom: 40px
}
.block {
width: 23%
}
.block {
float: left;
height: 100%;
margin-right: 20px
}
.imtil {
padding: 0 0 20px 0
}
</style>
<template>
<div>
<el-table
v-loading.fullscreen.lock="loading"
:data="tableData"
border
style="width: 100%">
<!-- @row-click="getFileList">-->
<el-table-column
align="center"
type="selection"
width="50">
</el-table-column>
<el-table-column
fixed
align="center"
label="序号"
type="index"
width="50"
:index="this.indexStart">
</el-table-column>
<el-table-column
fixed
label="文件列表"
type="expand"
width="60">
<template slot-scope="scope">
<el-table :data="scope.row.eventLogList" border style="width: 100%">
<el-table-column align="center" label="文件序号" type="index" width="60"></el-table-column>
<el-table-column align="center" prop="eventTimeStr" label="成文时间" width="180"></el-table-column>
<el-table-column align="center" prop="name" label="姓名" width="100"
:formatter="decryptCellValue"></el-table-column>
<el-table-column align="center" prop="idcard" label="身份证" width="200"
:formatter="decryptCellValue"></el-table-column>
<el-table-column align="center" prop="concatAddress" label="乡镇/村社" width="200"></el-table-column>
<el-table-column
align="center"
label="附件"
width="600">
<template slot-scope="scope">
<div class="picPopover"
v-if="scope.row.idcardFrontPic">
<span style="float: top">身份证正面:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.idcardFrontPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.idcardFrontPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
<div class="picPopover"
v-if="scope.row.idcardBackPic">
<span style="float: top">身份证背面:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.idcardBackPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.idcardBackPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
<div class="picPopover"
v-if="scope.row.bankPic">
<span style="float: top">银行卡:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.bankPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.bankPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
<div class="picPopover"
v-if="scope.row.specialPhotoPic">
<span style="float: top">特殊证明:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.specialPhotoPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.specialPhotoPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
<div class="picPopover"
v-if="scope.row.bookPic">
<span style="float: top">户口簿:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.bookPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.bookPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
</template>
</el-table-column>
</el-table>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- align="center"-->
<!-- prop="type"-->
<!-- label="档案类别"-->
<!-- width="250">-->
<!-- </el-table-column>-->
<!-- <el-table-column-->
<!-- align="center"-->
<!-- prop="volumeNumber"-->
<!-- label="全宗号"-->
<!-- width="70">-->
<!-- </el-table-column>-->
<!-- <el-table-column-->
<!-- align="center"-->
<!-- prop="number"-->
<!-- label="档号"-->
<!-- width="180">-->
<!--&lt;!&ndash; <template slot-scope="scope">&ndash;&gt;-->
<!--&lt;!&ndash; <el-button type="text" @click="getFileList(scope.row)">{{scope.row.number}}</el-button>&ndash;&gt;-->
<!--&lt;!&ndash; </template>&ndash;&gt;-->
<!-- </el-table-column>-->
<el-table-column
align="center"
prop="year"
label="年度"
width="70">
</el-table-column>
<!-- <el-table-column-->
<!-- align="center"-->
<!-- prop="retentionPeriod"-->
<!-- label="保管期限"-->
<!-- width="60">-->
<!-- </el-table-column>-->
<!-- <el-table-column-->
<!-- align="center"-->
<!-- prop="institution"-->
<!-- label="机构(问题)"-->
<!-- width="70">-->
<!-- </el-table-column>-->
<!-- <el-table-column-->
<!-- align="center"-->
<!-- prop="responsiblePerson"-->
<!-- label="责任者"-->
<!-- width="130">-->
<!-- </el-table-column>-->
<el-table-column
align="center"
prop="title"
label="正题名"
width="330">
</el-table-column>
<el-table-column
align="center"
prop="startTimeStr"
label="起时间"
width="120">
</el-table-column>
<el-table-column
align="center"
prop="endTimeStr"
label="止时间"
width="120">
</el-table-column>
<el-table-column
align="center"
prop="pages"
label="页数"
width="60">
</el-table-column>
<el-table-column
align="center"
prop="files"
label="件数"
width="60">
</el-table-column>
<!-- <el-table-column-->
<!-- align="center"-->
<!-- prop="createTimeStr"-->
<!-- label="归档时间"-->
<!-- width="120">-->
<!-- </el-table-column>-->
<el-table-column
align="center"
prop="fileType"
label="档案类别"
width="100">
</el-table-column>
<el-table-column
align="center"
prop="secondaryCategory"
label="二级类目"
width="250">
</el-table-column>
<el-table-column
align="center"
prop="categoryType"
label="类别代码"
width="70">
</el-table-column>
<el-table-column
align="center"
prop="businessType"
label="业务类别"
width="200">
</el-table-column>
<!-- <el-table-column-->
<!-- align="center"-->
<!-- prop="fileNumber"-->
<!-- label="案卷号"-->
<!-- width="70">-->
<!-- </el-table-column>-->
<el-table-column align="center" fixed="right" label="操作" width="100">
<template slot-scope="scope">
<el-button type="primary" size="mini" plain @click="fileArchive(scope.row)">归档</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pone"
:page-size="pageSize"
:page-sizes="[10, 50, 100]"
@size-change="handleSizeChange"
layout="total, sizes, prev, pager, next, jumper"
:total="totals"
:current-page.sync="pageNum"
@current-change="current_change">
</el-pagination>
</div>
</template>
<script>
import CryptoJS from 'crypto-js'
import {Loading} from 'element-ui';
export default {
data() {
return {
tableData: [],
loading: false,
totals: 0,
pageNum: 1,
pageSize: 10,
indexStart: 1,
}
},
methods: {
current_change(pageNum) {
this.pageNum = pageNum;
this.indexStart = (pageNum - 1) * this.pageSize + 1;
const data = {
pageNum: pageNum,
pageSize: this.pageSize,
};
this.search(data);
},
search(data) {
this.loading = true;
this.$api.getlist.selectExpectArchive(data)
.then((response) => {
if (response.code === 200) {
this.tableData = response.data.content;
this.totals = response.data.totalSize;
}
})
.catch((response) => {
});
this.loading = false;
},
handleSizeChange(pageSize) {
this.pageSize = pageSize;
this.pageNum = 1;
this.indexStart = 1;
const data = {
pageNum: 1,
pageSize: pageSize,
};
this.search(data);
},
decrypt(word) {
var key = CryptoJS.enc.Utf8.parse("KkweInfo23255625");
var decrypt = CryptoJS.AES.decrypt(word, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7});
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
},
decryptByDES(ciphertext) {
var keyHex = CryptoJS.enc.Utf8.parse("KkweFace95271124");
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
},
decryptCellValue(row, column, cellValue, index) {
if (cellValue === null || cellValue === "") return null;
return this.decrypt(cellValue);
},
fileArchive(archive) {
const archives = [archive];
this.fileArchives(archives);
},
fileArchives(archives) {
this.loading = true;
this.$api.getlist.fileArchives(archives)
.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.reload();
})
.catch((response) => {
this.$message({
showClose: true,
message: response.message,
type: 'error',
duration: 10000
});
});
this.loading = false;
},
reload() {
const data = {
pageNum: this.pageNum,
pageSize: this.pageSize,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
};
this.search(data);
}
},
created() {
this.loading = true;
const data = {
pageNum: 1,
pageSize: this.pageSize
};
this.$api.getlist.selectExpectArchive(data)
.then((response) => {
if (response.code === 200) {
this.tableData = response.data.content;
this.totals = response.data.totalSize;
}
})
.catch((response) => {
});
this.loading = false;
}
}
</script>
<style scoped>
.pone {
margin-top: 20px;
margin-bottom: 20px;
}
.picPopover {
float: left;
margin-left: 20px;
}
.wrap {
overflow: hidden;
position: relative;
}
.masks {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
z-index: 200
}
.form {
float: left;
width: 45%;
margin-left: 20px
}
.imgcon {
margin: 0 auto;
box-shadow: 0 0 15px lightgray;
overflow: hidden;
margin-bottom: 40px
}
.block {
width: 23%
}
.block {
float: left;
height: 100%;
margin-right: 20px
}
.imtil {
padding: 0 0 20px 0
}
</style>
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
loadingInstance.close(); loadingInstance.close();
}); });
if (res.code == 200) { if (res.code === 200) {
this.tableData = res.data.content this.tableData = res.data.content
this.totals = res.data.totalSize this.totals = res.data.totalSize
} }
...@@ -165,7 +165,7 @@ ...@@ -165,7 +165,7 @@
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
loadingInstance.close(); loadingInstance.close();
}); });
if (res.code == 200) { if (res.code === 200) {
this.tableData = res.data.content this.tableData = res.data.content
this.totals = res.data.totalSize this.totals = res.data.totalSize
} }
......
<template>
<div>
<el-table
v-loading.fullscreen.lock="loading"
:data="tableData"
border
style="width: 100%">
<el-table-column
align="center"
label="序号"
type="index"
width="50"
:index="this.indexStart">
</el-table-column>
<el-table-column
align="center"
label="档案类别"
:formatter="getArchiveType"
width="250">
</el-table-column>
<el-table-column
align="center"
label="全宗号"
:formatter="getArchiveVolumeNumber"
width="70">
</el-table-column>
<el-table-column
align="center"
label="档号"
:formatter="getArchiveNumber"
width="180">
</el-table-column>
<el-table-column
align="center"
label="年度"
:formatter="getArchiveYear"
width="70">
</el-table-column>
<el-table-column
align="center"
label="保管期限"
:formatter="getArchiveRetentionPeriod"
width="60">
</el-table-column>
<el-table-column
align="center"
label="机构(问题)"
:formatter="getArchiveInstitution"
width="70">
</el-table-column>
<el-table-column
align="center"
prop="number"
label="本卷件号"
width="60">
</el-table-column>
<el-table-column
align="center"
prop="pageNumber"
label="页号"
width="70">
</el-table-column>
<el-table-column
align="center"
label="责任者"
:formatter="getArchiveResponsiblePerson"
width="130">
</el-table-column>
<el-table-column
align="center"
prop="title"
label="正题名"
width="550">
</el-table-column>
<el-table-column
align="center"
prop="writtenTimeStr"
label="成文时间"
width="120">
</el-table-column>
<el-table-column
align="center"
prop="annex"
label="附件"
width="300">
</el-table-column>
<el-table-column
align="center"
prop="createTimeStr"
label="归档时间"
width="120">
</el-table-column>
<el-table-column
align="center"
label="档案类别"
:formatter="getArchiveFileType"
width="100">
</el-table-column>
<el-table-column
align="center"
label="二级类目"
:formatter="getArchiveSecondaryCategory"
width="250">
</el-table-column>
<el-table-column
align="center"
label="类别代码"
:formatter="getArchiveCategoryType"
width="60">
</el-table-column>
<el-table-column
align="center"
prop="name"
label="姓名"
width="100">
</el-table-column>
<el-table-column
align="center"
prop="idcard"
label="身份证"
width="200">
</el-table-column>
<el-table-column
align="center"
prop="concatAddress"
label="乡镇村社"
width="200">
</el-table-column>
<el-table-column
align="center"
label="业务类别"
:formatter="getArchiveBusinessType"
width="200">
</el-table-column>
<el-table-column
align="center"
label="案卷号"
:formatter="getArchiveFileNumber"
width="70">
</el-table-column>
<el-table-column
align="center"
label="附件"
width="600">
<template slot-scope="scope">
<div class="picPopover"
v-if="scope.row.idcardFrontPic">
<span style="float: top">身份证正面:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.idcardFrontPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.idcardFrontPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
<div class="picPopover"
v-if="scope.row.idcardBackPic">
<span style="float: top">身份证背面:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.idcardBackPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.idcardBackPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
<div class="picPopover"
v-if="scope.row.bankPic">
<span style="float: top">银行卡:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.bankPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.bankPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
<div class="picPopover"
v-if="scope.row.specialPhotoPic">
<span style="float: top">特殊证明:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.specialPhotoPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.specialPhotoPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
<div class="picPopover"
v-if="scope.row.bookPic">
<span style="float: top">户口簿:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.bookPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.bookPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pone"
:page-size='pageSize'
:page-sizes="[10, 30, 50]"
@size-change="handleSizeChange"
layout="total, sizes, prev, pager, next, jumper"
:total="totals"
:current-page.sync="pageNum"
@current-change="current_change">
</el-pagination>
</div>
</template>
<script>
import CryptoJS from 'crypto-js'
import {Loading} from 'element-ui';
export default {
data() {
return {
archiveObject: {},
tableData: [],
loading: false,
totals: 0,
pageNum: 1,
pageSize: 10,
indexStart: 1,
}
},
methods: {
current_change(pageNum) {
this.pageNum = pageNum;
this.indexStart = (pageNum - 1) * this.pageSize + 1;
const data = {
pageNum: pageNum,
pageSize: this.pageSize,
archiveId: this.archiveObject.id
};
this.search(data);
},
search(data) {
this.loading = true;
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);
// }
// if (response.data.content[i].idcard !== null && response.data.content[i].idcard !== "") {
// response.data.content[i].idcard = this.decrypt(response.data.content[i].idcard);
// }
}
this.tableData = response.data.content;
this.totals = response.data.totalSize;
}
})
.catch((response) => {
});
this.loading = false;
},
handleSizeChange(pageSize) {
this.pageNum = 1;
this.pageSize = pageSize;
this.indexStart = 1;
const data = {
pageNum: 1,
pageSize: pageSize,
archiveId: this.archiveObject.id
};
this.search(data);
},
decrypt(word) {
var key = CryptoJS.enc.Utf8.parse("KkweInfo23255625");
var decrypt = CryptoJS.AES.decrypt(word, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7});
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
},
decryptByDES(ciphertext) {
var keyHex = CryptoJS.enc.Utf8.parse("KkweFace95271124");
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
},
getArchiveType() {
return this.archiveObject.type;
},
getArchiveVolumeNumber() {
return this.archiveObject.volumeNumber;
},
getArchiveNumber() {
return this.archiveObject.number;
},
getArchiveYear() {
return this.archiveObject.year;
},
getArchiveRetentionPeriod() {
return this.archiveObject.retentionPeriod;
},
getArchiveInstitution() {
return this.archiveObject.institution;
},
getArchiveResponsiblePerson() {
return this.archiveObject.responsiblePerson;
},
getArchiveFileType() {
return this.archiveObject.fileType;
},
getArchiveSecondaryCategory() {
return this.archiveObject.secondaryCategory;
},
getArchiveCategoryType() {
return this.archiveObject.categoryType;
},
getArchiveBusinessType() {
return this.archiveObject.businessType;
},
getArchiveFileNumber() {
return this.archiveObject.fileNumber;
},
},
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"));
const data = {
pageNum: 1,
pageSize: this.pageSize,
archiveId: this.archiveObject.id
};
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);
// }
// if (response.data.content[i].idcard !== null && response.data.content[i].idcard !== "") {
// response.data.content[i].idcard = this.decrypt(response.data.content[i].idcard);
// }
}
this.tableData = response.data.content;
this.totals = response.data.totalSize;
}
})
.catch((response) => {
});
this.loading = false;
}
}
</script>
<style scoped>
.pone {
margin-top: 20px;
margin-bottom: 20px;
}
.picPopover {
float: left;
margin-left: 20px;
}
.wrap {
overflow: hidden;
position: relative;
}
.masks {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
z-index: 200
}
.form {
float: left;
width: 45%;
margin-left: 20px
}
.imgcon {
margin: 0 auto;
box-shadow: 0 0 15px lightgray;
overflow: hidden;
margin-bottom: 40px
}
.block {
width: 23%
}
.block {
float: left;
height: 100%;
margin-right: 20px
}
.imtil {
padding: 0 0 20px 0
}
</style>
<template xmlns:v-popover="http://www.w3.org/1999/xhtml">
<div>
<div class="op">
<div class="name">
<el-input v-model="name" size="mini" placeholder="请输入姓名"></el-input>
</div>
<div class="idCard">
<el-input v-model="idcard" size="mini" placeholder="请输入身份证号"></el-input>
</div>
<div class="ywtype">
<el-cascader
size="mini"
:options="options"
:props="{ checkStrictly: true }"
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>
<div>
<el-table
v-loading.fullscreen.lock="loading"
:data="tableData"
border
style="width: 100%"
@selection-change="handleSelectionChange"
:key="Math.random()">
<el-table-column
v-if="showSelection"
align="center"
type="selection"
width="50">
</el-table-column>
<el-table-column
v-else
width="50">
</el-table-column>
<el-table-column
align="center"
label="序号"
type="index"
width="50"
:index="indexStart">
</el-table-column>
<el-table-column
align="center"
prop="eventType"
label="业务类型"
width="200"
:formatter="getEventType">
</el-table-column>
<el-table-column
align="center"
prop="eventTimeStr"
label="成文时间"
width="200">
</el-table-column>
<el-table-column
align="center"
prop="desName"
label="姓名"
width="100">
</el-table-column>
<el-table-column
align="center"
prop="desIdCard"
label="身份证"
width="200">
</el-table-column>
<el-table-column
align="center"
prop="concatAddress"
label="乡镇村社"
width="200">
</el-table-column>
<el-table-column
align="center"
label="附件"
width="600">
<template slot-scope="scope">
<div class="picPopover"
v-if="scope.row.idcardFrontPic">
<span style="float: top">身份证正面:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.idcardFrontPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.idcardFrontPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
<div class="picPopover"
v-if="scope.row.idcardBackPic">
<span style="float: top">身份证背面:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.idcardBackPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.idcardBackPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
<div class="picPopover"
v-if="scope.row.bankPic">
<span style="float: top">银行卡:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.bankPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.bankPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
<div class="picPopover"
v-if="scope.row.specialPhotoPic">
<span style="float: top">特殊证明:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.specialPhotoPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.specialPhotoPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
<div class="picPopover"
v-if="scope.row.bookPic">
<span style="float: top">户口簿:</span>
<div style="float: top">
<el-popover
placement="bottom"
trigger="hover">
<img slot="reference" :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.bookPic" height="50px" width="50px" class="head_pic"/>
<img :src="'http://socialsecurity.oss-cn-beijing.aliyuncs.com/' + scope.row.bookPic" height="100%" width="100%" class="head_pic"/>
</el-popover>
</div>
</div>
</template>
</el-table-column>
</el-table>
<el-button
v-if="showSelection"
class="fileButton"
type="primary" @click="fileEventLogs">
归档案卷
</el-button>
<el-pagination
class="pone"
:page-size='pageSize'
:page-sizes="[10, 50, 100]"
@size-change="handleSizeChange"
layout="total, sizes, prev, pager, next, jumper"
:total="totals"
:current-page.sync="pageNum"
@current-change="current_change">
</el-pagination>
</div>
</div>
</template>
<script>
import CryptoJS from 'crypto-js'
export default {
data() {
return {
name: '',
idcard: '',
ywtype: '',
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: '关系转移',
}],
archiveObject: {},
tableData: [],
loading: false,
totals: 0,
pageNum: 1,
pageSize: 10,
indexStart: 1,
eventType: null,
eventTypeDetail: null,
showSelection: false,
eventLogList: [],
url: 'http://socialsecurity.oss-cn-beijing.aliyuncs.com/wechat_xichong/32CB3B7B9CB3A34F52FAF6E43B28DAD4/_sign_photo.jpg',
}
},
methods: {
current_change(pageNum) {
this.pageNum = pageNum;
this.indexStart = (pageNum - 1) * this.pageSize + 1;
const data = {
pageNum: pageNum,
pageSize: this.pageSize,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
};
this.search(data);
},
search(data) {
this.loading = true;
this.$api.getlist.selectNoArcEventLogList(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].desName = this.decrypt(response.data.content[i].name);
}
if (response.data.content[i].idcard !== null && response.data.content[i].idcard !== "") {
response.data.content[i].desIdCard = this.decrypt(response.data.content[i].idcard);
}
}
this.tableData = response.data.content;
this.totals = response.data.totalSize;
}
})
.catch((response) => {
});
this.loading = false;
},
handleSizeChange(pageSize) {
this.pageNum = 1;
this.pageSize = pageSize;
this.indexStart = 1;
const data = {
pageNum: 1,
pageSize: pageSize,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
};
this.search(data);
},
decrypt(word) {
var key = CryptoJS.enc.Utf8.parse("KkweInfo23255625");
var decrypt = CryptoJS.AES.decrypt(word, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7});
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
},
decryptByDES(ciphertext) {
var keyHex = CryptoJS.enc.Utf8.parse("KkweFace95271124");
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
},
getEventType(row, column, cellValue, index) {
if (cellValue === 2) {
return this.getInformationChangeType(row.eventTypeDetail)
} else {
return this.getType(cellValue);
}
},
paramSearch() {
const data = {
pageNum: 1,
pageSize: this.pageSize,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
};
this.search(data);
this.showSelection = !!this.eventType;
},
getInformationChangeType(eventTypeDetail) {
const eventType = "信息变更/";
const eventDetail = eventTypeDetail === 1 ? "档次变更"
: eventTypeDetail === 2 ? "银行卡变更"
: eventTypeDetail === 3 ? "手机号变更"
: eventTypeDetail === 4 ? "参保身份变更"
: eventTypeDetail === 5 ? "户籍地址变更"
: eventTypeDetail === 6 ? "姓名变更"
: eventTypeDetail === 7 ? "身份证变更"
: "";
return eventType + eventDetail;
},
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;
}
}
},
handleSelectionChange(selection) {
this.eventLogList = selection;
},
fileEventLogs() {
this.loading = true;
const data = [{
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.$message({
showClose: true,
message: response.message,
type: 'error',
duration: 10000
});
}
this.pageNum = 1;
this.reload();
})
.catch((response) => {
this.$message({
showClose: true,
message: response.message,
type: 'error',
duration: 10000
});
});
this.loading = false;
},
reload() {
const data = {
pageNum: this.pageNum,
pageSize: this.pageSize,
eventType: this.eventType,
eventTypeDetail: this.eventTypeDetail,
};
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"));
const data = {
pageNum: 1,
pageSize: this.pageSize,
eventType: null,
eventTypeDetail: null,
};
this.$api.getlist.selectNoArcEventLogList(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].desName = this.decrypt(response.data.content[i].name);
}
if (response.data.content[i].idcard !== null && response.data.content[i].idcard !== "") {
response.data.content[i].desIdCard = this.decrypt(response.data.content[i].idcard);
}
}
this.tableData = response.data.content;
this.totals = response.data.totalSize;
}
})
.catch((response) => {
});
this.loading = false;
}
}
</script>
<style scoped>
.pone {
margin-top: 10px;
margin-bottom: 20px;
}
.fileButton {
width: 10%;
margin-top: 10px;
}
.op {
display: flex;
align-items: center;
margin-bottom: 10px;
}
.idCard {
width: 200px;
margin-left: 20px;
}
.name {
width: 200px;
/*margin-left: 20px;*/
}
.ywtype {
width: 200px;
margin-left: 20px;
}
.picPopover {
float: left;
margin-left: 20px;
}
</style>
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
<el-input v-model="dataForm.truename" auto-complete="off"></el-input> <el-input v-model="dataForm.truename" auto-complete="off"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="密码" prop="password"> <el-form-item label="密码" prop="password">
<el-input v-model="dataForm.password" type="password" auto-complete="off"></el-input> <el-input v-model="dataForm.password" type="password" placeholder="密码必须为6至18位" auto-complete="off"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="身份证" prop="bangIdcard"> <el-form-item label="身份证" prop="bangIdcard">
<el-input v-model="dataForm.bangIdcard" auto-complete="off"></el-input> <el-input v-model="dataForm.bangIdcard" auto-complete="off"></el-input>
......
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