From 2b78cf0cd68e1809bc4cad7d730bef6ab9c4c118 Mon Sep 17 00:00:00 2001 From: zzq <a13193816592@163.com> Date: 星期四, 28 九月 2023 15:30:45 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/web/WMS --- src/components/makepager/TableCommonView.vue | 83 +++++++++++++++++++++++++++++++++++------ 1 files changed, 70 insertions(+), 13 deletions(-) diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue index 1627f0d..d3136aa 100644 --- a/src/components/makepager/TableCommonView.vue +++ b/src/components/makepager/TableCommonView.vue @@ -1,6 +1,6 @@ <!-- eslint-disable vue/no-use-v-if-with-v-for --> <template> - <div class="table-view" v-loading="loading"> + <div :class="{ 'table-view': true, table_height: !showSummary }" v-loading="loading"> <el-table ref="table" border @@ -19,6 +19,8 @@ :default-expand-all="tableList.isDefaultExpandAll" :tree-props="{ children: 'child', hasChildren: 'hasChildren' }" :span-method="objectSpanMethod" + :summary-method="getSummaries" + :show-summary="showSummary" > <el-table-column v-if="tableList.selectBox" type="selection" width="40"> </el-table-column> <el-table-column v-if="tableList.selectIndex" type="index" label="搴忓彿" width="50"> </el-table-column> @@ -35,21 +37,19 @@ > <template slot-scope="scope"> <span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span> - <!-- 甯︾偣鐨勫姛鑳� --> + <!-- 鐘舵�佹樉绀� --> <div v-else-if="item.status"> - <!-- <span v-if="scope.row.status == '瀹屾垚'" class="Badge greenSlot"></span> - <span v-else-if="scope.row.status == '鑽夌'" class="Badge redSlot"></span> - <span v-else-if="scope.row.status == '灏辩华'" class="Badge redSlot"></span> - <span v-else-if="scope.row.status == '宸插彇娑�'" class="Badge yellowSlot"></span> --> <span class="Badge" :class="{ - greenSlot: scope.row.status == '瀹屾垚', - redSlot: scope.row.status == '宸插彇娑�', - blueSlot: scope.row.status == '灏辩华', - graySlot: scope.row.status == '鑽夌' + greenSlot: scope.row.status == '4'||scope.row.status == '瀹屾垚', + redSlot: scope.row.status == '5', + blueSlot: scope.row.status == '3'||scope.row.status == '灏辩华', + graySlot: scope.row.status == '1', }" - >{{ scope.row[item.prop] }}</span + >{{ + item.isCallMethod ? item.getCallMethod(scope.row[item.prop], scope.row) : scope.row[item.prop] + }}</span > </div> <!-- 璋冪敤鏂规硶鏄剧ず鏂囧瓧 --> @@ -59,15 +59,23 @@ <!-- 灏忎簬褰撳墠鏃堕棿鏄剧ず涓嶅悓棰滆壊 --> <span v-else-if="item.date" - :style="{ color: new Date().getTime() > new Date(scope.row[item.prop]).getTime() ? '#D23F3A' : '#606266' }" + :style="{ + color: new Date().getTime() > new Date(scope.row[item.prop]).getTime() ? '#D23F3A' : '#606266' + }" >{{ timeAgo(scope.row[item.prop]) }}</span > + <div v-else-if="item.conversion"> + <span>{{ item.getStatus(scope.row[item.prop]) }}</span> + </div> <span v-else-if="item.isClick && scope.row[item.prop]" :class="item.className ? item.className : 'sel-name'" @click="selCommonClick(scope.row)" >{{ scope.row[item.prop] }}</span > + <span v-else-if="item.propType == 'mulitple'"> + {{ scope.row[item.prop][item.propTwo] ? scope.row[item.prop][item.propTwo] : "--" }} + </span> <span :class="item.className ? item.className : ''" v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : scope.row[item.prop] === 0 ? scope.row[item.prop] : "--" }}</span> @@ -79,7 +87,7 @@ </div> </el-table> <div class="overSpread1" v-show="iscolopen" @click="onMaskClick"></div> - <div class="styleBtn"> + <div v-if="showCheckcol" class="styleBtn"> <i @click="checkcol()" class="label">...</i> <el-checkbox-group v-model="showcolList" v-show="iscolopen" class="checkbox-group" @change="selCeckBoxList"> <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item">{{ item }} </el-checkbox> @@ -102,6 +110,7 @@ showStyle: true, tableInfomation: [], // 鎺ュ彛杩斿洖鏁版嵁 showcol: [], + countcol: [], allcol: [], highlight: false, tableColumn: [ @@ -133,6 +142,14 @@ default: () => { return {} } + }, + showCheckcol: { + type: Boolean, + default: true + }, + showSummary: { + type: Boolean, + default: false } }, data() { @@ -201,6 +218,40 @@ }, timeAgo(val) { return timeago(val) + }, + //姹傚拰 + getSummaries(param) { + if (this.tableList.countcol && this.tableList.countcol.length > 0) { + const { columns, data } = param + const sums = [] + columns.forEach((column, index) => { + if (index === 0) { + sums[index] = " " + return + } + this.tableList.countcol.forEach((countcols) => { + if (column.label === countcols) { + const values = data.map((item) => Number(item[column.property])) + if (!values.every((value) => isNaN(value))) { + sums[index] = values.reduce((prev, curr) => { + const value = Number(curr) + if (!isNaN(value)) { + return prev + curr + } else { + return prev + } + }, 0) + sums[index] = this.tableList.tableColumn[index - 1].unit + "" + sums[index] + } else { + sums[index] = "" + } + } else { + return + } + }) + }) + return sums + } } } } @@ -208,6 +259,12 @@ <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped> +.table_height { + height: 100%; +} +.el-table__body-wrapper { + height: 100%; +} .table-view { position: relative; height: 100%; -- Gitblit v1.8.0