Merge branch 'zth' into dev
commit
573099031c
@ -1,75 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="Main">
|
|
||||||
<a-row class="top">
|
|
||||||
<a-col :span="5">
|
|
||||||
<div v-for="item in 5" :key="item">
|
|
||||||
<span>主</span>
|
|
||||||
<p>AGB14654614</p>
|
|
||||||
<span>待确认</span>
|
|
||||||
</div>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="19">col-8</a-col>
|
|
||||||
</a-row>
|
|
||||||
<div class="bottom">
|
|
||||||
<a-steps :current="1" class="steps">
|
|
||||||
<a-step>
|
|
||||||
<template #title>客户已确认</template>
|
|
||||||
<!-- <template #description>
|
|
||||||
<span>This is a description.</span>
|
|
||||||
</template> -->
|
|
||||||
</a-step>
|
|
||||||
<a-step>
|
|
||||||
<template #title>国外代理确认中</template>
|
|
||||||
<!-- <template #description>
|
|
||||||
<span>This is a description.</span>
|
|
||||||
</template> -->
|
|
||||||
</a-step>
|
|
||||||
<a-step>
|
|
||||||
<template #title>操作确认</template>
|
|
||||||
</a-step>
|
|
||||||
<a-step>
|
|
||||||
<template #title>发起截单</template>
|
|
||||||
</a-step>
|
|
||||||
</a-steps>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<script lang="ts" setup>
|
|
||||||
import { ref, onMounted } from 'vue'
|
|
||||||
import { useRoute } from 'vue-router'
|
|
||||||
import { GetBLConfirmation } from '../api'
|
|
||||||
const route = useRoute()
|
|
||||||
const businessId = ref(route.query.id)
|
|
||||||
onMounted(() => {
|
|
||||||
init()
|
|
||||||
})
|
|
||||||
async function init() {
|
|
||||||
let ApiData = {
|
|
||||||
businessId: businessId.value,
|
|
||||||
businessType: 1,
|
|
||||||
}
|
|
||||||
const res = await GetBLConfirmation(ApiData)
|
|
||||||
if (res.succeeded) {
|
|
||||||
return createMessage.success('申请成功!')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<style lang="less" scoped>
|
|
||||||
.Main {
|
|
||||||
height: 100%;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
.top {
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
.bottom {
|
|
||||||
padding: 10px 60px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: end;
|
|
||||||
box-shadow: 0px -3px 6px rgba(214, 214, 214, 1);
|
|
||||||
.steps {
|
|
||||||
width: 800px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,230 @@
|
|||||||
|
<template>
|
||||||
|
<div class="Main">
|
||||||
|
<div class="top">
|
||||||
|
<div class="Left">
|
||||||
|
<div class="LeftBox">
|
||||||
|
<div v-if="tasksList.length == 0" class="NoData">
|
||||||
|
<img src="../../../../assets/images/nodata.png" alt="" />
|
||||||
|
<div class="no-message">暂无数据</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<div
|
||||||
|
v-for="item in tasksList"
|
||||||
|
:key="item.id"
|
||||||
|
class="LeftUnit"
|
||||||
|
@click="ClickTasksUnit(item)"
|
||||||
|
>
|
||||||
|
<!-- active -->
|
||||||
|
<div class="activeBox" :class="activeId == item.id ? 'active' : ''">
|
||||||
|
<span v-if="item.isMainBL" class="type MainBL">主</span>
|
||||||
|
<span v-else class="type NoMainBL">分</span>
|
||||||
|
<p class="CsBlNumber">{{ item.blNumber }}</p>
|
||||||
|
</div>
|
||||||
|
<span class="CsState">{{ item.taskStatusName }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="Right">
|
||||||
|
<Info ref="RefInfo" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottom">
|
||||||
|
<a-steps :current="1" class="steps">
|
||||||
|
<a-step v-for="item in activeSteps" :key="item.id">
|
||||||
|
<template #title>{{ item.typeName }}</template>
|
||||||
|
<template #description>
|
||||||
|
<a-button size="Small">手动确认</a-button>
|
||||||
|
</template>
|
||||||
|
</a-step>
|
||||||
|
<!-- <a-step>
|
||||||
|
<template #title>客户已确认</template>
|
||||||
|
<template #description>
|
||||||
|
<span>This is a description.</span>
|
||||||
|
</template>
|
||||||
|
</a-step>
|
||||||
|
<a-step>
|
||||||
|
<template #title>国外代理确认中</template>
|
||||||
|
<template #description>
|
||||||
|
<span>This is a description.</span>
|
||||||
|
</template>
|
||||||
|
</a-step>
|
||||||
|
<a-step>
|
||||||
|
<template #title>操作确认</template>
|
||||||
|
</a-step>
|
||||||
|
<a-step>
|
||||||
|
<template #title>发起截单</template>
|
||||||
|
</a-step> -->
|
||||||
|
</a-steps>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, onMounted } from 'vue'
|
||||||
|
import { useRoute } from 'vue-router'
|
||||||
|
import { GetBLConfirmation, GetSeaExportBillManageInfo, BookingOrderGet } from '../../api'
|
||||||
|
import Info from './info.vue'
|
||||||
|
const route = useRoute()
|
||||||
|
const businessId = ref(route.query.id)
|
||||||
|
onMounted(() => {
|
||||||
|
init()
|
||||||
|
})
|
||||||
|
const tasksList = ref([])
|
||||||
|
const activeId = ref(null)
|
||||||
|
const activeSteps = ref([])
|
||||||
|
async function init() {
|
||||||
|
let ApiData = {
|
||||||
|
businessId: businessId.value,
|
||||||
|
businessType: 1,
|
||||||
|
}
|
||||||
|
const res = await GetBLConfirmation(ApiData)
|
||||||
|
if (res.succeeded) {
|
||||||
|
tasksList.value = res.data.tasks
|
||||||
|
if (res.data.tasks.length) {
|
||||||
|
ClickTasksUnit(res.data.tasks[0])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const RefInfo = ref<any>(null)
|
||||||
|
async function ClickTasksUnit(data) {
|
||||||
|
activeId.value = data.id
|
||||||
|
activeSteps.value = data.steps
|
||||||
|
RefInfo.value.dloading = true
|
||||||
|
let res: any = null
|
||||||
|
if (data.isMainBL) {
|
||||||
|
res = await BookingOrderGet({ id: data.businessId })
|
||||||
|
} else {
|
||||||
|
res = await GetSeaExportBillManageInfo({ id: data.businessId })
|
||||||
|
}
|
||||||
|
if (res.succeeded) {
|
||||||
|
RefInfo.value.dloading = false
|
||||||
|
const row = res.data
|
||||||
|
RefInfo.value.setFieldsValue1({
|
||||||
|
...row,
|
||||||
|
})
|
||||||
|
RefInfo.value.setFieldsValue2({
|
||||||
|
...row,
|
||||||
|
})
|
||||||
|
RefInfo.value.setFieldsValue3({
|
||||||
|
...row,
|
||||||
|
})
|
||||||
|
RefInfo.value.setFieldsValue4({
|
||||||
|
...row,
|
||||||
|
})
|
||||||
|
RefInfo.value.setFieldsValue5({
|
||||||
|
...row,
|
||||||
|
})
|
||||||
|
RefInfo.value.formData.cntrSealNo = row.cntrSealNo
|
||||||
|
RefInfo.value.formData.description = row.description
|
||||||
|
RefInfo.value.formData.marks = row.marks
|
||||||
|
RefInfo.value.ctnInfo.value = row.ctnInfo
|
||||||
|
console.log(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.Main {
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
.top {
|
||||||
|
display: flex;
|
||||||
|
flex: 1;
|
||||||
|
.Left {
|
||||||
|
width: 320px;
|
||||||
|
padding: 20px;
|
||||||
|
.LeftBox {
|
||||||
|
border: 1px solid rgba(232, 235, 237, 1);
|
||||||
|
height: 100%;
|
||||||
|
max-height: calc(100vh - 152px);
|
||||||
|
padding: 10px 20px 20px 6px;
|
||||||
|
overflow-y: auto;
|
||||||
|
.NoData {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
.LeftUnit {
|
||||||
|
display: flex;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
padding: 2px 9px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
.activeBox {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
&.active {
|
||||||
|
border-radius: 2px;
|
||||||
|
background: rgba(245, 249, 252, 1);
|
||||||
|
}
|
||||||
|
.type {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: 2px 7px 2px 0px;
|
||||||
|
opacity: 1;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 10px;
|
||||||
|
font-weight: 700;
|
||||||
|
letter-spacing: 0px;
|
||||||
|
line-height: 16px;
|
||||||
|
color: rgba(255, 255, 255, 1);
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
&.MainBL {
|
||||||
|
background: rgba(255, 141, 26, 1);
|
||||||
|
}
|
||||||
|
&.NoMainBL {
|
||||||
|
background: rgba(22, 119, 255, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.CsBlNumber {
|
||||||
|
height: 20px;
|
||||||
|
flex: 1;
|
||||||
|
margin-bottom: 0;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 400;
|
||||||
|
letter-spacing: 0px;
|
||||||
|
line-height: 20px;
|
||||||
|
color: rgba(51, 56, 61, 1);
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.CsState {
|
||||||
|
width: 80px;
|
||||||
|
height: 20px;
|
||||||
|
margin-left: 8px;
|
||||||
|
opacity: 1;
|
||||||
|
border-radius: 2px;
|
||||||
|
background: rgba(245, 249, 252, 1);
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 400;
|
||||||
|
letter-spacing: 0px;
|
||||||
|
line-height: 20px;
|
||||||
|
color: rgba(37, 122, 250, 1);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.Right {
|
||||||
|
flex: 1;
|
||||||
|
padding: 20px;
|
||||||
|
height: 100%;
|
||||||
|
max-height: calc(100vh - 152px);
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.bottom {
|
||||||
|
padding: 10px 60px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: end;
|
||||||
|
box-shadow: 0px -3px 6px rgba(214, 214, 214, 1);
|
||||||
|
.steps {
|
||||||
|
width: 800px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,409 @@
|
|||||||
|
<template>
|
||||||
|
<a-spin :spinning="dloading">
|
||||||
|
<!-- 集装箱表单 -->
|
||||||
|
|
||||||
|
<div class="flex mt10">
|
||||||
|
<!-- 收发通表单 -->
|
||||||
|
<BasicForm style="flex: 1" @register="registerForm" />
|
||||||
|
<!-- 集装箱组件 -->
|
||||||
|
<div style="width: 800px" class="ml15">
|
||||||
|
<BasicForm style="margin-bottom: 0" @register="containerForm" />
|
||||||
|
<container
|
||||||
|
ref="contBox"
|
||||||
|
:id="id"
|
||||||
|
:mainId="activeId"
|
||||||
|
:setFieldsValue="setFieldsValue3"
|
||||||
|
:ctnInfo="ctnInfo"
|
||||||
|
@calcPkgs="calcPkgs"
|
||||||
|
></container>
|
||||||
|
<!-- ETD表单 -->
|
||||||
|
<BasicForm style="margin-top: 8px" @register="ETDForm" @linkageForm="linkageETDForm" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<Divider type="horizontal" />
|
||||||
|
<div>
|
||||||
|
<a-row class="mt15">
|
||||||
|
<a-col :span="7">
|
||||||
|
<a-form
|
||||||
|
v-model="formData"
|
||||||
|
class="ant-form-small cntrSealNo"
|
||||||
|
style="margin-top: -15px"
|
||||||
|
layout="vertical"
|
||||||
|
>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="箱号封号">
|
||||||
|
<a-textarea
|
||||||
|
v-model:value="formData.cntrSealNo"
|
||||||
|
:autoSize="{ minRows: 10, maxRows: 10 }"
|
||||||
|
placeholder="请输入"
|
||||||
|
allow-clear
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24" style="margin-top: 26px">
|
||||||
|
<a-form-item label="唛头">
|
||||||
|
<a-textarea
|
||||||
|
v-model:value="formData.marks"
|
||||||
|
:autoSize="{ minRows: 9, maxRows: 9 }"
|
||||||
|
placeholder="请输入"
|
||||||
|
allow-clear
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-form>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="10">
|
||||||
|
<a-form
|
||||||
|
v-model="formData"
|
||||||
|
class="ant-form-small"
|
||||||
|
style="margin: -15px -12px 0 15px"
|
||||||
|
layout="vertical"
|
||||||
|
>
|
||||||
|
<a-form-item label="货物描述">
|
||||||
|
<a-textarea
|
||||||
|
v-model:value="formData.description"
|
||||||
|
:autoSize="{ minRows: 20, maxRows: 20 }"
|
||||||
|
style="height: 392px"
|
||||||
|
placeholder="请输入"
|
||||||
|
allow-clear
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="7">
|
||||||
|
<BasicForm
|
||||||
|
class="pkg"
|
||||||
|
style="margin: -15px -12px 0 27px"
|
||||||
|
@register="CountForm"
|
||||||
|
@submit="submit"
|
||||||
|
/>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<!-- 签单方式表单 -->
|
||||||
|
<BasicForm
|
||||||
|
style="margin-top: 0px"
|
||||||
|
class="issue-form"
|
||||||
|
@register="issueForm"
|
||||||
|
@linkageForm="linkageIssueForm"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</a-spin>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, reactive, defineProps, onMounted, defineAsyncComponent } from 'vue'
|
||||||
|
import { BasicForm, useForm } from '/@/components/Form/index'
|
||||||
|
import { formSchema1, formSchema2, formSchema3, formSchema4, formSchema5 } from './columns'
|
||||||
|
// 集装箱表格
|
||||||
|
const container = defineAsyncComponent(() => import('./container.vue'))
|
||||||
|
const props = defineProps({
|
||||||
|
// 业务id
|
||||||
|
id: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
activeId: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
// 详情信息
|
||||||
|
details: { type: Object, default: {} },
|
||||||
|
})
|
||||||
|
const dloading = ref(false)
|
||||||
|
// 集装箱数据
|
||||||
|
const ctnInfo = ref([])
|
||||||
|
// 代理表单
|
||||||
|
const formData = reactive({
|
||||||
|
cntrSealNo: '',
|
||||||
|
description: '',
|
||||||
|
marks: '',
|
||||||
|
})
|
||||||
|
// 集装箱上面的表单
|
||||||
|
const [
|
||||||
|
containerForm,
|
||||||
|
{ setFieldsValue: setFieldsValue5, validate: validate5, resetFields: resetFields5 },
|
||||||
|
] = useForm({
|
||||||
|
labelWidth: 150,
|
||||||
|
schemas: formSchema5,
|
||||||
|
showActionButtonGroup: false,
|
||||||
|
})
|
||||||
|
// 提单信息第一个表单(收发通)
|
||||||
|
const [
|
||||||
|
registerForm,
|
||||||
|
{
|
||||||
|
setFieldsValue: setFieldsValue1,
|
||||||
|
validate: validate1,
|
||||||
|
resetFields: resetFields1,
|
||||||
|
updateSchema,
|
||||||
|
},
|
||||||
|
] = useForm({
|
||||||
|
labelWidth: 150,
|
||||||
|
schemas: formSchema1,
|
||||||
|
showActionButtonGroup: false,
|
||||||
|
})
|
||||||
|
// 提单信息第二个表单
|
||||||
|
const [
|
||||||
|
ETDForm,
|
||||||
|
{
|
||||||
|
setFieldsValue: setFieldsValue2,
|
||||||
|
validate: validate2,
|
||||||
|
resetFields: resetFields2,
|
||||||
|
getFieldsValue: getFieldsValue2,
|
||||||
|
},
|
||||||
|
] = useForm({
|
||||||
|
labelWidth: 150,
|
||||||
|
schemas: formSchema2,
|
||||||
|
showActionButtonGroup: false,
|
||||||
|
})
|
||||||
|
// 箱数或件数表单
|
||||||
|
const [
|
||||||
|
CountForm,
|
||||||
|
{
|
||||||
|
setFieldsValue: setFieldsValue3,
|
||||||
|
validate: validate3,
|
||||||
|
resetFields: resetFields3,
|
||||||
|
getFieldsValue: getFieldsValue3,
|
||||||
|
},
|
||||||
|
] = useForm({
|
||||||
|
labelWidth: 150,
|
||||||
|
schemas: formSchema3,
|
||||||
|
showActionButtonGroup: false,
|
||||||
|
})
|
||||||
|
// 签单方式表单
|
||||||
|
const [
|
||||||
|
issueForm,
|
||||||
|
{ setFieldsValue: setFieldsValue4, validate: validate4, resetFields: resetFields4 },
|
||||||
|
] = useForm({
|
||||||
|
labelWidth: 150,
|
||||||
|
schemas: formSchema4,
|
||||||
|
showActionButtonGroup: false,
|
||||||
|
})
|
||||||
|
// 计算表单件数
|
||||||
|
const calcPkgs = (obj) => {
|
||||||
|
if (obj.value) {
|
||||||
|
if (obj.key == 'pkgs') {
|
||||||
|
setFieldsValue3({
|
||||||
|
noPkgs: obj.value,
|
||||||
|
pkgs: obj.value,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (obj.key == 'kgs') {
|
||||||
|
setFieldsValue3({
|
||||||
|
grossWeight: obj.value,
|
||||||
|
kgs: obj.value,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (obj.key == 'cbm') {
|
||||||
|
setFieldsValue3({
|
||||||
|
measurement: obj.value,
|
||||||
|
cbm: obj.value,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 起运港联动签单地
|
||||||
|
const linkageETDForm = (v) => {
|
||||||
|
setFieldsValue4({
|
||||||
|
issuePlace: v.portName,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
async function submit() {
|
||||||
|
setTimeout(() => {
|
||||||
|
let data = getFieldsValue3()
|
||||||
|
let SS = data.pkgs
|
||||||
|
if (SS) {
|
||||||
|
let GetStringNum = (str) => {
|
||||||
|
var num = 0
|
||||||
|
if (str == null || str == '') return num
|
||||||
|
if (str.length == 0) return num
|
||||||
|
var if_find = false
|
||||||
|
var str_num = ''
|
||||||
|
for (var i = 0; i < str.length; i += 1) {
|
||||||
|
var member = str.substr(i, 1)
|
||||||
|
if (
|
||||||
|
member == '0' ||
|
||||||
|
member == '1' ||
|
||||||
|
member == '2' ||
|
||||||
|
member == '3' ||
|
||||||
|
member == '4' ||
|
||||||
|
member == '5' ||
|
||||||
|
member == '6' ||
|
||||||
|
member == '7' ||
|
||||||
|
member == '8' ||
|
||||||
|
member == '9' ||
|
||||||
|
member == '.' ||
|
||||||
|
member == '-'
|
||||||
|
) {
|
||||||
|
if (!if_find) {
|
||||||
|
str_num = str_num + member
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if_find = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return str_num
|
||||||
|
}
|
||||||
|
let ToEn = (a) => {
|
||||||
|
// eslint-disable-next-line no-array-constructor
|
||||||
|
const arr1 = new Array('', ' thousand', ' million', ' billion')
|
||||||
|
const b = a.length
|
||||||
|
let f: any = null
|
||||||
|
let h = 0
|
||||||
|
let g = ''
|
||||||
|
const e = Math.ceil(b / 3)
|
||||||
|
const k = b - e * 3
|
||||||
|
g = ''
|
||||||
|
for (f = k; f < b; f += 3) {
|
||||||
|
++h
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
const num3 = f >= 0 ? a.substring(f, f + 3) : a.substring(0, k + 3)
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
const strEng = English(num3)
|
||||||
|
// eslint-disable-next-line eqeqeq
|
||||||
|
if (strEng != '') {
|
||||||
|
// eslint-disable-next-line eqeqeq
|
||||||
|
if (g != '') g += ' '
|
||||||
|
g += English(num3) + arr1[e - h]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return g
|
||||||
|
}
|
||||||
|
let English = (a) => {
|
||||||
|
// eslint-disable-next-line no-array-constructor
|
||||||
|
var arr2 = new Array(
|
||||||
|
'zero',
|
||||||
|
'ten',
|
||||||
|
'twenty',
|
||||||
|
'thirty',
|
||||||
|
'forty',
|
||||||
|
'fifty',
|
||||||
|
'sixty',
|
||||||
|
'seventy',
|
||||||
|
'eighty',
|
||||||
|
'ninety',
|
||||||
|
)
|
||||||
|
// eslint-disable-next-line no-array-constructor
|
||||||
|
var arr3 = new Array(
|
||||||
|
'zero',
|
||||||
|
'one',
|
||||||
|
'two',
|
||||||
|
'three',
|
||||||
|
'four',
|
||||||
|
'five',
|
||||||
|
'six',
|
||||||
|
'seven',
|
||||||
|
'eight',
|
||||||
|
'nine',
|
||||||
|
)
|
||||||
|
// eslint-disable-next-line no-array-constructor
|
||||||
|
var arr4 = new Array(
|
||||||
|
'ten',
|
||||||
|
'eleven',
|
||||||
|
'twelve',
|
||||||
|
'thirteen',
|
||||||
|
'fourteen',
|
||||||
|
'fifteen',
|
||||||
|
'sixteen',
|
||||||
|
'seventeen',
|
||||||
|
'eighteen',
|
||||||
|
'nineteen',
|
||||||
|
)
|
||||||
|
|
||||||
|
let strRet = ''
|
||||||
|
// eslint-disable-next-line eqeqeq
|
||||||
|
if (a.length == 3 && a.substr(0, 3) != '000') {
|
||||||
|
if (a.substr(0, 1) != '0') {
|
||||||
|
strRet += arr3[a.substr(0, 1)] + ' hundred'
|
||||||
|
if (a.substr(1, 2) != '00') strRet += ' and '
|
||||||
|
} else {
|
||||||
|
strRet += ' and '
|
||||||
|
}
|
||||||
|
a = a.substring(1)
|
||||||
|
}
|
||||||
|
if (a.length == 2) {
|
||||||
|
if (a.substr(0, 1) == '0') a = a.substring(1)
|
||||||
|
else if (a.substr(0, 1) == '1') strRet += arr4[a.substr(1, 2)]
|
||||||
|
else {
|
||||||
|
strRet += arr2[a.substr(0, 1)]
|
||||||
|
if (a.substr(1, 1) != '0') strRet += '-'
|
||||||
|
a = a.substring(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (a.length == 1 && a.substr(0, 1) != '0') strRet += arr3[a.substr(0, 1)]
|
||||||
|
return strRet
|
||||||
|
}
|
||||||
|
SS = SS.toString()
|
||||||
|
const i = SS.indexOf('\n')
|
||||||
|
let num = 0
|
||||||
|
let strKind: any = ''
|
||||||
|
let enCapital = ''
|
||||||
|
if (i > 0) {
|
||||||
|
const slist = SS.split('\n')
|
||||||
|
for (let i = 0; i < slist.length; i += 1) {
|
||||||
|
const member = slist[i]
|
||||||
|
const strNum: any = GetStringNum(member)
|
||||||
|
if (i == 0) {
|
||||||
|
strKind = member.substring(strNum.length)
|
||||||
|
}
|
||||||
|
num = parseFloat(num).add(parseFloat(strNum))
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strKind !== '') {
|
||||||
|
enCapital = strKind
|
||||||
|
} else {
|
||||||
|
strKind = data.kindPkgsName ? data.kindPkgsName : ''
|
||||||
|
enCapital = ToEn(num).toUpperCase() + ' ' + strKind + ' ONLY.'
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const strNum: any = GetStringNum(SS)
|
||||||
|
strKind = SS.substring(strNum.length) ? SS.substring(strNum.length) : ''
|
||||||
|
if (strKind !== '') {
|
||||||
|
enCapital = strKind
|
||||||
|
} else {
|
||||||
|
strKind = data.kindPkgsName ? data.kindPkgsName : ''
|
||||||
|
enCapital = 'SAY:' + ToEn(strNum).toUpperCase() + ' ' + strKind + ' ONLY.'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setFieldsValue4({ totalNo: enCapital })
|
||||||
|
} else {
|
||||||
|
setFieldsValue4({ totalNo: '' })
|
||||||
|
}
|
||||||
|
}, 0)
|
||||||
|
}
|
||||||
|
// 签单日期联动开船日期
|
||||||
|
const linkageIssueForm = (v) => {
|
||||||
|
const data = getFieldsValue2()
|
||||||
|
if (v == 'FREIGHT COLLECT') {
|
||||||
|
// 到付
|
||||||
|
setFieldsValue4({
|
||||||
|
payableAt: data.dischargePort,
|
||||||
|
payableAtId: data.dischargePortId,
|
||||||
|
payableAtCode: data.dischargePortCode,
|
||||||
|
prepareAt: null,
|
||||||
|
prepareAtId: null,
|
||||||
|
prepareAtCode: null,
|
||||||
|
})
|
||||||
|
} else if (v == 'FREIGHT PREPAID') {
|
||||||
|
// 预付
|
||||||
|
setFieldsValue4({
|
||||||
|
prepareAt: data.loadPort,
|
||||||
|
prepareAtId: data.loadPortId,
|
||||||
|
prepareAtCode: data.loadPortCode,
|
||||||
|
payableAt: null,
|
||||||
|
payableAtId: null,
|
||||||
|
payableAtCode: null,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
setFieldsValue2({
|
||||||
|
etd: v,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
defineExpose({
|
||||||
|
setFieldsValue1,
|
||||||
|
setFieldsValue2,
|
||||||
|
setFieldsValue3,
|
||||||
|
setFieldsValue4,
|
||||||
|
setFieldsValue5,
|
||||||
|
formData,
|
||||||
|
ctnInfo,
|
||||||
|
dloading,
|
||||||
|
})
|
||||||
|
</script>
|
Loading…
Reference in New Issue