23 changed files with 3374 additions and 132 deletions
-
12src/api/collect/collect.js
-
BINsrc/assets/images/archives/dah.png
-
BINsrc/assets/images/archives/zt-lx.png
-
BINsrc/assets/images/archives/zt-zx.png
-
12src/assets/styles/yxk-admin.scss
-
1src/views/archiveKeeping/caseManage/caseList/index.vue
-
423src/views/archiveKeeping/inStorage/index.vue
-
22src/views/archiveKeeping/inStorage/pendingInArchive/index.vue
-
291src/views/archiveKeeping/inStorage/pendingInCase/index.vue
-
482src/views/archiveKeeping/inStorage/pendingInCase/module/data.json
-
863src/views/archiveKeeping/inStorage/pendingInCase/module/device.json
-
844src/views/archiveKeeping/inStorage/pendingInCase/module/inDialog.vue
-
22src/views/archiveKeeping/inventoryCheck/index.vue
-
106src/views/archiveKeeping/levelManage/index.vue
-
22src/views/archiveKeeping/outStorage/index.vue
-
22src/views/archiveKeeping/storageLog/index.vue
-
2src/views/archivesManage/managementLibrary/anjuan/tableList.vue
-
4src/views/archivesManage/managementLibrary/juannei/index.vue
-
3src/views/archivesManage/managementLibrary/module/handOverForm.vue
-
1src/views/archivesManage/openInventory/index.vue
-
153src/views/collectReorganizi/externalReception/index.vue
-
72src/views/collectReorganizi/externalReception/module/detail.vue
-
149src/views/components/DeviceTree.vue
|
After Width: 46 | Height: 46 | Size: 2.8 KiB |
|
After Width: 19 | Height: 18 | Size: 747 B |
|
After Width: 19 | Height: 18 | Size: 805 B |
@ -0,0 +1,423 @@ |
|||||
|
<template> |
||||
|
<div class="app-container archives-container"> |
||||
|
<div class="container-main" style="justify-content: flex-start;"> |
||||
|
<div class="elect-cont-left"> |
||||
|
<div class="container-left"> |
||||
|
<span class="right-top-line" /> |
||||
|
<span class="left-bottom-line" /> |
||||
|
<div class="arc-left-tree"> |
||||
|
<h3 class="arc-title arc-title-top">档案门类</h3> |
||||
|
<div class="tree-scroll"> |
||||
|
<el-tree ref="categroyTree" v-loading="crud.loading" class="arc-tree arc-tree-01" :data="crud.data" :props="defaultProps" node-key="id" :expand-on-click-node="false" highlight-current @node-click="handleNodeClick"> |
||||
|
<span slot-scope="{ node, data }" class="custom-tree-node"> |
||||
|
<el-tooltip :content="node.label" placement="top" :enterable="false" effect="dark"> |
||||
|
<span v-if="data.isType === 1 " class="iconFolder"> |
||||
|
{{ data.cnName }} |
||||
|
</span> |
||||
|
</el-tooltip> |
||||
|
<el-tooltip :content="node.label" placement="top" :enterable="false" effect="dark"> |
||||
|
<span v-if="data.isType === 2" class="iconArch"> |
||||
|
{{ data.cnName }} |
||||
|
</span> |
||||
|
</el-tooltip> |
||||
|
<el-tooltip :content="node.label" placement="top" :enterable="false" effect="dark"> |
||||
|
<span v-if="data.isType === 3" class="iconFile"> |
||||
|
{{ data.cnName }} |
||||
|
</span> |
||||
|
</el-tooltip> |
||||
|
</span> |
||||
|
</el-tree> |
||||
|
</div> |
||||
|
<h3 class="arc-title arc-title-bottom">快速筛选</h3> |
||||
|
<el-tree |
||||
|
ref="classifyTree" |
||||
|
v-loading="classifyLoading" |
||||
|
class="arc-tree arc-tree-02" |
||||
|
:data="classifyTree" |
||||
|
:props="defaultClassifyProps" |
||||
|
node-key="id" |
||||
|
:expand-on-click-node="false" |
||||
|
highlight-current |
||||
|
@node-click="handleClassifyFilter" |
||||
|
> |
||||
|
<span slot-scope="{ node, data }" class="custom-tree-node"> |
||||
|
<span v-if="data.childDictionarys || data.fondsName" class="iconClassify"> |
||||
|
{{ data.dictionaryName || data.fondsName }} |
||||
|
</span> |
||||
|
<span v-else class="iconClassify-child"> |
||||
|
{{ data.dictionaryName }} |
||||
|
</span> |
||||
|
</span> |
||||
|
</el-tree> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!--用户数据--> |
||||
|
<div v-if="storageCategory.isType !== 1" class="elect-cont-right"> |
||||
|
<div class="container-right tab-content"> |
||||
|
<span class="right-top-line" /> |
||||
|
<span class="left-bottom-line" /> |
||||
|
<ul class="tab-nav"> |
||||
|
<li :class="{'active-tab-nav': activeIndex == 0}" @click="changeActiveTab(0)">待入库档案盒<i /></li> |
||||
|
<li :class="{'active-tab-nav': activeIndex == 1}" @click="changeActiveTab(1)">待入库档案<i /></li> |
||||
|
<!-- 最右侧装饰img --> |
||||
|
<span class="tab-right-img" /> |
||||
|
</ul> |
||||
|
<component :is="comName" :storage-category="storageCategory" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import crudCategory from '@/api/category/category' |
||||
|
import { FetchDictionaryTreeByCategoryId } from '@/api/system/dict' |
||||
|
import CRUD, { presenter, header } from '@crud/crud' |
||||
|
import pendingInCase from './pendingInCase/index' |
||||
|
import PendingInArchive from './pendingInArchive/index' |
||||
|
|
||||
|
export default { |
||||
|
name: 'InStorage', |
||||
|
components: { pendingInCase, PendingInArchive }, |
||||
|
cruds() { |
||||
|
return [ |
||||
|
CRUD({ |
||||
|
title: '档案入库', url: 'api/category/menu', |
||||
|
crudMethod: { ...crudCategory }, |
||||
|
optShow: { |
||||
|
add: false, |
||||
|
edit: false, |
||||
|
del: false, |
||||
|
download: false, |
||||
|
group: false |
||||
|
} |
||||
|
}) |
||||
|
] |
||||
|
}, |
||||
|
mixins: [presenter(), header()], |
||||
|
props: { |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
defaultProps: { |
||||
|
children: 'children', |
||||
|
label: 'cnName' |
||||
|
}, |
||||
|
defaultClassifyProps: { |
||||
|
children: 'childDictionarys' || null, |
||||
|
label: 'dictionaryName' || 'fondsName' |
||||
|
}, |
||||
|
storageCategory: {}, |
||||
|
smartQuery: { |
||||
|
'retention': null, // 保管期限 |
||||
|
'security_class': null, // 密级 |
||||
|
'doc_type': null, // 文种 |
||||
|
'medium_type': null, // 载体类型 |
||||
|
'archive_year': null, // 年度 |
||||
|
'fonds_no': null // 全宗 |
||||
|
}, |
||||
|
classifyTree: [], |
||||
|
classifyLoading: false, |
||||
|
activeIndex: 0 |
||||
|
} |
||||
|
}, |
||||
|
computed: { |
||||
|
comName: function() { |
||||
|
if (this.activeIndex === 0) { |
||||
|
return 'pendingInCase' |
||||
|
} else if (this.activeIndex === 1) { |
||||
|
return 'pendingInArchive' |
||||
|
} |
||||
|
return 'pendingInCase' |
||||
|
} |
||||
|
}, |
||||
|
created() { |
||||
|
}, |
||||
|
mounted() { |
||||
|
}, |
||||
|
methods: { |
||||
|
handleYearData(data) { |
||||
|
this.yearChildData = data |
||||
|
this.classifyLoading = true |
||||
|
setTimeout(() => { |
||||
|
if (this.classifyTree[0].dictionaryName === '年度') { |
||||
|
this.classifyTree = this.classifyTree.slice(1) |
||||
|
} |
||||
|
if (this.yearChildData.length !== 0) { |
||||
|
const newYearArr = this.yearChildData.map((item, index) => { |
||||
|
const json = {} |
||||
|
json.id = index |
||||
|
json.dictionaryName = item |
||||
|
json.childDictionarys = [] |
||||
|
return json |
||||
|
}) |
||||
|
this.classifyTree.unshift({ id: -1, dictionaryName: '年度', dictionaryCode: 'archive_year', childDictionarys: newYearArr }) |
||||
|
} |
||||
|
this.classifyLoading = false |
||||
|
}, 500) |
||||
|
}, |
||||
|
filterData(data) { |
||||
|
return data.filter(node => { |
||||
|
if (node.children && node.children.length > 0) { |
||||
|
node.children = this.filterData(node.children) // 递归处理子节点 |
||||
|
} |
||||
|
return node.isType !== 3 // 过滤掉isType为3的节点 |
||||
|
}) |
||||
|
}, |
||||
|
// 逆归实现 获取指定元素 |
||||
|
findNode(tree, func) { |
||||
|
for (const node of tree) { |
||||
|
if (func(node)) return node |
||||
|
if (node.children) { |
||||
|
const res = this.findNode(node.children, func) |
||||
|
if (res) return res |
||||
|
} |
||||
|
} |
||||
|
return null |
||||
|
}, |
||||
|
// 展开选中的父级 |
||||
|
expandParents(node) { |
||||
|
node.expanded = true |
||||
|
if (node.parent) { |
||||
|
this.expandParents(node.parent) |
||||
|
} |
||||
|
}, |
||||
|
[CRUD.HOOK.afterRefresh]() { |
||||
|
this.crud.data = this.filterData(this.crud.data) |
||||
|
this.$nextTick(() => { |
||||
|
let currentKey |
||||
|
if (localStorage.getItem('storageCategoryKey')) { |
||||
|
currentKey = JSON.parse(localStorage.getItem('storageCategoryKey')) |
||||
|
// 删除门类节点后 |
||||
|
if (this.$refs.categroyTree.getCurrentKey(currentKey.id) == null) { |
||||
|
localStorage.removeItem('storageCategoryKey') |
||||
|
} |
||||
|
// 缓存的门类节点判断 |
||||
|
if (currentKey.isType === 1) { |
||||
|
if (currentKey.children.length !== 0) { |
||||
|
currentKey = this.findNode(currentKey.children, (node) => { |
||||
|
return node.isType !== 1 |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
} else { |
||||
|
// 默认 |
||||
|
if (this.crud.data[0].isType === 1) { |
||||
|
currentKey = this.findNode(this.crud.data[0].children, (node) => { |
||||
|
return node.isType !== 1 |
||||
|
}) |
||||
|
} else { |
||||
|
currentKey = this.crud.data[0] |
||||
|
} |
||||
|
} |
||||
|
if (currentKey.id) { |
||||
|
// 设置某个节点的当前选中状态 |
||||
|
this.$refs.categroyTree.setCurrentKey(currentKey.id) |
||||
|
this.$nextTick(() => { |
||||
|
// 设置某个节点的父级展开 |
||||
|
const selectedKey = this.$refs.categroyTree.getCurrentNode() |
||||
|
if (this.$refs.categroyTree.getNode(selectedKey) && this.$refs.categroyTree.getNode(selectedKey).parent) { |
||||
|
this.expandParents(this.$refs.categroyTree.getNode(selectedKey).parent) |
||||
|
} |
||||
|
// 选中节点的门类详情 |
||||
|
this.handleNodeClick(selectedKey) |
||||
|
}) |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
handleNodeClick(val) { |
||||
|
this.smartQuery = { |
||||
|
'retention': null, // 保管期限 |
||||
|
'security_class': null, // 密级 |
||||
|
'doc_type': null, // 文种 |
||||
|
'medium_type': null, // 载体类型 |
||||
|
'archive_year': null, // 年度 |
||||
|
'fonds_no': null // 全宗 |
||||
|
} |
||||
|
// 缓存当前的选中的 |
||||
|
localStorage.setItem('storageCategoryKey', JSON.stringify(val)) |
||||
|
this.storageCategory = val |
||||
|
|
||||
|
if (this.storageCategory.isType !== 1) { |
||||
|
this.getDictionaryTreeByCategoryId(val.id) |
||||
|
} else { |
||||
|
this.classifyTree = [] |
||||
|
} |
||||
|
this.$nextTick(() => { |
||||
|
this.handlePageList() |
||||
|
}) |
||||
|
}, |
||||
|
handlePageList() { |
||||
|
}, |
||||
|
getDictionaryTreeByCategoryId(categoryId) { |
||||
|
this.classifyLoading = true |
||||
|
const params = { |
||||
|
'categoryId': categoryId |
||||
|
} |
||||
|
FetchDictionaryTreeByCategoryId(params).then((res) => { |
||||
|
let fonds |
||||
|
if (res.fonds.length <= 1) { |
||||
|
fonds = [] |
||||
|
} else { |
||||
|
const parent = {} |
||||
|
parent.id = 0 |
||||
|
parent.fondsName = '全宗' |
||||
|
parent.childDictionarys = res.fonds |
||||
|
fonds = parent |
||||
|
} |
||||
|
this.classifyTree = res.dictionarys.concat(fonds) |
||||
|
this.classifyLoading = false |
||||
|
}).catch(err => { |
||||
|
console.log(err) |
||||
|
}) |
||||
|
}, |
||||
|
handleClassifyFilter(data, node, ele) { |
||||
|
this.smartQuery = { |
||||
|
'retention': null, // 保管期限 |
||||
|
'security_class': null, // 密级 |
||||
|
'doc_type': null, // 文种 |
||||
|
'medium_type': null, // 载体类型 |
||||
|
'archive_year': null, // 年度 |
||||
|
'fonds_no': null // 全宗 |
||||
|
} |
||||
|
if (data) { |
||||
|
if (node.childNodes.length === 0) { |
||||
|
const selectedKey = this.$refs.classifyTree.getCurrentNode() |
||||
|
this.treeCurrentNode = ele.$el |
||||
|
if (ele.$el.classList.contains('is-current')) { |
||||
|
this.treeCurrentNode.classList.remove('is-current') |
||||
|
} else { |
||||
|
this.treeCurrentNode.classList.add('is-current') |
||||
|
if (Object.keys(selectedKey).includes('fondsId')) { |
||||
|
this.smartQuery.fonds_no = selectedKey.fondsNo |
||||
|
} else { |
||||
|
const selectedParentVal = this.$refs.classifyTree.getNode(selectedKey).parent.data.dictionaryCode |
||||
|
switch (selectedParentVal) { |
||||
|
case 'security_class': |
||||
|
if (selectedKey.dictionaryCode !== 'security_class') { |
||||
|
this.smartQuery.security_class = selectedKey.dictionaryName |
||||
|
} |
||||
|
break |
||||
|
case 'retention': |
||||
|
if (selectedKey.dictionaryCode !== 'retention') { |
||||
|
this.smartQuery.retention = selectedKey.dictionaryName |
||||
|
} |
||||
|
break |
||||
|
case 'doc_type': |
||||
|
if (selectedKey.dictionaryCode !== 'doc_type') { |
||||
|
this.smartQuery.doc_type = selectedKey.dictionaryName |
||||
|
} |
||||
|
break |
||||
|
case 'medium_type': |
||||
|
if (selectedKey.dictionaryCode !== 'medium_type') { |
||||
|
this.smartQuery.medium_type = selectedKey.dictionaryName |
||||
|
} |
||||
|
break |
||||
|
default: |
||||
|
if (selectedKey.dicCode !== 'archive_year') { |
||||
|
this.smartQuery.archive_year = selectedKey.dictionaryName |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
this.$nextTick(() => { |
||||
|
// this.handlePageList('quickFilter') |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
changeActiveTab(val) { |
||||
|
this.activeIndex = val |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
.elect-cont-left{ |
||||
|
width: 276px; |
||||
|
padding: 0 !important; |
||||
|
} |
||||
|
.hideSidebar .elect-cont-left { |
||||
|
width: 265px !important; |
||||
|
} |
||||
|
[data-theme=light] .elect-cont-left .container-left { |
||||
|
min-height: calc(100vh - 140px); |
||||
|
} |
||||
|
[data-theme=dark] .elect-cont-left .container-left { |
||||
|
min-height: calc(100vh - 160px); |
||||
|
} |
||||
|
.openSidebar .elect-cont-right { |
||||
|
width: calc(100vw - 592px); |
||||
|
} |
||||
|
[data-theme=light] .elect-cont-right .container-right.tab-content { |
||||
|
min-height: calc(100vh - 200px) !important; |
||||
|
} |
||||
|
.arc-title{ |
||||
|
position: relative; |
||||
|
height: 48px; |
||||
|
line-height: 48px; |
||||
|
text-align: center; |
||||
|
font-size: 16px; |
||||
|
color: #0C0E1E; |
||||
|
background-color: #F3F5F8; |
||||
|
&::after{ |
||||
|
content: ""; |
||||
|
position: absolute; |
||||
|
right: 12px; |
||||
|
bottom: 0; |
||||
|
} |
||||
|
} |
||||
|
.arc-title-top{ |
||||
|
&::after{ |
||||
|
width: 44px; |
||||
|
height: 35px; |
||||
|
background: url("~@/assets/images/collect/daml.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
} |
||||
|
} |
||||
|
.arc-title-bottom{ |
||||
|
&::after{ |
||||
|
width: 41px; |
||||
|
height: 40px; |
||||
|
background: url("~@/assets/images/collect/kssx.png") no-repeat; |
||||
|
background-size: 100% 100%; |
||||
|
} |
||||
|
} |
||||
|
.arc-tree{ |
||||
|
padding: 0 20px; |
||||
|
} |
||||
|
.arc-tree-01{ |
||||
|
height: 400px; |
||||
|
overflow: hidden; |
||||
|
overflow-y: scroll; |
||||
|
} |
||||
|
[data-theme=dark] .arc-tree-01{ |
||||
|
height: 370px; |
||||
|
} |
||||
|
|
||||
|
.arc-tree-02{ |
||||
|
height: calc(100vh - 720px); |
||||
|
overflow: hidden; |
||||
|
overflow-y: scroll; |
||||
|
.el-tree{ |
||||
|
margin: 0; |
||||
|
} |
||||
|
} |
||||
|
::v-deep .el-tree-node__children .custom-tree-node{ |
||||
|
font-size: 14px; |
||||
|
} |
||||
|
|
||||
|
::v-deep .custom-tree-node{ |
||||
|
font-size: 14px; |
||||
|
font-weight: normal; |
||||
|
} |
||||
|
|
||||
|
[data-theme=light] .elect-cont-right { |
||||
|
padding: 15px 0 !important; |
||||
|
} |
||||
|
[data-theme=dark] .elect-cont-right { |
||||
|
margin-top: 0 !important; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,22 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
待入库档案 |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
name: 'PendingInArchive', |
||||
|
components: { |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
</style> |
||||
@ -0,0 +1,291 @@ |
|||||
|
<template> |
||||
|
<div class="storage-main"> |
||||
|
<div class="head-container"> |
||||
|
<h4 class="classType">档案盒</h4> |
||||
|
<div class="double-click-btn"><i class="iconfont icon-zhuyi-lan" /><span>双击列表数据查看详情</span></div> |
||||
|
<div class="head-search"> |
||||
|
<el-input |
||||
|
v-model="typeValue" |
||||
|
size="small" |
||||
|
clearable |
||||
|
placeholder="请输入搜索关键字" |
||||
|
style="width: 300px;" |
||||
|
class="input-prepend filter-item" |
||||
|
@clear="crud.toQuery" |
||||
|
@keyup.enter.native="crud.toQuery" |
||||
|
@input="typeInput" |
||||
|
> |
||||
|
<el-select slot="prepend" v-model="inputSelect" style="width: 92px" @change="clearInputValue"> |
||||
|
<el-option |
||||
|
v-for="item in options" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value" |
||||
|
/> |
||||
|
</el-select> |
||||
|
</el-input> |
||||
|
<rrOperation /> |
||||
|
<el-button class="filter-rfid" type="success" disabled><i class="iconfont icon-duqu" />读取</el-button> |
||||
|
</div> |
||||
|
<div class="handle-container"> |
||||
|
<el-button size="mini" :disabled="!selections.length" @click="handleIn"> |
||||
|
<i class="iconfont icon-chaihe" /> |
||||
|
入库 |
||||
|
</el-button> |
||||
|
<el-button size="mini" :disabled="!selections.length" @click="handleHand"> |
||||
|
<i class="iconfont icon-bendiguajie" /> |
||||
|
人工确认 |
||||
|
</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<el-table |
||||
|
ref="table" |
||||
|
v-loading="crud.loading" |
||||
|
:data="crud.data" |
||||
|
style="width: 100%;" |
||||
|
height="calc(100vh - 386px)" |
||||
|
@row-click="clickRowHandler" |
||||
|
@cell-dblclick="tableDoubleClick" |
||||
|
@selection-change="selectionChangeHandler" |
||||
|
> |
||||
|
<el-table-column type="selection" width="55" align="center" /> |
||||
|
<el-table-column type="index" label="序号" width="55" align="center" /> |
||||
|
<el-table-column prop="createTime" label="状态" align="center" width="80"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span :class="getClassByStorageType(scope.row)">{{ scope.row.storageType | storageTypeStatus }}</span> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="depositNum" label="已装" align="center" min-width="56" /> |
||||
|
<el-table-column prop="caseName" label="盒名称" :show-overflow-tooltip="true" align="center" min-width="150" /> |
||||
|
<el-table-column prop="caseCode" label="盒号" :show-overflow-tooltip="true" align="center" min-width="200" /> |
||||
|
<el-table-column prop="tid" label="电子标签" align="center" min-width="200" /> |
||||
|
<el-table-column prop="barcode" label="条形码" align="center" min-width="140" /> |
||||
|
<el-table-column label="存放位置" align="center" min-width="300"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-if="!scope.row.folderLocationDetails">-</span> |
||||
|
<span v-else> |
||||
|
<el-tag effect="dark">{{ scope.row.folderLocationDetails }}</el-tag> |
||||
|
</span> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="update_time" width="175" label="操作时间" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<div>{{ scope.row.update_time | parseTime }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<pagination v-if="crud.data.length !== 0" /> |
||||
|
<!-- 入库对话框 --> |
||||
|
<inDialog ref="inDialogDom" /> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import CRUD, { presenter, crud } from '@crud/crud' |
||||
|
// initStorageDetailes , initCasesByArchives |
||||
|
import { readyCollectConfirm, collectConfirm } from '@/api/archivesManage/outInStorage' |
||||
|
import rrOperation from '@crud/RR.operation' |
||||
|
import pagination from '@crud/Pagination' |
||||
|
import inDialog from './module/inDialog.vue' |
||||
|
export default { |
||||
|
name: 'PendingInCase', |
||||
|
components: { pagination, rrOperation, inDialog }, |
||||
|
filters: { |
||||
|
storageTypeStatus(val) { |
||||
|
switch (val) { |
||||
|
case 0: |
||||
|
return '未入' |
||||
|
case 1: |
||||
|
return '待入' |
||||
|
case 2: |
||||
|
return '已入' |
||||
|
case 3: |
||||
|
return '待出' |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
mixins: [presenter(), crud()], |
||||
|
cruds() { |
||||
|
return CRUD({ |
||||
|
url: 'api/archivesDeposit/initCaseList', |
||||
|
crudMethod: { }, |
||||
|
title: '档案盒', |
||||
|
optShow: { |
||||
|
add: false, |
||||
|
edit: false, |
||||
|
del: false, |
||||
|
download: false, |
||||
|
reset: false, |
||||
|
group: false |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
options: [ |
||||
|
{ value: 'caseCode', label: '盒号' }, |
||||
|
{ value: 'caseName', label: '盒名称' }, |
||||
|
{ value: 'tid', label: '电子标签' }, |
||||
|
{ value: 'barcode', label: '条码' } |
||||
|
], |
||||
|
inputSelect: '', |
||||
|
typeValue: '', |
||||
|
typeInputkey: '', |
||||
|
selections: [], |
||||
|
msgFailVisible: false |
||||
|
} |
||||
|
}, |
||||
|
created() { |
||||
|
this.inputSelect = this.options[0].value |
||||
|
}, |
||||
|
methods: { |
||||
|
[CRUD.HOOK.beforeRefresh]() { |
||||
|
// this.crud.query.storageType = this.selectStatus |
||||
|
}, |
||||
|
clickRowHandler(row) { |
||||
|
this.$refs.table.toggleRowSelection(row) // 单击选中 |
||||
|
}, |
||||
|
selectionChangeHandler(val) { |
||||
|
this.selections = val |
||||
|
}, |
||||
|
typeInput(e) { |
||||
|
this.typeInputkey = this.getDescByValue( |
||||
|
this.inputSelect, |
||||
|
this.options, |
||||
|
'value', |
||||
|
'value' |
||||
|
) |
||||
|
this.crud.query[this.typeInputkey] = e |
||||
|
}, |
||||
|
clearInputValue(val) { |
||||
|
this.inputSelect = val |
||||
|
this.typeValue = '' |
||||
|
// 避免向后端传递多余参数,切换和重置时,若有typeInputkey则去掉form中对应参数 |
||||
|
if (this.typeInputkey) { |
||||
|
delete this.crud.query[this.typeInputkey] |
||||
|
} |
||||
|
}, |
||||
|
getDescByValue(inputValue, data, inputKey = 'value', outputKey = 'value') { |
||||
|
let outputValue = '' |
||||
|
if (data && data.length > 0) { |
||||
|
for (let i = 0; i < data.length; i++) { |
||||
|
const item = data[i] |
||||
|
const itemValue = item[inputKey] |
||||
|
if (inputValue + '' === itemValue + '') { |
||||
|
outputValue = item[outputKey] |
||||
|
break |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
return outputValue |
||||
|
}, |
||||
|
getClassByStorageType(row) { |
||||
|
if (row.storageType === 0) { // 未入 |
||||
|
return 'row-state cancel-state' |
||||
|
} else if (row.storageType === 1) { // 待入 |
||||
|
return 'row-state ing-state' |
||||
|
} else if (row.storageType === 2) { // 已入 |
||||
|
return 'row-state end-state' |
||||
|
} else if (row.storageType === 3) { // 待出 |
||||
|
return 'row-state ing-state' |
||||
|
} |
||||
|
}, |
||||
|
tableDoubleClick(row) { |
||||
|
|
||||
|
}, |
||||
|
// 入库 |
||||
|
handleIn() { |
||||
|
this.$refs.inDialogDom.dialogVisible = true |
||||
|
// const caseIds = this.selections.map(item => { return item.id }) |
||||
|
// const index = this.selections.every((item) => item.storageType === 0) |
||||
|
// if (index) { |
||||
|
// const params = { |
||||
|
// caseIds: caseIds |
||||
|
// } |
||||
|
// initCasesByArchives(params).then(res => { |
||||
|
// this.$refs.inDialogDom.childData = res |
||||
|
// }) |
||||
|
// this.$refs.inDialogDom.dialogVisible = true |
||||
|
// } else { |
||||
|
// this.$alert('当前档案盒正在入库,请勿重复操作', '提示', { |
||||
|
// confirmButtonText: '确定', |
||||
|
// callback: action => {} |
||||
|
// }) |
||||
|
// } |
||||
|
}, |
||||
|
// 人工确认 |
||||
|
handleHand() { |
||||
|
if (this.selections.length > 0) { |
||||
|
const bool = this.selections.every(item => item.storageType === 1) |
||||
|
if (bool) { // 全是'待入'状态弹出成功提示 |
||||
|
const params = this.selections.map(item => item.id) |
||||
|
readyCollectConfirm(params).then(res => { |
||||
|
const handDialogDom = this.$refs.handDialogDom |
||||
|
if (res.length === 1) { |
||||
|
const params = res.map(item => item.caseId) |
||||
|
collectConfirm(params).then(data => { |
||||
|
this.$message({ message: '入库成功!', type: 'success', offset: 8 }) |
||||
|
this.crud.refresh() |
||||
|
}) |
||||
|
} else if (res.length > 1) { |
||||
|
handDialogDom.tableData = res |
||||
|
this.$nextTick(() => { // 默认多选 |
||||
|
handDialogDom.$refs.table.toggleAllSelection() |
||||
|
}) |
||||
|
handDialogDom.manyVisible = true |
||||
|
} |
||||
|
}) |
||||
|
} else { // 否则提示 |
||||
|
this.$alert('当前档案盒状态不为“待入”,不可人工确认', '提示', { |
||||
|
confirmButtonText: '确定', |
||||
|
callback: action => {} |
||||
|
}) |
||||
|
} |
||||
|
} else { |
||||
|
this.$message({ message: '请选择档案', type: 'warning', offset: 8 }) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
.storage-main{ |
||||
|
padding: 0 20px; |
||||
|
h4{ |
||||
|
padding-left: 62px; |
||||
|
line-height: 46px; |
||||
|
background: url("~@/assets/images/archives/dah.png") no-repeat left top; |
||||
|
background-size: 46px 46px; |
||||
|
font-size: 18px; |
||||
|
font-weight: 500; |
||||
|
color: #0C0E1E; |
||||
|
} |
||||
|
.double-click-btn{ |
||||
|
position: static; |
||||
|
flex: 1; |
||||
|
margin-left: 30px; |
||||
|
} |
||||
|
} |
||||
|
.head-container{ |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
align-items: center; |
||||
|
margin: 20px 0 !important; |
||||
|
.head-search{ |
||||
|
margin-right: 60px; |
||||
|
margin-bottom: 0 !important; |
||||
|
} |
||||
|
.handle-container{ |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
align-items: center; |
||||
|
.crud-opts{ |
||||
|
margin-right: 80px; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
::v-deep .input-prepend .el-input__inner{ |
||||
|
padding-left: 100px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,482 @@ |
|||||
|
[ |
||||
|
{ |
||||
|
"part_No": 1, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"position": "1-1-1-1-1", |
||||
|
"row_No": 1, |
||||
|
"total": 12 |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 1, |
||||
|
"total": 0, |
||||
|
"position": "1-1-1-1-2", |
||||
|
"borrow": 0, |
||||
|
"row_No": 1, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 1, |
||||
|
"total": 0, |
||||
|
"position": "1-1-1-2-1", |
||||
|
"row_No": 2, |
||||
|
"direction": "左", |
||||
|
"borrow": 0 |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 1, |
||||
|
"total": 0, |
||||
|
"row_No": 2, |
||||
|
"position": "1-1-1-2-2", |
||||
|
"borrow": 0, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 1, |
||||
|
"total": 0, |
||||
|
"position": "1-1-1-3-1", |
||||
|
"row_No": 3, |
||||
|
"direction": "左", |
||||
|
"borrow": 0 |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 1, |
||||
|
"total": 0, |
||||
|
"row_No": 3, |
||||
|
"borrow": 0, |
||||
|
"direction": "右", |
||||
|
"position": "1-1-1-3-2" |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 1, |
||||
|
"total": 0, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"position": "1-1-1-4-1", |
||||
|
"row_No": 4 |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 1, |
||||
|
"total": 0, |
||||
|
"borrow": 0, |
||||
|
"direction": "右", |
||||
|
"row_No": 4, |
||||
|
"position": "1-1-1-4-2" |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 1, |
||||
|
"total": 0, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"position": "1-1-1-5-1", |
||||
|
"row_No": 5 |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 1, |
||||
|
"total": 0, |
||||
|
"borrow": 0, |
||||
|
"position": "1-1-1-5-2", |
||||
|
"direction": "右", |
||||
|
"row_No": 5 |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 1, |
||||
|
"total": 0, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"position": "1-1-1-6-1", |
||||
|
"row_No": 6 |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 1, |
||||
|
"total": 0, |
||||
|
"borrow": 0, |
||||
|
"row_No": 6, |
||||
|
"direction": "右", |
||||
|
"position": "1-1-1-6-2" |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 2, |
||||
|
"position": "1-1-2-1-1", |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 1 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 2, |
||||
|
"position": "1-1-2-1-2", |
||||
|
"borrow": 0, |
||||
|
"row_No": 1, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 2, |
||||
|
"position": "1-1-2-2-1", |
||||
|
"row_No": 2, |
||||
|
"direction": "左", |
||||
|
"borrow": 0 |
||||
|
}, |
||||
|
{ |
||||
|
"position": "1-1-2-2-2", |
||||
|
"total": 0, |
||||
|
"part_No": 2, |
||||
|
"row_No": 2, |
||||
|
"borrow": 0, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"position": "1-1-2-3-1", |
||||
|
"total": 0, |
||||
|
"part_No": 2, |
||||
|
"row_No": 3, |
||||
|
"direction": "左", |
||||
|
"borrow": 0 |
||||
|
}, |
||||
|
{ |
||||
|
"position": "1-1-2-3-2", |
||||
|
"total": 0, |
||||
|
"part_No": 2, |
||||
|
"row_No": 3, |
||||
|
"borrow": 0, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"position": "1-1-2-4-1", |
||||
|
"total": 0, |
||||
|
"part_No": 2, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 4 |
||||
|
}, |
||||
|
{ |
||||
|
"position": "1-1-2-4-2", |
||||
|
"total": 0, |
||||
|
"part_No": 2, |
||||
|
"borrow": 0, |
||||
|
"direction": "右", |
||||
|
"row_No": 4 |
||||
|
}, |
||||
|
{ |
||||
|
"position": "1-1-2-5-1", |
||||
|
"total": 0, |
||||
|
"part_No": 2, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 5 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"position": "1-1-2-5-2", |
||||
|
"part_No": 2, |
||||
|
"borrow": 0, |
||||
|
"direction": "右", |
||||
|
"row_No": 5 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"position": "1-1-2-6-1", |
||||
|
"part_No": 2, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 6 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 2, |
||||
|
"borrow": 0, |
||||
|
"position": "1-1-2-6-2", |
||||
|
"row_No": 6, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 3, |
||||
|
"total": 0, |
||||
|
"position": "1-1-3-1-1", |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 1 |
||||
|
}, |
||||
|
{ |
||||
|
"position": "1-1-3-1-2", |
||||
|
"part_No": 3, |
||||
|
"total": 0, |
||||
|
"borrow": 0, |
||||
|
"row_No": 1, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"position": "1-1-3-2-1", |
||||
|
"part_No": 3, |
||||
|
"total": 0, |
||||
|
"row_No": 2, |
||||
|
"direction": "左", |
||||
|
"borrow": 0 |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 3, |
||||
|
"total": 0, |
||||
|
"position": "1-1-3-2-2", |
||||
|
"row_No": 2, |
||||
|
"borrow": 0, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 3, |
||||
|
"total": 0, |
||||
|
"position": "1-1-3-3-1", |
||||
|
"row_No": 3, |
||||
|
"direction": "左", |
||||
|
"borrow": 0 |
||||
|
}, |
||||
|
{ |
||||
|
"position": "1-1-3-3-2", |
||||
|
"part_No": 3, |
||||
|
"total": 0, |
||||
|
"row_No": 3, |
||||
|
"borrow": 0, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"position": "1-1-3-4-1", |
||||
|
"part_No": 3, |
||||
|
"total": 0, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 4 |
||||
|
}, |
||||
|
{ |
||||
|
"position": "1-1-3-4-2", |
||||
|
"part_No": 3, |
||||
|
"total": 0, |
||||
|
"borrow": 0, |
||||
|
"direction": "右", |
||||
|
"row_No": 4 |
||||
|
}, |
||||
|
{ |
||||
|
"position": "1-1-3-5-1", |
||||
|
"part_No": 3, |
||||
|
"total": 0, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 5 |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 3, |
||||
|
"total": 0, |
||||
|
"borrow": 0, |
||||
|
"direction": "右", |
||||
|
"position": "1-1-3-5-2", |
||||
|
"row_No": 5 |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 3, |
||||
|
"total": 0, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 6, |
||||
|
"position": "1-1-3-6-1" |
||||
|
}, |
||||
|
{ |
||||
|
"part_No": 3, |
||||
|
"total": 0, |
||||
|
"borrow": 0, |
||||
|
"row_No": 6, |
||||
|
"direction": "右", |
||||
|
"position": "1-1-3-6-2" |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"position": "1-1-4-1-1", |
||||
|
"part_No": 4, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 1 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"position": "1-1-4-1-2", |
||||
|
"part_No": 4, |
||||
|
"borrow": 0, |
||||
|
"row_No": 1, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"position": "1-1-4-2-1", |
||||
|
"part_No": 4, |
||||
|
"row_No": 2, |
||||
|
"direction": "左", |
||||
|
"borrow": 0 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 4, |
||||
|
"position": "1-1-4-2-2", |
||||
|
"row_No": 2, |
||||
|
"borrow": 0, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 4, |
||||
|
"position": "1-1-4-3-1", |
||||
|
"row_No": 3, |
||||
|
"direction": "左", |
||||
|
"borrow": 0 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 4, |
||||
|
"position": "1-1-4-3-2", |
||||
|
"row_No": 3, |
||||
|
"borrow": 0, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 4, |
||||
|
"position": "1-1-4-4-1", |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 4 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 4, |
||||
|
"position": "1-1-4-4-2", |
||||
|
"borrow": 0, |
||||
|
"direction": "右", |
||||
|
"row_No": 4 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 4, |
||||
|
"position": "1-1-4-5-1", |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 5 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 4, |
||||
|
"position": "1-1-4-5-2", |
||||
|
"borrow": 0, |
||||
|
"direction": "右", |
||||
|
"row_No": 5 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 4, |
||||
|
"position": "1-1-4-6-1", |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 6 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 4, |
||||
|
"borrow": 0, |
||||
|
"position": "1-1-4-6-2", |
||||
|
"row_No": 6, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 5, |
||||
|
"position": "1-1-5-1-1", |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 1 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"position": "1-1-5-1-2", |
||||
|
"part_No": 5, |
||||
|
"borrow": 0, |
||||
|
"row_No": 1, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"position": "1-1-5-2-1", |
||||
|
"part_No": 5, |
||||
|
"row_No": 2, |
||||
|
"direction": "左", |
||||
|
"borrow": 0 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 5, |
||||
|
"position": "1-1-5-2-2", |
||||
|
"row_No": 2, |
||||
|
"borrow": 0, |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 5, |
||||
|
"position": "1-1-5-3-1", |
||||
|
"row_No": 3, |
||||
|
"direction": "左", |
||||
|
"borrow": 0 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 5, |
||||
|
"row_No": 3, |
||||
|
"borrow": 0, |
||||
|
"position": "1-1-5-3-2", |
||||
|
"direction": "右" |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 5, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"position": "1-1-5-4-1", |
||||
|
"row_No": 4 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 5, |
||||
|
"borrow": 0, |
||||
|
"position": "1-1-5-4-2", |
||||
|
"direction": "右", |
||||
|
"row_No": 4 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 5, |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"position": "1-1-5-5-1", |
||||
|
"row_No": 5 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 5, |
||||
|
"position": "1-1-5-5-2", |
||||
|
"borrow": 0, |
||||
|
"direction": "右", |
||||
|
"row_No": 5 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 5, |
||||
|
"position": "1-1-5-6-1", |
||||
|
"direction": "左", |
||||
|
"borrow": 0, |
||||
|
"row_No": 6 |
||||
|
}, |
||||
|
{ |
||||
|
"total": 0, |
||||
|
"part_No": 5, |
||||
|
"position": "1-1-5-6-2", |
||||
|
"borrow": 0, |
||||
|
"row_No": 6, |
||||
|
"direction": "右" |
||||
|
} |
||||
|
] |
||||
@ -0,0 +1,863 @@ |
|||||
|
{ |
||||
|
"content": [ |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1658472050000, |
||||
|
"updateTime": 1687661822000, |
||||
|
"id": "2B7D289AE25FF270A1D135", |
||||
|
"supplierId": { |
||||
|
"id": "E6FE9637400AD8410FC0AA", |
||||
|
"name": "其他", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 4, |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657079179000, |
||||
|
"update_time": 1657079183000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "65D1886B0F864291766421", |
||||
|
"name": "通道门", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499357000, |
||||
|
"update_time": 1657499359000 |
||||
|
}, |
||||
|
"deviceSpecParamId": null, |
||||
|
"deviceId": "tdm_zy", |
||||
|
"deviceName": "5F_档案室_通道门", |
||||
|
"deviceIp": null, |
||||
|
"devicePort": null, |
||||
|
"deviceState": 1, |
||||
|
"rowNo": null, |
||||
|
"areaNo": null, |
||||
|
"sumColumnNo": null, |
||||
|
"firstColumnNo": null, |
||||
|
"partNo": null, |
||||
|
"storeroomCode": null, |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": null, |
||||
|
"devicePassword": null, |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": null, |
||||
|
"isNotice": false, |
||||
|
"sequence": 15, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
}, |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1659687364000, |
||||
|
"updateTime": 1687664379000, |
||||
|
"id": "0A722ED186BC597B006304", |
||||
|
"supplierId": { |
||||
|
"id": "E6FE9637400AD8410FC0AA", |
||||
|
"name": "其他", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 4, |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657079179000, |
||||
|
"update_time": 1657079183000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "E58C8D7C896BCB9A408A78", |
||||
|
"name": "空气质量检测设备", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499678000, |
||||
|
"update_time": 1657499683000 |
||||
|
}, |
||||
|
"deviceSpecParamId": { |
||||
|
"id": "5A7C18F3C58C069AF00F2E", |
||||
|
"deviceInfoId": "0A722ED186BC597B006304", |
||||
|
"displayConfigId": "DB6837B02C46E64B729934", |
||||
|
"paramId": "jt01#S3S01_014", |
||||
|
"paramName": "PM10", |
||||
|
"unit": "ug/m3", |
||||
|
"macAddress": null, |
||||
|
"sequence": 1, |
||||
|
"create_by": "admin", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1686038481000, |
||||
|
"update_time": 1686038543000 |
||||
|
}, |
||||
|
"deviceId": "jt01#S3S01", |
||||
|
"deviceName": "5F_档案库_空气质量检测仪", |
||||
|
"deviceIp": "192.168.1.100", |
||||
|
"devicePort": 5000, |
||||
|
"deviceState": 2, |
||||
|
"rowNo": null, |
||||
|
"areaNo": null, |
||||
|
"sumColumnNo": null, |
||||
|
"firstColumnNo": null, |
||||
|
"partNo": null, |
||||
|
"storeroomCode": null, |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": null, |
||||
|
"devicePassword": null, |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": null, |
||||
|
"isNotice": false, |
||||
|
"sequence": 21, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
}, |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1661392999000, |
||||
|
"updateTime": 1687662524000, |
||||
|
"id": "B4783D85F1A2F2B9883BF0", |
||||
|
"supplierId": { |
||||
|
"id": "E20621315E09169B0902AC", |
||||
|
"name": "计通", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 2, |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657079062000, |
||||
|
"update_time": 1657079067000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "7882487E0C15304A3758AF", |
||||
|
"name": "温湿度感应器", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499596000, |
||||
|
"update_time": 1657499600000 |
||||
|
}, |
||||
|
"deviceSpecParamId": { |
||||
|
"id": "76AE0750B3D9C2BAC97288", |
||||
|
"deviceInfoId": "B4783D85F1A2F2B9883BF0", |
||||
|
"displayConfigId": "EEAB8C01EAA82CBCD311BF", |
||||
|
"paramId": "jt01#K3801_002", |
||||
|
"paramName": "湿度", |
||||
|
"unit": "%", |
||||
|
"macAddress": null, |
||||
|
"sequence": 1, |
||||
|
"create_by": "admin", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1686038788000, |
||||
|
"update_time": 1686038831000 |
||||
|
}, |
||||
|
"deviceId": "jt01#K3801", |
||||
|
"deviceName": "5F_档案库_1#温湿度", |
||||
|
"deviceIp": "192.168.1.100", |
||||
|
"devicePort": 5000, |
||||
|
"deviceState": 2, |
||||
|
"rowNo": null, |
||||
|
"areaNo": null, |
||||
|
"sumColumnNo": null, |
||||
|
"firstColumnNo": null, |
||||
|
"partNo": null, |
||||
|
"storeroomCode": null, |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": null, |
||||
|
"devicePassword": null, |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": null, |
||||
|
"isNotice": false, |
||||
|
"sequence": 32, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
}, |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1661393058000, |
||||
|
"updateTime": 1687663052000, |
||||
|
"id": "0989E8AF376F4A82095325", |
||||
|
"supplierId": { |
||||
|
"id": "E20621315E09169B0902AC", |
||||
|
"name": "计通", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 2, |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657079062000, |
||||
|
"update_time": 1657079067000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "7882487E0C15304A3758AF", |
||||
|
"name": "温湿度感应器", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499596000, |
||||
|
"update_time": 1657499600000 |
||||
|
}, |
||||
|
"deviceSpecParamId": { |
||||
|
"id": "CFBE03FFC856A4D65482FA", |
||||
|
"deviceInfoId": "0989E8AF376F4A82095325", |
||||
|
"displayConfigId": "8489BC76E1C0FF48404C16", |
||||
|
"paramId": "jt01#KJG01_017", |
||||
|
"paramName": "湿度", |
||||
|
"unit": "%", |
||||
|
"macAddress": null, |
||||
|
"sequence": 1, |
||||
|
"create_by": "admin", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1686039245000, |
||||
|
"update_time": 1686039335000 |
||||
|
}, |
||||
|
"deviceId": "jt01#KJG01", |
||||
|
"deviceName": "5F_档案库_2#温湿度", |
||||
|
"deviceIp": "192.168.1.100", |
||||
|
"devicePort": 5000, |
||||
|
"deviceState": 2, |
||||
|
"rowNo": null, |
||||
|
"areaNo": null, |
||||
|
"sumColumnNo": null, |
||||
|
"firstColumnNo": null, |
||||
|
"partNo": null, |
||||
|
"storeroomCode": null, |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": null, |
||||
|
"devicePassword": null, |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": null, |
||||
|
"isNotice": false, |
||||
|
"sequence": 33, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
}, |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1661393273000, |
||||
|
"updateTime": 1687663152000, |
||||
|
"id": "723978C29D3CCA74C4448E", |
||||
|
"supplierId": { |
||||
|
"id": "E20621315E09169B0902AC", |
||||
|
"name": "计通", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 2, |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657079062000, |
||||
|
"update_time": 1657079067000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "7882487E0C15304A3758AF", |
||||
|
"name": "温湿度感应器", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499596000, |
||||
|
"update_time": 1657499600000 |
||||
|
}, |
||||
|
"deviceSpecParamId": { |
||||
|
"id": "9F04D8C9E67EA71632B44B", |
||||
|
"deviceInfoId": "723978C29D3CCA74C4448E", |
||||
|
"displayConfigId": "552C09D4CF5354315A2806", |
||||
|
"paramId": "jt01#KJG02_017", |
||||
|
"paramName": "湿度", |
||||
|
"unit": "%", |
||||
|
"macAddress": null, |
||||
|
"sequence": 1, |
||||
|
"create_by": "admin", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1686039309000, |
||||
|
"update_time": 1686039346000 |
||||
|
}, |
||||
|
"deviceId": "jt01#KJG02", |
||||
|
"deviceName": "5F_档案库_3#温湿度", |
||||
|
"deviceIp": "192.168.1.100", |
||||
|
"devicePort": 5000, |
||||
|
"deviceState": 2, |
||||
|
"rowNo": null, |
||||
|
"areaNo": null, |
||||
|
"sumColumnNo": null, |
||||
|
"firstColumnNo": null, |
||||
|
"partNo": null, |
||||
|
"storeroomCode": null, |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": null, |
||||
|
"devicePassword": null, |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": null, |
||||
|
"isNotice": false, |
||||
|
"sequence": 34, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
}, |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1661393300000, |
||||
|
"updateTime": 1687663300000, |
||||
|
"id": "42BF41E017A3AC1DC898B5", |
||||
|
"supplierId": { |
||||
|
"id": "E20621315E09169B0902AC", |
||||
|
"name": "计通", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 2, |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657079062000, |
||||
|
"update_time": 1657079067000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "7882487E0C15304A3758AF", |
||||
|
"name": "温湿度感应器", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499596000, |
||||
|
"update_time": 1657499600000 |
||||
|
}, |
||||
|
"deviceSpecParamId": { |
||||
|
"id": "50CC6D46D341D686D48B4E", |
||||
|
"deviceInfoId": "42BF41E017A3AC1DC898B5", |
||||
|
"displayConfigId": "9B759A60E7656DCD6C7DF9", |
||||
|
"paramId": "jt01#K3802_002", |
||||
|
"paramName": "湿度", |
||||
|
"unit": "%", |
||||
|
"macAddress": null, |
||||
|
"sequence": 1, |
||||
|
"create_by": "admin", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1686039020000, |
||||
|
"update_time": 1686039052000 |
||||
|
}, |
||||
|
"deviceId": "jt01#K3802", |
||||
|
"deviceName": "5F_档案库_4#温湿度", |
||||
|
"deviceIp": "192.168.1.100", |
||||
|
"devicePort": 5000, |
||||
|
"deviceState": 2, |
||||
|
"rowNo": null, |
||||
|
"areaNo": null, |
||||
|
"sumColumnNo": null, |
||||
|
"firstColumnNo": null, |
||||
|
"partNo": null, |
||||
|
"storeroomCode": null, |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": null, |
||||
|
"devicePassword": null, |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": null, |
||||
|
"isNotice": false, |
||||
|
"sequence": 35, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
}, |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1661409034000, |
||||
|
"updateTime": 1687664660000, |
||||
|
"id": "DDAF09DDD05ED8ACF9928E", |
||||
|
"supplierId": { |
||||
|
"id": "3D9732A0F3615E925C634D", |
||||
|
"name": "金虎", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 1, |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657079102000, |
||||
|
"update_time": 1657079106000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "DD656054BE3D1DF1E2F1FC", |
||||
|
"name": "密集架", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499126000, |
||||
|
"update_time": 1657499131000 |
||||
|
}, |
||||
|
"deviceSpecParamId": null, |
||||
|
"deviceId": null, |
||||
|
"deviceName": "5F_档案库_密集架", |
||||
|
"deviceIp": "192.168.1.110", |
||||
|
"devicePort": 16000, |
||||
|
"deviceState": 2, |
||||
|
"rowNo": 6, |
||||
|
"areaNo": 1, |
||||
|
"sumColumnNo": 10, |
||||
|
"firstColumnNo": 1, |
||||
|
"partNo": 5, |
||||
|
"storeroomCode": "12345678", |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": null, |
||||
|
"devicePassword": null, |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": null, |
||||
|
"isNotice": true, |
||||
|
"sequence": 43, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
}, |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1663299051000, |
||||
|
"updateTime": 1663299192000, |
||||
|
"id": "788221B908CA2970C4C94A", |
||||
|
"supplierId": { |
||||
|
"id": "E20621315E09169B0902AC", |
||||
|
"name": "计通", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 2, |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657079062000, |
||||
|
"update_time": 1657079067000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "250AE644EC43E4EC954A81", |
||||
|
"name": "漏水传感器", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499520000, |
||||
|
"update_time": 1657499523000 |
||||
|
}, |
||||
|
"deviceSpecParamId": null, |
||||
|
"deviceId": "jt01#K6S01", |
||||
|
"deviceName": "5F_档案库_1#漏水检测", |
||||
|
"deviceIp": "192.168.1.100", |
||||
|
"devicePort": 5000, |
||||
|
"deviceState": 2, |
||||
|
"rowNo": null, |
||||
|
"areaNo": null, |
||||
|
"sumColumnNo": null, |
||||
|
"firstColumnNo": null, |
||||
|
"partNo": null, |
||||
|
"storeroomCode": null, |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": null, |
||||
|
"devicePassword": null, |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": null, |
||||
|
"isNotice": false, |
||||
|
"sequence": 46, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
}, |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1686035607000, |
||||
|
"updateTime": 1686035607000, |
||||
|
"id": "99BBE9D4B6AF70049CFEBE", |
||||
|
"supplierId": { |
||||
|
"id": "1F490CCC971C3BC20598DB", |
||||
|
"name": "天地伟业", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 5, |
||||
|
"create_by": "zy", |
||||
|
"update_by": "zy", |
||||
|
"create_time": 1661330252000, |
||||
|
"update_time": 1661330255000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "7305DE3D273B0CAC079538", |
||||
|
"name": "摄像头", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499414000, |
||||
|
"update_time": 1657499419000 |
||||
|
}, |
||||
|
"deviceSpecParamId": null, |
||||
|
"deviceId": null, |
||||
|
"deviceName": "5F_档案库_1#摄像头", |
||||
|
"deviceIp": "192.168.1.10", |
||||
|
"devicePort": 554, |
||||
|
"deviceState": 1, |
||||
|
"rowNo": null, |
||||
|
"areaNo": null, |
||||
|
"sumColumnNo": null, |
||||
|
"firstColumnNo": null, |
||||
|
"partNo": null, |
||||
|
"storeroomCode": null, |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": "admin", |
||||
|
"devicePassword": "hj12345678", |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": "5", |
||||
|
"isNotice": false, |
||||
|
"sequence": 48, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
}, |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1686036038000, |
||||
|
"updateTime": 1686036038000, |
||||
|
"id": "6EA5FBA7ED5CB960777D0B", |
||||
|
"supplierId": { |
||||
|
"id": "1F490CCC971C3BC20598DB", |
||||
|
"name": "天地伟业", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 5, |
||||
|
"create_by": "zy", |
||||
|
"update_by": "zy", |
||||
|
"create_time": 1661330252000, |
||||
|
"update_time": 1661330255000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "7305DE3D273B0CAC079538", |
||||
|
"name": "摄像头", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499414000, |
||||
|
"update_time": 1657499419000 |
||||
|
}, |
||||
|
"deviceSpecParamId": null, |
||||
|
"deviceId": null, |
||||
|
"deviceName": "5F_档案库_2#摄像头", |
||||
|
"deviceIp": "192.168.1.10", |
||||
|
"devicePort": 554, |
||||
|
"deviceState": 1, |
||||
|
"rowNo": null, |
||||
|
"areaNo": null, |
||||
|
"sumColumnNo": null, |
||||
|
"firstColumnNo": null, |
||||
|
"partNo": null, |
||||
|
"storeroomCode": null, |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": "admin", |
||||
|
"devicePassword": "hj12345678", |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": "7", |
||||
|
"isNotice": false, |
||||
|
"sequence": 49, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
}, |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1686037147000, |
||||
|
"updateTime": 1686037147000, |
||||
|
"id": "D6DCD1AF05611A6B21C51F", |
||||
|
"supplierId": { |
||||
|
"id": "1F490CCC971C3BC20598DB", |
||||
|
"name": "天地伟业", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 5, |
||||
|
"create_by": "zy", |
||||
|
"update_by": "zy", |
||||
|
"create_time": 1661330252000, |
||||
|
"update_time": 1661330255000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "7305DE3D273B0CAC079538", |
||||
|
"name": "摄像头", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499414000, |
||||
|
"update_time": 1657499419000 |
||||
|
}, |
||||
|
"deviceSpecParamId": null, |
||||
|
"deviceId": null, |
||||
|
"deviceName": "5F_档案库_3#摄像头", |
||||
|
"deviceIp": "192.168.1.10", |
||||
|
"devicePort": 554, |
||||
|
"deviceState": 1, |
||||
|
"rowNo": null, |
||||
|
"areaNo": null, |
||||
|
"sumColumnNo": null, |
||||
|
"firstColumnNo": null, |
||||
|
"partNo": null, |
||||
|
"storeroomCode": null, |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": "admin", |
||||
|
"devicePassword": "hj12345678", |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": "6", |
||||
|
"isNotice": false, |
||||
|
"sequence": 50, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
}, |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1686037167000, |
||||
|
"updateTime": 1686037167000, |
||||
|
"id": "CE63436917392CCAEB3A5B", |
||||
|
"supplierId": { |
||||
|
"id": "1F490CCC971C3BC20598DB", |
||||
|
"name": "天地伟业", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 5, |
||||
|
"create_by": "zy", |
||||
|
"update_by": "zy", |
||||
|
"create_time": 1661330252000, |
||||
|
"update_time": 1661330255000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "7305DE3D273B0CAC079538", |
||||
|
"name": "摄像头", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499414000, |
||||
|
"update_time": 1657499419000 |
||||
|
}, |
||||
|
"deviceSpecParamId": null, |
||||
|
"deviceId": null, |
||||
|
"deviceName": "5F_档案库_4#摄像头", |
||||
|
"deviceIp": "192.168.1.10", |
||||
|
"devicePort": 554, |
||||
|
"deviceState": 1, |
||||
|
"rowNo": null, |
||||
|
"areaNo": null, |
||||
|
"sumColumnNo": null, |
||||
|
"firstColumnNo": null, |
||||
|
"partNo": null, |
||||
|
"storeroomCode": null, |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": "admin", |
||||
|
"devicePassword": "hj12345678", |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": "2", |
||||
|
"isNotice": false, |
||||
|
"sequence": 51, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
}, |
||||
|
{ |
||||
|
"createBy": "admin", |
||||
|
"updateBy": null, |
||||
|
"createTime": 1695632924000, |
||||
|
"updateTime": 1695633116000, |
||||
|
"id": "75DC31C9D45D532E4EB443", |
||||
|
"supplierId": { |
||||
|
"id": "E20621315E09169B0902AC", |
||||
|
"name": "计通", |
||||
|
"remark": null, |
||||
|
"phone": null, |
||||
|
"deviceModel": "设备型号", |
||||
|
"sequence": 2, |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657079062000, |
||||
|
"update_time": 1657079067000 |
||||
|
}, |
||||
|
"storeroomId": { |
||||
|
"id": "D6490DA3D4261E8C26D0E3", |
||||
|
"name": "5F 档案库", |
||||
|
"pid": "9BD20FDB985472600B5B35", |
||||
|
"remark": "5F 档案库", |
||||
|
"sort": 1, |
||||
|
"children": null, |
||||
|
"create_by": "System", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1656937675000, |
||||
|
"update_time": 1687660503000 |
||||
|
}, |
||||
|
"deviceTypeId": { |
||||
|
"id": "E2767FEACA9CE0E3B16B89", |
||||
|
"name": "桌面式RFID读写器", |
||||
|
"create_by": "system", |
||||
|
"update_by": "system", |
||||
|
"create_time": 1657499723000, |
||||
|
"update_time": 1657499726000 |
||||
|
}, |
||||
|
"deviceSpecParamId": { |
||||
|
"id": "17B78C73B8DA4A97BA1372", |
||||
|
"deviceInfoId": "75DC31C9D45D532E4EB443", |
||||
|
"displayConfigId": null, |
||||
|
"paramId": null, |
||||
|
"paramName": null, |
||||
|
"unit": null, |
||||
|
"macAddress": "08-26-AE-34-06-1C", |
||||
|
"sequence": null, |
||||
|
"create_by": "admin", |
||||
|
"update_by": "admin", |
||||
|
"create_time": 1695633116000, |
||||
|
"update_time": 1695633116000 |
||||
|
}, |
||||
|
"deviceId": "D002", |
||||
|
"deviceName": "D002", |
||||
|
"deviceIp": "47.98.148.152", |
||||
|
"devicePort": 8057, |
||||
|
"deviceState": 2, |
||||
|
"rowNo": null, |
||||
|
"areaNo": null, |
||||
|
"sumColumnNo": null, |
||||
|
"firstColumnNo": null, |
||||
|
"partNo": null, |
||||
|
"storeroomCode": null, |
||||
|
"columnRowNo": null, |
||||
|
"deviceAccount": null, |
||||
|
"devicePassword": null, |
||||
|
"cupboardNo": null, |
||||
|
"videoRoute": null, |
||||
|
"isNotice": false, |
||||
|
"sequence": 56, |
||||
|
"isLinkage": null, |
||||
|
"isCallback": null |
||||
|
} |
||||
|
], |
||||
|
"totalElements": 13 |
||||
|
} |
||||
@ -0,0 +1,844 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<!-- 入库状态下 --> |
||||
|
<el-dialog title="入库" class="in-dialog" :visible.sync="dialogVisible" append-to-body :close-on-click-modal="false" :modal-append-to-body="false" @close="handleClose" @open="open"> |
||||
|
<span class="dialog-right-top" /> |
||||
|
<span class="dialog-left-bottom" /> |
||||
|
<div class="setting-dialog"> |
||||
|
<div class="content"> |
||||
|
<!-- 左侧 --> |
||||
|
<div class="content-left"> |
||||
|
<!--树状结构--> |
||||
|
<!-- @nodeClick="handleNodeClick" --> |
||||
|
<device-tree ref="deviceTree" /> |
||||
|
</div> |
||||
|
<!-- 右侧 --> |
||||
|
<div class="content-right"> |
||||
|
<!-- <button @click="test">测试</button> --> |
||||
|
<!-- 密集架 --> |
||||
|
<ul v-if="cnName==='密集架'"> |
||||
|
<li v-for="(eItem,index) in mijiChild" :key="eItem.id" class="box"> |
||||
|
<div class="selected-header"> |
||||
|
<div class="selected-left"> |
||||
|
<p class="case-name">已选档案:</p> |
||||
|
<span class="selected-num">数量<br><i>{{ childData.length }}</i></span> |
||||
|
</div> |
||||
|
<ul class="selected-right"> |
||||
|
<li v-for="item in childData" :key="item.id"> |
||||
|
<i>盒</i><span>{{ item.caseName }}</span> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
<div class="frame-content"> |
||||
|
<div class="location-header"> |
||||
|
<div class="location-txt">选择位置:<p>库房A-库区A <span>密集架</span> 设备A</p></div> |
||||
|
<el-select v-model="colValue" placeholder="请选择" style="width: 80px;"> |
||||
|
<el-option |
||||
|
v-for="item in options" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value" |
||||
|
/> |
||||
|
</el-select> |
||||
|
</div> |
||||
|
<div class="cabinet-main"> |
||||
|
<!-- 无库房当前列数据时 - 左边 --> |
||||
|
<div v-if="deviceData" class="cabinet-num row-left-num"> |
||||
|
<span v-for="(item,index) in rowNum" :key="index" :style="heightStyle"><i>{{ item }}</i></span> |
||||
|
</div> |
||||
|
<div v-if="deviceData" class="cabinet-num part-left-num"> |
||||
|
<span v-for="(item,index) in partLeftNum" :key="index" :style="widhtStyle">{{ item }}</span> |
||||
|
</div> |
||||
|
<div v-if="deviceData" style="position:absolute; left:0; bottom:0; display: flex; font-size: 12px; color: #fff;"> |
||||
|
<span style="display:block; margin-top: -12px">层</span> |
||||
|
<span style="display:block; margin-top: -5px">/</span> |
||||
|
<span style="display:block; ">节</span> |
||||
|
</div> |
||||
|
<ul v-if="sortLeft.length === 0" class="cabinet-row"> |
||||
|
<li v-for="(item,i) in totalPartRowNum" :key="i" class="cabinet-cell" :style="cellStyle" /> |
||||
|
</ul> |
||||
|
<ul v-else class="cabinet-row"> |
||||
|
<li v-for="(item,index) in sortLeft" :key="index" class="cabinet-cell" :style="cellStyle"> |
||||
|
<!-- <div v-if="item.borrow === 0 && item.total === 0" style="font-size:12px"> |
||||
|
{{ item.part_No + '节' + item.row_No + '层' }} |
||||
|
</div> --> |
||||
|
<!-- 部分借出 --> |
||||
|
<div v-if="item.borrow !== 0 && item.total - item.borrow !== 0" class="out-part"> |
||||
|
<span>{{ item.borrow }}</span> |
||||
|
</div> |
||||
|
<!-- 部分在库 --> |
||||
|
<div v-if="item.borrow !== 0 && item.total - item.borrow !== 0" class="in-part"> |
||||
|
<span>{{ item.total - item.borrow }}</span> |
||||
|
</div> |
||||
|
<!-- 全部借出 --> |
||||
|
<div v-if="item.borrow !== 0 && item.total - item.borrow === 0" class="out-all"> |
||||
|
<span>{{ item.borrow }}</span> |
||||
|
</div> |
||||
|
<!-- 全部在库 --> |
||||
|
<div v-if="item.borrow === 0 && item.total - item.borrow !== 0" class="in-all"> |
||||
|
<span>{{ item.total - item.borrow }}</span> |
||||
|
</div> |
||||
|
</li> |
||||
|
</ul> |
||||
|
|
||||
|
<div :class="['cabinet-panel', isFixed ? 'fixed-panel' : '']" /> |
||||
|
|
||||
|
<!-- 无库房当前列数据时 - 右边 --> |
||||
|
<ul v-if="sortLeft.length === 0" class="cabinet-row right-cabinet"> |
||||
|
<ul v-for="(item,i) in totalPartRowNum" :key="i" class="cabinet-cell" :style="cellStyle" /> |
||||
|
</ul> |
||||
|
<ul v-else class="cabinet-row right-cabinet"> |
||||
|
<li v-for="(item,index) in sortRight" :key="index" class="cabinet-cell" :style="cellStyle"> |
||||
|
<!-- <div v-if="item.borrow === 0 && item.total === 0" style="font-size:12px"> |
||||
|
{{ item.part_No + '节' + item.row_No + '层' }} |
||||
|
</div> --> |
||||
|
<!-- 部分借出 --> |
||||
|
<div v-if="item.borrow !== 0 && item.total - item.borrow !== 0" class="out-part"> |
||||
|
<span>{{ item.borrow }}</span> |
||||
|
</div> |
||||
|
<!-- 部分在库 --> |
||||
|
<div v-if="item.borrow !== 0 && item.total - item.borrow !== 0" class="in-part"> |
||||
|
<span>{{ item.total - item.borrow }}</span> |
||||
|
</div> |
||||
|
<!-- 全部借出 --> |
||||
|
<div v-if="item.borrow !== 0 && item.total - item.borrow !== 0" class="out-all"> |
||||
|
<span>{{ item.borrow }}</span> |
||||
|
</div> |
||||
|
<!-- 全部在库 --> |
||||
|
<div v-if="item.borrow === 0 && item.total - item.borrow !== 0" class="in-all"> |
||||
|
<span>{{ item.total - item.borrow }}</span> |
||||
|
</div> |
||||
|
</li> |
||||
|
</ul> |
||||
|
<div v-if="deviceData" class="cabinet-num row-right-num"> |
||||
|
<span v-for="(item,index) in rowNum" :key="index" :style="heightStyle"><i>{{ item }}</i></span> |
||||
|
</div> |
||||
|
<div v-if="deviceData" class="cabinet-num part-right-num"> |
||||
|
<span v-for="(item,index) in partRightNum" :key="index" :style="widhtStyle">{{ item }}</span> |
||||
|
</div> |
||||
|
<div v-if="deviceData" style="position:absolute; right:0; bottom:0; display: flex; font-size: 12px; color: #fff;"> |
||||
|
<span style="display:block; ">节</span> |
||||
|
<span style="display:block; margin-top: -5px">\</span> |
||||
|
<span style="display:block; margin-top: -12px">层</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- <div class="frame-item"> |
||||
|
<span>区号</span> |
||||
|
<el-input v-model="fieldNum" disabled type="number" class="filter-item" /> |
||||
|
</div> |
||||
|
<div class="frame-item item-line"> |
||||
|
<span>列</span> |
||||
|
<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="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="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="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> |
||||
|
<div class="frame-item state-btn"> |
||||
|
<div v-show="btnChecked[index]===1" type="primary" class="el-icon-refresh icon-style show" /> |
||||
|
<div v-show="btnChecked[index]===2" type="success" style="background:#1AAF91;border:none" class="el-icon-check icon-style show" /> |
||||
|
<div v-show="btnChecked[index]===3" style="background:#F65163;border:none" class="el-icon-close icon-style show" /> |
||||
|
</div> --> |
||||
|
</div> |
||||
|
<div> |
||||
|
<p v-show="btnChecked[index]===2" class="success-msg"> |
||||
|
<i class="iconfont icon-tishichenggong" /> |
||||
|
<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" /> |
||||
|
<span>当前位置已被占用</span> |
||||
|
</p> |
||||
|
</div> |
||||
|
</li> |
||||
|
<li style="text-align:center;padding:20px 0"> |
||||
|
<el-button type="primary" :loading="crud.downloadLoading" :disabled="!(btnChecked.every(item=>item===2))" class="btn-save" @click="handleSave">保存</el-button> |
||||
|
</li> |
||||
|
<!-- <li style="text-align:center;padding:20px 0"><el-button type="primary" class="btn-save" @click="handleSave">保存</el-button></li> --> |
||||
|
</ul> |
||||
|
<!-- 回转柜 --> |
||||
|
<ul v-if="cnName==='回转柜'"> |
||||
|
<li v-for="(eItem, index) in childData" :key="eItem.id" class="box"> |
||||
|
<p class="case-name">盒名称:{{ eItem.caseName }}</p> |
||||
|
<div class="frame-content head-container"> |
||||
|
<div class="frame-item"> |
||||
|
<span>柜号</span> |
||||
|
<el-input v-model="fieldNum" disabled type="number" class="filter-item" /> |
||||
|
</div> |
||||
|
<div class="frame-item item-line"> |
||||
|
<span>层</span> |
||||
|
<el-select v-model="childData[index].cabLevel" class="filter-item" style="width: 86px;" @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].cabCol" class="filter-item" style="width: 86px;" @change="selectChange(index)"> |
||||
|
<el-option v-for="item in columnOptions" :key="item.value" :label="item.label" :value="item.value" /> |
||||
|
</el-select> |
||||
|
</div> |
||||
|
<div class="state-btn" style="padding-right:32px;margin-bottom:14px"> |
||||
|
<div v-show="btnChecked[index]===1" type="primary" class="el-icon-refresh icon-style show" /> |
||||
|
<div v-show="btnChecked[index]===2" type="success" style="background:#1AAF91;border:none" class="el-icon-check icon-style show" /> |
||||
|
<div v-show="btnChecked[index]===3" style="background:#F65163;border:none" class="el-icon-close icon-style show" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div> |
||||
|
<p v-show="btnChecked[index]===2" class="success-msg"> |
||||
|
<i class="iconfont icon-tishichenggong" /> |
||||
|
<span class="success-text">位置已核对成功,层位名称:{{ fieldNum }}柜{{ childData[index].cabLevel }}层{{ childData[index].cabCol }}列</span> |
||||
|
</p> |
||||
|
<p v-show="btnChecked[index]===3" class="fail-msg"> |
||||
|
<i class="iconfont icon-tishijinggao" /> |
||||
|
<span>当前位置已被占用</span> |
||||
|
</p> |
||||
|
</div> |
||||
|
</li> |
||||
|
<li style="text-align:center;padding:20px 0"> |
||||
|
<el-button type="primary" :disabled="!(btnChecked.every(item=>item===2))" class="btn-save" @click="handleSave">保存</el-button> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</el-dialog> |
||||
|
<!-- 入库成功 提醒 --> |
||||
|
<el-dialog ref="sucDialog" class="suc-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> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import DeviceTree from '@/views/components/DeviceTree' |
||||
|
import { isOccupy, collect } from '@/api/archivesManage/outInStorage' |
||||
|
import { getDesecabinetById, getRotarycabinetById } from '@/api/storeManage/deviceManage/device' |
||||
|
import { crud } from '@crud/crud' |
||||
|
// import CallExternal from '@/api/storeManage/deviceManage/device' |
||||
|
import dataJson from './data.json' |
||||
|
import deviceJson from './device.json' |
||||
|
|
||||
|
// import qs from 'qs' |
||||
|
const data = [ |
||||
|
{ |
||||
|
'id': '02877E5A6559BEDE24B227', |
||||
|
'caseName': 'ZL-2023-1', |
||||
|
'caseType': 1, |
||||
|
'tid': null, |
||||
|
'barcode': null, |
||||
|
'shelfId': null, |
||||
|
'folderLocation': null, |
||||
|
'folderLocationDetails': null, |
||||
|
'depositNum': 1, |
||||
|
'storageType': 0, |
||||
|
'storageTime': null, |
||||
|
'create_by': 'admin', |
||||
|
'update_by': 'admin', |
||||
|
'create_time': 1695628425000, |
||||
|
'update_time': 1702971551000 |
||||
|
}, |
||||
|
{ |
||||
|
'id': '4C4EC2D8AA76E915D405C1', |
||||
|
'caseName': 'EP02-D-WS.W-2009-001', |
||||
|
'caseType': 2, |
||||
|
'tid': null, |
||||
|
'barcode': null, |
||||
|
'shelfId': null, |
||||
|
'folderLocation': null, |
||||
|
'folderLocationDetails': null, |
||||
|
'depositNum': 4, |
||||
|
'storageType': 0, |
||||
|
'storageTime': null, |
||||
|
'create_by': 'admin', |
||||
|
'update_by': 'admin', |
||||
|
'create_time': 1695628347000, |
||||
|
'update_time': 1705479582000 |
||||
|
}, |
||||
|
{ |
||||
|
'id': '286AF1A9534007E4A2603E', |
||||
|
'caseName': '20240122测试档案盒', |
||||
|
'caseType': 2, |
||||
|
'tid': null, |
||||
|
'barcode': null, |
||||
|
'shelfId': null, |
||||
|
'folderLocation': null, |
||||
|
'folderLocationDetails': null, |
||||
|
'depositNum': 1, |
||||
|
'storageType': 0, |
||||
|
'storageTime': null, |
||||
|
'create_by': 'admin', |
||||
|
'update_by': 'admin', |
||||
|
'create_time': 1705891675000, |
||||
|
'update_time': 1705891675000 |
||||
|
}, |
||||
|
{ |
||||
|
'id': '286AF1A9534007E4A2603E', |
||||
|
'caseName': '20240122测试档案盒', |
||||
|
'caseType': 2, |
||||
|
'tid': null, |
||||
|
'barcode': null, |
||||
|
'shelfId': null, |
||||
|
'folderLocation': null, |
||||
|
'folderLocationDetails': null, |
||||
|
'depositNum': 1, |
||||
|
'storageType': 0, |
||||
|
'storageTime': null, |
||||
|
'create_by': 'admin', |
||||
|
'update_by': 'admin', |
||||
|
'create_time': 1705891675000, |
||||
|
'update_time': 1705891675000 |
||||
|
}, {}, {}, {}, {} |
||||
|
] |
||||
|
|
||||
|
export default { |
||||
|
components: { DeviceTree }, |
||||
|
mixins: [crud()], |
||||
|
data() { |
||||
|
return { |
||||
|
dialogVisible: false, |
||||
|
singleVisible: false, |
||||
|
childData: data, // 档案盒信息列表 |
||||
|
mijiChild: [], |
||||
|
fieldNum: 1, // 柜号 |
||||
|
btnChecked: [], // 校验状态 |
||||
|
columnOptions: [], // 密集架-列,回转柜-列 |
||||
|
partOptions: [], // 密集架-节 |
||||
|
rowOptions: [], // 密集架-层,回转柜-层 |
||||
|
rowNo: 1, |
||||
|
directionOptions: [ |
||||
|
{ value: '1', label: '左边' }, |
||||
|
{ value: '2', label: '右边' } |
||||
|
], |
||||
|
isOccupy: [], |
||||
|
deviceType: null, // 1密集架 2回转柜 |
||||
|
cnName: '', // 选择的设备类型名称(密集架,回转柜) |
||||
|
deviceId: '', // 设备id |
||||
|
options: [{ |
||||
|
value: 1, |
||||
|
label: '第1列' |
||||
|
}, { |
||||
|
value: 2, |
||||
|
label: '第2列' |
||||
|
}, { |
||||
|
value: 3, |
||||
|
label: '第3列' |
||||
|
}, { |
||||
|
value: 4, |
||||
|
label: '第4列' |
||||
|
}, { |
||||
|
value: 4, |
||||
|
label: '第5列' |
||||
|
}], |
||||
|
colValue: 1, |
||||
|
storeroomId: 'D6490DA3D4261E8C26D0E3', // 档案库id |
||||
|
deviceData: null, // 获取密集架data |
||||
|
cabinetNum: null, // 当前列num |
||||
|
isFixed: false, // 是否是固定列 |
||||
|
totalPartRowNum: null, |
||||
|
archivesNum: null, // 档案总数 |
||||
|
left: [], // 左侧 |
||||
|
sortLeft: [], // 排序后得left-data |
||||
|
right: [], // 右侧 |
||||
|
sortRight: [], // 排序后得right-data |
||||
|
isColumDirection: false, // true 从上往下 false 从下往上 节数从机头开始排 |
||||
|
rowNum: [], // 左右两侧层数 |
||||
|
partLeftNum: [], // 左底部节点数 |
||||
|
partRightNum: [] // 右底部节点数 |
||||
|
} |
||||
|
}, |
||||
|
computed: { |
||||
|
// 密集架 |
||||
|
}, |
||||
|
methods: { |
||||
|
// 选中设备 |
||||
|
handleNodeClick(data) { |
||||
|
this.deviceId = data.id |
||||
|
this.cnName = data.deviceTypeId.name |
||||
|
this.mijiChild.push(this.childData[0]) |
||||
|
// 按钮状态 |
||||
|
this.btnChecked = this.childArr(1) |
||||
|
this.isOccupy = this.childArr({}) |
||||
|
const params = { deviceInfoId: data.id } |
||||
|
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 |
||||
|
getDesecabinetById(params).then(res => { |
||||
|
this.fieldNum = res.areaNo |
||||
|
this.columnOptions.splice(0, this.columnOptions.length) |
||||
|
for (let i = res.firstColumnNo; i < res.firstColumnNo + res.sumColumnNo; i++) { |
||||
|
this.columnOptions.push({ value: i, label: i }) |
||||
|
} |
||||
|
this.partOptions.splice(0, this.partOptions.length) |
||||
|
for (let i = 1; i <= res.partNo; i++) { |
||||
|
this.partOptions.push({ value: i, label: i }) |
||||
|
} |
||||
|
this.rowOptions.splice(0, this.rowOptions.length) |
||||
|
this.rowNo = res.rowNo |
||||
|
for (let i = 1; i <= res.rowNo; i++) { |
||||
|
this.rowOptions.push({ value: i, label: i }) |
||||
|
} |
||||
|
}) |
||||
|
} else if (data.deviceTypeId.name === '回转柜') { |
||||
|
// const obj = { cabCol: '', cabLevel: '' } |
||||
|
this.deviceType = 2 |
||||
|
// 跟据设备id查询设备行列层位等信息 |
||||
|
getRotarycabinetById(params).then(res => { |
||||
|
this.fieldNum = res.cupboardNo |
||||
|
this.rowOptions.splice(0, this.rowOptions.length) |
||||
|
for (let i = 1; i <= res.rowNo; i++) { |
||||
|
this.rowOptions.push({ value: i, label: i }) |
||||
|
} |
||||
|
this.columnOptions.splice(0, this.columnOptions.length) |
||||
|
for (let i = 1; i <= res.columnRowNo; i++) { |
||||
|
this.columnOptions.push({ value: i, label: i }) |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
}, |
||||
|
// 计算 -----删除 |
||||
|
childArr(str) { |
||||
|
const arr = [] |
||||
|
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() { |
||||
|
this.singleVisible = true |
||||
|
}, |
||||
|
// 校验 |
||||
|
async selectChange(index, position) { |
||||
|
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) { |
||||
|
// if (obj.levelNum > 5) { |
||||
|
// this.childData[index].levelNum = '' |
||||
|
// obj.levelNum = '' |
||||
|
// } |
||||
|
// this.rowOptions.splice(0, this.rowOptions.length) |
||||
|
// for (let i = 1; i <= 5; i++) { |
||||
|
// this.rowOptions.push({ value: i, label: i }) |
||||
|
// } |
||||
|
// } else { |
||||
|
// this.rowOptions.splice(0, this.rowOptions.length) |
||||
|
// for (let i = 1; i <= this.rowNo; i++) { |
||||
|
// this.rowOptions.push({ value: i, label: i }) |
||||
|
// } |
||||
|
// } |
||||
|
// } |
||||
|
// let bool = 0 |
||||
|
// for (const key in obj) { // 校验是否全部选择 |
||||
|
// if (!obj[key]) { |
||||
|
// bool++ |
||||
|
// } |
||||
|
// } |
||||
|
// if ((obj.colNum && obj.sectionNum && obj.levelNum && obj.direction) || (obj.cabLevel && obj.cabCol)) { |
||||
|
// bool++ |
||||
|
// } |
||||
|
if ((obj.colNum && obj.sectionNum && obj.levelNum && obj.direction) || (obj.cabLevel && obj.cabCol)) { |
||||
|
let params |
||||
|
// 密集架 |
||||
|
if (this.deviceType === 1) { |
||||
|
params = { |
||||
|
deviceId: this.deviceId, // 待入 |
||||
|
position: this.fieldNum + '-' + obj.colNum + '-' + obj.sectionNum + '-' + obj.levelNum + '-' + obj.direction, |
||||
|
deviceType: this.deviceType |
||||
|
} |
||||
|
} else { |
||||
|
params = { |
||||
|
deviceId: this.deviceId, // 待入 |
||||
|
position: this.fieldNum + '-' + obj.cabLevel + '-' + obj.cabCol, |
||||
|
deviceType: this.deviceType |
||||
|
} |
||||
|
} |
||||
|
const res = await isOccupy(params).then(res => { |
||||
|
return res |
||||
|
}) |
||||
|
// 按钮变化 |
||||
|
if (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 |
||||
|
} |
||||
|
} |
||||
|
this.$forceUpdate() |
||||
|
}, |
||||
|
// 获取密集架相关信息 |
||||
|
getDeviceListAll() { |
||||
|
const data = deviceJson |
||||
|
data.content.map(item => { |
||||
|
if (item.deviceTypeId.name === '密集架') { // 写死状态 |
||||
|
this.deviceData = item |
||||
|
this.totalPartRowNum = item.partNo * item.rowNo |
||||
|
let rowNo |
||||
|
if (this.cabinetNum > 8) { // 战备密集架得情况 |
||||
|
rowNo = item.rowNo - 1 |
||||
|
} else { |
||||
|
rowNo = item.rowNo |
||||
|
} |
||||
|
for (let i = 0; i < rowNo; i++) { |
||||
|
this.rowNum.push(i + 1) |
||||
|
} |
||||
|
for (let i = 0; i < item.partNo; i++) { |
||||
|
this.partLeftNum.push(i + 1) |
||||
|
this.partRightNum.push(i + 1) |
||||
|
} |
||||
|
this.partLeftNum.reverse() |
||||
|
if (!this.isColumDirection) { |
||||
|
this.rowNum.reverse() |
||||
|
} |
||||
|
this.getInBorrowByQuCol() |
||||
|
} |
||||
|
}) |
||||
|
// const params = { |
||||
|
// page: 0, |
||||
|
// size: 10, |
||||
|
// sort: 'sequence,asc', |
||||
|
// storeroomId: this.storeroomId |
||||
|
// } |
||||
|
// CallExternal.getDeviceList(params).then(data => { |
||||
|
// data.content.map(item => { |
||||
|
// if (item.deviceTypeId.name === '密集架') { // 写死状态 |
||||
|
// this.deviceData = item |
||||
|
// this.totalPartRowNum = item.partNo * item.rowNo |
||||
|
// let rowNo |
||||
|
// if (this.cabinetNum > 8) { // 战备密集架得情况 |
||||
|
// rowNo = item.rowNo - 1 |
||||
|
// } else { |
||||
|
// rowNo = item.rowNo |
||||
|
// } |
||||
|
// for (let i = 0; i < rowNo; i++) { |
||||
|
// this.rowNum.push(i + 1) |
||||
|
// } |
||||
|
// for (let i = 0; i < item.partNo; i++) { |
||||
|
// this.partLeftNum.push(i + 1) |
||||
|
// this.partRightNum.push(i + 1) |
||||
|
// } |
||||
|
// this.partLeftNum.reverse() |
||||
|
// if (!this.isColumDirection) { |
||||
|
// this.rowNum.reverse() |
||||
|
// } |
||||
|
// this.getInBorrowByQuCol() |
||||
|
// } |
||||
|
// }) |
||||
|
// }) |
||||
|
}, |
||||
|
// 获取密集架左右节/层档案情况 |
||||
|
async getInBorrowByQuCol() { |
||||
|
const data = dataJson |
||||
|
data.forEach(item => { |
||||
|
if (item.direction === '左') { |
||||
|
this.left.push(item) |
||||
|
} |
||||
|
if (item.direction === '右') { |
||||
|
this.right.push(item) |
||||
|
} |
||||
|
}) |
||||
|
this.setReorderData(this.left, this.sortLeft, false) |
||||
|
this.setReorderData(this.right, this.sortRight, true) |
||||
|
// const params = { |
||||
|
// deviceId: this.deviceData.id, |
||||
|
// quNo: this.deviceData.areaNo, |
||||
|
// colNo: this.cabinetNum |
||||
|
// } |
||||
|
// CallExternal.FetchInBorrowByQuCol(params).then(data => { |
||||
|
// data.forEach(item => { |
||||
|
// if (item.direction === '左') { |
||||
|
// this.left.push(item) |
||||
|
// } |
||||
|
// if (item.direction === '右') { |
||||
|
// this.right.push(item) |
||||
|
// } |
||||
|
// }) |
||||
|
// this.setReorderData(this.left, this.sortLeft, false) |
||||
|
// this.setReorderData(this.right, this.sortRight, true) |
||||
|
// }) |
||||
|
}, |
||||
|
// 分出左右后重新排序,根据节和层从下往上,left-从右往左, right-从左往右 |
||||
|
setReorderData(data, sortData, order) { |
||||
|
let key |
||||
|
if (this.isColumDirection) { |
||||
|
key = 0 |
||||
|
} else { |
||||
|
key = this.deviceData.rowNo + 1 |
||||
|
} |
||||
|
const arr = [] |
||||
|
for (let i = 0; i < this.deviceData.rowNo; i++) { |
||||
|
arr[i] = [] |
||||
|
if (this.isColumDirection) { |
||||
|
key++ |
||||
|
} else { |
||||
|
key-- |
||||
|
} |
||||
|
data.forEach(item => { |
||||
|
if (item.row_No === key) { |
||||
|
arr[i].push(item) |
||||
|
} |
||||
|
if (this.isColumDirection) { |
||||
|
if (key === this.deviceData.rowNo + 1) { |
||||
|
key = 0 |
||||
|
} |
||||
|
} else { |
||||
|
if (key === 0) { |
||||
|
key = this.deviceData.rowNo |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
this.arrSortByKey(arr[i], 'part_No', order) |
||||
|
} |
||||
|
// 筛选完之后,重新全部集合在指定得data内 |
||||
|
arr.forEach(item => { |
||||
|
item.forEach(i => { |
||||
|
sortData.push(i) |
||||
|
}) |
||||
|
}) |
||||
|
}, |
||||
|
// 升降序 |
||||
|
arrSortByKey(array, property, order) { |
||||
|
return array.sort(function(a, b) { |
||||
|
const value1 = a[property] |
||||
|
const value2 = b[property] |
||||
|
if (order) { // 升序 |
||||
|
return value1 - value2 |
||||
|
} else { // 降序 |
||||
|
return value2 - value1 |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 保存 |
||||
|
handleSave() { |
||||
|
// 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 |
||||
|
obj.deviceId = item.deviceInfoId |
||||
|
obj.position = item.position |
||||
|
obj.positionName = item.position_name |
||||
|
obj.shelfId = item.id |
||||
|
params.push(obj) |
||||
|
}) |
||||
|
console.log('params', params) |
||||
|
collect(params).then(data => { |
||||
|
console.log(data, 'data') |
||||
|
if (data) { |
||||
|
this.dialogVisible = false |
||||
|
this.singleVisible = true |
||||
|
this.crud.refresh() |
||||
|
this.cnName = null |
||||
|
} |
||||
|
this.crud.downloadLoading = false |
||||
|
}) |
||||
|
}, |
||||
|
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) { |
||||
|
this.$refs.deviceTree.getDeviceTree() |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
::v-deep .el-dialog { |
||||
|
width: 860px !important; |
||||
|
.el-dialog__body { |
||||
|
padding: 20px 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.content{ |
||||
|
display: flex; |
||||
|
justify-content: flex-start; |
||||
|
border: 1px solid #E6E8ED; |
||||
|
height: 530px; |
||||
|
overflow: hidden; |
||||
|
.content-left{ |
||||
|
width: 253px; |
||||
|
padding-right: 20px; |
||||
|
border-right: 1px solid #E6E8ED; |
||||
|
} |
||||
|
.content-right{ |
||||
|
width: 566px; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.selected-header{ |
||||
|
display: flex; |
||||
|
justify-content: flex-start; |
||||
|
padding: 10px 0 0 0; |
||||
|
.selected-left{ |
||||
|
width: 87px; |
||||
|
padding-left: 12px; |
||||
|
line-height: 28px; |
||||
|
color: #0C0E1E; |
||||
|
.selected-num{ |
||||
|
display: block; |
||||
|
width: 36px; |
||||
|
line-height: 18px; |
||||
|
text-align: center; |
||||
|
font-size: 12px; |
||||
|
background-color: #EAF6FF; |
||||
|
border-radius: 3px; |
||||
|
i{ |
||||
|
display: block; |
||||
|
font-style: normal; |
||||
|
color: #FF6F31; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.selected-right{ |
||||
|
flex: 1; |
||||
|
display: flex; |
||||
|
justify-content: flex-start; |
||||
|
flex-wrap: wrap; |
||||
|
height: 72px; |
||||
|
margin-right: 5px; |
||||
|
overflow: hidden; |
||||
|
overflow-y: scroll; |
||||
|
li{ |
||||
|
display: flex; |
||||
|
justify-content: flex-start; |
||||
|
width: 148px; |
||||
|
height: 28px; |
||||
|
line-height: 26px; |
||||
|
margin: 0 8px 8px 0; |
||||
|
font-size: 12px; |
||||
|
color: #2ECAAC; |
||||
|
border: 1px solid #B1EBDF; |
||||
|
background: #E8F8F5; |
||||
|
border-radius: 3px; |
||||
|
overflow: hidden; |
||||
|
i{ |
||||
|
display: block; |
||||
|
width: 40px; |
||||
|
text-align: center; |
||||
|
font-style: normal; |
||||
|
background-color: #2ECAAC; |
||||
|
color: #fff; |
||||
|
} |
||||
|
span{ |
||||
|
display: block; |
||||
|
padding: 0 10px; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.frame-content{ |
||||
|
padding: 15px 18px 20px 18px; |
||||
|
border-top: 1px solid #E6E8ED; |
||||
|
} |
||||
|
|
||||
|
.location-header{ |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
color: #0C0E1E; |
||||
|
line-height: 28px; |
||||
|
.location-txt{ |
||||
|
p{ |
||||
|
display: inline-block; |
||||
|
color: #545B65; |
||||
|
} |
||||
|
span{ |
||||
|
padding: 0 20px; |
||||
|
color: #0348F3; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
::v-deep .selected-right::-webkit-scrollbar { |
||||
|
width: 5px !important; |
||||
|
height: 5px !important; |
||||
|
background-color: #DDE8FB !important; |
||||
|
} |
||||
|
|
||||
|
::v-deep .selected-right::-webkit-scrollbar-thumb { |
||||
|
border-radius: 3px; |
||||
|
background-color: #4578F6 !important; |
||||
|
} |
||||
|
|
||||
|
::v-deep .selected-right::-webkit-scrollbar-thumb:hover { |
||||
|
background-color: #4578F6 !important; |
||||
|
} |
||||
|
|
||||
|
::v-deep .custom-table .el-table__body-wrapper::-webkit-scrollbar-corner { |
||||
|
background-color: #DDE8FB !important; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,22 @@ |
|||||
|
<template> |
||||
|
<div class="app-container tab-container"> |
||||
|
库存盘点 |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
name: 'InventoryCheck', |
||||
|
components: { |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
</style> |
||||
@ -0,0 +1,106 @@ |
|||||
|
<template> |
||||
|
<div class="app-container"> |
||||
|
<div class="container-main" style="justify-content: flex-start;"> |
||||
|
<div class="elect-cont-left"> |
||||
|
<device-tree @nodeClick="handleNodeClick" /> |
||||
|
</div> |
||||
|
<div class="elect-cont-right" style="height:calc(100vh - 140px)"> |
||||
|
<!--工具栏--> |
||||
|
<div class="head-container"> |
||||
|
<div class="head-search" style="justify-content: flex-end;"> |
||||
|
<el-button size="mini" :disabled="crud.selections.length !== 1" @click="bindingTag(crud.selections)"> |
||||
|
<i class="iconfont icon-bendiguajie" /> |
||||
|
绑定标签 |
||||
|
</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="container-right"> |
||||
|
<span class="right-top-line" /> |
||||
|
<span class="left-bottom-line" /> |
||||
|
<!--表格渲染--> |
||||
|
<el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;" height="calc(100vh - 330px)" @row-click="clickRowHandler" @selection-change="crud.selectionChangeHandler"> |
||||
|
<el-table-column type="selection" width="55" align="center" /> |
||||
|
<el-table-column type="index" label="序号" width="55" align="center" /> |
||||
|
<el-table-column prop="position_name" label="存放位置" /> |
||||
|
<el-table-column prop="position" label="位置编号" /> |
||||
|
<el-table-column prop="storeroomCode" label="库房代码" /> |
||||
|
<el-table-column v-if="deviceInfo && deviceInfo.deviceTypeId && deviceInfo.deviceTypeId.name === '密集架'" prop="areaNo" label="区号" width="80" align="center" /> |
||||
|
<el-table-column v-if="deviceInfo && deviceInfo.deviceTypeId && deviceInfo.deviceTypeId.name === '回转柜'" prop="cupboardNo" label="柜号" width="80" align="center" /> |
||||
|
<el-table-column v-if="deviceInfo && deviceInfo.deviceTypeId && deviceInfo.deviceTypeId.name === '密集架'" prop="columnRowNo" label="列号" width="80" align="center" /> |
||||
|
<el-table-column v-if="deviceInfo && deviceInfo.deviceTypeId && deviceInfo.deviceTypeId.name === '密集架'" prop="partNo" label="节号" width="80" align="center" /> |
||||
|
<el-table-column prop="rowNo" label="层号" width="80" align="center" /> |
||||
|
<el-table-column v-if="deviceInfo && deviceInfo.deviceTypeId && deviceInfo.deviceTypeId.name === '回转柜'" prop="columnRowNo" label="列号" width="80" align="center" /> |
||||
|
<el-table-column v-if="deviceInfo && deviceInfo.deviceTypeId && deviceInfo.deviceTypeId.name === '密集架'" prop="direction" label="方向" width="80" align="center" /> |
||||
|
<el-table-column prop="tid" label="电子标签" /> |
||||
|
<el-table-column :show-overflow-tooltip="true" prop="update_time" label="操作时间" width="150" align="center"> |
||||
|
<template slot-scope="scope"> |
||||
|
<div>{{ scope.row.update_time | parseTime }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<!--分页组件--> |
||||
|
<pagination v-if="crud.data.length!==0" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<binding-tag-dlg ref="bindingTag" :binding-id="crud.selections[0] && crud.selections[0].id" :binding-type="3" binding-txt="层架位" @refresh="crud.refresh" /> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import CRUD, { presenter, crud } from '@crud/crud' |
||||
|
import pagination from '@crud/Pagination' |
||||
|
import DeviceTree from '@/views/components/DeviceTree' |
||||
|
import BindingTagDlg from '@/views/components/BindingTagDlg' |
||||
|
export default { |
||||
|
name: 'LevelManage', |
||||
|
components: { pagination, DeviceTree, BindingTagDlg }, |
||||
|
cruds() { |
||||
|
return CRUD({ title: '层位架', url: 'api/tag/list', queryOnPresenterCreated: false }) |
||||
|
}, |
||||
|
mixins: [presenter(), crud()], |
||||
|
data() { |
||||
|
return { |
||||
|
deviceInfo: {}, |
||||
|
storeroomName: '' |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
[CRUD.HOOK.beforeRefresh]() { |
||||
|
this.crud.query.deviceInfoId = this.deviceInfo.id |
||||
|
}, |
||||
|
clickRowHandler(row) { |
||||
|
this.$refs.table.clearSelection() |
||||
|
this.$refs.table.toggleRowSelection(row) |
||||
|
}, |
||||
|
selectionChangeHandler(val) { |
||||
|
if (val.length > 1) { |
||||
|
// 取出最后val的最后一个返回出来 |
||||
|
const finalVal = val.pop() |
||||
|
// 清除所有选中 |
||||
|
this.$refs.table.clearSelection() |
||||
|
// 给最后一个加上选中 |
||||
|
this.$refs.table.toggleRowSelection(finalVal) |
||||
|
this.crud.selectionChangeHandler([finalVal]) |
||||
|
} else { |
||||
|
this.crud.selectionChangeHandler(val) |
||||
|
} |
||||
|
}, |
||||
|
handleNodeClick(data) { |
||||
|
this.deviceInfo = data |
||||
|
this.crud.toQuery() |
||||
|
this.storeroomName = data.storeroomId.name |
||||
|
}, |
||||
|
bindingTag(data) { |
||||
|
if (data[0].tid) { |
||||
|
this.$refs.bindingTag.isBinding = true |
||||
|
this.$refs.bindingTag.tidCode = data[0].tid |
||||
|
} |
||||
|
this.$refs.bindingTag.bindingVisible = true |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
</style> |
||||
@ -0,0 +1,22 @@ |
|||||
|
<template> |
||||
|
<div class="app-container tab-container"> |
||||
|
档案出库 |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
name: 'OutStorage', |
||||
|
components: { |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
</style> |
||||
@ -0,0 +1,22 @@ |
|||||
|
<template> |
||||
|
<div class="app-container tab-container"> |
||||
|
档案出入库记录 |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
name: 'StorageLog', |
||||
|
components: { |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue