sunzehua 3 months ago
commit 58a26e0570

@ -6,22 +6,33 @@
<template>
<div v-if="source != 'edit'" class="ds-approve-btns">
<div>
<a-button v-repeat v-if="query.source == 'Create' && query.status == 'WAIT_ORDER_AUDIT'" @click="approveHandle('2')" danger class="mr10">
<a-button
v-repeat
v-if="query.source == 'Create' && query.status == status"
@click="approveHandle('2')"
danger
class="mr10"
>
{{ rejectText }}
</a-button>
<a-button v-repeat v-if="query.source == 'Create' && query.status == 'WAIT_ORDER_AUDIT'" @click="approveHandle('1')" type="primary">
<a-button
v-repeat
v-if="query.source == 'Create' && query.status == status"
@click="approveHandle('1')"
type="primary"
>
{{ agreeText }}
</a-button>
<slot></slot>
<a-button v-repeat v-if="query.source != 'edit'" class="ml10" @click="openFlowChart" type="primary">
流程
<a-button
v-repeat
v-if="query.source != 'edit'"
class="ml10"
@click="openFlowChart"
type="primary"
>流程
</a-button>
<a-modal
v-model:visible="visible"
title="驳回"
width="40%"
@ok="handleOk"
>
<a-modal v-model:visible="visible" title="驳回" width="40%" @ok="handleOk">
<BasicForm @register="registerForm" />
</a-modal>
</div>
@ -41,31 +52,36 @@
//
agreeText: {
type: String,
default: "同意"
default: '同意',
},
rejectText: {
type: String,
default: "驳回"
default: '驳回',
},
//
approve: {
type: Function
type: Function,
},
//
source: {
type: String,
default: 'edit'
default: 'edit',
},
//
businessType: {
type: String,
default: '1'
default: '1',
},
// id
id: {
type: String,
default: '1'
}
default: '1',
},
// 使
status: {
type: String,
default: 'WAIT_ORDER_AUDIT',
},
})
const visible = ref(false)
const formSchema = [
@ -79,17 +95,16 @@
componentProps: {
autoSize: {
minRows: 4,
maxRows: 4
}
}
}
maxRows: 4,
},
},
},
]
const [registerForm, { resetFields, setFieldsValue, validate, updateSchema }] =
useForm({
labelWidth: 150,
schemas: formSchema,
showActionButtonGroup: false
})
const [registerForm, { resetFields, setFieldsValue, validate, updateSchema }] = useForm({
labelWidth: 150,
schemas: formSchema,
showActionButtonGroup: false,
})
const approveHandle = (v) => {
resetFields()
if (v == 2) {

@ -238,7 +238,7 @@ export function formatParams(params = {}, equal: any = [], otherQuery: any = [])
} else {
postData.pageCondition.sortConditions = []
}
if (otherQuery.length) {
if (Object.keys(otherQueryCondition).length) {
postData.otherQueryCondition = otherQueryCondition
}

@ -2,7 +2,11 @@
<div>
<div class="infoclientBox">
<div class="buttonBox">
<a-tooltip placement="top" :mouseEnterDelay="0.5">
<a-tooltip
placement="top"
:mouseEnterDelay="0.5"
v-if="route.path !== '/approval-infoclient'"
>
<template #title>
<span>新建</span>
</template>
@ -18,7 +22,11 @@
<img src="../../../assets/svg/infoclient/baocun.svg" class="SvgImg" />
</span>
</a-tooltip>
<a-tooltip placement="top" :mouseEnterDelay="0.5">
<a-tooltip
placement="top"
:mouseEnterDelay="0.5"
v-if="route.path !== '/approval-infoclient'"
>
<template #title>
<span>提交审核</span>
</template>
@ -26,7 +34,11 @@
<img src="../../../assets/svg/infoclient/tijiao.svg" class="SvgImg" />
</span>
</a-tooltip>
<a-tooltip placement="top" :mouseEnterDelay="0.5">
<a-tooltip
placement="top"
:mouseEnterDelay="0.5"
v-if="route.path !== '/approval-infoclient'"
>
<template #title>
<span>撤销审核</span>
</template>
@ -34,7 +46,11 @@
<img src="../../../assets/svg/infoclient/chexiaotijiao.svg" class="SvgImg" />
</span>
</a-tooltip>
<a-tooltip placement="top" :mouseEnterDelay="0.5">
<a-tooltip
placement="top"
:mouseEnterDelay="0.5"
v-if="route.path !== '/approval-infoclient'"
>
<template #title>
<span>上一条</span>
</template>
@ -42,7 +58,11 @@
<img src="../../../assets/svg/infoclient/shangxia.svg" class="SvgImg rotate" />
</span>
</a-tooltip>
<a-tooltip placement="top" :mouseEnterDelay="0.5">
<a-tooltip
placement="top"
:mouseEnterDelay="0.5"
v-if="route.path !== '/approval-infoclient'"
>
<template #title>
<span>下一条</span>
</template>
@ -195,10 +215,20 @@
</div>
<ClientAccountDateModal @register="CADModal" @success="handleSuccess" />
</div>
<ApproveBtns
agreeText="审核通过"
rejectText="驳回任务"
:approve="approveDc"
:source="route.query.source ? route.query.source : 'edit'"
:id="rowId"
businessType="1"
status="INFO_CLIENT_AUDIT"
>
</ApproveBtns>
</div>
</template>
<script lang="ts" setup>
import { ref, computed, unref, watch, onMounted, watchEffect } from 'vue'
import { ref, computed, unref, watch, onMounted, defineAsyncComponent } from 'vue'
import { Divider } from 'ant-design-vue'
import { BasicForm, useForm } from '/@/components/Form/index'
import { formSchema, formSchema2, Tablecolumns } from './columns'
@ -214,6 +244,7 @@
ApiSubmitAudit,
ApiWithdraw,
} from './api'
import { ApiAudit } from '/@/views/baseinfo/infoclientAudit/api'
import { GetFormSetListByModule } from '/@/api/common'
import { ApiList } from './menu2/api'
// idname
@ -221,21 +252,25 @@
import { GetClientSourceDetailSelectList } from '/@/views/operation/seaexport/api/BookingLedger'
import ClientAccountDateModal from './ClientAccountDateModal.vue'
import { useMessage } from '/@/hooks/web/useMessage'
const { notification } = useMessage()
const { notification, createMessage } = useMessage()
import { BasicTable, useTable, TableAction, SorterResult } from '/@/components/Table'
import Tabs3 from './tabs3/index.vue'
import Menus2 from './menu2/index.vue'
import Menus3 from './menu3/index.vue'
//
const ApproveBtns = defineAsyncComponent(() => import('/@/components/ApproveBtns/index.vue'))
// import CustTemplateDetail from './custTemplateDetail/index.vue'
import FeeCustTemplate from './FeeCustTemplate/index.vue'
import { useModal } from '/@/components/Modal'
import CustomerParams from './customerParams/index.vue'
import ReleaseType from './ReleaseType/index.vue'
import { formatParams } from '/@/hooks/web/common'
import { useRoute } from 'vue-router'
import { useRoute, useRouter } from 'vue-router'
const router = useRouter()
const route = useRoute()
import { useGo } from '/@/hooks/web/usePage'
const go = useGo()
import { useMultipleTabStore } from '/@/store/modules/multipleTab'
//
import { getDictOption } from '/@/utils/dictUtil'
import { up } from 'inquirer/lib/utils/readline'
@ -266,7 +301,10 @@
}
}
onMounted(async () => {
await getFormSet()
if (route.path !== '/approval-infoclient') {
await getFormSet()
}
activeKey.value = '1'
selectedKeys.value = ['menu1']
resetFields()
@ -717,6 +755,42 @@
auditStatusText.value = res.data.auditStatusText
}
}
const tabStore = useMultipleTabStore()
//
const approveDc = (remark) => {
const postData: any = {
result: remark ? 2 : 1,
ids: [rowId.value],
businessType: '1',
taskTypeName: route.query.status,
}
if (remark) postData['remark'] = remark
loading.value = true
ApiAudit(postData)
.then((res) => {
// loading.value = false
createMessage.success(res.message)
//
// if (res.data.isCompleted && res.data.flowStatus == 3) {
// //
// if (bookingDetails.value.shippingSpaceType == 'xc') {
// //
// sspace.value.init()
// } else {
// AutomaticBooking(id.value)
// const { fullPath } = route //
// tabStore.closeTabByKey(fullPath, router)
// }
// } else {
// //
const { fullPath } = route //
tabStore.closeTabByKey(fullPath, router)
// }
})
.catch(() => {
// loading.value = false
})
}
</script>
<style lang="less" scoped>
.gradeClass {

@ -1,12 +1,124 @@
[
{
"ConditionalList": [
{
"Key": 1,
"Value": { "FieldName": "description", "FieldValue": "1", "ConditionalType": 1 }
},
{ "Key": 1, "Value": { "FieldName": "shortName", "FieldValue": "1", "ConditionalType": 1 } }
]
},
{ "FieldName": "isCustomer", "FieldValue": 1, "ConditionalType": 0 }
]
{
"code": 0,
"multiCode": "",
"count": 0,
"message": "",
"succeeded": true,
"data": [
{
"type": "STATUS",
"data": [
{ "code": "Create", "name": "待处理" },
{ "code": "Retransmit", "name": "已转发" },
{ "code": "Complete", "name": "已完成" },
{ "code": "Cancel", "name": "已取消" },
{ "code": "Pending", "name": "已挂起" }
]
},
{
"type": "TASK_TYPE",
"data": [
{ "code": "CAUTION_NOTICE", "name": "重要提醒" },
{ "code": "BC", "name": "BC" },
{ "code": "DRAFT", "name": "DRAFT" },
{ "code": "CANCELLATION", "name": "Cancellation" },
{ "code": "SEAWAYBILL_DOWN", "name": "SEAWAY BILL" },
{ "code": "ORIGINAL_DOWN", "name": "提单正本下载" },
{ "code": "NOT_LOADED", "name": "未装载" },
{ "code": "NOT_SHIPMENG", "name": "未装船" },
{ "code": "INVOICE_BILL_MAIL", "name": "航次账单" },
{ "code": "VGM_COMPARE", "name": "VGM对比" },
{ "code": "TELEX_NOTICE", "name": "电放通知" },
{ "code": "SI_FEEDBACK", "name": "SI回执" },
{ "code": "PER_BILL", "name": "单票账单" },
{ "code": "CHANGE_SHIP", "name": "换船通知" },
{ "code": "ABORT_CHANGE_SHIP", "name": "取消换船通知" },
{ "code": "SHIPPING_ORDER", "name": "下货纸" },
{ "code": "ORIGINAL_LOST", "name": "正本缺失" },
{ "code": "VGM_EXCEPT", "name": "VGM异常" },
{ "code": "SHIPPING_ORDER_COMPARE", "name": "比对下货纸" },
{ "code": "TRUCK_DISPATCH", "name": "派车" },
{ "code": "BC_MODIFY", "name": "Amendment" },
{ "code": "CUT_MODIFY", "name": "截止时间变更" },
{ "code": "ROLLING_NOMINATION", "name": "RollingNomination" },
{ "code": "TRANSFER_NOMINATION", "name": "TransferNomination" },
{ "code": "VGM_FEEDBACK", "name": "VGM回执" },
{ "code": "VGM_MISSING", "name": "VGM未提交" },
{ "code": "POD_DISCHARGE_FULL", "name": "目的港未提货" },
{ "code": "POD_GATEOUT_FULL", "name": "目的港未返空箱" },
{ "code": "ROUTE_CUT_CHANGE", "name": "航线截止时间调整" },
{ "code": "POL_CTN_NOT_PICKUP", "name": "装货港未提箱" },
{ "code": "TRNAS_PLAN_HAS_CHANGE", "name": "运输计划已变更" },
{ "code": "WAIT_ORDER_AUDIT", "name": "审单" },
{ "code": "WAIT_BOOKING", "name": "订舱" },
{ "code": "WAIT_BC", "name": "收BC" },
{ "code": "WAIT_SPACE_RELEASE", "name": "放舱" },
{ "code": "WAIT_BILL_CONFIRM", "name": "提单确认" },
{ "code": "WAIT_SI", "name": "提交SI" },
{ "code": "WAIT_DRAFT", "name": "处理Draft" },
{ "code": "WAIT_CHECKOUT_BILL", "name": "截单" },
{ "code": "WAIT_BAOGUAN", "name": "报关" },
{ "code": "WAIT_CANGDAN", "name": "发舱单" },
{ "code": "WAIT_VGM", "name": "提交VGM" },
{ "code": "WAIT_AFR", "name": "发AFR" },
{ "code": "WAIT_AMS", "name": "发AMS" },
{ "code": "WAIT_ISF", "name": "发ISF" },
{ "code": "WAIT_XUNZHENG", "name": "熏蒸" },
{ "code": "WAIT_SHANGJIAN", "name": "商检" },
{ "code": "WAIT_COA", "name": "报COA" },
{ "code": "WAIT_CHANDIZHENG", "name": "出产地证" },
{ "code": "WAIT_TUOCHE", "name": "拖车" },
{ "code": "WAIT_INSURANCE", "name": "保险" },
{ "code": "WAIT_CHUHAO", "name": "出号" },
{ "code": "WAIT_NDRH", "name": "内点入货" },
{ "code": "WAIT_DELIVERY", "name": "快递" },
{ "code": "WAIT_XIANGSHI", "name": "箱使" },
{ "code": "RETURN_CABIN", "name": "退舱" },
{ "code": "INFO_CLIENT_AUDIT", "name": "客户/供应商审核" },
{ "code": "FEE_AUDIT", "name": "费用审核" },
{ "code": "FEE_MODIFY_AUDIT", "name": "费用修改" },
{ "code": "FEE_DELETE_AUDIT", "name": "费用删除" },
{ "code": "FEE_BUSINESS_AUDIT", "name": "费用整单审核" },
{ "code": "APPLICATION_PAYMENT_AUDIT", "name": "付费申请审核" },
{ "code": "APPLICATION_INVOICE_AUDIT", "name": "发票申请审核" },
{ "code": "WORK_FLOW_MAIN", "name": "工作流任务创建主流程" },
{ "code": "WORK_FLOW_RETURN_CABIN", "name": "工作流退舱流程" },
{ "code": "WORK_FLOW_HANDLE_DRAFT", "name": "工作流处理DRAFT流程" },
{ "code": "APPLICATION_INVOICE_REJECTED", "name": "发票申请驳回" },
{ "code": "APPLICATION_PAYMENT_REJECTED", "name": "付费申请驳回" },
{ "code": "FEE_BUSINESS_REJECTED", "name": "费用整单审核驳回" },
{ "code": "FEE_DELETE_REJECTED", "name": "费用删除驳回" },
{ "code": "FEE_MODIFY_REJECTED", "name": "费用修改驳回" },
{ "code": "FEE_REJECTED", "name": "费用审核驳回" },
{ "code": "INFO_CLIENT_REJECTED", "name": "客户/供应商审核驳回" },
{ "code": "RETURN_CABIN_REJECTED", "name": "退舱驳回" },
{ "code": "ORDER_AUDIT_REJECTED", "name": "审单驳回" },
{ "code": "NOT_SPECIFIED", "name": "未指定" }
]
},
{
"type": "SOURCE",
"data": [
{ "code": "EDI", "name": "EDI" },
{ "code": "MAIL", "name": "邮件" },
{ "code": "MAIL_PARSE", "name": "邮件解析" },
{ "code": "FTP", "name": "FTP" },
{ "code": "RETRANSMIT", "name": "转发" },
{ "code": "BILL_TRACE", "name": "运踪" },
{ "code": "WEBSITE", "name": "网站查询" },
{ "code": "CUSTOMER_SUBMIT", "name": "客户提交" },
{ "code": "SYSTEM", "name": "系统" },
{ "code": "WORK_FLOW", "name": "工作流" }
]
},
{
"type": "CATEGORY",
"data": [
{ "code": "EXCPTION", "name": "异常" },
{ "code": "PERSON", "name": "个人" },
{ "code": "PUBLIC", "name": "公共" }
]
}
],
"additionalData": null
}

@ -74,6 +74,15 @@ export const columns: BasicColumn[] = [
dataIndex: 'auditStatusText',
sorter: true,
width: 150,
customRender: ({ text, record }) => {
console.log(text, record)
let RText = ''
RText = text
if (record.auditStatus == 2) {
RText = `${RText}:${record.auditNote}`
}
return RText
},
},
{
title: '客户简称',

@ -186,7 +186,7 @@
const operationArea = defineAsyncComponent(() => import("./modules/operationArea.vue"))
import basicInfo from './modules/basicInfo.vue'
import mailingInfo from './modules/mailingInfo.vue'
import noteInfo from './modules/noteInfo.vue'
const noteInfo = defineAsyncComponent(() => import("./modules/noteInfo.vue"))
const cargoInfo = defineAsyncComponent(() => import("./modules/cargoInfo.vue"))
const goodsTable = defineAsyncComponent(() => import("./modules/goodsTable.vue"))
const ediMore = defineAsyncComponent(() => import("./modules/ediMore.vue"))

@ -407,6 +407,7 @@
const source = ref(route.query.source || 'edit')
onMounted(() => {
const nval = props.details
console.log(nval)
if (nval.id) {
setFieldsValue1({ marks: nval.marks, description: nval.description })
setFieldsValue2(nval)

@ -252,7 +252,7 @@
const route = useRoute()
const props = defineProps({
details: { type: Object, default: {} },
isLockBooking: { type: Boolean, default: false },
isLockBooking: { type: Boolean, default: false }
})
//
const source = 'edit'
@ -1259,7 +1259,6 @@
},
])
function init(data, hot) {
console.log(data)
const { ctnInfo } = data
if (ctnInfo && ctnInfo.length > 0) {
totalPkgs.value = 0
@ -1618,32 +1617,17 @@
}
})
watch(
list.value,
() => props.details,
(val) => {
let a = 0
let b = 0
val.forEach((item) => {
if (item.selected) {
a += 1
} else {
b += 1
}
})
if (a == 0) {
allCheck.value = false
}
if (b == 0) {
allCheck.value = true
}
if (a != 0 && b != 0) {
someCheck.value = true
} else {
someCheck.value = false
//
if (val.ctnInfo && val.ctnInfo.length) {
const hot = hotmain.value.hotInstance
init(val, hot)
}
},
{
deep: true,
},
}
)
//
const settings = {

@ -80,6 +80,7 @@
})
}
})
setFieldsValue(props.details)
// if (source.value != 'edit') {
// noteFormSchema.forEach(item => {
// item.dynamicDisabled = true

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save