Browse Source

密集架

master
xuhuajiao 3 years ago
parent
commit
7cb4a45357
  1. 20
      public/webA/index.js
  2. BIN
      src/assets/images/panel-n.png
  3. BIN
      src/assets/images/panel-y.png
  4. 6
      src/views/archivesManage/archivesList/index.vue
  5. 30
      src/views/archivesManage/caseManage/caseList/index.vue
  6. 20
      src/views/storeManage/warehouse3D/archivesStorage/index.vue
  7. 247
      src/views/storeManage/warehouse3D/deseCabinet/data.json
  8. 228
      src/views/storeManage/warehouse3D/deseCabinet/index.vue
  9. 4
      src/views/storeManage/warehouse3D/index.vue

20
public/webA/index.js

@ -993,7 +993,7 @@ var createScene = function() {
); );
player_balloon_js1.size = 0.1; player_balloon_js1.size = 0.1;
player_balloon_js1.name = "1"; player_balloon_js1.name = "1";
player_balloon_js1.nameID = "cabinet01";
player_balloon_js1.nameID = "01";
player_balloon_js1.cellIndex = 0; player_balloon_js1.cellIndex = 0;
player_balloon_js1.position = new BABYLON.Vector3(-2.5, 3.5, -0.72); player_balloon_js1.position = new BABYLON.Vector3(-2.5, 3.5, -0.72);
player_balloon_js1.isPickable = true; player_balloon_js1.isPickable = true;
@ -1009,7 +1009,7 @@ var createScene = function() {
); );
player_balloon_js2.size = 0.1; player_balloon_js2.size = 0.1;
player_balloon_js2.name = "2"; player_balloon_js2.name = "2";
player_balloon_js2.nameID = "cabinet02";
player_balloon_js2.nameID = "02";
player_balloon_js2.cellIndex = 0; player_balloon_js2.cellIndex = 0;
player_balloon_js2.position = new BABYLON.Vector3(-2.5, 3.5, -0.38); player_balloon_js2.position = new BABYLON.Vector3(-2.5, 3.5, -0.38);
@ -1026,7 +1026,7 @@ var createScene = function() {
); );
player_balloon_js3.size = 0.1; player_balloon_js3.size = 0.1;
player_balloon_js3.name = "3"; player_balloon_js3.name = "3";
player_balloon_js3.nameID = "cabinet03";
player_balloon_js3.nameID = "03";
player_balloon_js3.cellIndex = 0; player_balloon_js3.cellIndex = 0;
player_balloon_js3.position = new BABYLON.Vector3(-2.5, 3.5, -0.03); player_balloon_js3.position = new BABYLON.Vector3(-2.5, 3.5, -0.03);
@ -1043,7 +1043,7 @@ var createScene = function() {
); );
player_balloon_js4.size = 0.1; player_balloon_js4.size = 0.1;
player_balloon_js4.name = "4"; player_balloon_js4.name = "4";
player_balloon_js4.nameID = "cabinet04";
player_balloon_js4.nameID = "04";
player_balloon_js4.cellIndex = 0; player_balloon_js4.cellIndex = 0;
player_balloon_js4.position = new BABYLON.Vector3(-2.5, 3.5, 0.3); player_balloon_js4.position = new BABYLON.Vector3(-2.5, 3.5, 0.3);
@ -1060,7 +1060,7 @@ var createScene = function() {
); );
player_balloon_js5.size = 0.1; player_balloon_js5.size = 0.1;
player_balloon_js5.name = "5"; player_balloon_js5.name = "5";
player_balloon_js5.nameID = "cabinet05";
player_balloon_js5.nameID = "05";
player_balloon_js5.cellIndex = 0; player_balloon_js5.cellIndex = 0;
player_balloon_js5.position = new BABYLON.Vector3(-2.5, 3.5, 0.64); player_balloon_js5.position = new BABYLON.Vector3(-2.5, 3.5, 0.64);
@ -1077,7 +1077,7 @@ var createScene = function() {
); );
player_balloon_js6.size = 0.1; player_balloon_js6.size = 0.1;
player_balloon_js6.name = "6"; player_balloon_js6.name = "6";
player_balloon_js6.nameID = "cabinet06";
player_balloon_js6.nameID = "06";
player_balloon_js6.cellIndex = 0; player_balloon_js6.cellIndex = 0;
player_balloon_js6.position = new BABYLON.Vector3(-2.5, 3.5, 0.98); player_balloon_js6.position = new BABYLON.Vector3(-2.5, 3.5, 0.98);
@ -1094,7 +1094,7 @@ var createScene = function() {
); );
player_balloon_js7.size = 0.1; player_balloon_js7.size = 0.1;
player_balloon_js7.name = "7"; player_balloon_js7.name = "7";
player_balloon_js7.nameID = "cabinet07";
player_balloon_js7.nameID = "07";
player_balloon_js7.cellIndex = 0; player_balloon_js7.cellIndex = 0;
player_balloon_js7.position = new BABYLON.Vector3(-2.5, 3.5, 1.32); player_balloon_js7.position = new BABYLON.Vector3(-2.5, 3.5, 1.32);
@ -1111,7 +1111,7 @@ var createScene = function() {
); );
player_balloon_js8.size = 0.1; player_balloon_js8.size = 0.1;
player_balloon_js8.name = "8"; player_balloon_js8.name = "8";
player_balloon_js8.nameID = "cabinet08";
player_balloon_js8.nameID = "08";
player_balloon_js8.cellIndex = 0; player_balloon_js8.cellIndex = 0;
player_balloon_js8.position = new BABYLON.Vector3(-2.5, 3.5, 1.66); player_balloon_js8.position = new BABYLON.Vector3(-2.5, 3.5, 1.66);
player_balloon_js8.isPickable = true; player_balloon_js8.isPickable = true;
@ -1127,7 +1127,7 @@ var createScene = function() {
); );
player_balloon_js9.size = 0.1; player_balloon_js9.size = 0.1;
player_balloon_js9.name = "9"; player_balloon_js9.name = "9";
player_balloon_js9.nameID = "cabinet09";
player_balloon_js9.nameID = "09";
player_balloon_js9.cellIndex = 0; player_balloon_js9.cellIndex = 0;
player_balloon_js9.position = new BABYLON.Vector3(-2.5, 3.5, 2); player_balloon_js9.position = new BABYLON.Vector3(-2.5, 3.5, 2);
//-2.3895861905112934, 3.402393519214794, z: 0.3225995832152506 //-2.3895861905112934, 3.402393519214794, z: 0.3225995832152506
@ -1143,7 +1143,7 @@ var createScene = function() {
); );
player_balloon_js10.size = 0.1; player_balloon_js10.size = 0.1;
player_balloon_js10.name = "10"; player_balloon_js10.name = "10";
player_balloon_js10.nameID = "cabinet10";
player_balloon_js10.nameID = "10";
player_balloon_js10.cellIndex = 0; player_balloon_js10.cellIndex = 0;
player_balloon_js10.position = new BABYLON.Vector3(-2.5, 3.5, 2.33); player_balloon_js10.position = new BABYLON.Vector3(-2.5, 3.5, 2.33);
player_balloon_js10.isPickable = true; player_balloon_js10.isPickable = true;

