Browse Source

借阅管理

master
xuhuajiao 3 years ago
parent
commit
d79c61a63b
  1. 29
      src/api/archivesManage/lendManage.js
  2. 110
      src/views/archivesManage/lendManage/borrowerManage/index.vue
  3. 125
      src/views/archivesManage/lendManage/borrowerManage/module/addBorrower.vue
  4. 119
      src/views/archivesManage/lendManage/borrowerManage/module/editBorrower.vue
  5. 28
      src/views/archivesManage/lendManage/components/archiveDetail.vue
  6. 2
      src/views/archivesManage/lendManage/index.vue
  7. 27
      src/views/archivesManage/lendManage/lendConfirm/index.vue
  8. 31
      src/views/archivesManage/lendManage/lendConfirm/module/lendDialog.vue
  9. 1
      src/views/archivesManage/lendManage/lendProcess/index.vue
  10. 139
      src/views/archivesManage/lendManage/lendQuery/index.vue
  11. 83
      src/views/archivesManage/lendManage/lendQuery/module/archiveDetail.vue
  12. 47
      src/views/archivesManage/lendManage/mixins/lending.js
  13. 65
      src/views/archivesManage/lendManage/returnArchives/index.vue
  14. 7
      src/views/archivesManage/lendManage/toLend/index.vue
  15. 28
      src/views/archivesManage/lendManage/toLend/module/lendRecord.vue

29
src/api/archivesManage/lendManage.js

