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 @@ + + + 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 @@ + + + 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' + } + } +]))