From 43e115a7de2c763c36d79e610a3abb1d833ea892 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 05 八月 2024 10:21:52 +0800
Subject: [PATCH] 修改发货报表
---
north-glass-erp/northglass-erp/src/components/BasicTable.vue | 78 +++++++++++++++++++++++++++++++++++---
1 files changed, 71 insertions(+), 7 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/components/BasicTable.vue b/north-glass-erp/northglass-erp/src/components/BasicTable.vue
index ad30121..e49d379 100644
--- a/north-glass-erp/northglass-erp/src/components/BasicTable.vue
+++ b/north-glass-erp/northglass-erp/src/components/BasicTable.vue
@@ -2,9 +2,15 @@
import {Search} from "@element-plus/icons-vue"
import {defineEmits, onMounted, reactive, ref, watch} from "vue"
import {changeFilterEvent} from "@/hook"
-import request from "@/utils/request";
+import request from "@/utils/request"
+import exportExcel from "@/hook/exportExcel"
+import {addListener,exportData} from "@/hook/mouseMove"
import deepClone from "@/utils/deepClone";
import {ElMessage} from "element-plus";
+import * as XLSX from "xlsx";
+import {useI18n} from "vue-i18n";
+
+const { t } = useI18n()
const xGrid = ref()
let filterData = ref({})
const gridOptions = reactive({
@@ -19,7 +25,8 @@
printConfig: {},
importConfig: {},
exportConfig: {},
- scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+ scrollY:{ enabled: true,gt:0 },//寮�鍚櫄鎷熸粴鍔�
+ scrollX:{ enabled: true,gt:5 },//寮�鍚櫄鎷熸粴鍔�
showOverflow:true,
columnConfig: {
resizable: true,
@@ -36,12 +43,24 @@
mode: 'row',
showStatus: true
},//琛ㄥご鍙傛暟
- columns:[
+ menuConfig: {
+ body: {
+ options: [
+ [
+ { code: 'exportExcelChecked', name: t('components.exportSelected'), prefixIcon: 'vxe-icon-download', visible: true }
+ ]
+ ]
+ }
+ },
+ columns:[
],//琛ㄥご鎸夐挳
toolbarConfig: {
buttons: [],
+ slots: {
+ tools: 'toolbar_buttons'
+ },
// import: false,
// export: true,
// print: true,
@@ -54,7 +73,7 @@
return[
columns.map((column, columnIndex) => {
if (columnIndex === 0) {
- return '鍚堣:'
+ return t('basicData.total')
}
if (props.childrenData.footList.includes(column.field)) {
return sumNum(data, column.field)
@@ -65,6 +84,26 @@
}
})
+const gridEvents = {
+ menuClick ({ menu, row, column }) {
+ const $grid = xGrid.value
+ if ($grid) {
+ switch (menu.code) {
+ case 'exportExcelChecked': {
+ let result = exportData()
+ if(result){
+ // 灏嗘暟鎹浆鎹负 worksheet 瀵硅薄
+ const worksheet = XLSX.utils.aoa_to_sheet(result);
+ const workbook = XLSX.utils.book_new();
+ XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
+ XLSX.writeFile(workbook, `${props.childrenData.exportName}.xlsx`);
+ }
+ break
+ }
+ }
+ }
+ }
+}
const props = defineProps({
@@ -97,6 +136,7 @@
onMounted(() => {
gridOptions.columns = props.childrenData.columns
getReportData()
+ addListener(xGrid.value,gridOptions)
})
@@ -143,6 +183,8 @@
}
+
+
</script>
<template>
@@ -150,8 +192,8 @@
<el-date-picker
v-model="basicProp.selectDate"
type="daterange"
- start-placeholder="寮�濮嬫椂闂�"
- end-placeholder="缁撴潫鏃堕棿"
+ :start-placeholder="$t('basicData.startDate')"
+ :end-placeholder="$t('basicData.endDate')"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
@@ -160,7 +202,7 @@
id="searchButton"
type="primary"
style="margin-top: -5px"
- :icon="Search">鏌ヨ</el-button>
+ :icon="Search">{{$t('basicData.search')}}</el-button>
<div class="order-detail">
<vxe-grid
@filter-change="filterChanged"
@@ -168,6 +210,7 @@
class="mytable-scrollbar"
ref="xGrid"
v-bind="gridOptions"
+ v-on="gridEvents"
>
<!-- 涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
<template #content="{ row }">
@@ -186,6 +229,15 @@
</div>
</div>
</template>
+
+ <template #toolbar_buttons>
+ <vxe-button style="margin-right: 0.5rem"
+ @click="exportExcel(props.childrenData.exportUrl,
+ props.childrenData.exportName,
+ basicProp.selectDate)">
+ {{$t('basicData.export')}}</vxe-button>
+ </template>
+
<template #pager>
<!--浣跨敤 pager 鎻掓Ы-->
<!-- 'PrevJump','NextJump', -->
@@ -227,4 +279,16 @@
height: calc(100% - 30px);
}
+
+.vxe-grid {
+ /* 绂佺敤娴忚鍣ㄩ粯璁ら�変腑 */
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+:deep(#product .el-dialog__body){
+ height: 90%;
+ width: 100%;
+}
</style>
\ No newline at end of file
--
Gitblit v1.8.0