From 3d2b83ca4e1bc6e7b8bb6c6b24ba2d3507884d2a Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期二, 27 一月 2026 17:14:37 +0800
Subject: [PATCH] 迁移库存解冻/冻结
---
src/views/inventoryManagement/stockReport/index.vue | 364 ++++++++++++++++++++++++++--------------------------
1 files changed, 182 insertions(+), 182 deletions(-)
diff --git a/src/views/inventoryManagement/stockReport/index.vue b/src/views/inventoryManagement/stockReport/index.vue
index 1879ea6..a0a1f67 100644
--- a/src/views/inventoryManagement/stockReport/index.vue
+++ b/src/views/inventoryManagement/stockReport/index.vue
@@ -14,17 +14,17 @@
<el-option label="鏈堟姤" value="monthly" />
<el-option label="杩涘嚭瀛樻姤琛�" value="inout" />
</el-select>
-
+
<span class="search_title ml10">鏃堕棿鑼冨洿锛�</span>
- <el-date-picker
- v-if="searchForm.reportType === 'daily'"
- v-model="searchForm.singleDate"
- type="date"
- placeholder="璇烽�夋嫨鏃ユ湡"
- format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"
- style="width: 200px;"
- />
+ <el-date-picker
+ v-if="searchForm.reportType === 'daily'"
+ v-model="searchForm.singleDate"
+ type="date"
+ placeholder="璇烽�夋嫨鏃ユ湡"
+ format="YYYY-MM-DD"
+ value-format="YYYY-MM-DD"
+ style="width: 200px;"
+ />
<el-date-picker
v-else-if="searchForm.reportType === 'monthly'"
v-model="searchForm.monthRange"
@@ -47,7 +47,7 @@
value-format="YYYY-MM-DD"
style="width: 240px;"
/>
-
+
<el-button type="primary" @click="handleQuery" style="margin-left: 10px">
鏌ヨ
</el-button>
@@ -55,91 +55,91 @@
</div>
<div class="search_right">
- <!-- <el-button type="success" @click="handleExport" icon="Download">-->
- <!-- 瀵煎嚭鎶ヨ〃-->
- <!-- </el-button>-->
+<!-- <el-button type="success" @click="handleExport" icon="Download">-->
+<!-- 瀵煎嚭鎶ヨ〃-->
+<!-- </el-button>-->
</div>
</div>
- <!-- <!– 缁熻鍗$墖 –>-->
- <!-- <div class="stats_cards" v-if="reportData.summary">-->
- <!-- <el-row :gutter="20">-->
- <!-- <el-col :span="6">-->
- <!-- <el-card class="stats_card">-->
- <!-- <div class="stats_content">-->
- <!-- <div class="stats_icon in">-->
- <!-- <el-icon><TrendCharts /></el-icon>-->
- <!-- </div>-->
- <!-- <div class="stats_info">-->
- <!-- <div class="stats_value">{{ reportData.summary.totalIn || 0 }}</div>-->
- <!-- <div class="stats_label">鎬诲叆搴撻噺</div>-->
- <!-- </div>-->
- <!-- </div>-->
- <!-- </el-card>-->
- <!-- </el-col>-->
- <!-- <el-col :span="6">-->
- <!-- <el-card class="stats_card">-->
- <!-- <div class="stats_content">-->
- <!-- <div class="stats_icon out">-->
- <!-- <el-icon><TrendCharts /></el-icon>-->
- <!-- </div>-->
- <!-- <div class="stats_info">-->
- <!-- <div class="stats_value">{{ reportData.summary.totalOut || 0 }}</div>-->
- <!-- <div class="stats_label">鎬诲嚭搴撻噺</div>-->
- <!-- </div>-->
- <!-- </div>-->
- <!-- </el-card>-->
- <!-- </el-col>-->
- <!-- <el-col :span="6">-->
- <!-- <el-card class="stats_card">-->
- <!-- <div class="stats_content">-->
- <!-- <div class="stats_icon stock">-->
- <!-- <el-icon><Box /></el-icon>-->
- <!-- </div>-->
- <!-- <div class="stats_info">-->
- <!-- <div class="stats_value">{{ reportData.summary.currentStock || 0 }}</div>-->
- <!-- <div class="stats_label">褰撳墠搴撳瓨</div>-->
- <!-- </div>-->
- <!-- </div>-->
- <!-- </el-card>-->
- <!-- </el-col>-->
- <!-- <el-col :span="6">-->
- <!-- <el-card class="stats_card">-->
- <!-- <div class="stats_content">-->
- <!-- <div class="stats_icon turnover">-->
- <!-- <el-icon><Refresh /></el-icon>-->
- <!-- </div>-->
- <!-- <div class="stats_info">-->
- <!-- <div class="stats_value">{{ reportData.summary.turnoverRate || 0 }}%</div>-->
- <!-- <div class="stats_label">鍛ㄨ浆鐜�</div>-->
- <!-- </div>-->
- <!-- </div>-->
- <!-- </el-card>-->
- <!-- </el-col>-->
- <!-- </el-row>-->
- <!-- </div>-->
+<!-- <!– 缁熻鍗$墖 –>-->
+<!-- <div class="stats_cards" v-if="reportData.summary">-->
+<!-- <el-row :gutter="20">-->
+<!-- <el-col :span="6">-->
+<!-- <el-card class="stats_card">-->
+<!-- <div class="stats_content">-->
+<!-- <div class="stats_icon in">-->
+<!-- <el-icon><TrendCharts /></el-icon>-->
+<!-- </div>-->
+<!-- <div class="stats_info">-->
+<!-- <div class="stats_value">{{ reportData.summary.totalIn || 0 }}</div>-->
+<!-- <div class="stats_label">鎬诲叆搴撻噺</div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </el-card>-->
+<!-- </el-col>-->
+<!-- <el-col :span="6">-->
+<!-- <el-card class="stats_card">-->
+<!-- <div class="stats_content">-->
+<!-- <div class="stats_icon out">-->
+<!-- <el-icon><TrendCharts /></el-icon>-->
+<!-- </div>-->
+<!-- <div class="stats_info">-->
+<!-- <div class="stats_value">{{ reportData.summary.totalOut || 0 }}</div>-->
+<!-- <div class="stats_label">鎬诲嚭搴撻噺</div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </el-card>-->
+<!-- </el-col>-->
+<!-- <el-col :span="6">-->
+<!-- <el-card class="stats_card">-->
+<!-- <div class="stats_content">-->
+<!-- <div class="stats_icon stock">-->
+<!-- <el-icon><Box /></el-icon>-->
+<!-- </div>-->
+<!-- <div class="stats_info">-->
+<!-- <div class="stats_value">{{ reportData.summary.currentStock || 0 }}</div>-->
+<!-- <div class="stats_label">褰撳墠搴撳瓨</div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </el-card>-->
+<!-- </el-col>-->
+<!-- <el-col :span="6">-->
+<!-- <el-card class="stats_card">-->
+<!-- <div class="stats_content">-->
+<!-- <div class="stats_icon turnover">-->
+<!-- <el-icon><Refresh /></el-icon>-->
+<!-- </div>-->
+<!-- <div class="stats_info">-->
+<!-- <div class="stats_value">{{ reportData.summary.turnoverRate || 0 }}%</div>-->
+<!-- <div class="stats_label">鍛ㄨ浆鐜�</div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </el-card>-->
+<!-- </el-col>-->
+<!-- </el-row>-->
+<!-- </div>-->
- <!-- <!– 鍥捐〃鍖哄煙 –>-->
- <!-- <div class="chart_section" v-if="reportData.chartData">-->
- <!-- <el-row :gutter="20">-->
- <!-- <el-col :span="12">-->
- <!-- <el-card>-->
- <!-- <template #header>-->
- <!-- <span>搴撳瓨瓒嬪娍鍥�</span>-->
- <!-- </template>-->
- <!-- <div ref="trendChart" style="height: 300px;"></div>-->
- <!-- </el-card>-->
- <!-- </el-col>-->
- <!-- <el-col :span="12">-->
- <!-- <el-card>-->
- <!-- <template #header>-->
- <!-- <span>杩涘嚭搴撳姣�</span>-->
- <!-- </template>-->
- <!-- <div ref="comparisonChart" style="height: 300px;"></div>-->
- <!-- </el-card>-->
- <!-- </el-col>-->
- <!-- </el-row>-->
- <!-- </div>-->
+<!-- <!– 鍥捐〃鍖哄煙 –>-->
+<!-- <div class="chart_section" v-if="reportData.chartData">-->
+<!-- <el-row :gutter="20">-->
+<!-- <el-col :span="12">-->
+<!-- <el-card>-->
+<!-- <template #header>-->
+<!-- <span>搴撳瓨瓒嬪娍鍥�</span>-->
+<!-- </template>-->
+<!-- <div ref="trendChart" style="height: 300px;"></div>-->
+<!-- </el-card>-->
+<!-- </el-col>-->
+<!-- <el-col :span="12">-->
+<!-- <el-card>-->
+<!-- <template #header>-->
+<!-- <span>杩涘嚭搴撳姣�</span>-->
+<!-- </template>-->
+<!-- <div ref="comparisonChart" style="height: 300px;"></div>-->
+<!-- </el-card>-->
+<!-- </el-col>-->
+<!-- </el-row>-->
+<!-- </div>-->
<!-- 璇︾粏鏁版嵁琛ㄦ牸 -->
<div class="table_section">
@@ -147,88 +147,88 @@
<template #header>
<span>{{ getTableTitle() }}</span>
</template>
- <el-table
- v-loading="tableLoading"
- :data="reportData.tableData"
- border
- height="400"
- style="width: 100%"
- :header-cell-style="{ background: '#F0F1F5', color: '#333333' }"
- >
+ <el-table
+ v-loading="tableLoading"
+ :data="reportData.tableData"
+ border
+ height="400"
+ style="width: 100%"
+ :header-cell-style="{ background: '#F0F1F5', color: '#333333' }"
+ >
<el-table-column
- align="center"
- label="搴忓彿"
- type="index"
- width="60"
+ align="center"
+ label="搴忓彿"
+ type="index"
+ width="60"
/>
- <el-table-column
- label="鍏ュ簱鏃堕棿"
- prop="createTime"
- width="200"
- show-overflow-tooltip
- v-if="searchForm.reportType !== 'inout'"
- />
- <el-table-column
- label="鍏ュ簱鎵规"
- prop="inboundBatches"
- width="240"
- show-overflow-tooltip
- v-if="searchForm.reportType !== 'inout'"
- />
- <el-table-column
- label="浜у搧澶х被"
- prop="productName"
- show-overflow-tooltip
- />
- <el-table-column
- label="瑙勬牸鍨嬪彿"
- prop="model"
- show-overflow-tooltip
- />
- <el-table-column
- label="鍗曚綅"
- prop="unit"
- show-overflow-tooltip
- />
- <el-table-column
- label="鍏ュ簱鏁伴噺"
- prop="totalStockIn"
- align="center"
- v-if="searchForm.reportType === 'inout'"
- />
- <el-table-column
- label="鍏ュ簱鏁伴噺"
- prop="stockInNum"
- align="center"
- v-else
- />
- <el-table-column
- label="鍑哄簱鏁伴噺"
- prop="totalStockOut"
- width="100"
- align="center"
- v-if="searchForm.reportType === 'inout'"
- />
- <el-table-column
- label="鐜板湪搴撳瓨"
- prop="currentStock"
- align="center"
- />
- <el-table-column label="鏉ユ簮"
- prop="recordType"
- v-if="searchForm.reportType !== 'inout'"
- show-overflow-tooltip>
- <template #default="scope">
- {{ getRecordType(scope.row.recordType) }}
- </template>
- </el-table-column>
- <el-table-column
- label="鍏ュ簱浜�"
- prop="createBy"
- width="80"
- v-if="searchForm.reportType !== 'inout'"
- show-overflow-tooltip
- />
+ <el-table-column
+ label="鍏ュ簱鏃堕棿"
+ prop="createTime"
+ width="200"
+ show-overflow-tooltip
+ v-if="searchForm.reportType !== 'inout'"
+ />
+ <el-table-column
+ label="鍏ュ簱鎵规"
+ prop="inboundBatches"
+ width="240"
+ show-overflow-tooltip
+ v-if="searchForm.reportType !== 'inout'"
+ />
+ <el-table-column
+ label="浜у搧澶х被"
+ prop="productName"
+ show-overflow-tooltip
+ />
+ <el-table-column
+ label="瑙勬牸鍨嬪彿"
+ prop="model"
+ show-overflow-tooltip
+ />
+ <el-table-column
+ label="鍗曚綅"
+ prop="unit"
+ show-overflow-tooltip
+ />
+ <el-table-column
+ label="鍏ュ簱鏁伴噺"
+ prop="totalStockIn"
+ align="center"
+ v-if="searchForm.reportType === 'inout'"
+ />
+ <el-table-column
+ label="鍏ュ簱鏁伴噺"
+ prop="stockInNum"
+ align="center"
+ v-else
+ />
+ <el-table-column
+ label="鍑哄簱鏁伴噺"
+ prop="totalStockOut"
+ width="100"
+ align="center"
+ v-if="searchForm.reportType === 'inout'"
+ />
+ <el-table-column
+ label="鐜板湪搴撳瓨"
+ prop="currentStock"
+ align="center"
+ />
+ <el-table-column label="鏉ユ簮"
+ prop="recordType"
+ v-if="searchForm.reportType !== 'inout'"
+ show-overflow-tooltip>
+ <template #default="scope">
+ {{ getRecordType(scope.row.recordType) }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鍏ュ簱浜�"
+ prop="createBy"
+ width="80"
+ v-if="searchForm.reportType !== 'inout'"
+ show-overflow-tooltip
+ />
</el-table>
</el-card>
</div>
@@ -307,7 +307,7 @@
if (!validateSearchForm()) {
return
}
-
+
tableLoading.value = true
try {
const params = getQueryParams()
@@ -325,7 +325,7 @@
// nextTick(() => {
// initCharts()
// })
-
+
}
} catch (error) {
ElMessage.error('鏌ヨ澶辫触锛�' + error.message)
@@ -395,7 +395,7 @@
startDate: "",
endDate: ""
}
-
+
if (searchForm.reportType === 'daily') {
params.reportDate = searchForm.singleDate
} else if (searchForm.reportType === 'monthly') {
@@ -405,7 +405,7 @@
params.startDate = searchForm.dateRange[0]
params.endDate = searchForm.dateRange[1]
}
-
+
return params
}
@@ -427,7 +427,7 @@
if (!validateSearchForm()) {
return
}
-
+
try {
const params = getQueryParams()
// const response = await exportStockReport(params)
@@ -442,7 +442,7 @@
// link.click()
// document.body.removeChild(link)
// window.URL.revokeObjectURL(url)
-
+
// ElMessage.success('瀵煎嚭鎴愬姛')
} catch (error) {
ElMessage.error('瀵煎嚭澶辫触锛�' + error.message)
@@ -452,7 +452,7 @@
// 鍒濆鍖栧浘琛�
const initCharts = () => {
if (!reportData.value.chartData) return
-
+
initTrendChart()
initComparisonChart()
}
@@ -460,7 +460,7 @@
// 鍒濆鍖栬秼鍔垮浘
const initTrendChart = () => {
if (!trendChart.value) return
-
+
const chart = echarts.init(trendChart.value)
const option = {
title: {
@@ -497,7 +497,7 @@
// 鍒濆鍖栧姣斿浘
const initComparisonChart = () => {
if (!comparisonChart.value) return
-
+
const chart = echarts.init(comparisonChart.value)
const option = {
title: {
@@ -544,7 +544,7 @@
onMounted(() => {
const today = new Date()
searchForm.singleDate = today.toISOString().split('T')[0]
-
+
const yesterday = new Date(today.getTime() - 24 * 60 * 60 * 1000)
searchForm.dateRange = [
yesterday.toISOString().split('T')[0],
--
Gitblit v1.9.3