Browse Source

出入库管理 入库人工确认

master
x_ying 3 years ago
parent
commit
6001f9a695
  1. 29
      src/api/archivesManage/outInStorage.js
  2. 42
      src/views/archivesManage/outInStorage/inStorage/index.vue
  3. 89
      src/views/archivesManage/outInStorage/inStorage/module/handDialog.vue

29
src/api/archivesManage/outInStorage.js

@ -26,6 +26,24 @@ export function collect(params) {
})
}
// 入库 预人工确认
export function readyCollectConfirm(params) {
return request({
url: 'api/storage/readyCollectConfirm',
method: 'post',
data: params
})
}
// 入库 人工确认
export function collectConfirm(params) {
return request({
url: 'api/storage/collectConfirm',
method: 'post',
data: params
})
}
// 出库
export function grant(params) {
return request({
@ -34,6 +52,7 @@ export function grant(params) {
data: params
})
}
// 出入库记录 导出
export function exportStorageLogList(params) {
return request({
@ -41,4 +60,12 @@ export function exportStorageLogList(params) {
method: 'get'
})
}
export default { initCaseByArchives, isOccupy, collect, grant, exportStorageLogList }
export default {
initCaseByArchives,
isOccupy,
collect,
grant,
exportStorageLogList,
readyCollectConfirm,
collectConfirm
}

42
src/views/archivesManage/outInStorage/inStorage/index.vue

@ -24,7 +24,7 @@
</div>
<div>
<el-button size="mini" class="orange-btn iconfont icon-ruku-fanbai" :disabled="!(selections.length===1)" @click="handleIn">入库</el-button>
<el-button size="mini" class="green-btn iconfont icon-ruku-fanbai" :disabled="!selections.length" @click="handleManual">人工确认</el-button>
<el-button size="mini" class="green-btn iconfont icon-ruku-fanbai" :disabled="!selections.length" @click="handleHand">人工确认</el-button>
</div>
</div>
<!--表格渲染-->
@ -77,16 +77,9 @@
<p>当前档案盒正在入库,请勿重复操作</p>
</div>
</el-dialog>
<!-- 人工确认 入库成功 -->
<el-dialog title="提示" :visible.sync="msgSuccessVisible">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<p>入库成功</p>
<p style="color:#f00;margin:10px 0;display:block">提示如果当前设备不在线或者未勾选联动操作请人工完成上架操作</p>
</div>
</el-dialog>
<!-- 人工确认失败提示 -->
<!-- 人工确认 成功 -->
<handDialog ref="handDialogDom" />
<!-- 人工确认 失败 -->
<el-dialog title="提示" :visible.sync="msgFailVisible">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
@ -103,10 +96,11 @@ import CRUD, { presenter, crud } from '@crud/crud'
import pagination from '@crud/Pagination'
import fieldDetail from './module/fieldDetail.vue'
import inDialog from './module/inDialog.vue'
import { initCaseByArchives } from '@/api/archivesManage/outInStorage'
import handDialog from './module/handDialog.vue'
import { initCaseByArchives, readyCollectConfirm, collectConfirm } from '@/api/archivesManage/outInStorage'
export default {
name: 'InStorage',
components: { rrOperation, pagination, fieldDetail, inDialog },
components: { rrOperation, pagination, fieldDetail, inDialog, handDialog },
mixins: [presenter(), crud()],
cruds() {
return CRUD({
@ -118,7 +112,6 @@ export default {
data() {
return {
msgVisible: false,
msgSuccessVisible: false,
msgFailVisible: false,
tableData: [],
selections: [],
@ -178,11 +171,28 @@ export default {
}
},
//
handleManual() {
handleHand() {
if (this.selections.length > 0) {
const bool = this.selections.every(item => item.storageType === 1)
if (bool) { // ''
this.msgSuccessVisible = true
const params = this.selections.map(item => item.id)
readyCollectConfirm(params).then(res => {
console.log(res, '预人工确认res')
const handDialogDom = this.$refs.handDialogDom
if (res.length === 1) {
const params = res.map(item => item.caseId)
collectConfirm(params).then(data => {
handDialogDom.singleVisible = true
this.crud.refresh()
})
} else if (res.length > 1) {
handDialogDom.tableData = res
this.$nextTick(() => { //
handDialogDom.$refs.table.toggleAllSelection()
})
handDialogDom.manyVisible = true
}
})
} else { //
this.msgFailVisible = true
}

89
src/views/archivesManage/outInStorage/inStorage/module/handDialog.vue

@ -0,0 +1,89 @@
<template>
<div>
<!-- 单个 -->
<el-dialog title="提示" :visible.sync="singleVisible">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<p>入库成功</p>
<p style="color:#f00;margin:10px 0;display:block">提示如果当前设备不在线或者未勾选联动操作请人工完成上架操作</p>
</div>
</el-dialog>
<!-- 多个 -->
<el-dialog title="提示" :visible.sync="manyVisible">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<p class="msg">该案卷存在多个档案盒请确认全部入库</p>
<el-table ref="table" :data="tableData" height="325px" @row-click="clickRowHandler" @selection-change="selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column type="index" align="center" label="序号" width="80" />
<el-table-column prop="caseName" align="center" label="盒名称" width="100" />
<el-table-column prop="tid" align="center" label="TID" width="180" />
<el-table-column prop="barcode" align="center" label="条形码" width="140" />
<el-table-column prop="folderLocationDetails" align="center" label="存放位置" width="180" />
</el-table>
<div slot="footer" class="dialog-footer">
<el-button class="btn-save" :disabled="!(selections.length === tableData.length)" @click="handleConfirm">确定</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { collectConfirm } from '@/api/archivesManage/outInStorage'
import { crud } from '@crud/crud'
export default {
mixins: [crud()],
data() {
return {
singleVisible: false,
manyVisible: false,
tableData: [],
selections: []
}
},
methods: {
selectionChangeHandler(val) {
this.selections = val
},
clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row) //
},
handleConfirm() {
const params = this.tableData.map(item => { return item.caseId })
console.log(params)
collectConfirm(params).then(res => {
console.log(res, '人工确认')
this.$message({
message: '入库成功!',
type: 'success'
})
this.manyVisible = false
this.crud.refresh()
})
}
}
}
</script>
<style lang="scss" scoped>
.setting-dialog{
color: #fff;
font-size: 16px;
}
.msg{
padding: 0 10px 10px 10px;
}
.btn-save{
width: 90px;
height: 36px;
font-size: 16px;
background-color: #339CFF;
}
.btn-save.is-disabled{
background-color: #031435;
}
</style>
Loading…
Cancel
Save