From 624e812b40ac87bf8d7a17b83b4a3bc3bbd901fb Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期四, 03 八月 2023 18:38:58 +0800
Subject: [PATCH] 增加客户服务单(删除工单管理、消费服务单)和客户管理模块详情页
---
src/components/makepager/TableCommonView.vue | 95 +++++++++++++++++++++++++++++++++++++++++------
1 files changed, 82 insertions(+), 13 deletions(-)
diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index c799a17..80b1e97 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -1,5 +1,5 @@
<template>
- <div class="page-view">
+ <div class="table-view">
<el-table
ref="table"
border
@@ -13,7 +13,7 @@
@selection-change="handleSelectionChange"
:header-cell-style="{ background: '#ECF4FF', color: '#666' }"
>
- <el-table-column type="selection" width="40"> </el-table-column>
+ <el-table-column v-if="selectBox" type="selection" width="40"> </el-table-column>
<el-table-column
v-for="(item, i) in tableList.tableColumn"
:key="i"
@@ -22,12 +22,38 @@
:width="item.width"
:min-width="item.min"
show-overflow-tooltip
- sortable
+ :sortable="item.sortable"
>
<template slot-scope="scope">
<span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span>
- <span v-else-if="item.status" :class="scope.row.status">{{ scope.row[item.prop] }}</span>
- <span v-else>{{ scope.row[item.prop] }}</span>
+ <div v-else-if="item.status" :class="scope.row.status">{{ scope.row[item.prop] }}</div>
+ <span v-else-if="item.isTime">{{
+ dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop]) === "1900-01-01 08:00:00"
+ ? "--"
+ : dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop])
+ }}</span>
+ <span v-else-if="item.isClick && scope.row[item.prop]" class="sel-name" @click="selNameClick(scope.row)">{{
+ scope.row[item.prop]
+ }}</span>
+ <span
+ v-else-if="item.isSalesLeadClick && scope.row[item.prop]"
+ class="sel-name"
+ @click="selSalesLeadClick(scope.row)"
+ >{{ scope.row[item.prop] }}</span
+ >
+ <span
+ v-else-if="item.isClientClick && scope.row[item.prop]"
+ class="sel-name"
+ @click="selClientClick(scope.row)"
+ >{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span
+ >
+ <span
+ v-else-if="item.isContactClick && scope.row[item.prop]"
+ class="sel-name"
+ @click="selContactsClick(scope.row)"
+ >{{ scope.row[item.prop] }}</span
+ >
+ <span v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span>
</template>
</el-table-column>
<slot name="tableButton" />
@@ -42,10 +68,15 @@
export default {
name: "TableCommonView",
props: {
+ selectBox: {
+ type: Boolean,
+ default: true
+ },
tableList: {
type: Object,
default: () => {
return {
+ selectBox: true,
tableInfomation: [], // 鎺ュ彛杩斿洖鏁版嵁
tableColumn: [
// table琛ㄥ崟
@@ -104,19 +135,19 @@
sums[index] = "鏈〉鎬昏"
}
const values = data.map((item) => Number(item[column.property]))
- // if (column.property === this.showSummary.sumProp) {
if (this.showSummary.sumProp.includes(column.property)) {
sums[index + 1] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
- return this.number_format(prev + curr, 2, ".", ",")
+ return prev + curr
} else {
- return this.number_format(prev, 2, ".", ",")
+ return prev
}
}, 0)
sums[index + 1]
}
})
+ // console.log(sums)
return sums
}
},
@@ -147,6 +178,39 @@
s[1] = s[1].substring(0, prec) //灏忔暟鐐逛綅鏁拌秴鍑洪暱搴︽椂鎴彇鍓嶉潰鐨勪綅鏁�
}
return s.join(dec)
+ },
+ // 鏃堕棿鏄剧ず
+ dateFormat(fmt, date) {
+ let ret = ""
+ date = new Date(date)
+ const opt = {
+ "Y+": date.getFullYear().toString(), // 骞�
+ "m+": (date.getMonth() + 1).toString(), // 鏈�
+ "d+": date.getDate().toString(), // 鏃�
+ "H+": date.getHours().toString(), // 鏃�
+ "M+": date.getMinutes().toString(), // 鍒�
+ "S+": date.getSeconds().toString() // 绉�
+ // 鏈夊叾浠栨牸寮忓寲瀛楃闇�姹傚彲浠ョ户缁坊鍔狅紝蹇呴』杞寲鎴愬瓧绗︿覆
+ }
+ for (let k in opt) {
+ ret = new RegExp("(" + k + ")").exec(fmt)
+ if (ret) {
+ fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0"))
+ }
+ }
+ return fmt
+ },
+ selNameClick(row) {
+ this.$emit("selCommonClick", row)
+ },
+ selSalesLeadClick(row) {
+ this.$emit("selSalesLeadClick", row)
+ },
+ selClientClick(row) {
+ this.$emit("selClientClick", row)
+ },
+ selContactsClick(row) {
+ this.$emit("selContactsClick", row)
}
}
}
@@ -154,16 +218,21 @@
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
-.page-view {
- margin-top: 20px;
+.table-view {
+ // margin-top: 20px;
margin-right: 10px;
- margin-bottom: 40px;
+ // margin-bottom: 40px;
.blue {
- padding: 10px;
+ width: 70px;
+ text-align: center;
color: #fff;
- background-color: blue;
+ background-color: $color-primary;
border-radius: 4px;
}
+ .sel-name {
+ color: $color-primary;
+ cursor: pointer;
+ }
}
::v-deep {
.el-table__footer-wrapper tbody td.el-table__cell {
--
Gitblit v1.8.0