Commit 80481a71 by qinjianhui

feat: 主表和底部明细页面开发

parent dbcacf03
...@@ -54,7 +54,6 @@ declare module 'vue' { ...@@ -54,7 +54,6 @@ declare module 'vue' {
ElTag: typeof import('element-plus/es')['ElTag'] ElTag: typeof import('element-plus/es')['ElTag']
ElTimeline: typeof import('element-plus/es')['ElTimeline'] ElTimeline: typeof import('element-plus/es')['ElTimeline']
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem'] ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
ElTimePicker: typeof import('element-plus/es')['ElTimePicker']
ElTooltip: typeof import('element-plus/es')['ElTooltip'] ElTooltip: typeof import('element-plus/es')['ElTooltip']
ElTree: typeof import('element-plus/es')['ElTree'] ElTree: typeof import('element-plus/es')['ElTree']
ElUpload: typeof import('element-plus/es')['ElUpload'] ElUpload: typeof import('element-plus/es')['ElUpload']
......
...@@ -5,6 +5,7 @@ import { LogisticBill } from '@/types/api/podMakeOrder' ...@@ -5,6 +5,7 @@ import { LogisticBill } from '@/types/api/podMakeOrder'
import { userData } from '@/types/api/user' import { userData } from '@/types/api/user'
import { VersionImageList } from '@/types/api/typesetting' import { VersionImageList } from '@/types/api/typesetting'
import { WarehouseListData } from '@/types'
// 获取物流公司 // 获取物流公司
export function getLogisticsCompanyList() { export function getLogisticsCompanyList() {
...@@ -49,3 +50,14 @@ export function getLogisticCNApi(content: string) { ...@@ -49,3 +50,14 @@ export function getLogisticCNApi(content: string) {
`factory/podJomallOrder/getOrderByThirdSubOrderNumber?thirdSubOrderNumber=${content}`, `factory/podJomallOrder/getOrderByThirdSubOrderNumber?thirdSubOrderNumber=${content}`,
) )
} }
// 获取仓库列表
export function loadWarehouseListApi() {
return axios.get<never, BaseRespData<WarehouseListData[]>>(
'factoryWarehouseInfo/getAll',
)
}
// 获取用户列表
export function getEmployeeListApi() {
return axios.get<never, BaseRespData<userData[]>>(`/factory/factoryUser/list`)
}
...@@ -5,7 +5,6 @@ import { ...@@ -5,7 +5,6 @@ import {
SearchForm, SearchForm,
Tab, Tab,
LogListData, LogListData,
WarehouseListData,
LogisticsData, LogisticsData,
ExportParams, ExportParams,
IconfirmSubmit, IconfirmSubmit,
...@@ -39,10 +38,6 @@ export function syncReceiverAddress(data: number[]) { ...@@ -39,10 +38,6 @@ export function syncReceiverAddress(data: number[]) {
) )
} }
export function getEmployeeListApi() {
return axios.get(`/factory/factoryUser/list`)
}
// 播种墙配货 扫码放入箱子 // 播种墙配货 扫码放入箱子
export function getPackingCnDataApi( export function getPackingCnDataApi(
code: string, code: string,
...@@ -419,11 +414,7 @@ export function getLogisticsCalculation(id: number) { ...@@ -419,11 +414,7 @@ export function getLogisticsCalculation(id: number) {
{ params: { id } }, { params: { id } },
) )
} }
export function loadWarehouseListApi() {
return axios.get<never, BaseRespData<WarehouseListData[]>>(
'factoryWarehouseInfo/getAll',
)
}
export function refreshMaterialApi(data: { export function refreshMaterialApi(data: {
orderIds?: string orderIds?: string
productIds?: string productIds?: string
......
...@@ -6,7 +6,6 @@ import { ...@@ -6,7 +6,6 @@ import {
Tab, Tab,
LogListData, LogListData,
ProductionClient, ProductionClient,
WarehouseListData,
LogisticsData, LogisticsData,
ExportParams, ExportParams,
InterceptStateGroupData, InterceptStateGroupData,
...@@ -310,11 +309,6 @@ export function getLogisticsCalculation(id: number) { ...@@ -310,11 +309,6 @@ export function getLogisticsCalculation(id: number) {
{ params: { id } }, { params: { id } },
) )
} }
export function loadWarehouseListApi() {
return axios.get<never, BaseRespData<WarehouseListData[]>>(
'factoryWarehouseInfo/getAll',
)
}
export function refreshMaterialApi(data: { export function refreshMaterialApi(data: {
orderIds?: string orderIds?: string
productIds?: string productIds?: string
...@@ -640,11 +634,6 @@ export function getAccountCodeByFactoryIdApi(params: { token: string }) { ...@@ -640,11 +634,6 @@ export function getAccountCodeByFactoryIdApi(params: { token: string }) {
export function getLogisticsWayApi() { export function getLogisticsWayApi() {
return axios.get(`logisticsWay/usableAllList`) return axios.get(`logisticsWay/usableAllList`)
} }
export function getEmployeeListApi() {
return axios.get(`/factory/factoryUser/list`)
}
// 打印拣货单item // 打印拣货单item
export function printPickPdfByBatchNumberApi(params: { export function printPickPdfByBatchNumberApi(params: {
batchArrangeNumber: string batchArrangeNumber: string
......
import axios from './axios'
import { BasePaginationData, BaseRespData } from '@/types/api'
import { SearchForm, TableData, TreeData } from '@/types/api/supply/stockingOrder'
export function getStockingOrderListApi(
data: SearchForm,
currentPage: number,
pageSize: number,
) {
return axios.post<never, BasePaginationData<TableData>>(
'factory/supply/stockingUpManage/list_page',
{ ...data, currentPage, pageSize },
)
}
export function getStockingOrderStatusTreeApi() {
return axios.get<never, BaseRespData<TreeData[]>>(
'factory/supply/stockingUpManage/getStatusTree',
)
}
\ No newline at end of file
...@@ -194,16 +194,7 @@ export interface PodOrderRes extends ProductList { ...@@ -194,16 +194,7 @@ export interface PodOrderRes extends ProductList {
note?: Array<{ prop: string | number; value: string | number }> note?: Array<{ prop: string | number; value: string | number }>
imgList: cardImages[] imgList: cardImages[]
} }
export interface WarehouseListData {
code?: string
defaulted?: number
factoryCode?: string
factoryId?: number
id: number
name?: string
remarks?: string
sort?: number
}
export interface LogisticsData { export interface LogisticsData {
logisticsWayName: string // 物流名称 logisticsWayName: string // 物流名称
warehouseName: string // 发货仓库 warehouseName: string // 发货仓库
......
export interface TreeData { export interface TreeData {
statusName: string name: string
statusCode: string code: string
children?: TreeData[] children?: TreeData[]
quantity?: number countQuantity?: number
id?: number
} }
export interface SearchForm { export interface SearchForm {
pageSize: number
currentPage: number currentPage: number
sku: string endDate?: string
pageSize: number
shippingStatus?: string
startDate?: string
status?: string
stockingUpManageNo?: string
stockingUpUserId?: string
supplierId?: string
warehouseId?: string | number[]
warehouseSku?: string | number[]
warehouseSkuName?: string
remark?: string
}
export interface TableData {}
export interface StockProduct {
skuImage?: string
productName?: string
styleNumber?: string
warehouseSku?: string
stockQuantity?: number
stockUnitPrice?: number
stockAmount?: number
unshippedQuantity?: number
shippedQuantity?: number
inWarehouseQuantity?: number
defectiveQuantity?: number
} }
export interface supplierData {}
// 放系统中公共类型
export interface WarehouseListData {
code?: string
defaulted?: number
factoryCode?: string
factoryId?: number
id: number
name?: string
remarks?: string
sort?: number
}
\ No newline at end of file
...@@ -86,10 +86,10 @@ import { ...@@ -86,10 +86,10 @@ import {
getTiktokCarrier, getTiktokCarrier,
} from '@/api/logistics' } from '@/api/logistics'
import type { FormItemRule } from 'element-plus' import type { FormItemRule } from 'element-plus'
import { WarehouseListData } from '@/types/api/podUsOrder' import { WarehouseListData } from '@/types'
import { ISeachFormConfig } from '@/types/searchType' import { ISeachFormConfig } from '@/types/searchType'
import { TableColumn } from '@/components/VxeTable' import { TableColumn } from '@/components/VxeTable'
import { loadWarehouseListApi } from '@/api/podUsOrder' import { loadWarehouseListApi } from '@/api/common'
import type { import type {
LogisticsMethod, LogisticsMethod,
platformObj, platformObj,
......
...@@ -2812,7 +2812,6 @@ import { ...@@ -2812,7 +2812,6 @@ import {
printPrintOrderApi, printPrintOrderApi,
stockOutCheckApi, stockOutCheckApi,
toBePickingApi, toBePickingApi,
loadWarehouseListApi,
getLogisticsCalculation, getLogisticsCalculation,
refreshProductInformationApi, refreshProductInformationApi,
composingDesignImages, composingDesignImages,
...@@ -2849,10 +2848,11 @@ import { ...@@ -2849,10 +2848,11 @@ import {
getCustomTagListCnApi, getCustomTagListCnApi,
printNormalPdf, printNormalPdf,
changeLogisticsApi, changeLogisticsApi,
getEmployeeListApi,
allErpCodeListApi, allErpCodeListApi,
updateProductOutOfStockApi, updateProductOutOfStockApi,
} from '@/api/podCnOrder' } from '@/api/podCnOrder'
import { loadWarehouseListApi, getEmployeeListApi } from '@/api/common'
// import { logisticsCompanyAllCodelist } from '@/api/logistics.ts' // import { logisticsCompanyAllCodelist } from '@/api/logistics.ts'
import { BaseRespData } from '@/types/api' import { BaseRespData } from '@/types/api'
...@@ -2870,7 +2870,6 @@ import { ...@@ -2870,7 +2870,6 @@ import {
ProductionClient, ProductionClient,
SearchForm, SearchForm,
Tab, Tab,
WarehouseListData,
cardImages, cardImages,
AddressInfo, AddressInfo,
LogisticsData, LogisticsData,
...@@ -2878,6 +2877,7 @@ import { ...@@ -2878,6 +2877,7 @@ import {
CraftListData, CraftListData,
ExportParams, ExportParams,
} from '@/types/api/podCnOrder' } from '@/types/api/podCnOrder'
import { WarehouseListData } from '@/types'
import usePageList from '@/utils/hooks/usePageList' import usePageList from '@/utils/hooks/usePageList'
import { useValue } from '@/utils/hooks/useValue' import { useValue } from '@/utils/hooks/useValue'
import { showConfirm } from '@/utils/ui' import { showConfirm } from '@/utils/ui'
...@@ -2904,6 +2904,7 @@ import { ...@@ -2904,6 +2904,7 @@ import {
type RouteLocationNormalized, type RouteLocationNormalized,
} from 'vue-router' } from 'vue-router'
import UpdateCustomDeclarationInfoDialog from './components/UpdateCustomDeclarationInfoDialog.vue' import UpdateCustomDeclarationInfoDialog from './components/UpdateCustomDeclarationInfoDialog.vue'
import { userData } from '@/types/api/user.ts'
declare global { declare global {
interface Window { interface Window {
...@@ -2977,7 +2978,7 @@ const sourceList = [ ...@@ -2977,7 +2978,7 @@ const sourceList = [
}, },
] ]
const sizes = ['FS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', '3XL', '4XL', '5XL'] const sizes = ['FS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', '3XL', '4XL', '5XL']
const employeeList = ref<{ account: string; id: number }[]>([]) const employeeList = ref<userData[]>([])
const exportData = () => { const exportData = () => {
exportVisible.value = true exportVisible.value = true
......
...@@ -3147,7 +3147,7 @@ ...@@ -3147,7 +3147,7 @@
</template> </template>
<script setup lang="tsx"> <script setup lang="tsx">
import LogisticsWaySelect from '../../logistics/components/LogisticsWaySelect.tsx' import LogisticsWaySelect from '../../logistics/components/LogisticsWaySelect.tsx'
import { getUserMarkList } from '@/api/common' import { getUserMarkList, loadWarehouseListApi } from '@/api/common'
// import { AnyObject } from '@/types/api/warehouse' // import { AnyObject } from '@/types/api/warehouse'
import uploadBox from '@/components/uploadBox.vue' import uploadBox from '@/components/uploadBox.vue'
import { convertToChinaTime } from '@/utils/index' import { convertToChinaTime } from '@/utils/index'
...@@ -3180,7 +3180,6 @@ import { ...@@ -3180,7 +3180,6 @@ import {
printPrintOrderApi, printPrintOrderApi,
stockOutCheckApi, stockOutCheckApi,
toBePickingApi, toBePickingApi,
loadWarehouseListApi,
getLogisticsCalculation, getLogisticsCalculation,
refreshMaterialApi, refreshMaterialApi,
getTrackingNumberApi, getTrackingNumberApi,
...@@ -3226,7 +3225,6 @@ import { ...@@ -3226,7 +3225,6 @@ import {
getLogisticsWayApi, getLogisticsWayApi,
printNormalPickPdfApi, printNormalPickPdfApi,
updatePRNDownloadStatus, updatePRNDownloadStatus,
getEmployeeListApi,
updateProductOutOfStockApi, updateProductOutOfStockApi,
} from '@/api/podUsOrder' } from '@/api/podUsOrder'
import { BaseRespData } from '@/types/api' import { BaseRespData } from '@/types/api'
...@@ -3234,7 +3232,7 @@ import { BaseRespData } from '@/types/api' ...@@ -3234,7 +3232,7 @@ import { BaseRespData } from '@/types/api'
import UpdateAddress from './components/updateAddress.vue' import UpdateAddress from './components/updateAddress.vue'
import { getAllCountryApi } from '@/api/logistics.ts' import { getAllCountryApi } from '@/api/logistics.ts'
import { getEmployeeListApi } from '@/api/common'
import TableView from '@/components/TableView.vue' import TableView from '@/components/TableView.vue'
import { import {
LogListData, LogListData,
...@@ -3243,7 +3241,6 @@ import { ...@@ -3243,7 +3241,6 @@ import {
ProductionClient, ProductionClient,
SearchForm, SearchForm,
Tab, Tab,
WarehouseListData,
cardImages, cardImages,
AddressInfo, AddressInfo,
LogisticsData, LogisticsData,
...@@ -3279,6 +3276,7 @@ import platformJson from '../../../json/platform.json' ...@@ -3279,6 +3276,7 @@ import platformJson from '../../../json/platform.json'
import { getToken } from '@/api/axios' import { getToken } from '@/api/axios'
import usePermissionBtnStore from '@/store/permission' import usePermissionBtnStore from '@/store/permission'
import ReissueOrderComponent from './components/ReissueOrder.vue' import ReissueOrderComponent from './components/ReissueOrder.vue'
import { WarehouseListData } from '@/types'
const permissionBtns = usePermissionBtnStore() const permissionBtns = usePermissionBtnStore()
...@@ -3288,6 +3286,7 @@ import { ...@@ -3288,6 +3286,7 @@ import {
type RouteLocationNormalized, type RouteLocationNormalized,
} from 'vue-router' } from 'vue-router'
import PrintWarehouseSkuTag from '@/views/order/components/printWarehouseSkuTag.vue' import PrintWarehouseSkuTag from '@/views/order/components/printWarehouseSkuTag.vue'
import { userData } from '@/types/api/user.ts'
declare global { declare global {
interface Window { interface Window {
...@@ -3325,7 +3324,7 @@ const printWarehouseSkuDialogRef = ref() ...@@ -3325,7 +3324,7 @@ const printWarehouseSkuDialogRef = ref()
const isAuto = ref(true) const isAuto = ref(true)
const countryList = ref([]) const countryList = ref([])
const logisticsWayList = ref<{ name: string; id: number }[]>([]) const logisticsWayList = ref<{ name: string; id: number }[]>([])
const employeeList = ref<{ account: string; id: number }[]>([]) const employeeList = ref<userData[]>([])
const currentRow = ref<AddressInfo>({ const currentRow = ref<AddressInfo>({
receiverName: '', receiverName: '',
receiverPhone: '', receiverPhone: '',
......
...@@ -107,9 +107,9 @@ ...@@ -107,9 +107,9 @@
import { computed, ref, onMounted } from 'vue' import { computed, ref, onMounted } from 'vue'
import TableView from '@/components/TableView.vue' import TableView from '@/components/TableView.vue'
import usePageList from '@/utils/hooks/usePageList' import usePageList from '@/utils/hooks/usePageList'
import { loadWarehouseListApi } from '@/api/podCnOrder' import { loadWarehouseListApi } from '@/api/common'
import type { WarehouseListData } from '@/types/api/podCnOrder' import { WarehouseListData } from '@/types'
import { SearchForm, OutOfStockItem } from '@/types/api/outOfStockStatistics' import { SearchForm, OutOfStockItem } from '@/types/api/supply/outOfStockStatistics'
import { import {
getOutOfStockStatisticsListApi, getOutOfStockStatisticsListApi,
exportOutOfStockStatisticsListApi, exportOutOfStockStatisticsListApi,
......
<template>
<ElTabs v-model="activeTab" class="detail-tabs">
<ElTabPane name="stockProducts" label="备货商品">
<div class="detail-table-content">
<TableView
:serial-numberable="true"
:columns="stockProductsColumns"
:paginated-data="stockProductsData"
/>
</div>
</ElTabPane>
<ElTabPane name="relatedDocuments" label="关联单据">
<div class="detail-table-content">
<div class="empty-content">暂无数据</div>
</div>
</ElTabPane>
<ElTabPane name="internalMemo" label="内部便签">
<div class="detail-table-content">
<div class="empty-content">暂无数据</div>
</div>
</ElTabPane>
<ElTabPane name="operationLog" label="操作日志">
<div class="detail-table-content">
<div class="empty-content">暂无数据</div>
</div>
</ElTabPane>
</ElTabs>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import TableView from '@/components/TableView.vue'
import { StockProduct } from '@/types/api/supply/stockingOrder'
const stockProductsColumns = computed(() => {
return [
{
label: 'SKU图片',
prop: 'skuImage',
width: 100,
align: 'center',
},
{
label: '商品名称',
prop: 'productName',
minWidth: 200,
align: 'left',
},
{
label: '款号',
prop: 'styleNumber',
width: 120,
align: 'center',
},
{
label: '库存SKU',
prop: 'warehouseSku',
width: 150,
align: 'center',
},
{
label: '备货数量',
prop: 'stockQuantity',
width: 100,
align: 'right',
},
{
label: '备货单价',
prop: 'stockUnitPrice',
width: 100,
align: 'right',
},
{
label: '备货金额',
prop: 'stockAmount',
width: 120,
align: 'right',
},
{
label: '未发货数量',
prop: 'unshippedQuantity',
width: 120,
align: 'right',
},
{
label: '已发货数量',
prop: 'shippedQuantity',
width: 120,
align: 'right',
},
{
label: '已入库数量',
prop: 'inWarehouseQuantity',
width: 120,
align: 'right',
},
{
label: '不良品数量',
prop: 'defectiveQuantity',
width: 120,
align: 'right',
},
]
})
defineProps<{
stockProductsData: StockProduct[]
}>()
const activeTab = ref('stockProducts')
</script>
<style lang="scss" scoped>
.detail-tabs {
height: 100%;
display: flex;
:deep(.el-tab-pane) {
height: 100%;
overflow: hidden;
}
}
.detail-table-content {
height: 100%;
overflow: hidden;
}
.empty-content {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
color: #909399;
font-size: 14px;
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment