Skip to content

Commit

Permalink
Merge pull request #246 from Jzow/master
Browse files Browse the repository at this point in the history
update module add printing function
  • Loading branch information
Jzow authored Nov 30, 2023
2 parents aa7b849 + 5a538ed commit 094f16e
Show file tree
Hide file tree
Showing 35 changed files with 1,483 additions and 131 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ public Response<Page<IncomeVO>> getIncomeReceiptPageList(QueryIncomeDTO queryInc
.ge(StringUtils.hasLength(queryIncomeDTO.getStartDate()), FinancialMain::getReceiptDate, queryIncomeDTO.getStartDate())
.le(StringUtils.hasLength(queryIncomeDTO.getEndDate()), FinancialMain::getReceiptDate, queryIncomeDTO.getEndDate())
.eq(FinancialMain::getType, "收入")
.eq(FinancialMain::getDeleteFlag, CommonConstants.NOT_DELETED)
.page(page);

var incomeVOList = new ArrayList<IncomeVO>(financialMainPage.getRecords().size() + 1);
Expand Down
20 changes: 19 additions & 1 deletion web/src/views/financial/advance-charge/advance.data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,4 +162,22 @@ export const formState: UnwrapRef<FormState> = reactive<FormState>({
remark: '',
totalAmount: 0,
collectedAmount: 0,
});
});

