Commit a5399667 by qinjianhui

Merge branch 'dev' into 'master'

Dev

See merge request !192
parents 4572b126 ff5bc346
......@@ -11,7 +11,7 @@ import type {
RestockData,
SearchForm,
StatusTreeNode,
} from '@/types/api/factoryOrderNew'
} from '@/types/api/factoryOrderNew/factoryOrderNew'
import { ResultInfoDataItem } from '@/types/api/order/common'
import { ExportParams } from '@/types/api/order/factoryOrderNew'
import type { OrderData } from '@/types/api/podMakeOrder'
......
......@@ -32,6 +32,7 @@ export interface SearchForm {
tagsId?: string
source?: string
size?: string
logisticsWayId?: number | string
logisticsCompanyCode?: string
interceptStatus?: boolean
standardDesignImage?: number
......
export interface FactoryOrderSearchQueryVisibilityContext {
status: string
isCardLayout: boolean
}
......@@ -32,6 +32,7 @@ export interface SearchForm {
tagsId?: string
source?: string
size?: string
logisticsWayId?: number | string
logisticsCompanyCode?: string
interceptStatus?: boolean
shopNumber?: string
......
......@@ -85,7 +85,7 @@ import {
} from '@/api/logistics'
import { createLogisticsOrdersApi } from '@/api/podCnOrder'
import { FactoryOrderNewListData } from '@/types/api/factoryOrderNew'
import { FactoryOrderNewListData } from '@/types/api/factoryOrderNew/factoryOrderNew'
const createLogisticDialogVisible = ref(false)
const props = defineProps<{
......
......@@ -57,7 +57,7 @@
</template>
<script setup lang="ts">
import { updateCustomDeclarationInfoApi } from '@/api/podCnOrder'
import { FactoryOrderNewListData } from '@/types/api/factoryOrderNew'
import { FactoryOrderNewListData } from '@/types/api/factoryOrderNew/factoryOrderNew'
import {
CustomDeclarationInfoForm,
PodCnOrderListData,
......
......@@ -196,7 +196,7 @@ import {
printPickPdfByBatchNumberApi,
printProductionPdfByBatchNumberApi,
} from '@/api/factoryOrderNew'
import type { BatchManageData } from '@/types/api/factoryOrderNew'
import type { BatchManageData } from '@/types/api/factoryOrderNew/factoryOrderNew'
import type { PaginationData } from '@/types/api'
import TableView from '@/components/TableView.vue'
import ArrangeDialog from './ArrangeDialog.vue'
......
......@@ -294,7 +294,7 @@ import {
} from '@/api/factoryOrderNew'
import type { PaginationData } from '@/types/api'
import usePageList from '@/utils/hooks/usePageList'
import { operateOrderListData } from '@/types/api/factoryOrderNew'
import { operateOrderListData } from '@/types/api/factoryOrderNew/factoryOrderNew'
import type { LogListData } from '@/types/api/order'
import LogList from '@/components/LogList.vue'
import RightClickMenu from '@/components/RightClickMenu.vue'
......
......@@ -257,7 +257,7 @@ import platformJson from '../../../../json/platform.json'
import type {
operateOrderListData,
PickCompleteData,
} from '@/types/api/factoryOrderNew'
} from '@/types/api/factoryOrderNew/factoryOrderNew'
const emit = defineEmits(['adjustPickOrderSuccess'])
const props = defineProps<{
......
......@@ -123,7 +123,7 @@ import {
replenishmentCompleteApi,
markStockOutOfApi,
} from '@/api/factoryOrderNew'
import type { PickCompleteData } from '@/types/api/factoryOrderNew'
import type { PickCompleteData } from '@/types/api/factoryOrderNew/factoryOrderNew'
import type { BaseRespData } from '@/types/api'
import type {
InterProductList,
......
......@@ -71,7 +71,7 @@ import { ref } from 'vue'
import { ElMessage, ElMessageBox, ElLoading } from 'element-plus'
import BigNumber from 'bignumber.js'
import { pickCompleteByIdsDataApi } from '@/api/factoryOrderNew'
import type { PickCompleteData } from '@/types/api/factoryOrderNew'
import type { PickCompleteData } from '@/types/api/factoryOrderNew/factoryOrderNew'
import TableView from '@/components/TableView.vue'
import _ from 'lodash'
import CreateOutboundDialog from './CreateOutboundDialog.vue'
......
......@@ -63,7 +63,7 @@
import { reactive } from 'vue'
import { ElMessage } from 'element-plus'
import { getRestockListApi, restockCheckApi } from '@/api/factoryOrderNew'
import type { RestockData } from '@/types/api/factoryOrderNew'
import type { RestockData } from '@/types/api/factoryOrderNew/factoryOrderNew'
import TableView from '@/components/TableView.vue'
import usePageList from '@/utils/hooks/usePageList'
......
......@@ -6,7 +6,7 @@ import {
getFactoryOrderNewListApi,
getFactoryOrderNewLogApi,
} from '@/api/factoryOrderNew'
import type { SearchForm } from '@/types/api/factoryOrderNew'
import type { SearchForm } from '@/types/api/factoryOrderNew/factoryOrderNew'
import type {
FactoryOrderNewListData,
LogListData,
......
import { nextTick, ref } from 'vue'
import type { SearchForm } from '@/types/api/order/factoryOrderNew'
import type { FactoryOrderSearchQueryVisibilityContext } from '@/types/api/factoryOrderNew/searchQueryVisibility'
import { filterFactoryOrderListSearchPayload } from '../utils/listSearchQueryFilter'
import { normalizeProductMarkListForQuery } from '../utils/productMarkQuery'
export function useOrderSearchForm(refreshCurrentView: () => void) {
export function useOrderSearchForm(
refreshCurrentView: () => void,
getVisibilityContext?: () => FactoryOrderSearchQueryVisibilityContext,
) {
const searchForm = ref<SearchForm>({})
const dateRange = ref<string[]>([])
const searchVisible = ref(false)
......@@ -66,13 +71,16 @@ export function useOrderSearchForm(refreshCurrentView: () => void) {
Array.isArray(tagsIdArr) && tagsIdArr.length > 0
? tagsIdArr.join(',')
: undefined
return {
const raw: Record<string, unknown> = {
...rest,
...markQuery,
...(tagsId !== undefined ? { tagsId } : {}),
startTime: dateRange.value?.[0] || null,
endTime: dateRange.value?.[1] || null,
}
return getVisibilityContext
? filterFactoryOrderListSearchPayload(raw, getVisibilityContext())
: raw
}
const reset = () => {
......
......@@ -295,6 +295,22 @@
></ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem v-if="status === 'ALL'" label="物流方式">
<ElSelect
v-model="searchForm.logisticsWayId"
placeholder="请选择"
clearable
:teleported="false"
style="width: 150px"
>
<ElOption
v-for="(item, index) in logisticsWayList"
:key="index"
:value="item.id"
:label="item.name"
></ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem label="自有物流公司">
<ElSelect
v-model="searchForm.logisticsCompanyCode"
......@@ -974,6 +990,7 @@ import {
arrangeFinishApi,
exportFactoryOrderInfo,
} from '@/api/factoryOrderNew'
import { getLogisticsWayApi } from '@/api/podUsOrder'
import BigNumber from 'bignumber.js'
import { filePath } from '@/api/axios'
import { OrderData } from '@/types/api/podMakeOrder'
......@@ -999,6 +1016,7 @@ import PodDistributionOrder from '@/views/order/podCN/PodDistributionOrder.vue'
import PrintWarehouseSkuTag from '@/views/order/components/printWarehouseSkuTag.vue'
import UpdateAddress from '@/views/order/podCN/components/updateAddress.vue'
import { ResultInfoDataItem } from '@/types/api/order/common'
import type { FactoryOrderSearchQueryVisibilityContext } from '@/types/api/factoryOrderNew/searchQueryVisibility'
import { useOrderDictionaries } from './hooks/useOrderDictionaries'
import { useOrderSearchForm } from './hooks/useOrderSearchForm'
import { useOrderStatusTree } from './hooks/useOrderStatusTree'
......@@ -1029,6 +1047,11 @@ const {
} = useOrderDictionaries()
const refreshCurrentViewProxy = ref<() => void>(() => {})
let getFactoryOrderSearchVisibilityContext: () => FactoryOrderSearchQueryVisibilityContext =
() => ({
status: 'PENDING_RECEIVE',
isCardLayout: false,
})
const {
searchForm,
dateRange,
......@@ -1038,7 +1061,10 @@ const {
changeReplaceShipment,
getQueryPayload,
reset,
} = useOrderSearchForm(() => refreshCurrentViewProxy.value())
} = useOrderSearchForm(
() => refreshCurrentViewProxy.value(),
() => getFactoryOrderSearchVisibilityContext(),
)
const statusCurrentPageRef = ref(1)
const statusPageSizeRef = ref(50)
......@@ -1067,6 +1093,10 @@ const {
onClearTableState: () => {},
onRefreshCurrentView: () => {},
})
getFactoryOrderSearchVisibilityContext = () => ({
status: status.value,
isCardLayout: isCardLayout.value,
})
const {
subLoading,
......@@ -1141,12 +1171,8 @@ const submitExportForm = async () => {
try {
await exportFactoryOrderInfo({
...params,
...(resourceType === 2
? {
...searchForm.value,
}
: {}),
})
...(resourceType === 2 ? getQueryPayload() : {}),
} as ExportParams)
ElMessage.success('请求成功,请稍后到右上角[我的下载]中查看')
exportVisible.value = false
} catch (e) {
......@@ -2007,13 +2033,7 @@ const printOrder = async (
length: pdfPayload?.length || 0,
preview: pdfPayload?.slice(0, 30),
})
lodop.ADD_PRINT_PDF(
0,
0,
'100%',
'100%',
pdfPayload,
)
lodop.ADD_PRINT_PDF(0, 0, '100%', '100%', pdfPayload)
} else {
console.log('[printOrder] raw payload meta', {
id: data.id,
......@@ -2458,9 +2478,15 @@ const handleStatusPush = async () => {
successText: '状态推送成功',
})
}
const logisticsWayList = ref<{ name: string; id: number }[]>([])
const getLogisticsWay = async () => {
const { data } = await getLogisticsWayApi()
logisticsWayList.value = data
}
onMounted(() => {
loadStatusTreeCounts()
loadAllDictionaries()
getLogisticsWay()
// 仅用于消除 TS 插件的 unused-vars 警告:template refs 会绑定这两个变量
void treeRef.value
void tableRef.value
......
import type { FactoryOrderSearchQueryVisibilityContext } from '@/types/api/factoryOrderNew/searchQueryVisibility'
export const FACTORY_ORDER_LIST_SEARCH_FIELD_RULES: Record<
string,
(ctx: FactoryOrderSearchQueryVisibilityContext) => boolean
> = {
batchArrangeNumber: (c) => c.isCardLayout,
operationNo: (c) => c.isCardLayout,
receiverCountry: (c) => !c.isCardLayout,
logisticsWayId: (c) => c.status === 'ALL',
}
export function filterFactoryOrderListSearchPayload(
payload: Record<string, unknown>,
ctx: FactoryOrderSearchQueryVisibilityContext,
): Record<string, unknown> {
const out = { ...payload }
for (const [key, rule] of Object.entries(
FACTORY_ORDER_LIST_SEARCH_FIELD_RULES,
)) {
if (!Object.prototype.hasOwnProperty.call(out, key)) continue
if (!rule(ctx)) {
delete out[key]
}
}
return out
}
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