箱管调整 以及 自动应付
parent
c767b8b5c9
commit
8641564ec1
@ -0,0 +1,33 @@
|
||||
<template>
|
||||
<svg
|
||||
t="1732698648835"
|
||||
class="icon"
|
||||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="15397"
|
||||
width="200"
|
||||
height="200"
|
||||
>
|
||||
<path
|
||||
d="M960 96H166.4c-32 0-64 25.6-64 64V768c0 32 25.6 64 64 64h371.2s-6.4 0-6.4 6.4L409.6 960H326.4c-19.2 0-32 12.8-32 32s12.8 32 32 32h486.4c19.2 0 32-12.8 32-32s-12.8-32-32-32h-115.2l-115.2-115.2-6.4-6.4h384c32 0 64-25.6 64-64V160c0-32-25.6-64-64-64z"
|
||||
fill="#46B267"
|
||||
p-id="15398"
|
||||
></path>
|
||||
<path
|
||||
d="M460.8 531.2H70.4C32 531.2 0 499.2 0 460.8V70.4C0 32 32 0 70.4 0h390.4c38.4 0 70.4 32 70.4 70.4v390.4c0 38.4-32 70.4-70.4 70.4z"
|
||||
fill="#239148"
|
||||
p-id="15399"
|
||||
></path>
|
||||
<path
|
||||
d="M678.4 422.4l83.2 70.4c12.8 12.8 38.4 12.8 57.6 0 83.2-70.4 89.6-70.4 89.6-76.8 12.8-19.2 6.4-44.8-12.8-57.6-19.2-12.8-38.4-12.8-57.6 6.4 0 0-6.4 6.4-12.8 6.4V262.4c0-25.6-19.2-44.8-44.8-44.8s-44.8 19.2-44.8 44.8v102.4l-12.8-12.8c-19.2-12.8-44.8-12.8-57.6 6.4-6.4 19.2-6.4 44.8 12.8 64z"
|
||||
fill="#70D68A"
|
||||
p-id="15400"
|
||||
></path>
|
||||
<path
|
||||
d="M108.8 448s-6.4-6.4 0 0c0-6.4 0-6.4 0 0l96-179.2-96-179.2v-6.4-6.4c0-6.4 0 0 6.4 0h89.6c6.4 0 6.4 0 6.4 6.4l51.2 96 57.6-89.6c0-6.4 0-6.4 6.4-6.4h96v12.8L326.4 262.4l96 172.8V448c0 6.4 0 0-6.4 0H326.4S320 448 320 441.6l-51.2-96-57.6 96c0 6.4-6.4 6.4-6.4 6.4H108.8z"
|
||||
fill="#FFFFFF"
|
||||
p-id="15401"
|
||||
></path>
|
||||
</svg>
|
||||
</template>
|
@ -0,0 +1,38 @@
|
||||
<template>
|
||||
<svg
|
||||
t="1732698537779"
|
||||
class="icon"
|
||||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="15255"
|
||||
width="200"
|
||||
height="200"
|
||||
>
|
||||
<path
|
||||
d="M928 294.4H102.4C44.8 294.4 0 345.6 0 403.2v512c0 57.6 44.8 108.8 102.4 108.8h70.4v-57.6c0-57.6 44.8-108.8 96-108.8h492.8c51.2 0 96 51.2 96 108.8v57.6h70.4c51.2 0 96-51.2 96-108.8v-512c0-57.6-44.8-108.8-96-108.8z"
|
||||
fill="#635DF7"
|
||||
p-id="15256"
|
||||
></path>
|
||||
<path
|
||||
d="M768 1024H256c-25.6 0-44.8-19.2-44.8-44.8v-25.6c0-25.6 19.2-44.8 44.8-44.8h512c25.6 0 44.8 19.2 44.8 44.8v25.6c0 25.6-19.2 44.8-44.8 44.8z"
|
||||
fill="#635DF7"
|
||||
p-id="15257"
|
||||
></path>
|
||||
<path
|
||||
d="M800 633.6H230.4c-51.2 0-96-44.8-96-96V96C134.4 44.8 172.8 0 230.4 0h569.6c51.2 0 96 44.8 96 96v435.2c0 57.6-44.8 102.4-96 102.4z"
|
||||
fill="#AFBAF9"
|
||||
p-id="15258"
|
||||
></path>
|
||||
<path
|
||||
d="M883.2 768m-51.2 0a51.2 51.2 0 1 0 102.4 0 51.2 51.2 0 1 0-102.4 0Z"
|
||||
fill="#FFFFFF"
|
||||
p-id="15259"
|
||||
></path>
|
||||
<path
|
||||
d="M736 243.2H294.4c-19.2 0-32-12.8-32-32v-32c0-19.2 12.8-32 32-32h441.6c19.2 0 32 12.8 32 32v32c0 12.8-12.8 32-32 32zM736 467.2H294.4c-19.2 0-32-12.8-32-32v-32c0-19.2 12.8-32 32-32h441.6c19.2 0 32 12.8 32 32v32c0 19.2-12.8 32-32 32z"
|
||||
fill="#FFFFFF"
|
||||
p-id="15260"
|
||||
></path>
|
||||
</svg>
|
||||
</template>
|
@ -0,0 +1,28 @@
|
||||
<template>
|
||||
<svg
|
||||
t="1732698213414"
|
||||
class="icon"
|
||||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="14976"
|
||||
width="200"
|
||||
height="200"
|
||||
>
|
||||
<path
|
||||
d="M876.8 1024H147.2C64 1024 0 960 0 883.2V140.8C0 64 64 0 147.2 0h627.2c12.8 0 25.6 6.4 32 12.8l204.8 192c6.4 6.4 12.8 19.2 12.8 32v646.4c0 76.8-64 140.8-147.2 140.8z"
|
||||
fill="#FFB636"
|
||||
p-id="14977"
|
||||
></path>
|
||||
<path
|
||||
d="M633.6 441.6H358.4c-70.4 0-128-57.6-128-121.6V0h531.2v320c0 64-57.6 121.6-128 121.6z"
|
||||
fill="#FF7C0E"
|
||||
p-id="14978"
|
||||
></path>
|
||||
<path
|
||||
d="M614.4 352H460.8c-32 0-57.6-25.6-57.6-51.2s25.6-51.2 57.6-51.2h153.6c32 0 57.6 25.6 57.6 51.2s-25.6 51.2-57.6 51.2z"
|
||||
fill="#FFFFFF"
|
||||
p-id="14979"
|
||||
></path>
|
||||
</svg>
|
||||
</template>
|
@ -0,0 +1,41 @@
|
||||
import { request } from '/@/utils/request'
|
||||
import { DataResult, PageRequest } from '/@/api/model/baseModel'
|
||||
enum Api {
|
||||
list = '/checkApi/CheckBillAuto/GetCheckBillAutoList',
|
||||
edit = '/checkApi/CheckBillAuto/EditCheckBillAutoInfo',
|
||||
info = '/checkApi/CheckBillAuto/GetCheckBillAutoInfo',
|
||||
Del = '/checkApi/CheckBillAuto/BatchDelCheckBillAuto',
|
||||
}
|
||||
// 列表 (Auth)
|
||||
export function ApiList(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.list,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 编辑 (Auth)
|
||||
export function ApiEdit(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.edit,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 详情 (Auth)
|
||||
export function ApiInfo(query) {
|
||||
return request<DataResult>({
|
||||
url: Api.info,
|
||||
method: 'get',
|
||||
params: query,
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除 (Auth)
|
||||
export function ApiDel(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.Del,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,558 @@
|
||||
<template>
|
||||
<div style="height: 100%">
|
||||
<div class="infoclientBox">
|
||||
<div class="buttonBox">
|
||||
<div class="TopUnit" v-if="InfoData.autoBillNo">
|
||||
自动对账编号:{{ InfoData.autoBillNo }}
|
||||
</div>
|
||||
<div class="TopUnit" v-if="InfoData.billNo"> 对账单编号:{{ InfoData.billNo }} </div>
|
||||
<div class="TopUnit" :class="grade == 'A' ? 'blue' : 'Purple'">
|
||||
<a-select class="Select" :bordered="false" v-model:value="grade">
|
||||
<a-select-option value="A">根据导入对账</a-select-option>
|
||||
<a-select-option value="B">根据区间对账</a-select-option>
|
||||
</a-select>
|
||||
</div>
|
||||
<div class="TopUnit"> <SaveSvg class="svg" /> </div>
|
||||
<div class="TopUnit">
|
||||
<PrintSvg class="svg" />
|
||||
</div>
|
||||
<div class="TopUnit">
|
||||
<ExcelSvg class="svg" />
|
||||
</div>
|
||||
<div class="TopUnit">
|
||||
<span class="iconfont icon-gengxinheji-danse"></span>
|
||||
<span>重新对账</span>
|
||||
</div>
|
||||
<div class="TopUnit">
|
||||
<span class="iconfont icon-fendan-danse"></span>
|
||||
<span>拆分</span>
|
||||
</div>
|
||||
<div class="TopUnit">
|
||||
<span class="iconfont icon-fapiao-danse"></span>
|
||||
<a-select class="Select normal" :bordered="false" v-model:value="grade">
|
||||
<a-select-option value="A">生成对账单</a-select-option>
|
||||
<a-select-option value="B">取消生成</a-select-option>
|
||||
</a-select>
|
||||
</div>
|
||||
<div class="TopUnit">
|
||||
<span class="iconfont icon-feiyongmingxi-danse"></span>
|
||||
<span>生成付费申请</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="TopForm">
|
||||
<BasicForm @register="registerForm" @linkageForm="linkageForm" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="CsMain p-4" id="detail">
|
||||
<a-row class="CsHeader" :gutter="5">
|
||||
<a-col :span="24" class="headerForm">
|
||||
<a-spin :spinning="spinningT">
|
||||
<BasicForm @register="registerForm" @linkageForm="linkageForm" class="ds-form-detail" />
|
||||
</a-spin>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row class="CsBottom">
|
||||
<a-col :span="16" class="bottomTableL">
|
||||
<a-spin :spinning="spinningL">
|
||||
<BasicTable
|
||||
class="ds-table-detail"
|
||||
@register="registerTable"
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<template #tableTitle>
|
||||
<p class="tableTitle">账单明细</p>
|
||||
<a-button v-repeat type="link" @click="addDetail">
|
||||
<span class="iconfont icon-new_document"></span>
|
||||
添加
|
||||
</a-button>
|
||||
<a-popconfirm
|
||||
title="确定删除选中数据?"
|
||||
ok-text="是"
|
||||
cancel-text="否"
|
||||
@confirm="DelDetailL"
|
||||
>
|
||||
<a-button v-repeat type="link">
|
||||
<span class="iconfont icon-shanchu21"></span>
|
||||
删除
|
||||
</a-button>
|
||||
</a-popconfirm>
|
||||
<a-button v-repeat type="link" @click="OpenFileModel">
|
||||
<span class="iconfont icon-fujian"></span>
|
||||
附件
|
||||
</a-button>
|
||||
</template>
|
||||
</BasicTable>
|
||||
<div class="totalBox">
|
||||
<div class="unitBox">
|
||||
<a-table
|
||||
class="ds-table"
|
||||
:columns="calcColumns"
|
||||
:data-source="[Ldata]"
|
||||
:pagination="false"
|
||||
></a-table>
|
||||
</div>
|
||||
</div>
|
||||
</a-spin>
|
||||
</a-col>
|
||||
<a-col :span="8" class="bottomTableR">
|
||||
<a-spin :spinning="spinningR">
|
||||
<h3>右侧</h3>
|
||||
</a-spin>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div> -->
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
import { Divider } from 'ant-design-vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
const route = useRoute()
|
||||
import { useMessage } from '/@/hooks/web/useMessage'
|
||||
const { notification } = useMessage()
|
||||
import { BasicForm, useForm } from '/@/components/Form/index'
|
||||
import { BasicTable, useTable } from '/@/components/Table'
|
||||
import { BasicModal, useModal } from '/@/components/Modal'
|
||||
import { useGo } from '/@/hooks/web/usePage'
|
||||
const go = useGo()
|
||||
import { columnsL, Editschemas, schemas } from './columns'
|
||||
import SaveSvg from './SVG/SaveSvg.vue'
|
||||
import PrintSvg from './SVG/PrintSvg.vue'
|
||||
import ExcelSvg from './SVG/ExcelSvg.vue'
|
||||
|
||||
import {
|
||||
EditCheckBill,
|
||||
GetCheckBillBusinessList,
|
||||
GetCheckBillFeeRecordsList,
|
||||
BatchDelCheckBillDetail,
|
||||
BatchDelCheckBillFeeRecords,
|
||||
CheckBillLocking,
|
||||
CheckBillUnLocking,
|
||||
AddCheckBillDetail,
|
||||
AddCheckBillFeeRecords,
|
||||
} from '/@/views/operation/CustomerReconciliation/api.js'
|
||||
import { ApiInfo } from './api'
|
||||
const id = ref(route.query.id)
|
||||
const spinningL = ref(false)
|
||||
const spinningT = ref(false)
|
||||
const billNo = ref()
|
||||
const isLocking = ref(false)
|
||||
const calcData = ref([])
|
||||
// 新增弹窗
|
||||
const [registerAdd, { openModal: openModalAdd }] = useModal()
|
||||
setTimeout(() => {
|
||||
init()
|
||||
}, 100)
|
||||
|
||||
const Ldata = ref({})
|
||||
const grade = ref('A')
|
||||
const InfoData = ref<any>({})
|
||||
function init() {
|
||||
if (id.value) {
|
||||
spinningL.value = true
|
||||
spinningT.value = true
|
||||
// businessId
|
||||
let ApiData = {
|
||||
queryCondition: `[{"FieldName":"checkId","FieldValue":"${id.value}","ConditionalType":1}]`,
|
||||
pageCondition: {
|
||||
sortConditions: [],
|
||||
},
|
||||
}
|
||||
|
||||
ApiInfo({ id: id.value }).then((res) => {
|
||||
setFieldsValue(res.data)
|
||||
InfoData.value = res.data
|
||||
spinningT.value = false
|
||||
billNo.value = res.data.billNo
|
||||
isLocking.value = res.data.isLocking
|
||||
})
|
||||
GetCheckBillBusinessList(ApiData).then((res) => {
|
||||
setTableData(res.data.list)
|
||||
Ldata.value = res.data.dataTotal
|
||||
spinningL.value = false
|
||||
})
|
||||
// GetCheckBillFeeRecordsList(ApiData).then((res) => {
|
||||
// setTableDataR(res.data)
|
||||
// })
|
||||
} else {
|
||||
addDetail()
|
||||
}
|
||||
}
|
||||
function RauditClass() {
|
||||
let RData = ''
|
||||
switch (isLocking.value) {
|
||||
case true:
|
||||
RData = 'active'
|
||||
break
|
||||
default:
|
||||
RData = 'rejected'
|
||||
break
|
||||
}
|
||||
return RData
|
||||
}
|
||||
|
||||
// 头部表格
|
||||
const [registerForm, { getFieldsValue, validate, setFieldsValue, updateSchema }] = useForm({
|
||||
labelWidth: 120,
|
||||
schemas: id.value ? Editschemas : schemas,
|
||||
showActionButtonGroup: false,
|
||||
actionColOptions: {
|
||||
span: 5,
|
||||
},
|
||||
// 是否禁用表单所有控件
|
||||
disabled: false,
|
||||
})
|
||||
const linkageForm = (e) => {
|
||||
schemas.forEach((item) => {
|
||||
if (item.field == e.schema.field) {
|
||||
updateSchema(item)
|
||||
}
|
||||
})
|
||||
}
|
||||
// 左侧表格
|
||||
const [registerTable, { getSelectRows, setTableData }] = useTable({
|
||||
title: '',
|
||||
rowSelection: { type: 'checkbox' },
|
||||
columns: columnsL,
|
||||
pagination: true,
|
||||
striped: true,
|
||||
showTableSetting: false,
|
||||
bordered: true,
|
||||
showIndexColumn: true,
|
||||
immediate: false,
|
||||
canResize: true,
|
||||
resizeHeightOffset: 105,
|
||||
})
|
||||
const spinningR = ref(false)
|
||||
// 左侧表格点击查询费用明细
|
||||
let LeftSelectData = ref<any>()
|
||||
function selectionChange(e) {
|
||||
LeftSelectData.value = e
|
||||
if (e.rows.length) {
|
||||
spinningR.value = true
|
||||
let ApiData = {
|
||||
queryCondition: `[{"FieldName":"businessId","FieldValue":"${
|
||||
e.rows[e.rows.length - 1].businessId
|
||||
}","ConditionalType":1},{"FieldName":"checkId","FieldValue":"${
|
||||
e.rows[e.rows.length - 1].checkId
|
||||
}","ConditionalType":1}]`,
|
||||
pageCondition: {
|
||||
sortConditions: [],
|
||||
},
|
||||
}
|
||||
GetCheckBillFeeRecordsList(ApiData).then((res) => {
|
||||
spinningR.value = false
|
||||
})
|
||||
} else {
|
||||
}
|
||||
}
|
||||
// 合计列
|
||||
const calcColumns = [
|
||||
{
|
||||
title: '应收RMB',
|
||||
dataIndex: 'rmbdr',
|
||||
},
|
||||
// {
|
||||
// title: '应付RMB',
|
||||
// dataIndex: 'rmbcr',
|
||||
// },
|
||||
{
|
||||
title: '应收USD',
|
||||
dataIndex: 'usddr',
|
||||
},
|
||||
// {
|
||||
// title: '应付USD',
|
||||
// dataIndex: 'usdcr',
|
||||
// },
|
||||
{
|
||||
title: '未收RMB',
|
||||
dataIndex: 'balrmbdr',
|
||||
},
|
||||
// {
|
||||
// title: '未付RMB',
|
||||
// dataIndex: 'balrmbcr',
|
||||
// },
|
||||
{
|
||||
title: '未收USD',
|
||||
dataIndex: 'balusddr',
|
||||
},
|
||||
// {
|
||||
// title: '未付USD',
|
||||
// dataIndex: 'balusdcr',
|
||||
// },
|
||||
// {
|
||||
// title: '其他应收',
|
||||
// dataIndex: 'otherDR',
|
||||
// },
|
||||
// {
|
||||
// title: '其他应付',
|
||||
// dataIndex: 'otherCR',
|
||||
// },
|
||||
// {
|
||||
// title: '其他未收',
|
||||
// dataIndex: 'balOtherDR',
|
||||
// },
|
||||
// {
|
||||
// title: '其他未付',
|
||||
// dataIndex: 'balOtherCR',
|
||||
// },
|
||||
// {
|
||||
// title: 'TTL应收',
|
||||
// dataIndex: 'ttldr',
|
||||
// },
|
||||
// {
|
||||
// title: 'TTL应付',
|
||||
// dataIndex: 'ttlcr',
|
||||
// },
|
||||
// {
|
||||
// title: 'TTL未收',
|
||||
// dataIndex: 'balttldr',
|
||||
// },
|
||||
// {
|
||||
// title: 'TTL未付',
|
||||
// dataIndex: 'balttlcr',
|
||||
// },
|
||||
{
|
||||
title: '开票RMB应收',
|
||||
dataIndex: 'orderInvoiceRMBDR',
|
||||
},
|
||||
{
|
||||
title: '开票USD应收',
|
||||
dataIndex: 'orderInvoiceUSDDR',
|
||||
},
|
||||
{
|
||||
title: '订单金额RMB应付',
|
||||
dataIndex: 'orderAmountRMBCR',
|
||||
},
|
||||
{
|
||||
title: '订单金额USD应付',
|
||||
dataIndex: 'orderAmountUSDCR',
|
||||
},
|
||||
]
|
||||
|
||||
// 点击新增 打开弹窗
|
||||
function addDetail() {
|
||||
openModalAdd(true, {
|
||||
customerId: getFieldsValue().customerId,
|
||||
customerName: getFieldsValue().customerName,
|
||||
})
|
||||
}
|
||||
// 新增 编辑
|
||||
function GoDetailed() {
|
||||
go(`/CustomerReconciliationDetails`)
|
||||
}
|
||||
// 点击删除详情
|
||||
function DelDetailL() {
|
||||
// businessId
|
||||
// checkId
|
||||
if (getSelectRows().length) {
|
||||
let Apidata: any = {
|
||||
id: id.value,
|
||||
ids: [],
|
||||
}
|
||||
getSelectRows().forEach((item) => {
|
||||
Apidata.ids.push(item.businessId)
|
||||
})
|
||||
BatchDelCheckBillDetail(Apidata).then((res) => {
|
||||
if (res.succeeded) {
|
||||
notification.success({ message: '删除成功', duration: 3 })
|
||||
init()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
notification.warning({ message: '请至少选择一条数据', duration: 3 })
|
||||
}
|
||||
}
|
||||
|
||||
// 新增弹窗
|
||||
const [registerEdit, { openModal: openModalEdit }] = useModal()
|
||||
// 双击行 打开弹窗
|
||||
function RowClick() {
|
||||
openModalEdit(true)
|
||||
}
|
||||
|
||||
// 附件弹窗
|
||||
const [registerFile, { openModal: openModalFile }] = useModal()
|
||||
// 附件弹窗
|
||||
const [registerFileModel, { openModal: openModalFileModel }] = useModal()
|
||||
function OpenFileModel() {
|
||||
openModalFileModel(true)
|
||||
}
|
||||
// 点击上传附件 打开弹窗
|
||||
function OpenFileModal() {
|
||||
openModalFile(true)
|
||||
}
|
||||
|
||||
const activeKey = ref('1')
|
||||
// 锁定
|
||||
function Lock() {
|
||||
let ApiData = {
|
||||
ids: [id.value],
|
||||
}
|
||||
CheckBillLocking(ApiData).then((res) => {
|
||||
if (res.succeeded) {
|
||||
notification.success({ message: '锁定成功', duration: 3 })
|
||||
}
|
||||
})
|
||||
}
|
||||
// 解除锁定
|
||||
function UnLock() {
|
||||
let ApiData = {
|
||||
ids: [id.value],
|
||||
}
|
||||
CheckBillUnLocking(ApiData).then((res) => {
|
||||
if (res.succeeded) {
|
||||
notification.success({ message: '解除锁定成功', duration: 3 })
|
||||
}
|
||||
})
|
||||
}
|
||||
// 保存
|
||||
async function Save() {
|
||||
const values = await validate()
|
||||
let ApiData = {
|
||||
...values,
|
||||
businessIds: [],
|
||||
}
|
||||
let res = await EditCheckBill(ApiData)
|
||||
if (res.succeeded) {
|
||||
notification.success({ message: res.message, duration: 3 })
|
||||
}
|
||||
id.value = res.data
|
||||
}
|
||||
function waitFor() {
|
||||
notification.warning({ message: '暂未开发', duration: 3 })
|
||||
}
|
||||
const RefInfo = ref()
|
||||
// 添加对账明细
|
||||
async function AddDetailL(e) {
|
||||
if (!id.value) {
|
||||
setFieldsValue({
|
||||
...getFieldsValue(),
|
||||
customerId: e.customerId,
|
||||
customerName: e.customerName,
|
||||
})
|
||||
await Save()
|
||||
}
|
||||
e.id = id.value
|
||||
AddCheckBillDetail(e).then(async (res) => {
|
||||
if (res.succeeded) {
|
||||
notification.success({ message: '添加成功', duration: 3 })
|
||||
init()
|
||||
RefInfo.value.handleSubmit()
|
||||
RefInfo.value.closeModal()
|
||||
}
|
||||
})
|
||||
}
|
||||
// 添加对账费用明细
|
||||
async function AddDetailR(e) {
|
||||
console.log(e)
|
||||
|
||||
if (!id.value) {
|
||||
setFieldsValue({
|
||||
...getFieldsValue(),
|
||||
customerId: e.customerId,
|
||||
customerName: e.customerName,
|
||||
})
|
||||
await Save()
|
||||
}
|
||||
console.log(
|
||||
getSelectRows(),
|
||||
getSelectRows().length,
|
||||
// getSelectRows()[getSelectRows().length - 1].checkId,
|
||||
)
|
||||
|
||||
// e.id = getSelectRows()[getSelectRows().length - 1].checkId
|
||||
e.id = id.value
|
||||
AddCheckBillFeeRecords(e).then((res) => {
|
||||
if (res.succeeded) {
|
||||
notification.success({ message: '添加成功', duration: 3 })
|
||||
init()
|
||||
RefInfo.value.closeModal()
|
||||
}
|
||||
})
|
||||
}
|
||||
const dsPrint = ref()
|
||||
// 打印费用
|
||||
async function printFee() {
|
||||
dsPrint.value.init()
|
||||
}
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
// ----------------------
|
||||
.infoclientBox {
|
||||
// height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background: #f0f2f5;
|
||||
padding: 8px 20px;
|
||||
.buttonBox {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 32px;
|
||||
.TopUnit {
|
||||
padding: 5px;
|
||||
margin-right: 8px;
|
||||
border-radius: 4px;
|
||||
background: rgba(255, 255, 255, 1);
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
letter-spacing: 0px;
|
||||
color: rgba(18, 24, 38, 1);
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
&.blue {
|
||||
background: #4ba1a5;
|
||||
}
|
||||
&.Purple {
|
||||
background: #6a64cc;
|
||||
}
|
||||
.svg {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
.iconfont {
|
||||
color: rgba(255, 102, 0, 1);
|
||||
}
|
||||
:deep(.Select) {
|
||||
color: rgba(255, 255, 255, 1);
|
||||
.ant-select-selector {
|
||||
padding: 0;
|
||||
height: 16px;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
.ant-select-selection-search {
|
||||
line-height: 16px;
|
||||
.ant-select-selection-search-input {
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
.ant-select-selection-item {
|
||||
line-height: 16px;
|
||||
}
|
||||
}
|
||||
.ant-select-arrow {
|
||||
color: rgba(255, 255, 255, 1);
|
||||
top: 10px;
|
||||
right: 5px;
|
||||
}
|
||||
&.normal {
|
||||
color: #000;
|
||||
.ant-select-arrow {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.TopForm {
|
||||
padding: 10px 20px;
|
||||
margin-top: 10px;
|
||||
border-radius: 6px;
|
||||
background: rgba(255, 255, 255, 1);
|
||||
border: 1px solid rgba(204, 214, 223, 1);
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,3 +1,84 @@
|
||||
<template>
|
||||
<h3>应付自动对账</h3>
|
||||
<div class="p20">
|
||||
<BasicTable class="ds-table" @register="registerTable" @row-dbClick="handleAudit">
|
||||
<template #tableTitle>
|
||||
<TableButton :show="{ add: null, del: null }" @add="handleCreate" @del="handleDel">
|
||||
<!-- <span class="iconfont icon-yiwancheng2" @click="Confirm">确认执行</span> -->
|
||||
<!-- <span class="iconfont icon-weiwancheng" @click="Cancel">取消确认</span> -->
|
||||
</TableButton>
|
||||
</template>
|
||||
</BasicTable>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup name="应付自动对账">
|
||||
import { onMounted } from 'vue'
|
||||
import { BasicTable, useTable } from '/@/components/Table'
|
||||
import { ApiList, ApiDel } from './api'
|
||||
import { columns, searchFormSchema } from './columns'
|
||||
// 引入处理入参方法
|
||||
import { formatParams } from '/@/hooks/web/common'
|
||||
import { useMessage } from '/@/hooks/web/useMessage'
|
||||
const { notification } = useMessage()
|
||||
import { useGo } from '/@/hooks/web/usePage'
|
||||
const go = useGo()
|
||||
const [registerTable, { reload, getForm, getSelectRows }] = useTable({
|
||||
title: '',
|
||||
rowSelection: { type: 'checkbox' },
|
||||
clickToRowSelect: false,
|
||||
api: async (p) => {
|
||||
const res: API.DataResult = await ApiList(p)
|
||||
return new Promise((resolve) => {
|
||||
resolve({ data: [...res.data], total: res.count })
|
||||
})
|
||||
},
|
||||
beforeFetch: (p) => {
|
||||
return formatParams(p, searchFormSchema)
|
||||
},
|
||||
columns,
|
||||
formConfig: {
|
||||
labelWidth: 120,
|
||||
schemas: searchFormSchema,
|
||||
},
|
||||
isTreeTable: false,
|
||||
pagination: true,
|
||||
striped: true,
|
||||
useSearchForm: true,
|
||||
showTableSetting: true,
|
||||
bordered: true,
|
||||
indexColumnProps: {
|
||||
width: 60,
|
||||
},
|
||||
canResize: true,
|
||||
immediate: true,
|
||||
resizeHeightOffset: 45,
|
||||
tableComponent: 'vxe',
|
||||
id: '0',
|
||||
autoHeight: window.innerHeight - 325.5,
|
||||
})
|
||||
function handleCreate() {
|
||||
go(`/checkBillAutoDetail`)
|
||||
}
|
||||
function handleDel() {
|
||||
const select = getSelectRows()
|
||||
if (select.length === 0) {
|
||||
notification.error({ message: '请选择一条数据', duration: 3 })
|
||||
return false
|
||||
}
|
||||
const removeArr = select.map((item) => {
|
||||
return item.id
|
||||
})
|
||||
ApiDel({ ids: removeArr }).then((res) => {
|
||||
notification.success({ message: res.message, duration: 3 })
|
||||
reload()
|
||||
})
|
||||
}
|
||||
function handleAudit(record: Recordable) {
|
||||
go(`/checkBillAutoDetail?id=${record.id}`)
|
||||
}
|
||||
function handleSuccess() {
|
||||
reload()
|
||||
}
|
||||
onMounted(() => {
|
||||
reload()
|
||||
})
|
||||
</script>
|
||||
|
Loading…
Reference in New Issue