Merge branch 'dev' of http://60.209.125.238:20010/lijingjia/ds-wms-client-web into szh-new
commit
bf6db49065
@ -0,0 +1,26 @@
|
||||
// @ts-ignore
|
||||
import { request } from '/@/utils/request'
|
||||
import { DataResult, PageRequest } from '/@/api/model/baseModel'
|
||||
enum Api {
|
||||
list = '/mainApi/ClientInfo/GetClientInfoList',
|
||||
Audit = '/mainApi/ClientInfo/Audit',
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 列表 (Auth)
|
||||
export function ApiList(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.list,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 审核 (Auth)
|
||||
export function ApiAudit(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.Audit,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
@ -0,0 +1,420 @@
|
||||
import { BasicColumn, FormSchema } from '/@/components/Table'
|
||||
import {
|
||||
getClientFrtSelectList,
|
||||
getClientSourceSelectList,
|
||||
getClientCountrySelectList,
|
||||
} from '/@/views/baseinfo/infoclient/api'
|
||||
|
||||
import {
|
||||
getOperatorUserList,
|
||||
getVouchingClerkList,
|
||||
getSaleUserList,
|
||||
getCustomerServiceList,
|
||||
getDeptList,
|
||||
} from '/@/api/common'
|
||||
let DeptList: any = []
|
||||
const res10: API.DataResult = await getDeptList()
|
||||
if (res10.succeeded) {
|
||||
DeptList = []
|
||||
res10.data.forEach((e) => {
|
||||
DeptList.push({ label: e.orgName, value: e.id })
|
||||
})
|
||||
}
|
||||
let ClientCountryList: any = []
|
||||
const res4: API.DataResult = await getClientCountrySelectList()
|
||||
if (res4.succeeded) {
|
||||
ClientCountryList = []
|
||||
res4.data.forEach((e) => {
|
||||
ClientCountryList.push({ label: e.countryName, value: e.id })
|
||||
})
|
||||
}
|
||||
let ClientSourceList: any = []
|
||||
const res3: API.DataResult = await getClientSourceSelectList()
|
||||
if (res3.succeeded) {
|
||||
ClientSourceList = []
|
||||
res3.data.forEach((e) => {
|
||||
ClientSourceList.push({ label: e.sourceName, value: e.id })
|
||||
})
|
||||
}
|
||||
let SaleUserList: any = []
|
||||
const res8: API.DataResult = await getSaleUserList()
|
||||
if (res8.succeeded) {
|
||||
SaleUserList = []
|
||||
res8.data.forEach((e) => {
|
||||
SaleUserList.push({ label: e.userName, value: e.id })
|
||||
})
|
||||
}
|
||||
let OperatorUserList: any = []
|
||||
const res6: API.DataResult = await getOperatorUserList()
|
||||
if (res6.succeeded) {
|
||||
OperatorUserList = []
|
||||
res6.data.forEach((e) => {
|
||||
OperatorUserList.push({ label: e.userName, value: e.id })
|
||||
})
|
||||
}
|
||||
let VouchingClerkList: any = []
|
||||
const res7: API.DataResult = await getVouchingClerkList()
|
||||
if (res7.succeeded) {
|
||||
VouchingClerkList = []
|
||||
res7.data.forEach((e) => {
|
||||
VouchingClerkList.push({ label: e.userName, value: e.id })
|
||||
})
|
||||
}
|
||||
let CustomerServiceList: any = []
|
||||
const res9: API.DataResult = await getCustomerServiceList()
|
||||
if (res9.succeeded) {
|
||||
CustomerServiceList = []
|
||||
res9.data.forEach((e) => {
|
||||
CustomerServiceList.push({ label: e.userName, value: e.id })
|
||||
})
|
||||
}
|
||||
let ClientFrtList: any = []
|
||||
const res: API.DataResult = await getClientFrtSelectList()
|
||||
if (res.succeeded) {
|
||||
ClientFrtList = []
|
||||
res.data.forEach((e) => {
|
||||
ClientFrtList.push({ label: e.cnName, value: e.id })
|
||||
})
|
||||
}
|
||||
export const columns: BasicColumn[] = [
|
||||
{
|
||||
title: '助记码',
|
||||
dataIndex: 'codeName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '审批状态',
|
||||
dataIndex: 'auditStatusText',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '客户简称',
|
||||
dataIndex: 'shortName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: 'EDI代码',
|
||||
dataIndex: 'ediCode',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '客户全称',
|
||||
dataIndex: 'description',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '所属集团',
|
||||
dataIndex: 'pcorpName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '英文简称',
|
||||
dataIndex: 'enShortName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '客户英文全称',
|
||||
dataIndex: 'enFullName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '所属分部',
|
||||
dataIndex: 'saleOrgIdList',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
customRender: ({ text }) => {
|
||||
let RText = ''
|
||||
DeptList.forEach((e: any) => {
|
||||
text.forEach((item) => {
|
||||
if (e.value == item) {
|
||||
RText = RText == '' ? e.label : `${RText},${e.label}`
|
||||
}
|
||||
})
|
||||
})
|
||||
return RText
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '通讯地址',
|
||||
dataIndex: 'address',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '海关备案号',
|
||||
dataIndex: 'registrationNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '商检备案号',
|
||||
dataIndex: 'inspectionNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '社会信用代码',
|
||||
dataIndex: 'organizationCode',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '电话',
|
||||
dataIndex: 'tel',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '法人',
|
||||
dataIndex: 'chief',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '邮箱',
|
||||
dataIndex: 'email',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '网址',
|
||||
dataIndex: 'web',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '城市',
|
||||
dataIndex: 'city',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '省或州',
|
||||
dataIndex: 'province',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '国家',
|
||||
dataIndex: 'country',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
customRender: ({ text }) => {
|
||||
let RText = ''
|
||||
ClientCountryList.forEach((e) => {
|
||||
if (e.value == text) {
|
||||
RText = e.label
|
||||
}
|
||||
})
|
||||
return RText
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '业务来源',
|
||||
dataIndex: 'sourceId',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
customRender: ({ text }) => {
|
||||
let RText = ''
|
||||
ClientSourceList.forEach((e: any) => {
|
||||
if (e.value == text) {
|
||||
RText = e.label
|
||||
}
|
||||
})
|
||||
return RText
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
title: '揽货人',
|
||||
dataIndex: 'saleId',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
customRender: ({ text }) => {
|
||||
let RText = ''
|
||||
SaleUserList.forEach((e: any) => {
|
||||
if (e.value == text) {
|
||||
RText = e.label
|
||||
}
|
||||
})
|
||||
return RText
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '操作人',
|
||||
dataIndex: 'operatorId',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
customRender: ({ text }) => {
|
||||
let RText = ''
|
||||
OperatorUserList.forEach((e: any) => {
|
||||
if (e.value == text) {
|
||||
RText = e.label
|
||||
}
|
||||
})
|
||||
return RText
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '单证',
|
||||
dataIndex: 'doc',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
customRender: ({ text }) => {
|
||||
let RText = ''
|
||||
VouchingClerkList.forEach((e: any) => {
|
||||
if (e.value == text) {
|
||||
RText = e.label
|
||||
}
|
||||
})
|
||||
return RText
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '客服',
|
||||
dataIndex: 'customerService',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
customRender: ({ text }) => {
|
||||
let RText = ''
|
||||
CustomerServiceList.forEach((e: any) => {
|
||||
if (e.value == text) {
|
||||
RText = e.label
|
||||
}
|
||||
})
|
||||
return RText
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '提成比例',
|
||||
dataIndex: 'commissionRate',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '分成比例',
|
||||
dataIndex: 'proportionRate',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
// {
|
||||
// title: '提成参与人',
|
||||
// dataIndex: 'commissionUserId',
|
||||
// sorter: true,
|
||||
// width: 150,
|
||||
// },
|
||||
{
|
||||
title: '默认付费方式',
|
||||
dataIndex: 'feeFRT',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
customRender: ({ text }) => {
|
||||
let RText = ''
|
||||
ClientFrtList.forEach((e: any) => {
|
||||
if (e.value == text) {
|
||||
RText = e.label
|
||||
}
|
||||
})
|
||||
return RText
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
title: '其他类型',
|
||||
dataIndex: 'others',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '提单信息',
|
||||
dataIndex: 'blContent',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
// {
|
||||
// title: '是否可用',
|
||||
// dataIndex: 'status',
|
||||
// sorter: true,
|
||||
// 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: 'note',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '创建时间',
|
||||
dataIndex: 'createTime',
|
||||
sorter: true,
|
||||
width: 200,
|
||||
},
|
||||
]
|
||||
|
||||
export const searchFormSchema: FormSchema[] = [
|
||||
{
|
||||
field: 'description',
|
||||
label: '客户全称',
|
||||
component: 'Input',
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
field: 'shortName',
|
||||
label: '客户简称',
|
||||
component: 'Input',
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
field: 'codeName',
|
||||
label: '助记码',
|
||||
component: 'Input',
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
field: 'orderNo',
|
||||
label: '财务序号',
|
||||
component: 'Input',
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
|
||||
{
|
||||
field: 'registrationNo',
|
||||
label: '海关备案号',
|
||||
component: 'Input',
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
field: 'inspectionNo',
|
||||
label: '商检备案号',
|
||||
component: 'Input',
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
field: 'organizationCode',
|
||||
label: '社会信用代码',
|
||||
component: 'Input',
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
field: 'tel',
|
||||
label: '电话',
|
||||
component: 'Input',
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
]
|
@ -0,0 +1,106 @@
|
||||
<template>
|
||||
<div>
|
||||
<BasicTable class="ds-table" @register="registerTable">
|
||||
<template #tableTitle>
|
||||
<a-button type="link" @click="FnAudit(1)">
|
||||
<span class="iconfont icon-new_document"></span>
|
||||
审核
|
||||
</a-button>
|
||||
<a-button type="link" @click="FnAudit(2)">
|
||||
<span class="iconfont icon-new_document"></span>
|
||||
驳回
|
||||
</a-button>
|
||||
</template>
|
||||
</BasicTable>
|
||||
<a-modal
|
||||
:visible="visible"
|
||||
title="审批备注"
|
||||
width="30%"
|
||||
@ok="FnAudit(2)"
|
||||
@cancel="handleCancel"
|
||||
>
|
||||
<a-textarea v-model:value="remark" :auto-size="{ minRows: 5, maxRows: 7 }" />
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
import { BasicTable, useTable, TableAction } from '/@/components/Table'
|
||||
import { ApiList, ApiAudit } from './api'
|
||||
import { columns, searchFormSchema } from './columns'
|
||||
import { formatParams } from '/@/hooks/web/common'
|
||||
import { useMessage } from '/@/hooks/web/useMessage'
|
||||
const { notification } = useMessage()
|
||||
const visible = ref(false)
|
||||
const remark = ref('')
|
||||
const [registerTable, { reload, getForm, getSelectRows }] = useTable({
|
||||
title: '',
|
||||
api: async (p) => {
|
||||
const res: API.DataResult = await ApiList(p)
|
||||
return new Promise((resolve) => {
|
||||
resolve({ data: [...res.data], total: res.count })
|
||||
})
|
||||
},
|
||||
beforeFetch: (p) => {
|
||||
p['auditStatus'] = 0
|
||||
return formatParams(p)
|
||||
},
|
||||
rowSelection: { type: 'checkbox' },
|
||||
columns,
|
||||
formConfig: {
|
||||
labelWidth: 120,
|
||||
schemas: searchFormSchema,
|
||||
},
|
||||
isTreeTable: false,
|
||||
pagination: true,
|
||||
striped: true,
|
||||
useSearchForm: true,
|
||||
showTableSetting: false,
|
||||
bordered: true,
|
||||
showIndexColumn: true,
|
||||
indexColumnProps: {
|
||||
width: 60,
|
||||
},
|
||||
canResize: true,
|
||||
resizeHeightOffset: 35,
|
||||
immediate: true,
|
||||
})
|
||||
function FnAudit(result) {
|
||||
let Audit = () => {
|
||||
const select = getSelectRows()
|
||||
let ApiData: any = {
|
||||
ids: [],
|
||||
result,
|
||||
remark: remark.value,
|
||||
}
|
||||
if (select.length === 0) {
|
||||
notification.warning({ message: '请至少选择一条数据', duration: 3 })
|
||||
return false
|
||||
} else {
|
||||
ApiData.ids = select.map((item) => {
|
||||
return item.id
|
||||
})
|
||||
}
|
||||
|
||||
ApiAudit(ApiData).then((res) => {
|
||||
handleCancel()
|
||||
notification.success({ message: res.message, duration: 3 })
|
||||
reload()
|
||||
})
|
||||
}
|
||||
if (result == 1) {
|
||||
Audit()
|
||||
} else {
|
||||
if (remark.value != '') {
|
||||
Audit()
|
||||
handleCancel()
|
||||
} else {
|
||||
visible.value = true
|
||||
}
|
||||
}
|
||||
}
|
||||
function handleCancel() {
|
||||
remark.value = ''
|
||||
visible.value = false
|
||||
}
|
||||
</script>
|
Loading…
Reference in New Issue