Browse Source

收集库

master
xuhuajiao 1 year ago
parent
commit
861a5688d9
  1. 32
      src/api/collect/collect.js
  2. 18
      src/utils/upload.js
  3. 5
      src/views/collectReorganizi/collectionLibrary/module/archivesInfo/index.vue
  4. 2
      src/views/collectReorganizi/collectionLibrary/module/blukEditing/index.vue
  5. 113
      src/views/collectReorganizi/collectionLibrary/module/bulkImport/index.vue
  6. 61
      src/views/collectReorganizi/collectionLibrary/module/collectHeader.vue

32
src/api/collect/collect.js

@ -99,10 +99,37 @@ export function FetchDeleteArchivesFile(data) {
})
}
// 批量导入-导出模板
export function FetchExportTemplate(params) {
return request({
url: 'api/collect/exportTemplate',
method: 'get',
params
})
}
// 批量导入-导入
export function FetchBatchImport(data) {
return request({
url: 'api/collect/batchImport',
method: 'post',
data
})
}
// 批量修改
export function FetchBatchUpdate(data) {
return request({
url: '/api/collect/batchUpdate',
url: 'api/collect/batchUpdate',
method: 'post',
data
})
}
// 档号更新
export function FetchUpdateArchivesNo(data) {
return request({
url: 'api/collect/updateArchivesNo',
method: 'post',
data
})
@ -120,5 +147,6 @@ export default {
FetchRemoveArchivesSingle,
FetchAddArchivesFile,
FetchDeleteArchivesFile,
FetchBatchUpdate
FetchBatchUpdate,
FetchUpdateArchivesNo
}

18
src/utils/upload.js

@ -10,7 +10,22 @@ export function upload(api, file) {
return axios.post(api, data, config)
}
// 档案上传附件
// 收集库 - 批量导入
export function BatchImport(api, params) {
var data = new FormData()
data.append('file', params.file)
data.append('categoryId', params.categoryId)
data.append('categoryLevel', params.categoryLevel)
data.append('replicated', params.replicated)
const config = {
headers: {
'Authorization': getToken()
}
}
return axios.post(api, data, config)
}
// 收集库 - 原文上传
export function archivesUpload(api, file, categoryId) {
var data = new FormData()
// data.append('files', file) // 之前
@ -47,3 +62,4 @@ export function modelUpload(api, file, name) {
}
return axios.post(api, data, config)
}

5
src/views/collectReorganizi/collectionLibrary/module/archivesInfo/index.vue

@ -215,12 +215,13 @@ export default {
.base-info,
.metadata-cont{
background-color: #F6F8FC;
overflow: hidden;
overflow-y: scroll;
}
//
.base-info{
padding: 20px 0;
overflow: hidden;
overflow-y: scroll;
.base-info-item{
display: flex;
flex-direction: row;

2
src/views/collectReorganizi/collectionLibrary/module/blukEditing/index.vue

@ -350,8 +350,8 @@ export default {
}
console.log(params)
FetchBatchUpdate(params).then(res => {
this.bulkEditingVisible = false
this.$emit('close-dialog')
this.handleCloseDialog()
})
} else {
console.log('error submit!!')

113
src/views/collectReorganizi/collectionLibrary/module/bulkImport/index.vue

@ -4,14 +4,15 @@
<div class="setting-dialog">
<div class="bulk-import-item">
<h4 class="bulk-import-title1">下载模板</h4>
<a class="template-name" href="/path/to/file.pdf" download><i class="iconfont icon-xiazai" />文书档案案卷</a>
<!-- <a href="" download></a> -->
<span class="template-name" @click="downloadTemplate"><i class="iconfont icon-xiazai" />{{ selectedCategory.cnName }}</span>
</div>
<div class="bulk-import-item">
<h4 class="bulk-import-title2">上传导入</h4>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-form-item label="上传Excel" prop="file">
<div class="input-import">
<input ref="excelInput" type="file" @change="handleFileExcel">
<input ref="excelInput" type="file" accept=".xlsx" @change="handleFileExcel">
<div class="upload-excel"><i class="iconfont icon-shangchuan2" />选择文件</div>
</div>
<div v-for="item in excelList" :key="item.name" class="file-list">
@ -29,13 +30,13 @@
/>
</el-select>
</el-form-item>
<el-form-item label="重复验证字段" prop="fields">
<el-select v-model="form.fields" multiple placeholder="请选择" style="width: 560px;">
<el-form-item label="重复验证字段" prop="replicated">
<el-select v-model="form.replicated" value-key="id" multiple placeholder="请选择" style="width: 560px;">
<el-option
v-for="item in fieldsOptions"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.id"
:label="item.fieldCnName"
:value="item.fieldName"
/>
</el-select>
</el-form-item>
@ -54,10 +55,33 @@
</template>
<script>
import qs from 'qs'
import { exportFile } from '@/utils/index'
import { mapGetters } from 'vuex'
import { FetchInitCategoryInputFieldByPid } from '@/api/system/category/category'
import { BatchImport } from '@/utils/upload'
export default {
name: 'BulkImport',
components: { },
mixins: [],
props: {
selectedCategory: {
type: Object,
default: function() {
return {}
}
},
collectLevel: {
type: Number,
default: function() {
return null
}
},
selections: {
type: Array,
default: () => []
}
},
data() {
return {
//
@ -69,9 +93,9 @@ export default {
]
},
form: {
file: '',
type: '',
fields: []
file: null,
type: '追加',
replicated: []
},
excelList: [],
typeOptions: [
@ -80,37 +104,77 @@ export default {
label: '追加'
}
],
fieldsOptions: [
{
value: '字段1',
label: '字段1'
}
]
fieldsOptions: [],
fileNames: '', // - name
formatType: '', // - type
postfix: '', // -
fileSize: '', // -
filePath: '', // - path
nowDate: '' //
}
},
computed: {
...mapGetters([
'baseApi'
])
},
created() {
},
mounted() {
this.$nextTick(() => {
this.getInitCategoryInputFieldByPid()
})
},
methods: {
getInitCategoryInputFieldByPid() {
const params = {
'categoryId': this.selectedCategory.id,
'categoryLevel': this.collectLevel
}
FetchInitCategoryInputFieldByPid(params).then(data => {
this.fieldsOptions = data
})
},
downloadTemplate() {
const params = {
'categoryId': this.selectedCategory.id,
'categoryLevel': this.collectLevel,
'categoryName': this.selectedCategory.cnName
}
console.log(params)
exportFile(this.baseApi + '/api/collect/exportTemplate?' + qs.stringify(params, { indices: false }))
},
handleFileExcel(event) {
const files = event.target.files
const file = files[0] //
const allowedExtensions = /(\.xlsx)$/i // xlsx
if (!allowedExtensions.exec(file.name)) {
this.$message.warning('只能上传Excel文件!') //
event.target.value = '' //
return false
}
this.form.file = event.target.files[0]
for (let i = 0; i < files.length; i++) {
this.excelList = []
this.excelList.push(files[i])
}
},
onSubmitImport(formName) {
if (this.excelList.length === 0) {
this.$message.error('请先上传Excel')
return false
}
this.$refs[formName].validate((valid) => {
if (valid) {
this.$message('submit!')
const params = {
'categoryId': this.selectedCategory.id,
'categoryLevel': this.collectLevel,
'file': this.form.file,
'replicated': this.form.replicated.join(',')
}
console.log(params)
BatchImport(this.baseApi + '/api/collect/batchImport', params).then(res => {
console.log(res)
if (res.data.code !== 500) {
this.$message.error('批量导入成功')
} else {
this.$message.error('批量导入失败')
}
})
} else {
console.log('error submit!!')
return false
@ -181,6 +245,7 @@ export default {
font-size: 14px;
line-height: 30px;
color: #0348F3;
cursor: pointer;
i{
font-size: 12px;
}

61
src/views/collectReorganizi/collectionLibrary/module/collectHeader.vue

@ -70,9 +70,9 @@
<el-menu-item v-if="(isTitleType === 3 && selectedCategory.arrangeType === 2) && activeIndex === 0" index="2-3" @click="handleAdjustment('anjuan')">案卷顺序调整</el-menu-item>
<el-menu-item v-if="isTitleType === 3 && activeIndex === 0 && selectedCategory.arrangeType !== 1 " index="2-12" @click="handleJnSeqAdjustment">卷内顺序调整</el-menu-item>
<el-menu-item v-if="isTitleType === 3 && selectedCategory.arrangeType === 1" index="2-3" @click="handleAdjustment('file')">文件顺序调整</el-menu-item>
<el-menu-item v-if="isTitleType !== 2 && !(isTitleType === 3 && (selectedCategory.arrangeType === 1|| selectedCategory.arrangeType === 2) && activeIndex === 1)" index="2-4" @click="handleFileNumberUpdate">档号更新</el-menu-item>
<el-menu-item v-if="isTitleType !== 2 && !(isTitleType === 3 && (selectedCategory.arrangeType === 1|| selectedCategory.arrangeType === 2) && activeIndex === 1) && isTitleType !== 4" index="2-4" @click="handleFileNumberUpdate(0)">档号更新</el-menu-item>
<!-- 案卷 -->
<el-menu-item v-if="isTitleType === 3 && activeIndex === 0 && selectedCategory.arrangeType !== 1 " index="2-5" @click="handleFileNumberUpdate">卷内档号更新</el-menu-item>
<el-menu-item v-if="isTitleType === 3 && activeIndex === 0 && selectedCategory.arrangeType !== 1 " index="2-5" @click="handleFileNumberUpdate(1)">卷内档号更新</el-menu-item>
<el-menu-item v-if="isTitleType === 3 && activeIndex === 0 && selectedCategory.arrangeType !== 1" index="2-6" @click="handleUncoil">拆卷</el-menu-item>
<el-menu-item v-if="isTitleType === 3 && activeIndex === 0 && selectedCategory.arrangeType !== 1" index="2-7" @click="handleCombineFile">合卷</el-menu-item>
<el-menu-item v-if="isTitleType === 3 && selectedCategory.arrangeType !== 1" index="2-8" @click="handleInsertFile">插件</el-menu-item>
@ -170,26 +170,12 @@
<!-- 原文上传 -->
<UploadOriginal ref="uploadOriginalRef" :selected-category="selectedCategory" :arc-id="arcId" @close-dialog="closeDialog" />
<!-- 批量导入 -->
<BlukImport ref="blukImportRef" />
<BlukImport ref="blukImportRef" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" @close-dialog="closeDialog" />
<!-- 批量修改 -->
<BlukEditing ref="blukEditingRef" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" @close-dialog="closeDialog" />
<!-- 档案调整 -->
<FileNumberAdjustment ref="fileNumberAdjustmentRef" :selected-category="selectedCategory" :collect-level="collectLevel" />
<!-- 档号更新 -->
<el-dialog class="tip-dialog" title="档号更新" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="updateVisible">
<div class="setting-dialog">
<div class="tip-content">
<p class="tipMsg">此操作将会自动重新生成档号</p>
<span>你是否还要继续?</span>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="updateVisible = false">取消</el-button>
<el-button type="primary" @click.native="handleUpdateConfirm">确定</el-button>
</div>
</div>
</el-dialog>
<!-- 卷内顺序调整 -->
<FileSeqAdjustment ref="fileSeqAdjustmentRef" :selected-category="selectedCategory" />
@ -314,7 +300,7 @@
import CRUD, { crud } from '@crud/crud'
import { collectionLibraryCrud } from '../mixins/index'
import { FetchInitCategoryInputFieldByPid } from '@/api/system/category/category'
import { FetchDetailsById, collectDel, FetchRemoveArchivesSingle, FetchDeleteArchivesFile } from '@/api/collect/collect'
import { FetchDetailsById, collectDel, FetchRemoveArchivesSingle, FetchDeleteArchivesFile, FetchUpdateArchivesNo } from '@/api/collect/collect'
import { FetchArchivesClassTree } from '@/api/system/archivesClass'
import { FetchDictionaryTree } from '@/api/system/dict'
import Treeselect from '@riophae/vue-treeselect'
@ -382,7 +368,6 @@ export default {
delAllLoading: false,
deleteVisible: false,
moveVisible: false,
updateVisible: false,
uncoilVisible: false,
filingVisible: false,
exportVisible: false,
@ -777,7 +762,7 @@ export default {
// /
handleAdjustment(type) {
if (this.selections.length < 2) {
this.$message('请选择多个案卷后进行操作!')
this.$message('请选择多个' + (type === 'file' ? '文件' : '案卷') + '后进行操作!')
return false
}
if (type === 'anjuan') {
@ -805,15 +790,41 @@ export default {
this.$refs.fileSeqAdjustmentRef.adjustmentVisible = true
},
//
handleFileNumberUpdate() {
handleFileNumberUpdate(type) {
if (this.selections.length === 0) {
this.$message('您还未勾选需要操作的条目,请先确认!')
return false
}
this.updateVisible = true
},
handleUpdateConfirm() {
this.updateVisible = false
this.$confirm('此操作将会自动重新生成档号' + '<span>你是否还要继续?</span>', '提示', {
confirmButtonText: '继续',
cancelButtonText: '取消',
type: 'warning',
dangerouslyUseHTMLString: true
}).then(() => {
if (type === 0) {
const archivesIds = []
this.selections.forEach(val => {
archivesIds.push(val.id)
})
const params = {
'categoryId': this.selectedCategory.id,
'categoryLevel': this.collectLevel,
'archivesIds': archivesIds
}
console.log(params)
FetchUpdateArchivesNo(params).then((res) => {
if (res.code !== 500) {
this.crud.notify('档号更新成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.handleSearch(this.collectLevel)
} else {
this.crud.notify(res.message, CRUD.NOTIFICATION_TYPE.ERROR)
}
}).catch(err => {
console.log(err)
})
}
}).catch(() => {
})
},
//
handleUncoil() {

Loading…
Cancel
Save