Browse Source

页面微调

dev
常熟吴彦祖 17 hours ago
parent
commit
d1ceb52249
  1. 8
      src/views/modules/haianWarehouse/automatedWarehouse/handlingUnitOperationLog54.vue
  2. 2
      src/views/modules/haianWarehouse/automatedWarehouse/notifyDetailQuery54.vue
  3. 111
      src/views/modules/haianWarehouse/warehousePallet/warehousePallet54.vue

8
src/views/modules/haianWarehouse/automatedWarehouse/handlingUnitOperationLog54.vue

@ -1,9 +1,9 @@
<template>
<div class="mod-config yzz">
<el-form :inline="true" label-position="top" class="query-form">
<el-form-item label="工厂编码">
<el-input v-model="queryData.site" style="width: 120px" disabled></el-input>
</el-form-item>
<!-- <el-form-item label="工厂编码">-->
<!-- <el-input v-model="queryData.site" style="width: 120px" disabled></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="条码号">
<el-input v-model="queryData.searchSerialNo" style="width: 150px" placeholder="请输入条码号"></el-input>
</el-form-item>
@ -37,7 +37,7 @@
<el-table :height="height" :data="dataList" border highlight-current-row v-loading="dataListLoading" style="width: 100%;">
<el-table-column prop="id" label="ID" min-width="60" header-align="center" align="center"></el-table-column>
<el-table-column prop="serialNo" label="条码号" min-width="150" header-align="center" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="site" label="工厂" min-width="80" header-align="center" align="center"></el-table-column>
<!-- <el-table-column prop="site" label="工厂" min-width="80" header-align="center" align="center"></el-table-column>-->
<el-table-column prop="operationType" label="操作类型" min-width="100" header-align="center" align="center">
<template slot-scope="scope">
<span :style="getOperationTypeStyle(scope.row.operationType)">{{ scope.row.operationType || '-' }}</span>

2
src/views/modules/haianWarehouse/automatedWarehouse/notifyDetailQuery54.vue

@ -153,7 +153,7 @@ export default {
notifyNo: '',
soorderNo: '',
orderType: '',
pushWmsFlag: '',
pushWmsFlag: 'Y',
transportFlag: ''
}
}

111
src/views/modules/haianWarehouse/warehousePallet/warehousePallet54.vue