BIN
src/assets/images/panel-n.png

After

Width: 165  |  Height: 710  |  Size: 23 KiB

BIN
src/assets/images/panel-y.png

After

Width: 165  |  Height: 710  |  Size: 24 KiB

6
src/views/archivesManage/archivesList/index.vue

@ -3,7 +3,7 @@
<!-- 门类列表 --> <!-- 门类列表 -->
<el-row class="container-main"> <el-row class="container-main">
<el-col class="curd-in-out" :xs="10" :sm="8" :md="5" :lg="6" :xl="5"> <el-col class="curd-in-out" :xs="10" :sm="8" :md="5" :lg="6" :xl="5">
<div :class="['container-left', !isRecycle?'left-tree-item':'']">
<div :class="['container-left', !isRecycle ? 'left-tree-item' : '' ]">
<span class="right-top-line" /> <span class="right-top-line" />
<span class="left-bottom-line" /> <span class="left-bottom-line" />
<div class="tree-title">档案门类</div> <div class="tree-title">档案门类</div>
@ -25,7 +25,7 @@
<!-- 档案管理列表 --> <!-- 档案管理列表 -->
<el-col class="archives-right-list" :xs="14" :sm="18" :md="19" :lg="18" :xl="19"> <el-col class="archives-right-list" :xs="14" :sm="18" :md="19" :lg="18" :xl="19">
<div v-if="selectedCategory.isType !== 1 && !isRecycle" :class="['archives-top', {'archives-fixed-top': selectedCategory.isType===2 || selectedCategory.isType===4 }]">
<div v-if="selectedCategory.isType !== 1 && !isRecycle" :class="['archives-top', {'archives-fixed-top': selectedCategory.isType === 2 || selectedCategory.isType === 4 }]">
<el-checkbox v-model="fixedStatusBar">隐藏固定状态栏</el-checkbox> <el-checkbox v-model="fixedStatusBar">隐藏固定状态栏</el-checkbox>
</div> </div>
<!-- 项目 --> <!-- 项目 -->
@ -39,7 +39,7 @@
/> />
<!-- 案卷 --> <!-- 案卷 -->
<archivesAnjuan <archivesAnjuan
v-if="selectedCategory.isType === 2 || selectedCategory.isType === 3|| selectedCategory.isType === 5"
v-if="selectedCategory.isType === 2 || selectedCategory.isType === 3 || selectedCategory.isType === 5"
ref="anjuan" ref="anjuan"
:selected-category="selectedCategory" :selected-category="selectedCategory"
:is-project="isProject" :is-project="isProject"

