|
|
@ -40,7 +40,7 @@ |
|
|
|
<el-button>{{ checkDateLine[timeIndex].stockType === 0 ? '现在' : checkDateLine[timeIndex].endTime }}</el-button> |
|
|
|
<div class="time-update-line"> |
|
|
|
<ul class="el-timeline"> |
|
|
|
<li v-for="(activity, index) in checkDateLine" :key="index" class="el-timeline-item" @click="handleHistory(activity,index)"> |
|
|
|
<li v-for="(activity, index) in checkDateLine" :key="index" class="el-timeline-item" style="cursor: pointer;" @click="handleHistory(activity,index)"> |
|
|
|
<div class="el-timeline-item__tail" /> |
|
|
|
<div class="el-timeline-item__node el-timeline-item__node--normal" :style="index === timeIndex ? 'background-color: rgb(11, 189, 135);' : ''"> |
|
|
|
<i v-if="index === timeIndex" class="el-timeline-item__icon el-icon-more" /> |
|
|
@ -82,8 +82,29 @@ |
|
|
|
<span class="gird-left-line" /> |
|
|
|
<span class="gird-right-line" /> |
|
|
|
<div class="layer-left"> |
|
|
|
<div class="layer-left-book"> |
|
|
|
<div |
|
|
|
<swiper |
|
|
|
ref="swiperListShelf" |
|
|
|
class="shelf-swiper" |
|
|
|
:options="swiperListShelfOptions" |
|
|
|
:auto-update="true" |
|
|
|
:auto-destroy="true" |
|
|
|
> |
|
|
|
<swiper-slide |
|
|
|
v-for="(book,i) in item.books" |
|
|
|
:key="i" |
|
|
|
ref="swiperSlideItem" |
|
|
|
:class="['book-item', { 'red-active' : book.bookStatus === '错架'} ,{ 'blue-active' : book.bookStatus === '错序'}]" |
|
|
|
> |
|
|
|
<span |
|
|
|
class="book-name" |
|
|
|
@mouseenter="showPopover(index, i, $event)" |
|
|
|
@mouseleave="hidePopover" |
|
|
|
>{{ book.bookName }}</span> |
|
|
|
</swiper-slide> |
|
|
|
</swiper> |
|
|
|
|
|
|
|
<!--<div class="layer-left-book"> |
|
|
|
<div |
|
|
|
v-for="(book,i) in item.books" |
|
|
|
:key="i" |
|
|
|
:class="['book-item', { 'red-active' : book.bookStatus === '错架'} ,{ 'blue-active' : book.bookStatus === '错序'}]" |
|
|
@ -92,11 +113,11 @@ |
|
|
|
> |
|
|
|
<span class="book-name">{{ book.bookName }}</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> --> |
|
|
|
</div> |
|
|
|
<div class="layer-right-handle"> |
|
|
|
<div class="layer-info-header"> |
|
|
|
<h4>{{ item.gridName }}</h4> |
|
|
|
<h4>{{ item.gridName | removeQUPrefix }}</h4> |
|
|
|
<!-- <span>2024-11-28 09:46</span> --> |
|
|
|
</div> |
|
|
|
<div class="layer-right-content"> |
|
|
@ -143,10 +164,9 @@ |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 详情 --> |
|
|
|
<el-dialog class="dialog-grid-detail" append-to-body :close-on-click-modal="false" :visible.sync="detailVisible" :title="detailCurrent.gridName +'- 详情'" @close="handleCloseDialog"> |
|
|
|
<el-dialog class="dialog-grid-detail" append-to-body :close-on-click-modal="false" :visible.sync="detailVisible" :title="detailTitle" @close="handleCloseDialog"> |
|
|
|
<span class="dialog-right-top" /> |
|
|
|
<span class="dialog-left-bottom" /> |
|
|
|
|
|
|
|
<div class="setting-dialog"> |
|
|
|
<div class="detail-tab tab-content"> |
|
|
|
<!-- <el-button v-if="detailCurrent && detailCurrent.onShelfNum" class="check-view-img" size="mini" @click="handleViewImg"> |
|
|
@ -258,7 +278,7 @@ import crudOperation from '@crud/CRUD.operation' |
|
|
|
import { mapGetters } from 'vuex' |
|
|
|
import eForm from './module/form' |
|
|
|
import exportForm from './module/export' |
|
|
|
import { parseTime, saveAs, getBlob } from '@/utils/index' |
|
|
|
import { parseTime, saveAs, getBlob, removeQUPrefix, removePrefix } from '@/utils/index' |
|
|
|
import { swiper, swiperSlide } from 'vue-awesome-swiper' |
|
|
|
import 'swiper/dist/css/swiper.css' |
|
|
|
|
|
|
@ -285,6 +305,7 @@ export default { |
|
|
|
detailVisible: false, |
|
|
|
detailImgVisible: false, |
|
|
|
detailTable: [], |
|
|
|
detailTitle: '', |
|
|
|
detailCurrent: {}, |
|
|
|
tabdialogIndex: 0, |
|
|
|
listLoading: false, |
|
|
@ -340,7 +361,11 @@ export default { |
|
|
|
freeMode: true |
|
|
|
}, |
|
|
|
isCompare: false, |
|
|
|
shouldShowResetButton: false |
|
|
|
shouldShowResetButton: false, |
|
|
|
swiperListShelfOptions: { |
|
|
|
slidesPerView: 'auto', |
|
|
|
freeMode: true |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: { |
|
|
@ -351,6 +376,9 @@ export default { |
|
|
|
swiperList() { |
|
|
|
return this.$refs.swiperList.$el.swiper |
|
|
|
}, |
|
|
|
swiperListShelf() { |
|
|
|
return this.$refs.swiperListShelf.$el.swiper |
|
|
|
}, |
|
|
|
cellStyle: function() { |
|
|
|
const h = '76px' |
|
|
|
const w = '100%/' + this.rackNum |
|
|
@ -414,7 +442,7 @@ export default { |
|
|
|
} |
|
|
|
this.updateParts(dataScreenShelf.gridName) |
|
|
|
// 单面/双面 |
|
|
|
this.tabListData = [{ name: dataScreenShelf.regionName + ' - ' + this.removeAreaPrefix(dataScreenShelf.gridName) }] |
|
|
|
this.tabListData = [{ name: dataScreenShelf.regionName + ' - ' + removePrefix(dataScreenShelf.gridName) }] |
|
|
|
|
|
|
|
// dataScreenShelf.rowType === 1 |
|
|
|
// ? dataScreenShelf.toward === 1 |
|
|
@ -445,20 +473,6 @@ export default { |
|
|
|
}) |
|
|
|
} |
|
|
|
}, |
|
|
|
removeQUPrefix(gridNames) { |
|
|
|
const index = gridNames.indexOf('区') |
|
|
|
if (index !== -1) { |
|
|
|
return gridNames.substring(index + 1) |
|
|
|
} |
|
|
|
return gridNames |
|
|
|
}, |
|
|
|
removeAreaPrefix(gridNames) { |
|
|
|
const index = gridNames.indexOf('面') |
|
|
|
if (index !== -1) { |
|
|
|
return gridNames.substring(0, index + 1) |
|
|
|
} |
|
|
|
return gridNames |
|
|
|
}, |
|
|
|
getLocation(row) { |
|
|
|
const parts = [] |
|
|
|
if (row.floorName) { |
|
|
@ -468,7 +482,7 @@ export default { |
|
|
|
parts.push(row.regionName) |
|
|
|
} |
|
|
|
if (row.gridName) { |
|
|
|
parts.push(row.gridName) |
|
|
|
parts.push(removeQUPrefix(row.gridName)) |
|
|
|
} |
|
|
|
return parts.length > 0 ? parts.join('-') : '-' |
|
|
|
}, |
|
|
@ -540,8 +554,8 @@ export default { |
|
|
|
this.$refs.eform.form.gridShelf = null |
|
|
|
this.$refs.eform.form.gridId = item.id |
|
|
|
this.$refs.eform.form.toward = this.getGridToward |
|
|
|
this.$refs.eform.form.stockRegion = this.removeQUPrefix(item.gridName) |
|
|
|
this.$refs.eform.gridStockRegion = this.floorName + '-' + this.regionName + '-' + this.removeQUPrefix(item.gridName) |
|
|
|
this.$refs.eform.form.stockRegion = removeQUPrefix(item.gridName) |
|
|
|
this.$refs.eform.gridStockRegion = this.floorName + '-' + this.regionName + '-' + removeQUPrefix(item.gridName) |
|
|
|
// } else { |
|
|
|
// this.$message({ message: '当前层位不可盘点', type: 'error', offset: 8 }) |
|
|
|
// } |
|
|
@ -573,6 +587,12 @@ export default { |
|
|
|
handleDetail(item) { |
|
|
|
this.detailVisible = true |
|
|
|
this.detailTable = item.books |
|
|
|
if (this.checkDateLine.length !== 0) { |
|
|
|
this.detailTitle = removeQUPrefix(item.gridName) + ' - 详情 - ' + (this.checkDateLine[this.timeIndex].stockType === 0 ? '现在' : this.checkDateLine[this.timeIndex].endTime) |
|
|
|
} else { |
|
|
|
this.detailTitle = removeQUPrefix(item.gridName) + ' - 详情' |
|
|
|
} |
|
|
|
|
|
|
|
this.detailCurrent = item |
|
|
|
if (this.detailCurrent.onShelfNum) { |
|
|
|
this.bigImg = `${this.baseApi}/api/fileRelevant/getImg?imgType=1&imgId=/${this.libcode}/${this.billNoImg}/${this.detailCurrent.gridCode}/img_result/result_LSD_compressed.jpg` |
|
|
@ -773,9 +793,8 @@ export default { |
|
|
|
} |
|
|
|
FetchShowByBillIdAndShelfIdAndGridShelf(params).then(res => { |
|
|
|
this.shelfAllGridData.forEach((item) => { |
|
|
|
console.log(item.id) |
|
|
|
const gridId = item.id |
|
|
|
if (res.hasOwnProperty(gridId)) { |
|
|
|
if (res.gridShelfList.hasOwnProperty(gridId)) { |
|
|
|
this.$set(item, 'books', res.gridShelfList[gridId]) |
|
|
|
} |
|
|
|
}) |
|
|
@ -887,6 +906,7 @@ export default { |
|
|
|
margin-top: 4px; |
|
|
|
overflow: hidden; |
|
|
|
overflow-y: scroll; |
|
|
|
margin-right: -16px; |
|
|
|
} |
|
|
|
|
|
|
|
.gird-layer{ |
|
|
@ -906,7 +926,7 @@ export default { |
|
|
|
} |
|
|
|
.gird-right-line{ |
|
|
|
position: absolute; |
|
|
|
right: calc(298px); |
|
|
|
right: calc(308px); |
|
|
|
top: 0; |
|
|
|
display: block; |
|
|
|
width: 6px; |
|
|
@ -916,56 +936,56 @@ export default { |
|
|
|
z-index: 999; |
|
|
|
} |
|
|
|
.layer-left{ |
|
|
|
width: calc(100% - 240px); |
|
|
|
width: calc(100% - 220px); |
|
|
|
height: 130px; |
|
|
|
margin-right: 5px; |
|
|
|
padding: 0 16px 0 20px; |
|
|
|
padding: 0 10px; |
|
|
|
background: url('~@/assets/images/shelf02.png') repeat left top; |
|
|
|
background-size: 10% 100%; |
|
|
|
overflow: hidden; |
|
|
|
overflow-x: scroll; |
|
|
|
// overflow-x: scroll; |
|
|
|
} |
|
|
|
.layer-left-book{ |
|
|
|
// width: calc(100vw - 655px); |
|
|
|
height: 130px; |
|
|
|
white-space: nowrap; |
|
|
|
.book-item{ |
|
|
|
position: relative; |
|
|
|
display: inline-block; |
|
|
|
width: 42px; |
|
|
|
height: 120px; |
|
|
|
margin-top: 18px; |
|
|
|
background: url('~@/assets/images/shelf03.png') no-repeat left top; |
|
|
|
background-size: 100% 100%; |
|
|
|
margin-left: -15px; |
|
|
|
cursor: pointer; |
|
|
|
span.book-name{ |
|
|
|
position: absolute; |
|
|
|
left: 15px; |
|
|
|
top: 16px; |
|
|
|
display: block; |
|
|
|
height: 90px; |
|
|
|
font-size: 12px; |
|
|
|
writing-mode:vertical-rl; |
|
|
|
overflow: hidden; |
|
|
|
white-space: nowrap; |
|
|
|
text-overflow: ellipsis; |
|
|
|
} |
|
|
|
&.red-active{ |
|
|
|
background: url('~@/assets/images/shelf05.png') no-repeat left top; |
|
|
|
background-size: 100% 100%; |
|
|
|
} |
|
|
|
&.blue-active{ |
|
|
|
background: url('~@/assets/images/shelf06.png') no-repeat left top; |
|
|
|
background-size: 100% 100%; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.book-item{ |
|
|
|
position: relative; |
|
|
|
display: inline-block; |
|
|
|
width: 42px; |
|
|
|
height: 120px; |
|
|
|
margin-top: 18px; |
|
|
|
background: url('~@/assets/images/shelf03.png') no-repeat left top; |
|
|
|
background-size: 100% 100%; |
|
|
|
margin-left: -14px; |
|
|
|
cursor: pointer; |
|
|
|
span.book-name{ |
|
|
|
position: absolute; |
|
|
|
left: 15px; |
|
|
|
top: 16px; |
|
|
|
display: block; |
|
|
|
height: 90px; |
|
|
|
font-size: 12px; |
|
|
|
writing-mode:vertical-rl; |
|
|
|
overflow: hidden; |
|
|
|
white-space: nowrap; |
|
|
|
text-overflow: ellipsis; |
|
|
|
} |
|
|
|
&.red-active{ |
|
|
|
background: url('~@/assets/images/shelf05.png') no-repeat left top; |
|
|
|
background-size: 100% 100%; |
|
|
|
} |
|
|
|
&.blue-active{ |
|
|
|
background: url('~@/assets/images/shelf06.png') no-repeat left top; |
|
|
|
background-size: 100% 100%; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.layer-right-handle{ |
|
|
|
width: 300px; |
|
|
|
width: 320px; |
|
|
|
padding: 0 10px; |
|
|
|
background-color: #E8F2FF; |
|
|
|
margin: 3px 5px; |
|
|
@ -1139,4 +1159,12 @@ export default { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.shelf-swiper{ |
|
|
|
::v-deep .swiper-wrapper{ |
|
|
|
height: 120px; |
|
|
|
padding: 0 10px; |
|
|
|
// overflow: hidden; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |