Browse Source

管理库/bug修复

master
xuhuajiao 1 year ago
parent
commit
38785d3eb1
  1. 37
      src/api/archivesManage/library.js
  2. 11
      src/api/system/fonds.js
  3. 2
      src/assets/styles/archives-manage.scss
  4. 109
      src/views/archiveKeeping/caseManage/caseList/index.vue
  5. 26
      src/views/archiveKeeping/caseManage/caseList/module/form.vue
  6. 2
      src/views/archiveKeeping/caseManage/caseList/module/openCaseDlg.vue
  7. 51
      src/views/archiveKeeping/caseManage/module/caseLog.vue
  8. 4
      src/views/archivesManage/managementLibrary/anjuan/tableList.vue
  9. 11
      src/views/archivesManage/managementLibrary/file/index.vue
  10. 4
      src/views/archivesManage/managementLibrary/juannei/index.vue
  11. 4
      src/views/archivesManage/managementLibrary/mixins/index.js
  12. 15
      src/views/archivesManage/managementLibrary/module/archivesInfo/index.vue
  13. 34
      src/views/archivesManage/managementLibrary/module/collectHeader.vue
  14. 126
      src/views/archivesManage/managementLibrary/module/handOverForm.vue
  15. 15
      src/views/archivesManage/managementLibrary/module/offLineHandover/index.vue
  16. 57
      src/views/archivesManage/managementLibrary/module/onlineHandover/index.vue
  17. 8
      src/views/archivesManage/managementLibrary/module/packingBox/index.vue
  18. 2
      src/views/archivesManage/managementLibrary/module/print/index.vue
  19. 9
      src/views/archivesManage/managementLibrary/module/uploadFile/index.vue
  20. 2
      src/views/archivesManage/managementLibrary/project/index.vue
  21. 9
      src/views/collectReorganizi/collectionLibrary/file/index.vue
  22. 3
      src/views/collectReorganizi/collectionLibrary/module/archivesFilling/index.vue
  23. 15
      src/views/collectReorganizi/collectionLibrary/module/archivesInfo/index.vue
  24. 9
      src/views/collectReorganizi/collectionLibrary/module/uploadFile/index.vue
  25. 14
      src/views/components/archivesDetail/juannei.vue
  26. 9
      src/views/components/archivesDetail/uploadFile/index.vue
  27. 36
      src/views/components/category/PreviewForm.vue
  28. 10
      src/views/prearchiveLibrary/index.vue
  29. 7
      src/views/prearchiveLibrary/module/batchFile.vue
  30. 9
      src/views/prearchiveLibrary/module/detail.vue

37
src/api/archivesManage/library.js

@ -1,23 +1,42 @@
import request from '@/utils/request' import request from '@/utils/request'
import qs from 'qs' import qs from 'qs'
// 根据门类父id获取卷内列表列
export function FetchInitCategoryViewTable(params) {
export function FetchInitContorlView(params) {
return request({ return request({
url: 'api/collect/initCategoryViewTable',
method: 'get',
params
url: 'api/control/initCategoryView' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
}) })
} }
export function FetchInitContorlView(params) {
// 获取打印数据
export function FetchPrintData(params) {
return request({ return request({
url: 'api/control/initCategoryView' + '?' + qs.stringify(params, { indices: false }),
url: 'api/control/getPrintData' + '?' + qs.stringify(params, { indices: false }),
method: 'get' method: 'get'
}) })
} }
// 进入流程
export function FetchIntoFlowBusiness(data) {
return request({
url: 'api/control/intoFlowBusiness',
method: 'post',
data: data
})
}
// 档案退回流程确定
export function FetchArchivesReturnConfirm(data) {
return request({
url: 'api/control/archivesReturnConfirm',
method: 'post',
data: data
})
}
export default { export default {
FetchInitCategoryViewTable,
FetchInitContorlView
FetchInitContorlView,
FetchPrintData,
FetchIntoFlowBusiness,
FetchArchivesReturnConfirm
} }

11
src/api/system/fonds.js

@ -71,4 +71,13 @@ export function FetchFondsDetail(params) {
}) })
} }
export default { add, edit, del, FetchInitFondsList, FetchUpdateFondsStatus, FetchDownload, FetchFondsCategory, FetchFondsDetail }
// 根据门类和档案id获取显示全宗
export function FetchInitFondsByCategoryIdAndArchivesId(params) {
return request({
url: 'api/fonds/initFondsByCategoryIdAndArchivesId',
method: 'get',
params
})
}
export default { add, edit, del, FetchInitFondsList, FetchUpdateFondsStatus, FetchDownload, FetchFondsCategory, FetchFondsDetail, FetchInitFondsByCategoryIdAndArchivesId }

2
src/assets/styles/archives-manage.scss

