Merge remote-tracking branch 'origin/master'

This commit is contained in:
lsymicc
2025-06-19 17:36:41 +08:00
30 changed files with 581 additions and 201 deletions

View File

@@ -1,5 +1,11 @@
import request from '@/utils/request'
// 查询仓库列表
export function warehouseList() {
return request({
url: '/bas/warehouse/list',
method: 'get'
})
}
// 查询入库作业流水列表
export function listViewInJobFlow(query) {
return request({

View File

@@ -1,5 +1,39 @@
// en.js
export default {
viewsMain: {
systemTitle: 'Fortucky Management System',
title: 'Home',
inboundOrders: 'Inbound Orders',
outboundOrders: 'Outbound Orders',
inventoryOrders: 'Inventory Orders',
totalOrders: 'Total Orders',
weeklyStats: 'Weekly In/Out Statistics',
locationStats: 'Location Statistics',
documentList: 'Document List',
documentId: 'Document ID',
type: 'Type',
status: 'Status',
executingTasks: 'Executing Tasks',
taskId: 'Task ID',
pendingTasks: 'Pending Tasks',
priority: 'Priority',
// Document Types
inbound: 'Inbound',
outbound: 'Outbound',
inventory: 'Inventory',
// Document Status
unexecuted: 'Unexecuted',
reviewing: 'Reviewing',
executing: 'Executing',
emptyLocation:"emptyLocation",
fullLocation:"fullLocation",
inboundAllocated:"inboundAllocated",
outboundAllocated:"outboundAllocated",
inboundNeedCheck:"inboundNeedCheck",
outboundNeedCheck:"outboundNeedCheck",
},
login: {
title: 'FORTUCKY WMS SYSTEM',
@@ -628,23 +662,7 @@ export default {
},
viewsMain: {
systemTitle: 'RuoYi Admin',
title: 'homePage',
unfinishedInboundTask: 'Unfinished Inbound Task Overview',
taskKey: 'Task Key',
unfinishedInboundTaskName: 'Unfinished Inbound Task',
totalUnfinishedCount: 'Total Unfinished Count',
todayUnfinishedCount: 'Today Unfinished Count',
finishedInboundTask: 'Finished Inbound Task Overview',
finishedInboundTaskName: 'Finished Inbound Task',
totalFinishedCount: 'Total Finished Count',
todayFinishedCount: 'Today Finished Count',
unfinishedOutboundTask: 'Unfinished Outbound Task Overview',
unfinishedOutboundTaskName: 'Unfinished Outbound Task',
finishedOutboundTask: 'Finished Outbound Task Overview',
finishedOutboundTaskName: 'Finished Outbound Task'
},
searchViewStockSecure: {
stockId: 'Stock ID',

View File

@@ -635,23 +635,7 @@ export default {
},
viewsMain: {
systemTitle: '福莱瑞达管理系统',
title: '首页',
unfinishedInboundTask: '未完成入库任务概览',
taskKey: '任务键值',
unfinishedInboundTaskName: '未完成入库任务',
totalUnfinishedCount: '全部未完成数量',
todayUnfinishedCount: '今日未完成数量',
finishedInboundTask: '已完成入库任务概览',
finishedInboundTaskName: '已完成入库任务',
totalFinishedCount: '全部已完成数量',
todayFinishedCount: '今日已完成数量',
unfinishedOutboundTask: '未完成出库任务概览',
unfinishedOutboundTaskName: '未完成出库任务',
finishedOutboundTask: '已完成出库任务概览',
finishedOutboundTaskName: '已完成出库任务'
},
searchViewStockSecure: {
stockId: '库存ID',
@@ -3174,5 +3158,38 @@ export default {
editSuccess: '修改成功',
deleteSuccess: '删除成功',
deleteConfirm: '是否确认删除客户编号为"{ids}"的数据项?'
},
viewsMain: {
systemTitle: '福莱瑞达管理系统',
title: '首页',
inboundOrders: '入库单数',
outboundOrders: '出库单数',
inventoryOrders: '盘点单数',
totalOrders: '总单据数',
weeklyStats: '近一周入库出库统计',
locationStats: '库位统计',
documentList: '单据列表',
documentId: '单据编号',
type: '类型',
status: '状态',
executingTasks: '正执行任务',
taskId: '任务编号',
pendingTasks: '待执行任务',
priority: '优先级',
// 单据类型
inbound: '入库',
outbound: '出库',
inventory: '盘点',
// 单据状态
unexecuted: '未执行',
reviewing: '审核中',
executing: '正执行',
// 饼图
emptyLocation:"空货位",
fullLocation:"满货位",
inboundAllocated:"入库已分配",
outboundAllocated:"出库已分配",
inboundNeedCheck:"入库需盘点",
outboundNeedCheck:"出库需盘点",
}
}

View File

@@ -8,7 +8,7 @@
<svg-icon icon-class="clipboard" class-name="card-panel-icon"/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">入库单数</div>
<div class="card-panel-text">{{ $t('viewsMain.inboundOrders') }}</div> <!-- 入库单数 -->
<count-to :start-val="0" :end-val="Number(quantity.inbound_order) || 0" :duration="2600" class="card-panel-num"/>
</div>
</div>
@@ -19,7 +19,7 @@
<svg-icon icon-class="documentation" class-name="card-panel-icon"/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">出库单数</div>
<div class="card-panel-text">{{ $t('viewsMain.outboundOrders') }}</div> <!-- 出库单数 -->
<count-to :start-val="0" :end-val="Number(quantity.outbound_order) || 0" :duration="3000" class="card-panel-num"/>
</div>
</div>
@@ -30,8 +30,8 @@
<svg-icon icon-class="chart" class-name="card-panel-icon"/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">盘点单数</div>
<count-to :start-val="0" :end-val="Number(quantity.inbound_order)|| 0" :duration="3200" class="card-panel-num"/>
<div class="card-panel-text">{{ $t('viewsMain.inventoryOrders') }}</div> <!-- 盘点单数 -->
<count-to :start-val="0" :end-val="Number(quantity.inventory_sheet)|| 0" :duration="3200" class="card-panel-num"/>
</div>
</div>
</el-col>
@@ -41,7 +41,7 @@
<svg-icon icon-class="excel" class-name="card-panel-icon"/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">总单据数</div>
<div class="card-panel-text">{{ $t('viewsMain.totalOrders') }}</div> <!-- 总单据数 -->
<count-to :start-val="0" :end-val="Number(quantity.total_documents)|| 0" :duration="3600" class="card-panel-num"/>
</div>
</div>
@@ -53,7 +53,7 @@
<el-col :xs="24" :sm="24" :lg="16">
<div class="chart-wrapper">
<div class="chart-header">
<span>近一周入库出库统计</span>
<span>{{ $t('viewsMain.weeklyStats') }}</span> <!-- 近一周入库出库统计 -->
</div>
<line-chart :chart-data="lineChartData"/>
</div>
@@ -61,7 +61,7 @@
<el-col :xs="24" :sm="24" :lg="8">
<div class="chart-wrapper">
<div class="chart-header">
<span>库位统计</span>
<span>{{ $t('viewsMain.locationStats') }}</span> <!-- 库位统计 -->
</div>
<pie-chart :chart-data="pieChartData"/>
</div>
@@ -73,39 +73,39 @@
<el-col :xs="24" :sm="24" :lg="8">
<div class="list-wrapper">
<div class="list-header">
<span>单据列表</span>
<span>{{ $t('viewsMain.documentList') }}</span> <!-- 单据列表 -->
</div>
<el-table :data="documentList" style="width: 100%" size="mini" height="300"
:header-cell-style="{backgroundColor: '#f5f7fa'}">
<el-table-column prop="id" label="单据编号"/>
<el-table-column prop="type" :formatter="type_" label="类型" width="80"/>
<el-table-column prop="status" :formatter="status_" label="状态" width="80"/>
<el-table-column prop="id" :label="$t('viewsMain.documentId')"/> <!-- 单据编号 -->
<el-table-column prop="type" :formatter="type_" :label="$t('viewsMain.type')" width="80"/> <!-- 类型 -->
<el-table-column prop="status" :formatter="status_" :label="$t('viewsMain.status')" width="80"/> <!-- 状态 -->
</el-table>
</div>
</el-col>
<el-col :xs="24" :sm="24" :lg="8">
<div class="list-wrapper">
<div class="list-header">
<span>正执行任务</span>
<span>{{ $t('viewsMain.executingTasks') }}</span> <!-- 正执行任务 -->
</div>
<el-table :data="executingTasks" style="width: 100%" size="mini" height="300"
:header-cell-style="{backgroundColor: '#f5f7fa'}">
<el-table-column prop="jobId" label="任务编号"/>
<el-table-column prop="inOrOut" label="类型" width="80"/>
<el-table-column prop="statusLabel" label="状态" width="80"/>
<el-table-column prop="jobId" :label="$t('viewsMain.taskId')"/> <!-- 任务编号 -->
<el-table-column prop="inOrOut" :label="$t('viewsMain.type')" width="80"/> <!-- 类型 -->
<el-table-column prop="statusLabel" :label="$t('viewsMain.status')" width="80"/> <!-- 状态 -->
</el-table>
</div>
</el-col>
<el-col :xs="24" :sm="24" :lg="8">
<div class="list-wrapper">
<div class="list-header">
<span>待执行任务</span>
<span>{{ $t('viewsMain.pendingTasks') }}</span> <!-- 待执行任务 -->
</div>
<el-table :data="pendingTasks" style="width: 100%" size="mini" height="300"
:header-cell-style="{backgroundColor: '#f5f7fa'}">
<el-table-column prop="jobId" label="任务编号"/>
<el-table-column prop="inOrOut" label="类型" width="80"/>
<el-table-column prop="priority" label="优先级" width="80"/>
<el-table-column prop="jobId" :label="$t('viewsMain.taskId')"/> <!-- 任务编号 -->
<el-table-column prop="inOrOut" :label="$t('viewsMain.type')" width="80"/> <!-- 类型 -->
<el-table-column prop="priority" :label="$t('viewsMain.priority')" width="80"/> <!-- 优先级 -->
</el-table>
</div>
</el-col>
@@ -140,7 +140,14 @@ export default {
actualData: []
},
pieChartData: {
labels: ['空货位', '满货位', '入库已分配', '出库已分配', '入库需盘点', '出库需盘点'],
labels: [
this.$t('viewsMain.emptyLocation'), // 空货位
this.$t('viewsMain.fullLocation'), // 满货位
this.$t('viewsMain.inboundAllocated'), // 入库已分配
this.$t('viewsMain.outboundAllocated'), // 出库已分配
this.$t('viewsMain.inboundNeedCheck'), // 入库需盘点
this.$t('viewsMain.outboundNeedCheck') // 出库需盘点
],
datasets: [{
data: [],
backgroundColor: ['#36f7c4', '#ffc240', '#34bfa3', '#ff5f5f', '#ffd700', '#c669cd']
@@ -168,10 +175,11 @@ export default {
getListData() {
// 所有单据数量
finishCount().then(response => {
console.log(response)
this.quantity.inbound_order = response.data.stockinCount
this.quantity.outbound_order = response.data.stockoutCount
this.quantity.inventory_sheet = response.data.stockcheckCount
this.quantity.total_documents = response.data.stockinCount + response.data.stockoutCount + response.data.stockcheckCount
this.quantity.total_documents = Number(response.data.stockinCount) + Number(response.data.stockoutCount) + Number(response.data.stockcheckCount)
})
// 周入库出库作业
weekjob().then(response => {
@@ -196,22 +204,22 @@ export default {
type_(row, column) {
const type = row.type
if (type == 1) {
return "入库"
return this.$t('viewsMain.inbound') // 入库
} else if (type == 2) {
return "出库"
return this.$t('viewsMain.outbound') // 出库
} else if (type == 3) {
return "盘点"
return this.$t('viewsMain.inventory') // 盘点
}
return ""
},
status_(row, column) {
const status = row.status
if (status == 1) {
return "未执行"
return this.$t('viewsMain.unexecuted') // 未执行
} else if (status == 2) {
return "审核中"
return this.$t('viewsMain.reviewing') // 审核中
} else if (status == 3) {
return "正执行"
return this.$t('viewsMain.executing') // 正执行
}
return ""
}

View File

@@ -84,7 +84,11 @@ export default {
/** 查询仓库列表 */
getWarehouseList() {
// TODO: 调用获取仓库列表接口
listWarehouse().then(response => {
var quaryParam = {
pageNum:1,
pageSize:99
}
listWarehouse(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
// this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}];

View File

@@ -84,7 +84,11 @@ export default {
/** 查询仓库列表 */
getWarehouseList() {
// TODO: 调用获取仓库列表接口
listWarehouse().then(response => {
var quaryParam = {
pageNum:1,
pageSize:99
}
listWarehouse(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
// this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}];

View File

@@ -97,7 +97,11 @@ export default {
/** 查询仓库列表 */
getWarehouseList() {
// TODO: 调用获取仓库列表接口
listWarehouse().then(response => {
var quaryParam = {
pageNum:1,
pageSize:99
}
listWarehouse(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
// this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}];

View File

@@ -72,7 +72,11 @@ export default {
/** 查询仓库列表 */
getWarehouseList() {
// TODO: 调用获取仓库列表接口
listWarehouse().then(response => {
var quaryParam = {
pageNum:1,
pageSize:99
}
listWarehouse(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
// this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}];

View File

@@ -1,6 +1,35 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="分组选项">
<el-checkbox-group v-model="queryParams.groupFields" @change="handleQuery">
<el-checkbox label="productId">物料编码</el-checkbox>
<el-checkbox label="productName">物料名称</el-checkbox>
<el-checkbox label="spec">规格</el-checkbox>
<el-checkbox label="unit">单位</el-checkbox>
<el-checkbox label="lotNo">批号</el-checkbox>
<el-checkbox label="warehouseId">仓库</el-checkbox>
<el-checkbox label="roadwayId">巷道</el-checkbox>
<el-checkbox label="price">价格</el-checkbox>
<el-checkbox label="spare1">英文名称</el-checkbox>
<el-checkbox label="spare2">单件净重</el-checkbox>
<el-checkbox label="spare5">长度</el-checkbox>
<el-checkbox label="spare6">宽度</el-checkbox>
<el-checkbox label="spare7">高度</el-checkbox>
<el-checkbox label="spare8">体积</el-checkbox>
</el-checkbox-group>
</el-form-item>
<br>
<el-form-item :label="$t('searchViewFlatWarehouseOutFlow.warehouse')" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" :placeholder="$t('searchViewFlatWarehouseOutFlow.selectWarehouse')" clearable>
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
:label="dict.warehouseName"
:value="dict.warehouseId"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('searchStockSummary.productId')" prop="productId"> <!-- 物料编码 -->
<el-input
v-model="queryParams.productId"
@@ -33,14 +62,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchStockSummary.warehouseId')" prop="warehouseId"> <!-- 仓库 -->
<el-input
v-model="queryParams.warehouseId"
:placeholder="$t('searchStockSummary.inputWarehouseId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchStockSummary.roadwayId')" prop="roadwayId"> <!-- 巷道 -->
<el-input
v-model="queryParams.roadwayId"
@@ -75,21 +96,21 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('searchStockSummary.productId')" align="center" prop="productId" /> <!-- 物料编码 -->
<el-table-column :label="$t('searchStockSummary.productName')" align="center" prop="productName" /> <!-- 物料名称 -->
<el-table-column :label="$t('searchStockSummary.spec')" align="center" prop="spec" /> <!-- 规格 -->
<el-table-column :label="$t('searchStockSummary.unit')" align="center" prop="unit" /> <!-- 单位 -->
<el-table-column :label="$t('searchStockSummary.lotNo')" align="center" prop="lotNo" /> <!-- 批号 -->
<el-table-column :label="$t('searchStockSummary.warehouseId')" align="center" prop="warehouseId" /> <!-- 仓库 -->
<el-table-column :label="$t('searchStockSummary.roadwayId')" align="center" prop="roadwayId" /> <!-- 巷道 -->
<el-table-column :label="$t('searchStockSummary.productId')" align="center" prop="productId" v-if="queryParams.groupFields.includes('productId')" /> <!-- 物料编码 -->
<el-table-column :label="$t('searchStockSummary.productName')" align="center" prop="productName" v-if="queryParams.groupFields.includes('productName')" /> <!-- 物料名称 -->
<el-table-column :label="$t('searchStockSummary.spec')" align="center" prop="spec" v-if="queryParams.groupFields.includes('spec')" /> <!-- 规格 -->
<el-table-column :label="$t('searchStockSummary.unit')" align="center" prop="unit" v-if="queryParams.groupFields.includes('unit')" /> <!-- 单位 -->
<el-table-column :label="$t('searchStockSummary.lotNo')" align="center" prop="lotNo" v-if="queryParams.groupFields.includes('lotNo')" /> <!-- 批号 -->
<el-table-column :label="$t('searchStockSummary.warehouseId')" align="center" prop="warehouseId" v-if="queryParams.groupFields.includes('warehouseId')" /> <!-- 仓库 -->
<el-table-column :label="$t('searchStockSummary.roadwayId')" align="center" prop="roadwayId" v-if="queryParams.groupFields.includes('roadwayId')" /> <!-- 巷道 -->
<el-table-column :label="$t('searchStockSummary.quantity')" align="center" prop="quantity" /> <!-- 库存数量 -->
<el-table-column :label="$t('basproduct1.englishName')" align="center" prop="spare1" /><!-- 英文名称 -->
<el-table-column :label="$t('basproduct1.netWeightPerUnit')" align="center" prop="spare2" /><!-- 单件净重 -->
<el-table-column :label="$t('basproduct1.long')" align="center" prop="spare5" /><!-- 长MM -->
<el-table-column :label="$t('basproduct1.wide')" align="center" prop="spare6" /><!-- 宽MM -->
<el-table-column :label="$t('basproduct1.tall')" align="center" prop="spare7" /><!-- 高MM -->
<el-table-column :label="$t('basproduct1.volume')" align="center" prop="spare8" /><!-- 体积m³ -->
<el-table-column :label="$t('basproduct1.price')" align="center" prop="price" /> <!-- 价格 -->
<el-table-column :label="$t('basproduct1.englishName')" align="center" prop="spare1" v-if="queryParams.groupFields.includes('spare1')" /><!-- 英文名称 -->
<el-table-column :label="$t('basproduct1.netWeightPerUnit')" align="center" prop="spare2" v-if="queryParams.groupFields.includes('spare2')" /><!-- 单件净重 -->
<el-table-column :label="$t('basproduct1.long')" align="center" prop="spare5" v-if="queryParams.groupFields.includes('spare5')" /><!-- 长MM -->
<el-table-column :label="$t('basproduct1.wide')" align="center" prop="spare6" v-if="queryParams.groupFields.includes('spare6')" /><!-- 宽MM -->
<el-table-column :label="$t('basproduct1.tall')" align="center" prop="spare7" v-if="queryParams.groupFields.includes('spare7')" /><!-- 高MM -->
<el-table-column :label="$t('basproduct1.volume')" align="center" prop="spare8" v-if="queryParams.groupFields.includes('spare8')" /><!-- 体积m³ -->
<el-table-column :label="$t('basproduct1.price')" align="center" prop="price" v-if="queryParams.groupFields.includes('price')" /> <!-- 价格 -->
<el-table-column :label="$t('basproduct1.notes')" align="center" prop="remark" /> <!-- 描述 -->
</el-table>
@@ -104,28 +125,31 @@
</template>
<script>
import { listStockSummary, getStockSummary } from "@/api/search/StockSummary";
import { listStockSummary, getStockSummary } from "@/api/search/StockSummary";
import { listWarehouse } from "@/api/bas/warehouse"
export default {
name: "StockSummary",
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 库存汇总表格数据
stockSummaryList: [],
// 查询参数
queryParams: {
export default {
name: "StockSummary",
data() {
return {
// 遮罩层
loading: true,
// 仓库选项
warehouseOptions: [],
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 库存汇总表格数据
stockSummaryList: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
productId: null,
@@ -137,45 +161,90 @@
roadwayId: null,
quantity: null,
//分组字段
groupFields: ['productId', 'productName', 'spec', 'unit', 'lotNo', 'warehouseId', 'roadwayId']
groupFields: []
}
};
};
},
created() {
// 初始化时全选分组选项
this.queryParams.groupFields = [
'productId', 'productName', 'spec', 'unit', 'lotNo', 'warehouseId', 'roadwayId',
'price', 'spare1', 'spare2', 'spare5', 'spare6', 'spare7', 'spare8'
];
this.getList();
this.getWarehouseList()
},
methods: {
/** 查询仓库列表 */
getWarehouseList() {
var quaryParam = {
pageNum:1,
pageSize:99
}
listWarehouse(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
},
created() {
/** 查询库存汇总列表 */
getList() {
this.loading = true;
// 将选中的分组字段转换为后端需要的格式
const params = {};
// 先设置查询条件
Object.keys(this.queryParams).forEach(key => {
if (key !== 'groupFields' && this.queryParams[key] !== null) {
params[key] = this.queryParams[key];
}
});
// 再设置分组字段
this.queryParams.groupFields.forEach(field => {
params[`groupBy${field.charAt(0).toUpperCase() + field.slice(1)}`] = true;
});
listStockSummary(params).then(response => {
this.stockSummaryList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
methods: {
/** 查询库存汇总列表 */
getList() {
this.loading = true;
listStockSummary(this.queryParams).then(response => {
this.stockSummaryList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 导出按钮操作 */
handleExport() {
this.download('search/StockSummary/export', {
...this.queryParams
}, `库存汇总_${new Date().getTime()}.xlsx`)
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.onlyIdentity)
this.single = selection.length!==1
this.multiple = !selection.length
}
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
// 重置时恢复全选状态
this.queryParams.groupFields = [
'productId', 'productName', 'spec', 'unit', 'lotNo', 'warehouseId', 'roadwayId',
'price', 'spare1', 'spare2', 'spare5', 'spare6', 'spare7', 'spare8'
];
this.handleQuery();
},
/** 导出按钮操作 */
handleExport() {
// 将选中的分组字段转换为后端需要的格式
const params = {};
// 先设置查询条件
Object.keys(this.queryParams).forEach(key => {
if (key !== 'groupFields' && this.queryParams[key] !== null) {
params[key] = this.queryParams[key];
}
});
// 再设置分组字段
this.queryParams.groupFields.forEach(field => {
params[`groupBy${field.charAt(0).toUpperCase() + field.slice(1)}`] = true;
});
this.download('search/StockSummary/export', params, `库存汇总_${new Date().getTime()}.xlsx`)
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.onlyIdentity)
this.single = selection.length!==1
this.multiple = !selection.length
}
};
}
};
</script>

View File

@@ -382,7 +382,11 @@ export default {
methods: {
/** 查询仓库列表 */
getWarehouseList() {
warehouseList().then(response => {
var quaryParam = {
pageNum:1,
pageSize:99
}
warehouseList(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
// this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}];

View File

@@ -1,6 +1,16 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('searchViewFlatWarehouseOutFlow.warehouse')" prop="warehouseId"> <!-- 仓库 -->
<el-select v-model="queryParams.warehouseId" :placeholder="$t('searchViewFlatWarehouseOutFlow.selectWarehouse')" clearable>
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
:label="dict.warehouseName"
:value="dict.warehouseId"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="作业ID" prop="jobId">-->
<!-- <el-input-->
<!-- v-model="queryParams.jobId"-->
@@ -200,14 +210,14 @@
<!-- placeholder="请选择创建时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item :label="$t('searchViewInJobFlow.warehouseId')" prop="warehouseId"> <!-- 仓库ID -->
<el-input
v-model="queryParams.warehouseId"
:placeholder="$t('searchViewInJobFlow.inputWarehouseId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item :label="$t('searchViewInJobFlow.warehouseId')" prop="warehouseId"> &lt;!&ndash; 仓库ID &ndash;&gt;-->
<!-- <el-input-->
<!-- v-model="queryParams.warehouseId"-->
<!-- :placeholder="$t('searchViewInJobFlow.inputWarehouseId')"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item :label="$t('searchViewInJobFlow.startTime')" prop="startTime"> <!-- 开始时间 -->
<el-date-picker clearable
v-model="queryParams.startTime"
@@ -527,7 +537,7 @@
<script>
import { listViewInJobFlow, getViewInJobFlow, delViewInJobFlow, addViewInJobFlow, updateViewInJobFlow } from "@/api/search/ViewInJobFlow"
import { listWarehouse } from "@/api/bas/warehouse"
export default {
name: "ViewInJobFlow",
dicts: ['execution_phase_type', 'mydo_job_status', 'stock_status'],
@@ -551,6 +561,8 @@ export default {
title: "",
// 是否显示弹出层
open: false,
// 仓库选项
warehouseOptions: [],
// 查询参数
queryParams: {
pageNum: 1,
@@ -598,8 +610,20 @@ export default {
},
created() {
this.getList()
this.getWarehouseList()
},
methods: {
/** 查询仓库列表 */
getWarehouseList() {
var quaryParam = {
pageNum:1,
pageSize:99
}
listWarehouse(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
// this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}];
},
/** 查询入库作业流水列表 */
getList() {
this.loading = true

View File

@@ -1,6 +1,16 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('searchViewFlatWarehouseOutFlow.warehouse')" prop="warehouseId"> <!-- 仓库 -->
<el-select v-model="queryParams.warehouseId" :placeholder="$t('searchViewFlatWarehouseOutFlow.selectWarehouse')" clearable>
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
:label="dict.warehouseName"
:value="dict.warehouseId"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('searchViewOutJobFlow.jobId')" prop="jobId"> <!-- 作业ID -->
<el-input
v-model="queryParams.jobId"
@@ -543,6 +553,7 @@ import {
addViewOutJobFlow,
updateViewOutJobFlow
} from "@/api/search/ViewOutJobFlow"
import { listWarehouse } from "@/api/bas/warehouse"
export default {
name: "ViewOutJobFlow",
@@ -551,6 +562,8 @@ export default {
return {
// 遮罩层
loading: true,
// 仓库选项
warehouseOptions: [],
// 选中数组
ids: [],
// 非单个禁用
@@ -618,8 +631,20 @@ export default {
},
created() {
this.getList()
this.getWarehouseList()
},
methods: {
/** 查询仓库列表 */
getWarehouseList() {
var quaryParam = {
pageNum:1,
pageSize:99
}
listWarehouse(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
// this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}];
},
/** 查询出库做业务流水列表 */
getList() {
this.loading = true

View File

@@ -1,6 +1,16 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('searchViewFlatWarehouseOutFlow.warehouse')" prop="warehouseId"> <!-- 仓库 -->
<el-select v-model="queryParams.warehouseId" :placeholder="$t('searchViewFlatWarehouseOutFlow.selectWarehouse')" clearable>
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
:label="dict.warehouseName"
:value="dict.warehouseId"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="id" prop="onlyIdentity">-->
<!-- <el-input-->
<!-- v-model="queryParams.onlyIdentity"-->
@@ -73,14 +83,14 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.warehouseId')" prop="warehouseId"> <!-- 仓库 -->
<el-input
v-model="queryParams.warehouseId"
:placeholder="$t('searchViewStockDetail.inputWarehouseId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item :label="$t('searchViewStockDetail.warehouseId')" prop="warehouseId"> &lt;!&ndash; 仓库 &ndash;&gt;-->
<!-- <el-input-->
<!-- v-model="queryParams.warehouseId"-->
<!-- :placeholder="$t('searchViewStockDetail.inputWarehouseId')"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item :label="$t('searchViewStockDetail.stackingId')" prop="stackingId"> <!-- 剁型ID -->
<el-input
v-model="queryParams.stackingId"
@@ -333,6 +343,7 @@
<script>
import { listViewStockDetail, getViewStockDetail, delViewStockDetail, addViewStockDetail, updateViewStockDetail } from "@/api/search/ViewStockDetail"
import { listWarehouse } from "@/api/bas/warehouse"
export default {
name: "ViewStockDetail",
@@ -340,6 +351,8 @@ export default {
return {
// 遮罩层
loading: true,
// 仓库选项
warehouseOptions: [],
// 选中数组
ids: [],
// 非单个禁用
@@ -393,8 +406,20 @@ export default {
},
created() {
this.getList()
this.getWarehouseList()
},
methods: {
/** 查询仓库列表 */
getWarehouseList() {
var quaryParam = {
pageNum:1,
pageSize:99
}
listWarehouse(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
// this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}];
},
/** 查询库存明细查询列表 */
getList() {
this.loading = true

View File

@@ -1,6 +1,16 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('searchViewFlatWarehouseOutFlow.warehouse')" prop="warehouseId"> <!-- 仓库 -->
<el-select v-model="queryParams.warehouseId" :placeholder="$t('searchViewFlatWarehouseOutFlow.selectWarehouse')" clearable>
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
:label="dict.warehouseName"
:value="dict.warehouseId"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('searchViewStockSecure.stockId')" prop="stockId"> <!-- 库存ID -->
<el-input
v-model="queryParams.stockId"
@@ -293,6 +303,7 @@
<script>
import { listViewStockSecure, getViewStockSecure, delViewStockSecure, addViewStockSecure, updateViewStockSecure } from "@/api/search/ViewStockSecure"
import { listWarehouse } from "@/api/bas/warehouse"
export default {
name: "ViewStockSecure",
@@ -307,6 +318,8 @@ export default {
single: true,
// 非多个禁用
multiple: true,
// 仓库选项
warehouseOptions: [],
// 显示搜索条件
showSearch: true,
// 总条数
@@ -386,8 +399,20 @@ export default {
},
created() {
this.getList()
this.getWarehouseList()
},
methods: {
/** 查询仓库列表 */
getWarehouseList() {
var quaryParam = {
pageNum:1,
pageSize:99
}
listWarehouse(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
// this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}];
},
/** 查询安全库存查询列表 */
getList() {
this.loading = true

View File

@@ -1,6 +1,16 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('searchViewFlatWarehouseOutFlow.warehouse')" prop="warehouseId"> <!-- 仓库 -->
<el-select v-model="queryParams.warehouseId" :placeholder="$t('searchViewFlatWarehouseOutFlow.selectWarehouse')" clearable>
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
:label="dict.warehouseName"
:value="dict.warehouseId"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('searchViewStockWarning.stockId')" prop="stockId"> <!-- 库存ID -->
<el-input
v-model="queryParams.stockId"
@@ -273,6 +283,7 @@
<script>
import { listViewStockWarning, getViewStockWarning, delViewStockWarning, addViewStockWarning, updateViewStockWarning } from "@/api/search/ViewStockWarning"
import { listWarehouse } from "@/api/bas/warehouse"
export default {
name: "ViewStockWarning",
@@ -281,6 +292,8 @@ export default {
return {
// 遮罩层
loading: true,
// 仓库选项
warehouseOptions: [],
// 选中数组
ids: [],
// 非单个禁用
@@ -366,8 +379,20 @@ export default {
},
created() {
this.getList()
this.getWarehouseList()
},
methods: {
/** 查询仓库列表 */
getWarehouseList() {
var quaryParam = {
pageNum:1,
pageSize:99
}
listWarehouse(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
// this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}];
},
/** 查询预警库存查询列表 */
getList() {
this.loading = true

View File

@@ -1,6 +1,16 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('searchViewFlatWarehouseOutFlow.warehouse')" prop="warehouseId"> <!-- 仓库 -->
<el-select v-model="queryParams.warehouseId" :placeholder="$t('searchViewFlatWarehouseOutFlow.selectWarehouse')" clearable>
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
:label="dict.warehouseName"
:value="dict.warehouseId"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="入库单guid" prop="stockinGuid">-->
<!-- <el-input-->
<!-- v-model="queryParams.stockinGuid"-->
@@ -63,14 +73,14 @@
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item :label="$t('searchViewStockinHistory.warehouseId')" prop="warehouseId"> <!-- 仓库ID -->
<el-input
v-model="queryParams.warehouseId"
:placeholder="$t('searchViewStockinHistory.inputWarehouseId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item :label="$t('searchViewStockinHistory.warehouseId')" prop="warehouseId"> &lt;!&ndash; 仓库ID &ndash;&gt;-->
<!-- <el-input-->
<!-- v-model="queryParams.warehouseId"-->
<!-- :placeholder="$t('searchViewStockinHistory.inputWarehouseId')"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item :label="$t('searchViewStockinHistory.erpBill')" prop="erpBill" style="white-space: nowrap"> <!-- ERP单号 -->
<el-input
@@ -512,6 +522,7 @@
<script>
import { listViewStockinHistory, getViewStockinHistory, delViewStockinHistory, addViewStockinHistory, updateViewStockinHistory } from "@/api/search/ViewStockinHistory"
import { listWarehouse } from "@/api/bas/warehouse"
export default {
name: "ViewStockinHistory",
@@ -520,6 +531,8 @@ export default {
return {
// 遮罩层
loading: true,
// 仓库选项
warehouseOptions: [],
// 选中数组
ids: [],
// 非单个禁用
@@ -591,8 +604,20 @@ export default {
},
created() {
this.getList()
this.getWarehouseList()
},
methods: {
/** 查询仓库列表 */
getWarehouseList() {
var quaryParam = {
pageNum:1,
pageSize:99
}
listWarehouse(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
// this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}];
},
/** 查询入库单据历史列表 */
getList() {
this.loading = true

View File

@@ -1,6 +1,16 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('searchViewFlatWarehouseOutFlow.warehouse')" prop="warehouseId"> <!-- 仓库 -->
<el-select v-model="queryParams.warehouseId" :placeholder="$t('searchViewFlatWarehouseOutFlow.selectWarehouse')" clearable>
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
:label="dict.warehouseName"
:value="dict.warehouseId"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('searchViewStockoutHistory.stockoutId')" prop="stockoutId"> <!-- 出库单号 -->
<el-input
v-model="queryParams.stockoutId"
@@ -219,7 +229,8 @@
<el-table v-loading="loading" :data="ViewStockoutHistoryList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="出库单号" align="center" prop="stockoutId" :label="$t('searchViewStockoutHistory.stockoutId')" /> <!-- 出库单号 -->
<el-table-column align="center" prop="stockoutId" :label="$t('searchViewStockoutHistory.stockoutId')" /> <!-- 出库单号 -->
<el-table-column label="warehouseId" align="center" prop="warehouseId" /> <!-- 出库单号 -->
<el-table-column :label="$t('searchViewStockoutHistory.outType')" align="center" prop="outType"> <!-- 出库类型 -->
<template slot-scope="scope">
<dict-tag :options="dict.type.out_bill_type" :value="scope.row.outType"/>
@@ -379,6 +390,7 @@
<script>
import { listViewStockoutHistory, getViewStockoutHistory, delViewStockoutHistory, addViewStockoutHistory, updateViewStockoutHistory } from "@/api/search/ViewStockoutHistory"
import { listWarehouse } from "@/api/bas/warehouse"
export default {
name: "ViewStockoutHistory",
@@ -387,6 +399,8 @@ export default {
return {
// 遮罩层
loading: true,
// 仓库选项
warehouseOptions: [],
// 选中数组
ids: [],
// 非单个禁用
@@ -440,8 +454,20 @@ export default {
},
created() {
this.getList()
this.getWarehouseList()
},
methods: {
/** 查询仓库列表 */
getWarehouseList() {
var quaryParam = {
pageNum:1,
pageSize:99
}
listWarehouse(quaryParam).then(response => {
this.warehouseOptions = response.rows;
});
// this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}];
},
/** 查询出库单据历史列表 */
getList() {
this.loading = true