|
@@ -2,7 +2,7 @@
|
|
<div class="w-[100vw] bg-white page-cargo-consolidation">
|
|
<div class="w-[100vw] bg-white page-cargo-consolidation">
|
|
<div
|
|
<div
|
|
v-loading="loading"
|
|
v-loading="loading"
|
|
- class="pt-2 w-[100%] min-h-[100vh]"
|
|
|
|
|
|
+ class="w-[100%] min-h-[100vh]"
|
|
>
|
|
>
|
|
<el-form
|
|
<el-form
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
@@ -10,8 +10,12 @@
|
|
:loading="loading"
|
|
:loading="loading"
|
|
@submit.prevent="getList"
|
|
@submit.prevent="getList"
|
|
>
|
|
>
|
|
- <el-form-item label="ETD Range">
|
|
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="ETD Range"
|
|
|
|
+ style="margin-bottom: 10px"
|
|
|
|
+ >
|
|
<el-date-picker
|
|
<el-date-picker
|
|
|
|
+ size="small"
|
|
v-model="dateRange"
|
|
v-model="dateRange"
|
|
type="daterange"
|
|
type="daterange"
|
|
unlink-panels
|
|
unlink-panels
|
|
@@ -21,7 +25,7 @@
|
|
:shortcuts="dateShortcuts"
|
|
:shortcuts="dateShortcuts"
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item>
|
|
|
|
|
|
+ <el-form-item style="margin-bottom: 10px">
|
|
<el-tooltip content="时间范围最好不要选太大, 不然数据太多会卡">
|
|
<el-tooltip content="时间范围最好不要选太大, 不然数据太多会卡">
|
|
<el-button
|
|
<el-button
|
|
class="custom-button"
|
|
class="custom-button"
|
|
@@ -265,12 +269,35 @@
|
|
>
|
|
>
|
|
保存更改
|
|
保存更改
|
|
</el-button>
|
|
</el-button>
|
|
|
|
+ <!-- <el-tooltip
|
|
|
|
+ content="下方复选框勾上的行可以被转移到新的航次.有新增编辑删除的不能勾."
|
|
|
|
+ >
|
|
|
|
+ <el-button
|
|
|
|
+ v-if="
|
|
|
|
+ ['Arrangement'].includes(currentTab) ||
|
|
|
|
+ (['可用'].includes(currentRow.Status) &&
|
|
|
|
+ ['my_request'].includes(currentTab))
|
|
|
|
+ "
|
|
|
|
+ size="small"
|
|
|
|
+ type="danger"
|
|
|
|
+ @click="dialogFlyVisible = true"
|
|
|
|
+ >
|
|
|
|
+ 转移
|
|
|
|
+ </el-button>
|
|
|
|
+ </el-tooltip>-->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="flex justify-end min-w-[380px] gap-2">
|
|
|
|
- <div class="flex">总重量: {{ computedWeight }}</div>
|
|
|
|
- <div class="flex">总体积: {{ computedCube }}</div>
|
|
|
|
- <div class="flex">总离岸价: {{ computedTotalFOB }}</div>
|
|
|
|
|
|
+ <div>
|
|
|
|
+ <div class="flex justify-end min-w-[380px] gap-2">
|
|
|
|
+ <div class="flex">总重量: {{ computedWeight }}</div>
|
|
|
|
+ <div class="flex">总体积: {{ computedCube }}</div>
|
|
|
|
+ <div class="flex">总离岸价: {{ computedTotalFOB }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="flex justify-end min-w-[380px] gap-2">
|
|
|
|
+ <div class="flex">已选重量: {{ computedSelectedWeight }}</div>
|
|
|
|
+ <div class="flex">已选体积: {{ computedSelectedCube }}</div>
|
|
|
|
+ <div class="flex">已选离岸价: {{ computedSelectedTotalFOB }}</div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<el-table
|
|
<el-table
|
|
@@ -285,12 +312,13 @@
|
|
? '暂无数据'
|
|
? '暂无数据'
|
|
: '请点击voyage表格其中一行以查询相应记录'
|
|
: '请点击voyage表格其中一行以查询相应记录'
|
|
"
|
|
"
|
|
|
|
+ @selection-change="handleSelectionChange"
|
|
border
|
|
border
|
|
>
|
|
>
|
|
<el-table-column
|
|
<el-table-column
|
|
fixed
|
|
fixed
|
|
type="index"
|
|
type="index"
|
|
- width="50"
|
|
|
|
|
|
+ width="40"
|
|
></el-table-column>
|
|
></el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
:sortable="currentTab === 'Arrangement'"
|
|
:sortable="currentTab === 'Arrangement'"
|
|
@@ -493,7 +521,7 @@
|
|
"
|
|
"
|
|
fixed="right"
|
|
fixed="right"
|
|
label="操作"
|
|
label="操作"
|
|
- width="90"
|
|
|
|
|
|
+ width="100"
|
|
>
|
|
>
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
<el-tooltip
|
|
<el-tooltip
|
|
@@ -524,7 +552,7 @@
|
|
label="重量 (KG)"
|
|
label="重量 (KG)"
|
|
:sortable="currentTab === 'Arrangement'"
|
|
:sortable="currentTab === 'Arrangement'"
|
|
:sort-method="customSort4"
|
|
:sort-method="customSort4"
|
|
- width="95"
|
|
|
|
|
|
+ width="100"
|
|
>
|
|
>
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
<el-input
|
|
<el-input
|
|
@@ -574,12 +602,18 @@
|
|
:sort-method="refSort"
|
|
:sort-method="refSort"
|
|
label="Reference"
|
|
label="Reference"
|
|
fixed="right"
|
|
fixed="right"
|
|
- width="115"
|
|
|
|
|
|
+ width="110"
|
|
>
|
|
>
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
<div class="">{{ scope.row.Reference || scope.row.PO_Number }}</div>
|
|
<div class="">{{ scope.row.Reference || scope.row.PO_Number }}</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ :selectable="calcSelectAble"
|
|
|
|
+ type="selection"
|
|
|
|
+ width="40"
|
|
|
|
+ fixed="right"
|
|
|
|
+ />
|
|
</el-table>
|
|
</el-table>
|
|
|
|
|
|
<el-drawer
|
|
<el-drawer
|
|
@@ -658,6 +692,43 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+ <!--<el-dialog
|
|
|
|
+ style="margin-top: 35vh"
|
|
|
|
+ title="将已选记录转移到新的航次"
|
|
|
|
+ :modelValue="dialogFlyVisible"
|
|
|
|
+ @close="closeFlyDialog"
|
|
|
|
+ width="600px"
|
|
|
|
+ >
|
|
|
|
+ <el-form>
|
|
|
|
+ <el-form-item label="航次">
|
|
|
|
+ <el-select v-model="flyTarget">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in computedList"
|
|
|
|
+ :key="item.id"
|
|
|
|
+ :label="item.Name"
|
|
|
|
+ :value="item.id"
|
|
|
|
+ ></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <div class="w-full flex justify-center">
|
|
|
|
+ <el-button
|
|
|
|
+ size="small"
|
|
|
|
+ type="primary"
|
|
|
|
+ @click="fly"
|
|
|
|
+ >
|
|
|
|
+ 确定
|
|
|
|
+ </el-button>
|
|
|
|
+ <el-button
|
|
|
|
+ size="small"
|
|
|
|
+ @click="closeFlyDialog"
|
|
|
|
+ >
|
|
|
|
+ 取消
|
|
|
|
+ </el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ </el-dialog> -->
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -804,8 +875,8 @@ let getList = () => {
|
|
duration: 3000,
|
|
duration: 3000,
|
|
})
|
|
})
|
|
list.value = []
|
|
list.value = []
|
|
- clearSubList()
|
|
|
|
}
|
|
}
|
|
|
|
+ clearSubList()
|
|
})
|
|
})
|
|
.finally(() => (loading.value = false))
|
|
.finally(() => (loading.value = false))
|
|
}
|
|
}
|
|
@@ -1453,6 +1524,30 @@ let computedTotalFOB = computed(() => {
|
|
}, 0)
|
|
}, 0)
|
|
.toFixed(2)
|
|
.toFixed(2)
|
|
})
|
|
})
|
|
|
|
+let computedSelectedWeight = computed(() => {
|
|
|
|
+ return selectedRow.value
|
|
|
|
+ .reduce((t, c) => {
|
|
|
|
+ t = t + Number(c.Weight)
|
|
|
|
+ return t
|
|
|
|
+ }, 0)
|
|
|
|
+ .toFixed(2)
|
|
|
|
+})
|
|
|
|
+let computedSelectedCube = computed(() => {
|
|
|
|
+ return selectedRow.value
|
|
|
|
+ .reduce((t, c) => {
|
|
|
|
+ t = t + Number(c.Cube)
|
|
|
|
+ return t
|
|
|
|
+ }, 0)
|
|
|
|
+ .toFixed(2)
|
|
|
|
+})
|
|
|
|
+let computedSelectedTotalFOB = computed(() => {
|
|
|
|
+ return selectedRow.value
|
|
|
|
+ .reduce((t, c) => {
|
|
|
|
+ t = t + Number(c.Total_FOB)
|
|
|
|
+ return t
|
|
|
|
+ }, 0)
|
|
|
|
+ .toFixed(2)
|
|
|
|
+})
|
|
|
|
|
|
// 订单轨迹地图插件
|
|
// 订单轨迹地图插件
|
|
let mapDrawerVisible = ref(false)
|
|
let mapDrawerVisible = ref(false)
|
|
@@ -1575,6 +1670,52 @@ let batchRecordSort = (a: any, b: any) => {
|
|
}
|
|
}
|
|
return 0
|
|
return 0
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// ===== 控制把部分行数据飞(转移)到另一个航次, 选中子表的行, 然后弹窗展示航次列表选一个航次提交, 实际上是把选中子表行的parent_id改为新航次的id ======
|
|
|
|
+let selectedRow = ref([] as any[])
|
|
|
|
+const handleSelectionChange = (val: any[]) => {
|
|
|
|
+ selectedRow.value = val
|
|
|
|
+}
|
|
|
|
+let calcSelectAble = (row: any) =>
|
|
|
|
+ !row.addFlag && !row.deleteFlag && !row.editFlag
|
|
|
|
+// let dialogFlyVisible = ref(false)
|
|
|
|
+// let flyTarget = ref('')
|
|
|
|
+/* let closeFlyDialog = () => {
|
|
|
|
+ dialogFlyVisible.value = false
|
|
|
|
+ flyTarget.value = ''
|
|
|
|
+} */
|
|
|
|
+/*let fly = () => {
|
|
|
|
+ console.log(selectedRow.value, 'selectedRow')
|
|
|
|
+ if (!flyTarget.value || !selectedRow.value.length) {
|
|
|
|
+ ElMessage.error('请选择航次和要转移的记录')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ zoho.CRM.API.updateRecord({
|
|
|
|
+ Entity: 'Sea_Freight_Details',
|
|
|
|
+ Trigger: ['workflow'],
|
|
|
|
+ APIData: selectedRow.value.map((i: any) => {
|
|
|
|
+ return {
|
|
|
|
+ id: i.id,
|
|
|
|
+ Parent_Id: flyTarget.value,
|
|
|
|
+ }
|
|
|
|
+ }),
|
|
|
|
+ }).then((res: any) => {
|
|
|
|
+ if (
|
|
|
|
+ Array.isArray(res.data) &&
|
|
|
|
+ res.data.length &&
|
|
|
|
+ res.data[0].code === 'SUCCESS'
|
|
|
|
+ ) {
|
|
|
|
+ ElMessage.success('操作成功, 正在刷新数据')
|
|
|
|
+ loading.value = false
|
|
|
|
+ closeFlyDialog()
|
|
|
|
+ clearSubList()
|
|
|
|
+ getSubList(currentRow.value)
|
|
|
|
+ } else {
|
|
|
|
+ loading.value = false
|
|
|
|
+ ElMessage.error('操作失败, 请稍后再试或者联系管理员')
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+}*/
|
|
</script>
|
|
</script>
|
|
<style lang="scss">
|
|
<style lang="scss">
|
|
.page-cargo-consolidation {
|
|
.page-cargo-consolidation {
|