@@ -325,7 +326,7 @@ export default {
fetchAttachments() {
if (!this.receiptData.id) return;
this.loading = true;
- getReceiptAttachments(this.receiptData.id, { type: 'receipt' })
+ getReceiptAttachments(this.receiptData.id, { type: 'ticket' })
.then(response => {
const data = response.data || [];
data.sort((a, b) => new Date(b.createTime) - new Date(a.createTime));
diff --git a/oms_web/oms_vue/src/views/finance/receipt/index.vue b/oms_web/oms_vue/src/views/finance/receipt/index.vue
index eb98d7af..7c9b9275 100644
--- a/oms_web/oms_vue/src/views/finance/receipt/index.vue
+++ b/oms_web/oms_vue/src/views/finance/receipt/index.vue
@@ -140,9 +140,21 @@
-
-
-
+
+
+ {{ scope.row.totalPriceWithTax }}
+
+
+
+
+ {{ scope.row.totalPriceWithoutTax }}
+
+
+
+
+ {{ scope.row.taxAmount }}
+
+
@@ -273,6 +285,8 @@ export default {
approveStatus: null,
ticketStatus: null,
approveNode: null,
+ orderByColumn:'createTime',
+ isAsc: 'desc'
},
// 日期范围
dateRangeApproval: [],
diff --git a/oms_web/oms_vue/src/views/finance/receivable/index.vue b/oms_web/oms_vue/src/views/finance/receivable/index.vue
index 687c253a..5dc82912 100644
--- a/oms_web/oms_vue/src/views/finance/receivable/index.vue
+++ b/oms_web/oms_vue/src/views/finance/receivable/index.vue
@@ -137,10 +137,10 @@
size="mini"
type="text"
icon="el-icon-edit"
- v-show="scope.row.unreceivedAmount!==0"
+ v-show="scope.row.uninvoicedAmount!==0"
@click="handleGeneratedInvoice(scope.row)"
v-hasPermi="['finance:invoice:generate']"
- >生成收票单
+ >生成开票单
@@ -205,7 +205,9 @@ export default {
createTimeStart: null,
createTimeEnd: null,
estimatedReceiptTimeStart: null,
- estimatedReceiptTimeEnd: null
+ estimatedReceiptTimeEnd: null,
+ orderByColumn:'createTime',
+ isAsc: 'desc'
},
// 选中行数据
selectedReceivableRows: [],
diff --git a/oms_web/oms_vue/src/views/finance/receive/components/ApplyPaymentDialog.vue b/oms_web/oms_vue/src/views/finance/receive/components/ApplyPaymentDialog.vue
index d2bacbb3..fc2d3aa0 100644
--- a/oms_web/oms_vue/src/views/finance/receive/components/ApplyPaymentDialog.vue
+++ b/oms_web/oms_vue/src/views/finance/receive/components/ApplyPaymentDialog.vue
@@ -5,7 +5,7 @@
请选择客户的支付方式并确认客户打款的账户信息,提交至财务审批
-
+
-
+
@@ -117,6 +117,29 @@ export default {
},
data() {
return {
+ rules: {
+ receiptMethod: [
+ { required: true, message: "请选择支付方式", trigger: "change" }
+ ],
+ receiptAccountName: [
+ { required: true, message: "请输入账户名称", trigger: "blur" }
+ ],
+ receiptBankNumber: [
+ { required: true, message: "请输入银行账号", trigger: "blur" }
+ ],
+ receiptBankOpenAddress: [
+ { required: true, message: "请输入银行开户行", trigger: "blur" }
+ ],
+ bankNumber: [
+ { required: true, message: "请输入银行行号", trigger: "blur" }
+ ],
+ file: [
+ { required: true, message: "请上传客户付款图", trigger: "change" }
+ ],
+ confirmAmount: [
+ { required: true, message: "请输入确认收款金额", trigger: "blur" }
+ ]
+ },
form: {
receiptMethod: null,
receiptAccountName: null,
@@ -196,11 +219,13 @@ export default {
this.form.fileName = file.name;
this.isPreviewPdf = file.raw.type === 'application/pdf';
this.previewUrl = URL.createObjectURL(file.raw);
+ this.$refs.form.validateField('file');
},
handleFileRemove() {
this.form.file = null;
this.form.fileName = '';
this.previewUrl = '';
+ this.$refs.form.validateField('file');
},
handleSubmit() {
if (this.$calc.sub(this.form.totalPriceWithTax,this.form.confirmAmount)!=0){
diff --git a/oms_web/oms_vue/src/views/finance/receive/components/ApplyRefundDialog.vue b/oms_web/oms_vue/src/views/finance/receive/components/ApplyRefundDialog.vue
index 612dcf74..a997d0ca 100644
--- a/oms_web/oms_vue/src/views/finance/receive/components/ApplyRefundDialog.vue
+++ b/oms_web/oms_vue/src/views/finance/receive/components/ApplyRefundDialog.vue
@@ -2,7 +2,7 @@
请选择客户的退款方式并确认客户收款的账户信息,提交至财务审批
-
+
{
if (valid) {
- // Send as JSON since no file upload
- submitRefund(this.form).then(response => {
- this.$modal.msgSuccess("申请退款提交成功");
- this.$emit("submit");
- this.handleClose();
- }).catch(error => {
- console.error("申请退款提交失败", error);
+ const checkFields = ['receiptMethod', 'receiptAccountName', 'receiptBankNumber', 'receiptBankOpenAddress', 'bankNumber'];
+ let isDiff = false;
+ let diffMsg = [];
+
+ checkFields.forEach(field => {
+ // Use loose equality to handle null vs undefined or number vs string issues if necessary,
+ // but stricter is better if types are consistent.
+ // Given Vue forms often use strings, and receiptData might be from API,
+ // we'll try to match somewhat loosely or ensure strings.
+ const formVal = this.form[field];
+ const originVal = this.receiptData[field];
+
+ // Simple comparison
+ if (formVal != originVal) {
+ isDiff = true;
+ // Get label for friendly message
+ let label = "";
+ switch(field) {
+ case 'receiptMethod': label = "退款方式"; break;
+ case 'receiptAccountName': label = "账户名称"; break;
+ case 'receiptBankNumber': label = "银行账号"; break;
+ case 'receiptBankOpenAddress': label = "银行开户行"; break;
+ case 'bankNumber': label = "银行行号"; break;
+ }
+ diffMsg.push(label);
+ }
});
+
+ const doSubmit = () => {
+ submitRefund(this.form).then(response => {
+ this.$modal.msgSuccess("申请退款提交成功");
+ this.$emit("submit");
+ this.handleClose();
+ }).catch(error => {
+ console.error("申请退款提交失败", error);
+ });
+ };
+
+ if (isDiff) {
+ this.$modal.confirm(`检测到以下信息与原收款信息不一致:${diffMsg.join('、')}。确认要提交吗?`).then(() => {
+ doSubmit();
+ }).catch(() => {});
+ } else {
+ doSubmit();
+ }
}
});
}
diff --git a/oms_web/oms_vue/src/views/finance/receive/components/DetailDrawer.vue b/oms_web/oms_vue/src/views/finance/receive/components/DetailDrawer.vue
index 57d93302..2ab9e335 100644
--- a/oms_web/oms_vue/src/views/finance/receive/components/DetailDrawer.vue
+++ b/oms_web/oms_vue/src/views/finance/receive/components/DetailDrawer.vue
@@ -1,6 +1,6 @@
- 含税总价(元): {{ detail.totalPriceWithTax }}
+ 含税总价(元): {{ detail.totalPriceWithTax }}
- 未税总价(元): {{ detail.totalPriceWithoutTax }}
+ 未税总价(元): {{ detail.totalPriceWithoutTax }}
- 税额(元): {{ detail.taxAmount }}
+ 税额(元): {{ detail.taxAmount }}
@@ -107,8 +107,20 @@
-
-
+
+
+
+ {{ Math.abs(scope.row.receiptAmount) }}
+
+
+
+
+
+
+ {{ Math.abs(scope.row.receiptRate) }}
+
+
+
@@ -177,6 +189,9 @@ export default {
align-items: center;
}
+.red-text{
+ color: red;
+}
.section {
margin-bottom: 20px;
}
diff --git a/oms_web/oms_vue/src/views/finance/receive/components/ReceiveDialog.vue b/oms_web/oms_vue/src/views/finance/receive/components/ReceiveDialog.vue
index 083c7401..65c04088 100644
--- a/oms_web/oms_vue/src/views/finance/receive/components/ReceiveDialog.vue
+++ b/oms_web/oms_vue/src/views/finance/receive/components/ReceiveDialog.vue
@@ -5,7 +5,7 @@