重构海运出口

szh-new
lijingjia 6 months ago
commit d8c3883d59

@ -66,7 +66,7 @@ service.interceptors.request.use(
service.interceptors.response.use(
(response) => {
const res = response.data
if (!res.succeeded) {
if (res.succeeded===false ) {
$message.error(res.message || UNKNOWN_ERROR)
}
return response

@ -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 },
// ],
// },
// },
]

@ -1,6 +1,130 @@
<template>
<div>
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" @click="handleDel"> </a-button>
<a-button type="primary" @click="handleCreate"> EDI </a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
icon: 'clarity:note-edit-line',
tooltip: '编辑',
onClick: handleAudit.bind(null, record),
},
// {
// icon: 'ant-design:delete-outlined',
// tooltip: '',
// color: 'error',
// popConfirm: {
// title: 'EDI',
// okText: '',
// cancelText: '',
// confirm: handleDelete.bind(null, record),
// },
// // onClick: handleDelete.bind(null, record),
// },
]"
/>
</template>
</template>
</BasicTable>
<TenantAuditStepModal @register="registerModal" @success="handleSuccess" />
</div>
</template>
<script lang="ts" setup>
import { defineComponent, onMounted, ref } from 'vue'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { ApiList, ApiDel } from './api'
import { useModal } from '/@/components/Modal'
import TenantAuditStepModal from './TenantAuditStepModal.vue'
import { columns, searchFormSchema } from './columns'
import { useMessage } from '/@/hooks/web/useMessage'
const { notification } = useMessage()
const [registerModal, { openModal }] = useModal()
const [registerTable, { reload, getForm, getPaginationRef, getSelectRows }] = useTable({
title: 'EDI设置列表',
rowSelection: { type: 'checkbox' },
clickToRowSelect: false,
api: async (p) => {
const res: API.DataResult = await ApiList(p)
return new Promise((resolve) => {
resolve({ data: [...res.data], total: res.count })
})
},
beforeFetch: () => {
var currentPageInfo: any = getPaginationRef()
var data = getForm().getFieldsValue()
const postParam: API.PageRequest = {
queryCondition: '',
pageCondition: {
pageIndex: currentPageInfo.current,
pageSize: currentPageInfo.pageSize,
sortConditions: [],
},
}
let condition: API.ConditionItem[] = []
if (!!data.ediTypeCode) {
condition.push({
FieldName: 'ediTypeCode',
FieldValue: data.ediTypeCode,
ConditionalType: 1,
})
}
postParam.queryCondition = JSON.stringify(condition)
return postParam
},
columns,
pagination: true,
bordered: true,
useSearchForm: true,
showTableSetting: true,
tableSetting: { size: false, fullScreen: false },
formConfig: {
labelWidth: 120,
schemas: searchFormSchema,
},
actionColumn: {
width: 80,
title: '操作',
dataIndex: 'action',
fixed: 'right',
},
})
function handleCreate() {
openModal(true, {
isParent: false,
isUpdate: false,
})
}
function handleDel() {
const select = getSelectRows()
if (select.length === 0) {
notification.error({ message: '请选择一条数据', duration: 3 })
return false
}
const removeArr = select.map((item) => {
return item.id
})
ApiDel({ ids: removeArr }).then((res) => {
notification.success({ message: res.message, duration: 3 })
reload()
})
}
function handleAudit(record: Recordable) {
openModal(true, {
record,
isUpdate: true,
})
}
function handleSuccess() {
reload()
}
onMounted(() => {
reload()
})
</script>

@ -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 },
},
]

