Compare commits
2 Commits
b43edc9068
...
4b023a4002
| Author | SHA1 | Date | |
|---|---|---|---|
| 4b023a4002 | |||
| b2ce9d31f8 |
@ -1,7 +1,7 @@
|
|||||||
from flask import Blueprint, jsonify, request, send_file, current_app
|
from flask import Blueprint, jsonify, request, send_file, current_app
|
||||||
from app.extensions import db, beijing_time
|
from app.extensions import db, beijing_time
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from flask_jwt_extended import jwt_required
|
from flask_jwt_extended import jwt_required, get_jwt, get_jwt_identity
|
||||||
from app.utils.decorators import permission_required
|
from app.utils.decorators import permission_required
|
||||||
import uuid as uuid_module
|
import uuid as uuid_module
|
||||||
import io
|
import io
|
||||||
@ -32,11 +32,16 @@ except ImportError:
|
|||||||
StockProduct = None
|
StockProduct = None
|
||||||
|
|
||||||
|
|
||||||
def _normalize_user_id(user_id):
|
def _normalize_user_id(user_id=None):
|
||||||
"""规范化 user_id,确保是有效字符串"""
|
"""规范化 user_id,确保是有效字符串"""
|
||||||
if not user_id or not isinstance(user_id, str) or len(user_id) > 100:
|
# 优先使用传入的 user_id,否则从 JWT 获取
|
||||||
return 'admin'
|
if user_id and isinstance(user_id, str) and len(user_id) <= 100:
|
||||||
return user_id.strip()
|
return user_id.strip()
|
||||||
|
# 从 JWT 获取当前用户
|
||||||
|
try:
|
||||||
|
return get_jwt().get('display_name') or get_jwt_identity()
|
||||||
|
except:
|
||||||
|
return 'unknown'
|
||||||
|
|
||||||
|
|
||||||
def get_stock_model(source_table):
|
def get_stock_model(source_table):
|
||||||
@ -342,7 +347,7 @@ def add_draft():
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
data = request.json
|
data = request.json
|
||||||
user_id = _normalize_user_id(data.get('user_id', 'admin'))
|
user_id = _normalize_user_id()
|
||||||
uuid = data.get('uuid')
|
uuid = data.get('uuid')
|
||||||
quantity = float(data.get('quantity', 1))
|
quantity = float(data.get('quantity', 1))
|
||||||
session_id = data.get('session_id')
|
session_id = data.get('session_id')
|
||||||
|
|||||||
@ -420,7 +420,7 @@ import request from '@/utils/request'
|
|||||||
import { useUserStore } from '@/stores/user'
|
import { useUserStore } from '@/stores/user'
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const currentUser = userStore.username || 'admin'
|
const currentUser = userStore.userInfo?.display_name || userStore.userInfo?.username || userStore.username || '未知用户'
|
||||||
|
|
||||||
interface StockItem {
|
interface StockItem {
|
||||||
id: number
|
id: number
|
||||||
@ -889,6 +889,8 @@ const syncToBackend = (uuid: string, quantity: number, remark: string) => {
|
|||||||
api.addDraft({ uuid, quantity, remark })
|
api.addDraft({ uuid, quantity, remark })
|
||||||
.then(() => {
|
.then(() => {
|
||||||
syncStatus.value = 'success'
|
syncStatus.value = 'success'
|
||||||
|
// 静默刷新统计数字
|
||||||
|
fetchInventoryList(true)
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
syncStatus.value = 'failed'
|
syncStatus.value = 'failed'
|
||||||
@ -970,8 +972,9 @@ const filteredVarianceList = computed(() => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// ★ 新增: 获取盘点清单数据(合并全量应盘物资 + 已盘点记录)
|
// ★ 新增: 获取盘点清单数据(合并全量应盘物资 + 已盘点记录)
|
||||||
const fetchInventoryList = async () => {
|
// silent: 是否静默模式(不显示 loading,不报错)
|
||||||
listLoading.value = true
|
const fetchInventoryList = async (silent = false) => {
|
||||||
|
if (!silent) listLoading.value = true
|
||||||
try {
|
try {
|
||||||
// 1. 获取已盘点记录
|
// 1. 获取已盘点记录
|
||||||
const res: any = await request({
|
const res: any = await request({
|
||||||
@ -1034,9 +1037,9 @@ const fetchInventoryList = async () => {
|
|||||||
listData.value = mergedData.slice(start, start + listLimit.value)
|
listData.value = mergedData.slice(start, start + listLimit.value)
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
ElMessage.error('获取盘点清单失败')
|
if (!silent) ElMessage.error('获取盘点清单失败')
|
||||||
} finally {
|
} finally {
|
||||||
listLoading.value = false
|
if (!silent) listLoading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user