|
@@ -33,25 +33,7 @@
|
|
|
:props="{ value: 'TryStage', label: 'Name', children: 'List', checkStrictly: true }"
|
|
|
@change="handelGetData"
|
|
|
></el-cascader>
|
|
|
- <el-autocomplete
|
|
|
- style="width: 200px; margin-bottom: 20px"
|
|
|
- prefix-icon="el-icon-search"
|
|
|
- clearable
|
|
|
- class="inline-input"
|
|
|
- v-model="userLabel"
|
|
|
- :fetch-suggestions="querySearchHandler"
|
|
|
- placeholder="用户标签搜索"
|
|
|
- @clear="handelGetData"
|
|
|
- :trigger-on-focus="false"
|
|
|
- @select="handelGetData"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <div v-if="scope.item.IndustryName">
|
|
|
- {{ scope.item.IndustryName }}
|
|
|
- </div>
|
|
|
- <div v-else style="text-align: center">暂无数据</div>
|
|
|
- </template>
|
|
|
- </el-autocomplete>
|
|
|
+ <el-input style="width: 200px; margin-bottom: 20px" prefix-icon="el-icon-search" clearable class="inline-input" v-model="userLabel" placeholder="用户标签搜索" @input="handelGetData"> </el-input>
|
|
|
</div>
|
|
|
<el-card>
|
|
|
<el-table :data="tableData" style="width: 100%" border @sort-change="sortChangeHandle" :row-class-name="setRowClass">
|
|
@@ -111,26 +93,31 @@
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="" width="350">
|
|
|
- <div slot="header" slot-scope="{}" style="text-align: center">标签</div>
|
|
|
+ <div slot="header" slot-scope="{}" style="text-align: center">
|
|
|
+ <el-popover placement="top-start" width="376" trigger="hover">
|
|
|
+ <span slot="reference">
|
|
|
+ <p style="cursor: pointer">标签 <i class="el-icon-info" style="color: #606266" /></p>
|
|
|
+ </span>
|
|
|
+ <div class="popover-item">
|
|
|
+ <span class="label-tag" :style="lookLabelColor(item)" v-for="item in lableDescribe" :key="item.SourceType" @click="labelChildren(item.RaiLabelId)">
|
|
|
+ {{ item.Label }}
|
|
|
+ <i @click.stop="deleteLabel(item)" v-if="item.SourceType == 6" class="el-icon-circle-close"></i>
|
|
|
+ </span>
|
|
|
+ <p style="margin:10px 15px">仅标记客户4个月以内的互动行为</p>
|
|
|
+ </div>
|
|
|
+ </el-popover>
|
|
|
+ </div>
|
|
|
<template slot-scope="{ row }">
|
|
|
<div class="popover-item">
|
|
|
- <el-tag size="mini" style="margin: 5px 8px; cursor: pointer" v-for="item in lookLabelListNumber(row)" :key="item" :type="userLabel == item && 'danger'" @click="labelChildren(item, row)">
|
|
|
- {{ item }}
|
|
|
- </el-tag>
|
|
|
- <span @click="showLabelDlg(row)" style="font-weight: 700; padding: 5px 10px" class="editsty" v-if="row.Labels && row.Labels.split(',').length > 10">...</span>
|
|
|
+ <span class="label-tag" :style="lookLabelColor(item)" v-for="item in lookLabelListNumber(row)" :key="item.RaiLabelId" @click="labelChildren(item.RaiLabelId)">
|
|
|
+ {{ item.Label }}
|
|
|
+ <i @click.stop="deleteLabel(item)" v-if="item.SourceType == 6" class="el-icon-circle-close"></i>
|
|
|
+ </span>
|
|
|
+ <span @click="showLabelDlg(row)" style="font-weight: 700; padding: 5px 10px" class="editsty" v-if="row.RaiLabelList && row.RaiLabelList.length > 6">...</span>
|
|
|
+ <span @click="labelChildrenAdd(row)" class="label-tag" style="margin: 5px 8px; cursor: pointer" effect="dark" color="#EAF3FE"> 添加标签 <i class="el-icon-circle-plus-outline"></i></span>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <!-- <el-table-column align="center" prop="" label="备注" width="90">
|
|
|
- <template slot-scope="{ row }">
|
|
|
- <div class="remark-list">
|
|
|
- <div class="button">
|
|
|
- <span class="editsty" @click="lookOver(row, '添加')">添加</span>
|
|
|
- <span v-if="row.Content" style="font-weight: 700; padding: 5px 10px" class="editsty" @click="lookOver(row, '历史')">...</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
<el-table-column align="center" prop="" label="操作" width="160">
|
|
|
<template slot-scope="{ row }">
|
|
|
<span :class="row.IsRemind ? 'deletesty' : 'editsty'" @click="remindHandler(row)">{{ row.IsRemind ? "取消提醒" : "互动提醒" }}</span>
|
|
@@ -165,11 +152,12 @@
|
|
|
</template>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
- <InteractionDlg :interactionDlg.sync="interactionDlg" :interactionFrom="interactionFrom" />
|
|
|
- <label-dlg :isShowLabelDlg.sync="isShowLabelDlg" :dlgLabelList.sync="dlgLabelList" @labelChildren="labelChildren" :userLabel="userLabel" />
|
|
|
+ <InteractionDlg :interactionDlg.sync="interactionDlg" :raiLabelId="raiLabelId" />
|
|
|
+ <label-dlg :isShowLabelDlg.sync="isShowLabelDlg" :dlgLabelList.sync="dlgLabelList" @labelClick="labelChildren" @deleteClick="deleteLabel" @getUpdateList="getCygxContactsList" />
|
|
|
<remind-dlg :isShowRemindDlg.sync="isShowRemindDlg" :remindList.sync="remindList" />
|
|
|
<FeedbackDlg :showFeedbackDlg.sync="showFeedbackDlg" :remindList.sync="remindList" />
|
|
|
<ContactTransfer :contactTransferDlgVisible.sync="contactTransferDlgVisible" :TransferMobile.sync="TransferMobile" />
|
|
|
+ <AddLabelDlg :interactionFrom="interactionFrom" :addIsShow.sync="addLabelDlgVisibility" @updateList="getCygxContactsList" />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -182,10 +170,11 @@ import LabelDlg from "./compontents/labelDlg.vue";
|
|
|
import RemindDlg from "./compontents/remindDlg.vue";
|
|
|
import FeedbackDlg from "./compontents/feedbackDlg.vue";
|
|
|
import ContactTransfer from "../customList/components/ContactTransferDlg.vue";
|
|
|
+import AddLabelDlg from "./compontents/addLabelDlg.vue";
|
|
|
|
|
|
export default {
|
|
|
name: "",
|
|
|
- components: { mPage, mDialog, InteractionDlg, LabelDlg, RemindDlg, FeedbackDlg, ContactTransfer },
|
|
|
+ components: { mPage, mDialog, InteractionDlg, LabelDlg, RemindDlg, FeedbackDlg, ContactTransfer, AddLabelDlg },
|
|
|
props: {},
|
|
|
data() {
|
|
|
return {
|
|
@@ -246,6 +235,36 @@ export default {
|
|
|
TransferMobile: 0,
|
|
|
|
|
|
contactTransferDlgVisible: false, //联系人转移的弹框
|
|
|
+
|
|
|
+ addLabelDlgVisibility: false, // 销售输入标签
|
|
|
+ raiLabelId: "",
|
|
|
+
|
|
|
+ lableDescribe: [
|
|
|
+ {
|
|
|
+ Label: "搜索关键词标签",
|
|
|
+ SourceType: 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Label: "产业/个股标签(线上活动/路演/路演回放)",
|
|
|
+ SourceType: 5,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Label: "报告类型标签",
|
|
|
+ SourceType: 8,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Label: "产业/个股标签(线下活动/路演)",
|
|
|
+ SourceType: 2,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Label: "销售输入标签",
|
|
|
+ SourceType: 6,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Label: "产业/个股标签(报告)",
|
|
|
+ SourceType: 7,
|
|
|
+ },
|
|
|
+ ],
|
|
|
};
|
|
|
},
|
|
|
computed: {},
|
|
@@ -399,12 +418,35 @@ export default {
|
|
|
window.open(href, "_blank");
|
|
|
},
|
|
|
/* 标签下的单独的某一个 */
|
|
|
- labelChildren(key, row) {
|
|
|
+ labelChildren(id) {
|
|
|
this.interactionDlg = true;
|
|
|
- this.interactionFrom = {
|
|
|
- id: row.UserId,
|
|
|
- key,
|
|
|
- };
|
|
|
+ this.raiLabelId = id;
|
|
|
+ },
|
|
|
+ // 点击删除标签的某一个
|
|
|
+ deleteLabel(item) {
|
|
|
+ if (item.SourceType == 6) {
|
|
|
+ this.$confirm("确定要删除此标签吗?", "删除标签", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ }).then(async () => {
|
|
|
+ const res = await equityContacts.userRaiLabelDel({
|
|
|
+ RaiLabelId: item.RaiLabelId,
|
|
|
+ });
|
|
|
+ if (res.Ret == 200) {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "删除成功!",
|
|
|
+ });
|
|
|
+ this.getCygxContactsList();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 添加销售输入标签接口
|
|
|
+ labelChildrenAdd(item) {
|
|
|
+ this.addLabelDlgVisibility = true;
|
|
|
+ this.interactionFrom = item;
|
|
|
},
|
|
|
//鼠标经过了 机构互助量
|
|
|
async isShowOrganization(row) {
|
|
@@ -446,13 +488,12 @@ export default {
|
|
|
this.isShowRemindDlg = true;
|
|
|
},
|
|
|
sortChangeHandle(item) {
|
|
|
- console.log(item.order);
|
|
|
this.orderTable = item.order === "ascending" ? "asc" : item.order === "descending" ? "desc" : "";
|
|
|
this.getCygxContactsList();
|
|
|
},
|
|
|
// 处理标签不能超过10个
|
|
|
lookLabelListNumber(row) {
|
|
|
- let arr = row.Labels ? row.Labels.split(",").splice(0, 10) : [];
|
|
|
+ let arr = row.RaiLabelList ? _.cloneDeep(row.RaiLabelList).splice(0, 6) : [];
|
|
|
return arr;
|
|
|
},
|
|
|
// 展示弹框
|
|
@@ -473,10 +514,28 @@ export default {
|
|
|
// 设置表格行的样式
|
|
|
setRowClass({ row }) {
|
|
|
if (row.IsMaker == 1) {
|
|
|
- console.log(row);
|
|
|
return "not-read-seven-days";
|
|
|
}
|
|
|
},
|
|
|
+ lookLabelColor(item) {
|
|
|
+ switch (item.SourceType) {
|
|
|
+ case 1:
|
|
|
+ return { backgroundColor: "#FFE5E6", color: "#D60808" };
|
|
|
+ case 2:
|
|
|
+ case 3:
|
|
|
+ return { backgroundColor: "#FDE5FF", color: "#891B98" };
|
|
|
+ case 4:
|
|
|
+ case 5:
|
|
|
+ case 9:
|
|
|
+ return { backgroundColor: "#FFEEE5", color: "#DD4D00" };
|
|
|
+ case 7:
|
|
|
+ return { backgroundColor: "#E5FCFF", color: "#076873" };
|
|
|
+ case 8:
|
|
|
+ return { backgroundColor: "#E5EAFF", color: "#1A31C5" };
|
|
|
+ default:
|
|
|
+ return {}; // 返回一个空对象表示没有样式
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
/* 页面跳转前记录参数 */
|
|
|
beforeRouteLeave(to, from, next) {
|
|
@@ -568,9 +627,21 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
.popover-item {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
overflow: hidden;
|
|
|
overflow-y: auto;
|
|
|
+ .label-tag {
|
|
|
+ padding: 0 10px;
|
|
|
+ font-size: 14px;
|
|
|
+ border-radius: 4px;
|
|
|
+ background-color: #eaf3fe;
|
|
|
+ color: #409eff;
|
|
|
+ margin: 5px 8px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
.popover-not-have {
|
|
|
width: 100%;
|
|
|
text-align: center;
|