@ -1,6 +1,130 @@
<template>
<div>
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" @click="handleDel"> </a-button>
<a-button type="primary" @click="handleCreate"> </a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
icon: 'clarity:note-edit-line',
tooltip: '编辑',
onClick: handleAudit.bind(null, record),
},
// {
// icon: 'ant-design:delete-outlined',
// tooltip: '',
// color: 'error',
// popConfirm: {
// title: '',
// okText: '',
// cancelText: '',
// confirm: handleDelete.bind(null, record),
// },
// // onClick: handleDelete.bind(null, record),
// },
]"
/>
</template>
</template>
</BasicTable>
<TenantAuditStepModal @register="registerModal" @success="handleSuccess" />
</div>
</template>
<script lang="ts" setup>
import { defineComponent, onMounted, ref } from 'vue'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { ApiList, ApiDel } from './api'
import { useModal } from '/@/components/Modal'
import TenantAuditStepModal from './TenantAuditStepModal.vue'
import { columns, searchFormSchema } from './columns'
import { useMessage } from '/@/hooks/web/useMessage'
const { notification } = useMessage()
const [registerModal, { openModal }] = useModal()
const [registerTable, { reload, getForm, getPaginationRef, getSelectRows }] = useTable({
title: '订单关系人列表',
rowSelection: { type: 'checkbox' },
clickToRowSelect: false,
api: async (p) => {
const res: API.DataResult = await ApiList(p)
return new Promise((resolve) => {
resolve({ data: [...res.data], total: res.count })
})
},
beforeFetch: () => {
var currentPageInfo: any = getPaginationRef()
var data = getForm().getFieldsValue()
const postParam: API.PageRequest = {
queryCondition: '',
pageCondition: {
pageIndex: currentPageInfo.current,
pageSize: currentPageInfo.pageSize,
sortConditions: [],
},
}
let condition: API.ConditionItem[] = []
if (!!data.customerName) {
condition.push({
FieldName: 'customerName',
FieldValue: data.customerName,
ConditionalType: 1,
})
}
postParam.queryCondition = JSON.stringify(condition)
return postParam
},
columns,
pagination: true,
bordered: true,
useSearchForm: true,
showTableSetting: true,
tableSetting: { size: false, fullScreen: false },
formConfig: {
labelWidth: 120,
schemas: searchFormSchema,
},
actionColumn: {
width: 80,
title: '操作',
dataIndex: 'action',
fixed: 'right',
},
})
function handleCreate() {
openModal(true, {
isParent: false,
isUpdate: false,
})
}
function handleDel() {
const select = getSelectRows()
if (select.length === 0) {
notification.error({ message: '请选择一条数据', duration: 3 })
return false
}
const removeArr = select.map((item) => {
return item.id
})
ApiDel({ ids: removeArr }).then((res) => {
notification.success({ message: res.message, duration: 3 })
reload()
})
}
function handleAudit(record: Recordable) {
openModal(true, {
record,
isUpdate: true,
})
}
function handleSuccess() {
reload()
}
onMounted(() => {
reload()
})
</script>

@ -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 },
},
]

@ -1,7 +1,130 @@
<template>
<div>
1
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" @click="handleDel"> </a-button>
<a-button type="primary" @click="handleCreate"> </a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
icon: 'clarity:note-edit-line',
tooltip: '编辑',
onClick: handleAudit.bind(null, record),
},
// {
// icon: 'ant-design:delete-outlined',
// tooltip: '',
// color: 'error',
// popConfirm: {
// title: '',
// okText: '',
// cancelText: '',
// confirm: handleDelete.bind(null, record),
// },
// // onClick: handleDelete.bind(null, record),
// },
]"
/>
</template>
</template>
</BasicTable>
<TenantAuditStepModal @register="registerModal" @success="handleSuccess" />
</div>
</template>
<script lang="ts" setup>
import { defineComponent, onMounted, ref } from 'vue'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { ApiList, ApiDel } from './api'
import { useModal } from '/@/components/Modal'
import TenantAuditStepModal from './TenantAuditStepModal.vue'
import { columns, searchFormSchema } from './columns'
import { useMessage } from '/@/hooks/web/useMessage'
const { notification } = useMessage()
const [registerModal, { openModal }] = useModal()
const [registerTable, { reload, getForm, getPaginationRef, getSelectRows }] = useTable({
title: '收发通列表',
rowSelection: { type: 'checkbox' },
clickToRowSelect: false,
api: async (p) => {
const res: API.DataResult = await ApiList(p)
return new Promise((resolve) => {
resolve({ data: [...res.data], total: res.count })
})
},
beforeFetch: () => {
var currentPageInfo: any = getPaginationRef()
var data = getForm().getFieldsValue()
const postParam: API.PageRequest = {
queryCondition: '',
pageCondition: {
pageIndex: currentPageInfo.current,
pageSize: currentPageInfo.pageSize,
sortConditions: [],
},
}
let condition: API.ConditionItem[] = []
if (!!data.type) {
condition.push({
FieldName: 'type',
FieldValue: data.type,
ConditionalType: 1,
})
}
postParam.queryCondition = JSON.stringify(condition)
return postParam
},
columns,
pagination: true,
bordered: true,
useSearchForm: true,
showTableSetting: true,
tableSetting: { size: false, fullScreen: false },
formConfig: {
labelWidth: 120,
schemas: searchFormSchema,
},
actionColumn: {
width: 80,
title: '操作',
dataIndex: 'action',
fixed: 'right',
},
})
function handleCreate() {
openModal(true, {
isParent: false,
isUpdate: false,
})
}
function handleDel() {
const select = getSelectRows()
if (select.length === 0) {
notification.error({ message: '请选择一条数据', duration: 3 })
return false
}
const removeArr = select.map((item) => {
return item.id
})
ApiDel({ ids: removeArr }).then((res) => {
notification.success({ message: res.message, duration: 3 })
reload()
})
}
function handleAudit(record: Recordable) {
openModal(true, {
record,
isUpdate: true,
})
}
function handleSuccess() {
reload()
}
onMounted(() => {
reload()
})
</script>

