发票审核

szh-new
lijingjia 2 months ago
parent 17d6166e7d
commit 00e7bcbc9f

@ -10,7 +10,7 @@
/> />
<title><%= title %></title> <title><%= title %></title>
<link rel="icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" />
<link rel="stylesheet" href="//at.alicdn.com/t/c/font_3756681_gav4guhyv4i.css" /> <link rel="stylesheet" href="//at.alicdn.com/t/c/font_3756681_tzka2hidzs.css" />
</head> </head>
<body> <body>
<script> <script>

@ -92,8 +92,11 @@ enum Api {
// 根据权限id获取表单设置 // 根据权限id获取表单设置
GetFormSetListByModule = '/mainApi/FormSet/GetFormSetListByModule', GetFormSetListByModule = '/mainApi/FormSet/GetFormSetListByModule',
GetFormSetInfoByModule = '/mainApi/FormSet/GetFormSetInfoByModule',
// 获取所有往来单位下拉列表 (Auth) // 获取所有往来单位下拉列表 (Auth)
GetAllClientList = '/mainApi/ClientCommon/GetAllClientList', GetAllClientList = '/mainApi/ClientCommon/GetAllClientList',
// 获取往来单位银行信息下拉
GetClientBank = '/mainApi/ClientCommon/GetClientBank'
} }
// 所有往来单位下拉数据 // 所有往来单位下拉数据
export function GetAllClientList(params) { export function GetAllClientList(params) {
@ -499,6 +502,22 @@ export function GetFormSetListByModule(params) {
params params
}) })
} }
export function GetFormSetInfoByModule(params) {
return request({
url: Api.GetFormSetInfoByModule,
method: 'get',
params
})
}
export function GetClientBank(params) {
return request({
url: Api.GetClientBank,
method: 'get',
params
})
}
/** /**
* api * api

@ -12,7 +12,7 @@
<slot name="formHeader"></slot> <slot name="formHeader"></slot>
<template v-for="schema in getSchema" :key="schema.field"> <template v-for="schema in getSchema" :key="schema.field">
<FormItem <FormItem
v-if="schema.isEdit != 1 || schema.component == 'Divider'" v-if="schema.isEdit != 1 || schema.component == 'Divider' || schema.component == 'InputTextArea'"
:is-advanced="fieldsIsAdvancedMap[schema.field]" :is-advanced="fieldsIsAdvancedMap[schema.field]"
:table-action="tableAction" :table-action="tableAction"
:form-action-type="formActionType" :form-action-type="formActionType"
@ -27,7 +27,7 @@
</template> </template>
</FormItem> </FormItem>
<!-- 只读 --> <!-- 只读 -->
<a-col :span="schema?.colProps?.span || 24" v-if="schema.show !== false && schema.isEdit == 1 && schema.component != 'Divider'"> <a-col :span="schema?.colProps?.span || 24" v-if="schema.show !== false && schema.isEdit == 1 && schema.component != 'Divider' && schema.component != 'InputTextArea'">
<div class="ds-form-onlyread"> <div class="ds-form-onlyread">
<span class="label">{{ schema.label }}</span> {{ formModel[schema.field] || '-' }} <span class="label">{{ schema.label }}</span> {{ formModel[schema.field] || '-' }}
<span class="iconfont icon-bianji1" @click="editFormItem(schema)"></span> <span class="iconfont icon-bianji1" @click="editFormItem(schema)"></span>

@ -19,17 +19,20 @@ export const searchFormSchema: FormSchema[] = [
colProps: { span: 4 } colProps: { span: 4 }
}, },
{ {
label: '结算单位',
field: 'customerId', field: 'customerId',
label: '结算单位',
component: 'ApiSelect', component: 'ApiSelect',
required: false,
dynamicDisabled: false,
colProps: { span: 4 }, colProps: { span: 4 },
componentProps: () => { componentProps: () => {
return { return {
api: GetClientListByCode, api: GetClientListByCode,
immediate: false, labelField: 'pinYinCode',
labelField: 'shortName',
valueField: 'id', valueField: 'id',
resultField: 'data' showName: 'shortName',
resultField: 'data',
immediate: false
} }
} }
}, },

@ -7,7 +7,7 @@
<a-spin :spinning="loading"> <a-spin :spinning="loading">
<div class="ds-approve-fee"> <div class="ds-approve-fee">
<BasicTable <BasicTable
class="main-tb" class="ds-table"
:scroll="{ 'x': '100%', 'y': fheight + 'px' }" :scroll="{ 'x': '100%', 'y': fheight + 'px' }"
:showSearchForm='searchFlag' :showSearchForm='searchFlag'
@register="registerTable" @register="registerTable"

@ -7,7 +7,8 @@ const Api = {
GetCodeGoodsTypeInfo: '/mainApi/FormSet/GetFormSetInfo', GetCodeGoodsTypeInfo: '/mainApi/FormSet/GetFormSetInfo',
GetFormSetInfoByModule: '/mainApi/FormSet/GetFormSetInfoByModule', GetFormSetInfoByModule: '/mainApi/FormSet/GetFormSetInfoByModule',
BatchDelFormSet: '/mainApi/FormSet/BatchDelFormSet', BatchDelFormSet: '/mainApi/FormSet/BatchDelFormSet',
SetPublicFormSet: '/mainApi/FormSet/SetPublicFormSet' SetPublicFormSet: '/mainApi/FormSet/SetPublicFormSet',
FormSetCopy: '/mainApi/FormSet/FormSetCopy'
} }
// 列表 (Auth) // 列表 (Auth)
export function getCodeGoodsTypeList(data: PageRequest) { export function getCodeGoodsTypeList(data: PageRequest) {
@ -60,3 +61,12 @@ export function SetPublicFormSet(data: PageRequest) {
data data
}) })
} }
// 复制
export function FormSetCopy(params) {
return request<DataResult>({
url: Api.FormSetCopy,
method: 'get',
params
})
}

@ -9,12 +9,17 @@ export const columns: BasicColumn[] = [
{ {
title: '模板名称', title: '模板名称',
dataIndex: 'templateName', dataIndex: 'templateName',
width: 200, width: 150,
}, },
{ {
title: '权限模块名称', title: '权限模块名称',
dataIndex: 'permissionName', dataIndex: 'permissionName',
width: 200, width: 150,
},
{
title: '任务状态',
dataIndex: 'taskStatus',
width: 120,
}, },
{ {
title: '是否公共标识', title: '是否公共标识',
@ -24,7 +29,7 @@ export const columns: BasicColumn[] = [
{ {
title: '创建时间', title: '创建时间',
dataIndex: 'createTime', dataIndex: 'createTime',
width: 200, width: 120,
}, },
] ]
export const searchFormSchema: FormSchema[] = [ export const searchFormSchema: FormSchema[] = [

@ -1,17 +1,40 @@
<!-- <!--
* @Desc: * @Desc:
* @Author: lijj * @Author: lijj
* @Date: 2024-08-14 18:23:31 * @Date: 2024-09-20 08:43:11
--> -->
<!-- <!--
* @Desc: * @Desc: 表单设置列表
* @Author: lijj * @Author: lijj
* @Date: 2024-08-14 18:23:31 * @Date: 2024-08-14 18:23:31
--> -->
<template> <template>
<div> <div class="ds-form-set">
<BasicTable class="ds-table" @register="registerTable" @row-dbClick="handleAudit"> <BasicTable class="ds-table" @register="registerTable" @row-dbClick="handleAudit">
<template #tableTitle>
<ActionBar
:showBtns="['copy']"
:copy="copy"
layout="horizontal"
></ActionBar>
</template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<!-- 任务状态 -->
<template v-if="column.dataIndex == 'taskStatus'">
<a-dropdown v-if="record.permissionName == '海运出口-详情'">
<a class="ant-dropdown-link" @click.prevent>
{{ taskName(record.taskStatus) }}
<span class="iconfont icon-30jiantouxiangxiafill"></span>
</a>
<template #overlay>
<a-menu>
<a-menu-item v-for="item in taskTypeDict" :key="item.value" @click="editTaskType(item.value, record)">
<a href="javascript:;">{{ item.label }}</a>
</a-menu-item>
</a-menu>
</template>
</a-dropdown>
</template>
<!-- 是否公共标识 --> <!-- 是否公共标识 -->
<template v-if="column.dataIndex == 'isPublic'"> <template v-if="column.dataIndex == 'isPublic'">
<a-switch <a-switch
@ -50,15 +73,25 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, computed } from 'vue'
import { checkPermissions } from '/@/hooks/Permissions/index' import { checkPermissions } from '/@/hooks/Permissions/index'
import { BasicTable, useTable, TableAction } from '/@/components/Table' import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { getCodeGoodsTypeList, BatchDelFormSet, SetPublicFormSet } from './api' import { getCodeGoodsTypeList, BatchDelFormSet, SetPublicFormSet, FormSetCopy, editCodeGoodsType } from './api'
import { useModal } from '/@/components/Modal' import { useModal } from '/@/components/Modal'
import FormModel from './component/FormModel.vue' import FormModel from './component/FormModel.vue'
import { formatParams } from '/@/hooks/web/common' import { formatParams } from '/@/hooks/web/common'
import { columns, searchFormSchema } from './columns' import { columns, searchFormSchema } from './columns'
//
import { useMessage } from '/@/hooks/web/useMessage'
import { getDictOption } from '/@/utils/dictUtil'
const { createMessage } = useMessage()
//
const taskTypeDict = ref([])
getDictOption('SeaTaskType').then((res) => {
taskTypeDict.value = res
})
const [registerModal, { openModal }] = useModal() const [registerModal, { openModal }] = useModal()
const [registerTable, { reload }] = useTable({ const [registerTable, { reload, getSelectRows }] = useTable({
title: '', title: '',
api: async (p) => { api: async (p) => {
const res: API.DataResult = await getCodeGoodsTypeList(p) const res: API.DataResult = await getCodeGoodsTypeList(p)
@ -94,6 +127,27 @@
fixed: 'right', fixed: 'right',
}, },
}) })
//
const taskName = (v) => {
const name = taskTypeDict.value.filter(item => {
return item.value == v
})
if (name && name.length) {
return name[0].label
} else {
return '请选择'
}
}
//
const editTaskType = (v, row) => {
row.taskStatus = v
editCodeGoodsType(row).then(res => {
if (res.succeeded) {
reload()
}
})
}
function handleDelete(record) { function handleDelete(record) {
BatchDelFormSet({ ids: [record.id] }).then((res) => { BatchDelFormSet({ ids: [record.id] }).then((res) => {
reload() reload()
@ -108,6 +162,19 @@
}) })
} }
} }
//
const copy = () => {
const rows = getSelectRows()
console.log(rows)
if (rows.length != 1) return createMessage.warning('请选中一条数据进行复制!')
const id = rows[0].id
FormSetCopy({ id }).then(res => {
if (res.succeeded) {
createMessage.success('复制成功!')
reload()
}
})
}
// //
const handleChange = (v, id) => { const handleChange = (v, id) => {
SetPublicFormSet({ id, isPublic: v }).then(res => { SetPublicFormSet({ id, isPublic: v }).then(res => {
@ -119,7 +186,8 @@
} }
</script> </script>
<style> <style lang="less">
.ds-form-set {
.s-txt { .s-txt {
font-size: 12px; font-size: 12px;
margin-left: 10px; margin-left: 10px;
@ -130,4 +198,8 @@
.s-active { .s-active {
color: #257AFA; color: #257AFA;
} }
</style> .ant-table-title {
padding: 0 15px!important;
}
}
</style>

@ -9,7 +9,7 @@ import { useOptionsStore } from '/@/store/modules/options'
const optionsStore = useOptionsStore() const optionsStore = useOptionsStore()
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
const route = useRoute() const route = useRoute()
import { GetClientListByCode, getOrgList } from '/@/api/common' import { GetClientListByCode, getOrgList, GetClientBank } from '/@/api/common'
// 引入字典数据 // 引入字典数据
import { getDictOption } from '/@/utils/dictUtil' import { getDictOption } from '/@/utils/dictUtil'
import { placeholderSign } from 'element-plus/es/components/table-v2/src/private' import { placeholderSign } from 'element-plus/es/components/table-v2/src/private'
@ -260,6 +260,7 @@ export const formSchema: FormSchema[] = [
} }
}, },
{ {
field: 'line1',
component: 'Divider', component: 'Divider',
colProps: { colProps: {
span: 24 span: 24
@ -274,18 +275,20 @@ export const formSchema: FormSchema[] = [
colProps: { span: 4 }, colProps: { span: 4 },
componentProps: ({ formModel }) => { componentProps: ({ formModel }) => {
return { return {
option: optionsStore.getOptionsByCode('GetClientListByCode'), api: GetClientListByCode,
labelField: 'shortName', labelField: 'pinYinCode',
valueField: 'shortName', valueField: 'shortName',
showName: 'shortName',
resultField: 'data', resultField: 'data',
filterOption: (input: string, option: any) => { immediate: false,
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
onChange: (e, obj) => { onChange: (e, obj) => {
if (e && obj) { if (e && obj) {
formModel.customerId = obj.id formModel.customerId = obj.id
} }
} if (!e && !obj) {
formModel.customerId = ''
}
},
} }
} }
}, },
@ -296,27 +299,48 @@ export const formSchema: FormSchema[] = [
show: false show: false
}, },
{ {
field: 'customerBankId', field: 'customerBankName',
label: '开户行', label: '开户行',
component: 'ApiSelect', component: 'ApiSelect',
required: false, required: false,
dynamicDisabled: false, dynamicDisabled: false,
colProps: { span: 4 }, colProps: { span: 4 },
componentProps: () => { componentProps: ({ formModel }) => {
return { return {
option: optionsStore.getOptionsByCode('getClientBankList'), api: GetClientBank,
params: {
id: formModel.customerId
},
labelField: 'bankName', labelField: 'bankName',
valueField: 'id', valueField: 'id',
resultField: 'data', resultField: 'data',
immediate: false, immediate: false,
filterOption: (input: string, option: any) => { filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
onChange: (e, obj) => {
console.log(obj)
if (e && obj) {
formModel.customerBankId = obj.id
formModel.customerAccount = obj.bankAccountNo
}
if (!e && !obj) {
formModel.customerBankId = null
formModel.customerBankName = null
formModel.customerAccount = null
}
} }
} }
} }
}, },
{ {
field: 'customerBank', field: 'customerBankId',
label: '',
component: 'Input',
show: false
},
{
field: 'customerAccount',
label: '开户行账号', label: '开户行账号',
component: 'Input', component: 'Input',
required: false, required: false,
@ -324,32 +348,110 @@ export const formSchema: FormSchema[] = [
colProps: { span: 4 } colProps: { span: 4 }
}, },
{ {
field: 'applicationNO', label: '所属分部',
label: '申请编号', field: 'saleOrgName',
component: 'Input', component: 'ApiSelect',
dynamicDisabled: true, required: false,
colProps: { span: 4 }, colProps: { span: 4 },
// render: ({ model, field }) => { calssName: 'saleOrgId',
// return h(resolveComponent('span') as ComponentOptions, { componentProps: ({ formModel }) => {
// value: model[field] return {
// }) api: getOrgList,
// } labelField: 'label',
valueField: 'value',
resultField: 'data',
immediate: false,
onChange: (e, obj) => {
if (e && obj) {
formModel.saleOrgName = obj.label
formModel.saleOrgId = obj.id
}
if (!e && !obj) {
formModel.saleOrgName = null
formModel.saleOrgId = null
}
},
}
},
}, },
{ {
field: 'statusText', field: 'saleDeptId',
label: '状态', label: '',
component: 'Input', component: 'Input',
dynamicDisabled: true, show: false,
colProps: { span: 4 },
// render: ({ model, field }) => {
// return h(resolveComponent('span') as ComponentOptions, {
// value: model[field]
// })
// }
}, },
// {
// field: 'applicationNO',
// label: '申请编号',
// component: 'Input',
// dynamicDisabled: true,
// colProps: { span: 4 },
// },
// {
// field: 'statusText',
// label: '状态',
// component: 'Input',
// dynamicDisabled: true,
// colProps: { span: 4 },
// },
// {
// field: 'createTime',
// label: '申请日期',
// component: 'DatePicker',
// dynamicDisabled: false,
// colProps: { span: 4 },
// componentProps: {
// showTime: true,
// allowClear: true,
// format: 'YYYY-MM-DD HH:mm:ss',
// valueFormat: 'YYYY-MM-DD HH:mm:ss'
// },
// },
// {
// field: 'currency',
// label: '币别',
// component: 'ApiSelect',
// required: false,
// dynamicDisabled: false,
// defaultValue: null,
// colProps: { span: 4 },
// componentProps: () => {
// return {
// option: optionsStore.getOptionsByCode('GetFeeCurrencySelectList'),
// labelField: 'name',
// valueField: 'codeName',
// placeholder: '原币申请',
// resultField: 'data',
// immediate: false,
// filterOption: (input: string, option: any) => {
// return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
// }
// }
// }
// },
// {
// field: 'settlementType',
// label: '结算方式',
// component: 'ApiSelect',
// required: false,
// dynamicDisabled: false,
// colProps: { span: 4 },
// componentProps: () => {
// return {
// option: optionsStore.getOptionsByCode('GetClientStlModeSelectList'),
// labelField: 'stlName',
// valueField: 'id',
// resultField: 'data',
// immediate: false,
// filterOption: (input: string, option: any) => {
// return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
// }
// }
// }
// },
{ {
field: 'createTime', field: 'paymentDate',
label: '申请日期', label: '申请支付日期',
component: 'DatePicker', component: 'DatePicker',
dynamicDisabled: false, dynamicDisabled: false,
colProps: { span: 4 }, colProps: { span: 4 },
@ -358,62 +460,38 @@ export const formSchema: FormSchema[] = [
allowClear: true, allowClear: true,
format: 'YYYY-MM-DD HH:mm:ss', format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss' valueFormat: 'YYYY-MM-DD HH:mm:ss'
}, }
}, },
{ {
field: 'currency', field: 'line2',
label: '币别', component: 'Divider',
component: 'ApiSelect', colProps: {
required: false, span: 24
dynamicDisabled: false,
defaultValue: null,
colProps: { span: 4 },
componentProps: () => {
return {
option: optionsStore.getOptionsByCode('GetFeeCurrencySelectList'),
labelField: 'name',
valueField: 'codeName',
placeholder: '原币申请',
resultField: 'data',
immediate: false,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
}
} }
}, },
{ {
field: 'settlementType', field: 'chequeRemarks',
label: '结算方式', label: '发票备注',
component: 'ApiSelect', component: 'InputTextArea',
required: false, required: false,
dynamicDisabled: false, dynamicDisabled: false,
colProps: { span: 4 }, // defaultValue: '',
componentProps: () => { colProps: { span: 8 },
return { componentProps: {
option: optionsStore.getOptionsByCode('GetClientStlModeSelectList'), autoSize: { minRows: 3, maxRows: 3 },
labelField: 'stlName',
valueField: 'id',
resultField: 'data',
immediate: false,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
}
} }
}, },
{ {
field: 'paymentDate', field: 'note',
label: '申请支付日期', label: '备注',
component: 'DatePicker', component: 'InputTextArea',
required: false,
dynamicDisabled: false, dynamicDisabled: false,
colProps: { span: 4 }, // defaultValue: '',
colProps: { span: 16 },
componentProps: { componentProps: {
showTime: true, autoSize: { minRows: 3, maxRows: 3 },
allowClear: true, }
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss'
},
}, },
// { // {
// field: 'createBy', // field: 'createBy',

@ -35,6 +35,9 @@
</div> </div>
</div> </div>
</template> </template>
<template #footer>
合计
</template>
</BasicTable> </BasicTable>
<!-- <a-tabs v-model:activeKey="activeKey"> <!-- <a-tabs v-model:activeKey="activeKey">
<a-tab-pane key="2" tab="费用明细"> <a-tab-pane key="2" tab="费用明细">
@ -84,13 +87,14 @@
title: '', title: '',
columns, columns,
isTreeTable: false, isTreeTable: false,
pagination: true, pagination: false,
striped: false, striped: false,
useSearchForm: false, useSearchForm: false,
showTableSetting: true, showTableSetting: true,
bordered: true, bordered: true,
showIndexColumn: true, showIndexColumn: true,
canResize: false, canResize: true,
resizeHeightOffset: 0,
rowSelection: { type: 'checkbox' }, rowSelection: { type: 'checkbox' },
immediate: false, immediate: false,
id: '1' id: '1'

@ -56,7 +56,27 @@
@refresh="refresh" @refresh="refresh"
></BusinessTable> ></BusinessTable>
</a-spin> </a-spin>
<template #footer></template> <template #footer>
<div class="main-statistic">
<span>合计</span>
<!-- <span>
<span class="title">应收RMB:</span>
<span class="count">{{ rrmb }}</span>
</span>
<span>
<span class="title">未收RMB:</span>
<span class="count">{{ prmb }}</span>
</span>
<span>
<span class="title">应收USD:</span>
<span class="count">{{ rusd }}</span>
</span>
<span>
<span class="title">未收USD:</span>
<span class="count">{{ pusd }}</span>
</span> -->
</div>
</template>
</a-modal> </a-modal>
</div> </div>
</template> </template>
@ -232,6 +252,23 @@
top: -12px; top: -12px;
} }
} }
.main-statistic {
background: #ffffff;
font-size: 12px;
height: 34px;
display: flex;
align-items: center;
.title {
font-size: 14px;
font-weight: 600;
margin-left: 20px;
}
.count {
font-size: 14px;
font-weight: 600;
color: #257AFA;
}
}
.fee-modal { .fee-modal {
.ant-modal-body { .ant-modal-body {
padding-top: 0 10px; padding-top: 0 10px;

@ -12,7 +12,7 @@
<template v-slot:bodyCell="{ column, record }"> <template v-slot:bodyCell="{ column, record }">
<!-- 复制单号 --> <!-- 复制单号 -->
<template v-if="column.dataIndex == 'applicationNO'"> <template v-if="column.dataIndex == 'applicationNO'">
<span @click="copyNo($event, record.applicationNO)" style="cursor: pointer"><span>{{ record.applicationNO }}</span><span class="iconfont icon-fuzhi11"></span></span> <span style="cursor: pointer"><span><span @click="copyNo($event, record.applicationNO)" class="iconfont icon-fuzhi11"></span>{{ record.applicationNO }}</span></span>
</template> </template>
<!-- 状态 --> <!-- 状态 -->
<template v-if="column.dataIndex == 'statusText'"> <template v-if="column.dataIndex == 'statusText'">
@ -144,7 +144,7 @@
} }
.icon-fuzhi11 { .icon-fuzhi11 {
color: #257AFA; color: #257AFA;
margin-left: 5px; margin-right: 5px;
} }
} }
</style> </style>

@ -98,6 +98,14 @@
} }
function handleSubmitCopyMore() { function handleSubmitCopyMore() {
const select = props.selectRow() const select = props.selectRow()
if (copyMoreForm.number === 1) {
SeaExportCopy({ id: select[0].id }).then((res) => {
createMessage.success('复制成功')
go(`/BookingDetail?id=${res.data}&source=copy`)
})
copyMoreFlag.value = false
return
}
for (var i = 0; i < copyMoreForm.number; i++) { for (var i = 0; i < copyMoreForm.number; i++) {
SeaExportCopy({ id: select[0].id }).then(res => { SeaExportCopy({ id: select[0].id }).then(res => {
props.reload() props.reload()

@ -184,7 +184,7 @@
SubmitAudit, SubmitAudit,
Withdraw Withdraw
} from '../api/BookingLedger' } from '../api/BookingLedger'
import { GetFormSetListByModule } from '/@/api/common' import { GetFormSetInfoByModule } from '/@/api/common'
const appStore = useAppStore() const appStore = useAppStore()
const { notification, createMessage } = useMessage() const { notification, createMessage } = useMessage()
const operationArea = defineAsyncComponent(() => import("./modules/operationArea.vue")) const operationArea = defineAsyncComponent(() => import("./modules/operationArea.vue"))
@ -292,11 +292,11 @@
RefNoteInfo.value.setAddress(data, v) RefNoteInfo.value.setAddress(data, v)
} }
// //
const getFormSet = () => { const getFormSet = (v) => {
GetFormSetListByModule({ permissionId: permissionsInfo('/BookingDetail').permissionId }).then(res => { GetFormSetInfoByModule({ permissionId: permissionsInfo('/BookingDetail').permissionId, formNo: 10, taskStatus: route.query.status || v }).then(res => {
const { data } = res const { data } = res
if (data && data.length) { if (data && data.id) {
const content = JSON.parse(data[0].content).columns const content = JSON.parse(data.content).columns
// //
const status = route.query.status const status = route.query.status
if (status == 'WAIT_BILL_CONFIRM') { if (status == 'WAIT_BILL_CONFIRM') {
@ -343,8 +343,6 @@
}) })
} }
onMounted(() => { onMounted(() => {
// permission
getFormSet()
// tab // tab
if (source.value != 'edit') document.getElementsByClassName('main-tab')[0].getElementsByClassName('ant-tabs-nav-wrap')[0].style.display = 'none' if (source.value != 'edit') document.getElementsByClassName('main-tab')[0].getElementsByClassName('ant-tabs-nav-wrap')[0].style.display = 'none'
}) })
@ -363,6 +361,8 @@
// //
detailsLoadOver.value = false detailsLoadOver.value = false
isLockBooking.value = false isLockBooking.value = false
// permission
getFormSet(null)
} }
} }
// //
@ -400,6 +400,8 @@
hblno: null hblno: null
} }
} }
// permission
getFormSet(res.data.businessStatus)
loading.value = false loading.value = false
if (!res.data.ctnPriceInfo.length) { if (!res.data.ctnPriceInfo.length) {
res.data.ctnPriceInfo = [{}] res.data.ctnPriceInfo = [{}]

@ -1842,6 +1842,12 @@ export const cargoInfoFormSchema2: FormSchema[] = [
component: 'Input', component: 'Input',
show: false, show: false,
}, },
{
label: '',
field: 'goodsId',
component: 'Input',
show: false,
},
{ {
field: 'goodsName', field: 'goodsName',
label: '品名', label: '品名',
@ -1865,6 +1871,8 @@ export const cargoInfoFormSchema2: FormSchema[] = [
resultField: 'data', resultField: 'data',
onChange: (v, obj) => { onChange: (v, obj) => {
if (v && obj) { if (v && obj) {
console.log(obj)
formModel.goodsName = obj.goodName
formModel.goodsId = obj.id formModel.goodsId = obj.id
if (obj.hsCode) { if (obj.hsCode) {
formModel.hsCode = obj.hsCode formModel.hsCode = obj.hsCode

@ -29,6 +29,7 @@
v-model="formData.customerNo" v-model="formData.customerNo"
/> />
<span @click="editCustomerNo" class="iconfont icon-bianji1"></span> <span @click="editCustomerNo" class="iconfont icon-bianji1"></span>
<span @click="copyNo(formData.customerNo)" class="iconfont icon-fuzhi5 ml5"></span>
</span> </span>
<Divider type="vertical" /> <Divider type="vertical" />
<a-dropdown> <a-dropdown>
@ -200,6 +201,11 @@
navigator.clipboard.writeText(v.values[key]) navigator.clipboard.writeText(v.values[key])
createMessage.success('复制成功') createMessage.success('复制成功')
} }
//
const copyNo = (v) => {
navigator.clipboard.writeText(v)
createMessage.success('复制成功')
}
// //
const customerNoRef = ref(null) const customerNoRef = ref(null)
const editCustomerNo = () => { const editCustomerNo = () => {
@ -292,7 +298,7 @@
font-weight: 600; font-weight: 600;
min-width: 68px; min-width: 68px;
} }
.icon-bianji1 { .icon-bianji1, .icon-fuzhi5 {
font-size: 10px; font-size: 10px;
color: #7a8798; color: #7a8798;
cursor: pointer; cursor: pointer;

@ -13,6 +13,13 @@
</div> </div>
</template> </template>
<template v-slot:bodyCell="{ column, record }"> <template v-slot:bodyCell="{ column, record }">
<!-- 委托编号 -->
<template v-if="column.dataIndex == 'customerNo'">
<div class="customerNo">
<span v-if="record.customerNo" @click="FnCopy(record.customerNo)" class="iconfont icon-fuzhi3"></span>
<span>{{ record.customerNo }}</span>
</div>
</template>
<!-- 应收费用 --> <!-- 应收费用 -->
<template v-if="column.dataIndex == 'arFeeStatus'"> <template v-if="column.dataIndex == 'arFeeStatus'">
<span v-if="record.arFeeStatus == 0" class="ds-green-tag"> <span v-if="record.arFeeStatus == 0" class="ds-green-tag">

@ -147,7 +147,8 @@ export const temFormSchema: FormSchema[] = [
formModel.carrierId = obj.id formModel.carrierId = obj.id
} }
if (!e && !obj) { if (!e && !obj) {
formModel.carrierId = '' formModel.carrierId = null
formModel.carrierName = null
} }
} }
} }

Loading…
Cancel
Save