|
|
@@ -1,16 +1,15 @@
|
|
|
<template>
|
|
|
<span class="external-contact-name-cell">
|
|
|
- <span class="external-contact-name-text" v-if="isBlacklisted" style="color: red">{{ row.name || '-' }}</span>
|
|
|
- <span class="external-contact-name-text" v-else>{{ row.name || '-' }}</span>
|
|
|
+ <span class="external-contact-name-text" :style="nameStyle">{{ row.name || '-' }}</span>
|
|
|
<el-tooltip
|
|
|
- v-if="isBlacklisted"
|
|
|
+ v-if="hasManageIndicator"
|
|
|
placement="top"
|
|
|
- :disabled="!tooltipContent"
|
|
|
+ :disabled="!row.manageRemark"
|
|
|
>
|
|
|
- <div slot="content" class="external-contact-blacklist-tooltip">
|
|
|
- <div v-if="row.manageRemark" class="external-contact-blacklist-remark">{{ row.manageRemark }}</div>
|
|
|
+ <div slot="content" class="external-contact-manage-tooltip">
|
|
|
+ <div v-if="row.manageRemark" class="external-contact-manage-remark">{{ row.manageRemark }}</div>
|
|
|
</div>
|
|
|
- <i class="el-icon-warning external-contact-blacklist-icon" />
|
|
|
+ <i :class="iconClass" />
|
|
|
</el-tooltip>
|
|
|
</span>
|
|
|
</template>
|
|
|
@@ -25,11 +24,39 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
+ manageStatus() {
|
|
|
+ return this.row && this.row.manageStatus != null ? Number(this.row.manageStatus) : null
|
|
|
+ },
|
|
|
isBlacklisted() {
|
|
|
- return this.row && Number(this.row.manageStatus) === 2
|
|
|
+ return this.manageStatus === 2
|
|
|
+ },
|
|
|
+ hasManageRemark() {
|
|
|
+ const remark = this.row && this.row.manageRemark
|
|
|
+ return remark != null && String(remark).trim() !== ''
|
|
|
+ },
|
|
|
+ isManaged() {
|
|
|
+ return this.manageStatus === 1 && this.hasManageRemark
|
|
|
+ },
|
|
|
+ hasManageIndicator() {
|
|
|
+ return this.isBlacklisted || this.isManaged
|
|
|
+ },
|
|
|
+ nameStyle() {
|
|
|
+ if (this.isBlacklisted) {
|
|
|
+ return { color: '#f56c6c' }
|
|
|
+ }
|
|
|
+ if (this.isManaged) {
|
|
|
+ return { color: '#67c23a' }
|
|
|
+ }
|
|
|
+ return {}
|
|
|
},
|
|
|
- tooltipContent() {
|
|
|
- return this.isBlacklisted
|
|
|
+ iconClass() {
|
|
|
+ if (this.isBlacklisted) {
|
|
|
+ return 'el-icon-warning external-contact-manage-icon external-contact-manage-icon--danger'
|
|
|
+ }
|
|
|
+ if (this.isManaged) {
|
|
|
+ return 'el-icon-warning external-contact-manage-icon external-contact-manage-icon--success'
|
|
|
+ }
|
|
|
+ return ''
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -48,20 +75,22 @@ export default {
|
|
|
white-space: nowrap;
|
|
|
}
|
|
|
|
|
|
-.external-contact-blacklist-icon {
|
|
|
- color: #f56c6c;
|
|
|
+.external-contact-manage-icon {
|
|
|
margin-left: 4px;
|
|
|
font-size: 14px;
|
|
|
cursor: pointer;
|
|
|
flex-shrink: 0;
|
|
|
}
|
|
|
|
|
|
-.external-contact-blacklist-title {
|
|
|
- font-weight: 600;
|
|
|
- margin-bottom: 4px;
|
|
|
+.external-contact-manage-icon--danger {
|
|
|
+ color: #f56c6c;
|
|
|
+}
|
|
|
+
|
|
|
+.external-contact-manage-icon--success {
|
|
|
+ color: #67c23a;
|
|
|
}
|
|
|
|
|
|
-.external-contact-blacklist-remark {
|
|
|
+.external-contact-manage-remark {
|
|
|
line-height: 1.5;
|
|
|
word-break: break-all;
|
|
|
}
|