@ -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,6 +1,130 @@
<template>
<div>
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" @click="handleDel"> </a-button>
<a-button type="primary" @click="handleCreate"> </a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
icon: 'clarity:note-edit-line',
tooltip: '编辑',
onClick: handleAudit.bind(null, record),
},
// {
// icon: 'ant-design:delete-outlined',
// tooltip: '',
// color: 'error',
// popConfirm: {
// title: '',
// okText: '',
// cancelText: '',
// confirm: handleDelete.bind(null, record),
// },
// // onClick: handleDelete.bind(null, record),
// },
]"
/>
</template>
</template>
</BasicTable>
<TenantAuditStepModal @register="registerModal" @success="handleSuccess" />
</div>
</template>
<script lang="ts" setup>
import { defineComponent, onMounted, ref } from 'vue'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { ApiList, ApiDel } from './api'
import { useModal } from '/@/components/Modal'
import TenantAuditStepModal from './TenantAuditStepModal.vue'
import { columns, searchFormSchema } from './columns'
import { useMessage } from '/@/hooks/web/useMessage'
const { notification } = useMessage()
const [registerModal, { openModal }] = useModal()
const [registerTable, { reload, getForm, getPaginationRef, getSelectRows }] = useTable({
title: '用户邮箱列表',
rowSelection: { type: 'checkbox' },
clickToRowSelect: false,
api: async (p) => {
const res: API.DataResult = await ApiList(p)
return new Promise((resolve) => {
resolve({ data: [...res.data], total: res.count })
})
},
beforeFetch: () => {
var currentPageInfo: any = getPaginationRef()
var data = getForm().getFieldsValue()
const postParam: API.PageRequest = {
queryCondition: '',
pageCondition: {
pageIndex: currentPageInfo.current,
pageSize: currentPageInfo.pageSize,
sortConditions: [],
},
}
let condition: API.ConditionItem[] = []
if (!!data.mailAccount) {
condition.push({
FieldName: 'mailAccount',
FieldValue: data.mailAccount,
ConditionalType: 1,
})
}
postParam.queryCondition = JSON.stringify(condition)
return postParam
},
columns,
pagination: true,
bordered: true,
useSearchForm: true,
showTableSetting: true,
tableSetting: { size: false, fullScreen: false },
formConfig: {
labelWidth: 120,
schemas: searchFormSchema,
},
actionColumn: {
width: 80,
title: '操作',
dataIndex: 'action',
fixed: 'right',
},
})
function handleCreate() {
openModal(true, {
isParent: false,
isUpdate: false,
})
}
function handleDel() {
const select = getSelectRows()
if (select.length === 0) {
notification.error({ message: '请选择一条数据', duration: 3 })
return false
}
const removeArr = select.map((item) => {
return item.id
})
ApiDel({ ids: removeArr }).then((res) => {
notification.success({ message: res.message, duration: 3 })
reload()
})
}
function handleAudit(record: Recordable) {
openModal(true, {
record,
isUpdate: true,
})
}
function handleSuccess() {
reload()
}
onMounted(() => {
reload()
})
</script>

@ -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.

