Commit efceba52 by zhuzhequan

Merge remote-tracking branch 'origin/dev' into dev

parents 3bad2f17 27c8409e
...@@ -22,6 +22,7 @@ export interface SearchForm { ...@@ -22,6 +22,7 @@ export interface SearchForm {
productionClient: string productionClient: string
warehouseId: string | number warehouseId: string | number
thirdSkuCode: string thirdSkuCode: string
supplierProductNo:string
} }
export interface PodUsOrderListData { export interface PodUsOrderListData {
id: number id: number
...@@ -107,6 +108,7 @@ export interface ProductList { ...@@ -107,6 +108,7 @@ export interface ProductList {
isReplenishment?: boolean isReplenishment?: boolean
thirdSkuCode?: string | null thirdSkuCode?: string | null
supplierProductNo?: string | null supplierProductNo?: string | null
replenishmentSumNum?: number | null
} }
export interface cardImages { export interface cardImages {
title: string title: string
......
...@@ -41,6 +41,14 @@ ...@@ -41,6 +41,14 @@
<ElOption label="多面" value="multiple" /> <ElOption label="多面" value="multiple" />
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label="供应货号">
<ElInput
v-model="searchForm.supplierProductNo"
placeholder="生产单号"
clearable
style="width: 150px"
/>
</ElFormItem>
<ElFormItem label="生产单号"> <ElFormItem label="生产单号">
<ElInput <ElInput
v-model="searchForm.factorySubOrderNumber" v-model="searchForm.factorySubOrderNumber"
...@@ -223,7 +231,7 @@ ...@@ -223,7 +231,7 @@
blue: item.quantity && item.quantity > 0, blue: item.quantity && item.quantity > 0,
red: item.status === 'EXCEPTION_ORDER', red: item.status === 'EXCEPTION_ORDER',
}" }"
>{{ item.quantity }}</span >{{ item.quantity }}</span
> >
</div> </div>
<!-- <div <!-- <div
...@@ -399,19 +407,19 @@ ...@@ -399,19 +407,19 @@
<template #dropdown> <template #dropdown>
<ElDropdownMenu> <ElDropdownMenu>
<ElDropdownItem @click="getOrderByIdApi('createLogisticsOrder')" <ElDropdownItem @click="getOrderByIdApi('createLogisticsOrder')"
>创建物流订单</ElDropdownItem >创建物流订单</ElDropdownItem
> >
<ElDropdownItem @click="getOrderByIdApi('getTrackingNumber')" <ElDropdownItem @click="getOrderByIdApi('getTrackingNumber')"
>获取跟踪号</ElDropdownItem >获取跟踪号</ElDropdownItem
> >
<ElDropdownItem @click="getOrderByIdApi('getPrintOrder')" <ElDropdownItem @click="getOrderByIdApi('getPrintOrder')"
>获取打印面单</ElDropdownItem >获取打印面单</ElDropdownItem
> >
<ElDropdownItem @click="getOrderByIdApi('cancelLogisticsOrder')" <ElDropdownItem @click="getOrderByIdApi('cancelLogisticsOrder')"
>取消物流订单</ElDropdownItem >取消物流订单</ElDropdownItem
> >
<ElDropdownItem @click="getOrderByIdApi('batchChangeLogistics')" <ElDropdownItem @click="getOrderByIdApi('batchChangeLogistics')"
>更换物流</ElDropdownItem >更换物流</ElDropdownItem
> >
</ElDropdownMenu> </ElDropdownMenu>
</template> </template>
...@@ -464,6 +472,7 @@ ...@@ -464,6 +472,7 @@
:paginated-data="tableData" :paginated-data="tableData"
:cell-style="onCellStyle" :cell-style="onCellStyle"
:cell-class-name="onCellClassName" :cell-class-name="onCellClassName"
:row-style="getRowStyle"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<template #goods="{ row }"> <template #goods="{ row }">
...@@ -559,7 +568,7 @@ ...@@ -559,7 +568,7 @@
</div> </div>
<div class="goods-item-info-item"> <div class="goods-item-info-item">
<span class="goods-item-info-item-label" <span class="goods-item-info-item-label"
>第三方生产单号:</span >第三方生产单号:</span
> >
<span <span
class="goods-item-info-item-value" class="goods-item-info-item-value"
...@@ -624,13 +633,13 @@ ...@@ -624,13 +633,13 @@
<div class="goods-item-info-item"> <div class="goods-item-info-item">
<span class="goods-item-info-item-label">{{ <span class="goods-item-info-item-label">{{
status === 'EXCEPTION_ORDER' || status === 'EXCEPTION_ORDER' ||
status === 'PICKING' || status === 'PICKING' ||
status === 'TO_BE_CONFIRMED' || status === 'TO_BE_CONFIRMED' ||
status === 'STOCK_OUT' status === 'STOCK_OUT'
? '数量:' ? '数量:'
: '已生产数量:' : '已生产数量:'
}}</span> }}</span>
<span class="goods-item-info-item-value"> <span class="goods-item-info-item-value">
{{ {{
status === 'EXCEPTION_ORDER' || status === 'EXCEPTION_ORDER' ||
...@@ -647,18 +656,21 @@ ...@@ -647,18 +656,21 @@
class="goods-item-info-item" class="goods-item-info-item"
> >
<span class="goods-item-info-item-label">补胚数量:</span> <span class="goods-item-info-item-label">补胚数量:</span>
<span class="goods-item-info-item-value"> <span
{{ item.replenishmentNum || 0 }} class="goods-item-info-item-value"
:title="item.replenishmentSumNum"
>
{{ item.replenishmentSumNum || 0 }}
</span> </span>
<el-icon <el-button
v-if="status === 'WAIT_SHIPMENT'" v-if="status === 'WAIT_SHIPMENT'"
class="icon" link
style="color: #f56c6c; font-size: 24px" size="small"
title="申请补胚" type="success"
@click="applyForReplenishment(item)" @click="applyForReplenishment(item)"
>申请补胚</el-button
> >
<Edit /> <!-- f -->
</el-icon>
</div> </div>
<div class="goods-item-info-item"> <div class="goods-item-info-item">
<span class="goods-item-info-item-label">克重:</span> <span class="goods-item-info-item-label">克重:</span>
...@@ -842,21 +854,18 @@ ...@@ -842,21 +854,18 @@
<el-timeline-item <el-timeline-item
:color="row.createTime ? '#409EFF' : ''" :color="row.createTime ? '#409EFF' : ''"
:timestamp="row.createTime" :timestamp="row.createTime"
>创建时间 >创建时间
</el-timeline-item </el-timeline-item>
>
<el-timeline-item <el-timeline-item
:color="row.startStockingTime ? '#E6A23C' : ''" :color="row.startStockingTime ? '#E6A23C' : ''"
:timestamp="row.startStockingTime" :timestamp="row.startStockingTime"
>确认时间 >确认时间
</el-timeline-item </el-timeline-item>
>
<el-timeline-item <el-timeline-item
:color="row.finishTime ? '#67C23A' : ''" :color="row.finishTime ? '#67C23A' : ''"
:timestamp="row.finishTime" :timestamp="row.finishTime"
>完成时间 >完成时间
</el-timeline-item </el-timeline-item>
>
</el-timeline> </el-timeline>
<!-- <div class="order-time-box"> <!-- <div class="order-time-box">
<div class="order-time-item"> <div class="order-time-item">
...@@ -920,7 +929,7 @@ ...@@ -920,7 +929,7 @@
<span <span
v-if=" v-if="
row.shipmentType === 0 && row.shipmentType === 0 &&
['CREATE_LOGISTICS', 'WAIT_SHIPMENT'].includes(status) ['CREATE_LOGISTICS', 'WAIT_SHIPMENT'].includes(status)
" "
class="operate-item" class="operate-item"
> >
...@@ -1028,7 +1037,7 @@ ...@@ -1028,7 +1037,7 @@
<div class="grid-container"> <div class="grid-container">
<div class="grid-item" title="商品名称"> <div class="grid-item" title="商品名称">
<span class="grid-item-value" <span class="grid-item-value"
>{{ cardItem?.productName }} >{{ cardItem?.productName }}
</span> </span>
</div> </div>
<div <div
...@@ -1138,8 +1147,7 @@ ...@@ -1138,8 +1147,7 @@
:show-copy-sub-shop-number="false" :show-copy-sub-shop-number="false"
@on-change="rightChange" @on-change="rightChange"
> >
<template #default <template #default>
>
<div class="menu-item" @click="rightChange('order-number')"> <div class="menu-item" @click="rightChange('order-number')">
复制订单号 复制订单号
</div> </div>
...@@ -1420,31 +1428,54 @@ ...@@ -1420,31 +1428,54 @@
</span> </span>
</template> </template>
</ElDialog> </ElDialog>
<el-dialog v-model="logisticsVisible" :close-on-click-modal="false" width="700px" title="更新物流信息"> <el-dialog
v-model="logisticsVisible"
:close-on-click-modal="false"
width="700px"
title="更新物流信息"
>
<el-form <el-form
v-if="logisticsVisible" v-if="logisticsVisible"
ref="logisticsFormRef" label-width="100px" label-position="left" ref="logisticsFormRef"
:model="logisticsForm"> label-width="100px"
label-position="left"
:model="logisticsForm"
>
<el-form-item prop="processNumber" label="物流处理号"> <el-form-item prop="processNumber" label="物流处理号">
<el-input v-model="logisticsForm.processNumber" placeholder="请输入物流处理号" clearable></el-input> <el-input
v-model="logisticsForm.processNumber"
placeholder="请输入物流处理号"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="trackingNumber" label="物流跟踪号"> <el-form-item prop="trackingNumber" label="物流跟踪号">
<el-input v-model="logisticsForm.trackingNumber" placeholder="请输入物流跟踪号" clearable></el-input> <el-input
v-model="logisticsForm.trackingNumber"
placeholder="请输入物流跟踪号"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="logisticsForm.trackingNumber" prop="expressSheetUrl" label="物流面单"> <el-form-item
v-if="logisticsForm.trackingNumber"
prop="expressSheetUrl"
label="物流面单"
>
<el-upload accept=".pdf" action="" :before-upload="expressSheetUpload"> <el-upload accept=".pdf" action="" :before-upload="expressSheetUpload">
<el-button type="primary">点击上传</el-button> <el-button type="primary">点击上传</el-button>
</el-upload> </el-upload>
<div v-if="logisticsForm.expressSheet" class="file"> <div v-if="logisticsForm.expressSheet" class="file">
<span>{{ logisticsForm.expressSheet.name }}</span> <span>{{ logisticsForm.expressSheet.name }}</span>
<el-icon @click="logisticsForm.expressSheet=null" class="expressSheetClose"> <el-icon
@click="logisticsForm.expressSheet = null"
class="expressSheetClose"
>
<Close></Close> <Close></Close>
</el-icon> </el-icon>
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<el-button @click="logisticsVisible=false">取消</el-button> <el-button @click="logisticsVisible = false">取消</el-button>
<el-button type="primary" @click="logisticsSubmit"> 确定</el-button> <el-button type="primary" @click="logisticsSubmit"> 确定</el-button>
</template> </template>
</el-dialog> </el-dialog>
...@@ -1455,7 +1486,7 @@ import { ...@@ -1455,7 +1486,7 @@ import {
ArrowDown, ArrowDown,
CaretBottom, CaretBottom,
CaretTop, CaretTop,
Edit, // Edit,
WarningFilled, WarningFilled,
} from '@element-plus/icons-vue' } from '@element-plus/icons-vue'
import { import {
...@@ -1515,7 +1546,8 @@ import { ...@@ -1515,7 +1546,8 @@ import {
WarehouseListData, WarehouseListData,
cardImages, cardImages,
AddressInfo, AddressInfo,
LogisticsData, LogisticsFormData, LogisticsData,
LogisticsFormData,
} from '@/types/api/podUsOrder' } from '@/types/api/podUsOrder'
import usePageList from '@/utils/hooks/usePageList' import usePageList from '@/utils/hooks/usePageList'
import { useValue } from '@/utils/hooks/useValue' import { useValue } from '@/utils/hooks/useValue'
...@@ -1537,7 +1569,7 @@ import platformJson from '../../../json/platform.json' ...@@ -1537,7 +1569,7 @@ import platformJson from '../../../json/platform.json'
declare global { declare global {
interface Window { interface Window {
ActiveXObject: { ActiveXObject: {
new(type: string): XMLHttpRequest new (type: string): XMLHttpRequest
} }
VBS_BinaryToArray: { VBS_BinaryToArray: {
(data: unknown): { toArray(): number[] } (data: unknown): { toArray(): number[] }
...@@ -1603,6 +1635,7 @@ const [searchForm] = useValue<SearchForm>({ ...@@ -1603,6 +1635,7 @@ const [searchForm] = useValue<SearchForm>({
productionClient: '', productionClient: '',
warehouseId: '', warehouseId: '',
thirdSkuCode: '', thirdSkuCode: '',
supplierProductNo:''
}) })
const exceptionStatus = ref(1) const exceptionStatus = ref(1)
const userMarkList = ref<string[]>([]) const userMarkList = ref<string[]>([])
...@@ -1810,6 +1843,7 @@ const changeTab = (item: Tab) => { ...@@ -1810,6 +1843,7 @@ const changeTab = (item: Tab) => {
status.value = item.status || '' status.value = item.status || ''
selection.value = [] selection.value = []
cardSelection.value = [] cardSelection.value = []
stockOutSuccessIds.value = []
search(true) search(true)
} }
const onCellStyle = ({ column }: { column: Column }) => { const onCellStyle = ({ column }: { column: Column }) => {
...@@ -1937,7 +1971,22 @@ async function confirmProduct() { ...@@ -1937,7 +1971,22 @@ async function confirmProduct() {
const { code, data } = await confirmProductApi([...ids]) const { code, data } = await confirmProductApi([...ids])
if (code === 200) { if (code === 200) {
resultInfo.value = data || [] resultInfo.value = data || []
resultRefs.value?.showDialog() resultInfo.value =
(data as {
id: string | number
status: boolean
factoryOrderNumber?: string
message: string
}[]) || []
if (
Array.isArray(data) &&
(data as { status: boolean }[]).some((item) => !item.status)
) {
resultRefs.value?.showDialog()
} else {
search()
loadTabData()
}
} }
ElMessage.success('操作成功') ElMessage.success('操作成功')
...@@ -1965,7 +2014,22 @@ async function confirmProductToRiin() { ...@@ -1965,7 +2014,22 @@ async function confirmProductToRiin() {
const { code, data } = await confirmProductToRiinApi([...ids]) const { code, data } = await confirmProductToRiinApi([...ids])
if (code === 200) { if (code === 200) {
resultInfo.value = data || [] resultInfo.value = data || []
resultRefs.value?.showDialog() resultInfo.value =
(data as {
id: string | number
status: boolean
factoryOrderNumber?: string
message: string
}[]) || []
if (
Array.isArray(data) &&
(data as { status: boolean }[]).some((item) => !item.status)
) {
resultRefs.value?.showDialog()
} else {
search()
loadTabData()
}
} }
ElMessage.success('操作成功') ElMessage.success('操作成功')
...@@ -2545,7 +2609,14 @@ const getOrderByIdApi = async (type: string) => { ...@@ -2545,7 +2609,14 @@ const getOrderByIdApi = async (type: string) => {
if (res.code === 200) { if (res.code === 200) {
if (isArray(res.data)) { if (isArray(res.data)) {
resultInfo.value = res.data || [] resultInfo.value = res.data || []
resultRefs.value?.showDialog(type) resultInfo.value =
(res.data as {
id: string | number
status: boolean
factoryOrderNumber?: string
message: string
}[]) || []
resultRefs.value?.showDialog()
} else if (isString(res.data)) { } else if (isString(res.data)) {
window.open(filePath + res.data) window.open(filePath + res.data)
} }
...@@ -2562,7 +2633,14 @@ const getOrderByIdApi = async (type: string) => { ...@@ -2562,7 +2633,14 @@ const getOrderByIdApi = async (type: string) => {
} }
} }
//展示返回结果 //展示返回结果
const resultInfo = ref([]) const resultInfo = ref<
{
id: string | number
status: boolean
factoryOrderNumber?: string
message: string
}[]
>([])
const resultConfim = () => { const resultConfim = () => {
search() search()
loadTabData() loadTabData()
...@@ -2703,6 +2781,9 @@ const stockOutCheck = async () => { ...@@ -2703,6 +2781,9 @@ const stockOutCheck = async () => {
loading.close() loading.close()
} }
} }
// 添加表格ref
const tableRef = ref()
//转至待创建物流 //转至待创建物流
const toBePicking = async () => { const toBePicking = async () => {
if (selection.value.length === 0) { if (selection.value.length === 0) {
...@@ -2766,8 +2847,22 @@ const logisticsToPicking = async () => { ...@@ -2766,8 +2847,22 @@ const logisticsToPicking = async () => {
ids: selection.value.map((item) => item.id).join(','), ids: selection.value.map((item) => item.id).join(','),
}) })
if (res.code !== 200) return if (res.code !== 200) return
resultInfo.value = res.data || [] resultInfo.value =
resultRefs.value?.showDialog() (res.data as {
id: string | number
status: boolean
factoryOrderNumber?: string
message: string
}[]) || []
if (
Array.isArray(res.data) &&
(res.data as { status: boolean }[]).some((item) => !item.status)
) {
resultRefs.value?.showDialog()
} else {
search()
loadTabData()
}
ElMessage.success('操作成功') ElMessage.success('操作成功')
// search() // search()
// loadTabData() // loadTabData()
...@@ -2970,17 +3065,15 @@ const onFastRefresh = () => { ...@@ -2970,17 +3065,15 @@ const onFastRefresh = () => {
search() search()
} }
// // 修改行样式方法 // // 修改行样式方法
// const getRowStyle = ({ row }: { row: PodUsOrderListData }) => { const getRowStyle = ({ row }: { row: PodUsOrderListData }) => {
// if (stockOutSuccessIds.value.includes(row.id)) { if (stockOutSuccessIds.value.includes(row.id)) {
// return { return {
// backgroundColor: '#f0f9eb', backgroundColor: '#f0f9eb',
// color: '#67c23a', color: '#67c23a',
// } }
// } }
// return {} return {}
// } }
// 添加表格ref
const tableRef = ref()
const warehouseList = ref<WarehouseListData[]>([]) const warehouseList = ref<WarehouseListData[]>([])
const loadWarehouseList = async () => { const loadWarehouseList = async () => {
try { try {
...@@ -3084,7 +3177,7 @@ const applyForReplenishment = async (row: ProductList | undefined) => { ...@@ -3084,7 +3177,7 @@ const applyForReplenishment = async (row: ProductList | undefined) => {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
inputPattern: /.+/, inputPattern: /.+/,
inputValue: row ? String(row.replenishmentNum || '') : '', inputValue: row ? String(row.replenishmentSumNum || '') : '',
inputErrorMessage: '请输入补胚数量', inputErrorMessage: '请输入补胚数量',
inputPlaceholder: '补胚数量', inputPlaceholder: '补胚数量',
}).then(async (res) => { }).then(async (res) => {
...@@ -3265,7 +3358,6 @@ const replenishmentSuccess = async () => { ...@@ -3265,7 +3358,6 @@ const replenishmentSuccess = async () => {
overflow-y: auto; overflow-y: auto;
} }
.tabs-node_count { .tabs-node_count {
display: inline-block; display: inline-block;
min-width: 20px; min-width: 20px;
......
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