修复了生产环境下的环境变量配置错误,并优化了库存管理功能
This commit is contained in:
parent
c8c877455d
commit
1bb586ba3f
|
@ -3,8 +3,8 @@ NODE_ENV = 'production'
|
||||||
|
|
||||||
# 测试域名
|
# 测试域名
|
||||||
VITE_NOW_TYPE = 'dist/admin'
|
VITE_NOW_TYPE = 'dist/admin'
|
||||||
VITE_APP_BASE_URL='https://test-multi-store.lihaink.cn'
|
# VITE_APP_BASE_URL='https://test-multi-store.lihaink.cn'
|
||||||
# VITE_APP_BASE_URL='http://127.0.0.1:8545'
|
VITE_APP_BASE_URL='http://127.0.0.1:8545'
|
||||||
|
|
||||||
# 正式域名
|
# 正式域名
|
||||||
# VITE_NOW_TYPE = 'build/admin'
|
# VITE_NOW_TYPE = 'build/admin'
|
||||||
|
|
|
@ -1,16 +1,26 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-card class="!border-none mb-4" shadow="never">
|
<el-card class="!border-none mb-4" shadow="never">
|
||||||
<el-form
|
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||||
class="mb-[-16px]"
|
|
||||||
:model="queryParams"
|
|
||||||
inline
|
|
||||||
>
|
|
||||||
<el-form-item label="门店" prop="store_id">
|
<el-form-item label="门店" prop="store_id">
|
||||||
<el-select v-model="queryParams.store_id" filterable remote reserve-keyword
|
<el-select
|
||||||
placeholder="输入门店名称搜索" remote-show-suffix :remote-method="remoteMethod" :loading="storeloading"
|
v-model="queryParams.store_id"
|
||||||
style="width: 240px" @change="resetPage">
|
filterable
|
||||||
<el-option v-for="item in storeList" :key="item.id" :label="item.name" :value="item.id" />
|
remote
|
||||||
|
reserve-keyword
|
||||||
|
placeholder="输入门店名称搜索"
|
||||||
|
remote-show-suffix
|
||||||
|
:remote-method="remoteMethod"
|
||||||
|
:loading="storeloading"
|
||||||
|
style="width: 240px"
|
||||||
|
@change="resetPage"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in storeList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="导入人员" prop="admin_name">
|
<!-- <el-form-item label="导入人员" prop="admin_name">
|
||||||
|
@ -20,10 +30,22 @@
|
||||||
<el-input class="w-[280px]" v-model="queryParams.staff_name" @keydown.enter="resetPage" clearable placeholder="请输入门店确认人员" />
|
<el-input class="w-[280px]" v-model="queryParams.staff_name" @keydown.enter="resetPage" clearable placeholder="请输入门店确认人员" />
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item label="状态" prop="status">
|
<el-form-item label="状态" prop="status">
|
||||||
<el-select v-model="queryParams.status"
|
<el-select
|
||||||
|
v-model="queryParams.status"
|
||||||
placeholder="输入门店名称搜索"
|
placeholder="输入门店名称搜索"
|
||||||
style="width: 240px" @change="resetPage">
|
style="width: 240px"
|
||||||
<el-option v-for="item in [{id:1,name:'已入库'},{id:0,name:'待确认'},{id:-1,name:'库存不足'}]" :key="item.id" :label="item.name" :value="item.id" />
|
@change="resetPage"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in [
|
||||||
|
{ id: 1, name: '已入库' },
|
||||||
|
{ id: 0, name: '待确认' },
|
||||||
|
{ id: -1, name: '库存不足' }
|
||||||
|
]"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -42,15 +64,12 @@
|
||||||
<el-table-column label="门店" prop="system_store_name" />
|
<el-table-column label="门店" prop="system_store_name" />
|
||||||
<el-table-column label="导入人员" prop="admin_name" show-overflow-tooltip />
|
<el-table-column label="导入人员" prop="admin_name" show-overflow-tooltip />
|
||||||
<el-table-column label="门店确认人员" prop="staff_name" show-overflow-tooltip />
|
<el-table-column label="门店确认人员" prop="staff_name" show-overflow-tooltip />
|
||||||
<el-table-column label="商品图" prop="image" show-overflow-tooltip >
|
<el-table-column label="商品图" prop="image" show-overflow-tooltip>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-image
|
<el-image class="w-[40px] h-[40px]" :src="row.image" />
|
||||||
class="w-[40px] h-[40px]"
|
|
||||||
:src="row.image"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="商品" prop="store_name"/>
|
<el-table-column label="商品" prop="store_name" />
|
||||||
<el-table-column label="数量" prop="nums" show-overflow-tooltip />
|
<el-table-column label="数量" prop="nums" show-overflow-tooltip />
|
||||||
<el-table-column label="状态" prop="status">
|
<el-table-column label="状态" prop="status">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
|
@ -60,7 +79,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="备注" prop="mark" />
|
<el-table-column label="备注" prop="mark" />
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
<!-- <el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="row.status !== 1"
|
v-if="row.status !== 1"
|
||||||
|
@ -72,14 +91,20 @@
|
||||||
编辑库存
|
编辑库存
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mt-4 justify-end">
|
<div class="flex mt-4 justify-end">
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
<edit-popup
|
||||||
|
v-if="showEdit"
|
||||||
|
ref="editRef"
|
||||||
|
:dict-data="dictData"
|
||||||
|
@success="getLists"
|
||||||
|
@close="showEdit = false"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -97,7 +122,6 @@ const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||||
// 是否显示编辑框
|
// 是否显示编辑框
|
||||||
const showEdit = ref(false)
|
const showEdit = ref(false)
|
||||||
|
|
||||||
|
|
||||||
// 查询条件
|
// 查询条件
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
store_id: '',
|
store_id: '',
|
||||||
|
@ -148,23 +172,24 @@ const handleDelete = async (id: number | any[]) => {
|
||||||
|
|
||||||
getLists()
|
getLists()
|
||||||
|
|
||||||
const storeloading = ref(false);
|
const storeloading = ref(false)
|
||||||
const storeList = ref([]);
|
const storeList = ref([])
|
||||||
const remoteMethod = (e:string='') => {
|
const remoteMethod = (e = '') => {
|
||||||
storeloading.value = true;
|
storeloading.value = true
|
||||||
apiSystemStoreLists({
|
apiSystemStoreLists({
|
||||||
name: e,
|
name: e,
|
||||||
page_size: 50
|
page_size: 50
|
||||||
}).then(res => {
|
})
|
||||||
storeList.value = res.lists;
|
.then((res) => {
|
||||||
setTimeout(()=>{
|
storeList.value = res.lists
|
||||||
storeloading.value = false;
|
setTimeout(() => {
|
||||||
},300)
|
storeloading.value = false
|
||||||
}).catch(err => {
|
}, 300)
|
||||||
setTimeout(()=>{
|
})
|
||||||
storeloading.value = false;
|
.catch((err) => {
|
||||||
},300)
|
setTimeout(() => {
|
||||||
|
storeloading.value = false
|
||||||
|
}, 300)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,12 @@
|
||||||
min-width="100"
|
min-width="100"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="库存"
|
||||||
|
prop="stock"
|
||||||
|
min-width="100"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
<el-table-column label="分配库存" min-width="150">
|
<el-table-column label="分配库存" min-width="150">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
|
@ -95,6 +101,7 @@
|
||||||
:min="1"
|
:min="1"
|
||||||
:max="row.stock"
|
:max="row.stock"
|
||||||
v-if="row.stock > 0"
|
v-if="row.stock > 0"
|
||||||
|
@change="handleStock"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -162,6 +169,7 @@ const formRef = shallowRef<FormInstance>()
|
||||||
const { removeTab } = useMultipleTabs()
|
const { removeTab } = useMultipleTabs()
|
||||||
const mode = ref('add')
|
const mode = ref('add')
|
||||||
const warehouse_id = ref('')
|
const warehouse_id = ref('')
|
||||||
|
const stock = ref(0)
|
||||||
|
|
||||||
// 表单数据
|
// 表单数据
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
|
@ -184,6 +192,7 @@ const onBindStore = (e: any[]) => {
|
||||||
storeList.value.push(item)
|
storeList.value.push(item)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
handleStock()
|
||||||
showStore.value = false
|
showStore.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -213,6 +222,34 @@ const getUnitList = () => {
|
||||||
getUnitList()
|
getUnitList()
|
||||||
|
|
||||||
const stock_type = ref(1)
|
const stock_type = ref(1)
|
||||||
|
const isSubmit = ref(true)
|
||||||
|
|
||||||
|
const handleStock = () => {
|
||||||
|
// const counts = storeList.value.length
|
||||||
|
const product_arr = productList.value.map((item: any) => {
|
||||||
|
return {
|
||||||
|
id: item.product_id,
|
||||||
|
stock: item.new_stock || 0,
|
||||||
|
stocks: item.stock || 0
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const store_arr = storeList.value.length
|
||||||
|
if (store_arr > 0 && product_arr.length > 0) {
|
||||||
|
try {
|
||||||
|
product_arr.forEach((item) => {
|
||||||
|
const stock = item.stock * store_arr
|
||||||
|
if (stock > item.stocks) {
|
||||||
|
isSubmit.value = false
|
||||||
|
throw new Error('超出仓库库存,请重新设置')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} catch (e) {
|
||||||
|
ElMessage.error('超出仓库库存,请重新设置')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
isSubmit.value = true
|
||||||
|
}
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
// 提交按钮
|
// 提交按钮
|
||||||
|
@ -221,6 +258,10 @@ const handleSubmit = async () => {
|
||||||
ElMessage.error('请选择仓库')
|
ElMessage.error('请选择仓库')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
handleStock()
|
||||||
|
if (isSubmit.value == false) {
|
||||||
|
return
|
||||||
|
}
|
||||||
const product_arr = productList.value.map((item: any) => {
|
const product_arr = productList.value.map((item: any) => {
|
||||||
return {
|
return {
|
||||||
id: item.product_id,
|
id: item.product_id,
|
||||||
|
@ -236,7 +277,6 @@ const handleSubmit = async () => {
|
||||||
warehouse_id: warehouse_id.value
|
warehouse_id: warehouse_id.value
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
removeTab()
|
removeTab()
|
||||||
return false
|
|
||||||
if (res.code == 1) {
|
if (res.code == 1) {
|
||||||
ElMessage.success(res.msg)
|
ElMessage.success(res.msg)
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|
|
@ -125,7 +125,6 @@
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
v-if="row.status == 0"
|
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
Loading…
Reference in New Issue