@ -148,7 +148,7 @@ const FnsaleId: any = await GetSaleList()
if (FnsaleId.succeeded) {
ListData.saleId = []
FnsaleId.data.forEach((e) => {
ListData.saleId.push({ ...e, label: `${e.userName}/${e.userCode}`, value: e.id })
ListData.saleId.push({ ...e, label: e.userName, value: e.id })
})
}
@ -1128,7 +1128,7 @@ export const columns: BasicColumn[] = [
width: 150,
},
{
title: '尺',
title: '尺',
dataIndex: 'cbm',
width: 150,
},
@ -1744,26 +1744,6 @@ export const basicInfoFormSchema: FormSchema[] = [
},
},
},
{
label: '所属分部',
field: 'saleOrgId',
component: 'Select',
required: false,
dynamicDisabled: false,
// defaultValue: '',
colProps: { span: 4 },
componentProps: {
allowClear: true,
options: ListData.saleDeptId,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
onChange: (e, obj) => {
console.log(e, obj)
},
},
},
{
label: '委托单位Nmae',
field: 'customerName',
@ -2142,36 +2122,91 @@ export const basicInfoFormSchema: FormSchema[] = [
}
return RData
},
onChange: (e, obj) => {
onChange: async (e, obj) => {
if (e && obj) {
console.log(e, obj, '揽货人!!!!!!!!!!')
let saleDeptIdArr: any = []
formModel.sale = obj.label
formModel.saleOrgId = obj.defaultOrgId
formModel.saleDeptId = obj.deptId
if (formActionType) {
ListData.saleDeptId = []
obj.saleOrgList.forEach((item) => {
ListData.saleDeptId.push({ label: item.orgName, value: item.orgId })
})
if (obj.defaultOrgId) {
await GetDeptList({ orgId: obj.defaultOrgId }).then((res) => {
console.log(res, '所属分部 查询 所属部门')
res.data.forEach((item) => {
saleDeptIdArr.push({ label: item.orgName, value: item.id })
})
})
}
const { updateSchema } = formActionType
updateSchema({
label: '所属分部',
field: 'saleOrgId',
component: 'Select',
required: false,
dynamicDisabled: false,
// defaultValue: '',
colProps: { span: 4 },
componentProps: {
allowClear: true,
options: ListData.saleDeptId,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
updateSchema([
{
label: '所属分部',
field: 'saleOrgId',
component: 'Select',
required: false,
dynamicDisabled: false,
// defaultValue: '',
colProps: { span: 4 },
componentProps: {
allowClear: true,
options: ListData.saleDeptId,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
onChange: (e, obj) => {
formModel.saleDeptId = ''
GetDeptList({ orgId: e }).then((res) => {
console.log(res, '所属分部 查询 所属部门')
let Arr: any = []
res.data.forEach((item) => {
Arr.push({ label: item.orgName, value: item.id })
})
updateSchema({
label: '所属部门',
field: 'saleDeptId',
component: 'Select',
required: false,
dynamicDisabled: false,
// defaultValue: '',
colProps: { span: 4 },
componentProps: {
allowClear: true,
options: Arr,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
},
})
})
},
},
onChange: (e, obj) => {
console.log(e, obj)
},
{
label: '所属部门',
field: 'saleDeptId',
component: 'Select',
required: false,
dynamicDisabled: false,
// defaultValue: '',
colProps: { span: 4 },
componentProps: {
allowClear: true,
options: saleDeptIdArr,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
},
},
})
])
}
} else {
formModel.sale = ''
@ -2180,6 +2215,26 @@ export const basicInfoFormSchema: FormSchema[] = [
}
},
},
{
label: '所属分部',
field: 'saleOrgId',
component: 'Select',
required: false,
colProps: { span: 4 },
dynamicDisabled: ({ values }) => {
return !values.saleId
},
},
{
label: '所属部门',
field: 'saleDeptId',
component: 'Select',
required: false,
colProps: { span: 4 },
dynamicDisabled: ({ values }) => {
return !values.saleOrgId
},
},
{
label: '客服员',
field: 'customerService',
@ -2289,23 +2344,7 @@ export const basicInfoFormSchema: FormSchema[] = [
},
},
},
{
label: '所属部门',
field: 'saleDeptId',
component: 'Select',
required: false,
dynamicDisabled: false,
// defaultValue: '',
colProps: { span: 4 },
componentProps: {
allowClear: true,
options: ListData.saleDeptId,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
},
},
// {
// field: 'czRemark',
// label: '操作备注',
@ -3339,7 +3378,7 @@ export const cargoInfoFormSchema2: FormSchema[] = [
},
},
{
label: '尺',
label: '尺',
field: 'cbm',
component: 'InputNumber',
required: false,
@ -3512,7 +3551,7 @@ export const cargoInfoFormSchema2: FormSchema[] = [
// colProps: { span: 12 },
// },
// {
// label: '尺',
// label: '尺',
// field: 'cbm',
// component: 'InputNumber',
// required: false,
@ -4338,7 +4377,7 @@ export const goodsTablecolumns: BasicColumn[] = [
width: 80,
},
{
title: '尺',
title: '尺',
dataIndex: 'size',
align: 'left',
editRow: true,

File diff suppressed because it is too large Load Diff

@ -222,6 +222,8 @@
CheckCtnCover,
GetCtnListRefsh,
GetClientSourceDetailSelectList,
GetSaleList,
GetDeptList,
} from '../api/BookingLedger'
import { getDictDropDown } from '/@/api/common'
const appStore = useAppStore()
@ -249,7 +251,7 @@
cargoInfoFormSchema4,
ediMoreFormSchema,
mastetMoreFormSchema,
} from '/@/views/operation/seaexport/columns'
} from '/@/views/operation/seaexport/detail/columns'
const initDetail = {}
const bookingEDIExtData = {
weiTuoFang: '',
@ -638,6 +640,89 @@
},
})
}
if (res.data.saleId) {
const FnsaleId: any = await GetSaleList()
FnsaleId.data.forEach(async (item) => {
if (item.id == res.data.saleId) {
let saleDeptIdArr: any = []
let saleOrgIdArr: any = []
item.saleOrgList.forEach((item) => {
saleOrgIdArr.push({ label: item.orgName, value: item.orgId })
})
if (item.defaultOrgId) {
await GetDeptList({ orgId: item.defaultOrgId }).then((res) => {
console.log(res, '所属分部 查询 所属部门')
res.data.forEach((item) => {
saleDeptIdArr.push({ label: item.orgName, value: item.id })
})
})
}
RefbasicInfo.value.updateSchema([
{
label: '所属分部',
field: 'saleOrgId',
component: 'Select',
required: false,
dynamicDisabled: false,
// defaultValue: '',
colProps: { span: 4 },
componentProps: {
allowClear: true,
options: saleOrgIdArr,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
onChange: (e, obj) => {
// formModel.saleDeptId = ''
GetDeptList({ orgId: e }).then((res) => {
console.log(res, '所属分部 查询 所属部门')
let Arr: any = []
res.data.forEach((item) => {
Arr.push({ label: item.orgName, value: item.id })
})
updateSchema({
label: '所属部门',
field: 'saleDeptId',
component: 'Select',
required: false,
dynamicDisabled: false,
// defaultValue: '',
colProps: { span: 4 },
componentProps: {
allowClear: true,
options: Arr,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
},
})
})
},
},
},
{
label: '所属部门',
field: 'saleDeptId',
component: 'Select',
required: false,
dynamicDisabled: false,
// defaultValue: '',
colProps: { span: 4 },
componentProps: {
allowClear: true,
options: saleDeptIdArr,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
},
},
])
}
})
}
})
.catch(() => {
appStore.settopDown(false)

@ -550,7 +550,7 @@
} from '/@/views/operation/seaexport/api/BookingLedger'
import { BasicForm, useForm } from '/@/components/Form/index'
import { basicInfoFormSchema } from '/@/views/operation/seaexport/columns'
import { basicInfoFormSchema } from '/@/views/operation/seaexport/detail/columns'
import { ref, reactive, getCurrentInstance, h, watch, onMounted } from 'vue'
import { useAppStore } from '/@/store/modules/app'

@ -604,7 +604,7 @@
cargoInfoFormSchema2,
// cargoInfoFormSchema3,
cargoInfoFormSchema4,
} from '/@/views/operation/seaexport/columns'
} from '/@/views/operation/seaexport/detail/columns'
import { ref, getCurrentInstance, watch, onMounted } from 'vue'
import inputView from '../components/inputView.vue'
import textareaView from '../components/textareaView.vue'
@ -653,7 +653,7 @@
labelWidth: 80,
schemas: cargoInfoFormSchema1,
showActionButtonGroup: false,
size: 'small'
size: 'small',
})
const [
registerForm2,
@ -668,7 +668,7 @@
schemas: cargoInfoFormSchema2,
showActionButtonGroup: false,
submitFunc: submit,
size: 'small'
size: 'small',
})
// const [
// registerForm3,

