Przeglądaj źródła

优化全局拉黑提示

xw 1 dzień temu
rodzic
commit
04588debf1

+ 40 - 10
src/views/qw/externalContact/ExternalContactNameCell.vue

@@ -1,17 +1,35 @@
 <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-if="isBlacklisted"
+      style="color: red"
+    >{{ row.name || '-' }}</span>
+    <span
+      class="external-contact-name-text"
+      v-else-if="isRemarked"
+      style="color: #67c23a"
+    >{{ row.name || '-' }}</span>
     <span class="external-contact-name-text" v-else>{{ row.name || '-' }}</span>
     <el-tooltip
       v-if="isBlacklisted"
       placement="top"
-      :disabled="!tooltipContent"
+      :disabled="!hasManageRemark"
     >
-      <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" />
     </el-tooltip>
+    <el-tooltip
+      v-else-if="isRemarked"
+      placement="top"
+    >
+      <div slot="content" class="external-contact-manage-tooltip">
+        <div class="external-contact-manage-remark">{{ row.manageRemark }}</div>
+      </div>
+      <i class="el-icon-warning external-contact-remark-icon" />
+    </el-tooltip>
   </span>
 </template>
 
@@ -28,8 +46,17 @@ export default {
     isBlacklisted() {
       return this.row && Number(this.row.manageStatus) === 2
     },
-    tooltipContent() {
-      return this.isBlacklisted
+    hasManageRemark() {
+      const remark = this.row && this.row.manageRemark
+      return remark != null && String(remark).trim() !== ''
+    },
+    isRemarked() {
+      return (
+        this.row &&
+        this.row.manageStatus != null &&
+        this.hasManageRemark &&
+        !this.isBlacklisted
+      )
     }
   }
 }
@@ -56,12 +83,15 @@ export default {
   flex-shrink: 0;
 }
 
-.external-contact-blacklist-title {
-  font-weight: 600;
-  margin-bottom: 4px;
+.external-contact-remark-icon {
+  color: #67c23a;
+  margin-left: 4px;
+  font-size: 14px;
+  cursor: pointer;
+  flex-shrink: 0;
 }
 
-.external-contact-blacklist-remark {
+.external-contact-manage-remark {
   line-height: 1.5;
   word-break: break-all;
 }

+ 21 - 0
src/views/qw/externalContact/index.vue

@@ -169,6 +169,16 @@
           />
         </el-select>
       </el-form-item>
+      <el-form-item label="拉黑状态" prop="manageStatus">
+        <el-select v-model="queryParams.manageStatus" placeholder="拉黑状态" clearable size="small">
+          <el-option
+            v-for="dict in manageStatusOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="转接状态" prop="addWay">
 
         <el-select v-model="queryParams.transferStatus" placeholder="转接状态" clearable size="small">
@@ -481,6 +491,12 @@
           <dict-tag :options="statusOptions" :value="scope.row.status"/>
         </template>
       </el-table-column>
+      <el-table-column label="拉黑状态" align="center" prop="manageStatusName" width="120px">
+        <template slot-scope="scope">
+          <span v-if="scope.row.manageStatusName">{{ scope.row.manageStatusName }}</span>
+          <dict-tag v-else-if="scope.row.manageStatus != null" :options="manageStatusOptions" :value="String(scope.row.manageStatus)"/>
+        </template>
+      </el-table-column>
       <el-table-column label="客户等级" align="center" prop="level" width="120px" >
         <template slot-scope="scope">
           <dict-tag :options="ratingType" :value="scope.row.level"/>
@@ -1102,6 +1118,10 @@ export default {
         {dictLabel:"已绑定",dictValue:'isBindMini'},
         {dictLabel:"未绑定",dictValue:'noBindMini'},
       ],
+      manageStatusOptions: [
+        { dictLabel: "正常", dictValue: "1" },
+        { dictLabel: "拉黑提示", dictValue: "2" }
+      ],
       //标签弹窗选择
       tagChange:{
         open:false,
@@ -1236,6 +1256,7 @@ export default {
         corpId: null,
         companyId: null,
         status:null,
+        manageStatus: null,
         transferStatus:null,
         isBind:null,
         isBindMini:null,

+ 21 - 0
src/views/qw/externalContact/myExternalContact.vue

@@ -85,6 +85,16 @@
           />
         </el-select>
       </el-form-item>
+      <el-form-item label="拉黑状态" prop="manageStatus">
+        <el-select v-model="queryParams.manageStatus" placeholder="拉黑状态" clearable size="small">
+          <el-option
+            v-for="dict in manageStatusOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="项目归属" prop="projectId">
         <el-select v-model="queryParams.projectId" placeholder="请选择项目" clearable size="small" @change="handleProjectChange">
           <el-option
@@ -440,6 +450,12 @@
           <dict-tag :options="statusOptions" :value="scope.row.status"/>
         </template>
       </el-table-column>
+      <el-table-column label="拉黑状态" align="center" prop="manageStatusName" width="120px">
+        <template slot-scope="scope">
+          <span v-if="scope.row.manageStatusName">{{ scope.row.manageStatusName }}</span>
+          <dict-tag v-else-if="scope.row.manageStatus != null" :options="manageStatusOptions" :value="String(scope.row.manageStatus)"/>
+        </template>
+      </el-table-column>
       <el-table-column label="客户等级" align="center" prop="level" width="120px" >
         <template slot-scope="scope">
           <dict-tag :options="ratingType" :value="scope.row.level"/>
@@ -1174,6 +1190,10 @@ export default {
         {dictLabel:"已绑定",dictValue:'isBindMini'},
         {dictLabel:"未绑定",dictValue:'noBindMini'},
       ],
+      manageStatusOptions: [
+        { dictLabel: "正常", dictValue: "1" },
+        { dictLabel: "拉黑提示", dictValue: "2" }
+      ],
       isBindActiveName:"all",
       remarkMobiles: [],
       inputVisible: false,
@@ -1287,6 +1307,7 @@ export default {
         corpId: null,
         companyId: null,
         status:null,
+        manageStatus: null,
         transferStatus:null,
         isBind:null,
         isBindMini:null,