<add>[important]添加查询电子标签货位功能

This commit is contained in:
葛林强 2024-06-15 13:55:26 +08:00
parent 0edf54ed13
commit 08a2f6b046
5 changed files with 326 additions and 0 deletions

View File

@ -13,4 +13,8 @@ export default {
insertElTagTask(request) { insertElTagTask(request) {
return axios.post('/api/wcs/elTag/addTask', request); return axios.post('/api/wcs/elTag/addTask', request);
}, },
// 分页查询电子标签货位
getElTagLocationWithPage(request) {
return axios.post('/api/wcs/elTag/queryLocationWithPage', request);
},
} }

View File

@ -22,6 +22,7 @@ const routes = [
// 设备管理 // 设备管理
{ path: 'location', name: 'location', component:() => import('@/view/tab/equipmentManage/LocationData.vue') }, // 点位/库位管理 { path: 'location', name: 'location', component:() => import('@/view/tab/equipmentManage/LocationData.vue') }, // 点位/库位管理
{ path: 'stackerData', name: 'stackerData', component:() => import('@/view/tab/equipmentManage/StackerData.vue') }, // 堆垛机管理 { path: 'stackerData', name: 'stackerData', component:() => import('@/view/tab/equipmentManage/StackerData.vue') }, // 堆垛机管理
{path: 'elTagLocationData', name: 'elTagLocationData', component:() => import('@/view/tab/equipmentManage/ElTagLocationData.vue')}, // 电子标签货位管理
// 数据查询 // 数据查询
{ path: 'apiAccept', name: 'apiAccept', component:() => import('../view/tab/dataQuery/ApiAccept.vue') }, // 接口接收记录 { path: 'apiAccept', name: 'apiAccept', component:() => import('../view/tab/dataQuery/ApiAccept.vue') }, // 接口接收记录
{ path: 'apiRequest', name: 'apiRequest', component:() => import('../view/tab/dataQuery/ApiRequest.vue') }, // 接口请求记录 { path: 'apiRequest', name: 'apiRequest', component:() => import('../view/tab/dataQuery/ApiRequest.vue') }, // 接口请求记录

View File

@ -0,0 +1,117 @@
<!-- -->
<template>
<div>
<el-row style="width: calc(100vw - 270px)">
<el-row style="width: 100%">
<h5>电子标签货位表</h5>
</el-row>
<el-table :data="modelValue" border stripe max-height="calc(100vh - 400px)">
<el-table-column fixed prop="location" label="库位" width="150px" align="center"/>
<el-table-column prop="tagName" label="标签名称" width="150px" align="center"/>
<el-table-column prop="tagId" label="标签编号" width="150px" show-overflow-tooltip align="center"/>
<el-table-column prop="controllerDisplayName" label="控制器名称" width="100px" align="center"/>
<el-table-column prop="tagType" label="标签类型" width="100px" align="center"/>
<el-table-column prop="area" label="区域" width="80px" align="center"/>
<el-table-column prop="ledStatus" label="LED状态" width="120px" align="center"/>
<el-table-column prop="lastLightTime" label="上次点亮时间" :formatter="formatterTime" width="160px" align="center"/>
<el-table-column prop="taskId" label="当前点亮任务号" width="200px" align="center"/>
<el-table-column prop="remark" label="备注信息" min-width="100px"/>
<el-table-column fixed="right" label="操作" align="center" width="80">
<template #default="scope">
<el-button-group class="ml-4">
<el-tooltip content="编辑" placement="top" effect="light">
<el-button type="primary" size="small" @click="edit(scope.row)">
<el-icon><Edit/></el-icon>
</el-button>
</el-tooltip>
</el-button-group>
</template>
</el-table-column>
</el-table>
<el-row style="margin-top: 15px">
<el-pagination
small
v-if="searchParams.page.totalRow > 0"
background
v-model:page-size="searchParams.page.pageSize"
v-model:current-page="searchParams.page.pageIndex"
:page-sizes="[20, 50, 100, 200, 300, 500]"
layout="prev, pager, next, jumper, sizes, total"
:total="searchParams.page.totalRow"
@size-change="searchData"
@current-change="searchData"
/>
</el-row>
</el-row>
</div>
</template>
<script>
// import from ' ';
import CheckDetail from "@/view/component/locationData/CheckDetail.vue";
import {Edit} from "@element-plus/icons-vue";
import formatterTime from "@/plugins/formatter/formatter.time";
export default {
// import 使
components: {Edit, CheckDetail},
props: ['modelValue', 'searchParams'],
emits: ['update:modelValue', 'update:searchParams', 'pageChange'],
data() {
//
return {
formatterTime: formatterTime.formatCellValueTime,
}
},
// data
computed: {
},
// data
watch: {},
//
methods: {
searchData(){
this.$emit('pageChange', this.searchParams)
},
//
edit(row) {
}
},
// API
setup() {
},
//
beforeCreate() {
},
// (访 this )
created() {
},
// -
beforeMount() {
},
// - 访 DOM
mounted() {
},
//
beforeUpdate() {
},
//
updated() {
},
//
beforeUnmount() {
},
//
unmounted() {
}
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,112 @@
<!-- -->
<template>
<div style="border-radius: 5px; border: #2c3e5033 solid 1px; padding: 10px">
<el-row>
<el-form :model="searchParams" label-width="120" label-position="left">
<el-form-item label="查询关键字:">
<el-input placeholder="输入 标签号/点位号/控制器名称 查询..." v-model="searchParams.searchStr" clearable style="width: 500px"></el-input>
</el-form-item>
</el-form>
</el-row>
<el-row>
<el-button type="primary" @click="searchBtn">查询/刷新</el-button>
</el-row>
</div>
</template>
<script>
// import from ' ';
import elTagApi from "@/axios/el.tag";
import {ElLoading, ElMessage} from "element-plus";
export default {
// import 使
components: {},
props: ['modelValue', 'searchParams'],
emits: ['update:searchParams', 'update:modelValue'],
data() {
//
return {}
},
// data
computed: {},
// data
watch: {},
//
methods: {
//
searchBtn() {
this.searchParams.page.pageIndex = 1
this.searchParams.page.pageSize = 50
this.$emit('update:searchParams', this.searchParams)
this.searchData(this.searchParams)
},
searchData(searchParams) {
const loading = ElLoading.service({
lock: true,
text: '加载中...',
})
this.$emit('update:modelValue', [])
elTagApi.getElTagLocationWithPage(searchParams).then((response) => {
const responseData = response.data
if (responseData.code === 0) {
ElMessage({
message: '查询成功',
type: 'success',
})
//
this.searchParams.page.totalRow = parseInt(responseData["tag"])
this.$emit('update:searchParams', this.searchParams)
this.$emit('update:modelValue', Object.freeze(responseData["returnData"]))
} else {
ElMessage({
message: '服务器返回失败:' + responseData.msg,
type: 'warning',
})
}
}).catch((ex) => {
ElMessage({
message: '请求服务器失败:' + ex,
type: 'error',
})
}).finally(() => {
loading.close()
})
}
},
// API
setup() {
},
//
beforeCreate() {
},
// (访 this )
created() {
},
// -
beforeMount() {
},
// - 访 DOM
mounted() {
},
//
beforeUpdate() {
},
//
updated() {
},
//
beforeUnmount() {
},
//
unmounted() {
}
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,92 @@
<!--电子标签货位-->
<template>
<div>
<el-row>
<searchForm v-model="elTagList" v-model:search-params="searchParams" style="width: 100%" ref="searchForm"></searchForm>
</el-row>
<el-row>
<ElTagList v-model="elTagList" v-model:search-params="searchParams" @page-change="pageChange"></ElTagList>
</el-row>
</div>
</template>
<script>
// import from ' ';
import SearchForm from "@/view/component/ElTagLocationData/SearchForm.vue";
import ElTagList from "@/view/component/ElTagLocationData/ElTagList.vue";
export default {
// import 使
components: {ElTagList, SearchForm},
props: [],
emits: [],
data() {
//
return {
// 使SearchForm
searchParams: {
//
searchStr: '',
//
page: {
//
pageSize: 50,
//
pageIndex: 1,
//
totalRow: 0
},
},
//
elTagList: []
}
},
// data
computed: {
},
// data
watch: {
},
//
methods: {
pageChange(searchParams) {
this.$refs.searchForm.searchData(searchParams)
},
},
// API
setup() {
},
//
beforeCreate() {
},
// (访 this )
created() {
},
// -
beforeMount() {
},
// - 访 DOM
mounted() {
},
//
beforeUpdate() {
},
//
updated() {
},
//
beforeUnmount() {
},
//
unmounted() {
}
}
</script>
<style lang="scss" scoped>
</style>