【前端】智能库房综合管理系统前端项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

160 lines
6.0 KiB

<template>
<div class="app-container">
<binding-tag-dlg ref="bindingTag" :binding-id="crud.selections[0] && crud.selections[0].id" :binding-type="3" binding-txt="层架位" @refresh="crud.refresh" />
<div class="head-container">
<p class="warning">
<svg-icon icon-class="warning" />
<span>温馨提示如需配置层位请直接前往库房设备管理进行设备维护</span>
</p>
<div>
<el-button type="primary" class="iconfont icon-jiechubangding-fanbai" size="mini" :disabled="crud.selections.length !== 1" @click="bindingTag(crud.selections)">绑定标签</el-button>
</div>
</div>
<el-row class="container-main">
<el-col class="curd-in-out" :xs="10" :sm="8" :md="5" :lg="6" :xl="5">
<div class="container-left left-tree-item" style="height:calc(100vh - 240px)">
<span class="right-top-line" />
<span class="left-bottom-line" />
<!--树状结构-->
<device-tree @nodeClick="handleNodeClick" />
</div>
</el-col>
<!-- 档案管理列表 -->
<el-col class="container-right" style="min-height: calc(100vh - 240px);" :xs="14" :sm="18" :md="19" :lg="18" :xl="19">
<span class="right-top-line" />
<span class="left-bottom-line" />
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" highlight-current-row style="width: 100%;" height="calc(100vh - 295px)" @selection-change="selectionChangeHandler" @row-click="clickRowHandler">
<el-table-column align="center" type="selection" width="55" />
<el-table-column align="center" type="index" label="序号" width="55" />
<!-- <el-table-column align="center" label="库房">
<template>
{{ storeroomName }}
</template>
</el-table-column> -->
<el-table-column align="center" prop="position_name" label="层位名称" />
<el-table-column align="center" prop="position" label="层位编号" />
<el-table-column align="center" prop="storeroomCode" label="库房代码" />
<el-table-column v-if="deviceInfo.deviceTypeId && deviceInfo.deviceTypeId.name === '密集架'" align="center" prop="areaNo" label="区号" width="80" />
<el-table-column v-if="deviceInfo.deviceTypeId && deviceInfo.deviceTypeId.name === '回转柜'" align="center" prop="cupboardNo" label="柜号" width="80" />
<el-table-column v-if="deviceInfo.deviceTypeId && deviceInfo.deviceTypeId.name === '密集架'" align="center" prop="columnRowNo" label="列号" width="80" />
<el-table-column v-if="deviceInfo.deviceTypeId && deviceInfo.deviceTypeId.name === '密集架'" align="center" prop="partNo" label="节号" width="80" />
<el-table-column align="center" prop="rowNo" label="层号" width="80" />
<el-table-column v-if="deviceInfo.deviceTypeId && deviceInfo.deviceTypeId.name === '回转柜'" align="center" prop="columnRowNo" label="列号" width="80" />
<el-table-column v-if="deviceInfo.deviceTypeId && deviceInfo.deviceTypeId.name === '密集架'" align="center" prop="direction" label="方向" width="80" />
<el-table-column align="center" prop="tid" label="标签" />
<el-table-column align="center" prop="update_time" label="操作时间" width="150">
<template slot-scope="scope">
<div>{{ scope.row.update_time | parseTime }}</div>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</el-col>
</el-row>
</div>
</template>
<script>
import DeviceTree from '@/views/components/DeviceTree'
import BindingTagDlg from '@/views/components/BindingTagDlg'
import CRUD, { presenter } from '@crud/crud'
import pagination from '@crud/Pagination'
export default {
name: 'LevelManage',
components: { DeviceTree, pagination, BindingTagDlg },
mixins: [presenter()],
cruds() {
return [
CRUD({
url: 'api/tag/list',
queryOnPresenterCreated: false,
sort: ['areaNo,asc', 'columnRowNo,asc', 'partNo,asc', 'rowNo,asc', 'position,asc']
})
]
},
data() {
return {
deviceInfo: {},
storeroomName: ''
}
},
created() {
},
methods: {
[CRUD.HOOK.beforeRefresh]() {
this.crud.query.deviceInfoId = this.deviceInfo.id
},
handleNodeClick(data) {
this.deviceInfo = data
this.crud.toQuery()
this.storeroomName = data.storeroomId.name
},
// 参数绑定
handleBindParam() {
},
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)
}
},
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>
.head-container {
display: flex;
justify-content: space-between;
align-items: center;
.el-button {
width: 106px;
height: 30px;
background-color: #1aae93;
border: none;
&:disabled {
background-color: #0D5649;
color: #666;
}
&::before {
padding-right: 5px;
}
}
}
::v-deep .el-icon-more:before {
margin-right: 8px;
}
.app-container {
margin-top: 0;
}
.warning {
font-size: 14px;
color: #3a99fd;
span {
margin-left: 5px;
}
}
::v-deep thead .el-table-column--selection .cell {
display: none;
}
</style>