Commit 4765943b by zhuzhequan

pod修改

parent bd91fcbb
......@@ -187,6 +187,7 @@
@click="cardClick(cardItem)"
>
<CardWrapper
@contextmenu.prevent="(v)=>rightClick(v,cardItem)"
:card-item="cardItem"
:class="{ active: isSelectStatused(cardItem) }"
>
......@@ -403,10 +404,12 @@
class="order-list flex-1 overflow-hidden"
>
<TableView
ref="tableRef"
:paginated-data="tableData"
:columns="tableColumns"
default-expand-all
:span-method="arraySpanMethod"
@right-click="rightClick"
@selection-change="handleSelectionChange"
>
<template #expand="{ row }">
......@@ -723,6 +726,15 @@
>
<LogList :log-list="logList" />
</el-dialog>
<el-dialog
v-model="countVisible"
title="数据统计"
width="400px"
:close-on-click-modal="false"
>
<p>基版 <b>{{cardItem?.baseSku}}</b> 的统计数量为:<b> {{count}}</b></p>
</el-dialog>
<right-menu :show_copy_shop_number="['IN_PRODUCTION','WAIT_SHIPMENT'].includes(status)" ref="rightMenuRef" @change="rightChange" />
<fastProduction
v-model:detailVisible="detailVisible"
:title="fastTitle"
......@@ -735,6 +747,7 @@
</template>
<script setup lang="tsx">
// refreshJMProductInfo,reasonInvalidationApi,
import RightMenu from './rightMenu.vue'
import {
getOrderTabData,
getOrderList,
......@@ -748,6 +761,8 @@ import {
updateRemarkApi,
getCardOrderList,
getOrderDetail,
getInProductionCount,
getWaitShipmentCount
} from '@/api/podOrder'
import TableView from '@/components/TableView.vue'
import {
......@@ -761,7 +776,7 @@ import CardWrapper from '@/components/CardPods.vue'
import { CustomColumn } from '@/types/table'
import usePageList from '@/utils/hooks/usePageList'
import { useValue } from '@/utils/hooks/useValue'
import { computed, onMounted, reactive, ref } from 'vue'
import { computed, onBeforeUnmount, onMounted, reactive, ref } from 'vue'
import dayjs from 'dayjs'
import useElTableColumnWidth from '@/utils/hooks/useElTableColumnWidth'
import ProductInfo from '../ProductInfo.vue'
......@@ -777,11 +792,61 @@ import {
imageAryInter,
CardOrderData,
} from '@/types/api/podOrder'
import {ArrowUp,ArrowDown} from '@element-plus/icons-vue'
import { getLogisticsCompanyList } from '@/api/common'
import { ElButton, type FormRules } from 'element-plus'
import { showConfirm } from '@/utils/ui'
import { filePath } from '@/api/axios'
import LogList from '@/components/LogList.vue'
const tableRef = ref();
const countVisible = ref(false)
const keyCode = ref('');
const cardItem = ref<PodProductList | CardOrderData>();
const rightMenuRef = ref()
const count = ref<number>(0)
const rightClick = (e:MouseEvent,item:PodProductList | CardOrderData) => {
cardItem.value = item
rightMenuRef.value.setPosition({
x: e.clientX,
y: e.clientY,
cardItem: e.clientY,
el: e
})
}
const rightChange =async (code:string) => {
const flag = ['IN_PRODUCTION','WAIT_SHIPMENT'].includes(status.value)
if (code === 'check_all') {
if(flag){
selection.value = JSON.parse(JSON.stringify(CardOrderList.value))
} else{
if( tableRef.value && tableRef.value?.tableRef){
tableRef.value?.tableRef.toggleAllSelection()
}
// selection.value = JSON.parse(JSON.stringify(tableData.value))
}
} else if (code === 'clear_check') {
selection.value = []
tableRef.value?.tableRef.toggleAllSelection()
} else if (code === 'copy_code') {
const str = selection.value.map(item=>item.factorySubOrderNumber || item.factoryOrderNumber).join()
navigator.clipboard.writeText(str)
ElMessage.success('复制成功')
} else if (code === 'copy_shopNumber') {
const str = selection.value.map(item=>item.shopNumber).join()
navigator.clipboard.writeText(str)
ElMessage.success('复制成功')
} else if (code === 'count') {
countVisible.value = true
let res
if(status.value==='WAIT_SHIPMENT'){
res = await getWaitShipmentCount(cardItem.value?.productionFileId,cardItem.value?.baseSku)
}else if(status.value==='IN_PRODUCTION'){
res = await getInProductionCount(cardItem.value?.productionFileId,cardItem.value?.baseSku)
}
count.value = (res?.data || 0) as number
}
}
// 日期工具函数
const getDateRange = (days = 0, type: 'past' | 'future' = 'past') => {
const end = dayjs()
......@@ -974,6 +1039,17 @@ const fastToProduction = (title: string, type: number) => {
}
const cardClick = (data: PodProductList | CardOrderData) => {
const status = isSelectStatused(data)
if(keyCode.value==='Shift'){
if(selection.value.length){
const startIndex=CardOrderList.value.findIndex(el=>el.id===selection.value[0].id)
const endIndex = CardOrderList.value.findIndex(el=>el.id===data.id)
selection.value =[]
for(let k =startIndex;k<=endIndex;k++ ){
selection.value.push(JSON.parse(JSON.stringify(CardOrderList.value[k])))
}
}
}
if (status) {
selection.value = selection.value.filter(
(item: CardOrderData | PodProductList) => item.id !== data.id,
......@@ -1474,7 +1550,15 @@ const getSafeImages = (item: PodProductList | CardOrderData): cardImages[] => {
if (!item.images) return []
return item.images as cardImages[]
}
const listenerKeydown= (e:KeyboardEvent) => {
console.log(e)
keyCode.value = e?.key
}
onBeforeUnmount(()=>{
document.removeEventListener('keydown', listenerKeydown)
})
onMounted(() => {
document.addEventListener('keydown', listenerKeydown)
getLogisticsList()
loadTabData()
})
......
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