@ -1,7 +1,5 @@
import request from '@/utils/request'
// import qs from 'qs'
// 判断档案是否可以借阅
export function FetchIsExistBorrow(parameter) {
return request({
@ -146,5 +144,30 @@ export function FetchArchivesReturnConfirm(parameter) {
})
}
export default { }
// 借阅者管理
export function add(data) {
return request({
url: 'api/borrow/editBorrower',
method: 'post',
data
})
}
export function del(data) {
return request({
url: 'api/borrow/deleteBorrower',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: 'api/borrow/editBorrower',
method: 'post',
data
})
}
export default { add, edit, del }

110
src/views/archivesManage/lendManage/borrowerManage/index.vue

@ -2,13 +2,20 @@
<div class="to-lend">
<div class="head-container head-archives clearfix">
<div class="archives-crud">
<el-button icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
<!-- <el-button icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
<el-button icon="el-icon-edit" size="mini" :disabled="selections.length===1 ? false : true " @click="handelEdit">修改</el-button>
<el-button icon="el-icon-delete" size="mini" :disabled="!selections.length" @click="deleteVisible = true">删除</el-button>
<el-button icon="el-icon-delete" size="mini" :disabled="!selections.length" @click="deleteVisible = true">删除</el-button> -->
<el-button v-permission="permission.add" size="mini" icon="el-icon-plus" @click="crud.toAdd">
新增
</el-button>
<el-button v-permission="permission.edit" size="mini" icon="el-icon-edit" :disabled="crud.selections.length !== 1" @click="crud.toEdit(crud.selections[0])">
修改
</el-button>
<el-button v-permission="permission.del" icon="el-icon-delete" size="mini" :loading="crud.delAllLoading" :disabled="!crud.selections.length" @click="toDelete(crud.selections)">删除</el-button>
</div>
<div class="head-search">
<el-input v-model="lendQuery[lendSelect]" clearable size="small" placeholder="请输入关键词" style="width: 200px;" class="input-prepend filter-item">
<el-select slot="prepend" v-model="lendSelect" style="width: 85px">
<el-input v-model="lendQuery[lendSelect]" clearable size="small" placeholder="请输入关键词" style="width: 220px;" class="input-prepend filter-item" @clear="crud.toQuery" @blur="crud.toQuery" @keyup.enter.native="crud.toQuery">
<el-select slot="prepend" v-model="lendSelect" style="width: 100px">
<el-option
v-for="item in queryOption"
:key="item.value"
@ -17,32 +24,34 @@
/>
</el-select>
</el-input>
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search">搜索</el-button>
<rrOperation />
</div>
</div>
<!--表格渲染-->
<el-table
ref="table"
:data="tableData"
:data="crud.data"
style="min-width: 100%"
height="calc(100vh - 356px)"
@selection-change="selectionChangeHandler"
@selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
>
<el-table-column type="selection" align="center" width="55" />
<el-table-column type="index" align="center" label="序号" width="100" />
<el-table-column prop="borrowerName" align="center" label="借阅人" min-width="85" />
<el-table-column prop="borrowerDepartment" align="center" label="所属部门" min-width="85" />
<el-table-column prop="borrowerIdType" align="center" label="证件类型" min-width="85" />
<el-table-column prop="borrowerIdNum" align="center" label="证件号码" min-width="140" />
<el-table-column prop="borrowerTel" align="center" label="电话号码" min-width="120" />
<el-table-column prop="operationTime" align="center" label="操作时间" min-width="140" />
<el-table-column prop="department" align="center" label="所属部门" min-width="85" />
<el-table-column prop="cardType" align="center" label="证件类型" min-width="85" />
<el-table-column prop="idcard" align="center" label="证件号码" min-width="140" />
<el-table-column prop="phone" align="center" label="电话号码" min-width="120" />
<el-table-column prop="create_time" align="center" label="操作时间" min-width="120">
<template slot-scope="scope">
<div>{{ scope.row.create_time | parseTime }}</div>
</template>
</el-table-column>
</el-table>
<!-- 借阅者增加模态框 -->
<addBorrower ref="addBorrowerDom" />
<!-- 修改模态框 -->
<editBorrower ref="editBorrowerDom" />
<!-- 删除模态框 -->
<el-dialog title="确认删除" :visible.sync="deleteVisible">
<span class="dialog-right-top" />
@ -50,7 +59,7 @@
<div class="setting-dialog">
<p><span style="color:#fff;">您确定要删除当前借阅人信息吗</span></p>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click.native="handleDelConfirm">确定</el-button>
<el-button type="primary" @click.native="handleDelConfirm(crud.selections)">确定</el-button>
</div>
</div>
</el-dialog>
@ -60,68 +69,76 @@
</template>
<script>
import CRUD, { presenter, crud } from '@crud/crud'
import { lendingCrud } from '../mixins/lending'
import crudMethod from '@/api/archivesManage/lendManage'
import pagination from '@crud/Pagination'
import CRUD, { presenter, header } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import addBorrower from './module/addBorrower.vue'
import editBorrower from './module/editBorrower.vue'
// import crudOperation from '@crud/CRUD.operation'
import data1 from '../data1.json'
export default {
name: 'BorrowerManage',
components: { pagination, addBorrower, editBorrower },
mixins: [presenter(), header()],
components: { pagination, rrOperation, addBorrower },
mixins: [presenter(), crud(), lendingCrud],
cruds() {
return CRUD({
url: 'api/case/initCaseList',
// crudMethod: caseCrudMethod,
title: '档案盒',
url: 'api/borrow/initBorrower',
crudMethod: { ...crudMethod },
title: '借阅者',
optShow: {
add: true,
edit: true,
del: true,
download: false,
group: false
}
},
sort: ['create_time,desc']
})
},
data() {
return {
tableData: [],
selections: [],
permission: {
add: ['admin', 'borrowerManage:add'],
edit: ['admin', 'borrowerManage:edit'],
del: ['admin', 'borrowerManage:del']
},
editFormVisible: false,
deleteVisible: false,
lendQuery: {},
eleteData: {},
queryOption: [
{ value: '选项1', label: '借阅人' },
{ value: '选项2', label: '电话号码' }
],
lendSelect: ''
{ value: 'query', label: '借阅人' },
{ value: 'phone', label: '电话号码' }
]
}
},
mounted() {
this.getData()
},
methods: {
getData() {
this.tableData = data1.rows
//
[CRUD.HOOK.beforeRefresh]() {
this.crud.query.query = null
this.crud.query.phone = null
this.crud.query[this.lendSelect] = this.lendQuery[this.lendSelect]
},
selectionChangeHandler(val) {
this.selections = val
[CRUD.HOOK.beforeSubmit]() {
delete this.crud.form.borrowerNamePy
delete this.crud.form.create_by
delete this.crud.form.create_time
delete this.crud.form.isDelete
delete this.crud.form.update_by
delete this.crud.form.update_time
},
clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row)
},
handleAdd() {
this.$refs.addBorrowerDom.addFormVisible = true
},
handleDelConfirm() {
this.deleteVisible = false
this.crud.delAllLoading = true
this.crud.doDelete(this.deleteData)
},
handelEdit() {
const editBorrowerDom = this.$refs.editBorrowerDom
console.log(editBorrowerDom.borrowerForm)
editBorrowerDom.borrowerForm = JSON.parse(JSON.stringify(this.selections[0]))
editBorrowerDom.editFormVisible = true
toDelete(data) {
this.deleteData = data
this.deleteVisible = true
}
}
}
@ -132,4 +149,7 @@ export default {
.head-archives{
padding: 20px;
}
::v-deep .input-prepend .el-input__inner {
padding-left: 100px;
}
</style>

125
src/views/archivesManage/lendManage/borrowerManage/module/addBorrower.vue

@ -1,73 +1,42 @@
<template>
<div>
<el-dialog
append-to-body
:close-on-click-modal="false"
:visible.sync="addFormVisible"
title="借阅人信息"
@close="handleClose"
>
<el-dialog append-to-body :close-on-click-modal="false" :before-close="crud.cancelCU" :visible="crud.status.cu > 0" :title="crud.status.title">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<el-form
ref="borrowerFormDom"
:model="borrowerForm"
:rules="rules"
size="small"
label-width="80px"
style="margin-left:90px"
>
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px" style="margin-left:90px">
<el-form-item label="借阅人" prop="borrowerName">
<el-input
v-model="borrowerForm.borrowerName"
/>
<el-input v-model="form.borrowerName" />
</el-form-item>
<el-form-item label="电话号码" prop="tel">
<el-input v-model="borrowerForm.tel" />
<el-form-item label="电话号码" prop="phone">
<el-input v-model.number="form.phone" />
</el-form-item>
<el-form-item label="所属部门" prop="department" class="down-select">
<el-select
v-model="borrowerForm.departmentDatas"
multiple
placeholder="请选择"
>
<el-select v-model="form.department" placeholder="请选择">
<el-option
v-for="item in borrowerForm.departmentDatas"
:key="item.name"
:disabled="level !== 1 && item.level <= level"
:label="item.name"
:value="item.id"
v-for="(item,index) in departOptions"
:key="index"
:label="item.dicName"
:value="item.dicName"
/>
</el-select>
</el-form-item>
<el-form-item label="证件类型" prop="idType" class="down-select">
<el-select
v-model="borrowerForm.idType"
multiple
placeholder="请选择"
>
<el-form-item label="证件类型" prop="cardType" class="down-select">
<el-select v-model="form.cardType" placeholder="请选择">
<el-option
v-for="item in borrowerForm.idType"
:key="item.name"
:disabled="level !== 1 && item.level <= level"
:label="item.name"
:value="item.id"
v-for="(item,index) in idTypeOptions"
:key="index"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="证件号码" prop="idNumber">
<el-input v-model="borrowerForm.idNumber" />
<el-form-item label="证件号码" prop="idcard">
<el-input v-model="form.idcard" />
</el-form-item>
<!-- <el-form-item label="借阅时间" prop="lendDate">
<date-range-picker style="width: 420px" />
</el-form-item> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button
type="primary"
@click="handleAddConfirm"
>确认</el-button>
<el-button type="primary" :loading="crud.status.cu === 2" @click="crud.submitCU">确认</el-button>
</div>
</div>
</el-dialog>
@ -75,40 +44,44 @@
</template>
<script>
import { form } from '@crud/crud'
import { lendingCrud } from '../../mixins/lending'
import { validatePhone } from '@/utils/validate'
const defaultForm = { borrowerName: '', cardType: '', department: '', id: '', idcard: '', phone: '' }
export default {
mixins: [
form(defaultForm),
lendingCrud
],
data() {
return {
addFormVisible: false,
borrowerForm: {},
rules: {
borrowerName: [
{ required: true, message: '请输入姓名', trigger: 'blur' }
],
tel: [
{ required: true, message: '请输入电话号码', trigger: 'blur' }
]
}
borrowerName: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
phone: [{ required: true, trigger: 'blur', validator: validatePhone }]
},
options: [],
idTypeOptions: [
{ value: '身份证', label: '身份证' },
{ value: '军官证', label: '军官证' },
{ value: '士官证', label: '士官证' },
{ value: '文职人员证', label: '文职人员证' }
],
departOptions: [],
borrowGoalOptions: [
{ value: '工作考察', label: '工作考察' },
{ value: '学术考究', label: '学术考究' },
{ value: '经济建设', label: '经济建设' },
{ value: '落实政策', label: '落实政策' },
{ value: '个人取证', label: '个人取证' },
{ value: '其他', label: '其他' }
]
}
},
mounted() {
this.getDepart()
},
methods: {
handleAddConfirm() {
this.$refs.borrowerFormDom.validate((valid) => {
if (valid) {
this.$message({
message: '新增成功!',
type: 'success'
})
this.$refs.borrowerFormDom.resetFields()
this.addFormVisible = false
} else {
this.$message.error('新增失败!')
}
})
},
handleClose() {
this.$refs.borrowerFormDom.resetFields()
this.$refs.borrowerFormDom.clearValidate()
}
}
}
</script>