@ -1,16 +1,7 @@
<template>
<div class="mod-config">
<el-form :inline="true" label-position="top">
<el-form-item label="工厂">
<el-select v-model="queryData.site" placeholder="请选择工厂" style="width: 130px;" clearable @change="onQuerySiteChange">
<el-option
v-for="item in siteOptions"
:key="item.site"
:label="item.siteName || item.site"
:value="item.site"
/>
</el-select>
</el-form-item>
<!-- 栈板只归属主工厂,查询显式传当前工厂,不提供工厂选择或子site拆分 - rqrq -->
<el-form-item label="托盘ID">
<el-input v-model="queryData.palletId" placeholder="请输入托盘ID" style="width: 150px;" clearable @keyup.enter.native="getDataList" />
</el-form-item>
@ -34,11 +25,11 @@
/>
</el-select>
</el-form-item>
<el-form-item label="托盘状态">
<el-select v-model="queryData.status" placeholder="请选择" style="width: 120px;" clearable>
<el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<!-- <el-form-item label="托盘状态">-->
<!-- <el-select v-model="queryData.status" placeholder="请选择" style="width: 120px;" clearable>-->
<!-- <el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="站点">
<el-input v-model="queryData.locationCode" placeholder="请输入站点编码" style="width: 140px;" clearable @keyup.enter.native="getDataList" />
</el-form-item>
@ -47,8 +38,8 @@
</el-form-item>
<el-form-item style="margin-top: 20px;">
<el-button type="primary" :loading="queryLoading" @click="getDataList">查询</el-button>
<el-button @click="resetQuery">重置</el-button>
<el-button type="primary" :loading="queryLoading" :disabled="queryLoading" @click="getDataList">查询</el-button>
<el-button :disabled="queryLoading" @click="resetQuery">重置</el-button>
<!-- 导出字段与页面字段保持同口径,避免口径不一致 - rqrq -->
<download-excel
:fields="fields()"
@ -60,6 +51,9 @@
:fetch="createExportData"
:before-generate="startDownload"
:before-finish="finishDownload"
:disabled="exportLoading"
:class="{ 'is-disabled': exportLoading }"
:style="{ pointerEvents: exportLoading ? 'none' : 'auto' }"
worksheet="托盘"
class="el-button el-button--primary el-button--medium"
>
@ -319,6 +313,9 @@ export default {
data() {
return {
queryLoading: false,
// 查询序号隔离切换主工厂前的旧响应,导出加载标记阻止重复请求 - rqrq
querySequence: 0,
exportLoading: false,
tableLoading: false,
height: 450,
queryData: {
@ -348,11 +345,11 @@ export default {
exportHeader: ['托盘信息'],
exportFooter: [],
columnList: [
{ columnProp: 'site', columnLabel: '工厂', columnWidth: 90, align: 'center', headerAlign: 'center' },
// { columnProp: 'site', columnLabel: '工厂', columnWidth: 90, align: 'center', headerAlign: 'center' },
{ columnProp: 'palletId', columnLabel: '托盘ID', columnWidth: 120, align: 'center', headerAlign: 'center' },
{ columnProp: 'palletFamilyDesc', columnLabel: '托盘大分类', columnWidth: 120, align: 'center', headerAlign: 'center' },
{ columnProp: 'typeDesc', columnLabel: '托盘类型', columnWidth: 160, align: 'center', headerAlign: 'center' },
{ columnProp: 'status', columnLabel: '托盘状态', columnWidth: 100, align: 'center', headerAlign: 'center', formatter: 'status' },
// { columnProp: 'status', columnLabel: '托盘状态', columnWidth: 100, align: 'center', headerAlign: 'center', formatter: 'status' },
{ columnProp: 'area', columnLabel: '区域', columnWidth: 90, align: 'center', headerAlign: 'center' },
{ columnProp: 'locationCode', columnLabel: '站点', columnWidth: 120, align: 'center', headerAlign: 'center' },
{ columnProp: 'wcsLocation', columnLabel: 'WCS站点', columnWidth: 120, align: 'center', headerAlign: 'center' },
@ -388,6 +385,18 @@ export default {
}
}
},
computed: {
// 栈板查询使用当前主工厂;空值由查询入口拦截,不能退回旧工厂或扩展为全部工厂 - rqrq
currentSite () {
return String(this.$store.state.user.site || '').trim()
}
},
watch: {
// 当前主工厂变化后重新初始化,清除原工厂筛选和结果,防止缓存页串厂 - rqrq
currentSite () {
this.initializePage()
}
},
mounted() {
this.$nextTick(() => {
this.height = window.innerHeight - 240
@ -400,14 +409,31 @@ export default {
this.initializePage()
},
methods: {
// 页面初始化:先加载基础字典,再按当前查询条件拉取数据 - rqrq
// 页面初始化先同步当前主工厂,再加载分类、类型及列表;查询不读取工厂或子site下拉 - rqrq
initializePage() {
this.syncQuerySite()
this.getStatusOptions()
this.getSiteOptions()
this.getPalletFamilyOptions(this.queryData.site)
this.getPalletTypeOptions(this.queryData.site, this.queryData.palletFamily)
this.getDataList()
},
// 主工厂变化时清空旧分类和结果并使旧请求失效;site始终显式写入查询参数,不拆分子工厂 - rqrq
syncQuerySite () {
if (this.queryData.site !== this.currentSite) {
this.queryData.site = this.currentSite
this.queryData.palletFamily = ''
this.queryData.palletType = ''
this.palletFamilyOptions = []
this.palletTypeOptions = []
this.pageIndex = 1
this.dataList = []
this.totalPage = 0
this.selectedRows = []
this.querySequence++
this.queryLoading = false
this.tableLoading = false
}
},
// 构造表单默认值,确保新增场景字段初始化一致 - rqrq
createEmptyForm() {
return {
@ -463,12 +489,15 @@ export default {
return
}
haiAnGetPalletFamilyList({ site }).then(({ data }) => {
// 切换主工厂后的旧分类响应不再回填当前筛选 - rqrq
if (site !== this.currentSite) return
if (data && data.code === 0) {
this.palletFamilyOptions = data.rows || []
} else {
this.palletFamilyOptions = []
}
}).catch(() => {
if (site !== this.currentSite) return
this.palletFamilyOptions = []
})
},
@ -480,12 +509,15 @@ export default {
}
const inData = { site, palletFamily: palletFamily || '' }
haiAnGetPalletTypeList(inData).then(({ data }) => {
// 工厂或大分类已变化时忽略旧类型响应,避免跨厂或跨分类回填 - rqrq
if (site !== this.currentSite || inData.palletFamily !== this.queryData.palletFamily) return
if (data && data.code === 0) {
this.palletTypeOptions = data.rows || []
} else {
this.palletTypeOptions = []
}
}).catch(() => {
if (site !== this.currentSite || inData.palletFamily !== this.queryData.palletFamily) return
this.palletTypeOptions = []
})
},
@ -501,17 +533,22 @@ export default {
this.queryData.palletType = ''
this.getPalletTypeOptions(this.queryData.site, val)
},
// 核心查询:site必传,后端返回page结构并驱动分页 - rqrq
// 列表与分页只按当前主工厂查询,缺失工厂拒绝请求;重复查询拦截,旧响应不覆盖切厂后的结果 - rqrq
getDataList() {
if (!this.queryData.site) {
this.$message.warning('请先选择工厂')
this.syncQuerySite()
if (this.queryLoading) return
if (!this.currentSite) {
this.$alert('当前工厂不能为空,请先选择当前工厂', '提示', { confirmButtonText: '确定' })
return
}
this.queryLoading = true
this.tableLoading = true
this.queryData.page = this.pageIndex
this.queryData.limit = this.pageSize
haiAnGetPalletList(this.queryData).then(({ data }) => {
const sequence = ++this.querySequence
const query = { ...this.queryData, site: this.currentSite }
haiAnGetPalletList(query).then(({ data }) => {
if (sequence !== this.querySequence || query.site !== this.currentSite) return
if (data && data.code === 0) {
this.dataList = (data.page && data.page.list) || []
this.totalPage = (data.page && data.page.totalCount) || 0
@ -521,12 +558,15 @@ export default {
this.$alert((data && data.msg) || '查询失败', '提示', { confirmButtonText: '确定' })
}
}).catch(() => {
if (sequence !== this.querySequence || query.site !== this.currentSite) return
this.dataList = []
this.totalPage = 0
this.$message.error('查询失败')
}).finally(() => {
if (sequence === this.querySequence) {
this.queryLoading = false
this.tableLoading = false
}
})
},
// 查询重置:保留当前登录site作为默认工厂 - rqrq
@ -566,6 +606,8 @@ export default {
},
// 打开新增弹窗:清空表单并按site加载下拉 - rqrq
openCreateDialog() {
// 既有新增表单仍使用授权工厂选项,仅打开新增时加载,不影响主工厂查询口径 - rqrq
this.getSiteOptions()
this.editDialog.title = '新增托盘'
this.editDialog.visible = true
this.editDialog.readonlySite = false
@ -816,18 +858,35 @@ export default {
}
})
},
// 导出与查询同口径:仅放大limit,不另起一套筛选逻辑 - rqrq
// 导出显式使用当前主工厂且不拆子site;切厂时丢弃旧导出,失败提示并在finally复位加载状态 - rqrq
async createExportData() {
if (this.exportLoading) return []
this.syncQuerySite()
if (!this.currentSite) {
this.$alert('当前工厂不能为空,请先选择当前工厂', '提示', { confirmButtonText: '确定' })
return []
}
const exportQuery = {
...this.queryData,
site: this.currentSite,
page: 1,
limit: 999999
}
this.exportLoading = true
try {
const { data } = await haiAnGetPalletList(exportQuery)
if (exportQuery.site !== this.currentSite) return []
if (data && data.code === 0 && data.page && data.page.list) {
return data.page.list
}
this.$alert((data && data.msg) || '导出失败', '提示', { confirmButtonText: '确定' })
return []
} catch (error) {
this.$message.error('导出失败,请稍后重试')
return []
} finally {
this.exportLoading = false
}
},
// 导出开始钩子预留 - rqrq
startDownload() {},

Loading…
Cancel
Save