Commit 934b386b by wuqian

Merge branch 'dev'

parents 9eef5518 4545b5dc
...@@ -49,9 +49,10 @@ declare module 'vue' { ...@@ -49,9 +49,10 @@ declare module 'vue' {
ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabPane: typeof import('element-plus/es')['ElTabPane']
ElTabs: typeof import('element-plus/es')['ElTabs'] ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag'] ElTag: typeof import('element-plus/es')['ElTag']
ElTimeline: typeof import('element-plus/es')['ElTimeline']
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
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']
Icon: typeof import('./src/components/Icon.vue')['default'] Icon: typeof import('./src/components/Icon.vue')['default']
ImageView: typeof import('./src/components/ImageView.vue')['default'] ImageView: typeof import('./src/components/ImageView.vue')['default']
LogList: typeof import('./src/components/LogList.vue')['default'] LogList: typeof import('./src/components/LogList.vue')['default']
......
import { BasePaginationData, BaseRespData, RejectParams } from '@/types/api' import { BasePaginationData, BaseRespData } from '@/types/api'
import axios from './axios' import axios from './axios'
import { PaymentForm } from '@/types/api/index.ts'
import { import {
LogListData, LogListData,
OrderData, OrderData,
...@@ -11,6 +10,8 @@ import { ...@@ -11,6 +10,8 @@ import {
ShipmentOrderRes, ShipmentOrderRes,
Tab, Tab,
InspectionData, InspectionData,
PaymentForm,
RejectParams
} from '@/types/api/order' } from '@/types/api/order'
import { import {
apiSubmitPodOrderForm, apiSubmitPodOrderForm,
...@@ -151,7 +152,7 @@ export function apiSetCraftData({ ...@@ -151,7 +152,7 @@ export function apiSetCraftData({
}: { }: {
id: number | undefined id: number | undefined
craftTotalPrice: number | undefined craftTotalPrice: number | undefined
recNumber:string|undefined recNumber: string | undefined
craftPriceList: IUpdatePrice[] craftPriceList: IUpdatePrice[]
}) { }) {
return axios.post<never, BaseRespData<never>>( return axios.post<never, BaseRespData<never>>(
......
...@@ -314,9 +314,9 @@ export function InRecordBatchCheckPrintApi(ids: string) { ...@@ -314,9 +314,9 @@ export function InRecordBatchCheckPrintApi(ids: string) {
}, },
) )
} }
export function warehouseInRecordInventory(data: ExportInWarehouseInfo) { export function warehouseInRecordExport(data: ExportInWarehouseInfo) {
return axios.post<never, BasePaginationData<never>>( return axios.post<never, BasePaginationData<never>>(
'factory/warehouseInRecord/inventory', 'factory/warehouseInRecord/export',
data, data,
) )
} }
...@@ -438,6 +438,20 @@ export function getInRecordLogApi(inRecordId?: number) { ...@@ -438,6 +438,20 @@ export function getInRecordLogApi(inRecordId?: number) {
) )
} }
// 出库单 // 出库单
export function warehouseOutRecordExport(data: ExportInWarehouseInfo) {
return axios.post<never, BasePaginationData<never>>(
'factory/warehouseOutRecord/export',
data,
)
}
export function OutRecordBatchCheckPrintApi(ids: string) {
return axios.get<never, BaseRespData<never[]>>(
'factory/warehouseOutRecord/batchCheckPrint',
{
params: { ids },
},
)
}
export function getOutRecordStatusTree() { export function getOutRecordStatusTree() {
return axios.get<never, BaseRespData<InterWarehouseTree[]>>( return axios.get<never, BaseRespData<InterWarehouseTree[]>>(
'factory/warehouseOutRecord/status_tree', 'factory/warehouseOutRecord/status_tree',
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
mode="horizontal" mode="horizontal"
background-color="#001529" background-color="#001529"
text-color="#fff" text-color="#fff"
style="border-bottom: none;"
:default-active="defaultActive" :default-active="defaultActive"
router router
> >
...@@ -86,8 +87,9 @@ ...@@ -86,8 +87,9 @@
> >
<div class="nav-tabs-node_label"> <div class="nav-tabs-node_label">
<span>{{ item.title }}</span> <span>{{ item.title }}</span>
<!-- 首页不可删除 -->
<el-icon <el-icon
v-if="tabs.length > 1" v-if="item.path != '/dashboard' && tabs.length > 1"
class="el-icon-close" class="el-icon-close"
@click.stop="removeTab(item.name)" @click.stop="removeTab(item.name)"
> >
......
[
{
"name": "Shopify",
"lowercase": "shopify",
"type": "SHOPIFY",
"icon": "images/icon/logo-1.png",
"cycle": "today",
"route": "store_profits_shopify"
},
{
"name": "AliExpress",
"lowercase": "aliExpress",
"type": "AE",
"icon": "./images/icon/logo-3.png",
"cycle": "today",
"route": "store_profits_aliexpress"
},
{
"name": "Amazon",
"lowercase": "amazon",
"type": "AMAZON",
"icon": "./images/icon/logo-2.png",
"cycle": "yesterday",
"route": "store_profits_amazon"
},
{
"name": "Magento",
"lowercase": "magento",
"type": "MAGENTO",
"icon": "./images/icon/logo-6.png",
"cycle": "today",
"route": "store_profits_magento"
},
{
"name": "SHOPLINE",
"lowercase": "shopline",
"type": "SHOPLINE",
"cycle": "today",
"icon": "./images/icon/logo-4.png",
"route": "store_profits_shopline"
},
{
"name": "Shoplazza",
"lowercase": "shoplazza",
"type": "SHOPLAZZA",
"cycle": "today",
"icon": "./images/icon/logo-5.png",
"route": "store_profits_shoplazza"
},
{
"name": "temu",
"lowercase": "temu",
"type": "TEMU",
"cycle": "today",
"icon": "./images/icon/temu.png",
"route": "store_profits_temu"
},
{
"name": "eBay",
"lowercase": "ebay",
"type": "EBAY",
"cycle": "today",
"icon": "./images/icon/eBay.png",
"route": "store_profits_ebay"
},
{
"name": "Etsy",
"lowercase": "etsy",
"type": "ETSY",
"cycle": "today",
"icon": "./images/icon/etsy.png",
"route": "store_profits_etsy"
},
{
"name": "Alibaba",
"lowercase": "alibaba",
"type": "ALIBABA",
"cycle": "today",
"icon": "./images/icon/alibaba.png",
"route": "store_profits_alibaba"
},
{
"name": "walmart",
"lowercase": "walmart",
"type": "WALMART",
"cycle": "today",
"icon": "images/icon/walmart.png",
"route": "store_profits_walmart"
},
{
"name": "tiktokshop",
"lowercase": "tiktok",
"type": "TIKTOK",
"cycle": "today",
"icon": "images/icon/tiktokshop.png",
"route": "store_profits_tiktokshop"
},
{
"name": "Customize",
"lowercase": "customize",
"type": "CUSTOMIZE",
"cycle": "today",
"icon": "images/icon/customize.png",
"route": "store_profits_customize"
},
{
"name": "1688",
"type": "ALIBABA_DOMESTIC",
"cycle": "today",
"icon": "images/icon/1688.png",
"route": "store_profits_1688"
}
]
...@@ -27,8 +27,8 @@ import WarehouseManage from '@/views/warehouse/manage.vue' ...@@ -27,8 +27,8 @@ import WarehouseManage from '@/views/warehouse/manage.vue'
import WarehouseWarning from '@/views/warehouse/warning.vue' import WarehouseWarning from '@/views/warehouse/warning.vue'
import WarehousePosition from '@/views/warehouse/position.vue' import WarehousePosition from '@/views/warehouse/position.vue'
import receiptDoc from '@/views/warehouse/receiptDoc.vue' import receiptDoc from '@/views/warehouse/receiptDoc.vue'
import issueDoc from '@/views/warehouse/issueDoc.vue'
import ExternalAuthorisationPage from '@/views/system/externalAuthorisationPage.vue' import ExternalAuthorisationPage from '@/views/system/externalAuthorisationPage.vue'
// import issueDoc from '@/views/warehouse/issueDoc.vue'
const router = createRouter({ const router = createRouter({
history: createWebHistory(), history: createWebHistory(),
routes: [ routes: [
...@@ -197,13 +197,13 @@ const router = createRouter({ ...@@ -197,13 +197,13 @@ const router = createRouter({
}, },
component: receiptDoc, component: receiptDoc,
}, },
// { {
// path: '/warehouse/issue-doc', path: '/warehouse/issue-doc',
// meta: { meta: {
// title: '出库单', title: '出库单',
// }, },
// component: issueDoc, component: issueDoc,
// }, },
{ {
path: '/warehouse/warning', path: '/warehouse/warning',
meta: { meta: {
......
...@@ -78,11 +78,11 @@ const menu: MenuItem[] = [ ...@@ -78,11 +78,11 @@ const menu: MenuItem[] = [
id: 123, id: 123,
label: '入库单', label: '入库单',
}, },
// { {
// index: '/warehouse/issue-doc', index: '/warehouse/issue-doc',
// id: 124, id: 124,
// label: '出库单', label: '出库单',
// }, },
{ {
index: '/warehouse/manage', index: '/warehouse/manage',
......
...@@ -35,17 +35,4 @@ export interface baseRes { ...@@ -35,17 +35,4 @@ export interface baseRes {
code: number code: number
msg: string msg: string
} }
export interface PaymentForm {
waterList: string
id?: number | string
actualAmount?: number | string
payableAmount?: number | string
recNumber?: number | string
}
export interface RejectParams {
id: number
description?: string
ids?: string
pass?: number
}
...@@ -81,7 +81,7 @@ export interface ProductList { ...@@ -81,7 +81,7 @@ export interface ProductList {
subOrderNumber?: string subOrderNumber?: string
shopNumber?: string shopNumber?: string
material?: string material?: string
materialPrice?: number|null materialPrice?: number | null
count?: number count?: number
baseSku?: string baseSku?: string
erpSubOrderNumber?: string erpSubOrderNumber?: string
...@@ -277,3 +277,16 @@ export interface ICompareObjects { ...@@ -277,3 +277,16 @@ export interface ICompareObjects {
lanshouPost?: string lanshouPost?: string
lanshouRegion?: string lanshouRegion?: string
} }
export interface PaymentForm {
waterList: string
id?: number | string
actualAmount?: number | string
payableAmount?: number | string
recNumber?: number | string
}
export interface RejectParams {
id: number
description?: string
ids?: string
pass?: number
}
...@@ -17,6 +17,8 @@ export interface SearchForm { ...@@ -17,6 +17,8 @@ export interface SearchForm {
startTime: string | null startTime: string | null
endTime: string | null endTime: string | null
exceptionHandling: number | undefined exceptionHandling: number | undefined
platform: string
productionClient:string
} }
export interface PodUsOrderListData { export interface PodUsOrderListData {
id: number id: number
......
...@@ -5,6 +5,8 @@ export interface warehouseSearchForm { ...@@ -5,6 +5,8 @@ export interface warehouseSearchForm {
billStatus?: string billStatus?: string
createTimeEnd?: string createTimeEnd?: string
createTimeStart?: string createTimeStart?: string
startTime?: string
endTime?: string
inNo?: string inNo?: string
outNo?: string outNo?: string
warehouseSku?: string warehouseSku?: string
...@@ -14,6 +16,7 @@ export interface warehouseSearchForm { ...@@ -14,6 +16,7 @@ export interface warehouseSearchForm {
export interface InterProductList { export interface InterProductList {
createTime?: string createTime?: string
id?: number id?: number
inventoryId?: number | null
inId?: number inId?: number
productNo?: string | null //custom的货号 productNo?: string | null //custom的货号
buyStored?: number | null //入库数量 buyStored?: number | null //入库数量
...@@ -42,6 +45,7 @@ export interface InterWarehouseBase { ...@@ -42,6 +45,7 @@ export interface InterWarehouseBase {
total?: number total?: number
totalPrice?: number totalPrice?: number
billStatus?: string billStatus?: string
billStatusTxt?: string
remark?: string | null remark?: string | null
dataVersion?: number dataVersion?: number
createTime?: string | null createTime?: string | null
...@@ -86,6 +90,9 @@ export interface InterProductList { ...@@ -86,6 +90,9 @@ export interface InterProductList {
warehouseSku?: string warehouseSku?: string
locationId?: number | null locationId?: number | null
locationCode?: string | null locationCode?: string | null
inventory?: {
usableInventory?: number
}
} }
export interface InterskuList { export interface InterskuList {
id?: number id?: number
...@@ -101,6 +108,7 @@ export interface InterskuList { ...@@ -101,6 +108,7 @@ export interface InterskuList {
price?: number | null //出库单的 price?: number | null //出库单的
usableInventory?: number | null usableInventory?: number | null
warehouseSku?: string warehouseSku?: string
remark?: string | null
} }
export interface ILocation { export interface ILocation {
id?: number id?: number
......
...@@ -108,7 +108,6 @@ export function checkUpdateParams( ...@@ -108,7 +108,6 @@ export function checkUpdateParams(
removeList = arr1.map((item) => item['id'] as IdType) removeList = arr1.map((item) => item['id'] as IdType)
} }
if (isBackKeyName) { if (isBackKeyName) {
console.log(isBackKeyName)
// 将列表直接添加到 params 顶层 // 将列表直接添加到 params 顶层
if (addList.length > 0) params['addList'] = addList || undefined if (addList.length > 0) params['addList'] = addList || undefined
if (updateList.length > 0) if (updateList.length > 0)
......
...@@ -57,6 +57,46 @@ ...@@ -57,6 +57,46 @@
<ElOption label="多面" value="multiple" /> <ElOption label="多面" value="multiple" />
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label="平台">
<ElSelect
v-model="searchForm.platform"
value-key=""
placeholder="请选择"
clearable
filterable
popper-class="customize-select-style"
style="width: 130px"
>
<ElOption
v-for="(item, index) in platformJson"
:key="index"
:label="item.type"
:value="item.type"
style="width: 160px"
>
<img
:src="`../../../src/assets/${item.icon}`"
style="height: 20px; margin: 5px 10px 0 0"
/>
<span :title="item.type">{{ item.type }}</span>
</ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem label="生产端">
<ElSelect
v-model="searchForm.productionClient"
placeholder="生产端"
clearable
style="width: 130px"
>
<ElOption
v-for="(item, index) in productionClient"
:key="index"
:value="item.code || ''"
:label="`${item.remark}(${item.code})`"
></ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem label="SKU"> <ElFormItem label="SKU">
<ElInput <ElInput
v-model.trim="searchForm.sku" v-model.trim="searchForm.sku"
...@@ -652,7 +692,24 @@ ...@@ -652,7 +692,24 @@
</div> </div>
</template> </template>
<template #time="{ row }"> <template #time="{ row }">
<div class="order-time-box"> <el-timeline style="max-width: 600px">
<el-timeline-item
:color="row.createTime ? '#409EFF' : ''"
:timestamp="row.createTime"
>创建时间</el-timeline-item
>
<el-timeline-item
:color="row.startStockingTime ? '#E6A23C' : ''"
:timestamp="row.startStockingTime"
>确认时间</el-timeline-item
>
<el-timeline-item
:color="row.finishTime ? '#67C23A' : ''"
:timestamp="row.finishTime"
>完成时间</el-timeline-item
>
</el-timeline>
<!-- <div class="order-time-box">
<div class="order-time-item"> <div class="order-time-item">
<span class="order-time-item-label">创建时间:</span> <span class="order-time-item-label">创建时间:</span>
<span class="order-time-item-value"> <span class="order-time-item-value">
...@@ -665,19 +722,14 @@ ...@@ -665,19 +722,14 @@
{{ row.startStockingTime }} {{ row.startStockingTime }}
</span> </span>
</div> </div>
<!-- <div class="order-time-item">
<span class="order-time-item-label">支付时间:</span>
<span class="order-time-item-value">
{{ row.paymentTime }}
</span>
</div> -->
<div class="order-time-item"> <div class="order-time-item">
<span class="order-time-item-label">完成时间:</span> <span class="order-time-item-label">完成时间:</span>
<span class="order-time-item-value"> <span class="order-time-item-value">
{{ row.finishTime }} {{ row.finishTime }}
</span> </span>
</div> </div>
</div> </div> -->
</template> </template>
<template #innerLabel="{ row }"> <template #innerLabel="{ row }">
<div v-if="row.internalMemoList" class="inner-label-box"> <div v-if="row.internalMemoList" class="inner-label-box">
...@@ -1181,7 +1233,7 @@ import usePageList from '@/utils/hooks/usePageList' ...@@ -1181,7 +1233,7 @@ 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'
import { DocumentCopy, EditPen } from '@element-plus/icons-vue' import { DocumentCopy, EditPen } from '@element-plus/icons-vue'
import { Column } from 'element-plus' import { Column, ElFormItem } from 'element-plus'
import { computed, onMounted, ref, nextTick } from 'vue' import { computed, onMounted, ref, nextTick } from 'vue'
import FastProduction from './FastProduction.vue' import FastProduction from './FastProduction.vue'
import { filePath } from '@/api/axios' import { filePath } from '@/api/axios'
...@@ -1192,6 +1244,7 @@ import dayjs from 'dayjs' ...@@ -1192,6 +1244,7 @@ import dayjs from 'dayjs'
import rightMenu from '../pod/rightMenu.vue' import rightMenu from '../pod/rightMenu.vue'
import ResultInfo from './components/ResultInfo.vue' import ResultInfo from './components/ResultInfo.vue'
import { isArray, isString } from '@/utils/validate' import { isArray, isString } from '@/utils/validate'
import platformJson from '../../../json/platform.json'
declare global { declare global {
interface Window { interface Window {
ActiveXObject: { ActiveXObject: {
...@@ -1230,6 +1283,8 @@ const [searchForm] = useValue<SearchForm>({ ...@@ -1230,6 +1283,8 @@ const [searchForm] = useValue<SearchForm>({
startTime: null, startTime: null,
endTime: null, endTime: null,
exceptionHandling: undefined, exceptionHandling: undefined,
platform: '',
productionClient: '',
}) })
const exceptionStatus = ref(1) const exceptionStatus = ref(1)
const userMarkList = ref<string[]>([]) const userMarkList = ref<string[]>([])
...@@ -1321,7 +1376,7 @@ const tableColumns = computed(() => [ ...@@ -1321,7 +1376,7 @@ const tableColumns = computed(() => [
slot: 'price', slot: 'price',
width: 160, width: 160,
prop: 'price', prop: 'price',
align: 'center', align: 'left',
}, },
{ {
label: '时间', label: '时间',
...@@ -2646,3 +2701,12 @@ const handleExceptionCommand = (command: number) => { ...@@ -2646,3 +2701,12 @@ const handleExceptionCommand = (command: number) => {
} }
} }
</style> </style>
<style>
.customize-select-style {
.el-select-dropdown__list {
width: 500px;
display: flex;
flex-wrap: wrap;
}
}
</style>
...@@ -112,18 +112,16 @@ const submitExportForm = async () => { ...@@ -112,18 +112,16 @@ const submitExportForm = async () => {
return ElMessage.error('请选择导出类型') return ElMessage.error('请选择导出类型')
} }
exportLoading.value = true exportLoading.value = true
let purchaseIds = '' let purchaseIds: number[] = []
let exportTotal: number | undefined = undefined let exportTotal: number | undefined = undefined
const params: AnyObject = {} const params: AnyObject = {}
const resourceType = Number(exportForm.value.resource) const resourceType = Number(exportForm.value.resource)
if (resourceType === 0) { if (resourceType === 0) {
purchaseIds = leftData.value.map((el: WarehouseWarning) => el.id).join(',') purchaseIds = leftData.value.map((el: WarehouseWarning) => Number(el.id))
} else if (resourceType === 1) { } else if (resourceType === 1) {
purchaseIds = selections.value purchaseIds = selections.value.map((el: WarehouseWarning) => Number(el.id))
.map((el: WarehouseWarning) => el.id)
.join(',')
} else if (resourceType === 2) { } else if (resourceType === 2) {
purchaseIds = '' purchaseIds = []
exportTotal = pagination.value.total exportTotal = pagination.value.total
} }
params.idList = purchaseIds params.idList = purchaseIds
......
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