集装箱bug修改

szh-new
lijingjia 2 months ago
parent 8424ae72ff
commit 77cc57b51b

Before

Width:  |  Height:  |  Size: 833 B

After

Width:  |  Height:  |  Size: 833 B

@ -54,12 +54,20 @@
</div> </div>
</div> </div>
<div class="ds-h-aciton-btns" v-else> <div class="ds-h-aciton-btns" v-else>
<a-tooltip placement="top" :mouseEnterDelay="0.5">
<template #title>
<span>新建</span>
</template>
<span v-if="showBtns.includes('create')" class="ds-action-svg-btn" @click="createHandle">
<SvgIcon size="18" name="create" />
</span>
</a-tooltip>
<a-tooltip placement="top" :mouseEnterDelay="0.5"> <a-tooltip placement="top" :mouseEnterDelay="0.5">
<template #title> <template #title>
<span>保存</span> <span>保存</span>
</template> </template>
<span v-if="save && showBtns.includes('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" /> <SvgIcon size="18" name="save" />
</span> </span>
</a-tooltip> </a-tooltip>
<a-tooltip placement="top" :mouseEnterDelay="0.5"> <a-tooltip placement="top" :mouseEnterDelay="0.5">
@ -67,7 +75,7 @@
<span>提交</span> <span>提交</span>
</template> </template>
<span v-if="submit && showBtns.includes('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" /> <SvgIcon size="18" name="submit1" />
</span> </span>
</a-tooltip> </a-tooltip>
<a-tooltip placement="top" :mouseEnterDelay="0.5"> <a-tooltip placement="top" :mouseEnterDelay="0.5">
@ -75,7 +83,15 @@
<span>复制</span> <span>复制</span>
</template> </template>
<span v-if="copy && showBtns.includes('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" /> <SvgIcon size="18" name="copy" />
</span>
</a-tooltip>
<a-tooltip placement="top" :mouseEnterDelay="0.5">
<template #title>
<span>删除</span>
</template>
<span v-if="showBtns.includes('delete')" class="ds-action-svg-btn" @click="deleteHandle">
<SvgIcon size="18" name="delete" />
</span> </span>
</a-tooltip> </a-tooltip>
<a-tooltip placement="top" :mouseEnterDelay="0.5"> <a-tooltip placement="top" :mouseEnterDelay="0.5">
@ -83,7 +99,7 @@
<span>打印</span> <span>打印</span>
</template> </template>
<span v-if="code && showBtns.includes('print')" 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" /> <SvgIcon size="18" name="print" />
</span> </span>
</a-tooltip> </a-tooltip>
<a-tooltip placement="top" :mouseEnterDelay="0.5"> <a-tooltip placement="top" :mouseEnterDelay="0.5">
@ -91,7 +107,7 @@
<span>上一票</span> <span>上一票</span>
</template> </template>
<span v-if="showBtns.includes('next')" 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" /> <SvgIcon class="next" size="18" name="next" />
</span> </span>
</a-tooltip> </a-tooltip>
<a-tooltip placement="top" :mouseEnterDelay="0.5"> <a-tooltip placement="top" :mouseEnterDelay="0.5">
@ -99,7 +115,7 @@
<span>下一票</span> <span>下一票</span>
</template> </template>
<span v-if="showBtns.includes('last')" 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" /> <SvgIcon size="18" name="next" />
</span> </span>
</a-tooltip> </a-tooltip>
</div> </div>
@ -108,6 +124,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, ref, defineExpose, unref } from 'vue' import { defineComponent, ref, defineExpose, unref } from 'vue'
import { SvgIcon } from '/@/components/Icon'
// //
import { useMessage } from '/@/hooks/web/useMessage' import { useMessage } from '/@/hooks/web/useMessage'
// //
@ -136,22 +153,22 @@
// idkey // idkey
name: { name: {
type: String, type: String,
default: null, default: null
}, },
// //
save: { save: {
type: Function, type: Function,
default: null, default: null
}, },
// //
copy: { copy: {
type: Function, type: Function,
default: null, default: null
}, },
// //
submit: { submit: {
type: Function, type: Function,
default: null, default: null
}, },
// //
lasttext: { lasttext: {
@ -176,11 +193,22 @@
paramJsonStr: { paramJsonStr: {
type: String, type: String,
default: null default: null
} },
//
create: {
type: Function,
default: null
},
//
del: {
type: Function,
default: null
},
}, },
emits: ['copy'], emits: ['copy'],
components: { components: {
DsPrint, DsPrint,
SvgIcon
}, },
setup(props, context) { setup(props, context) {
const { t } = useI18n() const { t } = useI18n()
@ -228,6 +256,10 @@
createMessage.warning('列表页面数据丢失,请回退列表页面后重试!') createMessage.warning('列表页面数据丢失,请回退列表页面后重试!')
} }
} }
//
const createHandle = () => {
props.create()
}
// //
const saveHandle = async () => { const saveHandle = async () => {
await props.save() await props.save()
@ -237,16 +269,23 @@
const submitHandle = async () => { const submitHandle = async () => {
await props.submit() await props.submit()
} }
//
const deleteHandle = async () => {
await props.del()
}
return { return {
t, t,
openPrint, openPrint,
dsPrint, dsPrint,
SvgIcon,
saveHandle, saveHandle,
copyHandle, copyHandle,
toPage, toPage,
saveFlag, saveFlag,
copyFlag, copyFlag,
submitHandle, submitHandle,
createHandle,
deleteHandle,
submitFlag, submitFlag,
} }
}, },
@ -255,8 +294,8 @@
<style lang="less"> <style lang="less">
.ds-h-aciton-btns { .ds-h-aciton-btns {
height: 52px; height: 48px;
padding: 10px 0; padding: 8px 0;
width: 242px; width: 242px;
.ds-action-svg-btn { .ds-action-svg-btn {
display: inline-block; display: inline-block;
@ -264,19 +303,17 @@
height: 32px; height: 32px;
border-radius: 2px; border-radius: 2px;
margin-right: 8px; margin-right: 8px;
background: #f5f9fc;
cursor: pointer; cursor: pointer;
.next { .next {
transform: rotate(180deg); transform: rotate(180deg);
} }
img {
width: 12px;
margin: 10px auto 0;
}
} }
.ds-action-svg-btn:hover { .ds-action-svg-btn:hover {
box-shadow: 0px 2px 4px #cad1db; box-shadow: 0px 2px 4px #cad1db;
} }
.vben-svg-icon {
margin: 6.8px;
}
} }
.ds-action-bar { .ds-action-bar {
position: fixed; position: fixed;

@ -25,6 +25,16 @@
<slot :name="item" v-bind="data || {}"></slot> <slot :name="item" v-bind="data || {}"></slot>
</template> </template>
</FormItem> </FormItem>
<!-- <DEdit
:is-advanced="fieldsIsAdvancedMap[schema.field]"
:table-action="tableAction"
:form-action-type="formActionType"
:schema="schema"
:form-props="getProps"
:all-default-values="defaultValueRef"
:form-model="formModel"
:set-form-model="setFormModel"
/> -->
</template> </template>
<FormAction <FormAction
@ -51,6 +61,7 @@
import { defineComponent, reactive, ref, computed, unref, onMounted, watch, nextTick } from 'vue' import { defineComponent, reactive, ref, computed, unref, onMounted, watch, nextTick } from 'vue'
import { Form, Row } from 'ant-design-vue' import { Form, Row } from 'ant-design-vue'
import FormItem from './components/FormItem.vue' import FormItem from './components/FormItem.vue'
import DEdit from './Ds/components/DEdit.vue'
import FormAction from './components/FormAction.vue' import FormAction from './components/FormAction.vue'
import { dateItemType } from './helper' import { dateItemType } from './helper'
@ -74,7 +85,7 @@
export default defineComponent({ export default defineComponent({
name: 'BasicForm', name: 'BasicForm',
components: { FormItem, Form, Row, FormAction }, components: { FormItem, Form, Row, FormAction, DEdit },
props: basicProps, props: basicProps,
emits: ['advanced-change', 'reset', 'submit', 'register', 'field-value-change'], emits: ['advanced-change', 'reset', 'submit', 'register', 'field-value-change'],
setup(props, { emit, attrs }) { setup(props, { emit, attrs }) {

@ -286,7 +286,6 @@
...bindValue, ...bindValue,
...props.schema, ...props.schema,
} }
if (!renderComponentContent) { if (!renderComponentContent) {
return <Comp {...compAttr} /> return <Comp {...compAttr} />
} }

@ -1,8 +1,3 @@
<!--
* @Desc:
* @Author: lijj
* @Date: 2024-09-06 14:07:10
-->
<!-- <!--
* @Description: 审核审批 -> 费用表格组件 * @Description: 审核审批 -> 费用表格组件
* @Author: lijj * @Author: lijj
@ -427,8 +422,9 @@
const postData = { const postData = {
result: 1, result: 1,
remark: "通过", remark: "通过",
ids: [selectRows.value.id], items: [
businessType: selectRows.value.businessType { id: selectRows.value.id, businessType: selectRows.value.businessType }
]
} }
loading.value = true loading.value = true
AuditByBiz(postData).then(res => { AuditByBiz(postData).then(res => {

@ -24,7 +24,7 @@ export const columns: BasicColumn[] = [
{ {
title: '申请单号', title: '申请单号',
dataIndex: 'applicationNO', dataIndex: 'applicationNO',
width: 150, width: 140,
sorter: true, sorter: true,
align: 'left' align: 'left'
}, },
@ -70,25 +70,25 @@ export const columns: BasicColumn[] = [
sorter: true, sorter: true,
align: 'left' align: 'left'
}, },
// { {
// title: '结算RMB', title: '结算RMB',
// dataIndex: 'financeSoftCode', dataIndex: 'settlementRMB',
// width: 200 width: 100
// }, },
// { {
// title: '结算USD', title: '结算USD',
// dataIndex: 'financeSoftCode', dataIndex: 'settlementUSD',
// width: 200 width: 100
// }, },
// { {
// title: '结算其他币别', title: '结算其他币别',
// dataIndex: 'financeSoftCode', dataIndex: 'settlementOther',
// width: 200 width: 120
// }, },
{ {
title: '申请日期', title: '申请日期',
dataIndex: 'createTime', dataIndex: 'createTime',
width: 120, width: 110,
sorter: true, sorter: true,
align: 'left' align: 'left'
}, },
@ -102,13 +102,13 @@ export const columns: BasicColumn[] = [
title: '申请支付日期', title: '申请支付日期',
dataIndex: 'paymentDate', dataIndex: 'paymentDate',
sorter: true, sorter: true,
width: 130 width: 110
}, },
{ {
title: '最后审核日期', title: '最后审核日期',
dataIndex: 'auditTime', dataIndex: 'auditTime',
sorter: true, sorter: true,
width: 120 width: 110
}, },
{ {
title: '最后审核人', title: '最后审核人',

@ -5,41 +5,48 @@
--> -->
<template> <template>
<div class="ds-table-action-bar"> <div class="ds-table-action-bar">
<div class="nav" @click="create"> <a-tooltip placement="top" title="新建">
<i class="iconfont icon-jiahao2fill"></i>新建 <SvgIcon size="18" name="create" @click="create" />
</div> </a-tooltip>
<div class="nav">
<i class="iconfont icon-jiahao2fill"></i>入账申请加入
</div>
<a-popconfirm <a-popconfirm
title="确定提交选中数据?" title="确定删除当前选中数据?"
ok-text="是" ok-text="是"
cancel-text="否" cancel-text="否"
@confirm="submit" @confirm="removeMoreFun"
> >
<div class="nav"><i class="iconfont icon-fuzhi"></i>提交审核</div> <a-tooltip placement="top" title="删除">
<SvgIcon class="ml30" size="18" name="delete" />
</a-tooltip>
</a-popconfirm> </a-popconfirm>
<a-tooltip placement="top" title="打印">
<SvgIcon class="ml30" size="18" name="print" @click="printFile" />
</a-tooltip>
<a-popconfirm <a-popconfirm
title="确定撤销提交?" title="确定提交选中数据"
ok-text="是" ok-text="是"
cancel-text="否" cancel-text="否"
@confirm="cancel" @confirm="submit"
> >
<div class="nav"><i class="iconfont icon-fuzhi"></i>撤销提交</div> <a-tooltip placement="top" title="提交审核">
<SvgIcon class="ml30" size="18" name="submit1" />
</a-tooltip>
</a-popconfirm> </a-popconfirm>
<a-popconfirm <a-popconfirm
title="确定删除当前选中数据" title="确定撤销提交"
ok-text="是" ok-text="是"
cancel-text="否" cancel-text="否"
@confirm="removeMoreFun" @confirm="cancel"
> >
<div class="nav"><i class="iconfont icon-shanchu2"></i>删除</div> <a-tooltip placement="top" title="撤销提交">
<SvgIcon class="ml30" size="18" name="submit" />
</a-tooltip>
</a-popconfirm> </a-popconfirm>
<div class="nav" @click="printFile"><i class="iconfont icon-xiaopiaodayin"></i>打印</div> <a-tooltip placement="top" title="导出Excel">
<SvgIcon class="ml30" size="18" name="export" @click="exportFile" />
<div class="nav" @click="exportFile"> </a-tooltip>
<i class="iconfont icon-shishijifei"></i>导出Excel <!-- <div class="nav">
</div> <i class="iconfont icon-jiahao2fill"></i>入账申请加入
</div> -->
<!-- 打印组件 --> <!-- 打印组件 -->
<DsPrint <DsPrint
ref="dsPrint" ref="dsPrint"
@ -50,6 +57,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref, defineProps, reactive, defineEmits } from 'vue' import { ref, defineProps, reactive, defineEmits } from 'vue'
import { useGo } from '/@/hooks/web/usePage' import { useGo } from '/@/hooks/web/usePage'
import { SvgIcon } from '/@/components/Icon'
import { useMessage } from '/@/hooks/web/useMessage' import { useMessage } from '/@/hooks/web/useMessage'
// //
import DsPrint from '/@/components/Print/index.vue' import DsPrint from '/@/components/Print/index.vue'
@ -168,7 +176,15 @@
</script> </script>
<style lang="scss"> <style lang="scss">
.ml30 {
margin-left: 30px;
}
svg {
cursor: pointer;
}
.ds-table-action-bar { .ds-table-action-bar {
display: flex;
align-items: center;
padding: 0 10px; padding: 0 10px;
.nav { .nav {
display: inline-block; display: inline-block;
@ -183,109 +199,108 @@
.iconfont { .iconfont {
margin-right: 6px; margin-right: 6px;
} }
&:hover { &:hover {
border: 1px solid rgba(255, 255, 255, 0); border: 1px solid rgba(255, 255, 255, 0);
border-radius: 4px; border-radius: 4px;
} }
&:nth-of-type(1) { &:nth-of-type(1) {
.iconfont { .iconfont {
color: #1d8aff; color: #1d8aff;
} }
&:hover { &:hover {
background: #fff; background: #fff;
box-shadow: 0 0 10px #eee; box-shadow: 0 0 10px #eee;
} }
} }
&:nth-of-type(2) { &:nth-of-type(2) {
.iconfont { .iconfont {
color: #865ef8; color: #865ef8;
} }
&:hover { &:hover {
background: #fff; background: #fff;
box-shadow: 0 0 10px #eee; box-shadow: 0 0 10px #eee;
} }
} }
&:nth-of-type(3) { &:nth-of-type(3) {
.iconfont { .iconfont {
color: #ff9702; color: #ff9702;
} }
&:hover { &:hover {
background: #fff; background: #fff;
box-shadow: 0 0 10px #eee; box-shadow: 0 0 10px #eee;
} }
} }
&:nth-of-type(4) { &:nth-of-type(4) {
.iconfont { .iconfont {
color: #1d8aff; color: #1d8aff;
} }
&:hover { &:hover {
background: #fff; background: #fff;
box-shadow: 0 0 10px #eee; box-shadow: 0 0 10px #eee;
} }
} }
&:nth-of-type(5) { &:nth-of-type(5) {
.iconfont { .iconfont {
color: #ff1062; color: #ff1062;
} }
&:hover { &:hover {
background: #fff; background: #fff;
box-shadow: 0 0 10px #eee; box-shadow: 0 0 10px #eee;
} }
} }
&:nth-of-type(6) { &:nth-of-type(6) {
.iconfont { .iconfont {
color: #1ebeca; color: #1ebeca;
} }
&:hover { &:hover {
background: #fff; background: #fff;
box-shadow: 0 0 10px #eee; box-shadow: 0 0 10px #eee;
} }
} }
&:nth-of-type(7) { &:nth-of-type(7) {
.iconfont { .iconfont {
color: #82c93d; color: #82c93d;
} }
&:hover { &:hover {
background: #fff; background: #fff;
box-shadow: 0 0 10px #eee; box-shadow: 0 0 10px #eee;
} }
} }
&:nth-of-type(8) { &:nth-of-type(8) {
.iconfont { .iconfont {
color: #1d8aff; color: #1d8aff;
} }
&:hover { &:hover {
background: #fff; background: #fff;
box-shadow: 0 0 10px #eee; box-shadow: 0 0 10px #eee;
} }
} }
&:nth-of-type(9) { &:nth-of-type(9) {
.iconfont { .iconfont {
color: #f6826b; color: #f6826b;
} }
&:hover { &:hover {
background: #fff; background: #fff;
box-shadow: 0 0 10px #eee; box-shadow: 0 0 10px #eee;
} }
} }
} }
} }

@ -5,31 +5,33 @@
--> -->
<template> <template>
<div class="ds-pay-apply-detail-fee-info"> <div class="ds-pay-apply-detail-fee-info">
<a-tabs v-model:activeKey="activeKey"> <BasicTable @register="registerTable">
<template #tableTitle>
<h4>申请明细</h4>
<div>
<a-button type="link" @click="add"> </a-button>
<a-popconfirm
:visible="deleteFlag"
title="确定要删除勾选的数据?"
ok-text="确定"
cancel-text="取消"
@confirm="del"
@cancel="cancelDel"
@click="checkDel"
>
<a-button danger type="link" >
<span class="iconfont icon-shanchu1" :style="{ fontSize: '12px' }"></span>
删除
</a-button>
</a-popconfirm>
<a-button type="link" @click="exportExcel"> </a-button>
</div>
</template>
</BasicTable>
<!-- <a-tabs v-model:activeKey="activeKey">
<a-tab-pane key="2" tab="费用明细"> <a-tab-pane key="2" tab="费用明细">
<div> <div>
<BasicTable @register="registerTable">
<template #toolbar>
<div>
<a-button type="link" @click="add"> </a-button>
<a-popconfirm
:visible="deleteFlag"
title="确定要删除勾选的数据?"
ok-text="确定"
cancel-text="取消"
@confirm="del"
@cancel="cancelDel"
@click="checkDel"
>
<a-button danger type="link" >
<span class="iconfont icon-shanchu1" :style="{ fontSize: '12px' }"></span>
删除
</a-button>
</a-popconfirm>
<a-button type="link" @click="exportExcel"> </a-button>
</div>
</template>
</BasicTable>
</div> </div>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="3" tab="附件上传" force-render> <a-tab-pane key="3" tab="附件上传" force-render>
@ -40,7 +42,7 @@
/> />
</div> </div>
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs> -->
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@ -141,7 +143,16 @@
<style lang="less"> <style lang="less">
.ds-pay-apply-detail-fee-info { .ds-pay-apply-detail-fee-info {
.vben-basic-table-header__toolbar { .vben-basic-table-header__toolbar {
h4 {
margin-bottom: 0;
}
justify-content: space-between; justify-content: space-between;
} }
.vben-basic-table .ant-table-wrapper {
padding: 0;
.ant-table-title {
padding: 4px 0;
}
}
} }
</style> </style>

@ -6,9 +6,21 @@
<template> <template>
<div class="ds-pay-apply-detail ds-detail-box"> <div class="ds-pay-apply-detail ds-detail-box">
<a-spin :spinning="dloading"> <a-spin :spinning="dloading">
<div class="ds-card"> <div class="act-box">
<a-button @click="save" type="link">保存</a-button> <!-- 保存按钮组 -->
<a-button @click="deleteItem" type="link">删除</a-button> <ActionBar
:id="route.query.id"
code="sea_freight_export"
name="hyck"
:save="save"
:submit="save"
:del="deleteItem"
:paramJsonStr="'{id:' + route.query.id + '}'"
:showBtns="['save', 'delete', 'submit', 'print', 'next', 'last']"
layout="horizontal"
></ActionBar>
<!-- <a-button @click="save" type="link">保存</a-button>
<a-button @click="deleteItem" type="link">删除</a-button> -->
</div> </div>
<!-- 表单区域 --> <!-- 表单区域 -->
<div class="form-area"> <div class="form-area">
@ -201,17 +213,26 @@
</script> </script>
<style lang="less"> <style lang="less">
.form-area { .ds-pay-apply-detail {
padding: 10px; .act-box {
background: #ffffff; height: 48px;
} background: #F5F9FC;
.fee-modal { width: 100%;
.ant-modal-body { margin-left: -20px;
padding-top: 0 10px; padding-left: 13.2px;
border-radius: 4px; }
.form-area {
padding: 10px;
background: #ffffff;
} }
.ant-modal-footer { .fee-modal {
display: none; .ant-modal-body {
padding-top: 0 10px;
border-radius: 4px;
}
.ant-modal-footer {
display: none;
}
} }
} }
</style> </style>

@ -5,27 +5,40 @@
--> -->
<template> <template>
<div class="ds-pay-apply"> <div class="ds-pay-apply">
<BasicTable <BasicTable class="ds-table" @register="registerTable" @row-dbClick="edit">
class="ds-table"
:scroll="{ x: '100%', y: '500px' }"
@register="registerTable"
@row-dbClick="edit"
>
<template #toolbar> <template #toolbar>
<TableActionBar :selectRow="getSelectRows" :reload="reload" @exportFile="exportFile"></TableActionBar> <TableActionBar :selectRow="getSelectRows" :reload="reload" @exportFile="exportFile"></TableActionBar>
</template> </template>
<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 class="iconfont icon-fuzhi" :style="{'fontSize': '12px', 'color': '#419638'}"></span> <span class="ds-green-status">{{ record.applicationNO }}</span></span> <span @click="copyNo($event, record.applicationNO)" style="cursor: pointer"><span>{{ record.applicationNO }}</span><span class="iconfont icon-fuzhi11"></span></span>
</template> </template>
<!-- 状态 --> <!-- 状态 -->
<template v-if="column.dataIndex == 'status'"> <template v-if="column.dataIndex == 'statusText'">
<span v-if="record.status == 0" class="ds-green-status"> {{ FeeStatus[record.status] }}</span> <span v-if="record.status == 0" class="ds-blue-tag">
<span v-else-if="record.status == 1" class="ds-blue-status"> {{ FeeStatus[record.status] }}</span> {{ record.statusText }}</span>
<span v-else-if="/^2|3|4|5|6$/.test(record.status)" class="ds-orange-status"> {{ FeeStatus[record.status] }}</span> <span v-else-if="record.status == 1" class="ds-green-tag">{{
<span v-else-if="/^7|8$/.test(record.status)" class="ds-red-status"> {{ FeeStatus[record.status] }}</span> record.statusText
<span v-else class="ds-purple-status"> {{ FeeStatus[record.status] }}</span> }}</span>
<span v-else-if="/^2|3|4|5|6$/.test(record.status)" class="ds-orange-tag">{{
record.statusText
}}</span>
<span v-else-if="/^7|8$/.test(record.status)" class="ds-red-tag">{{
record.statusText
}}</span>
<span v-else class="ds-purple-tag">{{ record.statusText }}</span>
</template>
<template v-if="column.key === 'action'">
<TableAction :actions="[
{
icon: 'clarity:note-edit-line',
tooltip: '编辑',
onClick: () => {
edit(record)
}
}
]" />
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
@ -33,9 +46,10 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, watch } from 'vue' import { onMounted, ref, watch } from 'vue'
import { BasicTable, useTable } from '/@/components/Table' import { BasicTable, useTable, TableAction } from '/@/components/Table'
import TableActionBar from './components/tableActionBar.vue' import TableActionBar from './components/tableActionBar.vue'
import { useMessage } from '/@/hooks/web/useMessage' import { useMessage } from '/@/hooks/web/useMessage'
import { formatParams } from '/@/hooks/web/common'
const { createMessage } = useMessage() const { createMessage } = useMessage()
import { GetList } from './api' import { GetList } from './api'
import { columns, searchFormSchema, FeeStatus } from './columns' import { columns, searchFormSchema, FeeStatus } from './columns'
@ -43,77 +57,56 @@
import { exportExcel } from '/@/hooks/web/common' import { exportExcel } from '/@/hooks/web/common'
const go = useGo() const go = useGo()
const params = ref([]) const params = ref([])
const [registerTable, { reload, getForm, getPaginationRef, getSelectRows, getColumns }] = useTable({ const [registerTable, { reload, getSelectRows, getColumns }] = useTable({
title: '', title: '',
api: async (p) => { api: async (p) => {
params.value = p params.value = p
const res = await GetList(p) const res: API.DataResult = await GetList(p)
res.data.forEach(item => {
if (item.amountRMB) item.amountRMB = item.amountRMB.toLocaleString()
if (item.amountUSD) item.amountUSD = item.amountUSD.toLocaleString()
if (item.amountOther) item.amountOther = item.amountOther.toLocaleString()
if (item.settlementRMB) item.settlementRMB = item.settlementRMB.toLocaleString()
if (item.settlementUSD) item.settlementUSD = item.settlementUSD.toLocaleString()
if (item.settlementOther) item.settlementOther = item.settlementOther.toLocaleString()
})
return new Promise((resolve) => { return new Promise((resolve) => {
resolve({ data: [...res.data], total: res.count }) resolve({ data: [...res.data], total: res.count })
}) })
}, },
beforeFetch: () => { beforeFetch: (p) => {
var currentPageInfo: any = getPaginationRef() return formatParams(p)
var data = getForm().getFieldsValue()
const postParam = {
queryCondition: '',
pageCondition: {
pageIndex: currentPageInfo.current,
pageSize: currentPageInfo.pageSize,
sortConditions: [],
},
}
let condition: API.ConditionItem[] = []
if (!!data.billNO) {
condition.push({
FieldName: 'billNO',
FieldValue: data.billNO,
ConditionalType: 1,
})
}
if (!!data.applicationNO) {
condition.push({
FieldName: 'applicationNO',
FieldValue: data.applicationNO,
ConditionalType: 1,
})
}
if (!!data.customerId) {
condition.push({
FieldName: 'customerId',
FieldValue: data.customerId,
ConditionalType: 1,
})
}
if (!!data.status) {
condition.push({
FieldName: 'status',
FieldValue: data.status,
ConditionalType: 1,
})
}
console.log(condition)
postParam.queryCondition = JSON.stringify(condition)
return postParam
}, },
columns, columns,
formConfig: { formConfig: {
labelWidth: 120, labelWidth: 120,
schemas: searchFormSchema, schemas: searchFormSchema,
// ()
useAdvancedSearch: true
}, },
isTreeTable: false, isTreeTable: false,
pagination: true, pagination: true,
striped: false, striped: true,
useSearchForm: true, useSearchForm: true,
showTableSetting: true, showTableSetting: true,
bordered: true, bordered: true,
showIndexColumn: true, showIndexColumn: true,
canResize: false, indexColumnProps: {
immediate: false, width: 60,
id: '0' },
canResize: true,
resizeHeightOffset: 15,
immediate: true,
actionColumn: {
width: 50,
title: '操作',
dataIndex: 'action',
fixed: 'right'
},
}) })
// Excel
const exportFile = () => { // Excel
const exportFile = () => {
exportExcel(GetList, params.value, getColumns(), '费用申请') exportExcel(GetList, params.value, getColumns(), '费用申请')
} }
const copyNo = (e, v) => { const copyNo = (e, v) => {
@ -142,10 +135,13 @@
<style lang="less"> <style lang="less">
.ds-pay-apply { .ds-pay-apply {
display: fle;
flex-direction: column; flex-direction: column;
.vben-basic-table-header__toolbar { .vben-basic-table-header__toolbar {
justify-content: space-between; justify-content: space-between;
} }
.icon-fuzhi11 {
color: #257AFA;
margin-left: 5px;
}
} }
</style> </style>

@ -385,6 +385,7 @@
watch( watch(
() => props.details, () => props.details,
(nval) => { (nval) => {
console.log(nval)
if (Object.keys(nval).length) { if (Object.keys(nval).length) {
setFieldsValue1({ marks: nval.marks, description: nval.description }) setFieldsValue1({ marks: nval.marks, description: nval.description })
setFieldsValue2(nval) setFieldsValue2(nval)
@ -393,7 +394,10 @@
if (nval.cargoId) cargoId.value = nval.cargoId if (nval.cargoId) cargoId.value = nval.cargoId
} }
}, },
{ deep: true } {
deep: true,
immediate: true
}
) )
const id = ref() const id = ref()
watch( watch(

@ -961,11 +961,14 @@
loadingTable.value = false loadingTable.value = false
createMessage.success(data.message) createMessage.success(data.message)
} }
const res = list.value.filter((item) => {
return !item.selected for (let i = 0; i < list.value.length; i++) {
}) if (list.value[i].selected) {
list.value = res list.value.splice(i, 1)
hotmain.value.hotInstance.loadData(res) i--
}
}
hotmain.value.hotInstance.loadData(list.value)
computing() computing()
} }
const moreVisible = ref(false) const moreVisible = ref(false)
@ -1627,6 +1630,7 @@
}, },
{ {
deep: true, deep: true,
immediate: true
} }
) )
// //

@ -275,7 +275,7 @@
</div> </div>
</template> </template>
<script lang="ts" setup name="订单管理"> <script lang="ts" setup name="订单管理">
import { onMounted, ref, defineAsyncComponent } from 'vue' import { onMounted, ref, defineAsyncComponent, onActivated } from 'vue'
const TableActionBar = defineAsyncComponent(() => import("./components/tableActionBar.vue")) const TableActionBar = defineAsyncComponent(() => import("./components/tableActionBar.vue"))
import { CheckCircleFilled, CloseCircleFilled, RedoOutlined } from '@ant-design/icons-vue' import { CheckCircleFilled, CloseCircleFilled, RedoOutlined } from '@ant-design/icons-vue'
const tableActionBarRight = defineAsyncComponent(() => import("./components/tableActionBarRight.vue")) const tableActionBarRight = defineAsyncComponent(() => import("./components/tableActionBarRight.vue"))
@ -582,7 +582,7 @@ function compareSuccess(){
setLoading(false); setLoading(false);
reload() reload()
} }
onMounted(() => { onActivated(() => {
// //
reload() reload()
// createdInit() // createdInit()

@ -995,6 +995,7 @@ function handleEdit(data) {
case 'WAIT_CHANDIZHENG': case 'WAIT_CHANDIZHENG':
case 'WAIT_TUOCHE': case 'WAIT_TUOCHE':
case 'WAIT_Insurance': case 'WAIT_Insurance':
case 'ORDER_AUDIT_REJECTED':
// //
go({ go({
path: '/taskmanage/booking-approval', path: '/taskmanage/booking-approval',

Loading…
Cancel
Save