新增库存生成功能,支持明细模式和批次模式两种存储模式,在SKU管理中实现动态表单字段的库存操作,同时在资产编辑中为租户ID为1的用户新增存储模式选择功能
This commit is contained in:
@@ -70,6 +70,14 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" v-if="tenantId === '1'">
|
||||
<el-form-item label="存储模式">
|
||||
<el-radio-group v-model="ruleForm.stockMode" :disabled="isEdit">
|
||||
<el-radio :value="1">明细模式</el-radio>
|
||||
<el-radio :value="2">批次模式</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- 分类属性值选择 -->
|
||||
@@ -454,6 +462,7 @@ import { Plus, Delete } from '@element-plus/icons-vue';
|
||||
import { getAsset, createAsset, updateAsset, uploadAssetImage } from '/@/api/assets/asset';
|
||||
import { getCategoryTree, getCategory } from '/@/api/assets/category';
|
||||
import { createFormDiff } from '/@/utils/diffUtils';
|
||||
import { Session } from '/@/utils/storage';
|
||||
import Editor from '/@/components/editor/index.vue';
|
||||
import type { UploadFile, UploadUserFile, UploadRequestOptions } from 'element-plus';
|
||||
|
||||
@@ -495,6 +504,7 @@ interface RuleForm {
|
||||
onlineTime: string;
|
||||
offlineTime: string;
|
||||
unlimitedStock: boolean;
|
||||
stockMode: number;
|
||||
physicalAssetConfig: {
|
||||
shipping: {
|
||||
deliveryMethod: string;
|
||||
@@ -568,6 +578,9 @@ const fileAddressPrefix = ref('');
|
||||
// 使用通用工具函数保存原始数据,用于最小化传参
|
||||
const assetFormDiff = createFormDiff<Record<string, any>>();
|
||||
|
||||
// 获取租户ID
|
||||
const tenantId = ref(Session.get('userInfo')?.tenantId || '');
|
||||
|
||||
const formatImageUrl = (url?: string) => {
|
||||
if (!url) return '';
|
||||
if (/^https?:\/\//i.test(url)) return url;
|
||||
@@ -598,6 +611,7 @@ const getInitialForm = (): RuleForm => ({
|
||||
onlineTime: '',
|
||||
offlineTime: '',
|
||||
unlimitedStock: false,
|
||||
stockMode: 1,
|
||||
physicalAssetConfig: {
|
||||
shipping: {
|
||||
deliveryMethod: 'express',
|
||||
@@ -903,6 +917,7 @@ const openDialog = (row?: any, edit?: boolean) => {
|
||||
ruleForm.onlineTime = data.onlineTime || '';
|
||||
ruleForm.offlineTime = data.offlineTime || '';
|
||||
ruleForm.unlimitedStock = data.unlimitedStock || false;
|
||||
ruleForm.stockMode = data.stockMode || 1;
|
||||
|
||||
// 主图预览 (支持 imageUrl 和 fileURL)
|
||||
const mainImg = data.imageUrl || data.fileURL;
|
||||
@@ -1110,6 +1125,11 @@ const buildRequestBody = async (): Promise<any> => {
|
||||
// 库存类型
|
||||
body.unlimitedStock = ruleForm.unlimitedStock;
|
||||
|
||||
// 库存存储模式(仅租户ID为1时提交)
|
||||
if (tenantId.value === '1') {
|
||||
body.stockMode = ruleForm.stockMode;
|
||||
}
|
||||
|
||||
// 主图 (已在上传时直接赋值给 ruleForm.mainImage)
|
||||
if (ruleForm.mainImage) {
|
||||
body.imageURL = ruleForm.mainImage;
|
||||
|
||||
Reference in New Issue
Block a user