任务审批流程逻辑调整

szh-new
lijingjia 3 months ago
parent f813030de5
commit e2917157e0

@ -58,7 +58,7 @@
<template #title> <template #title>
<span>保存</span> <span>保存</span>
</template> </template>
<span v-if="save" class="ds-action-svg-btn" @click="saveHandle"> <span v-if="save && showBtns.includes('save')" class="ds-action-svg-btn" @click="saveHandle">
<img src="../../assets/svg/save.svg" /> <img src="../../assets/svg/save.svg" />
</span> </span>
</a-tooltip> </a-tooltip>
@ -66,7 +66,7 @@
<template #title> <template #title>
<span>提交</span> <span>提交</span>
</template> </template>
<span v-if="submit" class="ds-action-svg-btn" @click="submitHandle"> <span v-if="submit && showBtns.includes('submit')" class="ds-action-svg-btn" @click="submitHandle">
<img src="../../assets/svg/submit.svg" /> <img src="../../assets/svg/submit.svg" />
</span> </span>
</a-tooltip> </a-tooltip>
@ -74,7 +74,7 @@
<template #title> <template #title>
<span>复制</span> <span>复制</span>
</template> </template>
<span v-if="copy" class="ds-action-svg-btn" @click="copyHandle"> <span v-if="copy && showBtns.includes('copy')" class="ds-action-svg-btn" @click="copyHandle">
<img src="../../assets/svg/copy.svg" /> <img src="../../assets/svg/copy.svg" />
</span> </span>
</a-tooltip> </a-tooltip>
@ -82,7 +82,7 @@
<template #title> <template #title>
<span>打印</span> <span>打印</span>
</template> </template>
<span v-if="code" class="ds-action-svg-btn" @click="openPrint"> <span v-if="code && showBtns.includes('print')" class="ds-action-svg-btn" @click="openPrint">
<img src="../../assets/svg/print.svg" /> <img src="../../assets/svg/print.svg" />
</span> </span>
</a-tooltip> </a-tooltip>
@ -90,7 +90,7 @@
<template #title> <template #title>
<span>上一票</span> <span>上一票</span>
</template> </template>
<span class="ds-action-svg-btn" @click="toPage('next')"> <span v-if="showBtns.includes('next')" class="ds-action-svg-btn" @click="toPage('next')">
<img class="next" src="../../assets/svg/next.svg" /> <img class="next" src="../../assets/svg/next.svg" />
</span> </span>
</a-tooltip> </a-tooltip>
@ -98,7 +98,7 @@
<template #title> <template #title>
<span>下一票</span> <span>下一票</span>
</template> </template>
<span class="ds-action-svg-btn" @click="toPage('last')"> <span v-if="showBtns.includes('last')" class="ds-action-svg-btn" @click="toPage('last')">
<img src="../../assets/svg/next.svg" /> <img src="../../assets/svg/next.svg" />
</span> </span>
</a-tooltip> </a-tooltip>
@ -167,6 +167,11 @@
type: String, type: String,
default: 'vertical', default: 'vertical',
}, },
//
showBtns: {
type: Array,
default: ['save', 'submit', 'copy', 'print', 'next', 'last']
}
}, },
emits: ['copy'], emits: ['copy'],
components: { components: {

@ -8,9 +8,6 @@
<a-button type="link" @click="toggleSearch">{{ searchFlag? '' : '' }}</a-button> <a-button type="link" @click="toggleSearch">{{ searchFlag? '' : '' }}</a-button>
<a-button type="link" @click="apporve(1)"></a-button> <a-button type="link" @click="apporve(1)"></a-button>
<a-button type="link" @click="apporve(2)"></a-button> <a-button type="link" @click="apporve(2)"></a-button>
<a-model>
</a-model>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<BasicTable class="ds-table" @register="registerTable" @row-dbClick="handleAudit"> <BasicTable :class="{'ds-table': source == 'list', 'ds-table-detail': source == 'modal'}" @register="registerTable" @row-dbClick="handleAudit">
<template #tableTitle> <template #tableTitle>
<a-button type="link" @click="handleCreate" :disabled="checkPermissions('op:goods:add')"> <a-button type="link" @click="handleCreate" :disabled="checkPermissions('op:goods:add')">
<span class="iconfont icon-new_document"></span> <span class="iconfont icon-new_document"></span>
@ -51,10 +51,10 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref } from 'vue' import { ref, defineProps } from 'vue'
import { Divider } from 'ant-design-vue' import { Divider } from 'ant-design-vue'
import { checkPermissions } from '/@/hooks/Permissions/index' import { checkPermissions } from '/@/hooks/Permissions/index'
import { BasicTable, useTable, TableAction, SorterResult } from '/@/components/Table' import { BasicTable, useTable, TableAction } from '/@/components/Table'
import ImportFlow from './importFlow.vue' import ImportFlow from './importFlow.vue'
import { ApiList, ApiImport, ApiDel } from './api' import { ApiList, ApiImport, ApiDel } from './api'
import { useModal } from '/@/components/Modal' import { useModal } from '/@/components/Modal'
@ -62,10 +62,14 @@
import { columns, searchFormSchema } from './columns' import { columns, searchFormSchema } from './columns'
import { useMessage } from '/@/hooks/web/useMessage' import { useMessage } from '/@/hooks/web/useMessage'
const { notification } = useMessage() const { notification } = useMessage()
let filterInfo: Partial<Recordable<string[]>> = []
let sortInfo: SorterResult = {}
const visible = ref<boolean>(false) const visible = ref<boolean>(false)
const refImportFlow = ref() const refImportFlow = ref()
const props = defineProps({
source: {
type: String,
default: 'list'
}
})
const [registerModal, { openModal }] = useModal() const [registerModal, { openModal }] = useModal()
const [registerTable, { reload, getForm, getSelectRows }] = useTable({ const [registerTable, { reload, getForm, getSelectRows }] = useTable({
title: '', title: '',
@ -118,6 +122,7 @@
showTableSetting: true, showTableSetting: true,
bordered: true, bordered: true,
showIndexColumn: true, showIndexColumn: true,
rowSelection: { type: 'checkbox' },
indexColumnProps: { indexColumnProps: {
width: 60, width: 60,
}, },

@ -2110,6 +2110,15 @@ export function SetTaskStatus(data) {
}) })
} }
// 选择非现舱回调
export function AutomaticBooking(data) {
return request({
url: '/opApi/SeaExportTask/AutomaticBooking',
method: 'post',
data
})
}
// 海运出口日志 // 海运出口日志
export function GetSeaExportLogList(params) { export function GetSeaExportLogList(params) {
return request({ return request({

@ -823,12 +823,6 @@ export const columns: BasicColumn[] = [
sorter: true, sorter: true,
width: 150, width: 150,
}, },
{
dataIndex: 'goodsName',
title: '品名',
width: 150,
sorter: true
},
{ {
dataIndex: 'cargoId', dataIndex: 'cargoId',
title: '货物标识', title: '货物标识',

@ -17,13 +17,14 @@
<div class="main-bill-box"> <div class="main-bill-box">
<div class="flex" style="position: relative;"> <div class="flex" style="position: relative;">
<ActionBar <ActionBar
v-if="source == 'edit'" v-if="source == 'edit' || (route.query.source == 'Create' && route.query.status == 'WAIT_ORDER_AUDIT')"
:id="route.query.id" :id="route.query.id"
code="sea_freight_export" code="sea_freight_export"
name="hyck" name="hyck"
:save="save" :save="save"
:copy="copyData" :copy="copyData"
:submit="submit" :submit="submit"
:showBtns="(route.query.source == 'Create' && route.query.status == 'WAIT_ORDER_AUDIT') ? ['save'] : ['save', 'submit', 'copy', 'print', 'next', 'last']"
layout="horizontal" layout="horizontal"
></ActionBar> ></ActionBar>
<operationArea <operationArea
@ -99,9 +100,6 @@
businessType="1" businessType="1"
> >
<span> <span>
<a-button v-repeat class="mr10" v-if="route.query.source == 'Create' && route.query.status == 'WAIT_ORDER_AUDIT'" @click="save" type="primary">
保存
</a-button>
<a-button v-repeat v-if="route.query.status != 'WAIT_ORDER_AUDIT'" @click="completeTask" type="primary"> <a-button v-repeat v-if="route.query.status != 'WAIT_ORDER_AUDIT'" @click="completeTask" type="primary">
{{ completeText }} {{ completeText }}
</a-button> </a-button>
@ -193,7 +191,8 @@
SeaExportCopy, SeaExportCopy,
SeaExportTaskAudit, SeaExportTaskAudit,
CreateTask, CreateTask,
SetTaskStatus SetTaskStatus,
AutomaticBooking
} from '../api/BookingLedger' } from '../api/BookingLedger'
import { GetFormSetListByModule } from '/@/api/common' import { GetFormSetListByModule } from '/@/api/common'
const appStore = useAppStore() const appStore = useAppStore()
@ -217,7 +216,6 @@
import { useMultipleTabStore } from '/@/store/modules/multipleTab' import { useMultipleTabStore } from '/@/store/modules/multipleTab'
import { Divider } from 'ant-design-vue' import { Divider } from 'ant-design-vue'
import { fastCall } from 'handsontable/helpers'
const go = useGo() const go = useGo()
// loading // loading
@ -347,6 +345,10 @@ import { fastCall } from 'handsontable/helpers'
res.data.ctnPriceInfo = [{}] res.data.ctnPriceInfo = [{}]
} }
bookingDetails.value = res.data bookingDetails.value = res.data
//
if (res.data.businessStatusName == '已审单' && route.query.taskId) {
cvisible.value = true
}
inPageLoading.value = false inPageLoading.value = false
// //
if (res.data.formSetList && res.data.formSetList.length) { if (res.data.formSetList && res.data.formSetList.length) {
@ -409,7 +411,6 @@ import { fastCall } from 'handsontable/helpers'
loading.value = false loading.value = false
if (res.succeeded) { if (res.succeeded) {
if (postData.id) { if (postData.id) {
if (!!route.query.taskId) return
createMessage.success('保存成功!') createMessage.success('保存成功!')
} else { } else {
createMessage.success('新增成功!') createMessage.success('新增成功!')
@ -751,9 +752,11 @@ import { fastCall } from 'handsontable/helpers'
const cvalue = ref(1) const cvalue = ref(1)
const handleOk = () => { const handleOk = () => {
if (cvalue.value == 1) { if (cvalue.value == 1) {
//
sspace.value.init() sspace.value.init()
} else { } else {
createTask('WAIT_BOOKING') //
AutomaticBooking({ businessId: id.value })
} }
cvisible.value = false cvisible.value = false
} }

@ -135,7 +135,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { BasicForm, useForm } from '/@/components/Form/index' import { BasicForm, useForm } from '/@/components/Form/index'
import { basicInfoFormSchema, basicInfoFormAllSchema } from './baseInfo.tsx' import { basicInfoFormSchema, basicInfoFormAllSchema } from './baseInfo.tsx'
import { ref, watch, onMounted, reactive } from 'vue' import { ref, watch, onMounted, reactive, getCurrentInstance } from 'vue'
import { useMessage } from '/@/hooks/web/useMessage' import { useMessage } from '/@/hooks/web/useMessage'
import emitter from '/@/utils/Bus' import emitter from '/@/utils/Bus'
const { createMessage } = useMessage() const { createMessage } = useMessage()
@ -217,6 +217,7 @@
emitter.emit('seaAddNotes', item.value) emitter.emit('seaAddNotes', item.value)
} else if (item.key == 'customerName') { } else if (item.key == 'customerName') {
// //
console.log(item)
emitter.emit('customerBack', item.value) emitter.emit('customerBack', item.value)
} }
} }

@ -37,8 +37,8 @@
</a-col> </a-col>
<a-col :span="9"> <a-col :span="9">
<BasicForm @register="registerForm2" @submit="submit"> <BasicForm @register="registerForm2" @submit="submit">
<template #goodsName="{ model }"> <template #goodsName>
<span class="iconfont icon-jichupeizhi"></span> <span class="iconfont icon-jichupeizhi" @click="openGoodsModel"></span>
</template> </template>
</BasicForm> </BasicForm>
</a-col> </a-col>
@ -93,6 +93,16 @@
</BasicForm> </BasicForm>
</a-col> </a-col>
</a-row> </a-row>
<a-modal
:visible="visible"
:maskClosable="false"
title="品名维护"
width="80%"
:closable="false"
@cancel="visible = false"
>
<GoodsTable source="modal"></GoodsTable>
</a-modal>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@ -108,6 +118,7 @@
import { getDictOption } from '/@/utils/dictUtil' import { getDictOption } from '/@/utils/dictUtil'
import { BatchDelBusinessCtnPrice } from '/@/views/operation/seaexport/api/BookingLedger' import { BatchDelBusinessCtnPrice } from '/@/views/operation/seaexport/api/BookingLedger'
import { useOptionsStore } from '/@/store/modules/options' import { useOptionsStore } from '/@/store/modules/options'
import GoodsTable from '/@/views/baseinfo/goods/index.vue'
const optionsStore = useOptionsStore() const optionsStore = useOptionsStore()
const FncargoId = ref([]) const FncargoId = ref([])
getDictOption('cargo_tag').then((res) => { getDictOption('cargo_tag').then((res) => {
@ -138,6 +149,11 @@
return '普通货' return '普通货'
} }
}) })
//
const visible = ref(false)
const openGoodsModel = () => {
visible.value = true
}
// //
const toggleCargo = (v) => { const toggleCargo = (v) => {
console.log(v) console.log(v)
@ -681,7 +697,7 @@
} }
} }
.ctn-price-item { .ctn-price-item {
width: 32%; width: 49%;
display: flex; display: flex;
.ant-select-selector { .ant-select-selector {
width: 66px!important; width: 66px!important;

@ -2025,7 +2025,7 @@
} }
.htCheckboxRendererInput { .htCheckboxRendererInput {
position: relative; position: relative;
z-index: 1111; z-index: 999;
} }
} }
} }

