Commit a5399667 by qinjianhui

Merge branch 'dev' into 'master'

Dev

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