Browse Source

借阅管理-待借档案/借出确认

master
xuhuajiao 3 years ago
parent
commit
a4cc16849e
  1. 37
      src/api/archivesManage/lendManage.js
  2. 4
      src/utils/validate.js
  3. 48
      src/views/archivesManage/lendManage/components/archiveDetail.vue
  4. 45
      src/views/archivesManage/lendManage/components/delConfirm.vue
  5. 71
      src/views/archivesManage/lendManage/components/lendArchivesList.vue
  6. 18
      src/views/archivesManage/lendManage/index.vue
  7. 88
      src/views/archivesManage/lendManage/lendConfirm/index.vue
  8. 17
      src/views/archivesManage/lendManage/toLend/index.vue
  9. 22
      src/views/archivesManage/lendManage/toLend/module/archiveDetail.vue
  10. 168
      src/views/archivesManage/lendManage/toLend/module/lendRecord.vue

37
src/api/archivesManage/lendManage.js

@ -1,4 +1,5 @@
import request from '@/utils/request'
// import qs from 'qs'
// 判断档案是否可以借阅
@ -28,6 +29,15 @@ export function FetchInitWaitRegisterList(parameter) {
})
}
// 根据姓名手机号检索借阅人
export function FetchFindBorrowerByQuery(parameter) {
return request({
url: 'api/borrow/findBorrowerByQuery',
method: 'get',
params: parameter
})
}
// 登记借出
export function FetchRegisterBorrow(parameter) {
return request({
@ -64,5 +74,32 @@ export function FetchInitWaitBorrowList(parameter) {
})
}
// 根据单据号获取单据下档案
export function FetchInitArchivesByOrderNo(parameter) {
return request({
url: 'api/borrow/initArchivesByOrderNo',
method: 'get',
params: parameter
})
}
// 重新登记
export function FetchReRegister(parameter) {
return request({
url: 'api/borrow/reRegister',
method: 'post',
data: parameter
})
}
// 移出待借阅清单
export function FetchRemoveWaitBorrow(parameter) {
return request({
url: 'api/borrow/removeWaitBorrow',
method: 'post',
data: parameter
})
}
export default { }

4
src/utils/validate.js

@ -140,9 +140,9 @@ export function validateTelephone(rule, value, callback) {
/* 是否手机号码*/
export function validatePhone(rule, value, callback) {
const reg = /^1([38][0-9]|4[014-9]|[59][0-35-9]|6[2567]|7[0-8])\d{8}$/
const reg = /^1[3,4,5,6,7,8,9]\d{9}$/
if (value === '' || value === undefined || value == null) {
callback()
callback(new Error('请输入电话号码'))
} else {
if ((!reg.test(value)) && value !== '') {
callback(new Error('请输入正确的电话号码'))

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

@ -5,28 +5,28 @@
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<div class="dpflex">
<p><span class="color-blue">单据号:</span><span class="color-white">{{ rowData.docNum }}</span></p>
<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.borrowerDepartment }}</span></p>
<p><span class="color-blue">证件类型:</span><span class="color-white">{{ rowData.borrowerIdType }}</span></p>
<p><span class="color-blue">证件号码:</span><span class="color-white">{{ rowData.borrowerIdNum }}</span></p>
<p><span class="color-blue">电话号码:</span><span class="color-white">{{ rowData.borrowerTel }}</span></p>
<p><span class="color-blue">借阅目的:</span><span class="color-white">{{ rowData.borrowGoal }}</span></p>
<p><span class="color-blue">借阅日期:</span><span class="color-white">{{ rowData.borrowDays }}</span></p>
<p><span class="color-blue">借阅状态:</span><span class="cell-lend no-lend">{{ rowData.lendStatus }}</span></p>
<p><span class="color-blue">操作时间:</span><span class="color-white">{{ rowData.operationTime }}</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>
</div>
<el-table :data="tableData" style="margin-top:15px">
<el-table-column type="index" label="序号" align="center" width="55" />
<el-table-column prop="categoryName" label="门类名称" align="center" min-width="100" />
<el-table-column prop="titleName" label="题名" align="center" min-width="140" />
<el-table-column prop="archivesID" label="档号" align="center" min-width="130" />
<el-table-column prop="fieldName" label="盒名称" align="center" min-width="80" />
<el-table-column prop="storagePath" label="存放位置" align="center" min-width="140" />
<el-table-column prop="lendStatus" label="借阅状态" align="center" min-width="140">
<el-table-column prop="maintitle" label="题名" align="center" min-width="140" />
<el-table-column prop="archiveNo" label="档号" align="center" min-width="130" />
<el-table-column prop="caseName" label="盒名称" align="center" min-width="80" />
<el-table-column prop="folderLocationDetails" label="存放位置" align="center" min-width="140" />
<el-table-column prop="borrowType" label="借阅状态" align="center" min-width="140">
<template slot-scope="scope">
<!-- 待借阅 / 逾期 have-lend / 待归还 / 已归还 has-return -->
<span class="cell-lend no-lend" style="width:76px">{{ scope.row.lendStatus }}</span>
<span class="cell-lend no-lend" style="width:76px">{{ scope.row.borrowType | borrowStatus }}</span>
</template>
</el-table-column>
</el-table>
@ -36,12 +36,28 @@
</template>
<script>
import { FetchInitBillDetails } from '@/api/archivesManage/lendManage'
import { lendingCrud } from '../mixins/lending'
import { parseTime } from '@/utils/index.js'
export default {
mixins: [lendingCrud],
data() {
return {
detailVisible: false,
rowData: {},
tableData: []
tableData: [],
lendDates: null
}
},
methods: {
getBillDetails() {
const params = {
'orderNo': this.rowData.orderNo
}
FetchInitBillDetails(params).then(data => {
this.tableData = data.borrowArchives
this.lendDates = parseTime(data.borrow_start, '{y}-{m}-{d}') + ' 至 ' + parseTime(data.borrow_end, '{y}-{m}-{d}')
})
}
}
}

45
src/views/archivesManage/lendManage/components/delConfirm.vue

@ -20,27 +20,66 @@
</template>
<script>
import { FetchDelWaitBorrow, FetchRemoveWaitBorrow } from '@/api/archivesManage/lendManage'
import { header } from '@crud/crud'
export default {
mixins: [header()],
props: {
listName: {
type: String,
required: true,
default: ''
},
isListType: {
type: Number,
default: 0
}
},
data() {
return {
deleteVisible: false
deleteVisible: false,
deltSelections: []
}
},
methods: {
handleConfirm() {
if (this.isListType === 1) {
this.registeredConfirm()
} else if (this.isListType === 2) {
this.pendingConfirm()
}
},
//
registeredConfirm() {
const params = this.deltSelections.map(item => item.id)
FetchDelWaitBorrow(params).then(data => {
if (data === this.deltSelections.length) {
this.deleteVisible = false
this.$message({
message: '移出待登记档案成功!',
type: 'success'
})
} else {
this.$message.error('移出列表失败!')
}
this.crud.refresh()
})
},
//
pendingConfirm() {
const params = this.deltSelections.map(item => item.orderNo)
FetchRemoveWaitBorrow(params).then(data => {
if (data === this.deltSelections.length) {
this.deleteVisible = false
// this.reconfirmDeleteVisible = true
this.$message({
message: '删除成功!',
message: '移出借出确认档案成功!',
type: 'success'
})
} else {
this.$message.error('移出借出确认列表失败!')
}
this.crud.refresh()
})
},
handleClose() {
this.deleteVisible = false

71
src/views/archivesManage/lendManage/components/lendArchivesList.vue

@ -6,65 +6,70 @@
<!-- height="calc(100vh - 355px)" -->
<el-table
ref="table"
v-loading="tableLoading"
:data="tableData"
style="min-width: 100%"
@selection-change="selectionChangeHandler"
@row-click="clickRowHandler"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" align="center" width="55" />
<el-table-column prop="docNum" align="center" label="门类名称" min-width="85" />
<el-table-column prop="archiveNum" align="center" label="档号" min-width="85" />
<el-table-column prop="borrowerName" align="center" label="题名" min-width="60" />
<el-table-column prop="borrowerDepartment" align="center" label="盒名称" min-width="85" />
<el-table-column prop="borrowerIdType" align="center" label="存放位置" min-width="100" />
<el-table-column prop="noLendStatus" align="center" label="借阅状态" min-width="70">
<el-table-column prop="categoryName" align="center" label="门类名称" min-width="85" />
<el-table-column prop="archiveNo" align="center" label="档号" min-width="85" />
<el-table-column prop="maintitle" align="center" label="题名" min-width="60" />
<el-table-column prop="caseName" align="center" label="盒名称" min-width="85" />
<el-table-column prop="folderLocationDetails" align="center" label="存放位置" min-width="100" />
<el-table-column prop="borrowType" align="center" label="借阅状态" min-width="70">
<template slot-scope="scope">
<!-- 待借阅 -->
<span class="cell-lend no-lend" style="width:76px">{{ scope.row.noLendStatus }}</span>
<span class="cell-lend no-lend" style="width:76px">{{ scope.row.borrowType | borrowStatus }}</span>
</template>
</el-table-column>
<el-table-column prop="operationTime" align="center" label="操作时间" min-width="120" />
</el-table>
<!-- 分页 -->
<pagination />
<!-- <pagination /> -->
</div>
</template>
<script>
import pagination from '@crud/Pagination'
import CRUD, { presenter } from '@crud/crud'
import { FetchInitArchivesByOrderNo } from '@/api/archivesManage/lendManage'
import { lendingCrud } from '../mixins/lending'
export default {
components: { pagination },
mixins: [presenter()],
cruds() {
return CRUD({
url: 'api/case/initCaseList',
// crudMethod: caseCrudMethod,
title: '档案盒',
optShow: {
add: false,
edit: false,
del: false,
download: true,
group: false
mixins: [lendingCrud],
props: {
archivesOrderNum: {
type: String,
default: function() {
return ''
}
}
})
},
data() {
return {
tableData: [],
selections: []
tableLoading: false
}
},
watch: {
archivesOrderNum: function(newValue, oldValue) {
if (newValue) {
this.getArchivesTable()
}
}
},
created() {
},
methods: {
clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row)
mounted() {
this.getArchivesTable()
},
selectionChangeHandler(val) {
this.selections = val
methods: {
getArchivesTable() {
this.tableLoading = true
const params = {
'orderNo': this.archivesOrderNum
}
FetchInitArchivesByOrderNo(params).then(data => {
this.tableData = data
this.tableLoading = false
})
}
}
}

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

@ -15,10 +15,10 @@
<!-- 最右侧装饰img -->
<span class="tab-right-img" />
</ul>
<component :is="comName" @callBack="callBack" />
<component :is="comName" :ref="comName" @callBack="callBack" @getSelections="getSelections" />
</div>
<!-- 借阅档案list -->
<lendArchivesList v-if="activeIndex === 1" />
<lendArchivesList v-if="activeIndex === 1 && archivesOrderNum" :archives-order-num="archivesOrderNum" />
</div>
</template>
@ -44,8 +44,8 @@ export default {
},
data() {
return {
activeIndex: 0
// recordFormVisible:false
activeIndex: 0,
archivesOrderNum: ''
}
},
computed: {
@ -69,10 +69,20 @@ export default {
methods: {
changeActiveTab(data) {
this.activeIndex = data
if (this.activeIndex === 1) {
this.archivesOrderNum = ''
}
},
//
callBack(val) {
this.activeIndex = val.index
},
getSelections(data) {
if (data) {
this.archivesOrderNum = data.orderNo
} else {
this.archivesOrderNum = ''
}
}
}
}

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

@ -10,58 +10,67 @@
<!-- height="calc(100vh - 355px)" -->
<el-table
ref="table"
:data="tableData"
:data="crud.data"
style="min-width: 100%"
@selection-change="selectionChangeHandler"
@selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
@row-dblclick="handleDbClick"
@select="handleCurrentChange"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" align="center" width="55" />
<el-table-column prop="docNum" align="center" label="单据号" min-width="85" />
<el-table-column prop="archiveNum" align="center" label="数量" min-width="50" />
<el-table-column prop="orderNo" align="center" label="单据号" min-width="100" />
<el-table-column prop="borrowNum" align="center" label="数量" min-width="50" />
<el-table-column prop="borrowerName" align="center" label="借阅人" min-width="60" />
<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="120" />
<el-table-column prop="borrowerTel" align="center" label="电话号码" min-width="85" />
<el-table-column prop="borrowDays" align="center" label="借阅时间" min-width="150" />
<el-table-column prop="borrowGoal" align="center" label="借阅目的" min-width="70" />
<el-table-column prop="noLendStatus" align="center" label="借阅状态" min-width="70">
<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="120" />
<el-table-column prop="phone" align="center" label="电话号码" min-width="85" />
<el-table-column prop="lendDates" align="center" label="借阅时间" min-width="150">
<template slot-scope="scope">
<div>{{ parseTime(scope.row.startTime, '{y}-{m}-{d}') + ' 至 ' + parseTime(scope.row.endTime, '{y}-{m}-{d}') }}</div>
</template>
</el-table-column>
<el-table-column prop="purpose" align="center" label="借阅目的" min-width="70" />
<el-table-column prop="borrowType" align="center" label="借阅状态" min-width="70">
<template slot-scope="scope">
<!-- 待借阅 -->
<span class="cell-lend no-lend" style="width:76px">{{ scope.row.noLendStatus }}</span>
<span class="cell-lend no-lend" style="width:76px">{{ scope.row.borrowType | borrowStatus }}</span>
</template>
</el-table-column>
<el-table-column prop="createTime" align="center" label="操作时间" min-width="120">
<template slot-scope="scope">
<div>{{ scope.row.createTime | parseTime }}</div>
</template>
</el-table-column>
<el-table-column prop="operationTime" align="center" label="操作时间" min-width="120" />
</el-table>
<!-- 分页 -->
<pagination />
<!--借出弹框-->
<lendDialog ref="lendDialogDom" />
<!-- 移出确认弹框 -->
<delConfirm ref="delConfirmDom" :list-name="listName" />
<delConfirm ref="delConfirmDom" :list-name="listName" :is-list-type="isListType" />
<!-- 档案详情 -->
<archiveDetail ref="archiveDetailDom" />
</div>
</template>
<script>
import { FetchReRegister } from '@/api/archivesManage/lendManage'
import pagination from '@crud/Pagination'
import CRUD, { presenter } from '@crud/crud'
// import crudOperation from '@crud/CRUD.operation'
import { lendingCrud } from '../mixins/lending'
import delConfirm from '../components/delConfirm'
import archiveDetail from '../components/archiveDetail'
import lendDialog from './module/lendDialog'
import data1 from '../data1.json'
export default {
components: { pagination, archiveDetail, delConfirm, lendDialog },
mixins: [presenter()],
mixins: [presenter(), lendingCrud],
cruds() {
return CRUD({
url: 'api/case/initCaseList',
url: 'api/borrow/initWaitBorrowList',
// crudMethod: caseCrudMethod,
title: '档案盒',
title: '借出确认',
optShow: {
add: false,
edit: false,
@ -76,40 +85,63 @@ export default {
tableData: [],
selections: [],
lendForm: {},
listName: '借出确认'
listName: '借出确认',
isListType: 2,
lendDates: null
}
},
created() {
this.getData()
},
methods: {
getData() {
this.tableData = data1.rows
},
selectionChangeHandler(val) {
this.selections = val
},
//
handleDbClick(row) {
// this.$refs.table.clearSelection()
this.$refs.table.clearSelection()
this.$nextTick(() => {
const archiveDetailDom = this.$refs.archiveDetailDom
archiveDetailDom.detailVisible = true
const arr = data1.rows.filter(item => item.docNum === row.docNum)
archiveDetailDom.rowData = row
archiveDetailDom.tableData = arr
archiveDetailDom.getBillDetails()
})
},
//
handleCurrentChange(selection, row) {
this.selections = selection
if (selection.length === 1) {
this.$emit('getSelections', selection[0])
} else {
this.$emit('getSelections', null)
}
},
clickRowHandler(row) {
this.$refs.table.clearSelection()
this.$refs.table.toggleRowSelection(row)
this.selections.push(row)
this.$emit('getSelections', row)
},
//
handelReRecord() {
console.log(11)
console.log(this.selections)
const params = this.selections.map(item => item.orderNo)
FetchReRegister(params).then(data => {
console.log(data)
if (data) {
this.$message({
message: '重新登记成功',
type: 'success'
})
this.$emit('callBack', { index: 0 })
this.crud.refresh()
}
})
},
//
handleRemove() {
if (this.selections.length > 0) {
this.$refs.delConfirmDom.deleteVisible = true
this.$refs.delConfirmDom.deltSelections = this.selections
}
},
//

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

@ -21,18 +21,22 @@
<el-table-column prop="maintitle" align="center" label="题名" min-width="120" />
<el-table-column prop="caseName" align="center" label="盒名称" min-width="85" />
<el-table-column prop="folderLocationDetails" align="center" label="存放位置" min-width="120" />
<el-table-column prop="lendStatus" align="center" label="借阅状态" min-width="60">
<el-table-column prop="borrowType" align="center" label="借阅状态" min-width="60">
<template slot-scope="scope">
<span class="cell-lend no-lend" style="width:80px">{{ scope.row.borrowType | borrowStatus }}
</span>
</template>
</el-table-column>
<el-table-column prop="operationTime" align="center" label="操作时间" min-width="85" />
<el-table-column prop="createTime" align="center" label="操作时间" min-width="120">
<template slot-scope="scope">
<div>{{ scope.row.createTime | parseTime }}</div>
</template>
</el-table-column>
</el-table>
<!-- 借阅登记模态框 -->
<lend-record ref="lendRecordDom" />
<!-- 移出确认弹框 -->
<delConfirm ref="delConfirmDom" :list-name="listName" />
<delConfirm ref="delConfirmDom" :list-name="listName" :is-list-type="isListType" />
<!-- 档案详情 -->
<archiveDetail ref="archiveDetailDom" />
<!-- 分页 -->
@ -49,7 +53,6 @@ import archiveDetail from './module/archiveDetail.vue'
import lendRecord from './module/lendRecord.vue'
export default {
components: { pagination, delConfirm, archiveDetail, lendRecord },
mixins: [presenter(), crud(), lendingCrud],
cruds() {
return CRUD({
@ -67,19 +70,23 @@ export default {
data() {
return {
selections: [],
listName: '待借列表'
listName: '待借列表',
isListType: 1
}
},
created() {
},
methods: {
//
handleRecord() {
this.$refs.lendRecordDom.recordFormVisible = true
this.$refs.lendRecordDom.recordSelections = this.selections
},
//
handleRemove() {
if (this.selections.length > 0) {
this.$refs.delConfirmDom.deleteVisible = true
this.$refs.delConfirmDom.deltSelections = this.selections
}
},
//

22
src/views/archivesManage/lendManage/toLend/module/archiveDetail.vue

@ -5,19 +5,21 @@
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<p><span class="color-blue">所属门类:</span><span class="color-white">{{ rowData.categoryName }}</span></p>
<p><span class="color-blue">档号:</span><span class="color-white">{{ rowData.archivesID }}</span></p>
<p><span class="color-blue">题名:</span><span class="color-white">{{ rowData.titleName }}</span></p>
<p><span class="color-blue">盒名称:</span><span class="color-white">{{ rowData.fieldName }}</span></p>
<p><span class="color-blue">借阅状态:</span><span class="color-white">{{ rowData.lendStatus }}</span></p>
<p><span class="color-blue">存放位置:</span><span class="color-white">{{ rowData.storagePath }}</span></p>
<p><span class="color-blue">操作时间:</span><span class="color-white">{{ rowData.operationTime }}</span></p>
<p><span class="color-blue">档号:</span><span class="color-white">{{ rowData.archiveNo }}</span></p>
<p><span class="color-blue">题名:</span><span class="color-white">{{ rowData.maintitle }}</span></p>
<p><span class="color-blue">盒名称:</span><span class="color-white">{{ rowData.caseName }}</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.folderLocationDetails }}</span></p>
<p><span class="color-blue">操作时间:</span><span class="color-white">{{ rowData.createTime | parseTime }}</span></p>
</div>
</el-dialog>
</div>
</template>
<script>
import { lendingCrud } from '../../mixins/lending'
export default {
mixins: [lendingCrud],
data() {
return {
detailVisible: false,
@ -28,6 +30,7 @@ export default {
</script>
<style lang="scss" scoped>
@import '~@/assets/styles/lend-manage.scss';
::v-deep .el-dialog{
width: 600px;
}
@ -46,7 +49,12 @@ p{
}
.color-white{
color: white;
padding: 0 0 0 20px;
margin: 0 0 0 20px;
}
.cell-lend{
margin: 0 0 0 20px;
padding: 0 20px;
line-height: 24px;
}
}

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

@ -18,68 +18,63 @@
placeholder="请选择"
clearable
filterable
:filter-method="findBorrower"
@clear="clearBorrowerData"
@change="handleSelectValue"
>
<el-option
v-for="(item,index) in options"
:key="index"
:label="item.label"
:value="item.value"
:label="item.borrowerName+'-'+item.phone"
:value="item.borrowerName+'-'+item.phone"
/>
</el-select>
</el-form-item>
<el-form-item label="电话号码" prop="tel">
<el-input v-model="recordForm.tel" />
<el-form-item label="电话号码" prop="phone">
<el-input v-model.number="recordForm.phone" />
</el-form-item>
<el-form-item label="所属部门" prop="department" class="down-select">
<el-select
v-model="recordForm.departmentDatas"
multiple
v-model="recordForm.department"
placeholder="请选择"
>
<el-option
v-for="item in recordForm.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-form-item label="证件类型" prop="cardType" class="down-select">
<el-select
v-model="recordForm.idType"
multiple
v-model="recordForm.cardType"
placeholder="请选择"
>
<el-option
v-for="item in recordForm.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="recordForm.idNumber" />
<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-date-picker v-model="lendDates" type="daterange" start-placeholder="开始日期" range-separator="" end-placeholder="结束日期" style="width: 320px;" /> -->
</el-form-item>
<el-form-item label="借阅目的" prop="borrowGoal" class="down-select">
<el-form-item label="借阅目的" prop="purpose" class="down-select">
<el-select
v-model="recordForm.borrowGoal"
multiple
v-model="recordForm.purpose"
placeholder="请选择"
>
<el-option
v-for="item in recordForm.borrowGoal"
:key="item.name"
:disabled="level !== 1 && item.level <= level"
:label="item.name"
:value="item.id"
v-for="(item,index) in borrowGoalOptions"
:key="index"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
@ -93,45 +88,106 @@
</template>
<script>
import { header } from '@crud/crud'
import DateRangePicker from '@/components/DateRangePicker'
import { validatePhone, validateIdNo } from '@/utils/validate'
import { FetchFindBorrowerByQuery, FetchRegisterBorrow } from '@/api/archivesManage/lendManage'
import { FetchFindAllSubsetById } from '@/api/archivesConfig/dictDetail'
export default {
components: { DateRangePicker },
mixins: [header()],
data() {
return {
lendDates: '',
recordSelections: [],
recordFormVisible: false,
recordForm: {
borrowerName: '',
tel: '',
departmentDatas: [],
idType: [],
idNumber: '',
lendDate: '',
borrowGoal: []
borrowerName: null,
phone: null,
department: null,
cardType: null,
idcard: null,
borrowerStart: null,
borrowerEnd: null,
purpose: null
},
rules: {
borrowerName: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
tel: [{ required: true, message: '请输入电话号码', trigger: 'blur' }]
borrowerName: [{ required: true, message: '请输入姓名', trigger: 'blur, change' }],
phone: [{ required: true, trigger: 'blur', validator: validatePhone }],
idcard: [{ trigger: 'blur', validator: validateIdNo }]
},
options: [
{
value: '小红-000000000000',
label: '小红-000000000000'
}, {
value: '小明-111111111111',
label: '小明-111111111111'
},
{
value: '小黑-222222222222',
label: '小黑-222222222222'
}
lendDates: [],
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: {
findBorrower(val) {
this.recordForm.borrowerName = val
if (val) {
this.getBorrower('blur')
} else {
this.options = []
}
},
getBorrower(type) {
const params = {
'query': this.recordForm.borrowerName
}
FetchFindBorrowerByQuery(params).then(data => {
if (data.length === 0) {
console.log('暂无此人')
}
this.options = data
if (type === 'select') {
this.recordForm.department = data[0].department
this.recordForm.cardType = data[0].cardType
this.recordForm.idcard = data[0].idcard
}
})
},
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 (valid) {
const rbIds = this.recordSelections.map(item => item.id)
const params = {
'borrower': {
'borrowerName': this.recordForm.borrowerName,
'cardType': this.recordForm.cardType,
'department': this.recordForm.department,
'idcard': this.recordForm.idcard,
'phone': this.recordForm.phone
},
'borrowerStart': this.recordForm.borrowerStart,
'borrowerEnd': this.recordForm.borrowerEnd,
'purpose': this.recordForm.purpose,
'rbIds': rbIds
}
FetchRegisterBorrow(params).then(data => {
console.log(data)
this.$message({
message: '登记成功!',
type: 'success'
@ -139,6 +195,8 @@ export default {
this.recordFormVisible = false
this.$refs.recordFormDom.resetFields()
this.$refs.recordFormDom.clearValidate()
this.crud.refresh()
})
} else {
this.$message.error('登记失败!')
return false
@ -147,9 +205,13 @@ export default {
},
handleSelectValue(val) {
this.recordForm.borrowerName = val.split('-')[0]
this.recordForm.tel = val.split('-')[1]
this.recordForm.phone = val.split('-')[1]
this.getBorrower('select')
this.$forceUpdate()
},
clearBorrowerData(val) {
this.$refs.recordFormDom.resetFields()
},
handleClose() {
this.$refs.recordFormDom.resetFields()
this.$refs.recordFormDom.clearValidate()

Loading…
Cancel
Save