From 35120acdc91fd8b86c5c85ccdcfeb63051095344 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期四, 18 四月 2024 11:03:40 +0800
Subject: [PATCH] 添加入库 companId修改为字符串
---
src/components/makepager/TableCommonView.vue | 148 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 128 insertions(+), 20 deletions(-)
diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index 5133ded..df44eff 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -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>
@@ -31,25 +33,24 @@
:min-width="item.min"
show-overflow-tooltip
:sortable="item.sortable"
+ :align="item.textAlign"
v-if="item.isShowColumn"
>
<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,22 +60,26 @@
<!-- 灏忎簬褰撳墠鏃堕棿鏄剧ず涓嶅悓棰滆壊 -->
<span
v-else-if="item.date"
- :style="{ color: new Date().getTime() > new Date(scope.row[item.prop]).getTime() ? '#D23F3A' : '#606266' }"
- >{{ timeAgo(scope.row[item.prop]) }}</span
+ :style="{
+ color: new Date().getTime() > new Date(scope.row[item.prop]).getTime() ? '#D23F3A' : '#606266'
+ }"
+ >{{ scope.row[item.prop] }}</span
>
+ <div v-else-if="item.conversion">
+ <p class="exceed_width">{{ item.getStatus(scope.row[item.prop]) }}</p>
+ </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 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>
-
</template>
</el-table-column>
<slot name="tableButton" />
@@ -106,11 +111,12 @@
showStyle: true,
tableInfomation: [], // 鎺ュ彛杩斿洖鏁版嵁
showcol: [],
+ countcol: [],
allcol: [],
highlight: false,
tableColumn: [
// table琛ㄥ崟
- { label: "", prop: "", min: 200, tooltip: true }
+ { label: "", prop: "", min: 200, tooltip: true, textAlign: "center" }
]
}
},
@@ -141,6 +147,10 @@
showCheckcol: {
type: Boolean,
default: true
+ },
+ showSummary: {
+ type: Boolean,
+ default: false
}
},
data() {
@@ -209,6 +219,41 @@
},
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)
+ let unitIndex = this.tableList.tableColumn.findIndex((obj) => obj.label === column.label)
+ sums[index] = this.tableList.tableColumn[unitIndex].unit + sums[index]
+ } else {
+ sums[index] = ""
+ }
+ } else {
+ return
+ }
+ })
+ })
+ return sums
+ }
}
}
}
@@ -216,6 +261,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%;
@@ -249,16 +300,18 @@
.styleBtn {
position: absolute;
width: 30px;
- height: 48px;
+ height: 35px;
// line-height: 26px;
- background: #f1f3f8;
+ background: transparent;
border-top-right-radius: 8px;
top: 0px;
right: 2px;
- // z-index: 9999;
+ display: flex;
+ align-items: center;
+ z-index: 9999;
.label {
position: absolute;
- top: 12px;
+ top: 6px;
font-size: 20px;
cursor: pointer;
color: #000;
@@ -295,6 +348,61 @@
border-top-left-radius: 12px;
border-top-right-radius: 12px;
overflow: auto;
+ .exceed_width {
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
}
}
+
+::v-deep .el-table .cell {
+ font-size: 12px;
+ line-height: 17px;
+ font-family: PingFangSC;
+ color: rgba(0, 0, 0, 0.9);
+ .el-button--text {
+ width: auto;
+ height: auto;
+ font-family: PingFangSC-Medium, sans-serif;
+ }
+}
+::v-deep .el-table .el-table__cell {
+ padding: 6px 0 !important;
+ height: 35px;
+ text-align: center;
+}
+
+::v-deep {
+ .el-table .cell .el-button--text.el-button--small {
+ padding: 4px 0;
+ }
+ .el-table .el-table__cell {
+ padding: 6px 0 !important;
+ height: 35px;
+ text-align: center;
+ }
+ .el-table__body-wrapper {
+ height: unset !important;
+ }
+ .el-table__cell.is-left {
+ text-align: left !important;
+ }
+ .el-table__cell.is-right {
+ text-align: right !important;
+ }
+}
+.overSpread1 {
+ width: 100%;
+ height: 100%;
+ position: fixed;
+ top: 0;
+ left: 0;
+ background: rgba(0, 0, 0, 0);
+ z-index: 10;
+}
+.el-table__cell {
+ text-align: unset !important;
+}
</style>
--
Gitblit v1.8.0