Commit b67e1eb9 by linjinhong

Merge branch 'release'

parents 03007d8e 9f4bc132
......@@ -148,7 +148,7 @@ export function getUniuniList() {
}
// 获取tictok物流承运商
export function getTiktokCarrier() {
return axios.get<never, BaseRespData<{ name: string; id: number }[]>>(
return axios.get<never, BaseRespData<{ name: string; id: string,typeCode:string,label:string }[]>>(
'logisticsWay/getTiktokShippingProvider',
)
}
......
......@@ -42,7 +42,7 @@
v-model="editForm"
:config="formConfig"
form-item-width="100%"
labelWidth="110"
label-width="110"
>
</CustomizeForm>
......@@ -70,6 +70,7 @@
defineOptions({
name: 'LogisticsMethod',
})
import LogisticsWaySelect from './components/LogisticsWaySelect.tsx'
import {
getLogisticsWayList,
addLogisticsWay,
......@@ -83,7 +84,7 @@ import {
getUniuniList,
getTiktokCarrier,
} from '@/api/logistics'
import type { FormItemRule } from 'element-plus'
import { WarehouseListData } from '@/types/api/podUsOrder'
import { ISeachFormConfig } from '@/types/searchType'
import { TableColumn } from '@/components/VxeTable'
......@@ -103,6 +104,7 @@ import { showConfirm } from '@/utils/ui'
import { Edit, Delete, List, WarningFilled } from '@element-plus/icons-vue'
import { debounce } from 'lodash-es'
import UPARCELImage from '@/assets/images/UPARCEL物流编码.png'
const [searchForm] = useValue({})
const [editForm, resetEditForm] = useValue<LogisticsMethod>({
platformList: [
......@@ -140,6 +142,7 @@ const warehouseList = ref<WarehouseListData[]>([])
interface ImageList {
[key: string]: string
}
const imgeList = ref<ImageList>({
UPARCEL: UPARCELImage,
})
......@@ -182,6 +185,45 @@ const platformList = ref([])
const ruleNameList = ref([])
const uniuniList = ref([])
const logisticsCompanyList = ref([])
watch(
() => JSON.parse(JSON.stringify(editForm.value.platformList)),
(newValue, oldValue) => {
if (oldValue.length && newValue.length) {
// 遍历旧值数组
oldValue.forEach(
(
oldItem: { logisticsName: string; showPlatform: string[] },
index: number,
) => {
// 检查旧值项是否符合条件
if (
Array.isArray(oldItem.showPlatform) &&
oldItem.showPlatform.length === 1 &&
oldItem.showPlatform[0] === 'TIKTOK' &&
oldItem.logisticsName
) {
// 获取对应的新值项
const newItem = newValue[index]
// 检查新值项是否不再满足条件
if (
newItem &&
(!Array.isArray(newItem.showPlatform) ||
newItem.showPlatform.length === 0 ||
!newItem.showPlatform.includes('TIKTOK') ||
newItem.showPlatform.length > 1)
) {
// 清除 logisticsName
editForm.value.platformList[index].logisticsName = ''
}
}
},
)
}
},
{ deep: true },
)
const formConfig = computed<IFormConfig[]>(() => [
{ title: '物流基础信息' },
{
......@@ -370,9 +412,7 @@ const formConfig = computed<IFormConfig[]>(() => [
{
title: '平台物流名称',
fixed: 'last',
render: (item, formData) => {
console.log(283, item, formData)
render: (_, formData) => {
return (formData?.platformList as platformObj[])?.map(
(item: platformObj, index: number) => (
<div style="display: flex; width:100%">
......@@ -415,21 +455,21 @@ const formConfig = computed<IFormConfig[]>(() => [
required: true,
message: '请输入物流名称',
trigger: 'blur',
validator: (
_: FormItemRule,
value: string,
callback: (error?: string) => void,
) => {
if (value) callback()
},
},
]}
>
<el-select
v-model={item.logisticsName}
placeholder="请选择物流名称"
>
{tiktokCarriers.value?.map((el) => (
<el-option
label={el.name}
value={el.name}
key={el.id}
></el-option>
))}{' '}
</el-select>
<LogisticsWaySelect
v-model={item.logisticsName as string | number}
isRadio={true}
companyList={tiktokCarriers.value as ICompanyList[]}
></LogisticsWaySelect>
</el-form-item>
) : (
<el-form-item
......@@ -466,7 +506,7 @@ const formConfig = computed<IFormConfig[]>(() => [
{index >= 1 && (
<el-button
style="margin-left: 10px"
type="primary"
type="danger"
onClick={() => deleteCol(index)}
>
删除
......@@ -534,7 +574,16 @@ const tableConfig = ref<TableColumn[]>([
</span>
<span>
<span>{'物流名称:'}</span>
<span class="logistics-name">{el.logisticsName}</span>
{el.platform === 'TIKTOK' ? (
<span class="logistics-name">
{tiktokCarriers.value
?.flatMap((company) => company.wayList)
?.find((item) => el.logisticsName === item.id)?.name ||
el.logisticsName}
</span>
) : (
<span class="logistics-name">{el.logisticsName}</span>
)}
</span>
</div>
)),
......@@ -868,13 +917,33 @@ async function getAllList() {
}
}
const tiktokCarriers = ref<{ name: string; id: number }[]>([])
interface ICompanyList {
warehouseName: string
wayList: IwayList[]
}
interface IwayList {
name: string
id: string
}
const tiktokCarriers = ref<ICompanyList[]>([])
/**
* @description: 获取tictok物流承运商
*/
async function getTiktokCarriers() {
const { data } = await getTiktokCarrier()
tiktokCarriers.value = data
const labelTypeList = Array.from(new Set(data.map((e) => e.label)))
const result: ICompanyList[] = []
labelTypeList.forEach((label) => {
result.push({
warehouseName: label,
wayList: data.filter((e) => e.label === label),
})
})
tiktokCarriers.value = result
console.log(893, tiktokCarriers.value)
}
/**
......@@ -885,7 +954,9 @@ interface LogList {
createTime?: string
description?: string
}
const logList = ref<LogList[]>([])
async function showLog(row: LogisticsMethod) {
logDialogVisible.value = true
try {
......@@ -909,9 +980,11 @@ async function showLog(row: LogisticsMethod) {
margin-bottom: 10px;
}
}
.user-operate-btn {
margin-bottom: 10px;
}
.dialog-footer {
text-align: center;
}
......
......@@ -4,7 +4,13 @@
<template #top>
<div class="header-filter">
<div class="header-filter-form">
<ElForm :model="searchForm" size="default" inline>
<ElForm
:model="searchForm"
size="default"
inline
label-position="right"
label-width="70px"
>
<ElFormItem>
<el-select
v-model="searchForm.timeType"
......@@ -139,7 +145,7 @@
<el-select
v-model="searchForm.order"
clearable
style="width: 100px; margin-right: 5px"
style="width: 125px"
placeholder="排序类型"
>
<el-option value="asc" label="正序"></el-option>
......
......@@ -701,7 +701,14 @@ onMounted(() => {
<split-div otherSize="35">
<template #top>
<el-card>
<ElForm :model="searchForm" size="default" inline class="search-form">
<ElForm
:model="searchForm"
size="default"
inline
class="search-form"
label-position="right"
label-width="90px"
>
<ElFormItem label="仓库">
<ElSelect
v-model="searchForm.warehouseId"
......@@ -1203,4 +1210,12 @@ onMounted(() => {
}
}
}
.search-form {
::v-deep .el-radio-button {
width: 75px;
.el-radio-button__inner {
width: 100%;
}
}
}
</style>
......@@ -686,7 +686,14 @@ onMounted(() => {
<split-div otherSize="35">
<template #top>
<el-card>
<ElForm :model="searchForm" size="default" inline class="search-form">
<ElForm
:model="searchForm"
size="default"
inline
class="search-form"
label-position="right"
label-width="90px"
>
<ElFormItem label="仓库">
<ElSelect
v-model="searchForm.warehouseId"
......@@ -1172,4 +1179,12 @@ onMounted(() => {
}
}
}
.search-form {
::v-deep .el-radio-button {
width: 75px;
.el-radio-button__inner {
width: 100%;
}
}
}
</style>
<template>
<div class="card flex-column h-100 overflow-hidden">
<div class="header-filter-form">
<ElForm :model="searchForm" size="default" inline>
<ElFormItem>
<el-select
v-model="searchForm.timeType"
style="width: 100px; margin-right: 5px"
clearable
placeholder="时间类型"
>
<el-option :value="1" label="创建时间"></el-option>
<el-option :value="2" label="确认时间"></el-option>
<el-option :value="3" label="完成时间"></el-option>
<!-- <el-option :value="4" label="发货时间"></el-option> -->
</el-select>
<el-date-picker
v-model="timeRange"
:default-time="[
new Date(0, 0, 0, 0, 0, 0),
new Date(0, 0, 0, 23, 59, 59),
]"
placeholder="收货人"
value-format="YYYY-MM-DD HH:mm:ss"
type="datetimerange"
style="width: 280px"
:shortcuts="pickerOptions.shortcuts"
start-placeholder="开始时间"
end-placeholder="结束时间"
clearable
>
</el-date-picker>
</ElFormItem>
<ElForm
:model="searchForm"
size="default"
inline
label-position="right"
label-width="70px"
>
<ElFormItem label="客户">
<el-select
v-model="searchForm.userMark"
clearable
filterable
style="width: 100px"
style="width: 150px"
placeholder="客户"
>
<el-option
......@@ -77,7 +54,7 @@
v-model.trim="searchForm.sku"
placeholder=" SKU"
clearable
style="width: 130px"
style="width: 150px"
></ElInput>
</ElFormItem>
<!-- <ElFormItem label="发货单号">
......@@ -85,7 +62,7 @@
v-model="searchForm.shipmentNumber"
placeholder="发货单号"
clearable
style="width: 130px"
style="width: 150px"
/>
</ElFormItem> -->
<ElFormItem label="生产单号">
......@@ -93,7 +70,7 @@
v-model="searchForm.factorySubOrderNumber"
placeholder="定制生产单号"
clearable
style="width: 130px"
style="width: 150px"
/>
</ElFormItem>
<ElFormItem label="订单号">
......@@ -101,7 +78,7 @@
v-model="searchForm.factoryOrderNumber"
placeholder="定制订单号"
clearable
style="width: 130px"
style="width: 150px"
/>
</ElFormItem>
<ElFormItem label="店铺单号">
......@@ -109,7 +86,7 @@
v-model="searchForm.shopNumber"
placeholder="店铺单号"
clearable
style="width: 130px"
style="width: 150px"
/>
</ElFormItem>
<ElFormItem label="素材ID">
......@@ -117,7 +94,7 @@
v-model.trim="searchForm.productionFileId"
placeholder="素材ID"
clearable
style="width: 130px"
style="width: 150px"
></ElInput>
</ElFormItem>
<ElFormItem label="内部标签">
......@@ -125,14 +102,14 @@
v-model.trim="searchForm.internalMemo"
placeholder="内部标签"
clearable
style="width: 100px"
style="width: 150px"
></ElInput>
</ElFormItem>
<ElFormItem label="排序">
<el-select
v-model="searchForm.order"
clearable
style="width: 80px"
style="width: 150px"
placeholder="排序类型"
>
<el-option value="asc" label="正序"></el-option>
......@@ -143,7 +120,7 @@
<el-select
v-model="searchForm.customizedQuantity"
clearable
style="width: 100px"
style="width: 150px"
placeholder="定制类型"
>
<el-option value="single" label="单面"></el-option>
......@@ -156,7 +133,7 @@
clearable
filterable
placeholder="尺码类型"
style="width: 100px"
style="width: 150px"
>
<el-option
v-for="item in sizeList"
......@@ -167,6 +144,35 @@
</ElSelect>
</ElFormItem>
<ElFormItem>
<el-select
v-model="searchForm.timeType"
style="width: 100px; margin-right: 5px"
clearable
placeholder="时间类型"
>
<el-option :value="1" label="创建时间"></el-option>
<el-option :value="2" label="确认时间"></el-option>
<el-option :value="3" label="完成时间"></el-option>
<!-- <el-option :value="4" label="发货时间"></el-option> -->
</el-select>
<el-date-picker
v-model="timeRange"
:default-time="[
new Date(0, 0, 0, 0, 0, 0),
new Date(0, 0, 0, 23, 59, 59),
]"
placeholder="收货人"
value-format="YYYY-MM-DD HH:mm:ss"
type="datetimerange"
style="width: 280px"
:shortcuts="pickerOptions.shortcuts"
start-placeholder="开始时间"
end-placeholder="结束时间"
clearable
>
</el-date-picker>
</ElFormItem>
<ElFormItem>
<ElButton type="primary" @click="loadDiffList">查询</ElButton>
</ElFormItem>
<ElFormItem v-if="status === 'TO_BE_CONFIRMED'">
......
<template>
<div class="card flex-column h-100 overflow-hidden">
<div class="header-filter-form">
<ElForm :model="searchForm" size="default" inline>
<ElForm
class="search-form"
:model="searchForm"
size="default"
inline
label-position="right"
label-width="70px"
>
<ElFormItem label="仓库">
<ElSelect
v-model="searchForm.warehouseId"
......@@ -120,7 +127,7 @@
<el-select
v-model="searchForm.order"
clearable
style="width: 100px"
style="width: 150px"
placeholder="排序类型"
>
<el-option value="asc" label="正序"></el-option>
......@@ -5587,6 +5594,14 @@ useRouter().beforeEach((to, from, next) => {
color: white;
font-weight: bold;
}
.search-form {
::v-deep .el-radio-button {
width: 75px;
.el-radio-button__inner {
width: 100%;
}
}
}
</style>
<style lang="scss">
.customize-select-style {
......
<template>
<div class="card flex-column h-100 overflow-hidden">
<div class="header-filter-form">
<ElForm label-position="left" label-width="70px" :model="searchForm" size="default" inline>
<ElForm class="search-form" label-position="right" label-width="70px" :model="searchForm" size="default" inline>
<!-- <div> -->
<ElFormItem label="仓库">
<ElSelect
......@@ -126,8 +126,8 @@
v-model="searchForm.customizedQuantity"
@click.stop="(e: Event) => handleRadioGroupClick(e)"
>
<el-radio-button label="single">单面</el-radio-button>
<el-radio-button label="multiple">多面</el-radio-button>
<el-radio-button label="single">单面</el-radio-button>
<el-radio-button label="multiple">多面</el-radio-button>
</el-radio-group>
</ElFormItem>
<ElFormItem label="数量">
......@@ -6525,6 +6525,15 @@ useRouter().beforeEach((to, from, next) => {
color: white;
font-weight: bold;
}
.search-form{
::v-deep .el-radio-button{
width: 75px;
.el-radio-button__inner{
width: 100%;
}
}
}
</style>
<style lang="scss">
.customize-select-style {
......
......@@ -6,7 +6,7 @@
"module": "ESNext",
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"skipLibCheck": true,
"types":[],
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
......
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