From fda152b544ed0b3ceb8309df5b7eca2de888f3f1 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期二, 10 六月 2025 11:39:55 +0800
Subject: [PATCH] 开票登记编辑功能开发
---
src/views/salesManagement/invoiceLedger/index.vue | 85 +++++++++++++++++++++++++++---------------
1 files changed, 55 insertions(+), 30 deletions(-)
diff --git a/src/views/salesManagement/invoiceLedger/index.vue b/src/views/salesManagement/invoiceLedger/index.vue
index 8d217c8..d5f5d76 100644
--- a/src/views/salesManagement/invoiceLedger/index.vue
+++ b/src/views/salesManagement/invoiceLedger/index.vue
@@ -14,7 +14,7 @@
<span class="search_title" style="margin-left: 10px">寮�绁ㄦ棩鏈燂細</span>
<el-date-picker
style="width: 240px"
- v-model="form.invoiceDate"
+ v-model="searchForm.invoiceDate"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@@ -42,7 +42,7 @@
<el-table-column label="浜у搧澶х被" prop="productCategory" />
<el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
<el-table-column label="鍙戠エ鍙�" prop="invoiceNo" show-overflow-tooltip/>
- <el-table-column label="鍙戠エ閲戦(鍏�)" prop="invoiceTotal" show-overflow-tooltip/>
+ <el-table-column label="鍙戠エ閲戦(鍏�)" prop="invoiceTotal" show-overflow-tooltip :formatter="formattedNumber"/>
<el-table-column label="绋庣巼" prop="taxRate" show-overflow-tooltip/>
<el-table-column label="寮�绁ㄤ汉" prop="invoicePerson" show-overflow-tooltip/>
<el-table-column label="寮�绁ㄦ棩鏈�" prop="invoiceDate" show-overflow-tooltip/>
@@ -52,9 +52,10 @@
<el-button v-else link type="primary" @click="handleDownload(scope.row)">涓婁紶</el-button>
</template>
</el-table-column>
- <el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center">
+ <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center" >
<template #default="scope">
<el-button link type="primary" size="small" @click="openForm(scope.row);">缂栬緫</el-button>
+ <el-button link type="primary" size="small" @click="delInvoiceLedger(scope.row);">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
@@ -90,7 +91,7 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="寮�绁ㄤ汉锛�" prop="invoicePerson">
- <el-input v-model="form.invoicePerson" placeholder="璇疯緭鍏�" clearable/>
+ <el-input v-model="form.invoicePerson" placeholder="璇疯緭鍏�" clearable disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -103,6 +104,7 @@
type="date"
placeholder="璇烽�夋嫨"
clearable
+ disabled
/>
</el-form-item>
</el-col>
@@ -143,7 +145,7 @@
</div>
</template>
</el-dialog>
- <el-dialog title="涓婁紶寮圭獥" width="20%" v-model="uploadModal">
+ <el-dialog title="涓婁紶寮圭獥" width="50%" v-model="uploadModal">
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="闄勪欢鏉愭枡锛�" prop="remark">
@@ -156,6 +158,7 @@
:headers="upload.headers"
accept=".pdf"
:limit="1"
+ style="width: 100%"
:on-exceed="handleExceed"
:before-upload="handleBeforeUpload"
:on-error="handleUploadError"
@@ -192,8 +195,9 @@
invoiceLedgerSaveOrUpdate,
invoiceLedgerProductInfo,
commitFile,
- registrationProductPage
+ registrationProductPage, delInvoiceLedgerByRegProductId
} from "../../../api/salesManagement/invoiceLedger.js";
+import useUserStore from "@/store/modules/user.js";
const { proxy } = getCurrentInstance()
const tableData = ref([])
const productData = ref([])
@@ -201,7 +205,7 @@
const tableLoading = ref(false)
const page = reactive({
current: 1,
- size: 10,
+ size: 100,
})
const total = ref(0)
const fileList = ref([])
@@ -235,6 +239,7 @@
})
const { searchForm, form, rules } = toRefs(data)
const currentId = ref('')
+const userStore = useUserStore()
const upload = reactive({
// 涓婁紶鐨勫湴鍧�
url: import.meta.env.VITE_APP_BASE_API + "/invoiceLedger/uploadFile",
@@ -243,15 +248,18 @@
})
const matchFileType = ref(['pdf'])
const uploadModal = ref(false)
+const formattedNumber = (row, column, cellValue) => {
+ return parseFloat(cellValue).toFixed(2);
+};
// 鏌ヨ鍒楄〃
/** 鎼滅储鎸夐挳鎿嶄綔 */
const handleQuery = () => {
page.current = 1
getList()
}
-const paginationChange = ({ current, limit }) => {
- page.current = current;
- page.size = limit;
+const paginationChange = (obj) => {
+ page.current = obj.page;
+ page.size = obj.limit;
getList()
}
const getList = () => {
@@ -268,26 +276,10 @@
}
// 涓昏〃鍚堣鏂规硶
const summarizeMainTable = (param) => {
- const { columns, data } = param;
- const sums = [];
- columns.forEach((column, index) => {
- if (index === 0) {
- sums[index] = '鍚堣';
- return;
- }
- const prop = column.property;
- if (['invoiceAmount'].includes(prop)) {
- const values = data.map(item => Number(item[prop]));
- if (!values.every(value => isNaN(value))) {
- sums[index] = values.reduce((acc, val) => (!isNaN(val) ? acc + val : acc), 0);
- } else {
- sums[index] = '';
- }
- } else {
- sums[index] = '';
- }
- })
- return sums;
+ return proxy.summarizeTable(param, ['invoiceTotal'], {
+ ticketsNum: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
+ futureTickets: { noDecimal: true }, // 涓嶄繚鐣欏皬鏁�
+ });
};
// 鎵撳紑寮规
const openForm = (row) => {
@@ -295,9 +287,17 @@
productData.value = []
fileList.value = []
currentId.value = row.id;
+
invoiceLedgerProductInfo({id: row.id}).then(res => {
form.value = {...res.data}
fileList.value = res.data.fileList;
+ if(!form.value.invoicePerson){
+ form.value.invoicePerson = userStore.nickName
+ form.value.entryDate = getCurrentDate();
+ }
+ if(!form.value.invoiceDate){
+ form.value.invoiceDate = getCurrentDate();
+ }
})
dialogFormVisible.value = true
}
@@ -310,6 +310,7 @@
};
// 涓婁紶鍓嶆牎妫�
function handleBeforeUpload(file) {
+ console.log('file',file)
// 鏍℃鏂囦欢澶у皬
if (file.size > 1024 * 1024 * 10) {
proxy.$modal.msgError('涓婁紶鏂囦欢澶у皬涓嶈兘瓒呰繃10MB!')
@@ -404,7 +405,31 @@
currentId.value = ''
fileList.value = []
})
+}
+// 鍒犻櫎寮�绁ㄥ彴璐�
+const delInvoiceLedger = (row) => {
+ ElMessageBox.confirm(
+ '璇ュ彂绁ㄥ彴璐﹀皢琚垹闄�,鏄惁纭鍒犻櫎', {
+ confirmButtonText: '纭',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning',
+ }
+ ).then(() => {
+ delInvoiceLedgerByRegProductId(row.id).then(res => {
+ getList()
+ })
+ }).catch(() => {
+ proxy.$modal.msg("宸插彇娑�")
+ })
+}
+// 鑾峰彇褰撳墠鏃ユ湡骞舵牸寮忓寲涓� YYYY-MM-DD
+function getCurrentDate() {
+ const today = new Date();
+ const year = today.getFullYear();
+ const month = String(today.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮�
+ const day = String(today.getDate()).padStart(2, '0');
+ return `${year}-${month}-${day}`;
}
getList()
--
Gitblit v1.9.3