@ -462,7 +462,7 @@
EditSeaExportRemark, EditSeaExportRemark,
DelSeaExportRemark DelSeaExportRemark
} from '/@/views/operation/seaexport/api/BookingLedger' } from '/@/views/operation/seaexport/api/BookingLedger'
import { ref, Ref, getCurrentInstance, watch, defineEmits, onMounted } from 'vue' import { ref, Ref, watch, defineEmits, onMounted, onUnmounted } from 'vue'
// //
import DsJournal from '../components/journal.vue' import DsJournal from '../components/journal.vue'
// //
@ -493,7 +493,6 @@
'changeAtd', 'changeAtd',
'openFlag' 'openFlag'
]) ])
let { ctx: that, proxy }: any = getCurrentInstance()
const id = ref(route.query.id) const id = ref(route.query.id)
// ---------------------------------------- // ----------------------------------------
const RemarkList: any = ref([]) const RemarkList: any = ref([])
@ -1023,6 +1022,9 @@
}) })
}) })
}) })
onUnmounted(() => {
emitter.off('seaAddNotes')
})
defineExpose({ defineExpose({
init, init,
open open

@ -27,12 +27,12 @@ export const columns: BasicColumn[] = [
{ {
title: '用户名称', title: '用户名称',
dataIndex: 'userName', dataIndex: 'userName',
width: 200, width: 120,
}, },
{ {
title: '用户类型', title: '用户类型',
dataIndex: 'userType', dataIndex: 'userType',
width: 200, width: 120,
customRender: ({ text }) => { customRender: ({ text }) => {
if (text === 1) { if (text === 1) {
return <Tag color="success"></Tag> return <Tag color="success"></Tag>
@ -42,15 +42,20 @@ export const columns: BasicColumn[] = [
return text return text
}, },
}, },
{
title: '员工代码',
dataIndex: 'userNumber',
width: 120,
},
{ {
title: '助记码', title: '助记码',
dataIndex: 'pinYinCode', dataIndex: 'pinYinCode',
width: 200, width: 120,
}, },
{ {
title: '性别', title: '性别',
dataIndex: 'sex', dataIndex: 'sex',
width: 200, width: 120,
customRender: ({ text }) => { customRender: ({ text }) => {
if (text === 1) { if (text === 1) {
return <Tag color="blue"></Tag> return <Tag color="blue"></Tag>
@ -63,12 +68,12 @@ export const columns: BasicColumn[] = [
{ {
title: '手机号', title: '手机号',
dataIndex: 'phone', dataIndex: 'phone',
width: 200, width: 140,
}, },
{ {
title: '电话', title: '电话',
dataIndex: 'tel', dataIndex: 'tel',
width: 200, width: 120,
}, },
{ {
title: '办公电话', title: '办公电话',
@ -326,6 +331,13 @@ export const formSchema: FormSchema[] = [
component: 'Switch', component: 'Switch',
colProps: { span: 6 }, colProps: { span: 6 },
}, },
{
label: '员工代码',
field: 'userNumber',
dynamicDisabled: true,
component: 'Input',
colProps: { span: 6 },
},
{ {
label: '航线', label: '航线',
field: 'laneIds', field: 'laneIds',

Loading…
Cancel
Save