13 changed files with 806 additions and 43 deletions
-
106src/assets/iconfonts/light/iconfont.css
-
2src/assets/iconfonts/light/iconfont.js
-
175src/assets/iconfonts/light/iconfont.json
-
BINsrc/assets/iconfonts/light/iconfont.ttf
-
BINsrc/assets/iconfonts/light/iconfont.woff
-
BINsrc/assets/iconfonts/light/iconfont.woff2
-
8src/layout/components/Sidebar/index.vue
-
4src/views/archivesMIOD/miodLibrary/index.vue
-
90src/views/archivesMIOD/miodLibrary/module/detail.vue
-
2src/views/archivesMIOD/miodLibrary/treeList.vue
-
376src/views/archivesMIOD/onOffShelfRecord/index.vue
-
84src/views/archivesMIOD/filingCabinet/index.vue
-
2src/views/archivesManage/managementLibrary/module/collectHeader.vue
2
src/assets/iconfonts/light/iconfont.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,376 @@ |
|||
<template> |
|||
<div class="app-container row-container"> |
|||
<div class="head-container"> |
|||
<div class="head-search"> |
|||
<el-tooltip |
|||
class="item" |
|||
effect="dark" |
|||
content="可搜索收文号、题名、借阅者" |
|||
placement="top-start" |
|||
> |
|||
<el-input |
|||
v-model="typeValue" |
|||
size="small" |
|||
clearable |
|||
placeholder="请输入关键字搜索" |
|||
style="width: 280px;" |
|||
class="input-prepend filter-item" |
|||
@clear="crud.toQuery" |
|||
@keyup.enter.native="crud.toQuery" |
|||
@input="typeInput" |
|||
> |
|||
<el-select slot="prepend" v-model="inputSelect" style="width: 92px" @change="clearInputValue"> |
|||
<el-option |
|||
v-for="item in options" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
/> |
|||
</el-select> |
|||
</el-input> |
|||
</el-tooltip> |
|||
<div style="display: flex; justify-content: flex-start; align-items: center;"> |
|||
<p style="margin-right: 10px; font-size: 14px;">开始时间</p> |
|||
<date-range-picker v-model="blurryTimeStart" class="date-item" /> |
|||
</div> |
|||
<div style="display: flex; justify-content: flex-start; align-items: center;"> |
|||
<p style="margin-right: 10px; font-size: 14px;">结束时间</p> |
|||
<date-range-picker v-model="blurryTimeEnd" class="date-item" /> |
|||
</div> |
|||
<el-button class="filter-item filter-search" size="mini" type="success" icon="el-icon-search" @click="crud.toQuery">搜索</el-button> |
|||
<el-button class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery()">重置</el-button> |
|||
</div> |
|||
<!-- <el-button :loading="crud.downloadLoading" :disabled="crud.page.total === 0" size="mini" @click="doExport()"> |
|||
<i class="iconfont icon-daochu" /> |
|||
导出 |
|||
</el-button> --> |
|||
</div> |
|||
<div class="container-wrap"> |
|||
<span class="right-top-line" /> |
|||
<span class="left-bottom-line" /> |
|||
<!-- @selection-change="crud.selectionChangeHandler" --> |
|||
<el-table |
|||
ref="table" |
|||
v-loading="crud.loading" |
|||
class="archives-table" |
|||
:data="crud.data" |
|||
style="width: 100%;" |
|||
height="calc(100vh - 290px)" |
|||
@cell-dblclick="tableDoubleClick" |
|||
> |
|||
<el-table-column prop="op_type" label="操作类型"> |
|||
<template slot-scope="scope"> |
|||
<div> |
|||
<span v-if="scope.row.op_type === 1">上架</span> |
|||
<span v-if="scope.row.op_type === 2">下架</span> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="op_position" label="操作位置" /> |
|||
<el-table-column prop="op_no" label="公文登记号" show-overflow-tooltip /> |
|||
<el-table-column prop="maintitle" label="公文题名" min-width="140" show-overflow-tooltip /> |
|||
<el-table-column prop="details_type" label="文件类型" width="80"> |
|||
<template slot-scope="scope"> |
|||
<el-tag v-if="scope.row.details_type === 1">原件</el-tag> |
|||
<el-tag v-else>复印件</el-tag> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="start_time" label="操作时间" width="160"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.start_time | parseTime }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<pagination v-if="crud.data.length !== 0" /> |
|||
</div> |
|||
<MidoArchivesInfo ref="archivesInfo" :is-shelf-record="true" :is-mido-record="true" :parent-info="parentInfo" :page-type="pageType" /> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import CRUD, { presenter, crud } from '@crud/crud' |
|||
import { FetchDocumentReturn } from '@/api/system/documentArchives' |
|||
import pagination from '@crud/Pagination' |
|||
import DateRangePicker from '@/components/DateRangePicker' |
|||
import MidoArchivesInfo from '@/views/archivesMIOD/miodLibrary/module/detail' |
|||
// import { parseTime } from '@/utils/index' |
|||
import { exportFile } from '@/utils/index' |
|||
import qs from 'qs' |
|||
import { mapGetters } from 'vuex' |
|||
|
|||
export default { |
|||
name: 'OnOffShelfRecord', |
|||
components: { pagination, DateRangePicker, MidoArchivesInfo }, |
|||
mixins: [presenter(), crud()], |
|||
cruds() { |
|||
return CRUD({ |
|||
url: 'api/documentArchives/initBorrowLog', |
|||
title: '上下架记录', |
|||
optShow: { |
|||
add: false, |
|||
edit: false, |
|||
del: false, |
|||
download: false, |
|||
reset: false, |
|||
group: false |
|||
} |
|||
}) |
|||
}, |
|||
data() { |
|||
return { |
|||
typeValue: null, |
|||
options: [ |
|||
{ value: null, label: '全部' }, |
|||
{ value: 1, label: '上架' }, |
|||
{ value: 2, label: '下架' } |
|||
], |
|||
inputSelect: '', |
|||
blurryTimeStart: null, |
|||
blurryTimeEnd: null, |
|||
lendDetail: false, |
|||
rowCurrent: null, |
|||
detailArcData: [], |
|||
categoryId: null, |
|||
parentInfo: null, |
|||
pageType: 'miodRecord', |
|||
returnBtnLoading: [] |
|||
} |
|||
}, |
|||
computed: { |
|||
...mapGetters([ |
|||
'baseApi' |
|||
]) |
|||
}, |
|||
watch: { |
|||
}, |
|||
created() { |
|||
// 初始化带select的输入框的 - 搜索 |
|||
this.inputSelect = this.options[0].value |
|||
}, |
|||
mounted() { |
|||
}, |
|||
methods: { |
|||
typeInput(e) { |
|||
this.typeInputkey = this.getDescByValue( |
|||
this.inputSelect, |
|||
this.options, |
|||
'value', |
|||
'value' |
|||
) |
|||
this.crud.query.readType = this.typeInputkey |
|||
this.crud.query.search = e |
|||
// this.crud.query[this.typeInputkey] = e |
|||
}, |
|||
clearInputValue(val) { |
|||
console.log('val', val) |
|||
this.inputSelect = val |
|||
this.typeValue = '' |
|||
// 避免向后端传递多余参数,切换和重置时,若有typeInputkey则去掉form中对应参数 |
|||
if (this.typeInputkey) { |
|||
delete this.crud.query[this.typeInputkey] |
|||
} |
|||
this.crud.query.readType = val |
|||
this.crud.query.search = this.typeValue |
|||
this.crud.toQuery() |
|||
}, |
|||
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]() { |
|||
if (this.blurryTimeStart) { |
|||
this.crud.query.borrowStartTime = this.blurryTimeStart[0] |
|||
this.crud.query.borrowEndTime = this.blurryTimeStart[1] |
|||
} else { |
|||
this.crud.query.borrowStartTime = null |
|||
this.crud.query.borrowEndTime = null |
|||
} |
|||
if (this.blurryTimeEnd) { |
|||
this.crud.query.lastStartTime = this.blurryTimeEnd[0] |
|||
this.crud.query.lastEndTime = this.blurryTimeEnd[1] |
|||
} else { |
|||
this.crud.query.lastStartTime = null |
|||
this.crud.query.lastEndTime = null |
|||
} |
|||
}, |
|||
[CRUD.HOOK.afterRefresh](crud) { |
|||
}, |
|||
resetQuery() { |
|||
this.clearInputValue() |
|||
this.inputSelect = this.options[0].value |
|||
this.crud.query.readType = null |
|||
this.crud.query.search = null |
|||
this.blurryTimeStart = [] |
|||
this.blurryTimeEnd = [] |
|||
this.crud.query.borrowStartTime = null |
|||
this.crud.query.borrowEndTime = null |
|||
this.crud.query.lastStartTime = null |
|||
this.crud.query.lastEndTime = null |
|||
this.crud.toQuery() |
|||
}, |
|||
tableDoubleClick(row) { |
|||
console.log('row', row) |
|||
this.parentInfo = row |
|||
this.$nextTick(() => { |
|||
this.$refs.archivesInfo.archivesInfoVisible = true |
|||
this.$refs.archivesInfo.archivesTabIndex = 0 |
|||
this.$refs.archivesInfo.getDetial() |
|||
}) |
|||
}, |
|||
handleReturnFile(index, row) { |
|||
this.$set(this.returnBtnLoading, index, true) |
|||
console.log('row', row) |
|||
this.$confirm('确认是否归还当前所选文件,公文登记号:' + row.reg_no + '<span>你是否还要继续?</span>', '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning', |
|||
dangerouslyUseHTMLString: true |
|||
}).then(() => { |
|||
const param = { |
|||
'documentTid': row.reg_no |
|||
} |
|||
console.log('param', param) |
|||
FetchDocumentReturn(param).then((res) => { |
|||
console.log('resReturn', res) |
|||
if (res.code !== '-1') { |
|||
this.$message({ message: res.msg, type: 'success', offset: 8 }) |
|||
} else { |
|||
this.$message({ message: res.msg, type: 'error', offset: 8 }) |
|||
} |
|||
this.crud.toQuery() |
|||
this.$set(this.returnBtnLoading, index, false) |
|||
}).catch(error => { |
|||
console.error(error) |
|||
this.$set(this.returnBtnLoading, index, false) |
|||
}) |
|||
}).catch(() => { |
|||
this.$set(this.returnBtnLoading, index, false) |
|||
}) |
|||
}, |
|||
handleCloseDialog(done) { |
|||
}, |
|||
doExport() { |
|||
console.log('doExport', this.crud.page.total) |
|||
if (this.crud.page.total > 10000) { |
|||
this.handleExport('导出数据大于10000条,时间可能较长') |
|||
} else { |
|||
this.handleExport('此操作将导出所有数据') |
|||
} |
|||
}, |
|||
handleExport(message) { |
|||
this.$confirm(message + '<span>你是否还要继续?</span>', '提示', { |
|||
confirmButtonText: '继续', |
|||
cancelButtonText: '取消', |
|||
type: 'warning', |
|||
dangerouslyUseHTMLString: true |
|||
}).then(() => { |
|||
const params = { |
|||
'search': this.crud.query.search, |
|||
'readType': this.crud.query.readType, |
|||
'borrowStartTime': this.crud.query.borrowStartTime, |
|||
'borrowEndTime': this.crud.query.borrowEndTime, |
|||
'lastStartTime': this.crud.query.lastStartTime, |
|||
'lastEndTime': this.crud.query.lastEndTime |
|||
} |
|||
exportFile(this.baseApi + '/api/documentArchives/downloadBorrowLog?' + qs.stringify(params, { indices: false })) |
|||
}).catch(() => { |
|||
console.log('取消') |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "~@/assets/styles/collect-reorganizi.scss"; |
|||
|
|||
.recordList-main{ |
|||
height: calc(100vh - 236px); |
|||
.start-date, |
|||
.end-date{ |
|||
display: flex; |
|||
justify-content: flex-start; |
|||
padding-left: 8px; |
|||
font-size: 14px; |
|||
line-height: 30px; |
|||
color: #0C0E1E; |
|||
span{ |
|||
display: block; |
|||
margin-right: 8px; |
|||
} |
|||
} |
|||
.iconfont{ |
|||
font-size: 14px; |
|||
} |
|||
.icon-fou{ |
|||
color: #A6ADB6; |
|||
} |
|||
.icon-shi{ |
|||
color: #12C37A; |
|||
} |
|||
.icon-dengdai{ |
|||
color: #FF8329; |
|||
} |
|||
.icon-cuowu1{ |
|||
color: #ED4A41; |
|||
} |
|||
.row-state{ |
|||
width: 56px; |
|||
padding: 0; |
|||
text-align: center; |
|||
} |
|||
} |
|||
.user-record{ |
|||
padding: 0 0 0 20px; |
|||
height: calc(100vh - 320px); |
|||
} |
|||
.title-style{ |
|||
span{ |
|||
display: inline-block; |
|||
width: 42px; |
|||
height: 22px; |
|||
line-height: 22px; |
|||
text-align: center; |
|||
font-size: 12px; |
|||
color: #0348F3; |
|||
background-color: #CAE1FF; |
|||
border-radius: 3px; |
|||
} |
|||
} |
|||
::v-deep .el-dialog{ |
|||
width: 860px !important; |
|||
.el-form-item .el-form-item__content{ |
|||
width: 280px; |
|||
} |
|||
.dialog-footer{ |
|||
margin-top: 15px !important; |
|||
} |
|||
} |
|||
::v-deep .el-checkbox-group{ |
|||
.el-checkbox{ |
|||
margin-right: 10px !important; |
|||
} |
|||
} |
|||
::v-deep .el-pagination{ |
|||
margin: 24px 0 10px 0 !important |
|||
} |
|||
|
|||
::v-deep .input-prepend .el-input__inner{ |
|||
padding-left: 100px; |
|||
} |
|||
|
|||
.row-state{ |
|||
font-style: normal; |
|||
padding: 0 8px; |
|||
} |
|||
</style> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue