From 2adf0b60f951746518feb88a11501b10455d83d6 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期一, 23 三月 2026 17:44:24 +0800
Subject: [PATCH] fix: 更新系统
---
src/views/data/Excel.vue | 86 +++++++++++++++++++++++++++++++++++++++---
1 files changed, 79 insertions(+), 7 deletions(-)
diff --git a/src/views/data/Excel.vue b/src/views/data/Excel.vue
index a18c53b..ad2203c 100644
--- a/src/views/data/Excel.vue
+++ b/src/views/data/Excel.vue
@@ -21,8 +21,21 @@
</template>
<el-form :inline="true" :model="searchForm" class="search-form">
- <el-form-item label="鍗曚綅鍚嶇О">
- <el-input v-model="searchForm.unitName" placeholder="璇疯緭鍏ュ崟浣嶅悕绉�" clearable />
+ <el-form-item label="鍗曚綅">
+ <el-select
+ v-model="searchForm.unitCode"
+ placeholder="璇烽�夋嫨鍗曚綅"
+ clearable
+ filterable
+ style="width: 250px"
+ >
+ <el-option
+ v-for="dept in flatDepartmentList"
+ :key="dept.deptCode"
+ :label="`${dept.deptCode} - ${dept.deptName}`"
+ :value="dept.deptCode"
+ />
+ </el-select>
</el-form-item>
<el-form-item label="浜ゆ槗娴佹按鍙�">
<el-input v-model="searchForm.transactionNo" placeholder="璇疯緭鍏ヤ氦鏄撴祦姘村彿" clearable />
@@ -36,6 +49,7 @@
<el-table :data="tableData" v-loading="loading" border stripe>
<el-table-column prop="sortNo" label="缂栧彿" width="80" />
<el-table-column prop="seqNo" label="搴忓彿" width="80" />
+ <el-table-column prop="pkVoucher" label="鍞竴缂栧彿" width="100" />
<el-table-column prop="secondaryUnit" label="浜岀骇鍗曚綅" width="120" />
<el-table-column prop="unitCode" label="鍗曚綅缂栫爜" width="100" />
<el-table-column prop="unitName" label="鍗曚綅鍚嶇О" width="200" />
@@ -146,7 +160,7 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="BP鍚堝悓鍙�" prop="bpContractNo">
- <el-input v-model="form.bpContractNo" placeholder="璇疯緭鍏P鍚堝悓鍙�" />
+ <el-input v-model="form.bpContractNo" placeholder="璇疯緭鍏IP鍚堝悓鍙�" />
</el-form-item>
</el-col>
<el-col :span="12">
@@ -158,19 +172,19 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="BP鍙戠エ鍙�" prop="bpInvoiceNo">
- <el-input v-model="form.bpInvoiceNo" placeholder="璇疯緭鍏P鍙戠エ鍙�" />
+ <el-input v-model="form.bpInvoiceNo" placeholder="璇疯緭鍏IP鍙戠エ鍙�" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="鍙ゆ帶绯荤粺瀵瑰簲鍙戠エ鍙�" prop="gkInvoiceNo">
- <el-input v-model="form.gkInvoiceNo" placeholder="璇疯緭鍏ュ彜鎺х郴缁熷搴斿彂绁ㄥ彿" />
+ <el-input v-model="form.gkInvoiceNo" placeholder="璇疯緭鍏ョ櫨鏃虹郴缁熷搴斿彂绁ㄥ彿" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="涓氬姟鍏宠仈鍏崇郴" prop="businessRelation">
- <el-input v-model="form.businessRelation" placeholder="璇疯緭鍏ヤ笟鍔″叧鑱斿叧绯�" />
+ <el-input v-model="form.businessRelation" placeholder="璇疯緭鍏ュ洓鑰呮湭鍏宠仈鍘熷洜" />
</el-form-item>
</el-col>
<!-- <el-col :span="12">-->
@@ -195,8 +209,9 @@
</template>
<script setup>
-import { ref, reactive, onMounted } from 'vue'
+import {ref, reactive, onMounted, computed} from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
+import { getDepartmentTree } from '@/api/department'
import { Plus, Edit, Delete, Search, Refresh, Upload, Download } from '@element-plus/icons-vue'
import { getExcelPage, createExcel, updateExcel, deleteExcel, importExcel, downloadTemplate } from '@/api/excel'
@@ -206,9 +221,11 @@
const dialogTitle = ref('')
const formRef = ref(null)
const uploadRef = ref(null)
+const departmentList = ref([])
const searchForm = reactive({
unitName: '',
+ unitCode: '',
transactionNo: '',
accountingPeriod: ''
})
@@ -243,6 +260,60 @@
const rules = {
unitName: [{ required: true, message: '璇疯緭鍏ュ崟浣嶅悕绉�', trigger: 'blur' }],
transactionNo: [{ required: true, message: '璇疯緭鍏ヤ氦鏄撴祦姘村彿', trigger: 'blur' }]
+}
+
+const flatDepartmentList = computed(() => {
+ const flatten = (list) => {
+ let result = []
+ list.forEach(item => {
+ result.push(item)
+ if (item.children && item.children.length > 0) {
+ result = result.concat(flatten(item.children))
+ }
+ })
+ return result
+ }
+ return flatten(departmentList.value)
+})
+
+const fetchDepartmentList = async () => {
+ try {
+ const res = await getDepartmentTree()
+ departmentList.value = buildTree(res.data)
+ } catch (error) {
+ console.error('鑾峰彇閮ㄩ棬鍒楄〃澶辫触:', error)
+ }
+}
+
+const buildTree = (list) => {
+ const map = {}
+ const roots = []
+
+ list.forEach(item => {
+ map[item.deptCode] = { ...item, children: [] }
+ })
+
+ list.forEach(item => {
+ const parent = map[item.parentCode]
+ if (parent) {
+ parent.children.push(map[item.deptCode])
+ } else {
+ roots.push(map[item.deptCode])
+ }
+ })
+
+ const cleanEmptyChildren = (nodes) => {
+ nodes.forEach(node => {
+ if (node.children && node.children.length === 0) {
+ delete node.children
+ } else {
+ cleanEmptyChildren(node.children)
+ }
+ })
+ }
+
+ cleanEmptyChildren(roots)
+ return roots
}
const formatAmount = (amount) => {
@@ -409,6 +480,7 @@
}
onMounted(() => {
+ fetchDepartmentList()
fetchData()
})
</script>
--
Gitblit v1.9.1