119
src/views/archivesManage/lendManage/borrowerManage/module/editBorrower.vue

@ -1,119 +0,0 @@
<template>
<div>
<el-dialog
append-to-body
:close-on-click-modal="false"
:visible.sync="editFormVisible"
title="修改借阅人"
@close="handleClose"
>
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<el-form
ref="form"
:model="borrowerForm"
:rules="rules"
size="small"
label-width="80px"
style="margin-left:90px"
>
<el-form-item label="借阅人" prop="borrowerName">
<el-input
v-model="borrowerForm.borrowerName"
/>
</el-form-item>
<el-form-item label="电话号码" prop="borrowerTel">
<el-input v-model="borrowerForm.borrowerTel" />
</el-form-item>
<el-form-item label="所属部门" prop="borrowerDepartment" class="down-select">
<el-select
v-model="borrowerForm.departmentDatas"
multiple
placeholder="请选择"
>
<el-option
v-for="item in borrowerForm.departmentDatas"
:key="item.name"
:disabled="level !== 1 && item.level <= level"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="证件类型" prop="borrowerIdType" class="down-select">
<el-select
v-model="borrowerForm.idType"
multiple
placeholder="请选择"
>
<el-option
v-for="item in borrowerForm.idType"
:key="item.name"
:disabled="level !== 1 && item.level <= level"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="证件号码" prop="borrowerIdNum">
<el-input v-model="borrowerForm.borrowerIdNum" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button
type="primary"
@click="handleEditComfirm"
>确认</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
editFormVisible: false,
borrowerForm: {},
rules: {
borrowerName: [
{ required: true, message: '请输入姓名', trigger: 'blur' }
],
borrowerTel: [
{ required: true, message: '请输入电话号码', trigger: 'blur' }
]
}
}
},
methods: {
handleEditComfirm() {
this.$refs.form.validate((valid) => {
if (valid) {
this.$message({
message: '修改成功!',
type: 'success'
})
this.editFormVisible = false
this.$refs.form.resetFields()
} else {
this.$message.error('修改失败!')
return false
}
})
},
handleClose() {
this.$refs.form.resetFields()
this.$refs.form.clearValidate()
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog .el-form .el-input__inner{
width: 300px;
}
</style>

28
src/views/archivesManage/lendManage/components/archiveDetail.vue

@ -5,16 +5,16 @@
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<div class="dpflex">
<p><span class="color-blue">单据号:</span><span class="color-white">{{ rowData.orderNo }}</span></p>
<p><span class="color-blue">借阅人:</span><span class="color-white">{{ rowData.borrowerName }}</span></p>
<p><span class="color-blue">所属部门:</span><span class="color-white">{{ rowData.department }}</span></p>
<p><span class="color-blue">证件类型:</span><span class="color-white">{{ rowData.cardType }}</span></p>
<p><span class="color-blue">证件号码:</span><span class="color-white">{{ rowData.idcard }}</span></p>
<p><span class="color-blue">电话号码:</span><span class="color-white">{{ rowData.phone }}</span></p>
<p><span class="color-blue">借阅目的:</span><span class="color-white">{{ rowData.purpose }}</span></p>
<p><span class="color-blue">借阅日期:</span><span class="color-white">{{ lendDates }}</span></p>
<p><span class="color-blue">借阅状态:</span><span class="cell-lend no-lend">{{ rowData.borrowType | borrowStatus }}</span></p>
<p><span class="color-blue">操作时间:</span><span class="color-white">{{ rowData.createTime | parseTime }}</span></p>
<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="cell-lend no-lend">{{ 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" style="margin-top:15px">
<el-table-column type="index" label="序号" align="center" width="55" />
@ -45,8 +45,10 @@ export default {
return {
detailVisible: false,
rowData: {},
borrowerInfo: {},
otherInfo: {},
tableData: [],
lendDates: null
lendDatesInfo: null
}
},
methods: {
@ -55,8 +57,10 @@ export default {
'orderNo': this.rowData.orderNo
}
FetchInitBillDetails(params).then(data => {
this.otherInfo = data
this.borrowerInfo = data.borrower
this.tableData = data.borrowArchives
this.lendDates = parseTime(data.borrow_start, '{y}-{m}-{d}') + ' 至 ' + parseTime(data.borrow_end, '{y}-{m}-{d}')
this.lendDatesInfo = parseTime(data.borrow_start, '{y}-{m}-{d}') + ' 至 ' + parseTime(data.borrow_end, '{y}-{m}-{d}')
})
}
}

2
src/views/archivesManage/lendManage/index.vue

@ -30,6 +30,7 @@ import lendQuery from './lendQuery/index.vue'
import borrowerManage from './borrowerManage/index.vue'
import lendProcess from './lendProcess/index.vue'
import lendArchivesList from './components/lendArchivesList'
import { lendingCrud } from './mixins/lending'
export default {
name: 'BorrowManage',
@ -42,6 +43,7 @@ export default {
lendProcess,
lendArchivesList
},
mixins: [lendingCrud],
data() {
return {
activeIndex: 0,

27
src/views/archivesManage/lendManage/lendConfirm/index.vue

@ -14,7 +14,7 @@
:data="crud.data"
style="min-width: 100%"
@select-all="selectAll"
@selection-change="crud.selectionChangeHandler"
@selection-change="selectionChangeHandler"
@row-click="clickRowHandler"
@row-dblclick="handleDbClick"
@select="handleCurrentChange"
@ -96,22 +96,14 @@ export default {
this.getBorrowRule()
},
methods: {
selectionChangeHandler(val) {
this.selections = val
},
//
handleDbClick(row) {
this.$refs.table.clearSelection()
this.$nextTick(() => {
const archiveDetailDom = this.$refs.archiveDetailDom
archiveDetailDom.detailVisible = true
archiveDetailDom.rowData = row
archiveDetailDom.getBillDetails()
})
},
// table -
selectAll(val) {
this.selections = val
if (this.selections.length === 1) {
this.$emit('getSelections', this.selections[0])
} else {
this.$emit('getSelections', null)
}
},
//
handleCurrentChange(selection, row) {
@ -125,12 +117,11 @@ export default {
clickRowHandler(row) {
this.$refs.table.clearSelection()
this.$refs.table.toggleRowSelection(row)
this.selections.push(row)
// this.selections.push(row)
this.$emit('getSelections', row)
},
//
handelReRecord() {
console.log(this.selections)
const params = this.selections.map(item => item.orderNo)
FetchReRegister(params).then(data => {
console.log(data)
@ -157,13 +148,15 @@ export default {
if (this.lineStateVal === 'offline') {
// 线
this.$refs.lendDialogDom.lendSelections = this.selections
this.$refs.lendDialogDom.lendFormVisible = true
this.$refs.lendDialogDom.getLendTid()
} else {
// 线
const params = this.selections.map(item => item.orderNo)
console.log(this.selections)
console.log(params)
this.handleConfirmLend(params, this.selections)
}
this.$emit('getSelections', null)
}
}
}

31
src/views/archivesManage/lendManage/lendConfirm/module/lendDialog.vue

@ -35,8 +35,9 @@
import RFID from '@/api/RFID/RFID'
import { FetchReadyBorrowShowTid } from '@/api/archivesManage/lendManage'
import { lendingCrud } from '../../mixins/lending'
import { form } from '@crud/crud'
export default {
mixins: [lendingCrud],
mixins: [lendingCrud, form({})],
data() {
return {
lendFormVisible: false,
@ -51,12 +52,11 @@ export default {
}
},
mounted() {
},
methods: {
async fn(n) {
async fn(n, eas) {
return new Promise(async(resolve, reject) => {
const params = { op: 'RFID_WriteEPC', sDevID: this.devId, EAS: '0', Type: this.table[n].tagType, Code: this.table[n].archivesId, Tid: this.table[n].tid }
const params = { op: 'RFID_WriteEPC', sDevID: this.devId, EAS: eas, Type: this.table[n].tagType, Code: this.table[n].archivesId, Tid: this.table[n].tid }
let writeRes = await RFID.writeEPC(params)
writeRes = JSON.parse(writeRes)
console.log(writeRes)
@ -76,7 +76,6 @@ export default {
}, 2000)
} else {
const index = this.table.findIndex((item) => item.warnState === '解除失败')
console.log(index)
if (index === -1) {
const params = this.lendSelections.map(item => item.orderNo)
this.handleConfirmLend(params, this.lendSelections)
@ -115,15 +114,15 @@ export default {
this.table[n].warnState = '解除失败'
this.btnDisabled = false
this.unbindWarnLoading = false
this.n = this.n + 1
this.flagNum = 0
this.flagNum++
this.$message({
message: '读写器超时未响应',
type: 'error'
})
}
if (this.n !== this.table.length - 1) {
this.n = this.n + 1
this.flagNum++
if (this.n !== this.table.length) {
this.btnDisabled = true
this.unbindWarnLoading = true
clearTimeout(this.timer)
@ -139,17 +138,23 @@ export default {
this.flagNum++
this.btnDisabled = true
this.unbindWarnLoading = true
this.fn(this.n)
this.fn(this.n, 0)
},
getLendTid() {
const params = this.lendSelections.map(item => item.orderNo)
FetchReadyBorrowShowTid(params).then(data => {
if (data) {
this.table = data.archives
this.table.forEach(item => {
item.warnState = '未解除'
})
this.n = 0
if (this.table.length === 0) {
this.lendFormVisible = false
this.handleConfirmLend(params, this.lendSelections)
} else {
this.lendFormVisible = true
this.table.forEach(item => {
item.warnState = '未解除'
})
this.n = 0
}
}
})
},

1
src/views/archivesManage/lendManage/lendProcess/index.vue

@ -15,6 +15,7 @@
</template>
<script>
import { FetchUpdateBorrowRule } from '@/api/archivesManage/lendManage'
import { lendingCrud } from '../mixins/lending'
export default {

139
src/views/archivesManage/lendManage/lendQuery/index.vue

@ -6,9 +6,10 @@
</div>
<div class="head-search">
<el-select
v-model="lendState"
v-model="borrowType"
class="filter-item"
style="width: 100px; height: 30px;margin-left:10px"
@change="crud.toQuery"
>
<el-option
v-for="item in lendStateOptions"
@ -17,8 +18,8 @@
:value="item.value"
/>
</el-select>
<el-input v-model="lendQuery[lendSelect]" clearable size="small" placeholder="请输入关键词" style="width: 200px;" class="input-prepend filter-item">
<el-select slot="prepend" v-model="lendSelect" style="width: 85px">
<el-input v-model="lendQuery[lendSelect]" clearable size="small" placeholder="请输入关键词" style="width: 200px;" 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"
@ -27,7 +28,7 @@
/>
</el-select>
</el-input>
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search">搜索</el-button>
<rrOperation />
</div>
</div>
<!--表格渲染-->
@ -35,29 +36,41 @@
ref="table"
style="width: 100%"
height="calc(100vh - 356px)"
:data="tableData"
:data="crud.data"
@selection-change="selectionChangeHandler"
@row-click="clickRowHandler"
@row-dblclick="handleDbClick"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" align="center" width="55" />
<el-table-column prop="lendStatus" align="center" label="借阅状态" width="100">
<el-table-column prop="borrowType" align="center" label="借阅状态" width="100">
<template slot-scope="scope">
<!-- 待归还 / 待借阅 / 逾期 have-lend / 待登记 / 已归还 -->
<span class="cell-lend has-return" style="width:76px">{{ scope.row.lendStatus }}</span>
<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" />
<el-table-column prop="archiveNo" align="center" label="档号" width="100" />
<el-table-column prop="maintitle" align="center" label="题名" width="140" />
<el-table-column prop="caseName" align="center" label="盒名称" width="140" />
<el-table-column prop="folderLocationDetails" align="center" label="存放位置" width="160" />
<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="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-column prop="docNum" align="center" label="单据号" width="160" />
<el-table-column prop="fieldName" align="center" label="门类名称" width="150" />
<el-table-column prop="archivesID" align="center" label="档号" width="200" />
<el-table-column prop="titleName" align="center" label="题名" width="200" />
<el-table-column prop="fieldName" align="center" label="盒名称" width="150" />
<el-table-column prop="storagePath" align="center" label="存放位置" width="250" />
<el-table-column prop="borrowerName" align="center" label="借阅人" width="90" />
<el-table-column prop="borrowDays" align="center" label="借阅时间" width="180" />
<el-table-column prop="borrowGoal" align="center" label="借阅目的" width="90" />
<el-table-column align="center" prop="operationTime" label="归还时间" width="200" />
</el-table>
<!-- 档案详情 -->
<archiveDetail ref="archiveDetailDom" />
@ -68,25 +81,27 @@
<script>
import CRUD, { presenter } from '@crud/crud'
import { lendingCrud } from '../mixins/lending'
import pagination from '@crud/Pagination'
import data3 from '../data3.json'
import rrOperation from '@crud/RR.operation'
import archiveDetail from '../components/archiveDetail'
export default {
name: 'LendQuery',
components: { pagination, archiveDetail },
mixins: [presenter()],
components: { pagination, rrOperation, archiveDetail },
mixins: [presenter(), lendingCrud],
cruds() {
return CRUD({
url: 'api/case/initCaseList',
url: 'api/borrow/initBorrowLog',
// crudMethod: caseCrudMethod,
title: '档案盒',
title: '借还记录',
optShow: {
add: false,
edit: false,
del: false,
download: true,
group: false
}
},
sort: []
})
},
data() {
@ -94,63 +109,47 @@ export default {
tableData: [],
selections: [],
lendStateOptions: [
{ value: '选项1', label: '全部' },
{ value: '选项2', label: '待登记' },
{ value: '选项3', label: '待借阅' },
{ value: '选项4', label: '待归还' },
{ value: '选项5', label: '逾期' },
{ value: '选项6', label: '已归还' }
{ value: '全部', label: '全部' },
{ value: '1', label: '待登记' },
{ value: '2', label: '待借阅' },
{ value: '3', label: '待归还' },
{ value: '5', label: '逾期' },
{ value: '4', label: '已归还' }
],
lendState: '全部',
lendQuery: {},
borrowType: '全部',
queryOption: [
{ value: '选项1', label: '借阅人' },
{ value: '选项2', label: '档号' },
{ value: '选项3', label: '题名' },
{ value: '选项4', label: '位置' },
{ value: '选项5', label: '档案盒' },
{ value: '选项6', label: '条形码' },
{ value: '选项7', label: 'TID' }
],
lendSelect: ''
{ value: 'orderNo', label: '单据号' },
{ value: 'borrowerName', label: '借阅人' },
{ value: 'archiveNo', label: '档号' },
{ value: 'maintitle', label: '题名' },
{ value: 'folderLocationDetails', label: '位置' },
{ value: 'caseName', label: '档案盒' }
]
}
},
mounted() {
this.getData()
},
methods: {
getData() {
this.tableData = data3.rows
},
selectionChangeHandler(val) {
this.selections = val
//
[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]
},
clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row)
},
// cell({ row, columnIndex }) {
// if (row.lendStatus === '' && columnIndex === 2) {
// return 'no-lend'
// } else if (row.lendStatus === '' && columnIndex === 2) {
// return 'have-lend'
// }
// },
//
handleDbClick(row) {
// this.$refs.table.clearSelection()
const archiveDetailDom = this.$refs.archiveDetailDom
const arr = data3.rows.filter(item => item.docNum === row.docNum)
archiveDetailDom.rowData = row
archiveDetailDom.tableData = arr
console.log(row)
//
if (row.lendStatus === '待归还') {
archiveDetailDom.classLend = 'have-lend'
} else if (row.lendStatus === '逾期') {
archiveDetailDom.classLend = 'no-lend'
}
archiveDetailDom.detailVisible = true
}
}
}
</script>

83
src/views/archivesManage/lendManage/lendQuery/module/archiveDetail.vue

@ -1,83 +0,0 @@
<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 class="left"><span class="color-blue">单据号</span><span class="color-white">{{ rowData[0].docNum }}</span></p>
<p class="right"><span class="color-blue">借阅人:</span><span class="color-white">{{ rowData[0].borrowerName }}</span></p>
</div>
<div class="dpflex">
<p class="left"><span class="color-blue">证件类型:</span><span class="color-white">{{ rowData[0].borrowerIdType }}</span></p>
<p class="right"><span class="color-blue">所属部门:</span><span class="color-white">{{ rowData[0].borrowerDepartment }}</span></p>
</div>
<div class="dpflex">
<p class="left"><span class="color-blue">证件号码:</span><span class="color-white">{{ rowData[0].borrowerIdNum }}</span></p>
<p class="right"><span class="color-blue">电话号码:</span><span class="color-white">{{ rowData[0].borrowerTel }}</span></p>
</div>
<div class="dpflex">
<p class="left"><span class="color-blue">借阅日期:</span><span class="color-white">{{ rowData[0].borrowDays }}</span></p>
<p class="right"><span class="color-blue">借阅目的:</span><span class="color-white">{{ rowData[0].borrowGoal }}</span></p>
</div>
<div class="dpflex">
<p class="left"><span class="color-blue">借阅状态:</span><span style="width:76px">{{ rowData[0].lendStatus }}</span></p>
<p class="right"><span class="color-blue">操作时间:</span><span class="color-white">{{ rowData[0].operationTime }}</span></p>
</div>
<div class="dpflex">
<p class="left"><span class="color-blue">所属门类:</span><span class="color-white">{{ rowData[0].categoryName }}</span></p>
<p class="right"><span class="color-blue">档号:</span><span class="color-white">{{ rowData[0].archivesID }}</span></p>
</div>
<p class="left"><span class="color-blue">题名:</span><span class="color-white">{{ rowData[0].titleName }}</span></p>
<div class="dpflex">
<p class="left"><span class="color-blue">盒名称:</span><span class="color-white">{{ rowData[0].fieldName }}</span></p>
<p class="right"><span class="color-blue">存放位置:</span><span class="color-white">{{ rowData[0].storagePath }}</span></p>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
detailVisible: false,
rowData: []
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body{
padding: 60px 40px 80px 40px;
}
::v-deep .el-dialog{
width: 800px;
}
p{
display: flex;
height: 40px;
align-items: center;
.color-blue{
color: #3A99FD;
width: 70px;
height: 19px;
text-align: right;
}
.color-white{
color: white;
padding: 0 0 0 20px;
}
}
.dpflex{
display: flex;
.left{
width: 350px;
}
.right{
width: 300px;
}
}
</style>

47
src/views/archivesManage/lendManage/mixins/lending.js

@ -1,4 +1,5 @@
import { FetchInitBorrowRule, FetchBillBorrowConfirm, FetchArchivesReturnConfirm } from '@/api/archivesManage/lendManage'
import { FetchFindAllSubsetById } from '@/api/archivesConfig/dictDetail'
export const lendingCrud = {
filters: {
borrowStatus(val) {
@ -11,6 +12,8 @@ export const lendingCrud = {
return '待归还'
case 4:
return '已归还'
case 5:
return '逾期'
}
},
tidType(val) {
@ -24,14 +27,52 @@ export const lendingCrud = {
}
}
},
// 组件共用属性
data() {
return {
lineStateVal: ''
lineStateVal: '',
lendQuery: {},
lendSelect: '',
isTrue: false
}
},
// 组件挂载时的共用方法
mounted() {
if (this.queryOption) {
this.lendSelect = this.queryOption[0].value
}
},
// 组件共用方法
methods: {
borrowStyle(val) {
console.log(val)
switch (val) {
case '逾期':
return 'cell-lend have-lend'
case '已归还':
return 'cell-lend has-return'
default:
return 'cell-lend no-lend '
}
},
getDepart() {
FetchFindAllSubsetById({ id: 'BA3910917510B181160A9A' }).then(data => {
this.departOptions = data
})
},
selectionChangeHandler(val) {
this.selections = val
},
// 档案详情
handleDbClick(row) {
this.$nextTick(() => {
const archiveDetailDom = this.$refs.archiveDetailDom
archiveDetailDom.detailVisible = true
archiveDetailDom.rowData = row
archiveDetailDom.getBillDetails()
})
},
getBorrowRule() {
FetchInitBorrowRule().then(data => {
if (data) {
@ -56,9 +97,5 @@ export const lendingCrud = {
}
})
}
},
// 组件挂载时的共用方法
mounted() {
}
}

65
src/views/archivesManage/lendManage/returnArchives/index.vue

@ -6,8 +6,8 @@
<el-button :loading="crud.downloadLoading" size="mini" icon="el-icon-download">导出</el-button>
</div>
<div class="head-search">
<el-input v-model="lendQuery[lendSelect]" clearable size="small" placeholder="请输入关键词" style="width: 200px;" class="input-prepend filter-item">
<el-select slot="prepend" v-model="lendSelect" style="width: 85px">
<el-input v-model="lendQuery[lendSelect]" clearable size="small" placeholder="请输入关键词" style="width: 200px;" 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"
@ -16,7 +16,7 @@
/>
</el-select>
</el-input>
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search">搜索</el-button>
<rrOperation />
</div>
</div>
<!--表格渲染-->
@ -31,12 +31,12 @@
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" align="center" width="55" />
<el-table-column prop="orderNo" align="center" label="单据号" width="160" />
<el-table-column prop="categoryName" align="center" label="门类名称" width="150" />
<el-table-column prop="orderNo" align="center" label="单据号" width="140" />
<el-table-column prop="categoryName" align="center" label="门类名称" width="120" />
<el-table-column prop="archiveNo" align="center" label="档号" width="100" />
<el-table-column prop="maintitle" align="center" label="题名" width="150" />
<el-table-column prop="caseName" align="center" label="盒名称" width="100" />
<el-table-column prop="folderLocationDetails" align="center" label="存放位置" width="120" />
<el-table-column prop="maintitle" align="center" label="题名" width="140" />
<el-table-column prop="caseName" align="center" label="盒名称" width="140" />
<el-table-column prop="folderLocationDetails" align="center" label="存放位置" width="160" />
<el-table-column prop="borrowerName" align="center" label="借阅人" width="100" />
<el-table-column prop="borrowDays" align="center" label="借阅时间" width="200">
<template slot-scope="scope">
@ -44,13 +44,17 @@
</template>
</el-table-column>
<el-table-column prop="purpose" align="center" label="借阅目的" width="100" />
<el-table-column prop="borrowType" align="center" label="借阅状态" min-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="lendHandler" align="center" label="操作人" width="100" />
<el-table-column align="center" prop="operationTime" label="操作时间" width="180" />
<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>
<!-- 归还失败 -->
<returnDialog ref="returnDialogDom" />
@ -63,12 +67,13 @@
<script>
import pagination from '@crud/Pagination'
import rrOperation from '@crud/RR.operation'
import CRUD, { presenter } from '@crud/crud'
import { lendingCrud } from '../mixins/lending'
import archiveDetail from '../components/archiveDetail'
import returnDialog from './module/returnDialog'
export default {
components: { pagination, archiveDetail, returnDialog },
components: { pagination, rrOperation, archiveDetail, returnDialog },
mixins: [presenter(), lendingCrud],
cruds() {
return CRUD({
@ -88,46 +93,28 @@ export default {
return {
tableData: [],
selections: [],
lendQuery: {},
queryOption: [
{ value: 'queryTitle', label: '单据号' },
{ value: 'archiveNo', label: '借阅人' }
],
lendSelect: '',
returnVisible: false,
returnAgainVisible: false
queryOption: [
{ value: 'orderNo', label: '单据号' },
{ value: 'borrowerName', label: '借阅人' }
]
}
},
created() {
this.getBorrowRule()
},
mounted() {
this.lendSelect = this.queryOption[0].value
},
methods: {
selectionChangeHandler(val) {
this.selections = val
//
[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)
},
handleConfirmAgain() {
this.returnAgainVisible = false
},
//
handleDbClick(row) {
// this.$refs.table.clearSelection()
// const archiveDetailDom = this.$refs.archiveDetailDom
// archiveDetailDom.rowData = row
// archiveDetailDom.tableData = arr
// //
// if (row.lendStatus === '') {
// archiveDetailDom.classLend = 'have-lend'
// } else if (row.lendStatus === '') {
// archiveDetailDom.classLend = 'no-lend'
// }
// archiveDetailDom.detailVisible = true
},
//
handleReturn() {
if (this.selections.length > 0) {

7
src/views/archivesManage/lendManage/toLend/index.vue

@ -13,7 +13,7 @@
:data="crud.data"
@selection-change="selectionChangeHandler"
@row-click="clickRowHandler"
@row-dblclick="handleDbClick"
@row-dblclick="handleLendDbClick"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" align="center" width="55" />
@ -91,14 +91,11 @@ export default {
}
},
//
handleDbClick(row) {
handleLendDbClick(row) {
// this.$refs.table.clearSelection()
this.$refs.archiveDetailDom.detailVisible = true
this.$refs.archiveDetailDom.rowData = row
},
selectionChangeHandler(val) {
this.selections = val
},
clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row) //
}

28
src/views/archivesManage/lendManage/toLend/module/lendRecord.vue

@ -62,8 +62,8 @@
<el-form-item label="证件号码" prop="idcard">
<el-input v-model="recordForm.idcard" />
</el-form-item>
<el-form-item label="借阅时间" prop="lendDate">
<date-range-picker v-model="lendDates" />
<el-form-item label="借阅时间" prop="lendDates">
<date-range-picker v-model="recordForm.lendDates" />
</el-form-item>
<el-form-item label="借阅目的" prop="purpose" class="down-select">
<el-select
@ -90,12 +90,12 @@
<script>
import { header } from '@crud/crud'
import DateRangePicker from '@/components/DateRangePicker'
import { validatePhone, validateIdNo } from '@/utils/validate'
import { validatePhone } from '@/utils/validate'
import { FetchFindBorrowerByQuery, FetchRegisterBorrow } from '@/api/archivesManage/lendManage'
import { FetchFindAllSubsetById } from '@/api/archivesConfig/dictDetail'
import { lendingCrud } from '../../mixins/lending'
export default {
components: { DateRangePicker },
mixins: [header()],
mixins: [header(), lendingCrud],
data() {
return {
recordSelections: [],
@ -108,14 +108,15 @@ export default {
idcard: null,
borrowerStart: null,
borrowerEnd: null,
lendDates: [],
purpose: null
},
rules: {
borrowerName: [{ required: true, message: '请输入姓名', trigger: 'blur, change' }],
phone: [{ required: true, trigger: 'blur', validator: validatePhone }],
idcard: [{ trigger: 'blur', validator: validateIdNo }]
lendDates: [{ required: true, trigger: 'change', message: '请选择借阅时间' }]
// idcard: [{ trigger: 'blur', validator: validateIdNo }]
},
lendDates: [],
options: [],
idTypeOptions: [
{ value: '身份证', label: '身份证' },
@ -162,15 +163,12 @@ export default {
}
})
},
getDepart() {
FetchFindAllSubsetById({ id: 'BA3910917510B181160A9A' }).then(data => {
this.departOptions = data
})
},
handleRecordConfirm() {
this.$refs.recordFormDom.validate((valid) => {
this.recordForm.borrowerStart = this.lendDates[0]
this.recordForm.borrowerEnd = this.lendDates[1]
if (this.recordForm.lendDates !== null) {
this.recordForm.borrowerStart = this.recordForm.lendDates[0]
this.recordForm.borrowerEnd = this.recordForm.lendDates[1]
}
if (valid) {
const rbIds = this.recordSelections.map(item => item.id)
const params = {
@ -198,7 +196,7 @@ export default {
this.crud.refresh()
})
} else {
this.$message.error('登记失败!')
this.$message.error('请填写完相关信息!')
return false
}
})

Loading…
Cancel
Save