-
32src/api/collect/collect.js
-
90src/assets/iconfonts/light/iconfont.css
-
2src/assets/iconfonts/light/iconfont.js
-
147src/assets/iconfonts/light/iconfont.json
-
BINsrc/assets/iconfonts/light/iconfont.ttf
-
BINsrc/assets/iconfonts/light/iconfont.woff
-
BINsrc/assets/iconfonts/light/iconfont.woff2
-
BINsrc/assets/images/fileIcon/ai.png
-
BINsrc/assets/images/fileIcon/attachment.png
-
BINsrc/assets/images/fileIcon/audio.png
-
BINsrc/assets/images/fileIcon/box_notes.png
-
BINsrc/assets/images/fileIcon/csv.png
-
BINsrc/assets/images/fileIcon/eps.png
-
BINsrc/assets/images/fileIcon/excel.png
-
BINsrc/assets/images/fileIcon/exe.png
-
BINsrc/assets/images/fileIcon/flash.png
-
BINsrc/assets/images/fileIcon/folder.png
-
BINsrc/assets/images/fileIcon/gdoc.png
-
BINsrc/assets/images/fileIcon/gdocs.png
-
BINsrc/assets/images/fileIcon/gform.png
-
BINsrc/assets/images/fileIcon/gpres.png
-
BINsrc/assets/images/fileIcon/gsheet.png
-
BINsrc/assets/images/fileIcon/html.png
-
BINsrc/assets/images/fileIcon/image.png
-
BINsrc/assets/images/fileIcon/keynote.png
-
BINsrc/assets/images/fileIcon/library_folder.png
-
BINsrc/assets/images/fileIcon/link.png
-
BINsrc/assets/images/fileIcon/mp.png
-
BINsrc/assets/images/fileIcon/overlay.png
-
BINsrc/assets/images/fileIcon/pack.png
-
BINsrc/assets/images/fileIcon/pages.png
-
BINsrc/assets/images/fileIcon/pdf.png
-
BINsrc/assets/images/fileIcon/ppt.png
-
BINsrc/assets/images/fileIcon/psd.png
-
BINsrc/assets/images/fileIcon/quip_doc.png
-
BINsrc/assets/images/fileIcon/quip_sheet.png
-
BINsrc/assets/images/fileIcon/rtf.png
-
BINsrc/assets/images/fileIcon/slide.png
-
BINsrc/assets/images/fileIcon/stypi.png
-
BINsrc/assets/images/fileIcon/txt.png
-
BINsrc/assets/images/fileIcon/unknown.png
-
BINsrc/assets/images/fileIcon/video.png
-
BINsrc/assets/images/fileIcon/visio.png
-
BINsrc/assets/images/fileIcon/webex.png
-
BINsrc/assets/images/fileIcon/word.png
-
BINsrc/assets/images/fileIcon/xml.png
-
BINsrc/assets/images/fileIcon/zip.png
-
7src/assets/styles/collect-reorganizi.scss
-
1src/views/collectReorganizi/collectionLibrary/anjuan/tableList.vue
-
64src/views/collectReorganizi/collectionLibrary/file/index.vue
-
1src/views/collectReorganizi/collectionLibrary/juannei/index.vue
-
9src/views/collectReorganizi/collectionLibrary/module/archivesInfo/index.vue
-
77src/views/collectReorganizi/collectionLibrary/module/collectHeader.vue
-
8src/views/collectReorganizi/collectionLibrary/module/collectMoveFile/index.vue
-
52src/views/collectReorganizi/collectionLibrary/module/fourTest/index.vue
-
119src/views/collectReorganizi/collectionLibrary/module/fourTestInfo/index.vue
-
81src/views/collectReorganizi/collectionLibrary/module/handleInfo/index.vue
-
54src/views/collectReorganizi/collectionLibrary/module/quickPaper/index.vue
-
291src/views/collectReorganizi/collectionLibrary/module/uploadOriginal/bigUpload.vue
-
170src/views/collectReorganizi/collectionLibrary/module/uploadOriginal/bigUpload2.vue
-
25src/views/collectReorganizi/collectionLibrary/module/uploadOriginal/index.vue
-
74src/views/components/category/PreviewForm.vue
-
7src/views/prearchiveLibrary/module/batchFile.vue
2
src/assets/iconfonts/light/iconfont.js
File diff suppressed because it is too large
View File
After Width: 32 | Height: 32 | Size: 474 B |
After Width: 32 | Height: 32 | Size: 626 B |
After Width: 32 | Height: 32 | Size: 551 B |
After Width: 32 | Height: 32 | Size: 549 B |
After Width: 32 | Height: 32 | Size: 685 B |
After Width: 32 | Height: 32 | Size: 566 B |
After Width: 32 | Height: 32 | Size: 637 B |
After Width: 32 | Height: 32 | Size: 627 B |
After Width: 32 | Height: 32 | Size: 558 B |
After Width: 32 | Height: 32 | Size: 385 B |
After Width: 32 | Height: 32 | Size: 486 B |
After Width: 32 | Height: 32 | Size: 617 B |
After Width: 32 | Height: 32 | Size: 530 B |
After Width: 32 | Height: 32 | Size: 515 B |
After Width: 32 | Height: 32 | Size: 504 B |
After Width: 32 | Height: 32 | Size: 653 B |
After Width: 32 | Height: 32 | Size: 555 B |
After Width: 32 | Height: 32 | Size: 651 B |
After Width: 32 | Height: 32 | Size: 636 B |
After Width: 32 | Height: 32 | Size: 658 B |
After Width: 32 | Height: 32 | Size: 659 B |
After Width: 32 | Height: 32 | Size: 492 B |
After Width: 32 | Height: 32 | Size: 532 B |
After Width: 32 | Height: 32 | Size: 637 B |
After Width: 32 | Height: 32 | Size: 635 B |
After Width: 32 | Height: 32 | Size: 591 B |
After Width: 32 | Height: 32 | Size: 657 B |
After Width: 32 | Height: 32 | Size: 817 B |
After Width: 32 | Height: 32 | Size: 821 B |
After Width: 32 | Height: 32 | Size: 569 B |
After Width: 32 | Height: 32 | Size: 450 B |
After Width: 32 | Height: 32 | Size: 553 B |
After Width: 32 | Height: 32 | Size: 592 B |
After Width: 32 | Height: 32 | Size: 379 B |
After Width: 32 | Height: 32 | Size: 560 B |
After Width: 32 | Height: 32 | Size: 650 B |
After Width: 32 | Height: 32 | Size: 628 B |
After Width: 32 | Height: 32 | Size: 635 B |
After Width: 32 | Height: 32 | Size: 622 B |
After Width: 32 | Height: 32 | Size: 552 B |
@ -0,0 +1,119 @@ |
|||||
|
<template> |
||||
|
<!--四性检测-档案详情内--> |
||||
|
<div class="fourTest-container"> |
||||
|
<el-table :data="tableData"> |
||||
|
<el-table-column prop="admin" label="检测人" min-width="60" /> |
||||
|
<el-table-column prop="createTime" label="检测时间" min-width="180"> |
||||
|
<template slot-scope="scope"> |
||||
|
<div>{{ scope.row.createTime | parseTime }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="truth" label="真实性" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-if="scope.row.truth===1" class="four-icon iconfont icon-zhengque" /> |
||||
|
<span v-else class="four-icon iconfont icon-cuowu" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="integrity" label="完整性" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-if="scope.row.integrity===1" class="four-icon iconfont icon-zhengque" /> |
||||
|
<span v-else class="four-icon iconfont icon-cuowu" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="availability" label="可用性" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-if="scope.row.availability===1" class="four-icon iconfont icon-zhengque" /> |
||||
|
<span v-else class="four-icon iconfont icon-cuowu" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="safety" label="安全性" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-if="scope.row.safety===1" class="four-icon iconfont icon-zhengque" /> |
||||
|
<span v-else class="four-icon iconfont icon-cuowu" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="createDate" label="检测结果" min-width="220"> |
||||
|
<template slot-scope="scope"> |
||||
|
<div>共检测{{ scope.row.totalNum }}项,<span class="testSuccess">通过{{ scope.row.successNum }}条</span>,<span class="testError">未通过{{ scope.row.errorNum }}条</span></div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<!--分页组件--> |
||||
|
<el-pagination |
||||
|
:current-page="page.page" |
||||
|
:total="page.total" |
||||
|
:page-size="page.size" |
||||
|
:pager-count="5" |
||||
|
layout="total, prev, pager, next, sizes" |
||||
|
@size-change="handleSizeChange" |
||||
|
@current-change="handleCurrentPage" |
||||
|
/> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
const data = [ |
||||
|
{ |
||||
|
'id': '005E76FEC5A2AAB368CA1F', |
||||
|
'admin': 'admin', |
||||
|
'archive_no': 'YXK-2022-JJ-001 ', |
||||
|
'maintitle': '文书档案001', |
||||
|
'createTime': 1660706815000, |
||||
|
'truth': 0, |
||||
|
'integrity': 1, |
||||
|
'availability': 0, |
||||
|
'safety': 0, |
||||
|
'totalNum': 5, |
||||
|
'successNum': 1, |
||||
|
'errorNum': 0 |
||||
|
}, |
||||
|
{ |
||||
|
'id': '005E76FEC5A2AAB368CA1F2', |
||||
|
'admin': 'admin', |
||||
|
'archive_no': 'YXK-2022-JJ-002 ', |
||||
|
'maintitle': '文书档案001', |
||||
|
'createTime': 1660706815000, |
||||
|
'truth': 0, |
||||
|
'integrity': 1, |
||||
|
'availability': 1, |
||||
|
'safety': 0, |
||||
|
'totalNum': 5, |
||||
|
'successNum': 1, |
||||
|
'errorNum': 0 |
||||
|
} |
||||
|
] |
||||
|
export default { |
||||
|
name: 'FourTestInfo', |
||||
|
components: { }, |
||||
|
mixins: [], |
||||
|
data() { |
||||
|
return { |
||||
|
tableData: [{}, {}], |
||||
|
page: { |
||||
|
page: 1, |
||||
|
size: 10, |
||||
|
total: 0 |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
created() { |
||||
|
|
||||
|
}, |
||||
|
mounted() { |
||||
|
this.tableData = data |
||||
|
}, |
||||
|
methods: { |
||||
|
handleSizeChange(size) { |
||||
|
this.page.size = size |
||||
|
this.page.page = 1 |
||||
|
}, |
||||
|
handleCurrentPage(val) { |
||||
|
this.page.page = val |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang='scss' scoped> |
||||
|
@import "~@/assets/styles/collect-reorganizi.scss"; |
||||
|
</style> |
@ -0,0 +1,81 @@ |
|||||
|
<template> |
||||
|
<!--档案详情-操作记录--> |
||||
|
<div class="fourTest-container"> |
||||
|
<el-table :data="tableData"> |
||||
|
<el-table-column prop="type" label="操作类型" min-width="60" /> |
||||
|
<el-table-column prop="isAgree" label="处理意见" min-width="60" /> |
||||
|
<el-table-column prop="admin" label="处理人" min-width="60" /> |
||||
|
<el-table-column prop="createTime" label="处理时间" min-width="180"> |
||||
|
<template slot-scope="scope"> |
||||
|
<div>{{ scope.row.createTime | parseTime }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="remark" label="备注" min-width="60" /> |
||||
|
</el-table> |
||||
|
<!--分页组件--> |
||||
|
<el-pagination |
||||
|
:current-page="page.page" |
||||
|
:total="page.total" |
||||
|
:page-size="page.size" |
||||
|
:pager-count="5" |
||||
|
layout="total, prev, pager, next, sizes" |
||||
|
@size-change="handleSizeChange" |
||||
|
@current-change="handleCurrentPage" |
||||
|
/> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
const data = [ |
||||
|
{ |
||||
|
'id': '005E76FEC5A2AAB368CA1F', |
||||
|
'admin': 'admin', |
||||
|
'type': '预归档新增', |
||||
|
'isAgree': '同意', |
||||
|
'createTime': 1660706815000, |
||||
|
'remark': '' |
||||
|
}, |
||||
|
{ |
||||
|
'id': '005E76FEC5A2AAB368CA1F2', |
||||
|
'admin': 'admin', |
||||
|
'type': '装盒', |
||||
|
'isAgree': '拒绝', |
||||
|
'createTime': 1660706815000, |
||||
|
'remark': '' |
||||
|
} |
||||
|
] |
||||
|
export default { |
||||
|
name: 'HandleInfo', |
||||
|
components: { }, |
||||
|
mixins: [], |
||||
|
data() { |
||||
|
return { |
||||
|
tableData: [{}, {}], |
||||
|
page: { |
||||
|
page: 1, |
||||
|
size: 10, |
||||
|
total: 0 |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
created() { |
||||
|
|
||||
|
}, |
||||
|
mounted() { |
||||
|
this.tableData = data |
||||
|
}, |
||||
|
methods: { |
||||
|
handleSizeChange(size) { |
||||
|
this.page.size = size |
||||
|
this.page.page = 1 |
||||
|
}, |
||||
|
handleCurrentPage(val) { |
||||
|
this.page.page = val |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang='scss' scoped> |
||||
|
@import "~@/assets/styles/collect-reorganizi.scss"; |
||||
|
</style> |
@ -1,170 +0,0 @@ |
|||||
<template> |
|
||||
<div> |
|
||||
<!--上传组件--> |
|
||||
<form enctype="multipart/form-data"> |
|
||||
<input id="fileInput" type="file" name="fileInput"> |
|
||||
<input type="button" value="计算文件MD5" @click="calculateFileMD5()"> |
|
||||
<input type="button" value="上传" @click="uploadFile()"> |
|
||||
<input type="button" value="检测文件完整性" @click="checkFile()"> |
|
||||
</form> |
|
||||
<p> |
|
||||
文件MD5: |
|
||||
<span id="fileMd5" /> |
|
||||
</p> |
|
||||
<p> |
|
||||
上传结果: |
|
||||
<span id="uploadResult" /> |
|
||||
</p> |
|
||||
<p> |
|
||||
检测文件完整性: |
|
||||
<span id="checkFileRes" /> |
|
||||
</p> |
|
||||
</div> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import { getToken } from '@/utils/auth' |
|
||||
import { mapGetters } from 'vuex' |
|
||||
import axios from 'axios' |
|
||||
import SparkMD5 from 'spark-md5' |
|
||||
|
|
||||
export default { |
|
||||
data() { |
|
||||
return { |
|
||||
chunkSize: 1 * 1024 * 1024, |
|
||||
fileMd5: null |
|
||||
} |
|
||||
}, |
|
||||
computed: { |
|
||||
...mapGetters([ |
|
||||
'baseApi' |
|
||||
]) |
|
||||
}, |
|
||||
methods: { |
|
||||
// 每片的大小 |
|
||||
calculateFileMD5() { |
|
||||
const fileMd5Span = document.getElementById('fileMd5') |
|
||||
const fileInput = document.getElementById('fileInput') |
|
||||
const file = fileInput.files[0] |
|
||||
console.log('file', file) |
|
||||
this.getFileMd5(file).then((md5) => { |
|
||||
console.log(md5) |
|
||||
console.log(md5._buff) |
|
||||
this.fileMd5 = md5._buff |
|
||||
fileMd5Span.innerHTML = md5._buff |
|
||||
}) |
|
||||
}, |
|
||||
uploadFile() { |
|
||||
const fileInput = document.getElementById('fileInput') |
|
||||
const file = fileInput.files[0] |
|
||||
console.log(file) |
|
||||
this.getFileMd5(file) |
|
||||
if (!file) return |
|
||||
if (!this.fileMd5) return |
|
||||
// 获取到文件 |
|
||||
const fileArr = this.sliceFile(file) |
|
||||
console.log(fileArr) |
|
||||
// 保存文件名称 |
|
||||
const fileName = file.name |
|
||||
|
|
||||
fileArr.forEach((e, i) => { |
|
||||
// 创建formdata对象 |
|
||||
const data = new FormData() |
|
||||
data.append('totalNumber', fileArr.length) |
|
||||
data.append('chunkSize', this.chunkSize) |
|
||||
data.append('chunkNumber', i) |
|
||||
data.append('md5', this.fileMd5) |
|
||||
data.append('file', new File([e], fileName)) |
|
||||
this.upload(data) |
|
||||
}) |
|
||||
console.log(fileArr) |
|
||||
}, |
|
||||
|
|
||||
/** |
|
||||
* 计算文件md5值 |
|
||||
*/ |
|
||||
getFileMd5(file) { |
|
||||
return new Promise((resolve, reject) => { |
|
||||
const fileReader = new FileReader() |
|
||||
const sparkMd5 = new SparkMD5.ArrayBuffer() |
|
||||
console.log('sparkMd5', sparkMd5) |
|
||||
console.log('fileReader', fileReader) |
|
||||
fileReader.onload = function(event) { |
|
||||
console.log(event.target.result) |
|
||||
const fileMd5 = sparkMd5.append(event.target.result) |
|
||||
console.log(fileMd5) |
|
||||
resolve(fileMd5) |
|
||||
} |
|
||||
fileReader.readAsArrayBuffer(file) |
|
||||
}) |
|
||||
}, |
|
||||
upload(data) { |
|
||||
const uploadResult = document.getElementById('uploadResult') |
|
||||
axios.post(this.baseApi + '/api/collect/uploadBig', data, { |
|
||||
headers: { |
|
||||
'Authorization': getToken() |
|
||||
} |
|
||||
}).then((res) => { |
|
||||
console.log(res) |
|
||||
console.log(data.get('chunkNumber')) |
|
||||
if (res.data.code === 200) { |
|
||||
uploadResult.append('上传成功分片:' + data.get('chunkNumber') + '\t') |
|
||||
} else { |
|
||||
uploadResult.innerHTML = '上传失败' |
|
||||
} |
|
||||
}).catch(function(error) { |
|
||||
console.log(error) |
|
||||
}) |
|
||||
}, |
|
||||
checkFile() { |
|
||||
var checkFileRes = document.getElementById('checkFileRes') |
|
||||
const data = new FormData() |
|
||||
data.append('md5', this.fileMd5) |
|
||||
axios.post(this.baseApi + '/api/collect/checkFile', data, { |
|
||||
headers: { |
|
||||
'Authorization': getToken() |
|
||||
} |
|
||||
}).then((res) => { |
|
||||
console.log(res) |
|
||||
if (res.data.code === 200) { |
|
||||
checkFileRes.innerHTML = '检测文件完整性成功:' + res |
|
||||
} else { |
|
||||
checkFileRes.innerHTML = '检测文件完整性失败' |
|
||||
} |
|
||||
}).catch(function(error) { |
|
||||
console.log(error) |
|
||||
}) |
|
||||
}, |
|
||||
|
|
||||
sliceFile(file) { |
|
||||
const chunks = [] |
|
||||
let start = 0 |
|
||||
let end |
|
||||
console.log(this.chunkSize) |
|
||||
while (start < file.size) { |
|
||||
end = Math.min(start + this.chunkSize, file.size) |
|
||||
console.log('end', end) |
|
||||
chunks.push(file.slice(start, end)) |
|
||||
console.log('chunks', chunks) |
|
||||
start = end |
|
||||
} |
|
||||
return chunks |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
|
|
||||
<style lang="scss" scoped> |
|
||||
.upload-demo{ |
|
||||
position: relative; |
|
||||
display: flex; |
|
||||
justify-content: center; |
|
||||
width: 120px; |
|
||||
margin: 20px 0 30px 0; |
|
||||
.el-progress{ |
|
||||
position: absolute; |
|
||||
left: 0; |
|
||||
bottom: -20px; |
|
||||
} |
|
||||
} |
|
||||
</style> |
|