@ -5,7 +5,7 @@
</template>
<script lang="ts" setup>
import { BasicForm, useForm } from '/@/components/Form/index'
import { ediMoreFormSchema } from '/@/views/operation/seaexport/columns'
import { ediMoreFormSchema } from '/@/views/operation/seaexport/detail/columns'
import { useRoute, useRouter } from 'vue-router'
const router = useRouter()

@ -232,7 +232,7 @@
} from '/@/views/operation/seaexport/api/BookingLedger'
import { BasicColumn, BasicTable, useTable } from '/@/components/Table'
import { goodsTablecolumns } from '/@/views/operation/seaexport/columns'
import { goodsTablecolumns } from '/@/views/operation/seaexport/detail/columns'
import {
ref,
Ref,

@ -1118,7 +1118,7 @@
import {
mailingInfoFormSchemaL,
mailingInfoFormSchemaR,
} from '/@/views/operation/seaexport/columns'
} from '/@/views/operation/seaexport/detail/columns'
import { ref, reactive, getCurrentInstance, h, watch, onMounted } from 'vue'
import XCard from '/@/components/xnComponents/XCard.vue'
import inputView from '../components/inputView.vue'
@ -1152,7 +1152,7 @@
labelWidth: 80,
schemas: mailingInfoFormSchemaL,
showActionButtonGroup: false,
size: 'small'
size: 'small',
})
const [
registerFormR,
@ -1168,7 +1168,7 @@
labelWidth: 80,
schemas: mailingInfoFormSchemaR,
showActionButtonGroup: false,
size: 'small'
size: 'small',
})
let { ctx: that, proxy }: any = getCurrentInstance()
const showKey = ref(['1'])

