Commit 9687e81f by qinjianhui

Merge branch 'dev' into 'master'

Dev

See merge request !149
parents 5a71e66e de4b50da
...@@ -55,6 +55,7 @@ export interface SearchForm { ...@@ -55,6 +55,7 @@ export interface SearchForm {
employeeId?: number employeeId?: number
blocking?: boolean blocking?: boolean
outOfStock?: boolean outOfStock?: boolean
receiverCountry?: string
} }
export interface PodCnOrderListData { export interface PodCnOrderListData {
id: number id: number
...@@ -215,6 +216,7 @@ export interface LogisticsData { ...@@ -215,6 +216,7 @@ export interface LogisticsData {
export interface AddressInfo { export interface AddressInfo {
id?: string id?: string
receiverName: string receiverName: string
rfcNumber: string
receiverPhone: string receiverPhone: string
receiverCountry: string receiverCountry: string
receiverProvince: string receiverProvince: string
......
...@@ -27,11 +27,17 @@ export interface statisticData { ...@@ -27,11 +27,17 @@ export interface statisticData {
outOfStockSkuNum: number outOfStockSkuNum: number
outOfStockProductNum: number outOfStockProductNum: number
yesterdayOverTimeShipmentOrderNum: number yesterdayOverTimeShipmentOrderNum: number
notShipmentProductNum: number
overTimeNotShipmentProductNum: number
yesterdayShipmentProductNum: number
} }
export interface trendType { export interface trendType {
confirmNum: number // 接单数 confirmNum: number // 接单数
produceNum: number // 生产数 produceNum: number // 生产数
shipmentNum: number // 发货数 shipmentNum: number // 发货数
confirmProductNum?: number // 新接数(件)
produceProductNum?: number // 生产数(件)
shipmentProductNum?: number // 发货数(件)
shipmentRateOf24Hour: number // 24小时发货率 shipmentRateOf24Hour: number // 24小时发货率
shipmentRateOf48Hour: number // 48小时发货率 shipmentRateOf48Hour: number // 48小时发货率
overtimeShipmentRate: number // 超48小时发货率 overtimeShipmentRate: number // 超48小时发货率
......
...@@ -398,6 +398,34 @@ const formConfig = computed<IFormConfig[]>(() => [ ...@@ -398,6 +398,34 @@ const formConfig = computed<IFormConfig[]>(() => [
message: '请输入物流编码', message: '请输入物流编码',
}, },
], ],
},{
prop: 'vat',
type: 'input',
label: 'vat编号',
fixed: 'last',
attrs: {
placeholder: '请输入vat编号',
},
rules: [
{
required: false,
message: '请输入vat编号',
},
],
},{
prop: 'ioss',
type: 'input',
label: 'IOSS编号',
fixed: 'last',
attrs: {
placeholder: '请输入IOSS编号',
},
rules: [
{
required: false,
message: '请输入IOSS编号',
},
],
}, },
{ {
prop: 'status', prop: 'status',
...@@ -605,6 +633,16 @@ const tableConfig = ref<TableColumn[]>([ ...@@ -605,6 +633,16 @@ const tableConfig = ref<TableColumn[]>([
}, },
}, },
{ {
prop: 'vat',
label: 'vat编号',
},
{
prop: 'ioss',
label: 'IOSS编号',
},
{
prop: 'opeare', prop: 'opeare',
label: '操作', label: '操作',
attrs: { attrs: {
......
...@@ -757,19 +757,6 @@ const handleSelectionChange = (val: PodUsOrderListData[]) => { ...@@ -757,19 +757,6 @@ const handleSelectionChange = (val: PodUsOrderListData[]) => {
selection.value = val selection.value = val
} }
// 修改行样式方法
const getRowStyle = ({ row }: { row: PodUsOrderListData }) => {
// 如果行被选中,设置背景色为 #fdf6ec
if (selection.value.some((item) => item.id === row.id)) {
return {
backgroundColor: '#fdf6ec',
}
}
return {
backgroundColor: '',
}
}
// 获取行类名方法 // 获取行类名方法
const getRowClassName = ({ row }: { row: PodUsOrderListData }) => { const getRowClassName = ({ row }: { row: PodUsOrderListData }) => {
return selection.value.some((item) => item.id === row.id) return selection.value.some((item) => item.id === row.id)
...@@ -1156,7 +1143,6 @@ onMounted(() => { ...@@ -1156,7 +1143,6 @@ onMounted(() => {
:serial-numberable="true" :serial-numberable="true"
:selectionable="true" :selectionable="true"
:paginated-data="tableData" :paginated-data="tableData"
:row-style="getRowStyle"
:row-class-name="getRowClassName" :row-class-name="getRowClassName"
@row-click="rowClick" @row-click="rowClick"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
...@@ -1385,11 +1371,22 @@ onMounted(() => { ...@@ -1385,11 +1371,22 @@ onMounted(() => {
} }
} }
// 确保选中行的背景色在 hover 时也保持 // 设置选中行的背景色
:deep(.el-table__body) { :deep(.el-table__body) {
.el-table__row:hover {
td {
background-color: #e1ebf5 !important;
}
}
.el-table__row.row-selected {
td {
background-color: #faecd8 !important;
}
}
// 确保选中行的背景色在 hover 时也保持
.el-table__row.row-selected:hover { .el-table__row.row-selected:hover {
td { td {
background-color: #fdf6ec !important; background-color: #faecd8 !important;
} }
} }
} }
......
...@@ -772,20 +772,6 @@ const handleSelectionChange = (val: PodCnOrderListData[]) => { ...@@ -772,20 +772,6 @@ const handleSelectionChange = (val: PodCnOrderListData[]) => {
selection.value = val selection.value = val
} }
// 修改行样式方法
const getRowStyle = ({ row }: { row: PodCnOrderListData }) => {
// 如果行被选中,设置背景色为 #fdf6ec
if (selection.value.some((item) => item.id === row.id)) {
return {
backgroundColor: '#fdf6ec',
}
}
return {
backgroundColor: '',
}
}
// 获取行类名方法 // 获取行类名方法
const getRowClassName = ({ row }: { row: PodCnOrderListData }) => { const getRowClassName = ({ row }: { row: PodCnOrderListData }) => {
return selection.value.some((item) => item.id === row.id) return selection.value.some((item) => item.id === row.id)
...@@ -1246,7 +1232,6 @@ onMounted(() => { ...@@ -1246,7 +1232,6 @@ onMounted(() => {
:serial-numberable="true" :serial-numberable="true"
:selectionable="true" :selectionable="true"
:paginated-data="tableData" :paginated-data="tableData"
:row-style="getRowStyle"
:row-class-name="getRowClassName" :row-class-name="getRowClassName"
@row-click="rowClick" @row-click="rowClick"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
...@@ -1482,11 +1467,22 @@ onMounted(() => { ...@@ -1482,11 +1467,22 @@ onMounted(() => {
} }
} }
// 确保选中行的背景色在 hover 时也保持 // 设置选中行的背景色
:deep(.el-table__body) { :deep(.el-table__body) {
.el-table__row:hover {
td {
background-color: #e1ebf5 !important;
}
}
.el-table__row.row-selected {
td {
background-color: #faecd8 !important;
}
}
// 确保选中行的背景色在 hover 时也保持
.el-table__row.row-selected:hover { .el-table__row.row-selected:hover {
td { td {
background-color: #fdf6ec !important; background-color: #faecd8 !important;
} }
} }
} }
......
...@@ -11,6 +11,7 @@ const visible = defineModel<boolean>('visible') ...@@ -11,6 +11,7 @@ const visible = defineModel<boolean>('visible')
const form = defineModel<AddressInfo>('form', { const form = defineModel<AddressInfo>('form', {
default: { default: {
receiverName: '', receiverName: '',
rfcNumber: '',
receiverPhone: '', receiverPhone: '',
receiverCountry: '', receiverCountry: '',
receiverProvince: '', receiverProvince: '',
...@@ -133,6 +134,13 @@ const submitForm = async () => { ...@@ -133,6 +134,13 @@ const submitForm = async () => {
placeholder="请输入邮政编码" placeholder="请输入邮政编码"
/> />
</el-form-item> </el-form-item>
<el-form-item label="RFC税号" prop="rfcNumber">
<el-input
v-model="form.rfcNumber"
clearable
placeholder="请输入RFC税号"
/>
</el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
......
...@@ -379,6 +379,34 @@ ...@@ -379,6 +379,34 @@
style="width: 150px" style="width: 150px"
></ElInput> ></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem
v-if="
![
'TO_BE_ARRANGE',
'PICKING',
'TO_BE_REPLENISHMENT',
'IN_PRODUCTION',
].includes(status)
"
label="收件国家"
>
<ElSelect
v-model="searchForm.receiverCountry"
placeholder="收件国家"
clearable
:teleported="false"
style="width: 150px"
filterable
@change="changeReplaceShipment"
>
<ElOption
v-for="item in receiverCountryList"
:key="item.countryCode"
:value="item.countryCode"
:label="item.nameCn + '(' + item.countryCode + ')'"
></ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem label="是否代发"> <ElFormItem label="是否代发">
<ElSelect <ElSelect
v-model="searchForm.replaceShipment" v-model="searchForm.replaceShipment"
...@@ -1458,6 +1486,43 @@ ...@@ -1458,6 +1486,43 @@
</el-button> </el-button>
</div> </div>
</div> </div>
<div class="goods-item-info">
<div class="goods-item-info-item">
<span class="goods-item-info-item-label"
>英文报关名称:</span
>
<span :title="item.customsNameEnglish" class="goods-item-info-item-value">
{{ item.customsNameEnglish }}
</span>
</div>
<div class="goods-item-info-item">
<span class="goods-item-info-item-label"
>中文报关名称:</span
>
<span :title="item.customsNameChinese" class="goods-item-info-item-value">
{{ item.customsNameChinese }}
</span>
</div>
<div class="goods-item-info-item">
<span class="goods-item-info-item-label"
>申报重量(g):</span
>
<span :title="item.customsWeight" class="goods-item-info-item-value">
{{ item.customsWeight }}
</span>
</div>
<div class="goods-item-info-item">
<span class="goods-item-info-item-label"
>申报价值($):</span
>
<span :title="item.customsValue" class="goods-item-info-item-value">
{{ item.customsValue }}
</span>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -2985,6 +3050,7 @@ const totalAmountPrice = (item: PodCnOrderListData): string => { ...@@ -2985,6 +3050,7 @@ const totalAmountPrice = (item: PodCnOrderListData): string => {
const countryList = ref([]) const countryList = ref([])
const currentRow = ref<AddressInfo>({ const currentRow = ref<AddressInfo>({
receiverName: '', receiverName: '',
rfcNumber: '',
receiverPhone: '', receiverPhone: '',
receiverCountry: '', receiverCountry: '',
receiverProvince: '', receiverProvince: '',
...@@ -3132,6 +3198,7 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({ ...@@ -3132,6 +3198,7 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({
batchArrangeNumber: '', batchArrangeNumber: '',
craftCode: [], craftCode: [],
thirdStockSku: '', thirdStockSku: '',
receiverCountry: '',
}) })
const shipmentArea = ref(0) const shipmentArea = ref(0)
const userMarkList = ref<string[]>([]) const userMarkList = ref<string[]>([])
...@@ -3873,7 +3940,7 @@ const tableColumns = computed(() => { ...@@ -3873,7 +3940,7 @@ const tableColumns = computed(() => {
{ {
label: '操作', label: '操作',
slot: 'operate', slot: 'operate',
width: 260, width: 120,
align: 'center', align: 'center',
fixed: 'right', fixed: 'right',
prop: 'operate', prop: 'operate',
...@@ -3892,7 +3959,7 @@ const tableColumns = computed(() => { ...@@ -3892,7 +3959,7 @@ const tableColumns = computed(() => {
label: '商品', label: '商品',
prop: 'goods', prop: 'goods',
slot: 'goods', slot: 'goods',
minWidth: 920, minWidth: 1100,
}, },
{ {
label: '订单详情', label: '订单详情',
...@@ -3917,7 +3984,7 @@ const tableColumns = computed(() => { ...@@ -3917,7 +3984,7 @@ const tableColumns = computed(() => {
{ {
label: '操作', label: '操作',
slot: 'operate', slot: 'operate',
width: 180, width: 100,
align: 'center', align: 'center',
fixed: 'right', fixed: 'right',
prop: 'operate', prop: 'operate',
...@@ -5505,15 +5572,8 @@ const getRowStyle = ({ row }: { row: PodCnOrderListData }) => { ...@@ -5505,15 +5572,8 @@ const getRowStyle = ({ row }: { row: PodCnOrderListData }) => {
color: '#67c23a', color: '#67c23a',
} }
} }
// 如果行被选中,设置背景色为 #fdf6ec // 选中状态通过 CSS 类名控制,这里不再处理
if (selection.value.some((item) => item.id === row.id)) { return {}
return {
backgroundColor: '#fdf6ec',
}
}
return {
backgroundColor: '',
}
} }
// 获取行类名方法 // 获取行类名方法
...@@ -5608,6 +5668,17 @@ const getlogisticsCompanyAllCodelist = async () => { ...@@ -5608,6 +5668,17 @@ const getlogisticsCompanyAllCodelist = async () => {
} }
} }
const receiverCountryList = ref<{ countryCode: string; nameCn: string }[]>([])
const getReceiverCountryList = async () => {
try {
const res = await getAllCountryApi()
if (res.code !== 200) return
receiverCountryList.value = res.data
} catch (e) {
console.error(e)
}
}
function tooltipContent(arr: { name: string }[]) { function tooltipContent(arr: { name: string }[]) {
return arr.map((tag) => tag.name).join('、') return arr.map((tag) => tag.name).join('、')
} }
...@@ -5708,6 +5779,7 @@ onMounted(() => { ...@@ -5708,6 +5779,7 @@ onMounted(() => {
getCustomTagList() getCustomTagList()
loadCraftList() loadCraftList()
getlogisticsCompanyAllCodelist() getlogisticsCompanyAllCodelist()
getReceiverCountryList()
// 每60秒更新一次当前时间 // 每60秒更新一次当前时间
timer = window.setInterval(() => { timer = window.setInterval(() => {
currentTime.value = new Date() currentTime.value = new Date()
...@@ -6150,7 +6222,8 @@ const onUpdateCustomsDeclarationInfo = () => { ...@@ -6150,7 +6222,8 @@ const onUpdateCustomsDeclarationInfo = () => {
.goods-item { .goods-item {
display: grid; display: grid;
grid-template-columns: 100px 1fr minmax(150px, 1fr) 150px; // grid-template-columns: 100px 1fr minmax(150px, 1fr) 150px;
grid-template-columns: 100px 254px 1fr minmax(150px, 1fr) 150px 200px;
gap: 15px; gap: 15px;
.goods-item-img { .goods-item-img {
...@@ -6510,11 +6583,22 @@ const onUpdateCustomsDeclarationInfo = () => { ...@@ -6510,11 +6583,22 @@ const onUpdateCustomsDeclarationInfo = () => {
} }
} }
// 确保选中行的背景色在 hover 时也保持 // 设置选中行的背景色
:deep(.el-table__body) { :deep(.el-table__body) {
.el-table__row:hover {
td {
background-color: #e1ebf5 !important;
}
}
.el-table__row.row-selected {
td {
background-color: #faecd8 !important;
}
}
// 确保选中行的背景色在 hover 时也保持
.el-table__row.row-selected:hover { .el-table__row.row-selected:hover {
td { td {
background-color: #fdf6ec !important; background-color: #faecd8 !important;
} }
} }
} }
......
...@@ -650,6 +650,7 @@ const getPackingData = async (code: string) => { ...@@ -650,6 +650,7 @@ const getPackingData = async (code: string) => {
background: 'rgba(0, 0, 0, 0.3)', background: 'rgba(0, 0, 0, 0.3)',
}) })
currentCode = code currentCode = code
try { try {
const factoryNo = userStore.user?.factory.id const factoryNo = userStore.user?.factory.id
if (!factoryNo) { if (!factoryNo) {
......
...@@ -6176,15 +6176,8 @@ const getRowStyle = ({ row }: { row: PodUsOrderListData }) => { ...@@ -6176,15 +6176,8 @@ const getRowStyle = ({ row }: { row: PodUsOrderListData }) => {
color: '#67c23a', color: '#67c23a',
} }
} }
// 如果行被选中,设置背景色为 #fdf6ec // 选中状态通过 CSS 类名控制,这里不再处理
if (selection.value.some((item) => item.id === row.id)) { return {}
return {
backgroundColor: '#fdf6ec',
}
}
return {
backgroundColor: '',
}
} }
// 获取行类名方法 // 获取行类名方法
...@@ -7327,11 +7320,22 @@ useRouter().beforeEach((to, from, next) => { ...@@ -7327,11 +7320,22 @@ useRouter().beforeEach((to, from, next) => {
} }
} }
// 确保选中行的背景色在 hover 时也保持 // 设置选中行的背景色
:deep(.el-table__body) { :deep(.el-table__body) {
.el-table__row:hover {
td {
background-color: #e1ebf5 !important;
}
}
.el-table__row.row-selected {
td {
background-color: #faecd8 !important;
}
}
// 确保选中行的背景色在 hover 时也保持
.el-table__row.row-selected:hover { .el-table__row.row-selected:hover {
td { td {
background-color: #fdf6ec !important; background-color: #faecd8 !important;
} }
} }
} }
......
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