@ -104,7 +104,7 @@
.base-info{ .base-info{
td.el-table__cell .row-state{ td.el-table__cell .row-state{
display: block; display: block;
width: 48px;
width: 60px;
height: 26px; height: 26px;
line-height: 24px; line-height: 24px;
margin: 0 auto; margin: 0 auto;

109
src/views/archiveKeeping/caseManage/caseList/index.vue

@ -16,7 +16,7 @@
/> />
</el-select> </el-select>
<el-input <el-input
v-model="crud.query[inputSelect]"
v-model="typeValue"
size="small" size="small"
clearable clearable
placeholder="请输入搜索关键字" placeholder="请输入搜索关键字"
@ -24,8 +24,9 @@
class="input-prepend filter-item" class="input-prepend filter-item"
@clear="crud.toQuery" @clear="crud.toQuery"
@keyup.enter.native="crud.toQuery" @keyup.enter.native="crud.toQuery"
@input="typeInput"
> >
<el-select slot="prepend" v-model="inputSelect" style="width: 92px">
<el-select slot="prepend" v-model="inputSelect" style="width: 92px" @change="clearInputValue">
<el-option <el-option
v-for="item in options" v-for="item in options"
:key="item.value" :key="item.value"
@ -63,6 +64,7 @@
</div> </div>
<el-table <el-table
ref="table" ref="table"
v-loading="crud.loading"
:data="crud.data" :data="crud.data"
style="width: 100%;" style="width: 100%;"
height="calc(100vh - 346px)" height="calc(100vh - 346px)"
@ -171,22 +173,22 @@ export default {
selectStatus: null, selectStatus: null,
stateOptions: [ stateOptions: [
{ {
value: 1,
value: 0,
label: '空盒' label: '空盒'
}, },
{ {
value: 2,
value: 1,
label: '未入库' label: '未入库'
}, },
{ {
value: 3,
value: 2,
label: '待入库' label: '待入库'
}, },
{ {
value: 4,
value: 3,
label: '已入库' label: '已入库'
}, { }, {
value: 5,
value: 4,
label: '待出库' label: '待出库'
} }
], ],
@ -196,7 +198,9 @@ export default {
{ value: 'tid', label: '电子标签' }, { value: 'tid', label: '电子标签' },
{ value: 'barcode', label: '条码' } { value: 'barcode', label: '条码' }
], ],
inputSelect: 'caseCode'
inputSelect: '',
typeValue: '',
typeInputkey: '' // ,typeInputkeyform
} }
}, },
computed: { computed: {
@ -208,9 +212,44 @@ export default {
activeIndex: function(newValue, oldValue) { activeIndex: function(newValue, oldValue) {
} }
}, },
created() {
// select -
this.inputSelect = this.options[0].value
},
mounted() { mounted() {
}, },
methods: { methods: {
typeInput(e) {
this.typeInputkey = this.getDescByValue(
this.inputSelect,
this.options,
'value',
'value'
)
this.crud.query[this.typeInputkey] = e
},
clearInputValue(val) {
this.inputSelect = val
this.typeValue = ''
// ,typeInputkeyform
if (this.typeInputkey) {
delete this.crud.query[this.typeInputkey]
}
},
getDescByValue(inputValue, data, inputKey = 'value', outputKey = 'value') {
let outputValue = ''
if (data && data.length > 0) {
for (let i = 0; i < data.length; i++) {
const item = data[i]
const itemValue = item[inputKey]
if (inputValue + '' === itemValue + '') {
outputValue = item[outputKey]
break
}
}
}
return outputValue
},
getClassByStorageType(row) { getClassByStorageType(row) {
if (row.storageType === 0) { // if (row.storageType === 0) { //
return 'row-state cancel-state' return 'row-state cancel-state'
@ -255,6 +294,48 @@ export default {
}, },
handleCloseDialog(done) { handleCloseDialog(done) {
}, },
handleDel(data) {
const boolDeposit = data.every(item => item.depositNum === 0)
const boolStorage = data.every(item => item.storageType === 0)
if (boolStorage) {
if (boolDeposit) {
this.$confirm('此操作将删除所选数据' + '<span>你是否还要继续?</span>', '提示', {
confirmButtonText: '继续',
cancelButtonText: '取消',
type: 'warning',
dangerouslyUseHTMLString: true
}).then(() => {
const params = data.map(item => {
return item.id
})
caseCurd.del(params).then((res) => {
if (res.code !== 500) {
if (res.doDel.length === 0) {
this.$message.error('删除失败')
} else {
if (res.doDel.length === data.length) {
this.$message.success('全部删除成功')
} else {
this.$message.success('部分删除成功')
}
}
this.crud.refresh()
} else {
this.crud.notify(res.message, CRUD.NOTIFICATION_TYPE.ERROR)
}
}).catch(err => {
console.log(err)
})
}).catch(() => {
})
} else {
this.$message.error('请清空档案盒后再删除!')
}
} else {
this.$message.error('请操作出库并清空档案盒后才可删除盒!')
}
},
// //
getPrintData() { getPrintData() {
const params = { const params = {
@ -325,8 +406,16 @@ export default {
type: 'warning' type: 'warning'
}) })
} else { } else {
this.$refs.openCase.openCaseVisible = true
this.$refs.openCase.caseData = data
this.$confirm('此操作将导出所选数据' + '<span>提示:1.确定拆盒后,当前盒号下绑定的所有档案数据将一并清除;?</span><span>2.若案卷存在多个盒,选择其中一个分盒则自动拆掉该案卷的全部档案盒</span>', '提示', {
confirmButtonText: '继续',
cancelButtonText: '取消',
type: 'warning',
dangerouslyUseHTMLString: true
}).then(() => {
this.$refs.openCase.openCaseVisible = true
this.$refs.openCase.caseData = data
}).catch(() => {
})
} }
} else { } else {
this.msgVisible = true this.msgVisible = true

26
src/views/archiveKeeping/caseManage/caseList/module/form.vue

@ -4,10 +4,14 @@
<span class="dialog-left-bottom" /> <span class="dialog-left-bottom" />
<div class="setting-dialog"> <div class="setting-dialog">
<el-form ref="form" :model="form" inline :rules="rules" size="small" label-width="105px"> <el-form ref="form" :model="form" inline :rules="rules" size="small" label-width="105px">
<el-row>
<el-row class="form-top">
<el-form-item label="盒号" prop="caseCode"> <el-form-item label="盒号" prop="caseCode">
<el-input v-model="form.caseCode" placeholder="请输入" disabled /> <el-input v-model="form.caseCode" placeholder="请输入" disabled />
</el-form-item> </el-form-item>
<div v-if="crud.status.edit === 1" class="form-fixed-status">
<span class="row-state end-state">已装</span>
<span class="row-state end-state">已入</span>
</div>
</el-row> </el-row>
<el-form-item label="盒名称" prop="caseName"> <el-form-item label="盒名称" prop="caseName">
<el-input v-model="form.caseName" placeholder="请输入" /> <el-input v-model="form.caseName" placeholder="请输入" />
@ -81,6 +85,8 @@
v-model="form.packDate" v-model="form.packDate"
type="date" type="date"
placeholder="选择日期" placeholder="选择日期"
align="right"
format="yyyy-MM-dd"
style="width: 225px;" style="width: 225px;"
/> />
</el-form-item> </el-form-item>
@ -92,6 +98,8 @@
v-model="form.checkDate" v-model="form.checkDate"
type="date" type="date"
placeholder="选择日期" placeholder="选择日期"
align="right"
format="yyyy-MM-dd"
style="width: 225px;" style="width: 225px;"
/> />
</el-form-item> </el-form-item>
@ -112,7 +120,7 @@
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button class="auto-gx-btn"><i class="iconfont icon-zidonggengxin" />自动更新</el-button>
<el-button v-if="crud.status.edit === 1" class="auto-gx-btn"><i class="iconfont icon-zidonggengxin" />自动更新</el-button>
<el-button type="text" @click="crud.cancelCU">取消</el-button> <el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU"> <el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">
保存 保存
@ -245,4 +253,18 @@ export default {
::v-deep .dialog-footer{ ::v-deep .dialog-footer{
margin-top: 30px 22px 20px 0 !important; margin-top: 30px 22px 20px 0 !important;
} }
.form-top{
position: relative;
.form-fixed-status{
position: absolute;
right: 26px;
top: 2px;
span{
font-size: 14px;
padding: 0 16px !important;
height: 28px;
line-height: 26px !important;
}
}
}
</style> </style>

2
src/views/archiveKeeping/caseManage/caseList/module/openCaseDlg.vue

@ -1,5 +1,5 @@
<template> <template>
<el-dialog :close-on-click-modal="false" title="拆盒" :visible.sync="openCaseVisible">
<el-dialog append-to-body :close-on-click-modal="false" :modal-append-to-body="false" title="拆盒" :visible.sync="openCaseVisible">
<span class="dialog-right-top" /> <span class="dialog-right-top" />
<span class="dialog-left-bottom" /> <span class="dialog-left-bottom" />
<div class="setting-dialog"> <div class="setting-dialog">

51
src/views/archiveKeeping/caseManage/module/caseLog.vue

@ -16,7 +16,7 @@
/> />
</el-select> </el-select>
<el-input <el-input
v-model="crud.query[inputSelect]"
v-model="typeValue"
size="small" size="small"
clearable clearable
placeholder="请输入搜索关键字" placeholder="请输入搜索关键字"
@ -24,8 +24,9 @@
class="input-prepend filter-item" class="input-prepend filter-item"
@clear="crud.toQuery" @clear="crud.toQuery"
@keyup.enter.native="crud.toQuery" @keyup.enter.native="crud.toQuery"
@input="typeInput"
> >
<el-select slot="prepend" v-model="inputSelect" style="width: 92px">
<el-select slot="prepend" v-model="inputSelect" style="width: 92px" @change="clearInputValue">
<el-option <el-option
v-for="item in options" v-for="item in options"
:key="item.value" :key="item.value"
@ -45,6 +46,7 @@
</div> </div>
<el-table <el-table
ref="table" ref="table"
v-loading="crud.loading"
:data="crud.data" :data="crud.data"
style="width: 100%;" style="width: 100%;"
height="calc(100vh - 346px)" height="calc(100vh - 346px)"
@ -120,10 +122,10 @@ export default {
}, },
data() { data() {
return { return {
selectStatus: 0,
selectStatus: null,
stateOptions: [ stateOptions: [
{ {
value: 0,
value: null,
label: '全部' label: '全部'
}, },
{ {
@ -141,7 +143,9 @@ export default {
{ value: 'tid', label: '电子标签' }, { value: 'tid', label: '电子标签' },
{ value: 'barcode', label: '条码' } { value: 'barcode', label: '条码' }
], ],
inputSelect: 'caseCode'
inputSelect: '',
typeValue: '',
typeInputkey: '' // ,typeInputkeyform
} }
}, },
computed: { computed: {
@ -153,11 +157,46 @@ export default {
activeIndex: function(newValue, oldValue) { activeIndex: function(newValue, oldValue) {
} }
}, },
created() {
// select -
this.inputSelect = this.options[0].value
},
mounted() { mounted() {
}, },
methods: { methods: {
typeInput(e) {
this.typeInputkey = this.getDescByValue(
this.inputSelect,
this.options,
'value',
'value'
)
this.crud.query[this.typeInputkey] = e
},
clearInputValue(val) {
this.inputSelect = val
this.typeValue = ''
// ,typeInputkeyform
if (this.typeInputkey) {
delete this.crud.query[this.typeInputkey]
}
},
getDescByValue(inputValue, data, inputKey = 'value', outputKey = 'value') {
let outputValue = ''
if (data && data.length > 0) {
for (let i = 0; i < data.length; i++) {
const item = data[i]
const itemValue = item[inputKey]
if (inputValue + '' === itemValue + '') {
outputValue = item[outputKey]
break
}
}
}
return outputValue
},
[CRUD.HOOK.beforeRefresh]() { [CRUD.HOOK.beforeRefresh]() {
this.crud.query.storageType = this.selectStatus
this.crud.query.operationType = this.selectStatus
}, },
resetQuery() { resetQuery() {
} }

4
src/views/archivesManage/managementLibrary/anjuan/tableList.vue

@ -9,7 +9,7 @@
:data="anjuanData" :data="anjuanData"
highlight-current-row highlight-current-row
style="width: 100%;" style="width: 100%;"
height="calc(100vh - 352px)"
height="calc(100vh - 364px)"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
:row-key="rowKey" :row-key="rowKey"
@select-all="selectAll" @select-all="selectAll"
@ -81,7 +81,7 @@
</el-table-column> </el-table-column>
<el-table-column v-if="!isRecycle" label="审批锁定" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' "> <el-table-column v-if="!isRecycle" label="审批锁定" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<template slot-scope="scope"> <template slot-scope="scope">
<span :class="['row-state', 'row-warehousing', scope.row.process_status === 1 ? 'state-active' : '' ]">{{ processedStatusText(scope.row.process_status) }}</span>
<span :class="['row-state', 'row-warehousing', scope.row.process_status !== 0 ? 'state-active' : '' ]">{{ processedStatusText(scope.row.process_status) }}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

11
src/views/archivesManage/managementLibrary/file/index.vue

@ -20,7 +20,7 @@
:data="fileData" :data="fileData"
highlight-current-row highlight-current-row
style="width: 100%;" style="width: 100%;"
height="calc(100vh - 352px)"
height="calc(100vh - 364px)"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
:row-key="rowKey" :row-key="rowKey"
@select-all="selectAll" @select-all="selectAll"
@ -35,12 +35,12 @@
<el-table-column prop="file_type" label="格式" min-width="60" align="center" /> <el-table-column prop="file_type" label="格式" min-width="60" align="center" />
<el-table-column prop="file_size" label="大小" min-width="85" align="center"> <el-table-column prop="file_size" label="大小" min-width="85" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ (scope.row.file_size / 1024).toFixed(2) + 'kB' }}
{{ getFileSize(scope.row.file_size) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="file_dpi" label="尺寸" min-width="85" align="center"> <el-table-column prop="file_dpi" label="尺寸" min-width="85" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="!scope.row.file_dpi"> - </div>
<div v-if="!scope.row.file_dpi || scope.row.file_dpi === 'null'"> - </div>
<div v-else> {{ scope.row.file_dpi }} </div> <div v-else> {{ scope.row.file_dpi }} </div>
</template> </template>
</el-table-column> </el-table-column>
@ -157,6 +157,11 @@ export default {
mounted() { mounted() {
}, },
methods: { methods: {
getFileSize(fileSize) {
const fileSizeInKB = (fileSize / 1024).toFixed(2) + 'kB'
const fileSizeInB = fileSize + 'B'
return (fileSize / 1024) <= 0.01 ? fileSizeInB : fileSizeInKB
},
getCommonData(categoryLevel, parentId, type) { getCommonData(categoryLevel, parentId, type) {
this.getViewTable(categoryLevel, parentId, type) this.getViewTable(categoryLevel, parentId, type)
}, },

4
src/views/archivesManage/managementLibrary/juannei/index.vue

@ -18,7 +18,7 @@
:data="junneiData" :data="junneiData"
highlight-current-row highlight-current-row
style="width: 100%;" style="width: 100%;"
height="calc(100vh - 352px)"
height="calc(100vh - 364px)"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
:row-key="rowKey" :row-key="rowKey"
@select-all="selectAll" @select-all="selectAll"
@ -91,7 +91,7 @@
</el-table-column> </el-table-column>
<el-table-column v-if="!isRecycle" label="审批锁定" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' "> <el-table-column v-if="!isRecycle" label="审批锁定" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<template slot-scope="scope"> <template slot-scope="scope">
<span :class="['row-state', 'row-warehousing', scope.row.process_status === 1 ? 'state-active' : '' ]">{{ processedStatusText(scope.row.process_status) }}</span>
<span :class="['row-state', 'row-warehousing', scope.row.process_status !== 0 ? 'state-active' : '' ]">{{ processedStatusText(scope.row.process_status) }}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

4
src/views/archivesManage/managementLibrary/mixins/index.js

@ -1,4 +1,6 @@
import { FetchInitCategoryViewTable, FetchInitContorlView } from '@/api/archivesManage/library'
import { FetchInitCategoryViewTable } from '@/api/collect/collect'
import { FetchInitContorlView } from '@/api/archivesManage/library'
import { crud } from '@crud/crud' import { crud } from '@crud/crud'
export const manageLibraryCrud = { export const manageLibraryCrud = {
mixins: [crud()], mixins: [crud()],

15
src/views/archivesManage/managementLibrary/module/archivesInfo/index.vue

@ -17,11 +17,17 @@
<!-- 基本信息 --> <!-- 基本信息 -->
<div v-if="archivesTabIndex==0" class="base-info item-content"> <div v-if="archivesTabIndex==0" class="base-info item-content">
<el-row> <el-row>
<el-col v-for="(item,index) in archivesDetailsData" :key="index" :span="item.isLine ? 24 : 12" class="base-info-item">
<el-col v-for="(item,index) in filteredArray" :key="index" :span="item.isLine ? 24 : 12" class="base-info-item">
<span>{{ item.fieldCnName }}</span> <span>{{ item.fieldCnName }}</span>
<p :style="{ width: ( item.editLength ? item.editLength+'px' : '' ), flex: ( !item.editLength ? 1 : '' )}">{{ item.context }}</p> <p :style="{ width: ( item.editLength ? item.editLength+'px' : '' ), flex: ( !item.editLength ? 1 : '' )}">{{ item.context }}</p>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-for="(item,index) in archivesDetailsData" :key="index">
<el-col v-if="item.fieldName === 'is_entity'" :span="24" class="base-info-item">
<span>有无实体</span>
<p style="flex:1">{{ item.context === 1 ? '有' : '无' }}</p>
</el-col>
</el-row>
</div> </div>
<!-- 附件 --> <!-- 附件 -->
<UploadFile v-if="archivesTabIndex==1" ref="uploadFile" class="item-content" :is-upload-detail="false" :selected-category="selectedCategory" :arc-id="arcId" /> <UploadFile v-if="archivesTabIndex==1" ref="uploadFile" class="item-content" :is-upload-detail="false" :selected-category="selectedCategory" :arc-id="arcId" />
@ -88,6 +94,13 @@ export default {
xml_show: null xml_show: null
} }
}, },
computed: {
filteredArray() {
const lastIndex = this.archivesDetailsData.length - 1
return this.archivesDetailsData
.filter((item, index) => index !== lastIndex || item.fieldName !== 'is_entity')
}
},
created() { created() {
}, },
mounted() { mounted() {

34
src/views/archivesManage/managementLibrary/module/collectHeader.vue

@ -145,13 +145,13 @@
<!-- 装盒 / 分卷装盒 --> <!-- 装盒 / 分卷装盒 -->
<PackingBox ref="packingBox" :selected-category="selectedCategory" :selections="selections" :total-sum-all="totalSumAll" @close-dialog="closeDialog" /> <PackingBox ref="packingBox" :selected-category="selectedCategory" :selections="selections" :total-sum-all="totalSumAll" @close-dialog="closeDialog" />
<!-- 在线移交 --> <!-- 在线移交 -->
<OnlineHandover ref="onlineHandover" :selected-category="selectedCategory" :selections="selections" @close-dialog="closeDialog" />
<OnlineHandover ref="onlineHandover" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" :total-sum-all="totalSumAll" @close-dialog="closeDialog" />
<!-- 离线移交 --> <!-- 离线移交 -->
<OffLineHandover ref="offLineHandover" :selected-category="selectedCategory" :selections="selections" @close-dialog="closeDialog" />
<OffLineHandover ref="offLineHandover" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" :total-sum-all="totalSumAll" @close-dialog="closeDialog" />
<!-- 导出zip --> <!-- 导出zip -->
<ExportZip ref="exportZip" :selected-category="selectedCategory" :selections="selections" @close-dialog="closeDialog" /> <ExportZip ref="exportZip" :selected-category="selectedCategory" :selections="selections" @close-dialog="closeDialog" />
<!-- 开放审核 / 销毁鉴定 --> <!-- 开放审核 / 销毁鉴定 -->
<HandOverForm ref="formModule" :selected-category="selectedCategory" :selections="selections" @close-dialog="closeDialog" />
<HandOverForm ref="formModule" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" @close-dialog="closeDialog" />
<!-- 打印 --> <!-- 打印 -->
<Print ref="printRef" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" @close-dialog="closeDialog" /> <Print ref="printRef" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" @close-dialog="closeDialog" />
@ -575,7 +575,6 @@ export default {
handlerArchivesSubmit() { handlerArchivesSubmit() {
this.$refs.previewForm.submitForm('addOrUpdateForm', this.selectedCategory.id,) this.$refs.previewForm.submitForm('addOrUpdateForm', this.selectedCategory.id,)
}, },
// -
handleClose(done) { handleClose(done) {
this.formVisible = false this.formVisible = false
done() done()
@ -629,7 +628,7 @@ export default {
'categoryLevel': this.collectLevel, 'categoryLevel': this.collectLevel,
'archivesIds': archivesIds 'archivesIds': archivesIds
} }
exportFile(this.baseApi + '/api/collect/exportDate?' + qs.stringify(params, { indices: false }))
exportFile(this.baseApi + '/api/control/exportDate?' + qs.stringify(params, { indices: false }))
}).catch(() => { }).catch(() => {
}) })
}, },
@ -637,6 +636,17 @@ export default {
handlePrint() { handlePrint() {
if (this.selections.length === 0) { if (this.selections.length === 0) {
this.$refs.printRef.form.printRange = '当页条目' this.$refs.printRef.form.printRange = '当页条目'
let currentTableData = []
if (this.collectLevel === 2) {
currentTableData = this.parentsData.$refs.anjuanEle.$refs.ajContent.$refs.tableList.anjuanData
} else if (this.collectLevel === 3) {
if (this.isTitleType === 3) {
currentTableData = this.parentsData.$refs.anjuanEle.$refs.ajContent.$refs.tableList.anjuanData
} else {
currentTableData = this.parentsData.$refs.juanneiEle.junneiData
}
}
this.$refs.printRef.currentTable = JSON.parse(JSON.stringify(currentTableData))
} else { } else {
this.$refs.printRef.form.printRange = '勾选条目' this.$refs.printRef.form.printRange = '勾选条目'
} }
@ -776,7 +786,9 @@ export default {
this.$message('您还未勾选需要操作的条目,请先确认!') this.$message('您还未勾选需要操作的条目,请先确认!')
return false return false
} }
this.$refs.onlineHandover.handOverFileCategory = this.parentsData.listCategory
this.$refs.onlineHandover.onlineHandoverVisible = true this.$refs.onlineHandover.onlineHandoverVisible = true
this.getTotalSumAll()
}, },
// 线 // 线
handleOffLineHandover() { handleOffLineHandover() {
@ -784,7 +796,9 @@ export default {
this.$message('您还未勾选需要操作的条目,请先确认!') this.$message('您还未勾选需要操作的条目,请先确认!')
return false return false
} }
this.$refs.offLineHandover.offLineHandoverVisible = true this.$refs.offLineHandover.offLineHandoverVisible = true
this.getTotalSumAll()
}, },
// zip // zip
handleExportZip() { handleExportZip() {
@ -806,15 +820,23 @@ export default {
type: 'warning', type: 'warning',
dangerouslyUseHTMLString: true dangerouslyUseHTMLString: true
}).then(() => { }).then(() => {
console.log('subimit')
this.$refs.formModule.overType = 2
this.$refs.formModule.overDetialTitle = '退回审核-流程'
this.$refs.formModule.overDetialVisible = true
}).catch(() => { }).catch(() => {
}) })
}, },
// / // /
handleJD(type) { handleJD(type) {
if (this.selections.length === 0) {
this.$message('您还未勾选需要操作的条目,请先确认!')
return false
}
if (type === 0) { if (type === 0) {
this.$refs.formModule.overType = 3
this.$refs.formModule.overDetialTitle = '开放审核-流程' this.$refs.formModule.overDetialTitle = '开放审核-流程'
} else { } else {
this.$refs.formModule.overType = 4
this.$refs.formModule.overDetialTitle = '销毁鉴定-流程' this.$refs.formModule.overDetialTitle = '销毁鉴定-流程'
} }
this.$refs.formModule.overDetialVisible = true this.$refs.formModule.overDetialVisible = true

126
src/views/archivesManage/managementLibrary/module/handOverForm.vue

@ -1,5 +1,5 @@
<template> <template>
<el-dialog class="detail-dialog" :title="overDetialTitle" :visible.sync="overDetialVisible" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :before-close="handleClose">
<el-dialog class="detail-dialog" :title="overDetialTitle" :visible.sync="overDetialVisible" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :before-close="handleClose" @opened="opened">
<div class="setting-dialog"> <div class="setting-dialog">
<div class="detail-tab tab-content"> <div class="detail-tab tab-content">
<ul class="tab-nav" style="padding: 0;"> <ul class="tab-nav" style="padding: 0;">
@ -20,23 +20,11 @@
<el-form-item label="申请人部门" prop="dept"> <el-form-item label="申请人部门" prop="dept">
<el-input v-model="form.dept" style="width: 280px;" disabled /> <el-input v-model="form.dept" style="width: 280px;" disabled />
</el-form-item> </el-form-item>
<el-form-item label="申请理由" prop="remark">
<el-input v-model="form.remark" type="textarea" style="width: 660px;" :rows="4" />
<el-form-item label="申请理由" prop="remarks">
<el-input v-model="form.remarks" type="textarea" style="width: 660px;" :rows="4" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table
ref="table"
:data="tableData"
style="min-width: 100%"
height="300"
>
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="fonds" label="所属全宗" min-width="80" align="center" />
<el-table-column prop="fondsName" label="门类名称" min-width="120" align="center" />
<el-table-column prop="fondsAddr" label="整理方式" min-width="100" align="center" />
<el-table-column prop="fondsAddr" label="项目号/档号" min-width="160" align="center" />
<el-table-column prop="fondsAddr" label="题名" min-width="160" align="center" />
</el-table>
<ArchivesListModule v-if="activeIndex == 0" ref="archivesListModule" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" />
</div> </div>
<div v-if="activeIndex == 1" class="tab-img"> <div v-if="activeIndex == 1" class="tab-img">
<img :src="'data:image/jpeg;base64,'+ srcImg" alt="" :onerror="defaultImg"> <img :src="'data:image/jpeg;base64,'+ srcImg" alt="" :onerror="defaultImg">
@ -50,20 +38,41 @@
</template> </template>
<script> <script>
const data = [{}, {}]
import { FetchFondsDetail } from '@/api/system/fonds'
import { FetchBusinessFlowTitle } from '@/api/collect/collect'
import { FetchIntoFlowBusiness } from '@/api/archivesManage/library'
import { mapGetters } from 'vuex'
import ArchivesListModule from '@/views/components/archivesListModule/index'
import { getCurrentTime } from '@/utils/index'
export default { export default {
name: 'HandOverForm', name: 'HandOverForm',
components: { },
components: { ArchivesListModule },
props: { props: {
selectedCategory: { selectedCategory: {
type: Object, type: Object,
default: function() { default: function() {
return {} return {}
} }
},
collectLevel: {
type: Number,
default: function() {
return null
}
},
selections: {
type: Array,
default: () => []
},
isHandOver: {
type: Boolean,
default: false
} }
}, },
data() { data() {
return { return {
overType: 3,
targetFondsNo: null,
overDetialTitle: '', overDetialTitle: '',
activeIndex: 0, activeIndex: 0,
overDetialVisible: false, overDetialVisible: false,
@ -72,7 +81,8 @@ export default {
date: null, date: null,
applicant: null, applicant: null,
dept: null, dept: null,
remark: null
remarks: null,
fondsNo: null
}, },
rules: { rules: {
title: [ title: [
@ -83,10 +93,34 @@ export default {
srcImg: null srcImg: null
} }
}, },
computed: {
...mapGetters([
'user',
'baseApi'
])
},
created() { created() {
this.tableData = data
}, },
methods: { methods: {
opened() {
if (this.activeIndex === 0) {
this.form.applicant = this.user.username
this.form.dept = this.user.dept.deptsName
this.form.date = getCurrentTime().split(' ')[0]
this.getFondsDetail()
this.$refs.archivesListModule.getViewTable()
}
},
getFondsDetail() {
FetchFondsDetail({ id: this.user.fonds.id }).then((res) => {
this.form.fondsNo = res.fondsNo
if (res.fondsNo) {
this.getBusinessFlowTitle()
}
}).catch(err => {
console.log(err)
})
},
changeActiveTab(data) { changeActiveTab(data) {
this.activeIndex = data this.activeIndex = data
if (this.activeIndex === 0) { if (this.activeIndex === 0) {
@ -95,10 +129,59 @@ export default {
console.log('流程图') console.log('流程图')
} }
}, },
getBusinessFlowTitle() {
const params = {
'username': this.user.username,
'fondsNo': this.form.fondsNo,
'businessType': this.isHandOver ? 6 : this.overType
}
FetchBusinessFlowTitle(params).then((res) => {
if (res.code !== 500) {
console.log(res)
this.form.title = res
} else {
this.$message.error('失败')
}
}).catch(err => {
console.log(err)
})
},
submitHandOverForm() { submitHandOverForm() {
this.$refs['form'].validate((valid) => { this.$refs['form'].validate((valid) => {
if (valid) { if (valid) {
alert('submit!')
const archivesIds = []
this.selections.forEach(val => {
archivesIds.push(val.id)
})
const params = {
'title': this.form.title, //
'applicant': this.user.username, //
'archivesIds': archivesIds,
'businessType': this.isHandOver ? 6 : this.overType,
'categoryId': this.selectedCategory.id,
'categoryLevel': this.collectLevel,
'remarks': this.form.remarks,
'fondsNo': this.form.fondsNo, //
'targetFondsNo': this.targetFondsNo ? this.targetFondsNo.fondsId : null//
// 'targetPosition': 'string', //
// 'startPosition': 'string', //
// 'giveStartTime': null, //
// 'giveEndTime': null //
}
console.log(params)
FetchIntoFlowBusiness(params).then((res) => {
if (res.code !== 5001) {
this.$message.success('操作提交成功')
this.$emit('close-dialog')
} else {
// const message = JSON.parse(res.message)
// this.$message.error(message.fail.join(',') + '')
this.$message.error(res.message)
}
this.overDetialVisible = false
}).catch(err => {
console.log(err)
})
} else { } else {
console.log('error submit!!') console.log('error submit!!')
return false return false
@ -107,6 +190,7 @@ export default {
}, },
// dialog - close // dialog - close
handleClose(done) { handleClose(done) {
this.form.title = ''
this.overDetialVisible = false this.overDetialVisible = false
this.$refs['form'].resetFields() this.$refs['form'].resetFields()
done() done()

15
src/views/archivesManage/managementLibrary/module/offLineHandover/index.vue

@ -5,7 +5,7 @@
<div class="selct-data-head"> <div class="selct-data-head">
<p v-if="selectedCategory.arrangeType === 1">数据来源文件<span>{{ selections.length }}</span>条数据</p> <p v-if="selectedCategory.arrangeType === 1">数据来源文件<span>{{ selections.length }}</span>条数据</p>
<!-- totalSumAll --> <!-- totalSumAll -->
<p v-else>数据来源案卷<span>{{ selections.length }}</span>条数据 卷内<span>{{ 111 }}</span>条数据</p>
<p v-else>数据来源案卷<span>{{ selections.length }}</span>条数据 卷内<span>{{ totalSumAll }}</span>条数据</p>
</div> </div>
<el-form ref="offLineForm" :model="offLineForm" :rules="rules" label-width="126px"> <el-form ref="offLineForm" :model="offLineForm" :rules="rules" label-width="126px">
<el-form-item label="导出移交包名称" prop="name"> <el-form-item label="导出移交包名称" prop="name">
@ -18,7 +18,7 @@
<el-button type="primary" @click="submitOffLine">确认</el-button> <el-button type="primary" @click="submitOffLine">确认</el-button>
</div> </div>
</el-dialog> </el-dialog>
<HandOverForm ref="handoverForm" :selected-category="selectedCategory" />
<HandOverForm ref="handoverForm" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" />
</div> </div>
</template> </template>
@ -36,9 +36,19 @@ export default {
return {} return {}
} }
}, },
collectLevel: {
type: Number,
default: function() {
return null
}
},
selections: { selections: {
type: Array, type: Array,
default: () => [] default: () => []
},
totalSumAll: {
type: Number,
default: 0
} }
}, },
data() { data() {
@ -62,6 +72,7 @@ export default {
this.$refs['offLineForm'].validate((valid) => { this.$refs['offLineForm'].validate((valid) => {
if (valid) { if (valid) {
this.offLineHandoverVisible = false this.offLineHandoverVisible = false
this.$refs.handoverForm.overType = 7
this.$refs.handoverForm.overDetialVisible = true this.$refs.handoverForm.overDetialVisible = true
this.$refs.handoverForm.overDetialTitle = '离线移交-流程' this.$refs.handoverForm.overDetialTitle = '离线移交-流程'
} else { } else {

57
src/views/archivesManage/managementLibrary/module/onlineHandover/index.vue

@ -1,33 +1,32 @@
<template> <template>
<div> <div>
<el-dialog title="在线移交" :visible.sync="onlineHandoverVisible" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :before-close="handleClose">
<el-dialog title="在线移交" :visible.sync="onlineHandoverVisible" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :before-close="handleClose" @opened="opened">
<div class="setting-dialog"> <div class="setting-dialog">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;"> <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<div class="head-search" style="margin-bottom: 0;"> <div class="head-search" style="margin-bottom: 0;">
<!-- 搜索 --> <!-- 搜索 -->
<el-input v-model="query.search" clearable size="small" placeholder="请输入全宗号或全宗名称检索" style="width:260px;margin-right: 10px;" class="filter-item" @keyup.enter.native="getListOver" @clear="getListOver" />
<el-input v-model="search" clearable size="small" placeholder="请输入全宗号或全宗名称检索" style="width:260px;margin-right: 10px;" class="filter-item" @keyup.enter.native="getListOver" @clear="getListOver" />
<el-button class="filter-item filter-search" size="mini" type="success" icon="el-icon-search" @click="getListOver">搜索</el-button> <el-button class="filter-item filter-search" size="mini" type="success" icon="el-icon-search" @click="getListOver">搜索</el-button>
</div> </div>
<div class="selct-data-head"> <div class="selct-data-head">
<p v-if="selectedCategory.arrangeType === 1">数据来源文件<span>{{ selections.length }}</span>条数据</p> <p v-if="selectedCategory.arrangeType === 1">数据来源文件<span>{{ selections.length }}</span>条数据</p>
<!-- totalSumAll --> <!-- totalSumAll -->
<p v-else>数据来源案卷<span>{{ selections.length }}</span>条数据 卷内<span>{{ 111 }}</span>条数据</p>
<p v-else>数据来源案卷<span>{{ selections.length }}</span>条数据 卷内<span>{{ totalSumAll }}</span>条数据</p>
</div> </div>
</div> </div>
<el-table <el-table
ref="table" ref="table"
:data="tableData" :data="tableData"
style="min-width: 100%" style="min-width: 100%"
height="calc(100vh - 500px)"
> >
<el-table-column prop="create_date" label="操作" width="90" align="center"> <el-table-column prop="create_date" label="操作" width="90" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button class="handOver-btn" @click="handleHandOver(scope.row)"><i class="iconfont icon-yijiao" />移交</el-button> <el-button class="handOver-btn" @click="handleHandOver(scope.row)"><i class="iconfont icon-yijiao" />移交</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="fonds" label="全宗号" min-width="80" align="center" />
<el-table-column prop="fondsNo" label="全宗号" min-width="80" align="center" />
<el-table-column prop="fondsName" label="全宗名称" min-width="100" align="center" /> <el-table-column prop="fondsName" label="全宗名称" min-width="100" align="center" />
<el-table-column prop="fondsAddr" label="全宗简称" min-width="100" align="center" />
<el-table-column prop="fondsNameAbbr" label="全宗简称" min-width="100" align="center" />
</el-table> </el-table>
<!--分页组件--> <!--分页组件-->
<el-pagination <el-pagination
@ -42,12 +41,12 @@
/> />
</div> </div>
</el-dialog> </el-dialog>
<HandOverForm ref="handoverForm" :selected-category="selectedCategory" />
<HandOverForm ref="handoverForm" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" :is-hand-over="true" />
</div> </div>
</template> </template>
<script> <script>
const data = [{}, {}]
import { FetchInitFondsByCategoryIdAndArchivesId } from '@/api/system/fonds'
import HandOverForm from '../handOverForm' import HandOverForm from '../handOverForm'
export default { export default {
name: 'OnlineHandover', name: 'OnlineHandover',
@ -60,34 +59,62 @@ export default {
return {} return {}
} }
}, },
collectLevel: {
type: Number,
default: function() {
return null
}
},
selections: { selections: {
type: Array, type: Array,
default: () => [] default: () => []
},
totalSumAll: {
type: Number,
default: 0
} }
}, },
data() { data() {
return { return {
query: {
search: ''
},
search: '',
onlineHandoverVisible: false, onlineHandoverVisible: false,
tableData: [], tableData: [],
handOverFileCategory: null,
page: { page: {
page: 1,
page: 0,
size: 10, size: 10,
total: 0 total: 0
} }
} }
}, },
created() { created() {
this.tableData = data
}, },
methods: { methods: {
opened() {
this.getListOver()
},
getListOver() { getListOver() {
this.tableData = []
const params = {
'categoryId': this.selectedCategory.id, // id ( id id)
'archivesId': this.selections[0].id, // id
'search': this.search //
}
FetchInitFondsByCategoryIdAndArchivesId(params).then((res) => {
if (res.code !== 500) {
console.log(res)
this.tableData = res.content
this.page.total = res.totalElements
} else {
this.$message.error('获取数据失败')
}
}).catch(err => {
console.log(err)
})
}, },
handleHandOver(row) { handleHandOver(row) {
this.onlineHandoverVisible = false this.onlineHandoverVisible = false
this.$refs.handoverForm.targetFondsNo = row
this.$refs.handoverForm.overDetialVisible = true this.$refs.handoverForm.overDetialVisible = true
this.$refs.handoverForm.overDetialTitle = '在线移交-流程' this.$refs.handoverForm.overDetialTitle = '在线移交-流程'
}, },
@ -102,6 +129,8 @@ export default {
}, },
// dialog - close // dialog - close
handleClose(done) { handleClose(done) {
this.search = ''
this.tableData = []
this.onlineHandoverVisible = false this.onlineHandoverVisible = false
done() done()
} }

8
src/views/archivesManage/managementLibrary/module/packingBox/index.vue

@ -38,6 +38,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="caseCode" label="盒号" min-width="120" align="center" /> <el-table-column prop="caseCode" label="盒号" min-width="120" align="center" />
<el-table-column prop="caseName" label="盒名称" min-width="120" align="center" />
<el-table-column prop="depositNum" label="已装" min-width="60" align="center" /> <el-table-column prop="depositNum" label="已装" min-width="60" align="center" />
<el-table-column prop="tid" label="TID" min-width="120" align="center" /> <el-table-column prop="tid" label="TID" min-width="120" align="center" />
<el-table-column prop="barcode" label="条形码" min-width="120" align="center" /> <el-table-column prop="barcode" label="条形码" min-width="120" align="center" />
@ -63,7 +64,8 @@
<el-button class="packing-handle-btn iconfont" @click="handlePartParking(scope.row,scope.$index)"><svg-icon icon-class="zhuanghe" class="svg-arc-style" />装盒</el-button> <el-button class="packing-handle-btn iconfont" @click="handlePartParking(scope.row,scope.$index)"><svg-icon icon-class="zhuanghe" class="svg-arc-style" />装盒</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="caseCode" label="盒号" min-width="60" align="center" />
<el-table-column prop="caseCode" label="盒号" min-width="120" align="center" />
<el-table-column prop="caseName" label="盒名称" min-width="120" align="center" />
<el-table-column prop="depositNum" label="已装" min-width="100" align="center" /> <el-table-column prop="depositNum" label="已装" min-width="100" align="center" />
<el-table-column prop="tid" label="TID" min-width="120" align="center" /> <el-table-column prop="tid" label="TID" min-width="120" align="center" />
<el-table-column prop="barcode" label="条形码" min-width="120" align="center" /> <el-table-column prop="barcode" label="条形码" min-width="120" align="center" />
@ -80,7 +82,6 @@
ref="selectBox" ref="selectBox"
class="custom-table" class="custom-table"
:data="selectTableData" :data="selectTableData"
style="width: 100%"
height="calc(100vh/2 - 200px)" height="calc(100vh/2 - 200px)"
> >
<el-table-column prop="create_date" label="操作" align="center"> <el-table-column prop="create_date" label="操作" align="center">
@ -88,7 +89,8 @@
<el-button class="packing-recall-btn iconfont" @click="cancelParking(scope.row,scope.$index)"><svg-icon icon-class="chehui" class="svg-arc-style" />撤销</el-button> <el-button class="packing-recall-btn iconfont" @click="cancelParking(scope.row,scope.$index)"><svg-icon icon-class="chehui" class="svg-arc-style" />撤销</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="caseCode" label="盒号" min-width="60" align="center" />
<el-table-column prop="caseCode" label="盒号" min-width="120" align="center" />
<el-table-column prop="caseName" label="盒名称" min-width="120" align="center" />
<el-table-column prop="depositNum" label="已装" min-width="100" align="center" /> <el-table-column prop="depositNum" label="已装" min-width="100" align="center" />
<el-table-column prop="tid" label="TID" min-width="120" align="center" /> <el-table-column prop="tid" label="TID" min-width="120" align="center" />
<el-table-column prop="barcode" label="条形码" min-width="120" align="center" /> <el-table-column prop="barcode" label="条形码" min-width="120" align="center" />

2
src/views/archivesManage/managementLibrary/module/print/index.vue

@ -46,7 +46,7 @@
<script> <script>
import { FetchPrintData } from '@/api/collect/collect'
import { FetchPrintData } from '@/api/archivesManage/library'
import html2canvas from 'html2canvas' import html2canvas from 'html2canvas'
import printJS from 'print-js' import printJS from 'print-js'
export default { export default {

9
src/views/archivesManage/managementLibrary/module/uploadFile/index.vue

@ -25,12 +25,12 @@
<el-table-column prop="file_type" label="格式" min-width="60" align="center" /> <el-table-column prop="file_type" label="格式" min-width="60" align="center" />
<el-table-column prop="file_size" label="大小" min-width="85" align="center"> <el-table-column prop="file_size" label="大小" min-width="85" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ (scope.row.file_size / 1024).toFixed(2) + 'kB' }}
{{ getFileSize(scope.row.file_size) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="file_dpi" label="分辨率" min-width="120" align="center"> <el-table-column prop="file_dpi" label="分辨率" min-width="120" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="!scope.row.file_dpi"> - </div>
<div v-if="!scope.row.file_dpi || scope.row.file_dpi === 'null'"> - </div>
<div v-else> {{ scope.row.file_dpi }} </div> <div v-else> {{ scope.row.file_dpi }} </div>
</template> </template>
</el-table-column> </el-table-column>
@ -175,6 +175,11 @@ export default {
} }
}, },
methods: { methods: {
getFileSize(fileSize) {
const fileSizeInKB = (fileSize / 1024).toFixed(2) + 'kB'
const fileSizeInB = fileSize + 'B'
return (fileSize / 1024) <= 0.01 ? fileSizeInB : fileSizeInKB
},
// //
async changeFile(e) { async changeFile(e) {
this.file = e.target.files[0] this.file = e.target.files[0]

2
src/views/archivesManage/managementLibrary/project/index.vue

@ -10,7 +10,7 @@
:data="projectData" :data="projectData"
highlight-current-row highlight-current-row
style="width: 100%;" style="width: 100%;"
height="calc(100vh - 352px)"
height="calc(100vh - 364px)"
:row-key="rowKey" :row-key="rowKey"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
@select-all="selectAll" @select-all="selectAll"

9
src/views/collectReorganizi/collectionLibrary/file/index.vue

@ -34,12 +34,12 @@
<el-table-column prop="file_type" label="格式" min-width="60" align="center" /> <el-table-column prop="file_type" label="格式" min-width="60" align="center" />
<el-table-column prop="file_size" label="大小" min-width="85" align="center"> <el-table-column prop="file_size" label="大小" min-width="85" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ (scope.row.file_size / 1024).toFixed(2) + 'kB' }}
{{ getFileSize(scope.row.file_size) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="file_dpi" label="尺寸" min-width="85" align="center"> <el-table-column prop="file_dpi" label="尺寸" min-width="85" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="!scope.row.file_dpi"> - </div>
<div v-if="!scope.row.file_dpi || scope.row.file_dpi === 'null'"> - </div>
<div v-else> {{ scope.row.file_dpi }} </div> <div v-else> {{ scope.row.file_dpi }} </div>
</template> </template>
</el-table-column> </el-table-column>
@ -157,6 +157,11 @@ export default {
mounted() { mounted() {
}, },
methods: { methods: {
getFileSize(fileSize) {
const fileSizeInKB = (fileSize / 1024).toFixed(2) + 'kB'
const fileSizeInB = fileSize + 'B'
return (fileSize / 1024) <= 0.01 ? fileSizeInB : fileSizeInKB
},
getCommonData(categoryLevel, parentId, type) { getCommonData(categoryLevel, parentId, type) {
this.getViewTable(categoryLevel, parentId, type) this.getViewTable(categoryLevel, parentId, type)
}, },

3
src/views/collectReorganizi/collectionLibrary/module/archivesFilling/index.vue

@ -116,7 +116,8 @@ export default {
getBusinessFlowTitle() { getBusinessFlowTitle() {
const params = { const params = {
'username': this.user.username, 'username': this.user.username,
'fondsNo': this.form.fondsNo
'fondsNo': this.form.fondsNo,
'businessType': 1
} }
FetchBusinessFlowTitle(params).then((res) => { FetchBusinessFlowTitle(params).then((res) => {
if (res.code !== 500) { if (res.code !== 500) {

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

@ -17,11 +17,17 @@
<!-- 基本信息 --> <!-- 基本信息 -->
<div v-if="archivesTabIndex==0" class="base-info item-content"> <div v-if="archivesTabIndex==0" class="base-info item-content">
<el-row> <el-row>
<el-col v-for="(item,index) in archivesDetailsData" :key="index" :span="item.isLine ? 24 : 12" class="base-info-item">
<el-col v-for="(item,index) in filteredArray" :key="index" :span="item.isLine ? 24 : 12" class="base-info-item">
<span>{{ item.fieldCnName }}</span> <span>{{ item.fieldCnName }}</span>
<p :style="{ width: ( item.editLength ? item.editLength+'px' : '' ), flex: ( !item.editLength ? 1 : '' )}">{{ item.context }}</p> <p :style="{ width: ( item.editLength ? item.editLength+'px' : '' ), flex: ( !item.editLength ? 1 : '' )}">{{ item.context }}</p>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-for="(item,index) in archivesDetailsData" :key="index">
<el-col v-if="item.fieldName === 'is_entity'" :span="24" class="base-info-item">
<span>有无实体</span>
<p style="flex:1">{{ item.context === 1 ? '有' : '无' }}</p>
</el-col>
</el-row>
</div> </div>
<!-- 附件 --> <!-- 附件 -->
<UploadFile v-if="archivesTabIndex==1" ref="uploadFile" class="item-content" :is-upload-detail="false" :selected-category="selectedCategory" :arc-id="arcId" /> <UploadFile v-if="archivesTabIndex==1" ref="uploadFile" class="item-content" :is-upload-detail="false" :selected-category="selectedCategory" :arc-id="arcId" />
@ -88,6 +94,13 @@ export default {
xml_show: null xml_show: null
} }
}, },
computed: {
filteredArray() {
const lastIndex = this.archivesDetailsData.length - 1
return this.archivesDetailsData
.filter((item, index) => index !== lastIndex || item.fieldName !== 'is_entity')
}
},
created() { created() {
}, },
mounted() { mounted() {

9
src/views/collectReorganizi/collectionLibrary/module/uploadFile/index.vue

@ -25,12 +25,12 @@
<el-table-column prop="file_type" label="格式" min-width="60" align="center" /> <el-table-column prop="file_type" label="格式" min-width="60" align="center" />
<el-table-column prop="file_size" label="大小" min-width="85" align="center"> <el-table-column prop="file_size" label="大小" min-width="85" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ (scope.row.file_size / 1024).toFixed(2) + 'kB' }}
{{ getFileSize(scope.row.file_size) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="file_dpi" label="分辨率" min-width="120" align="center"> <el-table-column prop="file_dpi" label="分辨率" min-width="120" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="!scope.row.file_dpi"> - </div>
<div v-if="!scope.row.file_dpi || scope.row.file_dpi === 'null'"> - </div>
<div v-else> {{ scope.row.file_dpi }} </div> <div v-else> {{ scope.row.file_dpi }} </div>
</template> </template>
</el-table-column> </el-table-column>
@ -176,6 +176,11 @@ export default {
} }
}, },
methods: { methods: {
getFileSize(fileSize) {
const fileSizeInKB = (fileSize / 1024).toFixed(2) + 'kB'
const fileSizeInB = fileSize + 'B'
return (fileSize / 1024) <= 0.01 ? fileSizeInB : fileSizeInKB
},
// //
async changeFile(e) { async changeFile(e) {
this.file = e.target.files[0] this.file = e.target.files[0]

14
src/views/components/archivesDetail/juannei.vue

@ -58,10 +58,15 @@
<el-table-column prop="file_type" label="格式" min-width="60" align="center" /> <el-table-column prop="file_type" label="格式" min-width="60" align="center" />
<el-table-column prop="file_size" label="大小" min-width="85" align="center"> <el-table-column prop="file_size" label="大小" min-width="85" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ (scope.row.file_size / 1024).toFixed(2) + 'kB' }}
{{ getFileSize(scope.row.file_size) }}
</template>
</el-table-column>
<el-table-column prop="file_dpi" label="分辨率" min-width="85" align="center">
<template slot-scope="scope">
<div v-if="!scope.row.file_dpi || scope.row.file_dpi === 'null'"> - </div>
<div v-else> {{ scope.row.file_dpi }} </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="file_dpi" label="分辨率" min-width="85" align="center" />
<el-table-column prop="file_thumbnail" label="缩览图" min-width="60" align="center"> <el-table-column prop="file_thumbnail" label="缩览图" min-width="60" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.file_type === 'jpg' || scope.row.file_type === 'jpeg' || scope.row.file_type === 'png' || scope.row.file_type === 'bmp'|| scope.row.file_type === 'gif'"> <div v-if="scope.row.file_type === 'jpg' || scope.row.file_type === 'jpeg' || scope.row.file_type === 'png' || scope.row.file_type === 'bmp'|| scope.row.file_type === 'gif'">
@ -166,6 +171,11 @@ export default {
mounted() { mounted() {
}, },
methods: { methods: {
getFileSize(fileSize) {
const fileSizeInKB = (fileSize / 1024).toFixed(2) + 'kB'
const fileSizeInB = fileSize + 'B'
return (fileSize / 1024) <= 0.01 ? fileSizeInB : fileSizeInKB
},
getDetial(rowId) { getDetial(rowId) {
const params = { const params = {
// categoryId: this.categoryId, // categoryId: this.categoryId,

9
src/views/components/archivesDetail/uploadFile/index.vue

@ -25,12 +25,12 @@
<el-table-column prop="file_type" label="格式" min-width="60" align="center" /> <el-table-column prop="file_type" label="格式" min-width="60" align="center" />
<el-table-column prop="file_size" label="大小" min-width="85" align="center"> <el-table-column prop="file_size" label="大小" min-width="85" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ (scope.row.file_size / 1024).toFixed(2) + 'kB' }}
{{ getFileSize(scope.row.file_size) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="file_dpi" label="分辨率" min-width="120" align="center"> <el-table-column prop="file_dpi" label="分辨率" min-width="120" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="!scope.row.file_dpi"> - </div>
<div v-if="!scope.row.file_dpi || scope.row.file_dpi === 'null'"> - </div>
<div v-else> {{ scope.row.file_dpi }} </div> <div v-else> {{ scope.row.file_dpi }} </div>
</template> </template>
</el-table-column> </el-table-column>
@ -176,6 +176,11 @@ export default {
} }
}, },
methods: { methods: {
getFileSize(fileSize) {
const fileSizeInKB = (fileSize / 1024).toFixed(2) + 'kB'
const fileSizeInB = fileSize + 'B'
return (fileSize / 1024) <= 0.01 ? fileSizeInB : fileSizeInKB
},
// //
async changeFile(e) { async changeFile(e) {
this.file = e.target.files[0] this.file = e.target.files[0]

36
src/views/components/category/PreviewForm.vue

@ -53,11 +53,11 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-if="isDesFormType === 'prearchiveLibrary'" class="preview-form-bottom">
<el-row v-if="isDesFormType === 'prearchiveLibrary'" class="preview-form-bottom prearch-bottom">
<el-col> <el-col>
<el-form-item label="电子原件" prop="fileOriginal" class="prearch-upload">
<el-form-item label="电子原件" prop="fileOriginal" class="prearch-upload" :rules="[{ required: true, message: '请上传原文',trigger: 'blur' }]">
<el-input <el-input
v-model="fileOriginal"
v-model="addOrUpdateForm['fileOriginal']"
type="text" type="text"
style="width: 446px" style="width: 446px"
readonly readonly
@ -71,7 +71,7 @@
</el-row> </el-row>
<el-row v-if="isDesFormType !== 'prearchiveLibrary' && isDesFormType !== 'mergeFile'" class="preview-form-bottom"> <el-row v-if="isDesFormType !== 'prearchiveLibrary' && isDesFormType !== 'mergeFile'" class="preview-form-bottom">
<el-col v-for="(item,index) in formPreviewData" :key="index"> <el-col v-for="(item,index) in formPreviewData" :key="index">
<el-form-item v-if="item.fieldName === 'is_entity'" label="是否有无实体" :prop="item.fieldName" :rules="[{ required: true, message: '请选择',trigger: 'change' }]" class="pbysical-style">
<el-form-item v-if="item.fieldName === 'is_entity'" label="有无实体" :prop="item.fieldName" :rules="[{ required: true, message: '请选择',trigger: 'change' }]" class="pbysical-style">
<el-radio-group v-model="addOrUpdateForm[item.fieldName]"> <el-radio-group v-model="addOrUpdateForm[item.fieldName]">
<el-radio :label="1"></el-radio> <el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio> <el-radio :label="0"></el-radio>
@ -226,7 +226,8 @@ export default {
}, },
computed: { computed: {
...mapGetters([ ...mapGetters([
'baseApi'
'baseApi',
'user'
]) ])
}, },
watch: { watch: {
@ -731,18 +732,16 @@ export default {
} }
} }
}) })
if (this.archivesType === 'add') {
this.addOrUpdateForm.fonds_affiliation = this.user.fonds.id
}
console.log(this.addOrUpdateForm)
delete this.addOrUpdateForm.id delete this.addOrUpdateForm.id
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
// //
if (this.isDesFormType === 'prearchiveLibrary') { if (this.isDesFormType === 'prearchiveLibrary') {
if (this.fileOriginal === null) {
this.$message({
message: '请上传电子文件',
type: 'error'
})
return false
}
delete this.addOrUpdateForm.fileOriginal
const params = { const params = {
'id': this.arcId, 'id': this.arcId,
'ids': null, 'ids': null,
@ -751,6 +750,7 @@ export default {
'jsonString': JSON.stringify(this.addOrUpdateForm), 'jsonString': JSON.stringify(this.addOrUpdateForm),
'fileJsonString': this.fileJsonString 'fileJsonString': this.fileJsonString
} }
console.log(params)
prearchEdit(params).then(res => { prearchEdit(params).then(res => {
if (res) { if (res) {
this.$message.success(res) this.$message.success(res)
@ -903,7 +903,8 @@ export default {
} }
const arrayUpload = [] const arrayUpload = []
arrayUpload.push(json) arrayUpload.push(json)
this.fileOriginal = this.fileNames
// this.addOrUpdateForm.fileOriginal = this.fileNames
this.$set(this.addOrUpdateForm, 'fileOriginal', this.fileNames)
this.fileJsonString = JSON.stringify(arrayUpload) this.fileJsonString = JSON.stringify(arrayUpload)
}, },
// base64 // base64
@ -1037,6 +1038,15 @@ export default {
padding: 20px 20px 0 20px; padding: 20px 20px 0 20px;
border-top: 1px solid; border-top: 1px solid;
@include preview-border-color; @include preview-border-color;
}
.prearch-bottom{
position: fixed;
bottom: 72px;
left: 0;
background: #fff;
width: 100%;
padding: 20px 0 0 20px;
} }
.prearch-upload{ .prearch-upload{

10
src/views/prearchiveLibrary/index.vue

@ -107,7 +107,7 @@
<span class="dialog-left-bottom" /> <span class="dialog-left-bottom" />
<div class="setting-dialog"> <div class="setting-dialog">
<PreviewForm ref="previewForm" :form-preview-data.sync="formPreviewData" :selected-category="selectedCategory" :parents-id="parentsId" :arc-id="arcId" :is-des-form-type="isDesFormType" :is-disabled="isDisabled" :selected-document="selectedDocument" :is-has-code="isHasCode" @close-dialog="closeDialog" /> <PreviewForm ref="previewForm" :form-preview-data.sync="formPreviewData" :selected-category="selectedCategory" :parents-id="parentsId" :arc-id="arcId" :is-des-form-type="isDesFormType" :is-disabled="isDisabled" :selected-document="selectedDocument" :is-has-code="isHasCode" @close-dialog="closeDialog" />
<div slot="footer" class="dialog-footer">
<div slot="footer" class="dialog-footer" style="margin-top: 85px !important;">
<el-button type="text" @click="closeDialog">取消</el-button> <el-button type="text" @click="closeDialog">取消</el-button>
<el-button type="primary" @click="handlerArchivesSubmit">确定</el-button> <el-button type="primary" @click="handlerArchivesSubmit">确定</el-button>
</div> </div>
@ -258,14 +258,17 @@ export default {
this.formPreviewData = showFiledAll this.formPreviewData = showFiledAll
this.formVisible = true this.formVisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.previewForm.fileOriginal = null
this.$refs.previewForm.addOrUpdateForm.fileOriginal = null
this.$refs.previewForm.fileJsonString = null this.$refs.previewForm.fileJsonString = null
if (type === 'edit') { if (type === 'edit') {
this.$refs.previewForm.archivesType = 'edit'
this.$refs.previewForm.addOrUpdateForm = data.echo this.$refs.previewForm.addOrUpdateForm = data.echo
const fileecho = [] const fileecho = []
fileecho.push(data.fileecho) fileecho.push(data.fileecho)
this.$refs.previewForm.fileOriginal = fileecho[0].file_name
this.$refs.previewForm.addOrUpdateForm.fileOriginal = fileecho[0].file_name
this.$refs.previewForm.fileJsonString = JSON.stringify(fileecho) this.$refs.previewForm.fileJsonString = JSON.stringify(fileecho)
} else {
this.$refs.previewForm.archivesType = 'add'
} }
}) })
}) })
@ -289,6 +292,7 @@ export default {
this.mergeVisible = false this.mergeVisible = false
this.isDesFormType = 'mergeFile' this.isDesFormType = 'mergeFile'
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.previewForm.archivesType = 'add'
this.$refs.previewForm.mergeFileArcIds = this.crud.selections.map(item => item.id) this.$refs.previewForm.mergeFileArcIds = this.crud.selections.map(item => item.id)
this.$refs.previewForm.mergeFileCategory = this.selectedCategoryMerge.id this.$refs.previewForm.mergeFileCategory = this.selectedCategoryMerge.id
}) })

7
src/views/prearchiveLibrary/module/batchFile.vue

@ -121,6 +121,7 @@ import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css' import '@riophae/vue-treeselect/dist/vue-treeselect.css'
// import { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect' // import { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect'
import ScopeModule from './scope' import ScopeModule from './scope'
import { mapGetters } from 'vuex'
export default { export default {
name: 'BatchFile', name: 'BatchFile',
components: { Treeselect, ScopeModule }, components: { Treeselect, ScopeModule },
@ -175,6 +176,11 @@ export default {
isTest: false isTest: false
} }
}, },
computed: {
...mapGetters([
'user'
])
},
watch: { watch: {
selectedDocument: function(newValue, oldValue) { selectedDocument: function(newValue, oldValue) {
this.form.documentName = newValue.cnName this.form.documentName = newValue.cnName
@ -519,6 +525,7 @@ export default {
return item.id return item.id
}) })
const params = { const params = {
'fondsAffiliation': this.user.fonds.id.toString(),
'archivesIds': archivesIds, 'archivesIds': archivesIds,
'documentId': this.selectedDocument.id, 'documentId': this.selectedDocument.id,
'categoryId': this.form.categoryId, 'categoryId': this.form.categoryId,

9
src/views/prearchiveLibrary/module/detail.vue

@ -33,12 +33,12 @@
<el-table-column prop="file_type" label="格式" min-width="60" align="center" /> <el-table-column prop="file_type" label="格式" min-width="60" align="center" />
<el-table-column prop="file_size" label="大小" min-width="85" align="center"> <el-table-column prop="file_size" label="大小" min-width="85" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ (scope.row.file_size / 1024).toFixed(2) + 'kB' }}
{{ getFileSize(scope.row.file_size) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="file_dpi" label="分辨率" min-width="85" align="center"> <el-table-column prop="file_dpi" label="分辨率" min-width="85" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="!scope.row.file_dpi"> - </div>
<div v-if="!scope.row.file_dpi || scope.row.file_dpi === 'null'"> - </div>
<div v-else> {{ scope.row.file_dpi }} </div> <div v-else> {{ scope.row.file_dpi }} </div>
</template> </template>
</el-table-column> </el-table-column>
@ -135,6 +135,11 @@ export default {
mounted() { mounted() {
}, },
methods: { methods: {
getFileSize(fileSize) {
const fileSizeInKB = (fileSize / 1024).toFixed(2) + 'kB'
const fileSizeInB = fileSize + 'B'
return (fileSize / 1024) <= 0.01 ? fileSizeInB : fileSizeInKB
},
getDetial(rowId) { getDetial(rowId) {
const params = { const params = {
documentId: this.selectedDocument.id, documentId: this.selectedDocument.id,

Loading…
Cancel
Save