@ -8,7 +8,7 @@
<script lang="ts" setup>
import { BookingTemplateAdd } from '/@/views/operation/seaexport/api/BookingLedger'
import { BasicForm, useForm } from '/@/components/Form/index'
import { mastetMoreFormSchema } from '/@/views/operation/seaexport/columns'
import { mastetMoreFormSchema } from '/@/views/operation/seaexport/detail/columns'
import { ref, reactive, getCurrentInstance, h, watch, onMounted } from 'vue'
import XCard from '/@/components/xnComponents/XCard.vue'
import inputView from '../components/inputView.vue'

@ -31,7 +31,7 @@
></span>
保存
</button>
<button @click="FSnhowPrintModal">
<button @click="GetPrintData">
<span class="iconfont icon-printing" :style="{ fontSize: '14px' }"></span>打印
</button>
</div>
@ -732,33 +732,31 @@
>
<template #footer> <span></span> </template>
<a-spin tip="数据加载中..." :spinning="spinning">
<div class="PrintMain">
<!-- <div class="PrintTitle">
<p>默认打印格式为<span>pdf</span>,如需其他格式请选择</p>
<p>
打印格式
<a-radio-group v-model:value="printType" name="radioGroup">
<a-radio :value="1">pdf</a-radio>
<a-radio :value="2">xlsx</a-radio>
<a-radio :value="3">docx</a-radio>
<a-radio :value="4">精确打印</a-radio>
</a-radio-group>
</p>
</div> -->
<a-row class="PrintMainBox">
<a-col
v-for="(item, index) in templateType"
:key="item.id"
@click="FnCilckTemplateType(item.id)"
class="items"
:span="11"
:offset="index % 2 == 0 ? 0 : 1"
>
<span>·</span>{{ item.templateName }}
</a-col>
</a-row>
</div>
<BasicTable @register="registerTable" :dataSource="dataSource">
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
icon: 'clarity:note-edit-line',
tooltip: 'pdf',
onClick: FnCilckTemplateType.bind(null, record),
},
{
icon: 'clarity:note-edit-line',
tooltip: 'xlsx',
onClick: FnCilckTemplateType.bind(null, record),
},
{
icon: 'clarity:note-edit-line',
tooltip: 'docx',
onClick: FnCilckTemplateType.bind(null, record),
},
]"
/>
</template>
</template>
</BasicTable>
</a-spin>
</a-modal>
<!-- 打印弹窗 end -->
@ -841,8 +839,8 @@
const route = useRoute()
import { useMessage } from '/@/hooks/web/useMessage'
const { notification } = useMessage()
let { ctx: that, proxy }: any = getCurrentInstance()
import { columns, searchFormSchema } from './operationAreaColumns'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
const emit = defineEmits([
'refresh',
'copy',
@ -971,26 +969,70 @@
emit('copy')
}
//
const printType = ref(1)
const cateCode = ref('')
function FSnhowPrintModal() {
GetPrintData()
}
function GetPrintData() {
spinning.value = true
GetOpenPrintModuleList().then((e) => {
e.data.forEach((item) => {
if (item.moduleName == '海运出口') {
GetOpenPrintTemplateList({ id: item.id }).then((res) => {
templateType.value = res.data
spinning.value = false
PrintModalVisible.value = true
const dataSource = ref<any>([])
//
const [registerTable, { reload, getForm, setTableData }] = useTable({
title: '打印列表',
//
handleSearchInfoFn: () => {
let Arr: any = []
var data = getForm().getFieldsValue()
console.log(data)
if (data.templateName == '') {
GetPrintData()
} else {
Object.keys(data).forEach((item) => {
dataSource.value.forEach((item2) => {
if (item2[item].includes(data[item])) {
Arr.push(item2)
}
})
}
})
})
console.log(Arr)
dataSource.value = Arr
}
},
columns,
formConfig: {
labelWidth: 120,
schemas: searchFormSchema,
},
//
pagination: false,
//
bordered: true,
//
useSearchForm: true,
//
showTableSetting: false,
//
actionColumn: {
width: 80,
title: '操作',
dataIndex: 'action',
fixed: 'right',
},
})
//
async function GetPrintData() {
spinning.value = true
PrintModalVisible.value = true
const e: any = await GetOpenPrintModuleList()
let ApiData: any = {}
e.data.forEach(async (item) => {
if (item.moduleName == '海运出口') {
ApiData.id = item.id
}
})
const res: any = await GetOpenPrintTemplateList(ApiData)
spinning.value = false
dataSource.value = [...res.data]
}
//
function FnCilckTemplateType(templateId) {
console.log(templateId)
notification.success({ message: '搜索文件中...', duration: 3 })
GetOpenJsonPrintInfo({
templateId,
@ -1001,7 +1043,6 @@
if (!res.succeeded) {
notification.error({ message: res.message, duration: 3 })
} else {
console.log(res.data.printType)
// 1.pdf; 2.xlsx; 3.doc
let base64ToBlob = (code) => {
code = code.replace(/[\n\r]/g, '') // base64base64

@ -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 },
},
]

@ -3,6 +3,7 @@ import { BasicColumn, FormSchema } from '/@/components/Table'
import { getRoleList, getOrgList, getDeptList } from '/@/api/common'
import { Tag } from 'ant-design-vue'
import { style } from '@logicflow/extension/es/bpmn-elements/presets/icons'
import { t } from '/@/hooks/web/useI18n'
const selectOrgList = ref<any>([])
const selectDeptList = ref([])
let ListData: any = await {}
@ -212,6 +213,7 @@ export const formSchema: FormSchema[] = [
field: 'email',
label: '邮箱',
component: 'Input',
rules: [{ type: 'email', message: t('请填写正确的邮箱地址') }],
colProps: { span: 12 },
},
{
@ -313,10 +315,12 @@ export const formSchema: FormSchema[] = [
}
})
})
formActionType.setFieldsValue({
defaultOrgId: '',
deptId: '',
})
if (formActionType) {
formActionType.setFieldsValue({
defaultOrgId: '',
deptId: '',
})
}
},
}
},
@ -342,9 +346,11 @@ export const formSchema: FormSchema[] = [
selectDeptList.value.push({ label: e.orgName, value: e.id })
})
}
formActionType.setFieldsValue({
deptId: '',
})
if (formActionType) {
formActionType.setFieldsValue({
deptId: '',
})
}
},
}
},

Loading…
Cancel
Save