export const advanceChargeTableColumns: BasicColumn[] = [
{
title: '账户名称',
dataIndex: 'accountName',
width: 200,
},
{
title: '金额',
dataIndex: 'amount',
width: 180,
},
{
title: '备注',
dataIndex: 'remark',
width: 200,
},
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
<template>
<BasicModal v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
<div class="components-page-header-demo-responsive" style="border: 1px solid rgb(235, 237, 240)">
<a-page-header
title="收预付款单-详情"
:sub-title= "receiptNumber">
<template #extra>
<a-button @click="exportTable">导出</a-button>
<a-button @click="primaryPrint" type="primary">普通打印</a-button>
<!-- <a-button key="triplePrint">三联打印</a-button>-->
<!-- <a-button key="2" type="primary">发起流程审批</a-button>-->
</template>
<a-descriptions size="small" :column="3">
<a-descriptions-item label="付款会员">{{ memberName }}</a-descriptions-item>
<a-descriptions-item label="单据日期">{{ receiptDate }}</a-descriptions-item>
<a-descriptions-item label="财务人员">{{ financialPersonnel }}</a-descriptions-item>
<a-descriptions-item label="合计金额">{{ totalAmount }}</a-descriptions-item>
<a-descriptions-item label="收款金额">{{ collectedAmount }}</a-descriptions-item>
<a-descriptions-item label="备注">
{{ remark }}
</a-descriptions-item>
</a-descriptions>
<div class="extra">
<div
class="descriptions-context"
:style="{
display: 'flex',
width: 'max-content',
justifyContent: 'flex-end',
}"
>
<a-statistic
title="单据状态"
:value="status === 1 ? '已审核' : '未审核'"
:value-style="status === 1 ? { color: '#3f8600' } : { color: '#cf1322' }"
:style="{
marginRight: '32px',
color: 'green',
}"
/>
<a-statistic title="单据金额"
prefix=""
:value-style="status === 1 ? { color: '#3f8600' } : { color: '#cf1322' }"
:value="collectedAmount"/>
</div>
</div>
</a-page-header>
<BasicTable @register="registerTable">
</BasicTable>
</div>
</BasicModal>
</template>
<script lang="ts">
import {defineComponent, ref} from 'vue';
import {BasicTable, useTable} from '/src/components/Table';
import {BasicModal, useModalInner} from "@/components/Modal";
import {getAdvanceDetail} from "@/api/financial/advance";
import {
Descriptions,
DescriptionsItem,
PageHeader,
Statistic,
} from 'ant-design-vue';
import {advanceChargeTableColumns} from "@/views/financial/advance-charge/advance.data";
import printJS from "print-js";
export default defineComponent({
name: 'ViewIncomeModal',
components: {
BasicModal,
BasicTable,
'a-page-header': PageHeader,
'a-descriptions': Descriptions,
'a-descriptions-item': DescriptionsItem,
'a-statistic': Statistic,
},
setup() {
const receiptNumber = ref('');
const memberName = ref('');
const receiptDate = ref('');
const financialPersonnel = ref('');
const totalAmount = ref('');
const collectedAmount = ref('');
const remark = ref('')
const tableData = ref([]);
const status = ref(-1);
const [registerTable] = useTable({
title: '收预付款单据详情数据',
columns: advanceChargeTableColumns,
dataSource: tableData,
pagination: false,
showIndexColumn: false,
bordered: true,
canResize: false,
});
const getTitle = ref('单据详情');
const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
setModalProps({confirmLoading: false, destroyOnClose: true, width: 1000, showOkBtn: false});
const res = await getAdvanceDetail(data.id);
tableData.value = res.data.tableData;
receiptNumber.value = res.data.receiptNumber;
memberName.value = res.data.memberName;
financialPersonnel.value = res.data.financialPersonnel;
receiptDate.value = res.data.receiptDate;
totalAmount.value = res.data.totalAmount;
collectedAmount.value = res.data.collectedAmount;
remark.value = res.data.remark;
status.value = res.data.status;
});
function handleSubmit() {
closeModal();
}
function exportTable() {
}
const flexContainer = 'display: flex; justify-content: space-between; border-bottom: 1px solid #ddd; padding: 8px;';
const flexItem = 'display: flex; flex-direction: column; justify-content: space-between; font-size: 12px;';
function primaryPrint() {
const header = `
<div style="${flexContainer}">
<div style="${flexItem}">单据编号:${receiptNumber.value}</div>
<div style="${flexItem}">单据日期:${receiptDate.value}</div>
<div style="${flexItem}">单据金额:${totalAmount.value}</div>
</div>
<div style="${flexContainer}">
<div style="${flexItem}">付款会员:${memberName.value}</div>
<div style="${flexItem}">财务人员:${financialPersonnel.value}</div>
<div style="${flexItem}">备注:${remark.value}</div>
</div>
`;
printJS({
documentTitle: "EAIRP (收预付款单单据-详情)",
header: header,
properties: advanceChargeTableColumns.map((item) => {
return {
field: item.dataIndex,
displayName: item.title,
};
}),
printable: tableData.value,
gridHeaderStyle: 'border: 1px solid #ddd; font-size: 12px; text-align: center; padding: 8px;',
gridStyle: 'border: 1px solid #ddd; font-size: 12px; text-align: center; padding: 8px;',
type: 'json',
});
}
return {
receiptNumber,
memberName,
receiptDate,
financialPersonnel,
collectedAmount,
totalAmount,
remark,
status,
registerTable,
registerModal,
getTitle,
handleSubmit,
exportTable,
primaryPrint
};
},
});
</script>
<style scoped>
</style>
22 changes: 16 additions & 6 deletions web/src/views/financial/advance-charge/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
<TableAction
:actions="[
{
icon: 'clarity:view-line',
onClick: handleEdit.bind(null, record),
icon: 'clarity:info-standard-line',
tooltip: '查看收预付款单详情',
onClick: handleView.bind(null, record),
},
{
icon: 'clarity:note-edit-line',
Expand All @@ -39,6 +40,7 @@
</template>
</BasicTable>
<AdvanceChargeModal ref="advanceChargeModalRef" @cancel="handleCancel"></AdvanceChargeModal>
<ViewAdvanceChargeModal @register="viewAdvanceChargeModalRef"/>
</div>
</template>
<div>
Expand All @@ -52,13 +54,14 @@ import {useMessage} from "@/hooks/web/useMessage";
import {columns, searchFormSchema} from "@/views/financial/advance-charge/advance.data";
import {getAdvancePageList, deleteBatchAdvance, updateAdvanceStatus} from "@/api/financial/advance";
import AdvanceChargeModal from "@/views/financial/advance-charge/components/AdvanceChargeModal.vue";
import ViewAdvanceChargeModal from "@/views/financial/advance-charge/components/ViewAdvanceChargeModal.vue";
import {Tag} from "ant-design-vue";
export default defineComponent({
name: 'advanceCharge',
components: {Tag, TableAction, BasicTable, AdvanceChargeModal },
components: {Tag, TableAction, BasicTable, AdvanceChargeModal, ViewAdvanceChargeModal},
setup() {
const [registerModal, {openModal}] = useModal();
const [viewAdvanceChargeModalRef, {openModal: openAdvanceChargeModal}] = useModal();
const { createMessage } = useMessage();
const advanceChargeModalRef = ref(null);
const [registerTable, { reload, getSelectRows }] = useTable({
Expand Down Expand Up @@ -142,17 +145,24 @@ export default defineComponent({
reload();
}
function handleView(record: Recordable){
openAdvanceChargeModal(true, {
id: record.id,
});
}
return {
registerTable,
registerModal,
handleCreate,
handleDelete,
handleBatchDelete,
handleEdit,
handleView,
handleSuccess,
handleOnStatus,
handleCancel,
advanceChargeModalRef
advanceChargeModalRef,
viewAdvanceChargeModalRef
}
}
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
title="收款单-详情"
:sub-title= "receiptNumber">
<template #extra>
<a-button key="1" type="primary">打印</a-button>
<a-button @click="exportTable">导出</a-button>
<a-button @click="primaryPrint" type="primary">普通打印</a-button>
<!-- <a-button key="triplePrint">三联打印</a-button>-->
<!-- <a-button key="2" type="primary">发起流程审批</a-button>-->
</template>
<a-descriptions size="small" :column="3">
<a-descriptions-item label="客户">{{ customerName }}</a-descriptions-item>
Expand Down Expand Up @@ -61,6 +64,7 @@ import {
Statistic,
} from 'ant-design-vue';
import {collectionReceiptTableColumns} from "@/views/financial/collection/collection.data";
import printJS from "print-js";
export default defineComponent({
name: 'ViewExpenseModal',
components: {
Expand Down Expand Up @@ -113,6 +117,46 @@ export default defineComponent({
closeModal();
}
function exportTable() {
}
const flexContainer = 'display: flex; justify-content: space-between; border-bottom: 1px solid #ddd; padding: 8px;';
const flexItem = 'display: flex; flex-direction: column; justify-content: space-between; font-size: 12px;';
function primaryPrint() {
const header = `
<div style="${flexContainer}">
<div style="${flexItem}">单据编号:${receiptNumber.value}</div>
<div style="${flexItem}">单据日期:${receiptDate.value}</div>
<div style="${flexItem}">单据金额:${totalCollectionAmount.value}</div>
</div>
<div style="${flexContainer}">
<div style="${flexItem}">收款账户:${collectionAccountName.value}</div>
<div style="${flexItem}">优惠金额:${discountAmount.value}</div>
<div style="${flexItem}">实际收款:${actualCollectionAmount.value}</div>
</div>
<div style="${flexContainer}">
<div style="${flexItem}">客户:${customerName.value}</div>
<div style="${flexItem}">财务人员:${financialPersonName.value}</div>
<div style="${flexItem}">备注:${remark.value}</div>
</div>
`;
printJS({
documentTitle: "EAIRP (收款单单据-详情)",
header: header,
properties: collectionReceiptTableColumns.map((item) => {
return {
field: item.dataIndex,
displayName: item.title,
};
}),
printable: tableData.value,
gridHeaderStyle: 'border: 1px solid #ddd; font-size: 12px; text-align: center; padding: 8px;',
gridStyle: 'border: 1px solid #ddd; font-size: 12px; text-align: center; padding: 8px;',
type: 'json',
});
}
return {
receiptNumber,
customerName,
Expand All @@ -128,6 +172,8 @@ export default defineComponent({
registerModal,
getTitle,
handleSubmit,
exportTable,
primaryPrint
};
},
});
Expand Down
Loading

0 comments on commit 094f16e

Please sign in to comment.