30
src/views/archivesManage/caseManage/caseList/index.vue

@ -31,9 +31,9 @@
<el-table ref="table" v-loading="crud.loading" :cell-class-name="cell" :data="crud.data" style="width: 100%;" height="calc(100vh - 357px)" @row-dblclick="handleDbClick" @selection-change="crud.selectionChangeHandler" @row-click="clickRowHandler"> <el-table ref="table" v-loading="crud.loading" :cell-class-name="cell" :data="crud.data" style="width: 100%;" height="calc(100vh - 357px)" @row-dblclick="handleDbClick" @selection-change="crud.selectionChangeHandler" @row-click="clickRowHandler">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" /> <el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="depositNum" label="入库" align="center" min-width="56">
<el-table-column prop="storageType" label="入库" align="center" min-width="56">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.depositNum===0" class="clear" style="width:56px">未入</span>
<span class="clear" style="width:56px">{{ scope.row.storageType | storageTypeStatus }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="depositNum" label="已装" align="center" min-width="56" /> <el-table-column prop="depositNum" label="已装" align="center" min-width="56" />
@ -86,6 +86,20 @@ import pagination from '@crud/Pagination'
import detailDialog from './module/detailDialog.vue' import detailDialog from './module/detailDialog.vue'
export default { export default {
name: 'CaseList', name: 'CaseList',
filters: {
storageTypeStatus(val) {
switch (val) {
case 0:
return '未入'
case 1:
return '待入'
case 2:
return '已入'
case 3:
return '待出'
}
}
},
components: { eForm, crudOperation, rrOperation, pagination, BindingTagDlg, openCaseDlg, detailDialog }, components: { eForm, crudOperation, rrOperation, pagination, BindingTagDlg, openCaseDlg, detailDialog },
mixins: [presenter(), crud()], mixins: [presenter(), crud()],
cruds() { cruds() {
@ -144,9 +158,11 @@ export default {
label: '条形码', label: '条形码',
value: 'barcode' value: 'barcode'
} }
]
],
storageTypeVal: null
} }
}, },
methods: { methods: {
clickRowHandler(row) { clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row) this.$refs.table.toggleRowSelection(row)
@ -188,12 +204,14 @@ export default {
}, },
// //
cell({ row, columnIndex }) { cell({ row, columnIndex }) {
if (row.depositNum === 0 && columnIndex === 2) { //
if (row.storageType === 0) { //
return 'fail-clear' return 'fail-clear'
} else if (row.depositNum === '待入' && columnIndex === 2) { //
} else if (row.storageType === 1) { //
return 'no-clear' return 'no-clear'
} else if (row.depositNum === '待入' && columnIndex === 2) { //
} else if (row.storageType === 2) { //
return 'have-clear' return 'have-clear'
} else if (row.storageType === 3) { //
return 'other-clear'
} }
}, },
// //

20
src/views/storeManage/warehouse3D/archivesStorage/index.vue

@ -113,7 +113,7 @@ export default {
document.getElementById('myIframe').onload = function() { document.getElementById('myIframe').onload = function() {
_this.deviceState() _this.deviceState()
} }
// window.addEventListener('message', this.handleMessageDevice)
window.addEventListener('message', this.handleMessageDevice)
}, },
methods: { methods: {
// data / iframe // data / iframe
@ -148,14 +148,16 @@ export default {
}, '*') }, '*')
}, },
// / // /
// handleMessageDevice(event) {
// const _this = this
// if (event.data && event.data.data) {
// const data = event.data.data
// _this.deviceId = data
// console.log(_this.deviceId)
// }
// },
handleMessageDevice(event) {
const _this = this
if (event.data && event.data.data) {
const data = event.data.data
_this.deviceId = data
console.log(_this.deviceId)
_this.$router.push('/storeManage/deseCabinet')
localStorage.setItem('cabinetNum', _this.deviceId)
}
},
// 湿 // 湿
handleAQI(deviceId, wendu, sidu) { handleAQI(deviceId, wendu, sidu) {
window.frames['iframeMap'].setAlertValue(deviceId, wendu, sidu) window.frames['iframeMap'].setAlertValue(deviceId, wendu, sidu)

247
src/views/storeManage/warehouse3D/deseCabinet/data.json

@ -0,0 +1,247 @@
{
"totalData": 36,
"leftData":[
{
"outNum": 1,
"inNum": 2
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 10
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 30,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
}
],
"rightData":[
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 1,
"inNum": 2
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 15,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
},
{
"outNum": 0,
"inNum": 0
}
]
}

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

@ -0,0 +1,228 @@
<template>
<div class="app-container">
<div class="cabinet-top">
<p class="cabinet-info">密集架1号机 - 1 - {{ cabinetNum }} </p>
<div class="cabinet-des">
<p>档案总数{{ total }}</p>
<span class="cabinet-on">在库</span>
<span class="cabinet-out">已借</span>
<el-button type="primary" class="return-btn" @click="backWarehouse">3D</el-button>
</div>
</div>
<div class="cabinet-main">
<ul class="cabinet-row">
<li v-for="(item,index) in left" :key="index" class="cabinet-cell">
<!-- 部分借出 -->
<div v-if="item.outNum !== 0 && item.inNum !== 0" class="out-part">
<span>{{ item.outNum }}</span>
</div>
<!-- 部分在库 -->
<div v-if="item.outNum !== 0 && item.inNum !== 0" class="in-part">
<span>{{ item.inNum }}</span>
</div>
<!-- 全部借出 -->
<div v-if="item.outNum !== 0 && item.inNum === 0" class="out-all">
<span>{{ item.outNum }}</span>
</div>
<!-- 全部在库 -->
<div v-if="item.outNum === 0 && item.inNum !== 0" class="in-all">
<span>{{ item.inNum }}</span>
</div>
</li>
</ul>
<div :class="['cabinet-panel', isFixed ? 'fixed-panel' : '']" />
<ul class="cabinet-row">
<li v-for="(item,index) in right" :key="index" class="cabinet-cell">
<!-- 部分借出 -->
<div v-if="item.outNum !== 0 && item.inNum !== 0" class="out-part">
<span>{{ item.outNum }}</span>
</div>
<!-- 部分在库 -->
<div v-if="item.outNum !== 0 && item.inNum !== 0" class="in-part">
<span>{{ item.inNum }}</span>
</div>
<!-- 全部借出 -->
<div v-if="item.outNum !== 0 && item.inNum === 0" class="out-all">
<span>{{ item.outNum }}</span>
</div>
<!-- 全部在库 -->
<div v-if="item.outNum === 0 && item.inNum !== 0" class="in-all">
<span>{{ item.inNum }}</span>
</div>
</li>
</ul>
</div>
<div class="cabinet-bottom">
<el-button type="primary" :disabled="isFixed">开架</el-button>
<el-button type="primary">合架</el-button>
<el-button type="primary">通风</el-button>
<el-button type="primary">停止</el-button>
</div>
</div>
</template>
<script>
import data from './data.json'
export default {
name: 'DeseCabinet',
data() {
return {
cabinetNum: null, // num
isFixed: false, //
total: null, //
left: [], //
right: [] //
}
},
created() {
this.getData()
},
mounted() {
if (parseInt(localStorage.getItem('cabinetNum'))) {
this.cabinetNum = parseInt(localStorage.getItem('cabinetNum'))
this.isFixed = this.cabinetNum === 10
} else {
this.cabinetNum = 0
}
},
methods: {
getData() {
this.total = data.totalData
this.left = data.leftData
this.right = data.rightData
},
// 3D
backWarehouse() {
this.$router.push('/storeManage/warehouse3D')
localStorage.setItem('isDeseCabinetPage', true)
}
}
}
</script>
<style lang="scss" scoped>
.cabinet-top{
display: flex;
justify-content: space-between;
width: calc(100vw - 354px);
margin: 0 auto 20px auto;
font-size: 14px;
line-height: 36px;
color: #fff;
.cabinet-info{
font-weight: bold;
}
.cabinet-des{
display: flex;
p{
margin-right: 40px;
}
span{
position: relative;
padding-left: 20px;
margin-right: 40px;
&::before{
content: "";
position: absolute;
left: 0;
top: 50%;
width: 14px;
height: 14px;
border-radius: 50%;
margin-top: -7px;
}
}
.cabinet-on::before{
background-color: #1AAE93;
}
.cabinet-out::before{
background-color: #F65163;
}
}
}
.return-btn,
.cabinet-bottom .el-button{
font-size: 16px;
height: 36px;
padding: 0 33px;
background-color: #339CFF;
}
.cabinet-main{
display: flex;
justify-content: space-between;
width: calc(100vw - 344px);
height: calc(100vh - 322px);
margin: 0 auto;
overflow: hidden;
}
.cabinet-row{
display: flex;
flex: 1;
flex-wrap: wrap;
color: #fff;
text-align: center;
.cabinet-cell{
width: calc(100%/5 - 10px);
height: calc(100%/6 - 10px);
margin: 0 10px 10px 0;
font-size: 20px;
background-color: #02255F;
border-radius: 10px;
overflow: hidden;
&:nth-last-of-type(-n+5) {
margin-bottom: 0;
}
&:nth-child(5n){
margin-right: 0;
}
}
.in-all, .out-all, .out-part, .in-part{
position: relative;
width: 100%;
span{
display: block;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
z-index: 9;
}
}
.in-all, .out-all{
height: 100%;
}
.out-part, .in-part{
height: 50%;
}
.out-all, .out-part{
background-color: #F65163;
}
.in-all, .in-part{
background-color: #1AAE93;
}
}
.cabinet-panel{
width: 140px;
margin-right: 10px;
background: url('~@/assets/images/panel-n.png') no-repeat;
background-size: 100% 100%;
}
.fixed-panel{
background: url('~@/assets/images/panel-y.png') no-repeat;
background-size: 100% 100%;
}
.cabinet-bottom{
text-align: center;
margin: 30px 0;
::v-deep .is-disabled{
color: #13439E;
background-color: #02255F;
border-color: #02255F;
}
}
@media screen and (min-width:1200px) and (max-width:1536px){
.cabinet-panel{
width: 92px;
}
}
</style>

4
src/views/storeManage/warehouse3D/index.vue

@ -46,6 +46,10 @@ export default {
mounted() { mounted() {
// iframe // iframe
window.addEventListener('message', this.handleMessageEvent) window.addEventListener('message', this.handleMessageEvent)
if (localStorage.getItem('isDeseCabinetPage')) {
this.activeIndex = 1
localStorage.removeItem('isDeseCabinetPage')
}
}, },
methods: { methods: {
handleMessageEvent(event) { handleMessageEvent(event) {

Loading…
Cancel
Save