From 1f4bc9f584c07a0958747657b7353ccbd1d56b41 Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期三, 16 八月 2023 17:39:00 +0800
Subject: [PATCH] bug修复及销售子单产品管理相关
---
src/components/makepager/TableCommonView.vue | 154 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 145 insertions(+), 9 deletions(-)
diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index 5583db0..5abfbd8 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
@@ -14,7 +14,6 @@
:header-cell-style="{ background: '#ECF4FF', color: '#666' }"
>
<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"
@@ -23,12 +22,77 @@
: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>
<div v-else-if="item.status" :class="scope.row.status">{{ scope.row[item.prop] }}</div>
- <span v-else>{{ scope.row[item.prop] }}</span>
+ <span v-else-if="item.isTime">{{
+ dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop]) === "1900-01-01 00:06:26"
+ ? "--"
+ : 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.isFirst">{{ 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-if="item.isMasterClick && scope.row[item.prop]"
+ class="sel-name"
+ @click="selMasterClick(scope.row)"
+ >{{ scope.row[item.prop] }}</span
+ >
+ <span
+ v-else-if="item.isServiceOrder && scope.row[item.prop]"
+ class="sel-name"
+ @click="selServiceOrderClick(scope.row)"
+ >{{ scope.row[item.prop] }}</span
+ >
+ <span
+ v-else-if="item.isCommonClick && scope.row[item.prop]"
+ class="sel-name"
+ @click="selCommonClick(scope.row)"
+ >{{ scope.row[item.prop] }}</span
+ >
+ <div v-else-if="item.isProductName" class="product-view">
+ <ul v-if="scope.row.products && scope.row.products.length > 0">
+ <li v-for="(item, index) in scope.row.products" :key="index">
+ <div :class="scope.row.products.length === 1 ? 'name-view no-bottom' : 'name-view'">
+ {{ item.name }}
+ </div>
+ </li>
+ </ul>
+ <div v-else class="no-product">{{ "--" }}</div>
+ </div>
+ <div v-else-if="item.isProductAmount" class="product-view">
+ <ul v-if="scope.row.products && scope.row.products.length > 0">
+ <li v-for="(item, index) in scope.row.products" :key="index">
+ <div :class="scope.row.products.length === 1 ? 'name-view no-bottom' : 'name-view'">
+ {{ item.amount }}
+ </div>
+ </li>
+ </ul>
+ <div v-else class="no-product">{{ "--" }}</div>
+ </div>
+ <span v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span>
</template>
</el-table-column>
<slot name="tableButton" />
@@ -47,7 +111,6 @@
type: Boolean,
default: true
},
-
tableList: {
type: Object,
default: () => {
@@ -123,7 +186,7 @@
sums[index + 1]
}
})
- console.log(sums)
+ // console.log(sums)
return sums
}
},
@@ -154,6 +217,55 @@
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)
+ },
+ // 閿�鍞�诲崟
+ selMasterClick(row) {
+ this.$emit("selMasterClick", row)
+ },
+ // 瀹㈡埛鏈嶅姟鍗�
+ selServiceOrderClick(row) {
+ this.$emit("selServiceOrderClick", row)
+ },
+ // 鍏叡锛堥攢鍞満浼氥�佹姤浠峰崟銆侀攢鍞�诲崟銆侀攢鍞瓙鍗曘�傘�傘�傦級
+ selCommonClick(row) {
+ this.$emit("selCommonClick", row)
}
}
}
@@ -161,10 +273,10 @@
<!-- 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 {
width: 70px;
text-align: center;
@@ -172,6 +284,30 @@
background-color: $color-primary;
border-radius: 4px;
}
+ .sel-name {
+ color: $color-primary;
+ cursor: pointer;
+ }
+ .product-view {
+ // background: #cc7d7d;
+ margin-left: -10px;
+ margin-right: -11px;
+ li {
+ height: 57px;
+ line-height: 57px;
+ .name-view {
+ padding-left: 10px;
+ border-bottom: 1px solid #ebeef5;
+ }
+ .no-bottom {
+ border-bottom: 0px;
+ }
+ }
+ .no-product {
+ height: 57px;
+ line-height: 57px;
+ }
+ }
}
::v-deep {
.el-table__footer-wrapper tbody td.el-table__cell {
--
Gitblit v1.8.0