Commit a925ab80 by zhuzhequan

ts 报错修改

parent 90b17694
import { BasePaginationData, BaseRespData } from '@/types/api' import { BasePaginationData, BaseRespData, StatisticsData } from '@/types/api'
import axios from './axios' import axios from './axios'
import { import {
LogListData, LogListData,
...@@ -9,9 +9,11 @@ import { ...@@ -9,9 +9,11 @@ import {
ShipmentForm, ShipmentForm,
ShipmentOrderRes, ShipmentOrderRes,
Tab, Tab,
InspectionData, InspectionData, CountStatus,
} from '@/types/api/order' } from '@/types/api/order'
import { import {
AccountStatementNote,
AccountStatementNoteSearchForm,
DeliveryNoteData, DeliveryNoteData,
DeliveryNoteSearchForm, DeliveryNoteSearchForm,
ProductionOrder, ProductionOrder,
...@@ -187,11 +189,11 @@ export function getDeliveryNoteList( ...@@ -187,11 +189,11 @@ export function getDeliveryNoteList(
) )
} }
export function customJomallReconciliation( export function customJomallReconciliation(
data: any, data: AccountStatementNoteSearchForm,
currentPage: number, currentPage: number,
pageSize: number, pageSize: number,
) { ) {
return axios.post<never, BasePaginationData<DeliveryNoteData>>( return axios.post<never, StatisticsData<AccountStatementNote>>(
'factory/customJomallReconciliation/list_page', 'factory/customJomallReconciliation/list_page',
{ {
...data, ...data,
...@@ -238,7 +240,7 @@ export function getOrderByIdApi(id?: number) { ...@@ -238,7 +240,7 @@ export function getOrderByIdApi(id?: number) {
) )
} }
export function getReconciliationAmount(id?: number) { export function getReconciliationAmount(id?: number) {
return axios.get<never, BaseRespData<OrderData>>( return axios.get<never, BaseRespData<CountStatus[]>>(
'factory/customJomallReconciliation/getReconciliationAmount', 'factory/customJomallReconciliation/getReconciliationAmount',
{ {
params: { params: {
...@@ -276,7 +278,7 @@ export function updateReconciliation( ...@@ -276,7 +278,7 @@ export function updateReconciliation(
data, data,
) )
} }
export function getShipmentDetailsById(shipmentId?: number) { export function getShipmentDetailsById(shipmentId?: string) {
return axios.get<never, BaseRespData<any>>( return axios.get<never, BaseRespData<any>>(
'factory/customJomallReconciliation/getShipmentDetailsById', 'factory/customJomallReconciliation/getShipmentDetailsById',
{ {
......
...@@ -5,8 +5,8 @@ import 'splitpanes/dist/splitpanes.css' ...@@ -5,8 +5,8 @@ import 'splitpanes/dist/splitpanes.css'
defineProps({ defineProps({
size: { size: {
default: 15, default: '15',
type: Number type: String
} }
}) })
</script> </script>
......
...@@ -10,6 +10,12 @@ export interface DeliveryNoteSearchForm { ...@@ -10,6 +10,12 @@ export interface DeliveryNoteSearchForm {
namespace?: string namespace?: string
shippingWay?: number shippingWay?: number
} }
export interface AccountStatementNoteSearchForm {
status?: string | null | number
startTime?: string
endTime?: string
}
export interface DeliveryNoteData { export interface DeliveryNoteData {
id: number id: number
...@@ -97,6 +103,7 @@ export interface ProductionOrder { ...@@ -97,6 +103,7 @@ export interface ProductionOrder {
} }
export interface AccountStatementNote{ export interface AccountStatementNote{
billNumber?:string billNumber?:string
shipmentId?:string
shipmentNum?:string shipmentNum?:string
dataVersion?:string dataVersion?:string
carriageName?:string carriageName?:string
......
export interface BaseRespData<D> { export interface BaseRespData<D> {
code: number code: number
message?: string message?: string
...@@ -5,10 +6,25 @@ export interface BaseRespData<D> { ...@@ -5,10 +6,25 @@ export interface BaseRespData<D> {
} }
export interface PaginationData<D> { export interface PaginationData<D> {
page?: PaginationData<D>
total: number total: number
size: number size: number
current: number current: number
records: D[] records: D[]
} }
export interface Statistics<D> {
sumNotPassNum: number
sumPassNum: number
sumShipmentNum: number
sumTotalPrice: number
page: {
total: number
size: number
current: number
records: D[]
}
}
export type BasePaginationData<D> = BaseRespData<PaginationData<D>> export type BasePaginationData<D> = BaseRespData<PaginationData<D>>
export type StatisticsData<D> = BaseRespData<Statistics<D>>
...@@ -12,6 +12,7 @@ export interface SearchForm { ...@@ -12,6 +12,7 @@ export interface SearchForm {
status?: number status?: number
subOrderNumber: string subOrderNumber: string
} }
export interface Tab { export interface Tab {
status: string status: string
statusCode: number statusCode: number
...@@ -19,6 +20,12 @@ export interface Tab { ...@@ -19,6 +20,12 @@ export interface Tab {
quantity: number quantity: number
} }
export interface CountStatus {
count?: number
status?: number
totalSum?: number
}
export interface OrderData { export interface OrderData {
id: number id: number
namespace?: string namespace?: string
...@@ -64,6 +71,7 @@ export interface OrderData { ...@@ -64,6 +71,7 @@ export interface OrderData {
moreable?: boolean moreable?: boolean
manuscriptStatus?: number manuscriptStatus?: number
} }
export interface ProductList { export interface ProductList {
id: number id: number
customOrderId?: number customOrderId?: number
...@@ -101,6 +109,7 @@ export interface MemoList { ...@@ -101,6 +109,7 @@ export interface MemoList {
remark?: string remark?: string
operatorTime?: string operatorTime?: string
} }
export interface SpanMethodProps { export interface SpanMethodProps {
row: OrderData row: OrderData
column: TableColumnCtx<OrderData> column: TableColumnCtx<OrderData>
...@@ -216,3 +225,26 @@ export interface InspectionData { ...@@ -216,3 +225,26 @@ export interface InspectionData {
version: number | string version: number | string
passCount: number | string passCount: number | string
} }
export interface Reconciliation {
status: string | number | null
startTime: string
endTime: string,
billNumber?:string
shipmentId?:string
shipmentNum?:string
dataVersion?:string
carriageName?:string
lanshouAddress?:string
totalPrice?:string
passNum?:string
lanshouPost?:string
notPassNum?:string
lanshouRegion?:string
orderNumber?:string
lanshouName?:string
lanshouPhone?:string
logisticsTracking?:string
totalAmount?:string
id?:number
}
import { Ref, onMounted, ref, reactive } from 'vue' import { Ref, onMounted, ref } from 'vue'
import { showError } from '../ui' import { showError } from '../ui'
import type { PaginationData } from '@/types/api' import type { PaginationData } from '@/types/api'
...@@ -21,7 +21,7 @@ export default function usePageList<T>(options: UsePageListOptions<T>) { ...@@ -21,7 +21,7 @@ export default function usePageList<T>(options: UsePageListOptions<T>) {
const total = ref(0) const total = ref(0)
const data = ref<T[]>([]) as Ref<T[]> const data = ref<T[]>([]) as Ref<T[]>
const statistics = ref(options.statistics || false) const statistics = ref(options.statistics || false)
const totalData = reactive({ const totalData = ref({
sumShipmentNum: 0, sumShipmentNum: 0,
sumPassNum: 0, sumPassNum: 0,
sumTotalPrice: 0, sumTotalPrice: 0,
...@@ -32,19 +32,20 @@ export default function usePageList<T>(options: UsePageListOptions<T>) { ...@@ -32,19 +32,20 @@ export default function usePageList<T>(options: UsePageListOptions<T>) {
try { try {
loading.value = true loading.value = true
// Promise 链式调用 // Promise 链式调用
let res:any = await query(currentPage.value, pageSize.value) const res = await query(currentPage.value, pageSize.value)
if (statistics.value) { if (statistics.value) {
totalData.sumNotPassNum = res.sumNotPassNum totalData.value = res as never
totalData.sumPassNum = res.sumPassNum total.value = res.page!.total
totalData.sumShipmentNum = res.sumShipmentNum currentPage.value = res.page!.current
totalData.sumTotalPrice = res.sumTotalPrice pageSize.value = res.page!.size
res = res.page data.value = res.page!.records
}else{
total.value = res.total
currentPage.value = res.current
pageSize.value = res.size
data.value = res.records
} }
total.value = res.total
currentPage.value = res.current
pageSize.value = res.size
data.value = res.records
} catch (error) { } catch (error) {
showError(error) showError(error)
} finally { } finally {
......
<template> <template>
<div class="page"> <div class="page">
<div class="left"> <div class="left">
<ElTree ref="treeRef" default-expand-all :expand-on-click-node="false" :default-expanded-keys="[]" <ElTree
:highlight-current="true" node-key="id" :data="treeData" @node-click="nodeClick"> ref="treeRef" default-expand-all :expand-on-click-node="false" :default-expanded-keys="[]"
:highlight-current="true" node-key="id" :data="treeData" @node-click="nodeClick">
</ElTree> </ElTree>
</div> </div>
<div class="right"> <div class="right">
<div class="delivery-note-page flex-column card h-100 overflow-hidden"> <div class="delivery-note-page flex-column card h-100 overflow-hidden">
<splitDiv :size="70"> <splitDiv size="70">
<template #top> <template #top>
<div class="header-filter-form"> <div class="header-filter-form">
<ElForm :model="searchForm" inline> <ElForm :model="searchForm" inline>
...@@ -83,17 +84,17 @@ ...@@ -83,17 +84,17 @@
<div class="delivery-note-content flex-1 flex-column overflow-hidden"> <div class="delivery-note-content flex-1 flex-column overflow-hidden">
<div class="delivery-note-list flex-1 overflow-hidden"> <div class="delivery-note-list flex-1 overflow-hidden">
<ElTable <ElTable
@current-change="rowClick" ref="singleTableRef"
highlight-current-row highlight-current-row
:data="tableData" :data="tableData"
@selection-change="handleSelectionChange"
ref="singleTableRef"
show-summary show-summary
:summary-method="getSummaries" :summary-method="getSummaries"
default-expand-all default-expand-all
size="small" size="small"
style="width: 100%; height: 100%" style="width: 100%; height: 100%"
border border
@current-change="rowClick"
@selection-change="handleSelectionChange"
> >
<ElTableColumn <ElTableColumn
...@@ -271,14 +272,15 @@ ...@@ -271,14 +272,15 @@
</div> </div>
</template> </template>
<template #bottom> <template #bottom>
<el-tabs @tab-change="tabsClick" v-model="tabsValue"> <el-tabs v-model="tabsValue" @tab-change="tabsClick">
<el-tab-pane name="0" label="发货单详情"> <el-tab-pane name="0" label="发货单详情">
<ElTable :data="detailList" height="100%" border> <ElTable :data="detailList" height="100%" border>
<ElTableColumn show-overflow-tooltip width="60" align="center" label="序号" type="index" /> <ElTableColumn show-overflow-tooltip width="60" align="center" label="序号" type="index" />
<ElTableColumn show-overflow-tooltip align="center" label="图片"> <ElTableColumn show-overflow-tooltip align="center" label="图片">
<template #default="{row}"> <template #default="{row}">
<el-image preview-teleported style="height: 40px;width: 40px;" :src="row.variantImage" <el-image
:preview-src-list="[row.variantImage]"></el-image> preview-teleported style="height: 40px;width: 40px;" :src="row.variantImage"
:preview-src-list="[row.variantImage]"></el-image>
</template> </template>
</ElTableColumn> </ElTableColumn>
<ElTableColumn show-overflow-tooltip align="center" label="商品名称" prop="productName" /> <ElTableColumn show-overflow-tooltip align="center" label="商品名称" prop="productName" />
...@@ -300,46 +302,44 @@ ...@@ -300,46 +302,44 @@
{{ item.createTime }} {{ item.createTime }}
</span> </span>
<span <span
v-html="item.description" style="display: inline-block; width: 80%"
style="display: inline-block; width: 80%"></span> v-html="item.description"></span>
</li> </li>
</ul> </ul>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</template> </template>
</splitDiv> </splitDiv>
</div> </div>
</div> </div>
</div> </div>
<ElDialog width="1100px" v-model="dialogVisible" draggable title="编辑"> <ElDialog v-model="dialogVisible" width="1100px" draggable title="编辑">
<el-form style="width: 100%;" inline label-width="120px" v-model="editForm"> <el-form v-model="editForm" style="width: 100%;" inline label-width="120px">
<el-form-item prop="billNumber" label="发货单号"> <el-form-item prop="billNumber" label="发货单号">
<el-input disabled v-model="editForm.billNumber"></el-input> <el-input v-model="editForm.billNumber" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="orderNumber" label="订单号"> <el-form-item prop="orderNumber" label="订单号">
<el-input disabled v-model="editForm.orderNumber"></el-input> <el-input v-model="editForm.orderNumber" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="notPassNum" label="质检未通过数量"> <el-form-item prop="notPassNum" label="质检未通过数量">
<el-input disabled v-model="editForm.notPassNum"></el-input> <el-input v-model="editForm.notPassNum" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="lanshouName" label="收货人"> <el-form-item prop="lanshouName" label="收货人">
<el-input disabled v-model="editForm.lanshouName"></el-input> <el-input v-model="editForm.lanshouName" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="lanshouPhone" label="收货人电话"> <el-form-item prop="lanshouPhone" label="收货人电话">
<el-input disabled v-model="editForm.lanshouPhone"></el-input> <el-input v-model="editForm.lanshouPhone" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="lanshouRegion" label="揽收区域"> <el-form-item prop="lanshouRegion" label="揽收区域">
<el-input disabled v-model="editForm.lanshouRegion"></el-input> <el-input v-model="editForm.lanshouRegion" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="lanshouAddress" label="揽收地址"> <el-form-item prop="lanshouAddress" label="揽收地址">
<el-input disabled v-model="editForm.lanshouAddress"></el-input> <el-input v-model="editForm.lanshouAddress" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="lanshouPost" label="揽收邮编"> <el-form-item prop="lanshouPost" label="揽收邮编">
<el-input disabled v-model="editForm.lanshouPost"></el-input> <el-input v-model="editForm.lanshouPost" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="passNum" label="质检通过数量"> <el-form-item prop="passNum" label="质检通过数量">
<el-input v-model="editForm.passNum"></el-input> <el-input v-model="editForm.passNum"></el-input>
...@@ -353,27 +353,32 @@ ...@@ -353,27 +353,32 @@
</el-form> </el-form>
<template #footer> <template #footer>
<el-button @click="dialogVisible=false">取消</el-button> <el-button @click="dialogVisible=false">取消</el-button>
<el-button @click="submitData" type="primary">确认</el-button> <el-button type="primary" @click="submitData">确认</el-button>
</template> </template>
</ElDialog> </ElDialog>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ElMessage, ElTree } from 'element-plus' import { ElMessage, ElTree, TableColumnCtx } from 'element-plus'
import splitDiv from '@/components/splitDiv/splitDiv.vue' import splitDiv from '@/components/splitDiv/splitDiv.vue'
interface Tree { interface Tree {
label: string label: string
count?: number count?: number
children:any[], children?: Tree[],
id: number | string id: number | string
} }
interface Log {
createTime: string
description: string
}
import { import {
AccountStatementNote, AccountStatementNote,
} from '@/types/api/deliveryNote' } from '@/types/api/deliveryNote'
import { ElTable } from 'element-plus'
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 { import {
...@@ -385,6 +390,12 @@ import { ref, onMounted, watch, nextTick } from 'vue' ...@@ -385,6 +390,12 @@ import { ref, onMounted, watch, nextTick } from 'vue'
import { showError } from '@/utils/ui' import { showError } from '@/utils/ui'
import 'element-plus/dist/index.css' import 'element-plus/dist/index.css'
import { CountStatus } from '@/types/api/order.ts'
interface SummaryMethodProps<T = AccountStatementNote> {
columns: TableColumnCtx<T>[]
data: T[]
}
const treeData = ref<Tree[]>([ const treeData = ref<Tree[]>([
{ {
...@@ -394,25 +405,25 @@ const treeData = ref<Tree[]>([ ...@@ -394,25 +405,25 @@ const treeData = ref<Tree[]>([
{ {
label: '草稿箱', label: '草稿箱',
id: 0, id: 0,
children:[] children: [],
}, },
{ {
label: '待确认', label: '待确认',
id: 1, id: 1,
children:[] children: [],
}, },
{ {
label: '待付款', label: '待付款',
id: 2, id: 2,
children:[] children: [],
}, { }, {
label: '已付款', label: '已付款',
id: 3, id: 3,
children:[] children: [],
}, { }, {
label: '归档', label: '归档',
id: 4, id: 4,
children:[] children: [],
}, },
], ],
}, },
...@@ -424,9 +435,9 @@ const dateRange = ref<string[]>([]) ...@@ -424,9 +435,9 @@ const dateRange = ref<string[]>([])
const selections = ref<AccountStatementNote[]>([]) const selections = ref<AccountStatementNote[]>([])
const detailList = ref<AccountStatementNote[]>([]) const detailList = ref<AccountStatementNote[]>([])
const tabsValue = ref<string>('0') const tabsValue = ref<string>('0')
const singleTableRef = ref<any>(null) const singleTableRef = ref<InstanceType<typeof ElTable>>()
const currentRow = ref<AccountStatementNote | null>(null) const currentRow = ref<AccountStatementNote | null>(null)
const logList = ref<any[]>([]) const logList = ref<Log[]>([])
const nodeId = ref<number | string>('-1') const nodeId = ref<number | string>('-1')
...@@ -436,6 +447,7 @@ const treeRef = ref<InstanceType<typeof ElTree>>() ...@@ -436,6 +447,7 @@ const treeRef = ref<InstanceType<typeof ElTree>>()
const editForm = ref<AccountStatementNote>({ const editForm = ref<AccountStatementNote>({
billNumber: '', billNumber: '',
lanshouAddress: '', lanshouAddress: '',
shipmentId: '',
totalPrice: '', totalPrice: '',
shipmentNum: '', shipmentNum: '',
passNum: '', passNum: '',
...@@ -455,7 +467,7 @@ const { ...@@ -455,7 +467,7 @@ const {
onPageSizeChange: handleSizeChange, onPageSizeChange: handleSizeChange,
} = usePageList({ } = usePageList({
statistics: true, statistics: true,
query: (page, pageSize) => customJomallReconciliation( query: (page, pageSize) => (customJomallReconciliation(
{ {
...searchForm.value, ...searchForm.value,
status: nodeId.value === '-1' ? null : nodeId.value, status: nodeId.value === '-1' ? null : nodeId.value,
...@@ -464,20 +476,19 @@ const { ...@@ -464,20 +476,19 @@ const {
}, },
page, page,
pageSize, pageSize,
).then((res) => res.data), ).then((res) => res.data) as never),
}) })
onMounted(() => { onMounted(() => {
(treeRef as any).value.setCurrentKey(nodeId.value, true) treeRef.value!.setCurrentKey(nodeId.value, true)
}) })
const dialogVisible = ref<boolean>(false) const dialogVisible = ref<boolean>(false)
const getTreeNum = async () => { const getTreeNum = async () => {
let res = await getReconciliationAmount() const res = await getReconciliationAmount()
let data:any = res.data
treeData.value = [{ treeData.value = [{
label: '全部', label: '全部',
id: '-1', id: '-1',
...@@ -502,22 +513,20 @@ const getTreeNum = async () => { ...@@ -502,22 +513,20 @@ const getTreeNum = async () => {
}, },
], ],
}] }]
nextTick(() => { await nextTick(() => {
(treeRef as any).value.setCurrentKey(nodeId.value, true) treeRef.value!.setCurrentKey(nodeId.value, true)
}) })
treeData.value.forEach((el) => { treeData.value.forEach((el) => {
if(!el.children){ if (!el.children) {
el.children = [] el.children = []
} }
el.children.forEach((it) => { el.children.forEach((it) => {
it.count = 0 it.count = 0
}) })
})
treeData.value.forEach((el) => {
el.children.forEach((it) => { el.children.forEach((it) => {
data.forEach((item:any) => { res.data.forEach((item: CountStatus) => {
if (it.id === item.status) { if (it.id === item.status) {
it['count'] = item.count it['count'] = item.count
} }
...@@ -527,9 +536,9 @@ const getTreeNum = async () => { ...@@ -527,9 +536,9 @@ const getTreeNum = async () => {
} }
}) })
}) })
treeData.value[0].label = '' treeData.value[0].label = ''
treeData.value[0].label = '全部' + (data.find((el:any) => el.totalSum) ? `(${data.find((el:any) => el.totalSum).totalSum})` : '(0)') treeData.value[0].label = '全部' + (res.data.find((el: CountStatus) => el.totalSum) ? `(${res.data.find((el: CountStatus) => el.totalSum)!.totalSum})` : '(0)')
console.log(treeData.value)
} }
const onEditOrder = async (item: AccountStatementNote) => { const onEditOrder = async (item: AccountStatementNote) => {
try { try {
...@@ -562,7 +571,7 @@ const submitData = async () => { ...@@ -562,7 +571,7 @@ const submitData = async () => {
showError(e) showError(e)
} }
} }
const rowClick = (row:any) => { const rowClick = (row: AccountStatementNote) => {
currentRow.value = row currentRow.value = row
tabsValue.value = '0' tabsValue.value = '0'
tabsClick(tabsValue.value) tabsClick(tabsValue.value)
...@@ -571,35 +580,35 @@ const rowClick = (row:any) => { ...@@ -571,35 +580,35 @@ const rowClick = (row:any) => {
const tabsClick = async (name: string) => { const tabsClick = async (name: string) => {
if (!currentRow.value) return if (!currentRow.value) return
if (name === '0') { if (name === '0') {
let { data } = await getShipmentDetailsById((currentRow.value as any).shipmentId) const { data } = await getShipmentDetailsById(currentRow.value!.shipmentId)
detailList.value = data detailList.value = data
} else if (name === '1') { } else if (name === '1') {
await logOrder(currentRow.value) await logOrder(currentRow.value)
} }
} }
const handleSelectionChange = (v:any) => { const handleSelectionChange = (v: AccountStatementNote[]) => {
selections.value = v selections.value = v
} }
const getSummaries = (data:any) => { const getSummaries = (data: SummaryMethodProps) => {
let columns = data.columns const columns = data.columns
let sums:any[] = [] const sums: string[] = []
columns.forEach((column:any, index:number) => { columns.forEach((column, index) => {
console.log(column) console.log(column)
if (index === 0) { if (index === 0) {
sums[index] = '统计' sums[index] = '统计'
} }
if (index === 4) { if (index === 4) {
sums[index] = totalData['sumNotPassNum'] sums[index] = String(totalData.value['sumNotPassNum'])
} }
if (index === 5) { if (index === 5) {
sums[index] = totalData['sumShipmentNum'] sums[index] = String(totalData.value['sumShipmentNum'])
} }
if (index === 6) { if (index === 6) {
sums[index] = totalData['sumPassNum'] sums[index] = String(totalData.value['sumPassNum'])
} }
if (index === 7) { if (index === 7) {
sums[index] = totalData['sumTotalPrice'] sums[index] = String(totalData.value['sumTotalPrice'])
} }
}) })
return sums return sums
...@@ -625,7 +634,7 @@ watch(() => tableData.value, () => { ...@@ -625,7 +634,7 @@ watch(() => tableData.value, () => {
if (tableData.value && tableData.value.length > 0) { if (tableData.value && tableData.value.length > 0) {
if (singleTableRef.value) { if (singleTableRef.value) {
singleTableRef.value!.setCurrentRow(tableData.value[0]) singleTableRef.value!.setCurrentRow(tableData.value[0])
currentRow.value = tableData.value[0] currentRow.value = (tableData.value as never)[0]
} }
} else { } else {
detailList.value = [] detailList.value = []
......
<template> <template>
<div class="card flex-column h-100 overflow-hidden"> <div class="card flex-column h-100 overflow-hidden">
<div class="header-filter"> <split-div size="10">
<div class="header-filter-form"> <template #top>
<ElForm :model="searchForm" size="default" inline> <div class="header-filter">
<ElFormItem label="SKU"> <div class="header-filter-form">
<ElInput <ElForm :model="searchForm" size="default" inline>
v-model="searchForm.mainSku" <ElFormItem label="SKU">
placeholder=" SKU" <ElInput
clearable v-model="searchForm.mainSku"
style="width: 160px" placeholder=" SKU"
@blur="searchForm.mainSku = searchForm.mainSku.trim()" clearable
></ElInput> style="width: 130px"
</ElFormItem> @blur="searchForm.mainSku = searchForm.mainSku.trim()"
<ElFormItem label="成品ID"> ></ElInput>
<ElInput </ElFormItem>
v-model="searchForm.endProductId" <ElFormItem label="成品ID">
placeholder="请输入成品ID" <ElInput
clearable v-model="searchForm.endProductId"
style="width: 160px" placeholder="请输入成品ID"
@blur="searchForm.endProductId = searchForm.endProductId.trim()" clearable
></ElInput> style="width: 130px"
</ElFormItem> @blur="searchForm.endProductId = searchForm.endProductId.trim()"
<ElFormItem label="生产单号"> ></ElInput>
<ElInput </ElFormItem>
v-model="searchForm.subOrderNumber" <ElFormItem label="生产单号">
placeholder="生产单号" <ElInput
clearable v-model="searchForm.subOrderNumber"
style="width: 160px" placeholder="生产单号"
@blur=" clearable
style="width: 130px"
@blur="
searchForm.subOrderNumber = searchForm.subOrderNumber.trim() searchForm.subOrderNumber = searchForm.subOrderNumber.trim()
" "
></ElInput> ></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem label="订单号"> <ElFormItem label="订单号">
<ElInput <ElInput
v-model="searchForm.orderNumber" v-model="searchForm.orderNumber"
placeholder="订单号" placeholder="订单号"
clearable clearable
style="width: 160px" style="width: 130px"
@blur="searchForm.orderNumber = searchForm.orderNumber.trim()" @blur="searchForm.orderNumber = searchForm.orderNumber.trim()"
></ElInput> ></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem label="店铺单号"> <ElFormItem label="店铺单号">
<ElInput <ElInput
v-model="searchForm.shopNumber" v-model="searchForm.shopNumber"
placeholder="店铺单号" placeholder="店铺单号"
clearable clearable
style="width: 160px" style="width: 130px"
@blur="searchForm.shopNumber = searchForm.shopNumber.trim()" @blur="searchForm.shopNumber = searchForm.shopNumber.trim()"
></ElInput> ></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem label="内部标签"> <ElFormItem label="内部标签">
<ElInput <ElInput
v-model="searchForm.internalMemo" v-model="searchForm.internalMemo"
placeholder="内部标签" placeholder="内部标签"
clearable clearable
style="width: 160px" style="width: 130px"
@blur="searchForm.internalMemo = searchForm.internalMemo.trim()" @blur="searchForm.internalMemo = searchForm.internalMemo.trim()"
></ElInput> ></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem v-if="statusCode === 6" label="物流跟踪号"> <ElFormItem v-if="statusCode === 6" label="物流跟踪号">
<ElInput <ElInput
v-model="searchForm.logisticsTracking" v-model="searchForm.logisticsTracking"
placeholder="物流跟踪号" placeholder="物流跟踪号"
clearable clearable
style="width: 160px" style="width: 130px"
@blur=" @blur="
searchForm.logisticsTracking = searchForm.logisticsTracking =
searchForm.logisticsTracking.trim() searchForm.logisticsTracking.trim()
" "
></ElInput> ></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem v-if="statusCode === 6" label="发货单号"> <ElFormItem v-if="statusCode === 6" label="发货单号">
<ElInput <ElInput
v-model="searchForm.billNumber" v-model="searchForm.billNumber"
placeholder="发货单号" placeholder="发货单号"
clearable clearable
style="width: 160px" style="width: 130px"
@blur="searchForm.billNumber = searchForm.billNumber.trim()" @blur="searchForm.billNumber = searchForm.billNumber.trim()"
></ElInput> ></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem v-if="statusCode === 6" label="收货人"> <ElFormItem v-if="statusCode === 6" label="收货人">
<ElInput <ElInput
v-model="searchForm.lanshouName" v-model="searchForm.lanshouName"
placeholder="收货人" placeholder="收货人"
clearable clearable
style="width: 160px" style="width: 130px"
></ElInput> ></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem> <ElFormItem>
<ElButton type="primary" @click="search">查询</ElButton> <ElButton type="primary" @click="search">查询</ElButton>
</ElFormItem> </ElFormItem>
<ElFormItem> <ElFormItem>
<ElButton @click="resetSearchForm">重置</ElButton> <ElButton @click="resetSearchForm">重置</ElButton>
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>
</div> </div>
<div class="header-filter-tab"> <div class="header-filter-tab">
<div class="tabs"> <div class="tabs">
<div <div
v-for="item in tabsNav" v-for="item in tabsNav"
:key="item.statusCode" :key="item.statusCode"
class="tabs-node" class="tabs-node"
:class="item.statusCode === statusCode ? 'tabs-node_active' : ''" :class="item.statusCode === statusCode ? 'tabs-node_active' : ''"
@click="changeTab(item)" @click="changeTab(item)"
> >
<span class="tabs-node_label">{{ item.statusName }}</span> <span class="tabs-node_label">{{ item.statusName }}</span>
<span class="tabs-node_count">{{ `(${item.quantity})` }}</span> <span class="tabs-node_count">{{ `(${item.quantity})` }}</span>
</div>
</div>
</div> </div>
</div> </div>
</div> </template>
</div> <template #bottom>
<div class="order-content flex-1 flex-column overflow-hidden"> <div class="order-content flex-1 flex-column overflow-hidden">
<!-- 操作按钮 --> <!-- 操作按钮 -->
<div class="order-operate-btn"> <div class="order-operate-btn">
<span v-if="statusCode === 2" class="item"> <span v-if="statusCode === 2" class="item">
<ElButton type="success" @click="confirmProduce">确认生产</ElButton> <ElButton type="success" @click="confirmProduce">确认生产</ElButton>
</span> </span>
<span <span
v-if="statusCode === 2 || statusCode === 3 || statusCode === 4" v-if="statusCode === 2 || statusCode === 3 || statusCode === 4"
class="item" class="item"
> >
<ElButton type="warning" is-dark @click="downloadManuscript" <ElButton type="warning" is-dark @click="downloadManuscript"
>下载稿件</ElButton >下载稿件</ElButton
> >
</span> </span>
<span <span
v-if="statusCode === 2 || statusCode === 3 || statusCode === 4" v-if="statusCode === 2 || statusCode === 3 || statusCode === 4"
class="item" class="item"
> >
<ElButton type="success" is-dark @click="reGenerateManuscript" <ElButton type="success" is-dark @click="reGenerateManuscript"
>更新稿件</ElButton >更新稿件</ElButton
> >
</span> </span>
<span v-if="statusCode === 2 || statusCode === 3" class="item"> <span v-if="statusCode === 2 || statusCode === 3" class="item">
<ElButton :loading="btnLoading" type="primary" dark @click="printManuscript" <ElButton :loading="btnLoading" type="primary" dark @click="printManuscript"
>打印生产单</ElButton >打印生产单</ElButton
> >
</span> </span>
<span <span
v-if="statusCode === 2 || statusCode === 3 || statusCode === 7" v-if="statusCode === 2 || statusCode === 3 || statusCode === 7"
class="item" class="item"
> >
<ElButton type="success" dark @click="exportManuscript" <ElButton type="success" dark @click="exportManuscript"
>导出生产单</ElButton >导出生产单</ElButton
> >
</span> </span>
<span class="item"> <span class="item">
<ElButton type="warning" @click="addInternalTag" <ElButton type="warning" @click="addInternalTag"
>添加内部标签</ElButton >添加内部标签</ElButton
> >
</span> </span>
<span <span
v-if="statusCode === 2 || statusCode === 3 || statusCode === 4" v-if="statusCode === 2 || statusCode === 3 || statusCode === 4"
class="item" class="item"
> >
<ElButton type="primary" @click="refreshProduct" <ElButton type="primary" @click="refreshProduct"
>刷新商品信息</ElButton >刷新商品信息</ElButton
> >
</span> </span>
<span v-if="statusCode === 3 || statusCode === 4" class="item"> <span v-if="statusCode === 3 || statusCode === 4" class="item">
<ElButton type="success" @click="confirmDelivery">发货</ElButton> <ElButton type="success" @click="confirmDelivery">发货</ElButton>
</span> </span>
<span v-if="statusCode === 6" class="item"> <span v-if="statusCode === 6" class="item">
<ElButton type="success" @click="confirmCheck">质检</ElButton> <ElButton type="success" @click="confirmCheck">质检</ElButton>
</span> </span>
</div> </div>
<div <div
ref="tableWrapperRef" ref="tableWrapperRef"
v-loading="loading" v-loading="loading"
element-loading-text="加载中..." element-loading-text="加载中..."
class="order-list flex-1 overflow-hidden" class="order-list flex-1 overflow-hidden"
> >
<ElTable <ElTable
v-show="statusCode !== 6" v-show="statusCode !== 6"
:data="tableData" :data="tableData"
:span-method="arraySpanMethod" :span-method="arraySpanMethod"
default-expand-all default-expand-all
border border
style="width: 100%; height: 100%" style="width: 100%; height: 100%"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<ElTableColumn type="selection" width="50"></ElTableColumn> <ElTableColumn type="selection" width="50"></ElTableColumn>
<ElTableColumn type="expand" width="1"> <ElTableColumn type="expand" width="1">
<template #default="{ row }"> <template #default="{ row }">
<div v-if="row.productList" class="table-expand"> <div v-if="row.productList" class="table-expand">
<div <div
class="order-list-expand" class="order-list-expand"
:style="{ width: `${thOrderDetailWidth + 50}px` }" :style="{ width: `${thOrderDetailWidth + 50}px` }"
> >
<ProductInfo :row="row" :status="statusCode" /> <ProductInfo :row="row" :status="statusCode" />
<template v-if="row.productList.length > 2"> <template v-if="row.productList.length > 2">
<div class="order-list-expand_more"> <div class="order-list-expand_more">
<span @click="openAll(row)"> <span @click="openAll(row)">
<template v-if="!row.moreable"> <template v-if="!row.moreable">
展开全部<strong style="color: red" 展开全部<strong style="color: red"
>({{ row.productList.length }})</strong >({{ row.productList.length }})</strong
>条商品信息<el-icon style="vertical-align: middle" >条商品信息<el-icon style="vertical-align: middle"
><ArrowDown /></el-icon ><ArrowDown /></el-icon
></template> ></template>
<template v-else> <template v-else>
收起商品信息<el-icon style="vertical-align: middle" 收起商品信息<el-icon style="vertical-align: middle"
><ArrowUp ><ArrowUp
/></el-icon> /></el-icon>
</template> </template>
</span> </span>
</div>
</template>
</div> </div>
</template> <div class="order-actual-payment">
</div> <div class="order-actual-payment_info">
<div class="order-actual-payment"> <div class="order-list-expand_item_info_title">
<div class="order-actual-payment_info"> <span class="order-list-expand_item_label">商品价:</span>
<div class="order-list-expand_item_info_title"> <span class="order-list-expand_item_value">{{
<span class="order-list-expand_item_label">商品价:</span> row.productAmount
<span class="order-list-expand_item_value">{{ }}</span>
row.productAmount </div>
}}</span>
</div>
<div class="order-list-expand_item_info_title"> <div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label">小计:</span> <span class="order-list-expand_item_label">小计:</span>
<span class="order-list-expand_item_value">{{ <span class="order-list-expand_item_value">{{
row.totalAmount || '--' row.totalAmount || '--'
}}</span> }}</span>
</div> </div>
<div <div
v-if="row.totolBuyNumber" v-if="row.totolBuyNumber"
class="order-list-expand_item_info_title" class="order-list-expand_item_info_title"
> >
<span class="order-list-expand_item_value" <span class="order-list-expand_item_value"
>{{ row.totolBuyNumber }}</span >{{ row.totolBuyNumber }}</span
>
</div>
</div>
</div>
<div class="order-memo">
<div class="order-memo-info">
<div
v-for="memo in row.internalMemoList || []"
:key="memo.id"
class="order-memo-item"
>
<div
v-if="memo.operatorEmployeeName"
class="order-memo-item__name"
>
<span>{{ memo.operatorEmployeeName || '' }}</span>
</div>
<div
v-if="memo.operatorTime"
class="order-memo-item__time"
> >
<span>{{ memo.operatorTime || '' }}</span> </div>
</div> </div>
<div v-if="memo.content" class="order-memo-item__content"> </div>
<span>{{ memo.content || '' }}</span> <div class="order-memo">
<div class="order-memo-info">
<div
v-for="memo in row.internalMemoList || []"
:key="memo.id"
class="order-memo-item"
>
<div
v-if="memo.operatorEmployeeName"
class="order-memo-item__name"
>
<span>{{ memo.operatorEmployeeName || '' }}</span>
</div>
<div
v-if="memo.operatorTime"
class="order-memo-item__time"
>
<span>{{ memo.operatorTime || '' }}</span>
</div>
<div v-if="memo.content" class="order-memo-item__content">
<span>{{ memo.content || '' }}</span>
</div>
</div>
</div> </div>
</div> </div>
</div> <div class="order-time">
</div> <div class="order-time_info">
<div class="order-time"> <div class="order-list-expand_item_info_title">
<div class="order-time_info">
<div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label" <span class="order-list-expand_item_label"
>创建时间:</span >创建时间:</span
> >
<span class="order-list-expand_item_value">{{ <span class="order-list-expand_item_value">{{
row.createTime || '--' row.createTime || '--'
}}</span> }}</span>
</div> </div>
<div class="order-list-expand_item_info_title"> <div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label" <span class="order-list-expand_item_label"
>确认时间:</span >确认时间:</span
> >
<span class="order-list-expand_item_value">{{ <span class="order-list-expand_item_value">{{
row.startStockingTime || '--' row.startStockingTime || '--'
}}</span> }}</span>
</div> </div>
<div class="order-list-expand_item_info_title"> <div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label" <span class="order-list-expand_item_label"
>完成时间:</span >完成时间:</span
> >
<span class="order-list-expand_item_value">{{ <span class="order-list-expand_item_value">{{
row.finishTime || '--' row.finishTime || '--'
}}</span> }}</span>
</div>
</div>
</div>
<div class="order-operate">
<div class="order-operate_info">
<div class="order-list-expand_item_info_title">
<ElButton text type="primary" @click="openDetail(row.id)"
>查看详情
</ElButton>
</div>
<div
v-if="statusCode !== 2 && statusCode !== 3"
class="order-list-expand_item_info_title"
>
<ElButton
text
type="primary"
@click="openShipment(row.id)"
>查看发货单
</ElButton>
</div>
<div class="order-list-expand_item_info_title">
<ElButton text type="primary" @click="openLog(row.id)"
>操作日志
</ElButton>
</div>
<div
v-if="statusCode === 1 || statusCode === 3"
class="order-list-expand_item_info_title"
>
<ElButton text type="danger" @click="cancelOrder(row.id)"
>取消
</ElButton>
</div>
</div>
</div> </div>
</div> </div>
</div> </template>
<div class="order-operate"> </ElTableColumn>
<div class="order-operate_info"> <ElTableColumn
<div class="order-list-expand_item_info_title"> label="订单详情"
<ElButton text type="primary" @click="openDetail(row.id)" header-align="center"
>查看详情 show-overflow-tooltip
</ElButton> class-name="th-order-detail"
min-width="800"
>
<template #default="scope">
<div class="order-detail">
<div :title="scope.row.orderNumber" class="order-detail_item">
<span class="label">订单号:</span>
<span class="value">{{ scope.row.orderNumber }}</span>
</div> </div>
<div <div
v-if="statusCode !== 2 && statusCode !== 3" :title="scope.row.erpOrderNumber"
class="order-list-expand_item_info_title" class="order-detail_item"
> >
<ElButton <span class="label">第三方订单号:</span>
text <span class="value" :title="scope.row.erpOrderNumber">{{
type="primary" scope.row.erpOrderNumber || '--'
@click="openShipment(row.id)" }}</span>
>查看发货单
</ElButton>
</div> </div>
<div
<div class="order-list-expand_item_info_title"> :title="scope.row.manuscriptStatusStr"
<ElButton text type="primary" @click="openLog(row.id)" class="order-detail_item"
>操作日志 >
</ElButton> <span class="label">稿件下载状态:</span>
<span class="value" :title="scope.row.manuscriptStatusStr">{{
scope.row.manuscriptStatusStr || '--'
}}</span>
</div> </div>
<div <div
v-if="statusCode === 1 || statusCode === 3" :title="scope.row.productionFileStatus"
class="order-list-expand_item_info_title" class="order-detail_item"
> >
<ElButton text type="danger" @click="cancelOrder(row.id)" <span class="label">稿件生成状态:</span>
>取消 <span class="value" :title="scope.row.productionFileStatus">{{
</ElButton> scope.row.productionFileStatus || '--'
}}</span>
</div>
<div :title="scope.row.lanshouName" class="order-detail_item">
<span class="label">收货人:</span>
<span class="value">{{ scope.row.lanshouName }}</span>
</div>
<div :title="scope.row.lanshouPhone" class="order-detail_item">
<span class="label">电话:</span>
<span class="value">{{ scope.row.lanshouPhone }}</span>
</div>
<div
:title="scope.row.lanshouAddress"
class="order-detail_item"
>
<span class="label">收货地址:</span>
<span class="value" :title="scope.row.lanshouAddress">{{
scope.row.lanshouAddress
}}</span>
</div>
<div :title="scope.row.lanshouPost" class="order-detail_item">
<span class="label">邮编:</span>
<span class="value">{{ scope.row.lanshouPost }}</span>
</div> </div>
</div> </div>
</div> </template>
</div> </ElTableColumn>
</template> <ElTableColumn
</ElTableColumn> label="实付款"
<ElTableColumn show-overflow-tooltip
label="订单详情" width="280"
header-align="center" header-align="center"
show-overflow-tooltip ></ElTableColumn>
class-name="th-order-detail" <ElTableColumn
min-width="800" label="内部标签"
> show-overflow-tooltip
<template #default="scope"> width="280"
<div class="order-detail"> header-align="center"
<div :title="scope.row.orderNumber" class="order-detail_item"> ></ElTableColumn>
<span class="label">订单号:</span> <ElTableColumn
<span class="value">{{ scope.row.orderNumber }}</span> label="时间"
</div> show-overflow-tooltip
<div width="280"
:title="scope.row.erpOrderNumber" header-align="center"
class="order-detail_item" ></ElTableColumn>
> <ElTableColumn label="操作" width="100" header-align="center">
<span class="label">第三方订单号:</span> </ElTableColumn>
<span class="value" :title="scope.row.erpOrderNumber">{{ </ElTable>
scope.row.erpOrderNumber || '--' <ElTable
}}</span> v-show="statusCode === 6"
</div> :data="tableData"
<div :span-method="arraySpanMethod"
:title="scope.row.manuscriptStatusStr" default-expand-all
class="order-detail_item" border
> style="width: 100%; height: 100%"
<span class="label">稿件下载状态:</span> @selection-change="handleSelectionChange"
<span class="value" :title="scope.row.manuscriptStatusStr">{{ >
scope.row.manuscriptStatusStr || '--' <ElTableColumn type="selection" width="50"></ElTableColumn>
}}</span> <ElTableColumn
</div> label="发货单号"
<div width="280"
:title="scope.row.productionFileStatus" show-overflow-tooltip
class="order-detail_item" prop="billNumber"
> header-align="center"
<span class="label">稿件生成状态:</span> ></ElTableColumn>
<span class="value" :title="scope.row.productionFileStatus">{{ <ElTableColumn label="发货单信息" header-align="center">
scope.row.productionFileStatus || '--' <template #default="{ row }">
}}</span> <div
</div> v-if="row.detailList"
<div :title="scope.row.lanshouName" class="order-detail_item"> class="table-expand"
<span class="label">收货人:</span> style="margin-right: -14px"
<span class="value">{{ scope.row.lanshouName }}</span> >
</div> <div
<div :title="scope.row.lanshouPhone" class="order-detail_item"> style="flex: 1; flex-shrink: 0; overflow: hidden"
<span class="label">电话:</span> class="order-list-expand"
<span class="value">{{ scope.row.lanshouPhone }}</span> >
</div> <ProductInfoInspected :row="row" :status="statusCode" />
<div <template v-if="row.detailList.length > 2">
:title="scope.row.lanshouAddress" <div class="order-list-expand_more">
class="order-detail_item"
>
<span class="label">收货地址:</span>
<span class="value" :title="scope.row.lanshouAddress">{{
scope.row.lanshouAddress
}}</span>
</div>
<div :title="scope.row.lanshouPost" class="order-detail_item">
<span class="label">邮编:</span>
<span class="value">{{ scope.row.lanshouPost }}</span>
</div>
</div>
</template>
</ElTableColumn>
<ElTableColumn
label="实付款"
show-overflow-tooltip
width="280"
header-align="center"
></ElTableColumn>
<ElTableColumn
label="内部标签"
show-overflow-tooltip
width="280"
header-align="center"
></ElTableColumn>
<ElTableColumn
label="时间"
show-overflow-tooltip
width="280"
header-align="center"
></ElTableColumn>
<ElTableColumn label="操作" width="100" header-align="center">
</ElTableColumn>
</ElTable>
<ElTable
v-show="statusCode === 6"
:data="tableData"
:span-method="arraySpanMethod"
default-expand-all
border
style="width: 100%; height: 100%"
@selection-change="handleSelectionChange"
>
<ElTableColumn type="selection" width="50"></ElTableColumn>
<ElTableColumn
label="发货单号"
width="280"
show-overflow-tooltip
prop="billNumber"
header-align="center"
></ElTableColumn>
<ElTableColumn label="发货单信息" header-align="center">
<template #default="{ row }">
<div
v-if="row.detailList"
class="table-expand"
style="margin-right: -14px"
>
<div
style="flex: 1; flex-shrink: 0; overflow: hidden"
class="order-list-expand"
>
<ProductInfoInspected :row="row" :status="statusCode" />
<template v-if="row.detailList.length > 2">
<div class="order-list-expand_more">
<span @click="openAll(row)"> <span @click="openAll(row)">
<template v-if="!row.moreable"> <template v-if="!row.moreable">
展开全部<strong style="color: red" 展开全部<strong style="color: red"
>({{ row.detailList.length }})</strong >({{ row.detailList.length }})</strong
>条商品信息<el-icon style="vertical-align: middle" >条商品信息<el-icon style="vertical-align: middle"
><ArrowDown /></el-icon ><ArrowDown /></el-icon
></template> ></template>
<template v-else> <template v-else>
收起商品信息<el-icon style="vertical-align: middle" 收起商品信息<el-icon style="vertical-align: middle"
><ArrowUp ><ArrowUp
/></el-icon> /></el-icon>
</template> </template>
</span> </span>
</div>
</template>
</div> </div>
</template> <div class="order-actual-payment">
</div> <div class="order-actual-payment_info">
<div class="order-actual-payment"> <div class="order-list-expand_item_info_title">
<div class="order-actual-payment_info"> <span class="order-list-expand_item_label">订单号:</span>
<div class="order-list-expand_item_info_title"> <span class="order-list-expand_item_value">{{
<span class="order-list-expand_item_label">订单号:</span> row.orderNumber
<span class="order-list-expand_item_value">{{ }}</span>
row.orderNumber <el-icon class="icon" @click="copy(row.orderNumber || '')"
}}</span> ><DocumentCopy
<el-icon class="icon" @click="copy(row.orderNumber || '')" /></el-icon>
><DocumentCopy </div>
/></el-icon>
</div>
<!-- <div class="order-list-expand_item_info_title">--> <!-- <div class="order-list-expand_item_info_title">-->
<!-- <span class="order-list-expand_item_label">工厂订单号:</span>--> <!-- <span class="order-list-expand_item_label">工厂订单号:</span>-->
<!-- <span class="order-list-expand_item_value">{{--> <!-- <span class="order-list-expand_item_value">{{-->
<!-- row.factoryOrderNumber || '&#45;&#45;'--> <!-- row.factoryOrderNumber || '&#45;&#45;'-->
<!-- }}</span>--> <!-- }}</span>-->
<!-- <el-icon class="icon" @click="copy(row.factoryOrderNumber || '')"--> <!-- <el-icon class="icon" @click="copy(row.factoryOrderNumber || '')"-->
<!-- ><DocumentCopy--> <!-- ><DocumentCopy-->
<!-- /></el-icon>--> <!-- /></el-icon>-->
<!-- </div>--> <!-- </div>-->
<div class="order-list-expand_item_info_title"> <div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label" <span class="order-list-expand_item_label"
>发货方式:</span >发货方式:</span
> >
<span class="order-list-expand_item_value">{{ <span class="order-list-expand_item_value">{{
row.shippingWay === 1 ? '送货上门' : '快递' row.shippingWay === 1 ? '送货上门' : '快递'
}}</span> }}</span>
</div> </div>
<div <div
v-if="row.shippingWay !== 1" v-if="row.shippingWay !== 1"
class="order-list-expand_item_info_title" class="order-list-expand_item_info_title"
> >
<span class="order-list-expand_item_label" <span class="order-list-expand_item_label"
>物流名称:</span >物流名称:</span
> >
<span class="order-list-expand_item_value">{{ <span class="order-list-expand_item_value">{{
row.carriageName row.carriageName
}}</span> }}</span>
</div> </div>
<div <div
v-if="row.shippingWay === 2" v-if="row.shippingWay === 2"
class="order-list-expand_item_info_title" class="order-list-expand_item_info_title"
> >
<span class="order-list-expand_item_label" <span class="order-list-expand_item_label"
>物流跟踪号:</span >物流跟踪号:</span
> >
<span <span
style="color: red" style="color: red"
class="order-list-expand_item_value" class="order-list-expand_item_value"
>{{ row.logisticsTracking }}</span >{{ row.logisticsTracking }}</span
> >
</div> </div>
<div class="order-list-expand_item_info_title"> <div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label" <span class="order-list-expand_item_label"
>发货时间:</span >发货时间:</span
> >
<span <span
style="color: red" style="color: red"
class="order-list-expand_item_value" class="order-list-expand_item_value"
>{{ row.createTime || '--' }}</span >{{ row.createTime || '--' }}</span
> >
</div> </div>
<div class="order-list-expand_item_info_title"> <div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label" <span class="order-list-expand_item_label"
>确认时间:</span >确认时间:</span
>
<span
style="color: red"
class="order-list-expand_item_value"
>{{
row.order ? row.order.startStockingTime : ''
}}</span
> >
</div> <span
style="color: red"
class="order-list-expand_item_value"
>{{
row.order ? row.order.startStockingTime : ''
}}</span
>
</div>
<div class="order-list-expand_item_info_title"> <div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label">收货人:</span> <span class="order-list-expand_item_label">收货人:</span>
<span <span
style="color: red" style="color: red"
class="order-list-expand_item_value" class="order-list-expand_item_value"
>{{ row.lanshouName || '--' }}</span >{{ row.lanshouName || '--' }}</span
> >
</div> </div>
<div class="order-list-expand_item_info_title"> <div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label" <span class="order-list-expand_item_label"
>收货人电话:</span >收货人电话:</span
> >
<span class="order-list-expand_item_value">{{ <span class="order-list-expand_item_value">{{
row.lanshouPhone || '--' row.lanshouPhone || '--'
}}</span> }}</span>
</div> </div>
<div class="order-list-expand_item_info_title"> <div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label">邮编:</span> <span class="order-list-expand_item_label">邮编:</span>
<span class="order-list-expand_item_value">{{ <span class="order-list-expand_item_value">{{
row.lanshouPost || '--' row.lanshouPost || '--'
}}</span> }}</span>
</div> </div>
<div class="order-list-expand_item_info_title"> <div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label" <span class="order-list-expand_item_label"
>收货地址:</span >收货地址:</span
> >
<span class="order-list-expand_item_value">{{ <span class="order-list-expand_item_value">{{
row.lanshouRegion + row.lanshouAddress row.lanshouRegion + row.lanshouAddress
}}</span> }}</span>
</div>
</div>
</div> </div>
</div> <div class="order-operate">
</div> <div class="order-operate_info">
<div class="order-operate"> <div class="order-list-expand_item_info_title">
<div class="order-operate_info"> <ElButton
<div class="order-list-expand_item_info_title"> text
<ElButton type="primary"
text @click="openLog(row.orderId)"
type="primary" >操作日志
@click="openLog(row.orderId)" </ElButton>
>操作日志 </div>
</ElButton> </div>
</div> </div>
</div> </div>
</div> </template>
</div> </ElTableColumn>
</template> <ElTableColumn
</ElTableColumn> show-overflow-tooltip
<ElTableColumn label="发货单详情"
show-overflow-tooltip width="280"
label="发货单详情" header-align="center"
width="280" >
header-align="center" </ElTableColumn>
> <ElTableColumn label="操作" width="100" header-align="center">
</ElTableColumn> </ElTableColumn>
<ElTableColumn label="操作" width="100" header-align="center"> </ElTable>
</ElTableColumn> </div>
</ElTable> <el-pagination
</div> v-model:current-page="currentPage"
<el-pagination v-model:page-size="pageSize"
v-model:current-page="currentPage" :page-sizes="[100, 200, 300, 400]"
v-model:page-size="pageSize" background
:page-sizes="[100, 200, 300, 400]" layout="total, sizes, prev, pager, next, jumper"
background :total="total"
layout="total, sizes, prev, pager, next, jumper" style="margin: 10px auto 10px; text-align: right"
:total="total" @size-change="handleSizeChange"
style="margin: 10px auto 0; text-align: right" @current-change="handleCurrentChange"
@size-change="handleSizeChange" />
@current-change="handleCurrentChange" </div>
/> </template>
</div> </split-div>
</div> </div>
<el-dialog <el-dialog
v-model="shipmentVisible" v-model="shipmentVisible"
...@@ -721,7 +727,7 @@ ...@@ -721,7 +727,7 @@
<el-dialog <el-dialog
v-model="quarantineVisible" v-model="quarantineVisible"
title="质检" title="质检"
width="1600px" width="80%"
:close-on-click-modal="false" :close-on-click-modal="false"
@opened="onQaDialogOpened" @opened="onQaDialogOpened"
@close="onClose" @close="onClose"
...@@ -763,6 +769,7 @@ ...@@ -763,6 +769,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import Shipment from './Shipment.vue' import Shipment from './Shipment.vue'
import SplitDiv from '@/components/splitDiv/splitDiv.vue'
import type { import type {
SearchForm, SearchForm,
SpanMethodProps, SpanMethodProps,
...@@ -1243,6 +1250,7 @@ const onChangeCurrentRow = (item: ProductList) => { ...@@ -1243,6 +1250,7 @@ const onChangeCurrentRow = (item: ProductList) => {
.order-content { .order-content {
margin-top: 10px; margin-top: 10px;
height: 100%;
} }
.order-list { .order-list {
......
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