From d83860d6839daaf7dccda5cbd68e865ba7e679ab Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 08 七月 2025 17:48:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
src/views/salesManagement/invoiceRegistration/index.vue | 152 ++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 132 insertions(+), 20 deletions(-)
diff --git a/src/views/salesManagement/invoiceRegistration/index.vue b/src/views/salesManagement/invoiceRegistration/index.vue
index 8f1005c..f229f81 100644
--- a/src/views/salesManagement/invoiceRegistration/index.vue
+++ b/src/views/salesManagement/invoiceRegistration/index.vue
@@ -12,12 +12,6 @@
@change="handleQuery"
/>
</el-form-item>
- <el-form-item label="鏈紑绁ㄩ噾棰濇槸鍚︿负0">
- <el-select v-model="searchForm.status" style="width: 90px" clearable>
- <el-option label="鍚�" :value="0" />
- <el-option label="鏄�" :value="1" />
- </el-select>
- </el-form-item>
<el-form-item label="瀹㈡埛鍚堝悓鍙�">
<el-input
v-model="searchForm.customerContractNo"
@@ -33,15 +27,25 @@
/>
</el-form-item>
<el-form-item>
+ <el-checkbox
+ v-model="searchForm.status"
+ label="涓嶆樉绀烘湭寮�绁ㄩ噾棰濅负0"
+ @change="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item>
<el-button type="primary" @click="handleQuery"> 鎼滅储 </el-button>
<el-button @click="resetForm"> 閲嶇疆 </el-button>
</el-form-item>
</el-form>
</div>
<div class="table_list">
- <el-button type="primary" @click="openForm" style="margin-bottom: 8px">
- 鏂板鐧昏
- </el-button>
+ <div class="flex justify-between">
+ <div></div>
+ <el-button type="primary" @click="openForm" style="margin-bottom: 8px">
+ 鏂板鐧昏
+ </el-button>
+ </div>
<el-table
:data="tableData"
:border="true"
@@ -70,10 +74,14 @@
width="60"
/>
<el-table-column label="浜у搧澶х被" prop="productCategory" />
- <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
+ <el-table-column
+ label="瑙勬牸鍨嬪彿"
+ prop="specificationModel"
+ width="150"
+ />
<el-table-column label="鍗曚綅" prop="unit" width="70" />
<el-table-column label="鏁伴噺" prop="quantity" width="70" />
- <el-table-column label="绋庣巼" prop="taxRate" width="70" />
+ <el-table-column label="绋庣巼(%)" prop="taxRate" width="70" />
<el-table-column
label="鍚◣鍗曚环(鍏�)"
prop="taxInclusiveUnitPrice"
@@ -146,7 +154,11 @@
show-overflow-tooltip
:formatter="formattedNumber"
/>
- <el-table-column label="鏈紑绁ㄩ噾棰�(鍏�)" show-overflow-tooltip>
+ <el-table-column
+ label="鏈紑绁ㄩ噾棰�(鍏�)"
+ prop="noInvoiceAmountTotal"
+ show-overflow-tooltip
+ >
<template #default="{ row, column }">
<el-text type="danger">
{{ formattedNumber(row, column, row.noInvoiceAmountTotal) }}
@@ -212,6 +224,48 @@
</el-form-item>
</el-col>
</el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
+ <el-form-item label="褰曞叆浜�" prop="createUer">
+ <el-input v-model="form.createUer" placeholder="璇疯緭鍏ュ綍鍏ヤ汉" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="寮�绁ㄦ棩鏈�" prop="issueDate">
+ <el-date-picker
+ style="width: 100%"
+ v-model="form.issueDate"
+ type="date"
+ placeholder="璇烽�夋嫨"
+ clearable
+ format="YYYY-MM-DD"
+ value-format="YYYY-MM-DD"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
+ <el-form-item label="褰曞叆鏃ユ湡锛�" prop="createTime">
+ <el-date-picker
+ style="width: 100%"
+ v-model="form.createTime"
+ type="date"
+ placeholder="璇烽�夋嫨"
+ clearable
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍙戠エ鍙风爜锛�" prop="invoiceNo">
+ <el-input
+ v-model="form.invoiceNo"
+ placeholder="璇疯緭鍏�"
+ clearable
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
<el-row>
<el-form-item label="浜у搧淇℃伅锛�" prop="entryDate"> </el-form-item>
</el-row>
@@ -228,10 +282,14 @@
width="60"
/>
<el-table-column label="浜у搧澶х被" prop="productCategory" />
- <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
+ <el-table-column
+ label="瑙勬牸鍨嬪彿"
+ prop="specificationModel"
+ width="150"
+ />
<el-table-column label="鍗曚綅" prop="unit" />
<el-table-column label="鏁伴噺" prop="quantity" width="70" />
- <el-table-column label="绋庣巼" prop="taxRate" width="70" />
+ <el-table-column label="绋庣巼(%)" prop="taxRate" width="70" />
<el-table-column
label="鍚◣鍗曚环(鍏�)"
prop="taxInclusiveUnitPrice"
@@ -274,7 +332,7 @@
></el-input>
</template>
</el-table-column>
- <el-table-column label="鏈紑绁ㄦ暟" prop="noInvoiceNum">
+ <el-table-column label="鏈紑绁ㄦ暟" prop="noInvoiceNum" width="100">
<template #default="scope">
<el-input
type="number"
@@ -295,10 +353,34 @@
min="0"
disabled
v-model="scope.row.noInvoiceAmount"
+ :formatter="formattedInputNumber"
:precision="2"
:step="0.01"
></el-input>
</template>
+ </el-table-column>
+ <el-table-column label="鐧昏浜�" prop="register" width="100">
+ <!-- <template #default="{ row }">
+ <el-input
+ v-model="row.register"
+ placeholder="璇疯緭鍏ョ櫥璁颁汉"
+ disabled
+ />
+ </template> -->
+ </el-table-column>
+ <el-table-column label="鐧昏鏃ユ湡" prop="registerDate" width="150">
+ <!-- <template #default="{ row }">
+ <el-date-picker
+ style="width: 100%"
+ v-model="row.registerDate"
+ value-format="YYYY-MM-DD"
+ format="YYYY-MM-DD"
+ type="date"
+ placeholder="璇烽�夋嫨"
+ clearable
+ disabled
+ />
+ </template> -->
</el-table-column>
</el-table>
</el-form>
@@ -314,7 +396,7 @@
<script setup>
import pagination from "@/components/PIMTable/Pagination.vue";
-import { ref } from "vue";
+import { onMounted, ref } from "vue";
import { Search } from "@element-plus/icons-vue";
import { ElMessageBox } from "element-plus";
// import {userListNoPage} from "@/api/system/user.js";
@@ -325,8 +407,11 @@
} from "@/api/salesManagement/salesLedger.js";
import { invoiceRegistrationSave } from "@/api/salesManagement/invoiceRegistration.js";
import useFormData from "@/hooks/useFormData";
+import useUserStore from "@/store/modules/user";
+import dayjs from "dayjs";
const { proxy } = getCurrentInstance();
+const userStore = useUserStore();
const tableData = ref([]);
const productData = ref([]);
const selectedRows = ref([]);
@@ -342,9 +427,12 @@
const data = reactive({
searchForm: {
customerName: "",
- status: 0,
+ status: false,
customerContractNo: undefined, // 瀹㈡埛鍚堝悓鍙�
projectName: undefined, // 椤圭洰鍚嶇О
+ createUer: undefined, // 鐧昏浜�
+ issueDate: undefined, // 寮�绁ㄦ棩鏈�
+ createTime: undefined, // 褰曞叆鏃ユ湡锛�
},
form: {
salesLedgerId: "",
@@ -352,9 +440,15 @@
salesman: "",
projectName: "",
productData: [],
+ invoiceNo: "",
+ createUer: userStore.nickName,
+ issueDate: dayjs().format("YYYY-MM-DD"),
},
rules: {
salesLedgerId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+ createUer: [{ required: true, message: "璇烽�夋嫨", trigger: "blur" }],
+ issueDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+ createTime: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
},
});
const { form, rules } = toRefs(data);
@@ -370,6 +464,11 @@
return cellValue;
}
};
+
+const formattedInputNumber = (value) => {
+ return value ? parseFloat(value).toFixed(2) : 0;
+};
+
// 鏌ヨ鍒楄〃
/** 鎼滅储鎸夐挳鎿嶄綔 */
const handleQuery = () => {
@@ -406,7 +505,7 @@
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;
+ tableData.value[index].children = res.data;
}
expandedRowKeys.value.push(row.id);
});
@@ -421,8 +520,8 @@
const summarizeMainTable = (param) => {
return proxy.summarizeTable(param, [
"contractAmount",
- "noInvoiceAmountTotal",
"invoiceTotal",
+ "noInvoiceAmountTotal",
]);
};
// 瀛愯〃鍚堣鏂规硶
@@ -449,6 +548,8 @@
productData.value = [];
getSalesLedgerWithProducts({ id: selectedRows.value[0].id }).then((res) => {
form.value = { ...res };
+ form.value.createTime = dayjs().format("YYYY-MM-DD");
+ form.value.createUer = userStore.nickName;
productData.value = form.value.productData.map((item) => {
return item;
});
@@ -537,11 +638,22 @@
).toFixed(2);
};
-getList();
+onMounted(() => {
+ getList();
+});
</script>
<style scoped lang="scss">
.table_list {
margin-top: unset;
}
+.flex {
+ display: flex;
+}
+.justify-between {
+ justify-content: space-between;
+}
+::v-deep(.el-checkbox__label) {
+ font-weight: bold;
+}
</style>
--
Gitblit v1.9.3