frame-financialTax-yjl-1127
sunzehua 1 week ago
commit 904b6b2bee

@ -76,8 +76,9 @@
<style lang="less">
@prefix-cls: ~'@{namespace}-ds-table-button';
.@{prefix-cls} {
display: flex;
height: 32px;
padding-top: 3px;
align-items: center;
&-svg-btn {
background: #F0F2F5;
display: inline-block;
@ -93,9 +94,9 @@
margin-right: 8px;
padding: 7px;
cursor: pointer;
position: relative;
top: -8.2px;
color: #121826;
height: 26px;
line-height: 12px;
}
.iconfont::before {
color: @primary-color;

@ -1,22 +1,13 @@
<template>
<div>
<div class="p20">
<BasicTable class="ds-table" @register="registerTable" @row-dbClick="handleAudit">
<template #tableTitle>
<a-button type="link" @click="handleCreate" :disabled="checkPermissions('op:factory:add')">
<span class="iconfont icon-new_document"></span>
添加
</a-button>
<a-popconfirm
title="确定要删除勾选的数据?"
ok-text="确定"
cancel-text="取消"
@confirm="handleDel"
:disabled="checkPermissions('op:factory:del')"
<TableButton
:show="{ add: 'op:factory:add', del: 'op:factory:del' }"
@add="handleCreate"
@del="handleDel"
>
<a-button type="link" :disabled="checkPermissions('op:factory:del')">
<span class="iconfont icon-shanchu2"></span> 删除
</a-button>
</a-popconfirm>
</TableButton>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
@ -46,7 +37,7 @@
import { useMessage } from '/@/hooks/web/useMessage'
const { notification } = useMessage()
const [registerModal, { openModal }] = useModal()
const [registerTable, { reload, getForm, getSelectRows }] = useTable({
const [registerTable, { reload, getForm, getVxeSelectRows }] = useTable({
title: '',
api: async (p) => {
const res: API.DataResult = await ApiList(p)
@ -117,11 +108,11 @@
})
}
function handleDel() {
if (getSelectRows().length) {
if (getVxeSelectRows().length) {
let Apidata: any = {
ids: [],
}
getSelectRows().forEach((item) => {
getVxeSelectRows().forEach((item) => {
Apidata.ids.push(item.id)
})
ApiDel(Apidata).then((res) => {

@ -1,41 +1,13 @@
<template>
<div>
<div class="p20">
<BasicTable class="ds-table" @register="registerTable" @row-dbClick="handleAudit">
<template #tableTitle>
<div class="tableTitleBox">
<a-tooltip placement="top" :mouseEnterDelay="0.5">
<template #title>
<span>新建</span>
</template>
<span class="ds-action-svg-btn">
<a-button
v-repeat
type="link"
@click="handleCreate"
:disabled="checkPermissions('op:infoclient:add')"
<TableButton
:show="{ add: 'op:infoclient:add', del: null }"
@add="handleCreate"
@del="handleDel"
>
<img src="../../../assets/svg/infoclient/xinjian.svg" class="SvgImg" />
</a-button>
</span>
</a-tooltip>
<a-tooltip placement="top" :mouseEnterDelay="0.5">
<template #title>
<span>删除</span>
</template>
<span class="ds-action-svg-btn">
<a-popconfirm
title="确定删除当前选中数据?"
ok-text="是"
cancel-text="否"
@confirm="handleDel"
>
<a-button v-repeat type="link">
<img src="../../../assets/svg/infoclient/shanchu.svg" class="SvgImg" />
</a-button>
</a-popconfirm>
</span>
</a-tooltip>
</div>
</TableButton>
</template>
<template v-slot:bodyCell="{ column, record }">
<!-- 审批状态 -->
@ -85,26 +57,12 @@
{{ FnRdefaultContact_jobs(record) }}
</template>
</template>
<template v-slot:tableAction="{ record }">
<a-tooltip placement="top" :mouseEnterDelay="0.5">
<template #title>
<span>编辑</span>
</template>
<a-button
:disabled="checkPermissions('op:infoclient:edit')"
type="link"
@click="handleAudit(record)"
>
<span class="iconfont icon-icon_519"></span>
</a-button>
</a-tooltip>
</template>
</BasicTable>
</div>
</template>
<script lang="ts" setup>
import { checkPermissions } from '/@/hooks/Permissions/index'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { BasicTable, useTable } from '/@/components/Table'
import { getCodeGoodsTypeList, Delete, ApiGetUsage, GetSupplierList } from './api'
import { formatParams } from '/@/hooks/web/common'
import {
@ -118,7 +76,6 @@
ClientSourceList,
ClientFrtList,
Jobres,
formSchema,
} from './columns'
import { useMessage } from '/@/hooks/web/useMessage'
const { notification } = useMessage()
@ -128,8 +85,6 @@
const route = useRoute()
import { useAppStore } from '/@/store/modules/app'
import dayjs from 'dayjs'
//
const tbHeight = window.innerHeight - 250
const appStore = useAppStore()
function FnRdefaultContact_jobs(record) {
let RData = '-'
@ -144,10 +99,10 @@
}
return RData
}
const [registerTable, { reload, getForm, getVxeSelectRows }] = useTable({
const [registerTable, { reload, getVxeSelectRows }] = useTable({
title: '',
api: async (p) => {
var res = null
var res: any = null
if (route.path == '/Supplierinfoclient') {
//
res = await GetSupplierList(p)
@ -191,7 +146,7 @@
})
},
beforeFetch: (p) => {
const otherParams = []
const otherParams: any = []
if (route.path == '/Customerinfoclient') {
p.isCustomer = 1
otherParams.push({
@ -232,25 +187,14 @@
useSearchForm: true,
showTableSetting: true,
bordered: true,
showIndexColumn: false,
indexColumnProps: {
width: 60,
},
showIndexColumn: true,
canResize: true,
resizeHeightOffset: 15,
autoHeight: tbHeight,
immediate: true,
resizeHeightOffset: 45,
tableComponent: 'vxe',
actionColumn: {
width: 60,
title: '操作',
dataIndex: 'action',
fixed: 'right',
},
id: '0',
autoHeight: window.innerHeight - 330.5,
})
function handleSuccess() {
reload()
}
function handleCreate() {
const addNum = Math.round(Math.random() * 1000)
go(`${route.fullPath}Detail?addNum=${addNum}`)
@ -268,7 +212,7 @@
})
if (ids.length) {
let NoUsageIds = []
let NoUsageIds: any = []
let type = true
let res: any = await ApiGetUsage({ ids })
if (res.succeeded) {

@ -1,15 +1,11 @@
<template>
<div>
<div class="p20">
<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>
<TableButton :show="{ add: false, del: false }">
<span class="iconfont icon-new_document" @click="FnAudit(1)"> </span>
<span class="iconfont icon-new_document" @click="FnAudit(2)"> </span>
</TableButton>
</template>
</BasicTable>
<a-modal
@ -25,7 +21,7 @@
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { BasicTable, useTable } from '/@/components/Table'
import { ApiList, ApiAudit } from './api'
import { columns, searchFormSchema } from './columns'
import { formatParams } from '/@/hooks/web/common'
@ -33,7 +29,7 @@
const { notification } = useMessage()
const visible = ref(false)
const remark = ref('')
const [registerTable, { reload, getForm, getSelectRows }] = useTable({
const [registerTable, { reload, getVxeSelectRows }] = useTable({
title: '',
api: async (p) => {
const res: API.DataResult = await ApiList(p)
@ -45,7 +41,6 @@
p['auditStatus'] = 0
return formatParams(p)
},
rowSelection: { type: 'checkbox' },
columns,
formConfig: {
labelWidth: 120,
@ -55,19 +50,18 @@
pagination: true,
striped: true,
useSearchForm: true,
showTableSetting: false,
showTableSetting: true,
bordered: true,
showIndexColumn: true,
indexColumnProps: {
width: 60,
},
canResize: true,
resizeHeightOffset: 35,
immediate: true,
resizeHeightOffset: 45,
tableComponent: 'vxe',
id: '0',
autoHeight: window.innerHeight - 330.5,
})
function FnAudit(result) {
let Audit = () => {
const select = getSelectRows()
const select = getVxeSelectRows()
let ApiData: any = {
ids: [],
result,
@ -77,7 +71,7 @@
notification.warning({ message: '请至少选择一条数据', duration: 3 })
return false
} else {
ApiData.ids = select.map((item) => {
ApiData.ids = select.map((item: any) => {
return item.id
})
}

@ -5,7 +5,32 @@
-->
<template>
<div class="ds-table-action-bar">
<a-button type="link" @click="addBooking">
<TableButton
:show="{ add: null, del: null, copy: null}"
@add="addBooking"
@del="removeMoreFun"
@copy="copyBookingMore"
>
<a-dropdown>
<span class="iconfont icon-piliangbianji">{{ eLoading ? '正在导出' : '批量操作' }}</span>
<template #overlay>
<a-menu>
<a-menu-item>
<a @click="batchEditing()" href="javascript:;">批量编辑</a>
</a-menu-item>
<a-menu-item>
<a @click="batchSubmit" href="javascript:;">批量提交</a>
</a-menu-item>
<a-menu-item>
<a @click="exportExcel" href="javascript:;">批量导出</a>
</a-menu-item>
</a-menu>
</template>
</a-dropdown>
<span class="iconfont icon-a-xiaopiaofapiao-01" @click="openYz"></span>
<!-- <span class="iconfont icon-piliangdaochu-danse" @click="importFlow"></span> -->
</TableButton>
<!-- <a-button type="link" @click="addBooking">
<span class="iconfont icon-new_document"></span>
新建
</a-button>
@ -14,24 +39,20 @@
<span class="iconfont icon-shanchu1"></span>
删除
</a-button>
</a-popconfirm>
</a-popconfirm> -->
<slot></slot>
<a-button :loading="eLoading" type="link" @click="exportExcel">
<!-- <a-button :loading="eLoading" type="link" @click="exportExcel">
<span class="iconfont" :class="{ 'icon-tidanqianchu': !eLoading }"></span>
{{ eLoading ? '正在导出' : '批量导出' }}
</a-button>
<a-button type="link" @click="test">
</a-button> -->
<!-- <a-button type="link" @click="test">
<span class="iconfont icon-time"></span>
定时订舱
</a-button>
<a-button type="link" @click="test">
<span class="iconfont icon-a-xiaopiaofapiao-01"></span>
小票状态
</a-button>
<a-button type="link" @click="openYz">
<span class="iconfont icon-a-xiaopiaofapiao-01"></span>
运踪订阅
</a-button>
</a-button> -->
<a-modal title="输入复制数量" :visible="copyMoreFlag" :footer="null" @cancel="copyMoreFlag = false">
<a-form ref="RefcopyMoreForm" :model="copyMoreForm" :label-col="{ span: 5 }" :wrapper-col="{ span: 12 }"
@submit="handleSubmitCopyMore" :style="{ padding: '10px' }">
@ -67,7 +88,7 @@ import { useGo } from '/@/hooks/web/usePage'
import { useMessage } from '/@/hooks/web/useMessage'
import { useRouter } from 'vue-router'
import { useModal } from '/@/components/Modal'
import { SeaExportBatchDel, SaveBookingTxxp, CommonExcelExport,SendTrace } from '../api/BookingLedger.js'
import { SeaExportBatchDel, SaveBookingTxxp, CommonExcelExport,SendTrace, CreateMultipleTask } from '../api/BookingLedger.js'
import BatchModification from '../modules/BatchModification.vue'
const router = useRouter()
const { createMessage } = useMessage()
@ -80,10 +101,7 @@ const props = defineProps({
type: Function,
},
columns: {
type: Array,
default: () => {
return []
},
type: Function
},
queryData: {
type: Object,
@ -95,6 +113,18 @@ function addBooking() {
const addNum = Math.round(Math.random() * 1000)
go(`/BookingDetail?addNum=${addNum}`)
}
//
function copyBookingMore() {
const select = props.selectRow()
const pkIdArr = select.map((item, index) => {
return item.id
})
if (pkIdArr.length === 0 || pkIdArr.length > 1) {
createMessage.warning('请选择一条数据进行复制!')
return false
}
go(`/BookingDetail?id=${pkIdArr[0]}&source=copy`)
}
const copyMoreFlag = ref(false)
const copyMoreForm = reactive({
number: 1,
@ -116,6 +146,21 @@ function batchEditing() {
batchFlag.value = true
openModal(true, { removeArr, flag: true })
}
//
const batchSubmit = () => {
const select = props.selectRow()
if (select.length === 0) {
createMessage.warning('请选择操作订单!')
return false
}
const ids = select.map(item => {
return item.id
})
CreateMultipleTask({ ids, businessType: '1', taskTypeName: 'WAIT_ORDER_AUDIT' }).then(res => {
createMessage.success(res.message)
props.reload()
})
}
function BMSuccess() {
props.reload()
}
@ -137,7 +182,7 @@ const exportExcel = () => {
const postData = {
url: 'http://118.190.144.189:3008/opApi/SeaExport/GetSeaExportList',
queryRequest: props.queryData,
columnSets: props.columns,
columnSets: props.columns(),
}
postData.queryRequest.pageCondition['isExport'] = true
eLoading.value = true

@ -5,10 +5,6 @@
-->
<template>
<div class="ds-table-action-bar">
<a-button type="link" @click="copyBookingMore">
<span class="iconfont icon-fuzhi11"></span>
复制
</a-button>
<a-dropdown>
<a-button type="link">
<span class="iconfont icon-piliangbianji"></span>
@ -25,7 +21,7 @@
</a-menu>
</template>
</a-dropdown>
<a-modal
<!-- <a-modal
class="ds-modal-small"
title="输入复制数量"
:visible="copyMoreFlag"
@ -52,21 +48,19 @@
<a-button type="primary" html-type="submit">确定</a-button>
</div>
</a-form>
</a-modal>
</a-modal> -->
<BatchModification @register="registerModal" @success="BMSuccess" />
</div>
</template>
<script lang="ts" setup>
import { ref, reactive } from 'vue'
import { useGo } from '/@/hooks/web/usePage'
// import { useGo } from '/@/hooks/web/usePage'
import { useMessage } from '/@/hooks/web/useMessage'
import { useRouter } from 'vue-router'
import { useModal } from '/@/components/Modal'
import { SeaExportBatchDel, SaveBookingTxxp, SeaExportCopy, CreateMultipleTask } from '../api/BookingLedger.js'
import BatchModification from '../modules/BatchModification.vue'
const router = useRouter()
const { createMessage } = useMessage()
const go = useGo()
// const go = useGo()
const props = defineProps({
selectRow: {
type: Function,
@ -75,41 +69,24 @@
type: Function,
},
})
//
function addBooking() {
const addNum = Math.round(Math.random() * 1000)
go(`/BookingDetail?addNum=${addNum}`)
}
const copyMoreFlag = ref(false)
const copyMoreForm = reactive({
number: 1,
})
//
function copyBookingMore() {
const select = props.selectRow()
const pkIdArr = select.map((item, index) => {
return item.id
})
if (pkIdArr.length === 0 || pkIdArr.length > 1) {
createMessage.warning('请选择一条数据进行复制!')
return false
}
go(`/BookingDetail?id=${pkIdArr[0]}&source=copy`)
}
function handleSubmitCopyMore() {
const select = props.selectRow()
if (copyMoreForm.number === 1) {
go(`/BookingDetail?id=${select[0].id}&source=copy`)
copyMoreFlag.value = false
return
}
for (var i = 0; i < copyMoreForm.number; i++) {
SeaExportCopy({ id: select[0].id }).then(res => {
props.reload()
})
}
copyMoreFlag.value = false
}
// const copyMoreFlag = ref(false)
// const copyMoreForm = reactive({
// number: 1,
// })
// function handleSubmitCopyMore() {
// const select = props.selectRow()
// if (copyMoreForm.number === 1) {
// go(`/BookingDetail?id=${select[0].id}&source=copy`)
// copyMoreFlag.value = false
// return
// }
// for (var i = 0; i < copyMoreForm.number; i++) {
// SeaExportCopy({ id: select[0].id }).then(res => {
// props.reload()
// })
// }
// copyMoreFlag.value = false
// }
//
const [registerModal, { openModal }] = useModal()
//
@ -130,23 +107,7 @@
function BMSuccess() {
props.reload()
}
//
function deleteBookingOrder(arr) {
let api = []
arr.forEach((e, i) => {
api.push(e)
})
SeaExportBatchDel({ ids: api })
.then((res) => {
if (res.succeeded) {
createMessage.success('删除成功!')
props.reload()
}
})
.catch((err) => {
console.log(err)
})
}
const xGrid = ref()
const txxpForm = ref({})
//

@ -3,12 +3,9 @@
<div class="ds-table">
<BasicTable @register="registerTable" @rowDbClick="handledbclick">
<template #tableTitle>
<div>
<TableActionBar :selectRow="getVxeSelectRows" :reload="reload">
<tableActionBarRight :selectRow="getVxeSelectRows" :reload="reload"></tableActionBarRight>
<Divider type="vertical" style="margin-top: 11px; background-color: #CED5D9;" />
<TableActionBar :selectRow="getVxeSelectRows" :reload="reload" :columns="getColumns" :queryData="queryData">
<!-- <tableActionBarRight :selectRow="getVxeSelectRows" :reload="reload"></tableActionBarRight> -->
</TableActionBar>
</div>
</template>
<template v-slot:bodyCell="{ column, record }">
<!-- 订单状态 -->
@ -316,7 +313,7 @@
import { ref, defineAsyncComponent, onActivated } from 'vue'
const TableActionBar = defineAsyncComponent(() => import("./components/tableActionBar.vue"))
import { CheckCircleFilled, CloseCircleFilled, RedoOutlined } from '@ant-design/icons-vue'
const tableActionBarRight = defineAsyncComponent(() => import("./components/tableActionBarRight.vue"))
// const tableActionBarRight = defineAsyncComponent(() => import("./components/tableActionBarRight.vue"))
import { BasicTable, useTable } from '/@/components/Table'
import { PageDataByBooking, GetWebData } from './api/BookingLedger.js'
import { Divider } from 'ant-design-vue'
@ -424,11 +421,14 @@ const calcColumns = [
]
//
const fieldFlag = ref(true)
//
const queryData = ref(null)
//
const calcData = ref([{}])
const [registerTable, { reload, getVxeSelectRows, setLoading }] = useTable({
const [registerTable, { reload, getVxeSelectRows, setLoading, getColumns }] = useTable({
title: '',
api: async (p) => {
queryData.value = p
const res: API.DataResult = await PageDataByBooking(p)
calcData.value = [res.data?.dataTotal]
return new Promise((resolve) => {

@ -1966,13 +1966,3 @@ function handleClickTree(row, index) {
padding: 0px !important;
}
</style>
<style lang="less">
.ds-task-manager {
.vben-ds-table-button {
position: relative;
top: 10px!important;
left: -7px;
}
}
</style>
Loading…
Cancel
Save