From 8d817b3847f9a96850c1a28f7923940697df7235 Mon Sep 17 00:00:00 2001
From: 李林 <z1292839451@163.com>
Date: 星期一, 26 二月 2024 02:12:35 +0800
Subject: [PATCH] 框架搭建

---
 src/components/tool/value-table.vue |   90 +++++++++++++++++++++++++++++++-------------
 1 files changed, 63 insertions(+), 27 deletions(-)

diff --git a/src/components/tool/value-table.vue b/src/components/tool/value-table.vue
index fadc898..f9400e7 100644
--- a/src/components/tool/value-table.vue
+++ b/src/components/tool/value-table.vue
@@ -35,7 +35,7 @@
 	.value-table .el-upload {
 		width: 100%;
 	}
-	
+
 	.value-table .el-upload-dragger {
 		width: 100%;
 	}
@@ -46,8 +46,8 @@
 		<div class="table">
 			<el-table ref="eltable" :data="tableData" style="width: 100%;" height="100%" tooltip-effect="dark" border
 				@selection-change="selectChange" @select="select" v-loading="loading" @sort-change="sortChange"
-				@row-click="rowClick">
-				<el-table-column type="selection" width="50" v-if="data.showSelect">
+				@row-click="rowClick" :show-summary="data.countFleid!=undefined && data.countFleid.length > 0" :summary-method="getSummaries">
+				<el-table-column type="selection" width="65" v-if="data.showSelect">
 				</el-table-column>
 				<el-table-column align="center" type="index" label="搴忓彿" width="70" v-if="data.isIndex">
 				</el-table-column>
@@ -99,9 +99,10 @@
 			</span>
 		</el-dialog>
 		<el-dialog title="鏂板" :visible.sync="addDia" width="500px">
-			<div class="body" v-if="addDia" style="max-height: 600px;overflow-y: auto;padding: 5px 0;">
+			<div class="body" v-if="addDia" style="max-height: 550px;overflow-y: auto;padding: 5px 0;">
 				<el-row v-for="(a, ai) in upHead" :key="ai" style="line-height: 50px;">
-					<el-col :span="6" style="text-align: right;"><span class="required-span" v-if="showAddReq(a.label)">* </span>{{a.value}}锛�</el-col>
+					<el-col :span="6" style="text-align: right;"><span class="required-span" v-if="showAddReq(a.label)">*
+						</span>{{a.value}}锛�</el-col>
 					<el-col :span="16" :offset="1">
 						<el-input v-model="upData[a.label]" size="small" clearable :placeholder="`璇疯緭鍏�${a.value}`"
 							v-if="showType(a.label, data.selectField) == null"></el-input>
@@ -130,9 +131,9 @@
 		</el-dialog>
 		<el-dialog title="鏁版嵁瀵煎叆" :visible.sync="uploadDia" width="500px">
 			<div style="margin: 0 auto;">
-				<el-upload ref="upload" drag :action="javaApi + inputUrl" :headers="token"
-					:file-list="fileList" name="file" :auto-upload="false" accept=".csv" :limit="1" :on-change="beforeUpload"
-					:on-success="onSuccess" :on-error="onError">
+				<el-upload ref="upload" drag :action="javaApi + inputUrl" :headers="token" :file-list="fileList" name="file"
+					:auto-upload="false" accept=".csv" :limit="1" :on-change="beforeUpload" :on-success="onSuccess"
+					:on-error="onError" :data="{param: data.uploadStr}">
 					<i class="el-icon-upload"></i>
 					<div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
 				</el-upload>
@@ -228,7 +229,8 @@
 						font: '鍒犻櫎',
 						type: 'text'
 					}],
-					type: []
+					type: [],
+					uploadStr: ""
 				},
 				tableHead: [],
 				tableData: [],
@@ -343,23 +345,23 @@
 				var str = ob[val]
 				return str == undefined ? null : ob[val].select
 			},
