xuhuajiao
2 years ago
12 changed files with 626 additions and 514 deletions
-
6src/api/archivesManage/outInStorage.js
-
4src/assets/styles/index.scss
-
2src/views/archivesManage/archivesList/module/archivesInfo/index.vue
-
2src/views/archivesManage/archivesSearch/index.vue
-
330src/views/archivesManage/lendManage/components/archiveDetail.vue
-
2src/views/archivesManage/lendManage/components/lendArchivesList.vue
-
367src/views/archivesManage/lendManage/lendQuery/index.vue
-
319src/views/archivesManage/lendManage/returnArchives/index.vue
-
13src/views/archivesManage/outInStorage/inStorage/index.vue
-
4src/views/archivesManage/outInStorage/inStorage/module/handDialog.vue
-
89src/views/archivesManage/outInStorage/inStorage/module/inDialog.vue
-
2src/views/storeManage/warehouse3D/deseCabinet/index.vue
@ -1,130 +1,200 @@ |
|||
<template> |
|||
<div> |
|||
<el-dialog title="借阅详情" :visible.sync="detailVisible"> |
|||
<span class="dialog-right-top" /> |
|||
<span class="dialog-left-bottom" /> |
|||
<div class="setting-dialog"> |
|||
<div class="dpflex"> |
|||
<p><span class="color-blue">单据号:</span><span class="color-white">{{ otherInfo.id }}</span></p> |
|||
<p><span class="color-blue">借阅人:</span><span class="color-white">{{ borrowerInfo.borrowerName }}</span></p> |
|||
<p><span class="color-blue">所属部门:</span><span class="color-white">{{ borrowerInfo.department }}</span></p> |
|||
<p><span class="color-blue">证件类型:</span><span class="color-white">{{ borrowerInfo.cardType }}</span></p> |
|||
<p><span class="color-blue">证件号码:</span><span class="color-white">{{ borrowerInfo.idcard }}</span></p> |
|||
<p><span class="color-blue">电话号码:</span><span class="color-white">{{ borrowerInfo.phone }}</span></p> |
|||
<p><span class="color-blue">借阅目的:</span><span class="color-white">{{ otherInfo.purpose }}</span></p> |
|||
<p><span class="color-blue">借阅日期:</span><span class="color-white">{{ lendDatesInfo }}</span></p> |
|||
<p><span class="color-blue">借阅状态:</span><span :class="borrowStyle(otherInfo.borrow_type)">{{ otherInfo.borrow_type | borrowStatus }}</span></p> |
|||
<p><span class="color-blue">操作时间:</span><span class="color-white">{{ otherInfo.create_time | parseTime }}</span></p> |
|||
</div> |
|||
<el-table :data="tableData" max-height="400px" style="margin-top:15px;"> |
|||
<el-table-column type="index" label="序号" align="center" width="55" /> |
|||
<el-table-column prop="categoryName" label="门类名称" align="center" min-width="120" /> |
|||
<el-table-column prop="archiveNo" label="档号" align="center" width="160" show-overflow-tooltip /> |
|||
<el-table-column prop="maintitle" label="题名" align="center" width="180" show-overflow-tooltip /> |
|||
<el-table-column prop="caseName" label="盒名称" align="center" min-width="120" show-overflow-tooltip /> |
|||
<el-table-column prop="folderLocationDetails" label="存放位置" align="center" min-width="260"> |
|||
<template v-if="scope.row.folderLocationDetails !== null" slot-scope="scope"> |
|||
<div v-if="scope.row.folderLocationDetails.includes(',')"> |
|||
<el-tag |
|||
v-for="(item,index) in scope.row.folderLocationDetails.split(',')" |
|||
:key="index" |
|||
:type="item" |
|||
effect="dark" |
|||
> |
|||
{{ item }} |
|||
</el-tag> |
|||
</div> |
|||
<div v-else> |
|||
<el-tag effect="dark">{{ scope.row.folderLocationDetails }}</el-tag> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="borrowType" label="借阅状态" align="center" min-width="100"> |
|||
<template slot-scope="scope"> |
|||
<!-- 待借阅 / 逾期 have-lend / 待归还 / 已归还 has-return --> |
|||
<span :class="borrowStyle(scope.row.borrowType)" style="width:76px">{{ scope.row.borrowType | borrowStatus }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { FetchInitBillDetails } from '@/api/archivesManage/lendManage' |
|||
import { lendingCrud } from '../mixins/lending' |
|||
import { parseTime } from '@/utils/index.js' |
|||
export default { |
|||
name: 'ArchiveDetail', |
|||
mixins: [lendingCrud], |
|||
data() { |
|||
return { |
|||
detailVisible: false, |
|||
rowData: {}, |
|||
borrowerInfo: {}, |
|||
otherInfo: {}, |
|||
tableData: [], |
|||
lendDatesInfo: null |
|||
} |
|||
}, |
|||
methods: { |
|||
getBillDetails() { |
|||
const params = { |
|||
'orderNo': this.rowData.orderNo |
|||
} |
|||
FetchInitBillDetails(params).then(data => { |
|||
this.otherInfo = data |
|||
this.borrowerInfo = data.borrower |
|||
this.tableData = data.borrowArchives |
|||
this.lendDatesInfo = parseTime(data.borrow_start, '{y}-{m}-{d}') + ' 至 ' + parseTime(data.borrow_end, '{y}-{m}-{d}') |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import '~@/assets/styles/lend-manage.scss'; |
|||
::v-deep .el-dialog__body{ |
|||
padding: 20px 0 60px 0; |
|||
} |
|||
::v-deep .el-dialog{ |
|||
width: 1100px; |
|||
} |
|||
::v-deep .el-dialog .el-dialog__header .el-dialog__close::before{ |
|||
position: absolute; |
|||
right: -260px; |
|||
bottom: -10px; |
|||
} |
|||
.dpflex{ |
|||
display: flex; |
|||
flex-wrap: wrap; |
|||
padding: 0 30px; |
|||
p{ |
|||
display: flex; |
|||
align-items: center; |
|||
width: 33%; |
|||
height: 40px; |
|||
line-height: 40px; |
|||
span{ |
|||
display: block; |
|||
line-height: 40px; |
|||
&.color-blue{ |
|||
color: #3A99FD; |
|||
width: 70px; |
|||
text-align: right; |
|||
} |
|||
&.color-white{ |
|||
color: white; |
|||
padding: 0 0 0 20px; |
|||
} |
|||
&.cell-lend{ |
|||
margin-left: 20px; |
|||
width: 76px; |
|||
line-height: 24px; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
|||
<template> |
|||
<div> |
|||
<el-dialog title="借阅详情" :visible.sync="detailVisible"> |
|||
<span class="dialog-right-top" /> |
|||
<span class="dialog-left-bottom" /> |
|||
<div class="setting-dialog"> |
|||
<div class="dpflex"> |
|||
<p><span class="color-blue">单据号:</span><span class="color-white">{{ otherInfo.id }}</span></p> |
|||
<p><span class="color-blue">借阅人:</span><span class="color-white">{{ borrowerInfo.borrowerName }}</span></p> |
|||
<p><span class="color-blue">所属部门:</span><span class="color-white">{{ borrowerInfo.department }}</span></p> |
|||
<p><span class="color-blue">证件类型:</span><span class="color-white">{{ borrowerInfo.cardType }}</span></p> |
|||
<p><span class="color-blue">证件号码:</span><span class="color-white">{{ borrowerInfo.idcard }}</span></p> |
|||
<p><span class="color-blue">电话号码:</span><span class="color-white">{{ borrowerInfo.phone }}</span></p> |
|||
<p><span class="color-blue">借阅目的:</span><span class="color-white">{{ otherInfo.purpose }}</span></p> |
|||
<p><span class="color-blue">借阅日期:</span><span class="color-white">{{ lendDatesInfo }}</span></p> |
|||
<p><span class="color-blue">借阅状态:</span><span :class="borrowStyle(otherInfo.borrow_type)">{{ otherInfo.borrow_type | borrowStatus }}</span></p> |
|||
<p><span class="color-blue">操作时间:</span><span class="color-white">{{ otherInfo.create_time | parseTime }}</span></p> |
|||
</div> |
|||
<el-table :data="tableData" max-height="400px" style="margin-top:15px;"> |
|||
<el-table-column type="index" label="序号" align="center" width="55" /> |
|||
<el-table-column prop="categoryName" label="门类名称" align="center" min-width="160" /> |
|||
<el-table-column prop="archiveNo" label="档号" align="center" width="160" show-overflow-tooltip /> |
|||
<el-table-column prop="maintitle" label="题名" align="center" width="180" show-overflow-tooltip /> |
|||
<el-table-column prop="caseName" label="盒名称" align="center" min-width="120" show-overflow-tooltip /> |
|||
<el-table-column prop="folderLocationDetails" label="存放位置" align="center" min-width="300"> |
|||
<template v-if="scope.row.folderLocationDetails !== null" slot-scope="scope"> |
|||
<div v-if="scope.row.folderLocationDetails.includes(',')"> |
|||
<el-tag |
|||
v-for="(item,index) in scope.row.folderLocationDetails.split(',')" |
|||
:key="index" |
|||
:type="item" |
|||
effect="dark" |
|||
> |
|||
{{ item }} |
|||
</el-tag> |
|||
</div> |
|||
<div v-else> |
|||
<el-tag effect="dark">{{ scope.row.folderLocationDetails }}</el-tag> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="borrowType" label="借阅状态" align="center" min-width="100"> |
|||
<template slot-scope="scope"> |
|||
<!-- 待借阅 / 逾期 have-lend / 待归还 / 已归还 has-return --> |
|||
<span :class="borrowStyle(scope.row.borrowType)" style="width:76px">{{ scope.row.borrowType | borrowStatus }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column v-if="isReturn" prop="borrowType" align="center" label="开架操作" min-width="100"> |
|||
<template slot-scope="scope"> |
|||
<el-button v-if="scope.row.folderLocationDetails" size="mini" type="primary" @click="openCol(scope.row.folderLocationDetails)">开架</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { FetchInitBillDetails } from '@/api/archivesManage/lendManage' |
|||
import CallExternal from '@/api/storeManage/deviceManage/device' |
|||
import { lendingCrud } from '../mixins/lending' |
|||
import { parseTime } from '@/utils/index.js' |
|||
export default { |
|||
name: 'ArchiveDetail', |
|||
mixins: [lendingCrud], |
|||
props: { |
|||
isReturn: { |
|||
type: Boolean, |
|||
default: false |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
detailVisible: false, |
|||
rowData: {}, |
|||
borrowerInfo: {}, |
|||
otherInfo: {}, |
|||
tableData: [], |
|||
lendDatesInfo: null, |
|||
deviceData: null |
|||
} |
|||
}, |
|||
methods: { |
|||
getBillDetails() { |
|||
const params = { |
|||
'orderNo': this.rowData.orderNo |
|||
} |
|||
FetchInitBillDetails(params).then(data => { |
|||
this.otherInfo = data |
|||
this.borrowerInfo = data.borrower |
|||
this.tableData = data.borrowArchives |
|||
this.lendDatesInfo = parseTime(data.borrow_start, '{y}-{m}-{d}') + ' 至 ' + parseTime(data.borrow_end, '{y}-{m}-{d}') |
|||
this.getDeviceListAll() |
|||
}) |
|||
}, |
|||
// 获取密集架相关信息 |
|||
getDeviceListAll() { |
|||
const params = { |
|||
sort: 'sequence,asc', |
|||
storeroomId: 'D6490DA3D4261E8C26D0E3' |
|||
} |
|||
CallExternal.getDeviceList(params).then(data => { |
|||
data.content.map(item => { |
|||
if (item.deviceTypeId.name === '密集架') { // 写死状态 |
|||
this.deviceData = item |
|||
} |
|||
}) |
|||
}) |
|||
}, |
|||
// 开架 |
|||
openCol(data) { |
|||
const loactionArray = data.split(' ') |
|||
const location = data.split(' ')[loactionArray.length - 1] |
|||
const pattern = /(\d+)区(\d+)列(\d+)节(\d+)层/ |
|||
const matches = location.match(pattern) |
|||
let areaNumber |
|||
let colNumber |
|||
let leNumber |
|||
let divNumber |
|||
let zyNumber |
|||
if (matches !== null) { |
|||
areaNumber = matches[1] |
|||
colNumber = matches[2] |
|||
leNumber = matches[3] |
|||
divNumber = matches[4] |
|||
} |
|||
const last_char = location.length - 1 |
|||
if (location[last_char] === '右') { |
|||
zyNumber = '2' |
|||
} else { |
|||
zyNumber = '1' |
|||
} |
|||
const params = { |
|||
deviceId: this.deviceData.id, |
|||
quNo: areaNumber, // 区 |
|||
colNo: colNumber, // 列 |
|||
leNo: leNumber, // 节 |
|||
divNo: divNumber, // 层 |
|||
zyNo: zyNumber // 左右 1左 2右 |
|||
} |
|||
CallExternal.FetchCallExternalOpenCol(params).then(res => { |
|||
if (res.success && res.success === '0') { |
|||
this.$message.success('开架执行成功') |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}).catch((error) => { |
|||
console.log(error) |
|||
this.$message.error('连接失败') |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import '~@/assets/styles/lend-manage.scss'; |
|||
::v-deep .el-dialog__body{ |
|||
padding: 20px 0 60px 0; |
|||
} |
|||
::v-deep .el-dialog{ |
|||
width: 1200px; |
|||
} |
|||
::v-deep .el-dialog .el-dialog__header .el-dialog__close::before{ |
|||
position: absolute; |
|||
right: -280px; |
|||
bottom: -10px; |
|||
} |
|||
.dpflex{ |
|||
display: flex; |
|||
flex-wrap: wrap; |
|||
padding: 0 30px; |
|||
p{ |
|||
display: flex; |
|||
align-items: center; |
|||
width: 33%; |
|||
height: 40px; |
|||
line-height: 40px; |
|||
span{ |
|||
display: block; |
|||
line-height: 40px; |
|||
&.color-blue{ |
|||
color: #3A99FD; |
|||
width: 70px; |
|||
text-align: right; |
|||
} |
|||
&.color-white{ |
|||
color: white; |
|||
padding: 0 0 0 20px; |
|||
} |
|||
&.cell-lend{ |
|||
margin-left: 20px; |
|||
width: 76px; |
|||
line-height: 24px; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -1,183 +1,184 @@ |
|||
<template> |
|||
<div class="lend-query"> |
|||
<div class="head-container head-archives clearfix"> |
|||
<div class="archives-crud"> |
|||
<el-button :loading="crud.downloadLoading" :disabled="!selections.length" size="mini" icon="el-icon-download" @click="downloadApi">导出</el-button> |
|||
</div> |
|||
<div class="head-search"> |
|||
<el-select |
|||
v-model="borrowType" |
|||
class="filter-item" |
|||
style="width: 100px; height: 30px;margin-left:10px" |
|||
@change="crud.toQuery" |
|||
> |
|||
<el-option |
|||
v-for="item in lendStateOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
/> |
|||
</el-select> |
|||
<el-input v-model="lendQuery[lendSelect]" clearable size="small" placeholder="请输入关键词" style="width: 300px;" class="input-prepend filter-item" @clear="crud.toQuery" @keyup.enter.native="crud.toQuery"> |
|||
<el-select slot="prepend" v-model="lendSelect" style="width: 90px"> |
|||
<el-option |
|||
v-for="item in queryOption" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
/> |
|||
</el-select> |
|||
</el-input> |
|||
<rrOperation /> |
|||
</div> |
|||
</div> |
|||
<!--表格渲染--> |
|||
<el-table |
|||
ref="table" |
|||
v-loading="crud.loading" |
|||
style="width: 100%" |
|||
height="calc(100vh - 356px)" |
|||
:data="crud.data" |
|||
:row-key="getRowKey" |
|||
@selection-change="selectionChangeHandler" |
|||
@row-click="clickRowHandler" |
|||
@row-dblclick="handleDbClick" |
|||
> |
|||
<el-table-column type="selection" :reserve-selection="true" align="center" width="55" /> |
|||
<el-table-column type="index" label="序号" align="center" width="55" /> |
|||
<el-table-column prop="borrowType" align="center" label="借阅状态" width="100"> |
|||
<template slot-scope="scope"> |
|||
<span :class="borrowStyle(scope.row.borrowType)" style="width:76px">{{ scope.row.borrowType }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="orderNo" align="center" label="单据号" width="140" /> |
|||
<el-table-column prop="categoryName" align="center" label="门类名称" width="120" show-overflow-tooltip /> |
|||
<el-table-column prop="archiveNo" align="center" label="档号" width="160" show-overflow-tooltip /> |
|||
<el-table-column prop="maintitle" align="center" label="题名" min-width="180" show-overflow-tooltip /> |
|||
<el-table-column prop="caseName" align="center" label="盒名称" width="120" show-overflow-tooltip /> |
|||
<el-table-column prop="folderLocationDetails" align="center" label="存放位置" width="300"> |
|||
<template v-if="scope.row.folderLocationDetails !== null" slot-scope="scope"> |
|||
<div v-if="scope.row.folderLocationDetails.includes(',')"> |
|||
<el-tag |
|||
v-for="(item,index) in scope.row.folderLocationDetails.split(',')" |
|||
:key="index" |
|||
:type="item" |
|||
effect="dark" |
|||
> |
|||
{{ item }} |
|||
</el-tag> |
|||
</div> |
|||
<div v-else> |
|||
<el-tag effect="dark">{{ scope.row.folderLocationDetails }}</el-tag> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="borrowerName" align="center" label="借阅人" width="100" /> |
|||
<el-table-column prop="borrowDays" align="center" label="借阅时间" width="200"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.borrowType ==='待登记' ? '' : parseTime(scope.row.borrowStart, '{y}-{m}-{d}') + ' 至 ' + parseTime(scope.row.borrowEnd, '{y}-{m}-{d}') }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="purpose" align="center" label="借阅目的" width="100" /> |
|||
<el-table-column prop="endTime" align="center" label="借出时间" width="120"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ parseTime(scope.row.borrowStart, '{y}-{m}-{d}') }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="endTime" align="center" label="归还时间" width="160"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.endTime | parseTime }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!-- 档案详情 --> |
|||
<archiveDetail ref="archiveDetailDom" /> |
|||
<!-- 分页 --> |
|||
<pagination /> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import CRUD, { presenter } from '@crud/crud' |
|||
import { lendingCrud } from '../mixins/lending' |
|||
import pagination from '@crud/Pagination' |
|||
import rrOperation from '@crud/RR.operation' |
|||
import archiveDetail from '../components/archiveDetail' |
|||
|
|||
export default { |
|||
name: 'LendQuery', |
|||
components: { pagination, rrOperation, archiveDetail }, |
|||
mixins: [presenter(), lendingCrud], |
|||
cruds() { |
|||
return CRUD({ |
|||
url: 'api/borrow/initBorrowLog', |
|||
// crudMethod: caseCrudMethod, |
|||
title: '借还记录', |
|||
optShow: { |
|||
add: false, |
|||
edit: false, |
|||
del: false, |
|||
download: true, |
|||
group: false |
|||
}, |
|||
sort: ['create_time,desc'] |
|||
}) |
|||
}, |
|||
data() { |
|||
return { |
|||
selections: [], |
|||
lendStateOptions: [ |
|||
{ value: '全部', label: '全部' }, |
|||
{ value: '2', label: '待借阅' }, |
|||
{ value: '3', label: '待归还' }, |
|||
{ value: '5', label: '逾期' }, |
|||
{ value: '4', label: '已归还' }, |
|||
{ value: '-1', label: '异常' } |
|||
], |
|||
borrowType: '全部', |
|||
queryOption: [ |
|||
{ value: 'orderNo', label: '单据号' }, |
|||
{ value: 'borrowerName', label: '借阅人' }, |
|||
{ value: 'archiveNo', label: '档号' }, |
|||
{ value: 'maintitle', label: '题名' }, |
|||
{ value: 'folderLocationDetails', label: '位置' }, |
|||
{ value: 'caseName', label: '档案盒' } |
|||
] |
|||
} |
|||
}, |
|||
mounted() { |
|||
}, |
|||
methods: { |
|||
// 获取数据前的处理 |
|||
[CRUD.HOOK.beforeRefresh]() { |
|||
this.crud.query.borrowType = null |
|||
if (this.borrowType === '全部') { |
|||
this.crud.query.borrowType = null |
|||
} else { |
|||
this.crud.query.borrowType = this.borrowType |
|||
} |
|||
this.crud.query.orderNo = null |
|||
this.crud.query.borrowerName = null |
|||
this.crud.query.archiveNo = null |
|||
this.crud.query.maintitle = null |
|||
this.crud.query.folderLocationDetails = null |
|||
this.crud.query.caseName = null |
|||
this.crud.query[this.lendSelect] = this.lendQuery[this.lendSelect] |
|||
}, |
|||
selectionChangeHandler(val) { |
|||
this.selections = val |
|||
}, |
|||
clickRowHandler(row) { |
|||
this.$refs.table.toggleRowSelection(row) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style rel="stylesheet/scss" lang="scss" scoped> |
|||
@import "~@/assets/styles/archives-manage.scss"; |
|||
@import '~@/assets/styles/lend-manage.scss'; |
|||
.head-archives{ |
|||
padding: 20px; |
|||
} |
|||
</style> |
|||
<template> |
|||
<div class="lend-query"> |
|||
<div class="head-container head-archives clearfix"> |
|||
<div class="archives-crud"> |
|||
<el-button :loading="crud.downloadLoading" :disabled="!selections.length" size="mini" icon="el-icon-download" @click="downloadApi">导出</el-button> |
|||
</div> |
|||
<div class="head-search"> |
|||
<el-select |
|||
v-model="borrowType" |
|||
class="filter-item" |
|||
style="width: 100px; height: 30px;margin-left:10px" |
|||
@change="crud.toQuery" |
|||
> |
|||
<el-option |
|||
v-for="item in lendStateOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
/> |
|||
</el-select> |
|||
<el-input v-model="lendQuery[lendSelect]" clearable size="small" placeholder="请输入关键词" style="width: 300px;" class="input-prepend filter-item" @clear="crud.toQuery" @keyup.enter.native="crud.toQuery"> |
|||
<el-select slot="prepend" v-model="lendSelect" style="width: 90px"> |
|||
<el-option |
|||
v-for="item in queryOption" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
/> |
|||
</el-select> |
|||
</el-input> |
|||
<rrOperation /> |
|||
</div> |
|||
</div> |
|||
<!--表格渲染--> |
|||
<el-table |
|||
ref="table" |
|||
v-loading="crud.loading" |
|||
style="width: 100%" |
|||
height="calc(100vh - 356px)" |
|||
:data="crud.data" |
|||
:row-key="getRowKey" |
|||
@selection-change="selectionChangeHandler" |
|||
@row-click="clickRowHandler" |
|||
@row-dblclick="handleDbClick" |
|||
> |
|||
<el-table-column type="selection" :reserve-selection="true" align="center" width="55" /> |
|||
<el-table-column type="index" label="序号" align="center" width="55" /> |
|||
<el-table-column prop="borrowType" align="center" label="借阅状态" width="100"> |
|||
<template slot-scope="scope"> |
|||
<span :class="borrowStyle(scope.row.borrowType)" style="width:76px">{{ scope.row.borrowType }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="orderNo" align="center" label="单据号" width="140" /> |
|||
<el-table-column prop="categoryName" align="center" label="门类名称" width="120" show-overflow-tooltip /> |
|||
<el-table-column prop="archiveNo" align="center" label="档号" width="160" show-overflow-tooltip /> |
|||
<el-table-column prop="maintitle" align="center" label="题名" min-width="180" show-overflow-tooltip /> |
|||
<el-table-column prop="caseName" align="center" label="盒名称" width="120" show-overflow-tooltip /> |
|||
<el-table-column prop="folderLocationDetails" align="center" label="存放位置" width="300"> |
|||
<template v-if="scope.row.folderLocationDetails !== null" slot-scope="scope"> |
|||
<div v-if="scope.row.folderLocationDetails.includes(',')"> |
|||
<el-tag |
|||
v-for="(item,index) in scope.row.folderLocationDetails.split(',')" |
|||
:key="index" |
|||
:type="item" |
|||
effect="dark" |
|||
> |
|||
{{ item }} |
|||
</el-tag> |
|||
</div> |
|||
<div v-else> |
|||
<el-tag effect="dark">{{ scope.row.folderLocationDetails }}</el-tag> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="borrowerName" align="center" label="借阅人" width="100" /> |
|||
<el-table-column prop="borrowDays" align="center" label="借阅时间" width="200"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.borrowType ==='待登记' ? '' : parseTime(scope.row.borrowStart, '{y}-{m}-{d}') + ' 至 ' + parseTime(scope.row.borrowEnd, '{y}-{m}-{d}') }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="purpose" align="center" label="借阅目的" width="100" /> |
|||
<el-table-column prop="endTime" align="center" label="借出时间" width="120"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ parseTime(scope.row.borrowStart, '{y}-{m}-{d}') }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="endTime" align="center" label="归还时间" width="160"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.endTime | parseTime }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!-- 档案详情 --> |
|||
<archiveDetail ref="archiveDetailDom" :is-return="isReturn" /> |
|||
<!-- 分页 --> |
|||
<pagination /> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import CRUD, { presenter } from '@crud/crud' |
|||
import { lendingCrud } from '../mixins/lending' |
|||
import pagination from '@crud/Pagination' |
|||
import rrOperation from '@crud/RR.operation' |
|||
import archiveDetail from '../components/archiveDetail' |
|||
|
|||
export default { |
|||
name: 'LendQuery', |
|||
components: { pagination, rrOperation, archiveDetail }, |
|||
mixins: [presenter(), lendingCrud], |
|||
cruds() { |
|||
return CRUD({ |
|||
url: 'api/borrow/initBorrowLog', |
|||
// crudMethod: caseCrudMethod, |
|||
title: '借还记录', |
|||
optShow: { |
|||
add: false, |
|||
edit: false, |
|||
del: false, |
|||
download: true, |
|||
group: false |
|||
}, |
|||
sort: ['create_time,desc'] |
|||
}) |
|||
}, |
|||
data() { |
|||
return { |
|||
isReturn: false, |
|||
selections: [], |
|||
lendStateOptions: [ |
|||
{ value: '全部', label: '全部' }, |
|||
{ value: '2', label: '待借阅' }, |
|||
{ value: '3', label: '待归还' }, |
|||
{ value: '5', label: '逾期' }, |
|||
{ value: '4', label: '已归还' }, |
|||
{ value: '-1', label: '异常' } |
|||
], |
|||
borrowType: '全部', |
|||
queryOption: [ |
|||
{ value: 'orderNo', label: '单据号' }, |
|||
{ value: 'borrowerName', label: '借阅人' }, |
|||
{ value: 'archiveNo', label: '档号' }, |
|||
{ value: 'maintitle', label: '题名' }, |
|||
{ value: 'folderLocationDetails', label: '位置' }, |
|||
{ value: 'caseName', label: '档案盒' } |
|||
] |
|||
} |
|||
}, |
|||
mounted() { |
|||
}, |
|||
methods: { |
|||
// 获取数据前的处理 |
|||
[CRUD.HOOK.beforeRefresh]() { |
|||
this.crud.query.borrowType = null |
|||
if (this.borrowType === '全部') { |
|||
this.crud.query.borrowType = null |
|||
} else { |
|||
this.crud.query.borrowType = this.borrowType |
|||
} |
|||
this.crud.query.orderNo = null |
|||
this.crud.query.borrowerName = null |
|||
this.crud.query.archiveNo = null |
|||
this.crud.query.maintitle = null |
|||
this.crud.query.folderLocationDetails = null |
|||
this.crud.query.caseName = null |
|||
this.crud.query[this.lendSelect] = this.lendQuery[this.lendSelect] |
|||
}, |
|||
selectionChangeHandler(val) { |
|||
this.selections = val |
|||
}, |
|||
clickRowHandler(row) { |
|||
this.$refs.table.toggleRowSelection(row) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style rel="stylesheet/scss" lang="scss" scoped> |
|||
@import "~@/assets/styles/archives-manage.scss"; |
|||
@import '~@/assets/styles/lend-manage.scss'; |
|||
.head-archives{ |
|||
padding: 20px; |
|||
} |
|||
</style> |
@ -1,159 +1,160 @@ |
|||
<template> |
|||
<div class="to-lend"> |
|||
<div class="head-container head-archives clearfix"> |
|||
<div class="archives-crud"> |
|||
<el-button size="mini" class="iconfont icon-guihuan-fanbai" :disabled="!selections.length" @click="handleReturn">归还</el-button> |
|||
<el-button :loading="crud.downloadLoading" :disabled="!selections.length" size="mini" icon="el-icon-download" @click="downloadApi">导出</el-button> |
|||
</div> |
|||
<div class="head-search"> |
|||
<el-input v-model="lendQuery[lendSelect]" clearable size="small" placeholder="请输入关键词" style="width: 300px;" class="input-prepend filter-item" @clear="crud.toQuery" @keyup.enter.native="crud.toQuery"> |
|||
<el-select slot="prepend" v-model="lendSelect" style="width: 90px"> |
|||
<el-option |
|||
v-for="item in queryOption" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
/> |
|||
</el-select> |
|||
</el-input> |
|||
<rrOperation /> |
|||
</div> |
|||
</div> |
|||
<!--表格渲染--> |
|||
<el-table |
|||
ref="table" |
|||
style="width:100%" |
|||
height="calc(100vh - 355px)" |
|||
:data="crud.data" |
|||
:row-key="getRowKey" |
|||
@selection-change="selectionChangeHandler" |
|||
@row-click="clickRowHandler" |
|||
@row-dblclick="handleDbClick" |
|||
> |
|||
<el-table-column type="selection" :reserve-selection="true" align="center" width="55" /> |
|||
<el-table-column type="index" label="序号" align="center" width="55" /> |
|||
<el-table-column prop="orderNo" align="center" label="单据号" width="140" /> |
|||
<el-table-column prop="categoryName" align="center" label="门类名称" width="120" show-overflow-tooltip /> |
|||
<el-table-column prop="archiveNo" align="center" label="档号" min-width="160" show-overflow-tooltip /> |
|||
<el-table-column prop="maintitle" align="center" label="题名" min-width="180" show-overflow-tooltip /> |
|||
<el-table-column prop="caseName" align="center" label="盒名称" width="120" show-overflow-tooltip /> |
|||
<el-table-column prop="folderLocationDetails" align="center" label="存放位置" width="300"> |
|||
<template v-if="scope.row.folderLocationDetails !== null" slot-scope="scope"> |
|||
<div v-if="scope.row.folderLocationDetails.includes(',')"> |
|||
<el-tag |
|||
v-for="(item,index) in scope.row.folderLocationDetails.split(',')" |
|||
:key="index" |
|||
:type="item" |
|||
effect="dark" |
|||
> |
|||
{{ item }} |
|||
</el-tag> |
|||
</div> |
|||
<div v-else> |
|||
<el-tag effect="dark">{{ scope.row.folderLocationDetails }}</el-tag> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="borrowerName" align="center" label="借阅人" width="100" /> |
|||
<el-table-column prop="borrowDays" align="center" label="借阅时间" width="200"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ parseTime(scope.row.borrowStart, '{y}-{m}-{d}') + ' 至 ' + parseTime(scope.row.borrowEnd, '{y}-{m}-{d}') }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="purpose" align="center" label="借阅目的" width="100" /> |
|||
<el-table-column prop="borrowType" align="center" label="借阅状态" width="100"> |
|||
<template slot-scope="scope"> |
|||
<span :class="['cell-lend',scope.row.borrowType === '待归还'?'no-lend':'have-lend']" style="width:76px">{{ scope.row.borrowType }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="createBy" align="center" label="操作人" width="100" /> |
|||
<el-table-column prop="createTime" align="center" label="操作时间" width="160"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.createTime | parseTime }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!-- 归还失败 --> |
|||
<releaseAlarm ref="releaseAlarmDom" /> |
|||
<!-- 档案详情 --> |
|||
<archiveDetail ref="archiveDetailDom" /> |
|||
<!-- 分页 --> |
|||
<pagination /> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import CRUD, { presenter } from '@crud/crud' |
|||
import { lendingCrud } from '../mixins/lending' |
|||
import pagination from '@crud/Pagination' |
|||
import rrOperation from '@crud/RR.operation' |
|||
import releaseAlarm from '../components/releaseAlarm' |
|||
import archiveDetail from '../components/archiveDetail' |
|||
|
|||
export default { |
|||
name: 'ReturnArchives', |
|||
components: { pagination, rrOperation, archiveDetail, releaseAlarm }, |
|||
mixins: [presenter(), lendingCrud], |
|||
cruds() { |
|||
return CRUD({ |
|||
url: 'api/borrow/initReturnConfirmList', |
|||
// crudMethod: caseCrudMethod, |
|||
title: '归还确认', |
|||
optShow: { |
|||
add: false, |
|||
edit: false, |
|||
del: false, |
|||
download: true, |
|||
group: false |
|||
} |
|||
}) |
|||
}, |
|||
data() { |
|||
return { |
|||
selections: [], |
|||
queryOption: [ |
|||
{ value: 'orderNo', label: '单据号' }, |
|||
{ value: 'borrowerName', label: '借阅人' } |
|||
] |
|||
} |
|||
}, |
|||
created() { |
|||
this.getBorrowRule() |
|||
}, |
|||
mounted() { |
|||
}, |
|||
methods: { |
|||
// 获取数据前的处理 |
|||
[CRUD.HOOK.beforeRefresh]() { |
|||
this.crud.query.orderNo = null |
|||
this.crud.query.borrowerName = null |
|||
this.crud.query[this.lendSelect] = this.lendQuery[this.lendSelect] |
|||
}, |
|||
clickRowHandler(row) { |
|||
this.$refs.table.toggleRowSelection(row) |
|||
}, |
|||
// 归还 |
|||
handleReturn() { |
|||
if (this.selections.length > 0) { |
|||
if (this.lineStateVal === 'offline') { |
|||
// 离线 |
|||
this.$refs.releaseAlarmDom.lendSelections = this.selections |
|||
this.$refs.releaseAlarmDom.getLendTid(1) |
|||
} else { |
|||
// 在线 |
|||
const params = this.selections.map(item => item.id) |
|||
this.confirmLendOrReturn(1, params, this.selections) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "~@/assets/styles/archives-manage.scss"; |
|||
@import '~@/assets/styles/lend-manage.scss'; |
|||
.head-archives{ |
|||
padding: 20px; |
|||
} |
|||
</style> |
|||
<template> |
|||
<div class="to-lend"> |
|||
<div class="head-container head-archives clearfix"> |
|||
<div class="archives-crud"> |
|||
<el-button size="mini" class="iconfont icon-guihuan-fanbai" :disabled="!selections.length" @click="handleReturn">归还</el-button> |
|||
<el-button :loading="crud.downloadLoading" :disabled="!selections.length" size="mini" icon="el-icon-download" @click="downloadApi">导出</el-button> |
|||
</div> |
|||
<div class="head-search"> |
|||
<el-input v-model="lendQuery[lendSelect]" clearable size="small" placeholder="请输入关键词" style="width: 300px;" class="input-prepend filter-item" @clear="crud.toQuery" @keyup.enter.native="crud.toQuery"> |
|||
<el-select slot="prepend" v-model="lendSelect" style="width: 90px"> |
|||
<el-option |
|||
v-for="item in queryOption" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
/> |
|||
</el-select> |
|||
</el-input> |
|||
<rrOperation /> |
|||
</div> |
|||
</div> |
|||
<!--表格渲染--> |
|||
<el-table |
|||
ref="table" |
|||
style="width:100%" |
|||
height="calc(100vh - 355px)" |
|||
:data="crud.data" |
|||
:row-key="getRowKey" |
|||
@selection-change="selectionChangeHandler" |
|||
@row-click="clickRowHandler" |
|||
@row-dblclick="handleDbClick" |
|||
> |
|||
<el-table-column type="selection" :reserve-selection="true" align="center" width="55" /> |
|||
<el-table-column type="index" label="序号" align="center" width="55" /> |
|||
<el-table-column prop="orderNo" align="center" label="单据号" width="140" /> |
|||
<el-table-column prop="categoryName" align="center" label="门类名称" width="120" show-overflow-tooltip /> |
|||
<el-table-column prop="archiveNo" align="center" label="档号" min-width="160" show-overflow-tooltip /> |
|||
<el-table-column prop="maintitle" align="center" label="题名" min-width="180" show-overflow-tooltip /> |
|||
<el-table-column prop="caseName" align="center" label="盒名称" width="120" show-overflow-tooltip /> |
|||
<el-table-column prop="folderLocationDetails" align="center" label="存放位置" width="300"> |
|||
<template v-if="scope.row.folderLocationDetails !== null" slot-scope="scope"> |
|||
<div v-if="scope.row.folderLocationDetails.includes(',')"> |
|||
<el-tag |
|||
v-for="(item,index) in scope.row.folderLocationDetails.split(',')" |
|||
:key="index" |
|||
:type="item" |
|||
effect="dark" |
|||
> |
|||
{{ item }} |
|||
</el-tag> |
|||
</div> |
|||
<div v-else> |
|||
<el-tag effect="dark">{{ scope.row.folderLocationDetails }}</el-tag> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="borrowerName" align="center" label="借阅人" width="100" /> |
|||
<el-table-column prop="borrowDays" align="center" label="借阅时间" width="200"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ parseTime(scope.row.borrowStart, '{y}-{m}-{d}') + ' 至 ' + parseTime(scope.row.borrowEnd, '{y}-{m}-{d}') }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="purpose" align="center" label="借阅目的" width="100" /> |
|||
<el-table-column prop="borrowType" align="center" label="借阅状态" width="100"> |
|||
<template slot-scope="scope"> |
|||
<span :class="['cell-lend',scope.row.borrowType === '待归还'?'no-lend':'have-lend']" style="width:76px">{{ scope.row.borrowType }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="createBy" align="center" label="操作人" width="100" /> |
|||
<el-table-column prop="createTime" align="center" label="操作时间" width="160"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.createTime | parseTime }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!-- 归还失败 --> |
|||
<releaseAlarm ref="releaseAlarmDom" /> |
|||
<!-- 档案详情 --> |
|||
<archiveDetail ref="archiveDetailDom" :is-return="isReturn" /> |
|||
<!-- 分页 --> |
|||
<pagination /> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import CRUD, { presenter } from '@crud/crud' |
|||
import { lendingCrud } from '../mixins/lending' |
|||
import pagination from '@crud/Pagination' |
|||
import rrOperation from '@crud/RR.operation' |
|||
import releaseAlarm from '../components/releaseAlarm' |
|||
import archiveDetail from '../components/archiveDetail' |
|||
|
|||
export default { |
|||
name: 'ReturnArchives', |
|||
components: { pagination, rrOperation, archiveDetail, releaseAlarm }, |
|||
mixins: [presenter(), lendingCrud], |
|||
cruds() { |
|||
return CRUD({ |
|||
url: 'api/borrow/initReturnConfirmList', |
|||
// crudMethod: caseCrudMethod, |
|||
title: '归还确认', |
|||
optShow: { |
|||
add: false, |
|||
edit: false, |
|||
del: false, |
|||
download: true, |
|||
group: false |
|||
} |
|||
}) |
|||
}, |
|||
data() { |
|||
return { |
|||
isReturn: true, |
|||
selections: [], |
|||
queryOption: [ |
|||
{ value: 'orderNo', label: '单据号' }, |
|||
{ value: 'borrowerName', label: '借阅人' } |
|||
] |
|||
} |
|||
}, |
|||
created() { |
|||
this.getBorrowRule() |
|||
}, |
|||
mounted() { |
|||
}, |
|||
methods: { |
|||
// 获取数据前的处理 |
|||
[CRUD.HOOK.beforeRefresh]() { |
|||
this.crud.query.orderNo = null |
|||
this.crud.query.borrowerName = null |
|||
this.crud.query[this.lendSelect] = this.lendQuery[this.lendSelect] |
|||
}, |
|||
clickRowHandler(row) { |
|||
this.$refs.table.toggleRowSelection(row) |
|||
}, |
|||
// 归还 |
|||
handleReturn() { |
|||
if (this.selections.length > 0) { |
|||
if (this.lineStateVal === 'offline') { |
|||
// 离线 |
|||
this.$refs.releaseAlarmDom.lendSelections = this.selections |
|||
this.$refs.releaseAlarmDom.getLendTid(1) |
|||
} else { |
|||
// 在线 |
|||
const params = this.selections.map(item => item.id) |
|||
this.confirmLendOrReturn(1, params, this.selections) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "~@/assets/styles/archives-manage.scss"; |
|||
@import '~@/assets/styles/lend-manage.scss'; |
|||
.head-archives{ |
|||
padding: 20px; |
|||
} |
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue