Browse Source

入库多选/借阅详情加开架/样式修改

master
xuhuajiao 2 years ago
parent
commit
f5257df10b
  1. 6
      src/api/archivesManage/outInStorage.js
  2. 4
      src/assets/styles/index.scss
  3. 2
      src/views/archivesManage/archivesList/module/archivesInfo/index.vue
  4. 2
      src/views/archivesManage/archivesSearch/index.vue
  5. 80
      src/views/archivesManage/lendManage/components/archiveDetail.vue
  6. 2
      src/views/archivesManage/lendManage/components/lendArchivesList.vue
  7. 3
      src/views/archivesManage/lendManage/lendQuery/index.vue
  8. 3
      src/views/archivesManage/lendManage/returnArchives/index.vue
  9. 13
      src/views/archivesManage/outInStorage/inStorage/index.vue
  10. 4
      src/views/archivesManage/outInStorage/inStorage/module/handDialog.vue
  11. 89
      src/views/archivesManage/outInStorage/inStorage/module/inDialog.vue
  12. 2
      src/views/storeManage/warehouse3D/deseCabinet/index.vue

6
src/api/archivesManage/outInStorage.js

@ -2,9 +2,9 @@ import request from '@/utils/request'
import qs from 'qs'
// 入库 初始化档案盒装盒信息
export function initCaseByArchives(params) {
export function initCasesByArchives(params) {
return request({
url: 'api/storage/initCaseByArchives' + '?' + qs.stringify(params, { indices: false }),
url: 'api/storage/initCasesByArchives' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
@ -94,7 +94,7 @@ export function initStorageDetailes(params) {
}
export default {
initCaseByArchives,
initCasesByArchives,
isOccupy,
collect,
grant,

4
src/assets/styles/index.scss

@ -200,8 +200,8 @@ ul{
/**滚动条的宽度*/
::-webkit-scrollbar {
width: 4px;
height: 4px;
width: 8px;
height: 8px;
}
//滚动条的滑块

2
src/views/archivesManage/archivesList/module/archivesInfo/index.vue

@ -157,8 +157,6 @@ export default {
//
getDeviceListAll() {
const params = {
page: 0,
size: 10,
sort: 'sequence,asc',
storeroomId: 'D6490DA3D4261E8C26D0E3'
}

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

@ -246,8 +246,6 @@ export default {
//
getDeviceListAll() {
const params = {
page: 0,
size: 10,
sort: 'sequence,asc',
storeroomId: 'D6490DA3D4261E8C26D0E3'
}

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

@ -18,11 +18,11 @@
</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="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="260">
<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
@ -45,6 +45,11 @@
<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>
@ -53,11 +58,18 @@
<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,
@ -65,7 +77,8 @@ export default {
borrowerInfo: {},
otherInfo: {},
tableData: [],
lendDatesInfo: null
lendDatesInfo: null,
deviceData: null
}
},
methods: {
@ -78,6 +91,63 @@ export default {
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('连接失败')
})
}
}
@ -90,11 +160,11 @@ export default {
padding: 20px 0 60px 0;
}
::v-deep .el-dialog{
width: 1100px;
width: 1200px;
}
::v-deep .el-dialog .el-dialog__header .el-dialog__close::before{
position: absolute;
right: -260px;
right: -280px;
bottom: -10px;
}
.dpflex{

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

@ -155,8 +155,6 @@ export default {
//
getDeviceListAll() {
const params = {
page: 0,
size: 10,
sort: 'sequence,asc',
storeroomId: 'D6490DA3D4261E8C26D0E3'
}

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

@ -91,7 +91,7 @@
</el-table-column>
</el-table>
<!-- 档案详情 -->
<archiveDetail ref="archiveDetailDom" />
<archiveDetail ref="archiveDetailDom" :is-return="isReturn" />
<!-- 分页 -->
<pagination />
</div>
@ -125,6 +125,7 @@ export default {
},
data() {
return {
isReturn: false,
selections: [],
lendStateOptions: [
{ value: '全部', label: '全部' },

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

@ -76,7 +76,7 @@
<!-- 归还失败 -->
<releaseAlarm ref="releaseAlarmDom" />
<!-- 档案详情 -->
<archiveDetail ref="archiveDetailDom" />
<archiveDetail ref="archiveDetailDom" :is-return="isReturn" />
<!-- 分页 -->
<pagination />
</div>
@ -110,6 +110,7 @@ export default {
},
data() {
return {
isReturn: true,
selections: [],
queryOption: [
{ value: 'orderNo', label: '单据号' },

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

@ -24,7 +24,7 @@
<rrOperation />
</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="orange-btn iconfont icon-ruku-fanbai" :disabled="!selections.length" @click="handleIn">入库</el-button>
<el-button size="mini" class="green-btn iconfont icon-ruku-fanbai" :disabled="!selections.length" @click="handleHand">人工确认</el-button>
</div>
</div>
@ -110,7 +110,7 @@ import pagination from '@crud/Pagination'
import detailDialog from '../module/detailDialog.vue'
import inDialog from './module/inDialog.vue'
import handDialog from './module/handDialog.vue'
import { initCaseByArchives, readyCollectConfirm, collectConfirm, initStorageDetailes } from '@/api/archivesManage/outInStorage'
import { initCasesByArchives, readyCollectConfirm, collectConfirm, initStorageDetailes } from '@/api/archivesManage/outInStorage'
// import { getDetail } from '../module/outIn'
export default {
name: 'InStorage',
@ -192,12 +192,13 @@ export default {
},
//
handleIn() {
if (this.selections[0].storageType === 0) {
const caseIds = this.selections.map(item => { return item.id })
const index = this.selections.every((item) => item.storageType === 0)
if (index) {
const params = {
caseId: this.selections[0].id
// caseId: '8A686B1E9F255DCBE6B262'
caseIds: caseIds
}
initCaseByArchives(params).then(res => {
initCasesByArchives(params).then(res => {
this.$refs.inDialogDom.childData = res
})
this.$refs.inDialogDom.dialogVisible = true

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

@ -10,10 +10,10 @@
<el-table ref="table" :data="tableData" style="width: 100%" height="325px" @row-click="clickRowHandler" @selection-change="selectionChangeHandler">
<el-table-column type="selection" align="center" width="55" />
<el-table-column type="index" align="center" label="序号" width="60" />
<el-table-column prop="caseName" align="center" label="盒名称" width="100" />
<el-table-column prop="caseName" align="center" label="盒名称" width="200" />
<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="260">
<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

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

@ -20,8 +20,8 @@
<!-- <button @click="test">测试</button> -->
<!-- 密集架 -->
<ul v-if="cnName==='密集架'">
<li v-for="(eItem,index) in childData" :key="eItem.id" class="box">
<p class="case-name">盒名称{{ eItem.caseName }}</p>
<li v-for="(eItem,index) in mijiChild" :key="eItem.id" class="box">
<p class="case-name">盒名称<el-tag v-for="item in childData" :key="item.id">{{ item.caseName }}</el-tag></p>
<div class="frame-content head-container">
<div class="frame-item">
<span>区号</span>
@ -29,25 +29,25 @@
</div>
<div class="frame-item item-line">
<span></span>
<el-select v-model="childData[index].colNum" class="filter-item" style="width: 86px;" @change="selectChange(index,'col')">
<el-select v-model="mijiChild[index].colNum" class="filter-item" style="width: 86px;" @change="selectChange(index,'col')">
<el-option v-for="item in columnOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
<div class="frame-item item-line">
<span></span>
<el-select v-model="childData[index].sectionNum" class="filter-item" style="width: 86px;" :disabled="childData[index].colNum === ''" @change="selectChange(index)">
<el-select v-model="mijiChild[index].sectionNum" class="filter-item" style="width: 86px;" :disabled="mijiChild[index].colNum === ''" @change="selectChange(index)">
<el-option v-for="item in partOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
<div class="frame-item item-line">
<span></span>
<el-select v-model="childData[index].levelNum" class="filter-item" style="width: 86px;" :disabled="childData[index].colNum === ''||childData[index].sectionNum === ''" @change="selectChange(index)">
<el-select v-model="mijiChild[index].levelNum" class="filter-item" style="width: 86px;" :disabled="mijiChild[index].colNum === ''||mijiChild[index].sectionNum === ''" @change="selectChange(index)">
<el-option v-for="item in rowOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
<div class="frame-item item-line">
<span>方向</span>
<el-select v-model="childData[index].direction" class="filter-item" style="width: 86px;" :disabled="childData[index].colNum === ''||childData[index].sectionNum === ''||childData[index].levelNum === ''" @change="selectChange(index)">
<el-select v-model="mijiChild[index].direction" class="filter-item" style="width: 86px;" :disabled="mijiChild[index].colNum === ''||mijiChild[index].sectionNum === ''||mijiChild[index].levelNum === ''" @change="selectChange(index)">
<el-option v-for="item in directionOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
@ -60,7 +60,7 @@
<div>
<p v-show="btnChecked[index]===2" class="success-msg">
<i class="iconfont icon-tishichenggong" />
<span class="success-text">位置已核对成功,层位名称{{ fieldNum }}{{ childData[index].colNum }}{{ childData[index].sectionNum }}{{ childData[index].levelNum }}{{ (childData[index].direction==='1'? '左边':'')||(childData[index].direction==='2'?'右边':'') }}</span>
<span class="success-text">位置已核对成功,层位名称{{ fieldNum }}{{ mijiChild[index].colNum }}{{ mijiChild[index].sectionNum }}{{ mijiChild[index].levelNum }}{{ (mijiChild[index].direction==='1'? '左边':'')||(mijiChild[index].direction==='2'?'右边':'') }}</span>
</p>
<p v-show="btnChecked[index]===3" class="fail-msg">
<i class="iconfont icon-tishijinggao" />
@ -146,6 +146,7 @@ export default {
dialogVisible: false,
singleVisible: false,
childData: [], //
mijiChild: [],
fieldNum: 1, //
btnChecked: [], //
columnOptions: [], // -,-
@ -170,20 +171,33 @@ export default {
handleNodeClick(data) {
this.deviceId = data.id
this.cnName = data.deviceTypeId.name
console.log(data)
this.mijiChild.push(this.childData[0])
//
this.btnChecked = this.childArr(1)
this.isOccupy = this.childArr({})
const params = { deviceInfoId: data.id }
//
for (let index = 0; index < this.childData.length; index++) {
this.childData[index].colNum = ''
this.childData[index].sectionNum = ''
this.childData[index].levelNum = ''
this.childData[index].direction = ''
this.childData[index].cabLevel = ''
this.childData[index].cabCol = ''
if (this.deviceType === 1) {
//
for (let index = 0; index < this.mijiChild.length; index++) {
this.mijiChild[index].colNum = ''
this.mijiChild[index].sectionNum = ''
this.mijiChild[index].levelNum = ''
this.mijiChild[index].direction = ''
this.mijiChild[index].cabLevel = ''
this.mijiChild[index].cabCol = ''
}
} else {
//
for (let index = 0; index < this.childData.length; index++) {
this.childData[index].colNum = ''
this.childData[index].sectionNum = ''
this.childData[index].levelNum = ''
this.childData[index].direction = ''
this.childData[index].cabLevel = ''
this.childData[index].cabCol = ''
}
}
//
if (data.deviceTypeId.name === '密集架') {
this.deviceType = 1
@ -223,9 +237,18 @@ export default {
// -----
childArr(str) {
const arr = []
for (let i = 0; i < this.childData.length; i++) {
arr.push(str)
if (this.deviceType === 1) {
for (let i = 0; i < this.mijiChild.length; i++) {
arr.push(str)
}
} else {
for (let i = 0; i < this.childData.length; i++) {
arr.push(str)
}
}
// for (let i = 0; i < this.childData.length; i++) {
// arr.push(str)
// }
return JSON.parse(JSON.stringify(arr))
},
test() {
@ -233,7 +256,12 @@ export default {
},
//
async selectChange(index, position) {
const obj = this.childData[index]
let obj
if (this.deviceType === 1) {
obj = this.mijiChild[index]
} else {
obj = this.childData[index]
}
// 2(9,10)5
// if (this.deviceType === 1 && position === 'col') {
// if (obj.colNum > 8) {
@ -282,8 +310,15 @@ export default {
})
//
if (res) {
this.btnChecked[index] = 2
this.isOccupy[index] = res
if (this.deviceType === 1) {
this.childData.forEach((item, i) => {
this.isOccupy[i] = res
this.btnChecked[i] = 2
})
} else {
this.btnChecked[index] = 2
this.isOccupy[index] = res
}
} else {
this.btnChecked[index] = 3
}
@ -295,6 +330,7 @@ export default {
// const caseId = this.childData.map(item => item.id)
this.crud.downloadLoading = true
const params = []
console.log('isOccupy2', this.isOccupy)
this.isOccupy.forEach((item, i) => {
const obj = {}
obj.caseId = this.childData[i].id
@ -304,6 +340,7 @@ export default {
obj.shelfId = item.id
params.push(obj)
})
console.log('params', params)
collect(params).then(data => {
console.log(data, 'data')
if (data) {
@ -317,6 +354,12 @@ export default {
},
handleClose() {
this.cnName = null
this.mijiChild = []
this.childData = []
this.crud.downloadLoading = false
this.btnChecked = this.childArr(1)
this.isOccupy = this.childArr({})
this.crud.refresh()
},
open() {
if (this.$refs.deviceTree) {
@ -465,4 +508,8 @@ export default {
color: #fff;
font-size: 16px;
}
.el-tag{
font-size: 14px;
margin-right: 4px;
}
</style>

2
src/views/storeManage/warehouse3D/deseCabinet/index.vue

@ -177,8 +177,6 @@ export default {
getDeviceListAll() {
this.loading = true
const params = {
page: 0,
size: 10,
sort: 'sequence,asc',
storeroomId: this.storeroomId
}

Loading…
Cancel
Save