-			showAddReq(label){
-				if(this.data.requiredAdd==undefined){
+			showAddReq(label) {
+				if (this.data.requiredAdd == undefined) {
 					return
 				}
 				for (var i = 0; i < this.data.requiredAdd.length; i++) {
-					if(label == this.data.requiredAdd[i]){
+					if (label == this.data.requiredAdd[i]) {
 						return true
 					}
 				}
 				return false
 			},
-			showUpReq(label){
-				if(this.data.requiredUp==undefined){
+			showUpReq(label) {
+				if (this.data.requiredUp == undefined) {
 					return
 				}
 				for (var i = 0; i < this.data.requiredUp.length; i++) {
-					if(label == this.data.requiredUp[i]){
+					if (label == this.data.requiredUp[i]) {
 						return true
 					}
 				}
@@ -429,11 +431,11 @@
 					return
 				}
 				for (var i = 0; i < this.data.requiredUp.length; i++) {
-					if(this.upData[this.data.requiredUp[i]]==null||this.upData[this.data.requiredUp[i]]==''){
-						var list = this.upHead.filter(a=>{
-							if(a.label == this.data.requiredUp[i]) return a
+					if (this.upData[this.data.requiredUp[i]] == null || this.upData[this.data.requiredUp[i]] == '') {
+						var list = this.upHead.filter(a => {
+							if (a.label == this.data.requiredUp[i]) return a
 						})
-						if(list[0].value == undefined) continue
+						if (list[0].value == undefined) continue
 						this.$message.error(list[0].value + '鏄繀濉」')
 						return
 					}
@@ -500,11 +502,11 @@
 					return
 				}
 				for (var i = 0; i < this.data.requiredAdd.length; i++) {
-					if(this.upData[this.data.requiredAdd[i]]==null||this.upData[this.data.requiredAdd[i]]==''){
-						var list = this.upHead.filter(a=>{
-							if(a.label == this.data.requiredAdd[i]) return a
+					if (this.upData[this.data.requiredAdd[i]] == null || this.upData[this.data.requiredAdd[i]] == '') {
+						var list = this.upHead.filter(a => {
+							if (a.label == this.data.requiredAdd[i]) return a
 						})
-						if(list[0].value == undefined) continue
+						if (list[0].value == undefined) continue
 						this.$message.error(list[0].value + '鏄繀濉」')
 						return
 					}
@@ -596,7 +598,7 @@
 				this.$refs.upload.clearFiles()
 				this.uploadDia = false
 				this.uploading = false
-				if(response.code==201){
+				if (response.code == 201) {
 					this.$message.error(response.message)
 					return
 				}
@@ -608,16 +610,50 @@
 				this.$refs.upload.clearFiles()
 				this.uploading = false
 			},
-			isDisabled(label){
-				if(this.data.disabledUp==undefined){
+			isDisabled(label) {
+				if (this.data.disabledUp == undefined) {
 					return
 				}
 				for (var i = 0; i < this.data.disabledUp.length; i++) {
-					if(label == this.data.disabledUp[i]){
+					if (label == this.data.disabledUp[i]) {
 						return true
 					}
 				}
 				return false
+			},
+			getSummaries(param) {
+				const {
+					columns,
+					data
+				} = param;
+				const sums = [];
+				columns.forEach((column, index) => {
+					if (index === 0) {
+						sums[index] = '鍚堣';
+						return;
+					}
+					const values = data.map(item => Number(item[column.property]));
+					if(this.data.countFleid==undefined){
+						sums[index] = ''
+						return
+					}
+					if (this.data.countFleid.filter(str=>{
+						return str === column.property
+					}).length > 0) {
+						sums[index] = values.reduce((prev, curr) => {
+							const value = Number(curr);
+							if (!isNaN(value)) {
+								return prev + curr;
+							} else {
+								return prev;
+							}
+						}, 0);
+						sums[index] += '';
+					} else {
+						sums[index] = '';
+					}
+				});
+				return sums;
 			}
 		}
 	}

--
Gitblit v1.9.3