重构海运出口
commit
d8c3883d59
@ -0,0 +1,123 @@
|
||||
<template>
|
||||
<BasicModal
|
||||
v-bind="$attrs"
|
||||
:use-wrapper="true"
|
||||
:title="getTitle"
|
||||
width="60%"
|
||||
@register="registerModal"
|
||||
@ok="handleSave"
|
||||
>
|
||||
<BasicForm @register="registerForm" />
|
||||
<!--右下角按钮-->
|
||||
<template #footer>
|
||||
<a-button
|
||||
pre-icon="ant-design:close-outlined"
|
||||
type="warning"
|
||||
:loading="loading"
|
||||
ghost
|
||||
style="margin-right: 0.8rem"
|
||||
@click="closeModal"
|
||||
>取消</a-button
|
||||
>
|
||||
<a-button
|
||||
type="success"
|
||||
:loading="loading"
|
||||
pre-icon="ant-design:check-outlined"
|
||||
style="margin-right: 0.8rem"
|
||||
@click="handleSave(false)"
|
||||
>仅保存</a-button
|
||||
>
|
||||
<a-button
|
||||
pre-icon="ant-design:check-circle-outlined"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
@click="handleSave(true)"
|
||||
>保存并关闭</a-button
|
||||
>
|
||||
</template>
|
||||
</BasicModal>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref, computed, unref } from 'vue'
|
||||
import { BasicModal, useModalInner } from '/@/components/Modal'
|
||||
import { BasicForm, useForm } from '/@/components/Form/index'
|
||||
import { formSchema } from './columns'
|
||||
import { ApiEdit, ApiInfo } from './api'
|
||||
import { useMessage } from '/@/hooks/web/useMessage'
|
||||
// 声明Emits
|
||||
const emit = defineEmits(['success', 'register'])
|
||||
const isUpdate = ref(true)
|
||||
const loading = ref(false)
|
||||
const rowId = ref('')
|
||||
const { createMessage } = useMessage()
|
||||
const [registerForm, { resetFields, setFieldsValue, validate }] = useForm({
|
||||
labelWidth: 100,
|
||||
schemas: formSchema,
|
||||
showActionButtonGroup: false,
|
||||
})
|
||||
|
||||
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
|
||||
resetFields()
|
||||
setModalProps({ confirmLoading: false, loading: true })
|
||||
isUpdate.value = !!data?.isUpdate
|
||||
if (unref(isUpdate)) {
|
||||
// setModalProps({ confirmLoading: true });
|
||||
rowId.value = data.record.id
|
||||
const res: API.DataResult = await ApiInfo({ id: unref(rowId) })
|
||||
if (res.succeeded) {
|
||||
setFieldsValue({
|
||||
...res.data,
|
||||
})
|
||||
// console.log('返回数据Form', getFieldsValue());
|
||||
// setFieldsValue({ trainId: unref(res.data.trainId) });
|
||||
}
|
||||
// setModalProps({ confirmLoading: false });
|
||||
} else {
|
||||
setFieldsValue({ permissionIdentity: unref(2) })
|
||||
}
|
||||
setModalProps({ loading: false })
|
||||
})
|
||||
|
||||
const getTitle = computed(() => (!unref(isUpdate) ? '新增EDI设置' : '编辑EDI设置'))
|
||||
|
||||
async function handleSave(exit) {
|
||||
try {
|
||||
const values = await validate()
|
||||
setModalProps({ confirmLoading: true, loading: true })
|
||||
// TODO custom api
|
||||
console.log(values)
|
||||
// loading.value = true;
|
||||
const res: API.DataResult = await ApiEdit(values)
|
||||
console.log(res)
|
||||
if (res.succeeded) {
|
||||
createMessage.success(res.message)
|
||||
emit('success')
|
||||
//刷新页面
|
||||
if (!exit) {
|
||||
if (unref(isUpdate)) {
|
||||
await refresh()
|
||||
} else {
|
||||
rowId.value = res.data
|
||||
isUpdate.value = true
|
||||
await refresh()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
createMessage.error(res.message)
|
||||
}
|
||||
|
||||
exit && closeModal()
|
||||
} finally {
|
||||
// loading.value = false;
|
||||
setModalProps({ confirmLoading: false, loading: false })
|
||||
}
|
||||
}
|
||||
async function refresh() {
|
||||
const res: API.DataResult = await ApiInfo({ id: unref(rowId) })
|
||||
if (res.succeeded) {
|
||||
await setFieldsValue({
|
||||
...res.data,
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
@ -0,0 +1,44 @@
|
||||
import { request } from '/@/utils/request'
|
||||
import { DataResult, PageRequest } from '/@/api/model/baseModel'
|
||||
enum Api {
|
||||
list = '/mainApi/EdiSet/GetEdiSetList',
|
||||
edit = '/mainApi/EdiSet/EditEdiSet',
|
||||
info = '/mainApi/EdiSet/GetEdiSetInfo',
|
||||
|
||||
Del = '/mainApi/EdiSet/BatchDelEdiSet',
|
||||
|
||||
}
|
||||
// 列表 (Auth)
|
||||
export function ApiList(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.list,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 编辑 (Auth)
|
||||
export function ApiEdit(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.edit,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 详情 (Auth)
|
||||
export function ApiInfo(query) {
|
||||
return request<DataResult>({
|
||||
url: Api.info,
|
||||
method: 'get',
|
||||
params: query,
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除 (Auth)
|
||||
export function ApiDel(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.Del,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
@ -0,0 +1,491 @@
|
||||
import { BasicColumn, FormSchema } from '/@/components/Table'
|
||||
import { GetCarrierlist } from '/@/views/operation/seaexport/api/BookingLedger'
|
||||
import { getDictOption } from '/@/utils/dictUtil'
|
||||
import { ref } from 'vue'
|
||||
let ForData = (data, label, value) => {
|
||||
let RData: any = []
|
||||
data.forEach((e) => {
|
||||
RData.push({ ...e, label: e[label], value: e[value] })
|
||||
})
|
||||
return RData
|
||||
}
|
||||
const customTypeDict = ref([])
|
||||
const ediTypeDict = ref([])
|
||||
// 列表
|
||||
export const columns: BasicColumn[] = [
|
||||
{
|
||||
title: 'EDI类型代码',
|
||||
dataIndex: 'ediTypeCode',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: 'EDI类型名称',
|
||||
dataIndex: 'ediName',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '服务器IP',
|
||||
dataIndex: 'serverIp',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '文件夹',
|
||||
dataIndex: 'folderName',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '用户名',
|
||||
dataIndex: 'userName',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '密码',
|
||||
dataIndex: 'password',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '发送方代码',
|
||||
dataIndex: 'sendCode',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '接收方代码',
|
||||
dataIndex: 'receiveCode',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '发送方名称',
|
||||
dataIndex: 'sendName',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '发送方联系人',
|
||||
dataIndex: 'sendAttn',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '发送方电话',
|
||||
dataIndex: 'sendTel',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '发送方邮箱',
|
||||
dataIndex: 'sendEmail',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '发送方公司代码',
|
||||
dataIndex: 'sendCompanyCode',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '发送方部门代码',
|
||||
dataIndex: 'sendSubCompanyCode',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '船公司代码',
|
||||
dataIndex: 'carrierCode',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '船公司名称',
|
||||
dataIndex: 'carrierName',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '船公司Id',
|
||||
dataIndex: 'carrierId',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '接收方邮箱',
|
||||
dataIndex: 'receiveEmail',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '接收方SI邮箱',
|
||||
dataIndex: 'receiveSiEmail',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '接收方操作',
|
||||
dataIndex: 'receiveOp',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '接收方销售',
|
||||
dataIndex: 'receiveSale',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '接收方部门',
|
||||
dataIndex: 'receiveDept',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '发送人电话',
|
||||
dataIndex: 'shipperTel',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '收货人电话',
|
||||
dataIndex: 'consigneeTel',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '通知人电话',
|
||||
dataIndex: 'notifypartyTel',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '发送类型',
|
||||
dataIndex: 'sendType',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '发送方别名',
|
||||
dataIndex: 'aliasSendCode',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '发货方代码',
|
||||
dataIndex: 'sendShipperCode',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: 'FTP主动模式',
|
||||
dataIndex: 'ftpModeActive',
|
||||
width: 200,
|
||||
},
|
||||
// {
|
||||
// title: '是否启用',
|
||||
// dataIndex: 'status',
|
||||
// width: 80,
|
||||
// customRender: ({ text }) => {
|
||||
// if (text === 0) {
|
||||
// return <Tag color="success">启用</Tag>
|
||||
// } else if (text === 1) {
|
||||
// return <Tag color="error">禁用</Tag>
|
||||
// }
|
||||
// return text
|
||||
// },
|
||||
// },
|
||||
{
|
||||
title: '创建时间',
|
||||
dataIndex: 'createTime',
|
||||
width: 200,
|
||||
},
|
||||
]
|
||||
// 搜索
|
||||
export const searchFormSchema: FormSchema[] = [
|
||||
{
|
||||
field: 'ediTypeCode',
|
||||
label: 'EDI类型',
|
||||
component: 'Select',
|
||||
colProps: { span: 6 },
|
||||
componentProps: ({ formModel }) => {
|
||||
if (ediTypeDict.value.length == 0) {
|
||||
getDictOption('edi_type').then((res) => {
|
||||
ediTypeDict.value = res
|
||||
})
|
||||
}
|
||||
return {
|
||||
options: ediTypeDict.value,
|
||||
allowClear: true,
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any) => {
|
||||
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
},
|
||||
onChange: (e, obj) => {
|
||||
if (obj) {
|
||||
formModel.ediTypeCode = obj.value
|
||||
formModel.ediName = obj.label
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
]
|
||||
export const formSchema: FormSchema[] = [
|
||||
{
|
||||
label: '',
|
||||
field: 'id',
|
||||
component: 'Input',
|
||||
defaultValue: '',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
label: '基础信息',
|
||||
field: '基础信息',
|
||||
component: 'Divider',
|
||||
colProps: { lg: 24, md: 24 },
|
||||
},
|
||||
{
|
||||
field: 'carrierCode',
|
||||
label: '船公司代码',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
field: 'carrierName',
|
||||
label: '船公司名称',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
field: 'carrierId',
|
||||
label: '船公司',
|
||||
component: 'Select',
|
||||
required: false,
|
||||
dynamicDisabled: false,
|
||||
colProps: { span: 6 },
|
||||
componentProps: ({ formModel }) => {
|
||||
if (customTypeDict.value.length == 0) {
|
||||
GetCarrierlist().then((res) => {
|
||||
customTypeDict.value = ForData(res.data, 'shortName', 'id')
|
||||
})
|
||||
}
|
||||
return {
|
||||
options: customTypeDict.value,
|
||||
allowClear: true,
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any) => {
|
||||
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
},
|
||||
onChange: (e, obj) => {
|
||||
if (obj) {
|
||||
formModel.carrierId = obj.id
|
||||
formModel.carrierName = obj.shortName
|
||||
formModel.carrierCode = obj.codeName
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'ediName',
|
||||
label: 'EDI类型名称',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
field: 'ediTypeCode',
|
||||
label: 'EDI类型代码',
|
||||
component: 'Select',
|
||||
colProps: { span: 6 },
|
||||
required: true,
|
||||
componentProps: ({ formModel }) => {
|
||||
if (ediTypeDict.value.length == 0) {
|
||||
getDictOption('edi_type').then((res) => {
|
||||
ediTypeDict.value = res
|
||||
})
|
||||
}
|
||||
return {
|
||||
options: ediTypeDict.value,
|
||||
allowClear: true,
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any) => {
|
||||
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
},
|
||||
onChange: (e, obj) => {
|
||||
if (obj) {
|
||||
formModel.ediTypeCode = obj.value
|
||||
formModel.ediName = obj.label
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
field: 'serverIp',
|
||||
label: '服务器IP',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
field: 'folderName',
|
||||
label: '文件夹',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
field: 'userName',
|
||||
label: '用户名',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
field: 'password',
|
||||
label: '密码',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
field: 'sendType',
|
||||
label: '发送类型',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'ftpModeActive',
|
||||
label: 'FTP主动模式',
|
||||
component: 'RadioButtonGroup',
|
||||
defaultValue: true,
|
||||
colProps: { span: 6 },
|
||||
componentProps: {
|
||||
options: [
|
||||
{ label: '是', value: true },
|
||||
{ label: '否', value: false },
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '发送方',
|
||||
field: '发送方',
|
||||
component: 'Divider',
|
||||
colProps: { lg: 24, md: 24 },
|
||||
},
|
||||
{
|
||||
field: 'sendName',
|
||||
label: '名称',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'sendCode',
|
||||
label: '代码',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'sendAttn',
|
||||
label: '联系人',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'sendTel',
|
||||
label: '电话',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'sendEmail',
|
||||
label: '邮箱',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'sendCompanyCode',
|
||||
label: '公司代码',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'sendSubCompanyCode',
|
||||
label: '部门代码',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'aliasSendCode',
|
||||
label: '别名代码',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'sendShipperCode',
|
||||
label: '发货方代码',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
label: '接收方',
|
||||
field: '接收方',
|
||||
component: 'Divider',
|
||||
colProps: { lg: 24, md: 24 },
|
||||
},
|
||||
{
|
||||
field: 'receiveCode',
|
||||
label: '代码',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'receiveEmail',
|
||||
label: '邮箱',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'receiveSiEmail',
|
||||
label: 'SI邮箱',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'receiveOp',
|
||||
label: '操作',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'receiveSale',
|
||||
label: '销售',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'receiveDept',
|
||||
label: '部门',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
label: '收发通',
|
||||
field: '收发通',
|
||||
component: 'Divider',
|
||||
colProps: { lg: 24, md: 24 },
|
||||
},
|
||||
{
|
||||
field: 'shipperTel',
|
||||
label: '发件人电话',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'consigneeTel',
|
||||
label: '收货人电话',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
field: 'notifypartyTel',
|
||||
label: '通知人电话',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
|
||||
// {
|
||||
// field: 'status',
|
||||
// label: '是否可用',
|
||||
// component: 'RadioButtonGroup',
|
||||
// defaultValue: 0,
|
||||
// colProps: { span: 6 },
|
||||
// componentProps: {
|
||||
// options: [
|
||||
// { label: '禁用', value: 1 },
|
||||
// { label: '启用', value: 0 },
|
||||
// ],
|
||||
// },
|
||||
// },
|
||||
]
|
@ -0,0 +1,123 @@
|
||||
<template>
|
||||
<BasicModal
|
||||
v-bind="$attrs"
|
||||
:use-wrapper="true"
|
||||
:title="getTitle"
|
||||
width="40%"
|
||||
@register="registerModal"
|
||||
@ok="handleSave"
|
||||
>
|
||||
<BasicForm @register="registerForm" />
|
||||
<!--右下角按钮-->
|
||||
<template #footer>
|
||||
<a-button
|
||||
pre-icon="ant-design:close-outlined"
|
||||
type="warning"
|
||||
:loading="loading"
|
||||
ghost
|
||||
style="margin-right: 0.8rem"
|
||||
@click="closeModal"
|
||||
>取消</a-button
|
||||
>
|
||||
<a-button
|
||||
type="success"
|
||||
:loading="loading"
|
||||
pre-icon="ant-design:check-outlined"
|
||||
style="margin-right: 0.8rem"
|
||||
@click="handleSave(false)"
|
||||
>仅保存</a-button
|
||||
>
|
||||
<a-button
|
||||
pre-icon="ant-design:check-circle-outlined"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
@click="handleSave(true)"
|
||||
>保存并关闭</a-button
|
||||
>
|
||||
</template>
|
||||
</BasicModal>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref, computed, unref } from 'vue'
|
||||
import { BasicModal, useModalInner } from '/@/components/Modal'
|
||||
import { BasicForm, useForm } from '/@/components/Form/index'
|
||||
import { formSchema } from './columns'
|
||||
import { ApiEdit, ApiInfo } from './api'
|
||||
import { useMessage } from '/@/hooks/web/useMessage'
|
||||
// 声明Emits
|
||||
const emit = defineEmits(['success', 'register'])
|
||||
const isUpdate = ref(true)
|
||||
const loading = ref(false)
|
||||
const rowId = ref('')
|
||||
const { createMessage } = useMessage()
|
||||
const [registerForm, { resetFields, setFieldsValue, validate }] = useForm({
|
||||
labelWidth: 100,
|
||||
schemas: formSchema,
|
||||
showActionButtonGroup: false,
|
||||
})
|
||||
|
||||
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
|
||||
resetFields()
|
||||
setModalProps({ confirmLoading: false, loading: true })
|
||||
isUpdate.value = !!data?.isUpdate
|
||||
if (unref(isUpdate)) {
|
||||
// setModalProps({ confirmLoading: true });
|
||||
rowId.value = data.record.id
|
||||
const res: API.DataResult = await ApiInfo({ id: unref(rowId) })
|
||||
if (res.succeeded) {
|
||||
setFieldsValue({
|
||||
...res.data,
|
||||
})
|
||||
// console.log('返回数据Form', getFieldsValue());
|
||||
// setFieldsValue({ trainId: unref(res.data.trainId) });
|
||||
}
|
||||
// setModalProps({ confirmLoading: false });
|
||||
} else {
|
||||
setFieldsValue({ permissionIdentity: unref(2) })
|
||||
}
|
||||
setModalProps({ loading: false })
|
||||
})
|
||||
|
||||
const getTitle = computed(() => (!unref(isUpdate) ? '新增订单关系人' : '编辑订单关系人'))
|
||||
|
||||
async function handleSave(exit) {
|
||||
try {
|
||||
const values = await validate()
|
||||
setModalProps({ confirmLoading: true, loading: true })
|
||||
// TODO custom api
|
||||
console.log(values)
|
||||
// loading.value = true;
|
||||
const res: API.DataResult = await ApiEdit(values)
|
||||
console.log(res)
|
||||
if (res.succeeded) {
|
||||
createMessage.success(res.message)
|
||||
emit('success')
|
||||
//刷新页面
|
||||
if (!exit) {
|
||||
if (unref(isUpdate)) {
|
||||
await refresh()
|
||||
} else {
|
||||
rowId.value = res.data
|
||||
isUpdate.value = true
|
||||
await refresh()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
createMessage.error(res.message)
|
||||
}
|
||||
|
||||
exit && closeModal()
|
||||
} finally {
|
||||
// loading.value = false;
|
||||
setModalProps({ confirmLoading: false, loading: false })
|
||||
}
|
||||
}
|
||||
async function refresh() {
|
||||
const res: API.DataResult = await ApiInfo({ id: unref(rowId) })
|
||||
if (res.succeeded) {
|
||||
await setFieldsValue({
|
||||
...res.data,
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
@ -0,0 +1,54 @@
|
||||
|
||||
import { request } from '/@/utils/request'
|
||||
import { DataResult, PageRequest } from '/@/api/model/baseModel'
|
||||
enum Api {
|
||||
list = '/mainApi/OrderContact/GetOrderContactList',
|
||||
edit = '/mainApi/OrderContact/EditOrderContact',
|
||||
info = '/mainApi/OrderContact/GetOrderContactInfo',
|
||||
|
||||
OrderContact = '/mainApi/OrderContact/GetOrderContactListByClientId',
|
||||
Del = '/mainApi/OrderContact/BatchDelOrderContact',
|
||||
|
||||
}
|
||||
// 列表 (Auth)
|
||||
export function ApiList(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.list,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 编辑 (Auth)
|
||||
export function ApiEdit(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.edit,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 详情 (Auth)
|
||||
export function ApiInfo(query) {
|
||||
return request<DataResult>({
|
||||
url: Api.info,
|
||||
method: 'get',
|
||||
params: query,
|
||||
})
|
||||
}
|
||||
|
||||
// 根据客户Id获取订单关系人列表 (Auth)
|
||||
export function GetOrderContact(query) {
|
||||
return request<DataResult>({
|
||||
url: Api.OrderContact,
|
||||
method: 'get',
|
||||
params: query,
|
||||
})
|
||||
}
|
||||
// 批量删除 (Auth)
|
||||
export function ApiDel(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.Del,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
@ -0,0 +1,100 @@
|
||||
import { BasicColumn, FormSchema } from '/@/components/Table'
|
||||
|
||||
// 列表
|
||||
export const columns: BasicColumn[] = [
|
||||
{
|
||||
title: '客户类别',
|
||||
dataIndex: 'customerType',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '客户Id',
|
||||
dataIndex: 'customerId',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '客户名称',
|
||||
dataIndex: 'customerName',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '角色代码',
|
||||
dataIndex: 'roleCode',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '联系人',
|
||||
dataIndex: 'name',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '电话',
|
||||
dataIndex: 'tel',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '邮箱',
|
||||
dataIndex: 'email',
|
||||
width: 200,
|
||||
},
|
||||
]
|
||||
// 搜索
|
||||
export const searchFormSchema: FormSchema[] = [
|
||||
{
|
||||
field: 'customerName',
|
||||
label: '客户名称',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
]
|
||||
export const formSchema: FormSchema[] = [
|
||||
{
|
||||
label: '',
|
||||
field: 'id',
|
||||
component: 'Input',
|
||||
defaultValue: '',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
field: 'customerType',
|
||||
label: '客户类别',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'customerId',
|
||||
label: '客户Id',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'customerName',
|
||||
label: '客户名称',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'roleCode',
|
||||
label: '角色代码',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'name',
|
||||
label: '联系人',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'tel',
|
||||
label: '电话',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'email',
|
||||
label: '邮箱',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
]
|
@ -0,0 +1,123 @@
|
||||
<template>
|
||||
<BasicModal
|
||||
v-bind="$attrs"
|
||||
:use-wrapper="true"
|
||||
:title="getTitle"
|
||||
width="50%"
|
||||
@register="registerModal"
|
||||
@ok="handleSave"
|
||||
>
|
||||
<BasicForm @register="registerForm" />
|
||||
<!--右下角按钮-->
|
||||
<template #footer>
|
||||
<a-button
|
||||
pre-icon="ant-design:close-outlined"
|
||||
type="warning"
|
||||
:loading="loading"
|
||||
ghost
|
||||
style="margin-right: 0.8rem"
|
||||
@click="closeModal"
|
||||
>取消</a-button
|
||||
>
|
||||
<a-button
|
||||
type="success"
|
||||
:loading="loading"
|
||||
pre-icon="ant-design:check-outlined"
|
||||
style="margin-right: 0.8rem"
|
||||
@click="handleSave(false)"
|
||||
>仅保存</a-button
|
||||
>
|
||||
<a-button
|
||||
pre-icon="ant-design:check-circle-outlined"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
@click="handleSave(true)"
|
||||
>保存并关闭</a-button
|
||||
>
|
||||
</template>
|
||||
</BasicModal>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref, computed, unref } from 'vue'
|
||||
import { BasicModal, useModalInner } from '/@/components/Modal'
|
||||
import { BasicForm, useForm } from '/@/components/Form/index'
|
||||
import { formSchema } from './columns'
|
||||
import { ApiEdit, ApiInfo } from './api'
|
||||
import { useMessage } from '/@/hooks/web/useMessage'
|
||||
// 声明Emits
|
||||
const emit = defineEmits(['success', 'register'])
|
||||
const isUpdate = ref(true)
|
||||
const loading = ref(false)
|
||||
const rowId = ref('')
|
||||
const { createMessage } = useMessage()
|
||||
const [registerForm, { resetFields, setFieldsValue, validate }] = useForm({
|
||||
labelWidth: 100,
|
||||
schemas: formSchema,
|
||||
showActionButtonGroup: false,
|
||||
})
|
||||
|
||||
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
|
||||
resetFields()
|
||||
setModalProps({ confirmLoading: false, loading: true })
|
||||
isUpdate.value = !!data?.isUpdate
|
||||
if (unref(isUpdate)) {
|
||||
// setModalProps({ confirmLoading: true });
|
||||
rowId.value = data.record.id
|
||||
const res: API.DataResult = await ApiInfo({ id: unref(rowId) })
|
||||
if (res.succeeded) {
|
||||
setFieldsValue({
|
||||
...res.data,
|
||||
})
|
||||
// console.log('返回数据Form', getFieldsValue());
|
||||
// setFieldsValue({ trainId: unref(res.data.trainId) });
|
||||
}
|
||||
// setModalProps({ confirmLoading: false });
|
||||
} else {
|
||||
setFieldsValue({ permissionIdentity: unref(2) })
|
||||
}
|
||||
setModalProps({ loading: false })
|
||||
})
|
||||
|
||||
const getTitle = computed(() => (!unref(isUpdate) ? '新增收发通' : '编辑收发通'))
|
||||
|
||||
async function handleSave(exit) {
|
||||
try {
|
||||
const values = await validate()
|
||||
setModalProps({ confirmLoading: true, loading: true })
|
||||
// TODO custom api
|
||||
console.log(values)
|
||||
// loading.value = true;
|
||||
const res: API.DataResult = await ApiEdit(values)
|
||||
console.log(res)
|
||||
if (res.succeeded) {
|
||||
createMessage.success(res.message)
|
||||
emit('success')
|
||||
//刷新页面
|
||||
if (!exit) {
|
||||
if (unref(isUpdate)) {
|
||||
await refresh()
|
||||
} else {
|
||||
rowId.value = res.data
|
||||
isUpdate.value = true
|
||||
await refresh()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
createMessage.error(res.message)
|
||||
}
|
||||
|
||||
exit && closeModal()
|
||||
} finally {
|
||||
// loading.value = false;
|
||||
setModalProps({ confirmLoading: false, loading: false })
|
||||
}
|
||||
}
|
||||
async function refresh() {
|
||||
const res: API.DataResult = await ApiInfo({ id: unref(rowId) })
|
||||
if (res.succeeded) {
|
||||
await setFieldsValue({
|
||||
...res.data,
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
@ -0,0 +1,45 @@
|
||||
|
||||
import { request } from '/@/utils/request'
|
||||
import { DataResult, PageRequest } from '/@/api/model/baseModel'
|
||||
enum Api {
|
||||
list = '/opApi/ShippingBillTemplate/GetShippingBillTemplateList',
|
||||
edit = '/opApi/ShippingBillTemplate/EditShippingBillTemplate',
|
||||
info = '/opApi/ShippingBillTemplate/GetShippingBillTemplateInfo',
|
||||
|
||||
Del = '/opApi/ShippingBillTemplate/BatchDelShippingBillTemplate',
|
||||
|
||||
}
|
||||
// 列表 (Auth)
|
||||
export function ApiList(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.list,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 编辑 (Auth)
|
||||
export function ApiEdit(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.edit,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 详情 (Auth)
|
||||
export function ApiInfo(query) {
|
||||
return request<DataResult>({
|
||||
url: Api.info,
|
||||
method: 'get',
|
||||
params: query,
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除 (Auth)
|
||||
export function ApiDel(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.Del,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
@ -0,0 +1,192 @@
|
||||
import { BasicColumn, FormSchema } from '/@/components/Table'
|
||||
import { GetCountrySelectList } from '/@/views/baseinfo/port/api'
|
||||
import { ref } from 'vue'
|
||||
const CountryDict = ref([])
|
||||
let ForData = (data, label, value) => {
|
||||
let RData: any = []
|
||||
data.forEach((e) => {
|
||||
RData.push({ ...e, label: e[label], value: e[value] })
|
||||
})
|
||||
return RData
|
||||
}
|
||||
let TypeList = [
|
||||
{ label: '收货人', value: '1' },
|
||||
{ label: '发货人', value: '2' },
|
||||
{ label: '通知人', value: '3' },
|
||||
]
|
||||
// 列表
|
||||
export const columns: BasicColumn[] = [
|
||||
{
|
||||
title: '模板名称',
|
||||
dataIndex: 'templateName',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '名称',
|
||||
dataIndex: 'name',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '地址',
|
||||
dataIndex: 'address',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '国家',
|
||||
dataIndex: 'countryName',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '电话',
|
||||
dataIndex: 'tel',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '类型',
|
||||
dataIndex: 'type',
|
||||
width: 200,
|
||||
customRender: ({ record }) => {
|
||||
let RData = ''
|
||||
TypeList.forEach((item) => {
|
||||
if (item.value == record.type) {
|
||||
RData = item.label
|
||||
}
|
||||
})
|
||||
return RData
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '备注',
|
||||
dataIndex: 'note',
|
||||
width: 200,
|
||||
},
|
||||
]
|
||||
// 搜索
|
||||
export const searchFormSchema: FormSchema[] = [
|
||||
{
|
||||
field: 'type',
|
||||
label: '类型',
|
||||
component: 'Select',
|
||||
required: false,
|
||||
dynamicDisabled: false,
|
||||
colProps: { span: 6 },
|
||||
componentProps: ({ formModel }) => {
|
||||
return {
|
||||
options: TypeList,
|
||||
allowClear: true,
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any) => {
|
||||
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
},
|
||||
onChange: (e, obj) => {
|
||||
if (obj) {
|
||||
formModel.carrierId = obj.id
|
||||
formModel.carrierName = obj.shortName
|
||||
formModel.carrierCode = obj.codeName
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
]
|
||||
export const formSchema: FormSchema[] = [
|
||||
{
|
||||
label: '',
|
||||
field: 'id',
|
||||
component: 'Input',
|
||||
defaultValue: '',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
field: 'templateName',
|
||||
label: '模板名称',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'name',
|
||||
label: '名称',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'address',
|
||||
label: '地址',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
label: '国家code',
|
||||
field: 'countryName',
|
||||
component: 'Input',
|
||||
defaultValue: '',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
field: 'country',
|
||||
label: '国家',
|
||||
component: 'Select',
|
||||
required: false,
|
||||
dynamicDisabled: false,
|
||||
colProps: { span: 12 },
|
||||
componentProps: ({ formModel }) => {
|
||||
if (CountryDict.value.length == 0) {
|
||||
GetCountrySelectList().then((res) => {
|
||||
CountryDict.value = ForData(res.data, 'countryName', 'id')
|
||||
})
|
||||
}
|
||||
return {
|
||||
options: CountryDict.value,
|
||||
allowClear: true,
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any) => {
|
||||
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
},
|
||||
onChange: (e, obj) => {
|
||||
if (obj) {
|
||||
formModel.countryName = obj.countryName
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
field: 'tel',
|
||||
label: '电话',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
|
||||
{
|
||||
field: 'type',
|
||||
label: '类型',
|
||||
component: 'Select',
|
||||
required: false,
|
||||
dynamicDisabled: false,
|
||||
colProps: { span: 12 },
|
||||
componentProps: ({ formModel }) => {
|
||||
return {
|
||||
options: TypeList,
|
||||
allowClear: true,
|
||||
showSearch: true,
|
||||
filterOption: (input: string, option: any) => {
|
||||
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
},
|
||||
onChange: (e, obj) => {
|
||||
if (obj) {
|
||||
formModel.carrierId = obj.id
|
||||
formModel.carrierName = obj.shortName
|
||||
formModel.carrierCode = obj.codeName
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'note',
|
||||
label: '备注',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
]
|
@ -0,0 +1,123 @@
|
||||
<template>
|
||||
<BasicModal
|
||||
v-bind="$attrs"
|
||||
:use-wrapper="true"
|
||||
:title="getTitle"
|
||||
width="50%"
|
||||
@register="registerModal"
|
||||
@ok="handleSave"
|
||||
>
|
||||
<BasicForm @register="registerForm" />
|
||||
<!--右下角按钮-->
|
||||
<template #footer>
|
||||
<a-button
|
||||
pre-icon="ant-design:close-outlined"
|
||||
type="warning"
|
||||
:loading="loading"
|
||||
ghost
|
||||
style="margin-right: 0.8rem"
|
||||
@click="closeModal"
|
||||
>取消</a-button
|
||||
>
|
||||
<a-button
|
||||
type="success"
|
||||
:loading="loading"
|
||||
pre-icon="ant-design:check-outlined"
|
||||
style="margin-right: 0.8rem"
|
||||
@click="handleSave(false)"
|
||||
>仅保存</a-button
|
||||
>
|
||||
<a-button
|
||||
pre-icon="ant-design:check-circle-outlined"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
@click="handleSave(true)"
|
||||
>保存并关闭</a-button
|
||||
>
|
||||
</template>
|
||||
</BasicModal>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref, computed, unref } from 'vue'
|
||||
import { BasicModal, useModalInner } from '/@/components/Modal'
|
||||
import { BasicForm, useForm } from '/@/components/Form/index'
|
||||
import { formSchema } from './columns'
|
||||
import { ApiEdit, ApiInfo } from './api'
|
||||
import { useMessage } from '/@/hooks/web/useMessage'
|
||||
// 声明Emits
|
||||
const emit = defineEmits(['success', 'register'])
|
||||
const isUpdate = ref(true)
|
||||
const loading = ref(false)
|
||||
const rowId = ref('')
|
||||
const { createMessage } = useMessage()
|
||||
const [registerForm, { resetFields, setFieldsValue, validate }] = useForm({
|
||||
labelWidth: 100,
|
||||
schemas: formSchema,
|
||||
showActionButtonGroup: false,
|
||||
})
|
||||
|
||||
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
|
||||
resetFields()
|
||||
setModalProps({ confirmLoading: false, loading: true })
|
||||
isUpdate.value = !!data?.isUpdate
|
||||
if (unref(isUpdate)) {
|
||||
// setModalProps({ confirmLoading: true });
|
||||
rowId.value = data.record.id
|
||||
const res: API.DataResult = await ApiInfo({ id: unref(rowId) })
|
||||
if (res.succeeded) {
|
||||
setFieldsValue({
|
||||
...res.data,
|
||||
})
|
||||
// console.log('返回数据Form', getFieldsValue());
|
||||
// setFieldsValue({ trainId: unref(res.data.trainId) });
|
||||
}
|
||||
// setModalProps({ confirmLoading: false });
|
||||
} else {
|
||||
setFieldsValue({ permissionIdentity: unref(2) })
|
||||
}
|
||||
setModalProps({ loading: false })
|
||||
})
|
||||
|
||||
const getTitle = computed(() => (!unref(isUpdate) ? '新增用户邮箱' : '编辑用户邮箱'))
|
||||
|
||||
async function handleSave(exit) {
|
||||
try {
|
||||
const values = await validate()
|
||||
setModalProps({ confirmLoading: true, loading: true })
|
||||
// TODO custom api
|
||||
console.log(values)
|
||||
// loading.value = true;
|
||||
const res: API.DataResult = await ApiEdit(values)
|
||||
console.log(res)
|
||||
if (res.succeeded) {
|
||||
createMessage.success(res.message)
|
||||
emit('success')
|
||||
//刷新页面
|
||||
if (!exit) {
|
||||
if (unref(isUpdate)) {
|
||||
await refresh()
|
||||
} else {
|
||||
rowId.value = res.data
|
||||
isUpdate.value = true
|
||||
await refresh()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
createMessage.error(res.message)
|
||||
}
|
||||
|
||||
exit && closeModal()
|
||||
} finally {
|
||||
// loading.value = false;
|
||||
setModalProps({ confirmLoading: false, loading: false })
|
||||
}
|
||||
}
|
||||
async function refresh() {
|
||||
const res: API.DataResult = await ApiInfo({ id: unref(rowId) })
|
||||
if (res.succeeded) {
|
||||
await setFieldsValue({
|
||||
...res.data,
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
@ -0,0 +1,45 @@
|
||||
|
||||
import { request } from '/@/utils/request'
|
||||
import { DataResult, PageRequest } from '/@/api/model/baseModel'
|
||||
enum Api {
|
||||
list = '/mainApi/UserEmail/GetUserEmailList',
|
||||
edit = '/mainApi/UserEmail/EditUserEmail',
|
||||
info = '/mainApi/UserEmail/GetUserEmailInfo',
|
||||
|
||||
Del = '/mainApi/UserEmail/BatchDelUserEmail',
|
||||
|
||||
}
|
||||
// 列表 (Auth)
|
||||
export function ApiList(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.list,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 编辑 (Auth)
|
||||
export function ApiEdit(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.edit,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 详情 (Auth)
|
||||
export function ApiInfo(query) {
|
||||
return request<DataResult>({
|
||||
url: Api.info,
|
||||
method: 'get',
|
||||
params: query,
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除 (Auth)
|
||||
export function ApiDel(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.Del,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
@ -0,0 +1,178 @@
|
||||
import { BasicColumn, FormSchema } from '/@/components/Table'
|
||||
|
||||
let TFList = [
|
||||
{ label: '是', value: true },
|
||||
{ label: '否', value: false },
|
||||
]
|
||||
// 列表
|
||||
export const columns: BasicColumn[] = [
|
||||
{
|
||||
title: '邮箱账号',
|
||||
dataIndex: 'mailAccount',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '发件显示名',
|
||||
dataIndex: 'showName',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '密码',
|
||||
dataIndex: 'password',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '收件服务器',
|
||||
dataIndex: 'receiveServer',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '收件端口',
|
||||
dataIndex: 'receivePort',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '使用IMAP4',
|
||||
dataIndex: 'useImap',
|
||||
width: 200,
|
||||
customRender: ({ record }) => {
|
||||
let RData = ''
|
||||
TFList.forEach((item) => {
|
||||
if (item.value == record.useImap) {
|
||||
RData = item.label
|
||||
}
|
||||
})
|
||||
return RData
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '发件服务器',
|
||||
dataIndex: 'smtpServer',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '收件SSL',
|
||||
dataIndex: 'receiveSSL',
|
||||
width: 200,
|
||||
customRender: ({ record }) => {
|
||||
let RData = ''
|
||||
TFList.forEach((item) => {
|
||||
if (item.value == record.useImap) {
|
||||
RData = item.label
|
||||
}
|
||||
})
|
||||
return RData
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
title: '发件端口',
|
||||
dataIndex: 'smtpPort',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '发件SSL',
|
||||
dataIndex: 'smtpSSL',
|
||||
width: 200,
|
||||
customRender: ({ record }) => {
|
||||
let RData = ''
|
||||
TFList.forEach((item) => {
|
||||
if (item.value == record.useImap) {
|
||||
RData = item.label
|
||||
}
|
||||
})
|
||||
return RData
|
||||
},
|
||||
},
|
||||
]
|
||||
// 搜索
|
||||
export const searchFormSchema: FormSchema[] = [
|
||||
{
|
||||
field: 'mailAccount',
|
||||
label: '邮箱账号',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
]
|
||||
export const formSchema: FormSchema[] = [
|
||||
{
|
||||
label: '',
|
||||
field: 'id',
|
||||
component: 'Input',
|
||||
defaultValue: '',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
field: 'mailAccount',
|
||||
label: '邮箱账号',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'showName',
|
||||
label: '发件显示名',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'password',
|
||||
label: '密码',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'receiveServer',
|
||||
label: '收件服务器',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
|
||||
{
|
||||
field: 'receivePort',
|
||||
label: '收件端口',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'useImap',
|
||||
label: '使用IMAP4',
|
||||
component: 'RadioButtonGroup',
|
||||
defaultValue: true,
|
||||
colProps: { span: 12 },
|
||||
componentProps: {
|
||||
options: TFList,
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'smtpServer',
|
||||
label: '发件服务器',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'receiveSSL',
|
||||
label: '收件SSL',
|
||||
component: 'RadioButtonGroup',
|
||||
defaultValue: true,
|
||||
colProps: { span: 12 },
|
||||
componentProps: {
|
||||
options: TFList,
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'smtpPort',
|
||||
label: '发件端口',
|
||||
component: 'Input',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
{
|
||||
field: 'smtpSSL',
|
||||
label: '发件SSL',
|
||||
component: 'RadioButtonGroup',
|
||||
defaultValue: true,
|
||||
colProps: { span: 12 },
|
||||
componentProps: {
|
||||
options: TFList,
|
||||
},
|
||||
},
|
||||
]
|
@ -1,266 +1,4 @@
|
||||
{
|
||||
"code": 0,
|
||||
"multiCode": "Data_Query_Success",
|
||||
"count": 0,
|
||||
"message": "查询成功",
|
||||
"succeeded": true,
|
||||
"data": {
|
||||
"ediInfo": {
|
||||
"id": "1795664152585441280",
|
||||
"businessId": "1794974161731457024",
|
||||
"customerName": null,
|
||||
"sendCode": null,
|
||||
"receiveCode": "1",
|
||||
"notifyCdoe": null,
|
||||
"salerCode": null,
|
||||
"masterBolIndicator": null,
|
||||
"emanifestHbl": null,
|
||||
"consigneeEdiCode": null,
|
||||
"shipperEdiCode": null,
|
||||
"ediAttn": null,
|
||||
"ediAttnTel": "1",
|
||||
"ediAttnMail": null,
|
||||
"amsConsignee": null,
|
||||
"amsNotifyParty": null,
|
||||
"opEName": null,
|
||||
"opTel": "1",
|
||||
"opEmail": "1",
|
||||
"acihbl": null,
|
||||
"s0CC0C": null,
|
||||
"goodsName": null,
|
||||
"masterBolIndicatorName": null,
|
||||
"salerCodeName": null,
|
||||
"ckhi": null,
|
||||
"cncm": null,
|
||||
"wncm": null,
|
||||
"orderRemark": null,
|
||||
"exRemark1": null,
|
||||
"exRemark2": null,
|
||||
"exRemark3": null,
|
||||
"exRemark4": null,
|
||||
"kingTareweight": null,
|
||||
"xmcywy": null,
|
||||
"emcNameAccount": null,
|
||||
"cnptNo": null
|
||||
},
|
||||
"id": "1794974161731457024",
|
||||
"parentId": "0",
|
||||
"businessStatus": 0,
|
||||
"businessStatusName": null,
|
||||
"billFeeStatus": 0,
|
||||
"billFeeStatusTime": null,
|
||||
"isBusinessLocking": false,
|
||||
"isFeeLocking": false,
|
||||
"arFeeStatus": 0,
|
||||
"apFeeStatus": 0,
|
||||
"arInvoiceStatus": 0,
|
||||
"apInvoiceStatus": 0,
|
||||
"arCheckStatus": 0,
|
||||
"businessDate": "2024-05-30 09:52:18",
|
||||
"accountDate": "2024-08",
|
||||
"mblno": "WebTest001",
|
||||
"hblno": "WebTest001",
|
||||
"customerNo": "2405270001",
|
||||
"transNo": null,
|
||||
"customerId": "1790269205392789504",
|
||||
"customerName": "QDDS/青岛东胜",
|
||||
"blType": "合票分票",
|
||||
"shipperId": null,
|
||||
"consigneeId": null,
|
||||
"notifyPartyId": null,
|
||||
"agentId": "1788484097849561088",
|
||||
"agent": "1",
|
||||
"shipperContent": "WEBTEST001",
|
||||
"consigneeContent": "WEBTEST002",
|
||||
"notifyPartyContent": "WEBTEST001",
|
||||
"agentContent": null,
|
||||
"yardId": "1788484097849561088",
|
||||
"yard": "123123",
|
||||
"vessel": "1763455594347499520",
|
||||
"vesselId": "0",
|
||||
"voyno": "1763475534341345280",
|
||||
"etd": "2024-05-22 16:01:01",
|
||||
"eta": "2024-05-28 09:36:28",
|
||||
"atd": "2024-05-27 16:29:44",
|
||||
"ata": null,
|
||||
"closingDate": "2024-05-28 09:36:20",
|
||||
"receiptPlace": "CALLAO",
|
||||
"receiptPlaceId": "1763399503139966976",
|
||||
"loadPortId": "1763399503139966976",
|
||||
"loadPort": "CALLAO",
|
||||
"dischargePortId": "1763399503139966976",
|
||||
"dischargePort": "CALLAO",
|
||||
"deliveryPlaceId": "1763399503139966976",
|
||||
"deliveryPlace": "CALLAO",
|
||||
"destinationId": "1763399503139966976",
|
||||
"destination": "CALLAO",
|
||||
"noBill": "ONE",
|
||||
"copyNoBill": "ONE",
|
||||
"issueType": null,
|
||||
"issueDate": "2024-05-28 10:20:00",
|
||||
"issuePlaceId": "1763399503139966976",
|
||||
"issuePlace": "CALLAO",
|
||||
"blIssueSatus": null,
|
||||
"prepareAtId": "0",
|
||||
"prepareAt": "1763399503139966976",
|
||||
"payableAt": "1763399503139966976",
|
||||
"service": null,
|
||||
"marks": "WebTest001",
|
||||
"cntrSealNo": null,
|
||||
"noPkgs": null,
|
||||
"description": "WebTest001",
|
||||
"goodsName": "1763017385863942144",
|
||||
"goodsId": "0",
|
||||
"grossWeight": null,
|
||||
"measurement": null,
|
||||
"pkgs": 8,
|
||||
"kindPkgs": "1763017299448696832",
|
||||
"kgs": 8.0,
|
||||
"cbm": 8.0,
|
||||
"totalNo": "SAY:ONE HUNDRED AND TWENTY-ONE ONLY.",
|
||||
"cntrNo": null,
|
||||
"cntr1": 0,
|
||||
"cntr2": 0,
|
||||
"cntr3": 0,
|
||||
"cntr4": 0,
|
||||
"cntr5": 0,
|
||||
"cntr6": 0,
|
||||
"cntr7": 0,
|
||||
"cntr8": 0,
|
||||
"cntr9": 0,
|
||||
"cntr10": 0,
|
||||
"otherCntr": 10,
|
||||
"teu": 14,
|
||||
"cntrTotal": "*3*4*3*4",
|
||||
"operatorId": "1770719115145777152",
|
||||
"customerService": "1770719115145777152",
|
||||
"foreignCustomerService": "1770719115145777152",
|
||||
"laneId": "1763453587733745664",
|
||||
"lane": "WebTest001",
|
||||
"saleId": "1771068747235332096",
|
||||
"sale": null,
|
||||
"carrierId": "0",
|
||||
"carrier": "1772138307266940928",
|
||||
"forwarderId": "0",
|
||||
"forwarder": null,
|
||||
"customserId": "0",
|
||||
"customser": "1788484097849561088",
|
||||
"truckerId": "0",
|
||||
"trucker": "1788484097849561088",
|
||||
"invoiceNo": null,
|
||||
"cargoId": "R",
|
||||
"dangerClass": "",
|
||||
"dangerNo": "",
|
||||
"dangerPage": "",
|
||||
"dangerLabel": "",
|
||||
"reeferQuantity": "2",
|
||||
"temperatureUnit": "C",
|
||||
"temperatureSet": "1",
|
||||
"temperatureMin": "2",
|
||||
"temperatureMax": "2",
|
||||
"sourceId": "0",
|
||||
"sourceDetailId": "0",
|
||||
"sourceDetailName": null,
|
||||
"customsNum": 0,
|
||||
"contractNo": "1",
|
||||
"bookingType": null,
|
||||
"bookingNo": "1",
|
||||
"insuranceer": null,
|
||||
"insuranceNo": null,
|
||||
"insuranceAmount": null,
|
||||
"isVoucher": false,
|
||||
"voucherNo": null,
|
||||
"remark": null,
|
||||
"isFumigation": false,
|
||||
"isStorage": false,
|
||||
"isLand": false,
|
||||
"isCustoms": false,
|
||||
"isInspection": false,
|
||||
"isBooking": false,
|
||||
"isAgent": false,
|
||||
"isHBLNO": false,
|
||||
"service9": false,
|
||||
"service10": false,
|
||||
"doc": "0",
|
||||
"packingType": null,
|
||||
"wareHouse": null,
|
||||
"closeDocDate": "2024-05-28 00:04:00",
|
||||
"intoPortDocDate": "0001-01-01 00:00:00",
|
||||
"saleDeptId": "0",
|
||||
"mblFrt": "1767427156532662272",
|
||||
"stlName": null,
|
||||
"stlDate": "1901-01-01 00:00:00",
|
||||
"orderType": null,
|
||||
"orderNo": null,
|
||||
"operatorCode": null,
|
||||
"isOperator": false,
|
||||
"operatorEmail": null,
|
||||
"operatorTel": null,
|
||||
"operatorFax": null,
|
||||
"financialStaffCode": "true",
|
||||
"isFinancialStaff": false,
|
||||
"financialStaffEmail": null,
|
||||
"financialStaffTel": null,
|
||||
"financialStaffFax": null,
|
||||
"sourceCode": null,
|
||||
"linkMan": null,
|
||||
"hsCode": "WebTest001",
|
||||
"ediRemark": "WebTest001",
|
||||
"mailProjectId": "0",
|
||||
"irCode": null,
|
||||
"serviceContractNo": "1",
|
||||
"applyNo": null,
|
||||
"customNo": "WebTest001",
|
||||
"customDate": "1901-01-01 00:00:00",
|
||||
"enterpriseId": "0",
|
||||
"enterprise": "1788484097849561088",
|
||||
"inspectionNo": "WebTest001",
|
||||
"inspectionDate": "1901-01-01 00:00:00",
|
||||
"tradeTerm": "门到门",
|
||||
"termDelivery": "3",
|
||||
"clearCustomDate": "1900-01-01 00:00:00",
|
||||
"insperctService": "1788484097849561088",
|
||||
"shipAgencyId": "0",
|
||||
"shipAgency": "0",
|
||||
"humidity": "2",
|
||||
"masterShipperId": null,
|
||||
"masterConsigneeId": null,
|
||||
"masterNotifyPartyId": null,
|
||||
"masterConsigneeContent": null,
|
||||
"masterNotifyPartyContent": null,
|
||||
"masterShipperContent": null,
|
||||
"masterDescription": null,
|
||||
"isContainerSoc": false,
|
||||
"tranStatus": null,
|
||||
"manifestStatus": null,
|
||||
"isMoreGood": false,
|
||||
"isPrintReceipt": false,
|
||||
"vessel2N": "1763455594347499520",
|
||||
"vesselId2N": "0",
|
||||
"voyno2N": "WebTest001",
|
||||
"deliveryDate": "2024-05-28 08:18:59",
|
||||
"yardATTN": null,
|
||||
"yardTel": null,
|
||||
"saleOrgId": "1760142686767157248",
|
||||
"transport": "CALLAO",
|
||||
"transRemark": null,
|
||||
"preRecord": 0,
|
||||
"note": "",
|
||||
"createTime": "2024-05-27 14:09:24",
|
||||
"closeDocRemark": "WebTest001",
|
||||
"bookingRemark": "WebTest001",
|
||||
"blIssueStatus": 0,
|
||||
"billSubmitStatus": 0,
|
||||
"isBookingYZ": null,
|
||||
"closeVgmDate": null,
|
||||
"transportCode": "1438781440",
|
||||
"thirdPayAt": "",
|
||||
"shipper": null,
|
||||
"consignee": null,
|
||||
"notifyParty": null,
|
||||
"innerVoyno": "1",
|
||||
"secondNotifyPartyId": null,
|
||||
"secondNotifyParty": null,
|
||||
"secondNotifyPartyContent": null
|
||||
}
|
||||
}
|
||||
|
||||
Could not convert string to boolean: 1. Path 'smtpSSL', line 1, position 171
|
||||
Could not convert string to boolean: 1. Path 'useImap', line 1, position 90
|
||||
Could not convert string to boolean: 1. Path 'receiveSSL', line 1, position 125.
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,25 @@
|
||||
/*
|
||||
* @Author: 张同海 14166000+zhangtonghai@user.noreply.gitee.com
|
||||
* @Date: 2024-06-03 09:34:40
|
||||
* @LastEditors: 张同海 14166000+zhangtonghai@user.noreply.gitee.com
|
||||
* @LastEditTime: 2024-06-03 09:52:43
|
||||
* @FilePath: \ds-wms-client-web\src\views\operation\seaexport\detail\modules\operationAreaColumns.tsx
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
import { BasicColumn, FormSchema } from '/@/components/Table'
|
||||
export const columns: BasicColumn[] = [
|
||||
{
|
||||
title: '模板名称',
|
||||
dataIndex: 'templateName',
|
||||
width: 150,
|
||||
},
|
||||
]
|
||||
|
||||
export const searchFormSchema: FormSchema[] = [
|
||||
{
|
||||
field: 'templateName',
|
||||
label: '模板名称',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
]
|
Loading…
Reference in New Issue