diff --git a/src/api/wms/supplierApbalanceDetail/index.ts b/src/api/wms/supplierApbalanceDetail/index.ts
new file mode 100644
index 000000000..66f6d7399
--- /dev/null
+++ b/src/api/wms/supplierApbalanceDetail/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface SupplierApbalanceDetailVO {
+ id: number
+ ttSupplier: string
+ ttSupplierName: string
+ ttGlcode: string
+ ttYear: string
+ ttVoucher: string
+ ttReference: string
+ ttInvoiceno: string
+ ttTcAmt: number
+ ttBcAmt: number
+ ttTcbal: number
+ ttBcbal: number
+ ttCurr: string
+ ttDueDate: Date
+ ttInvDate: Date
+ ttEffDate: Date
+ ttCreditTerm: string
+ ttGltype: string
+ masterId: number
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询供应商余额明细子列表
+export const getSupplierApbalanceDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplier-apbalance-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplier-apbalance-detail/page`, params })
+ }
+}
+
+// 查询供应商余额明细子详情
+export const getSupplierApbalanceDetail = async (id: number) => {
+ return await request.get({ url: `/wms/supplier-apbalance-detail/get?id=` + id })
+}
+
+// 新增供应商余额明细子
+export const createSupplierApbalanceDetail = async (data: SupplierApbalanceDetailVO) => {
+ return await request.post({ url: `/wms/supplier-apbalance-detail/create`, data })
+}
+
+// 修改供应商余额明细子
+export const updateSupplierApbalanceDetail = async (data: SupplierApbalanceDetailVO) => {
+ return await request.put({ url: `/wms/supplier-apbalance-detail/update`, data })
+}
+
+// 删除供应商余额明细子
+export const deleteSupplierApbalanceDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/supplier-apbalance-detail/delete?id=` + id })
+}
+
+// 导出供应商余额明细子 Excel
+export const exportSupplierApbalanceDetail = async (params) => {
+ return await request.download({ url: `/wms/supplier-apbalance-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplier-apbalance-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/supplierApbalanceMain/index.ts b/src/api/wms/supplierApbalanceMain/index.ts
new file mode 100644
index 000000000..eb43a9d37
--- /dev/null
+++ b/src/api/wms/supplierApbalanceMain/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface SupplierApbalanceMainVO {
+ id: number
+ ttCompany: string
+ ttSupplier: string
+ ttGltype: string
+ ttCustorsupp: string
+ ttSupplierType: string
+ ttName1: string
+ ttName2: string
+ ttName3: string
+ ttSupplierName: string
+ ttGenerateTime: Date
+ ttAccountAp: number
+ ttAccountOthap: number
+ ttAccountPrepay: number
+ ttCreditTerm: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询供应商余额明细主列表
+export const getSupplierApbalanceMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplier-apbalance-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplier-apbalance-main/page`, params })
+ }
+}
+
+// 查询供应商余额明细主详情
+export const getSupplierApbalanceMain = async (id: number) => {
+ return await request.get({ url: `/wms/supplier-apbalance-main/get?id=` + id })
+}
+
+// 新增供应商余额明细主
+export const createSupplierApbalanceMain = async (data: SupplierApbalanceMainVO) => {
+ return await request.post({ url: `/wms/supplier-apbalance-main/create`, data })
+}
+
+// 修改供应商余额明细主
+export const updateSupplierApbalanceMain = async (data: SupplierApbalanceMainVO) => {
+ return await request.put({ url: `/wms/supplier-apbalance-main/update`, data })
+}
+
+// 删除供应商余额明细主
+export const deleteSupplierApbalanceMain = async (id: number) => {
+ return await request.delete({ url: `/wms/supplier-apbalance-main/delete?id=` + id })
+}
+
+// 导出供应商余额明细主 Excel
+export const exportSupplierApbalanceMain = async (params) => {
+ return await request.download({ url: `/wms/supplier-apbalance-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplier-apbalance-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/utils/dict.ts b/src/utils/dict.ts
index 88a966312..c75d0af75 100644
--- a/src/utils/dict.ts
+++ b/src/utils/dict.ts
@@ -288,6 +288,7 @@ export enum DICT_TYPE {
CONTAIN_MANAGE_TYPE = 'contain_menage_type', //器具管理类型
INVOICE_BALANCE_STATEMENT_STATUS = 'invoice_balance_statement_status', //是否有价差
PL_MSTR_TYPE = 'pl_mstr_type', //产品类类型
+ TT_GLTYPE = 'tt_gltype', //账户类型
// ========== 业务 - mes ==========
MESDO_STATUS = 'mes_do_status', // 工单执行状态
diff --git a/src/utils/disposition/defaultButtons.ts b/src/utils/disposition/defaultButtons.ts
index 9b36e0f6f..76258c2fd 100644
--- a/src/utils/disposition/defaultButtons.ts
+++ b/src/utils/disposition/defaultButtons.ts
@@ -1005,6 +1005,30 @@ export function mainListPackageBtn(option: any) {
hasPermi: ''
})
}
+// 主列表-供应商对账打印
+export function mainListPrintBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.打印`).replace('ts.', ''),
+ name: 'print',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-供应商对账回函录入
+export function mainListReplyInputBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.回函录入`).replace('ts.', ''),
+ name: 'replyInput',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
// 主列表-打印
export function mainListPointBtn(option: any) {
return __defaultBtnOption(option, {
diff --git a/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceDetail/index.vue b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceDetail/index.vue
new file mode 100644
index 000000000..bcc776831
--- /dev/null
+++ b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceDetail/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceDetail/supplierApbalanceDetail.data.ts b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceDetail/supplierApbalanceDetail.data.ts
new file mode 100644
index 000000000..6db5af625
--- /dev/null
+++ b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceDetail/supplierApbalanceDetail.data.ts
@@ -0,0 +1,299 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const SupplierApbalanceDetailRules = reactive({
+ ttSupplier: [required],
+ ttGltype: [required],
+ concurrencyStamp: [required],
+})
+
+export const SupplierApbalanceDetail = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '供应商代码',
+ field: 'ttSupplier',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '供应商名称',
+ field: 'ttSupplierName',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '科目代码',
+ field: 'ttGlcode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '年度',
+ field: 'ttYear',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '凭证号',
+ field: 'ttVoucher',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '发票号',
+ field: 'ttReference',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '完整凭证号',
+ field: 'ttInvoiceno',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '发票TC原始金额',
+ field: 'ttTcAmt',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '发票BC原始金额',
+ field: 'ttBcAmt',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '发票TC余额',
+ field: 'ttTcbal',
+ sort: 'custom',
+ },
+ {
+ label: '发票BC余额',
+ field: 'ttBcbal',
+ sort: 'custom',
+ },
+ {
+ label: '货币',
+ field: 'ttCurr',
+ sort: 'custom',
+ },
+ {
+ label: '到期日期',
+ field: 'ttDueDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '发票日期',
+ field: 'ttInvDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '凭证日期',
+ field: 'ttEffDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '付款周期',
+ field: 'ttCreditTerm',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '账户类型',
+ field: 'ttGltype',
+ sort: 'custom',
+ dictType: DICT_TYPE.TT_GLTYPE,
+ dictClass: 'string',
+ },
+ {
+ label: '父ID',
+ field: 'masterId',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/index.vue b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/index.vue
new file mode 100644
index 000000000..42b27103a
--- /dev/null
+++ b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/index.vue
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.id }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/supplierApbalanceMain.data.ts b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/supplierApbalanceMain.data.ts
new file mode 100644
index 000000000..663fc9fc8
--- /dev/null
+++ b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/supplierApbalanceMain.data.ts
@@ -0,0 +1,253 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const SupplierApbalanceMainRules = reactive({
+ ttCompany: [required],
+ ttSupplier: [required],
+ ttGltype: [required],
+ ttCustorsupp: [required],
+ ttSupplierType: [required],
+ ttGenerateTime: [required],
+ concurrencyStamp: [required],
+})
+
+export const SupplierApbalanceMain = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isForm: false,
+ },
+ {
+ label: '公司代码',
+ field: 'ttCompany',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '供应商代码',
+ field: 'ttSupplier',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '账户类型',
+ field: 'ttGltype',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.TT_GLTYPE,
+ dictClass: 'string',
+ },
+ {
+ label: '类型固定值',
+ field: 'ttCustorsupp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '供应商类型',
+ field: 'ttSupplierType',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ form: {
+ component: 'SelectV2'
+ },
+ },
+ {
+ label: '名称1',
+ field: 'ttName1',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '名称2',
+ field: 'ttName2',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '名称3',
+ field: 'ttName3',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '供应商名称',
+ field: 'ttSupplierName',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '生成时间',
+ field: 'ttGenerateTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '应付挂账金额',
+ field: 'ttAccountAp',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '其他应付金额',
+ field: 'ttAccountOthap',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '预付金额',
+ field: 'ttAccountPrepay',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '付款周期',
+ field: 'ttCreditTerm',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm:false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))