From ee6f8c315926a871f11a96a69702efcef4d0b49f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 26 五月 2025 13:49:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
src/views/salesManagement/invoiceRegistration/index.vue | 153 +++++++++++++++------------------------------------
1 files changed, 45 insertions(+), 108 deletions(-)
diff --git a/src/views/salesManagement/invoiceRegistration/index.vue b/src/views/salesManagement/invoiceRegistration/index.vue
index fbae169..96cb793 100644
--- a/src/views/salesManagement/invoiceRegistration/index.vue
+++ b/src/views/salesManagement/invoiceRegistration/index.vue
@@ -14,9 +14,8 @@
<el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
</div>
<div>
- <el-button type="primary" @click="openForm('add')">鏂板鐧昏</el-button>
+ <el-button type="primary" @click="openForm">鏂板鐧昏</el-button>
<el-button @click="handleOut">瀵煎嚭</el-button>
- <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
</div>
</div>
<div class="table_list">
@@ -62,14 +61,12 @@
<pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper" :page="page.current"
:limit="page.size" @pagination="paginationChange" />
</div>
- <el-dialog v-model="dialogFormVisible" :title="operationType === 'add' ? '鏂板寮�绁ㄧ櫥璁伴〉闈�' : '缂栬緫寮�绁ㄧ櫥璁伴〉闈�'" width="70%" @close="closeDia">
+ <el-dialog v-model="dialogFormVisible" title="鏂板寮�绁ㄧ櫥璁伴〉闈�" width="85%" @close="closeDia">
<el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
<el-row :gutter="30">
<el-col :span="12">
- <el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesLedgerId">
- <el-select v-model="form.salesLedgerId" placeholder="璇烽�夋嫨" clearable @change="ledgerChange" :disabled="operationType === 'edit'">
- <el-option v-for="item in ledgerList" :key="item.id" :label="item.salesContractNo" :value="item.id"/>
- </el-select>
+ <el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesContractNo">
+ <el-input v-model="form.salesContractNo" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -104,14 +101,14 @@
<el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" />
<el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" />
<el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" />
- <el-table-column label="鏈寮�绁ㄦ暟" prop="invoiceNum">
+ <el-table-column label="鏈寮�绁ㄦ暟" prop="currentInvoiceNum">
<template #default="scope">
- <el-input type="number" :step="1" min="0" v-model="scope.row.invoiceNum" @blur="invoiceNumBlur(scope.row)"></el-input>
+ <el-input type="number" :step="1" min="0" v-model="scope.row.currentInvoiceNum" @blur="invoiceNumBlur(scope.row)"></el-input>
</template>
</el-table-column>
- <el-table-column label="鏈寮�绁ㄩ噾棰�(鍏�)" prop="invoiceAmount" >
+ <el-table-column label="鏈寮�绁ㄩ噾棰�(鍏�)" prop="currentInvoiceAmount" >
<template #default="scope">
- <el-input type="number" :step="0.01" min="0" v-model="scope.row.invoiceAmount" @blur="invoiceAmountBlur(scope.row)"></el-input>
+ <el-input type="number" :step="0.01" min="0" v-model="scope.row.currentInvoiceAmount" disabled></el-input>
</template>
</el-table-column>
<el-table-column label="鏈紑绁ㄦ暟" prop="noInvoiceNum" >
@@ -143,15 +140,12 @@
import {ElMessageBox } from "element-plus";
// import {userListNoPage} from "@/api/system/user.js";
import {
- ledgerListNoPage,
getSalesLedgerWithProducts,
+ ledgerList,
+ productList,
} from "@/api/salesManagement/salesLedger.js";
import {
- invoiceRegistrationList,
- invoiceRegistrationSaveOrUpdate,
- invoiceRegistrationDel,
- productList,
- invoiceRegistrationDetail,
+ invoiceRegistrationSave,
} from "@/api/salesManagement/invoiceRegistration.js";
const { proxy } = getCurrentInstance()
const tableData = ref([])
@@ -163,7 +157,6 @@
size: 10,
})
const total = ref(0)
-const ledgerList = ref([])
// 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁
const operationType = ref('')
const dialogFormVisible = ref(false)
@@ -197,18 +190,16 @@
}
const getList = () => {
tableLoading.value = true
- invoiceRegistrationList({...searchForm.value, ...page}).then(res => {
+ ledgerList({...searchForm.value, ...page}).then(res => {
tableLoading.value = false
- tableData.value = res.data.records;
- tableData.value.map(item => {
- item.children = []
- })
- total.value = res.data.total
+ tableData.value = res.rows;
+ total.value = res.total
expandedRowKeys.value = []
})
}
// 琛ㄦ牸閫夋嫨鏁版嵁
const handleSelectionChange = (selection) => {
+ console.log('selection', selection)
selectedRows.value = selection
}
const expandedRowKeys = ref([])
@@ -217,10 +208,11 @@
if (expandedRows.length > 0) {
expandedRowKeys.value = []
try {
- productList({invoiceRegistrationId: row.id}).then(res => {
+ productList({salesLedgerId: row.id,
+ type: 1 }).then(res => {
const index = tableData.value.findIndex(item => item.id === row.id);
if (index > -1) {
- tableData.value[index].children = res.data;
+ tableData.value[index].children = res;
}
expandedRowKeys.value.push(row.id)
})
@@ -278,30 +270,30 @@
return sums;
}
// 鎵撳紑寮规
-const openForm = (type, row) => {
- operationType.value = type
+const openForm = () => {
+ // 鍒ゆ柇鏄惁澶氶��
+ if(selectedRows.value.length != 1) {
+ proxy.$modal.msgError("璇烽�夋嫨涓�鏉″悎鍚�")
+ return;
+ }
form.value = {}
productData.value = []
- // 鏌ヨ閿�鍞悎鍚�
- ledgerListNoPage({}).then(res => {
- ledgerList.value = res.data;
- })
- if (type === 'edit') {
- invoiceRegistrationDetail({id: row.id}).then(res => {
- form.value = {...res.data}
- form.value.productDtoList = res.data.productDtoList
- productData.value = form.value.productDtoList
+ getSalesLedgerWithProducts({id: selectedRows.value[0].id}).then(res => {
+ form.value = {...res}
+ productData.value = form.value.productData.map(item => {
+ return item
})
- }
- dialogFormVisible.value = true
+ dialogFormVisible.value = true
+ console.log('productData.value ',productData.value )
+ })
+
}
// 鎻愪氦琛ㄥ崟
const submitForm = () => {
proxy.$refs["formRef"].validate(valid => {
if (valid) {
- form.value.productDtoList = proxy.HaveJson(productData.value)
- delete form.value.productData
- invoiceRegistrationSaveOrUpdate(form.value).then(res => {
+ form.value.productData = proxy.HaveJson(productData.value)
+ invoiceRegistrationSave(form.value).then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛")
closeDia()
getList()
@@ -329,79 +321,24 @@
proxy.$modal.msg("宸插彇娑�")
})
}
-// 鍒犻櫎
-const handleDelete = () => {
- let ids = []
- if (selectedRows.value.length > 0) {
- ids = selectedRows.value.map(item => item.id);
- } else {
- proxy.$modal.msgWarning('璇烽�夋嫨鏁版嵁')
- return
- }
- ElMessageBox.confirm(
- '閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�',
- '瀵煎嚭', {
- confirmButtonText: '纭',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
- }
- ).then(() => {
- invoiceRegistrationDel(ids).then(res => {
- proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛")
- getList()
- })
- }).catch(() => {
- proxy.$modal.msg("宸插彇娑�")
- })
-}
-// 閿�鍞彴璐︾瓫閫�
-const ledgerChange = (val) => {
- if(val){
- getSalesLedgerWithProducts({id: val}).then(res => {
- form.value = {
- salesLedgerId: res.id,
- customerName: res.customerName,
- salesman: res.salesman,
- projectName: res.projectName,
- productData: res.productData,
- salesContractNo: res.salesContractNo,
- customerId: res.customerId,
- }
- productData.value = form.value.productData.map(item => {
- item.noInvoiceNum = item.futureTickets
- item.noInvoiceAmount = item.futureTicketsAmount
- return item
- })
- console.log('productData.value ',productData.value )
- })
- }else {
- proxy.resetForm("formRef")
- productData.value = []
- }
-}
//鏈寮�绁ㄥけ鐒︽搷浣�
const invoiceNumBlur = (row) => {
- if(!row.invoiceNum){
- row.invoiceNum = 0
+ if(!row.currentInvoiceNum){
+ row.currentInvoiceNum = 0
}
- if(row.invoiceNum > row.noInvoiceNum){
+ if(row.currentInvoiceNum > row.noInvoiceNum){
proxy.$modal.msgWarning('鏈寮�绁ㄦ暟涓嶅緱澶т簬鏈紑绁ㄦ暟')
- row.invoiceNum = 0
+ row.currentInvoiceNum = 0
}
- row.noInvoiceNum = row.futureTickets - row.invoiceNum
+ // 璁$畻鏈寮�绁ㄩ噾棰�
+ row.currentInvoiceAmount = row.currentInvoiceNum * row.taxInclusiveUnitPrice
+ // 璁$畻鏈紑绁ㄦ暟
+ row.noInvoiceNum = row.noInvoiceNum - row.currentInvoiceNum
+ // 璁$畻鏈紑绁ㄩ噾棰�
+ row.noInvoiceAmount = row.noInvoiceNum * row.taxInclusiveUnitPrice
}
-// 鏈寮�绁ㄩ噾棰濆け鐒︽搷浣�
-const invoiceAmountBlur = (row) => {
- if(!row.invoiceAmount){
- row.invoiceAmount = 0
- }
- if(row.invoiceAmount > row.noInvoiceAmount){
- proxy.$modal.msgWarning('鏈寮�绁ㄩ噾棰濅笉寰楀ぇ浜庢湭寮�绁ㄩ噾棰�')
- row.invoiceAmount = 0
- }
- row.noInvoiceAmount = row.futureTicketsAmount - row.invoiceAmount
-}
+
getList()
</script>
--
Gitblit v1.9.3