bding 2 mesiacov pred
rodič
commit
4d589f42cd

+ 14 - 0
src/api/modules/statisticApi.js

@@ -449,6 +449,20 @@ const dataMainInterface = {
   getRaiServeCustomSellerList:params => {
 	return http.get('/custom/seller/rai_serve/list',params);
   },
+  /**
+  * 历史备注列表
+  * @returns  
+  */
+  getRaiServeRemarkList:params => {
+	return http.get('/cygx/rai_serve/remark/list',params);
+  },
+  /**
+  * 新增历史备注
+  * @returns  
+  */
+  getRaiServeRemarkAdd:params => {
+	return http.post('/cygx/rai_serve/remark/add',params);
+  },
 }
 
 export {

+ 89 - 0
src/components/historicalNotesDlg.vue

@@ -0,0 +1,89 @@
+<template>
+  <div class="container container-historical-notes-dlg">
+    <el-dialog title="历史备注" :visible.sync="historicalNotesDlgVisible" width="50%" :close-on-click-modal="false" :modal-append-to-body="false" :before-close="handleClose">
+      <div>
+        <p class="title">添加备注</p>
+        <el-input type="textarea" :rows="2" placeholder="请输入备注内容" v-model="textarea"> </el-input>
+        <el-button style="margin: 20px 0" type="primary" @click="addHistoricalNotes">保存</el-button>
+      </div>
+      <div>
+        <el-table :data="tableData" style="width: 100%; margin-bottom: 20px" border height="400">
+          <el-table-column align="center" prop="Content" label="记录内容" width="180"> </el-table-column>
+          <el-table-column align="center" prop="RemarkType" label="备注类型"> </el-table-column>
+          <el-table-column align="center" prop="SysAdminName" label="创建人"> </el-table-column>
+          <el-table-column align="center" prop="CreateTime" label="创建时间" width="200"> </el-table-column>
+        </el-table>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { dataMainInterface } from "@/api/api.js";
+
+export default {
+  name: "",
+  props: {
+    historicalNotesDlgVisible: {
+      type: Boolean,
+      default: false,
+    },
+    CompanyId: {
+      type: Number,
+      default: 0,
+    },
+  },
+  data() {
+    return {
+      tableData: [],
+      textarea: "",
+      dialogVisible: true,
+    };
+  },
+  watch: {
+    historicalNotesDlgVisible: {
+      handler(newVal) {
+        if (newVal) {
+          this.getDataList();
+        }
+      },
+    },
+  },
+  methods: {
+    // 获取列表
+    async getDataList() {
+      const res = await dataMainInterface.getRaiServeRemarkList({
+        CompanyId: this.CompanyId,
+      });
+      if (res.Ret === 200) {
+        this.tableData = res.Data.List || [];
+      }
+    },
+    // 新增历史留言
+    async addHistoricalNotes() {
+      const res = await dataMainInterface.getRaiServeRemarkAdd({
+        CompanyId: this.CompanyId,
+        Content: this.textarea,
+      });
+      if (res.Ret === 200) {
+        this.textarea = "";
+        this.$message.success("新增成功");
+        this.getDataList();
+      }
+    },
+    // 关闭弹框
+    handleClose() {
+      this.$emit("update:historicalNotesDlgVisible", false);
+      this.$emit("update:CompanyId", 0);
+    },
+  },
+};
+</script>
+<style scoped lang="scss">
+.container-historical-notes-dlg {
+  .title {
+    font-weight: 600;
+    margin-bottom: 10px;
+  }
+}
+</style>

+ 14 - 3
src/views/custom_manage/customList/customDetail.vue

@@ -138,6 +138,7 @@
 				</div>
 				<div style="flex-shrink: 0;">
 					<div style="display:flex;justify-content:flex-end;align-items: center;gap:0 20px;margin:0 0 30px;">
+						<span  v-if="RoleType == 'admin' || RoleType == '权益'" style="color:#409EFF;cursor:pointer;font-size: 14px;margin-right: 20px;" @click="historicalNotesClickHandler">历史备注</span>
 						<span style="color:#409EFF;cursor:pointer;font-size: 14px;margin-right: 20px;" v-if="isBtnShow.BtnHistoryList&&dealList.length" @click="previewHistory">历史签约</span>
 						<el-button type="primary" style="width:100px;" @click="editHandle" v-if="isBtnShow.BtnEdit">编辑</el-button>
 						<el-button type="danger" plain style="width:100px;" @click="delHandle" v-if="isBtnShow.BtnDelete">删除</el-button>
@@ -714,6 +715,7 @@
 			:dealList="dealList"
 			@close="isPreview=false"
 		/>
+		<HistoricalNotesDlg :historicalNotesDlgVisible.sync="historicalNotesDlgVisible" :CompanyId.sync="historicalNotesId"/>
 	</div>	
 </template>
 
@@ -732,10 +734,11 @@ import ExportData from '../compontents/exportData.vue'
 import ProductReadInfo from '../compontents/ProductReadInfo.vue'
 import DeductDetailDlg from './components/deductDetailDlg.vue'
 import HistoryContract from '../compontents/historyContract.vue'
-import { async } from '@antv/x6/lib/registry/marker/async'
+
+import HistoricalNotesDlg from "@/components/historicalNotesDlg.vue";
 export default {
 	name:'',
-	components: { Ctimeline, Contactdia, Readia, ElImageViewer, CpessionTable, pdf, chartAuthDialog, ExportData, CpessionTableEquity, ProductReadInfo, DeductDetailDlg, HistoryContract },
+	components: { Ctimeline, Contactdia, Readia, ElImageViewer, CpessionTable, pdf, chartAuthDialog, ExportData, CpessionTableEquity, ProductReadInfo, DeductDetailDlg, HistoryContract, HistoricalNotesDlg },
 	computed:{
 		Role() {
 			let role = localStorage.getItem('Role') || '';
@@ -863,6 +866,9 @@ export default {
 			isShowResearchNumber:false,// 研选服务点数明细 弹框
 			isShowDlgType:'',
 			isUserYanXuanButtonShow:false,//是否显示研选的按钮以及表格
+
+			historicalNotesDlgVisible:false,//历史备注的弹框
+			historicalNotesId: 0,
 		};
 	},
 	methods: {
@@ -1678,7 +1684,12 @@ export default {
 		if(row.NotRead && row.IsFollow==1){
 			return "not-read-seven-days"
 		}
-	}
+	},
+	// 点击了历史留言
+    historicalNotesClickHandler() {
+      this.historicalNotesDlgVisible = true;
+	  this.historicalNotesId = Number(this.companyId);
+    },
 	},
 	mounted() {
 		this.getDetail();

+ 19 - 2
src/views/custom_manage/customList/customList.vue

@@ -152,6 +152,7 @@
 						<template slot-scope="scope"
 						:class="{'isShared':scope.row.IsShared}"
 						> 
+						  <el-tooltip effect="dark" placement="top-start" :disabled="!(RoleType === '权益' && scope.row.IsUserMaker)" content="过去4周,kp均未覆盖服务">
 							<span 
 							v-if="scope.row.IsSuspend ===1 || scope.row.Status=='潜在'"
 							@click="goDetail(scope.row)"
@@ -163,6 +164,7 @@
 							<span v-else style="color:#409EFF;cursor:pointer;" @click="goDetail(scope.row)" class="customName"
 							:class="{'isShared':scope.row.IsShared,'color-red':act_status==='正式'&&scope.row.Status.includes('正式')&&scope.row.WeekViewActive===0}"
 							>{{scope.row.CompanyName}}</span>
+						  </el-tooltip>
 							<img width="15" src="../../../assets/img/icons/remark.png" alt="" v-if="scope.row.RenewalReason||(scope.row.Status==='冻结'&&scope.row.FreezeReason)">
 							<el-tooltip content="此客户存在长期且反复申请试用,但从未签约的情况,请谨慎领取" placement="top" :open-delay="500" 
 							v-if="RaiSellerRole && scope.row.IsScrounge == 1">
@@ -752,6 +754,8 @@
 				
 			</div>
 		</el-dialog>
+    <historical-notes-dlg :historicalNotesDlgVisible.sync="historicalNotesDlgVisible" :CompanyId.sync="historicalNotesId" />
+	
 	</div>
 </template>
 
@@ -772,12 +776,14 @@ import permissionView from './components/permissionView.vue'
 import mixin from './mixins/customlistMixin';
 import TotalDayDialog from '../compontents/TotalDayDialog.vue'
 import ShareListDialog from './components/shareListDialog.vue'
+
+import HistoricalNotesDlg from "@/components/historicalNotesDlg.vue";
 export default {
 	name:'',
 	mixins: [ mixin ],
 	components: {Capplydia,Contactdia,Cauthlist,CompleteInfo,ContractInfo, AccumulativeFrequencyDlg, 
 		ModifyToDoDialog, CheckToDoDialog,HistoryToDoDialog,TotalDayDialog,permissionView,
-ShareListDialog},
+ShareListDialog, HistoricalNotesDlg},
 	computed:{
 		Role() {
 			let role = localStorage.getItem('Role') || '';
@@ -1044,7 +1050,8 @@ ShareListDialog},
 				BtnCancelShare:'取消共享',
 				BtnServiceRecord:'沟通记录',
 				BtnClose:'关闭',
-				BtnLoss:'转流失'
+				BtnLoss:'转流失',
+				BtnRemarkViewHistory:'历史备注'
 			},	// 按钮命令列表
 			lookRemarkTitle:'',//查看备注标题
 			lookRemarkList:[],//查看备注列表
@@ -1095,6 +1102,9 @@ ShareListDialog},
 			isFixed:false,
 			modifySales:0,//用于重新渲染选择销售级联选择窗
 			AddCompanyBtn:false,//控制新增客户按钮是否显示
+
+			historicalNotesDlgVisible: false, //历史备注的弹框
+			historicalNotesId: 0,
 		};
 	},
 	watch: {
@@ -1605,6 +1615,8 @@ ShareListDialog},
 				this.openCloseReasonDialog(query.data)
 			}else if(query.type=='转流失'){
 				this.turnLose(query.data)
+			}else if(query.type=='历史备注'){
+				this.historicalNotesClickHandler(query.data)
 			}
 
 		},
@@ -2259,6 +2271,11 @@ ShareListDialog},
 			this.act_status = '试用'
 			this.getTableData();
 		},
+		// 点击了历史留言
+		historicalNotesClickHandler(item) {
+		this.historicalNotesDlgVisible = true;
+		this.historicalNotesId = item.CompanyId;
+		},
 	},
 	created() {
 		/* 除admin账号 客户类型默认 */

+ 19 - 13
src/views/custom_manage/customList/customShareList.vue

@@ -78,18 +78,20 @@
 					min-width="7.14%"
 					>
 						<template slot-scope="scope"> 
-							<span 
-							v-if="scope.row.IsSuspend ===1 || scope.row.Status=='潜在'"
-							@click="goDetail(scope.row)"
-							class="mouse-enter"
-              :class="{'color-red':scope.row.Status.includes('正式')&&scope.row.WeekViewActive===0}"
-							:style="scope.row.Status=='潜在'?'':'color:#bbb;cursor:pointer'">
-								{{scope.row.CompanyName}}
-							</span>
-							<span v-else style="color:#409EFF;cursor:pointer;" @click="goDetail(scope.row)" class="customName"
-							:class="{'isShared':scope.row.IsShared,'color-red':scope.row.Status.includes('正式')&&scope.row.WeekViewActive===0}"
-							>{{scope.row.CompanyName}}</span>
-							<img width="15" src="../../../assets/img/icons/remark.png" alt="" v-if="scope.row.RenewalReason||(scope.row.Status==='冻结'&&scope.row.FreezeReason)">
+							<el-tooltip effect="dark" placement="top-start" :disabled="!(isRoleType === '权益' && scope.row.IsUserMaker)" content="过去4周,kp均未覆盖服务">
+								<span 
+								v-if="scope.row.IsSuspend ===1 || scope.row.Status=='潜在'"
+								@click="goDetail(scope.row)"
+								class="mouse-enter"
+								:class="{'color-red':scope.row.Status.includes('正式')&&scope.row.WeekViewActive===0}"
+								:style="scope.row.Status=='潜在'?'':'color:#bbb;cursor:pointer'">
+									{{scope.row.CompanyName}}
+								</span>
+								<span v-else style="color:#409EFF;cursor:pointer;" @click="goDetail(scope.row)" class="customName"
+								:class="{'isShared':scope.row.IsShared,'color-red':scope.row.Status.includes('正式')&&scope.row.WeekViewActive===0}">{{scope.row.CompanyName}}
+								</span>
+							</el-tooltip>
+							 <img width="15" src="../../../assets/img/icons/remark.png" alt="" v-if="scope.row.RenewalReason||(scope.row.Status==='冻结'&&scope.rowFreezeReason)">
 						</template>
 					</el-table-column>
 					<el-table-column
@@ -522,7 +524,11 @@ export default {
 		},
 		roleType(){
 			return localStorage.getItem('Role') || ''
-		}
+		},
+		// crm 15.9.1 区分权益FICC的展示
+		isRoleType(){
+			return localStorage.getItem('RoleType') || ''
+		},
 	},
 	data () {
 

+ 26 - 7
src/views/dataReport_manage/equityCustomStatistics.vue

@@ -97,7 +97,7 @@
           </div>
         </div>
       </div>
-      <div class="tabs-box" v-if="filterObj.data_type == '续约客户'">
+      <div class="tabs-box">
         <div class="tabs-box-confirm">
           <div style="margin-bottom: 0px" class="tabs-box-confirm" v-for="(item, index) in packageTypeList" :key="item">
             <div :class="['confirm-box-li', PackageDifference == item && 'active']" @click="notPackageDifferenceChange(item)">{{ item }}</div>
@@ -133,9 +133,10 @@
                 <span v-if="scope.row[item.key] || scope.row.RenewalTodo" style="color: #409eff; cursor: pointer" @click="renewalReasonMore(scope.row)">&emsp;更多>></span>
               </span>
               <div v-else-if="item.key == 'CompanyName'" style="padding: 4px 0">
-                <span :style="item.textsty" @click="jumpHandle(scope.row, item)">
-                  {{ scope.row[item.key] }}
-                </span>
+                <el-tooltip effect="dark" placement="top-start" content="过去4周,kp均未覆盖服务" v-if="scope.row.IsUserMaker">
+                  <span class="deletesty" @click="jumpHandle(scope.row, item)">{{ scope.row[item.key] }}</span>
+                </el-tooltip>
+                <span v-else class="editsty" @click="jumpHandle(scope.row, item)">{{ scope.row[item.key] }}</span>
                 <div class="package-difference" v-if="scope.row.PackageDifference && filterObj.data_type == '续约客户'" @click="previousDetailHadler(scope.row)">
                   {{ scope.row.PackageDifference }}
                 </div>
@@ -170,12 +171,15 @@
             </template>
           </el-table-column>
         </template>
-        <el-table-column label="操作" width="180px" align="center" v-if="canConfirmNotRenewed && !isNotRenewedConfirm && filterObj.data_type == '未续约客户'">
-          <template slot-scope="scope">
+        <el-table-column label="操作" width="180px" align="center">
+          <template slot-scope="scope" v-if="canConfirmNotRenewed && !isNotRenewedConfirm && filterObj.data_type == '未续约客户'">
             <div class="operation-row">
               <span class="operation-button" @click="confirmedNoRenewalFun(scope.row)">确认不续约</span>
             </div>
           </template>
+          <template slot-scope="{ row }" v-if="isRoleType == 'admin' || isRoleType == '权益'">
+            <span @click="historicalNotesClickHandler(row)" class="editsty">历史备注</span>
+          </template>
         </el-table-column>
         <div slot="empty" style="line-height: 44px; margin: 60px 0; color: #999">
           <img src="~@/assets/img/cus_m/nodata.png" alt="" style="display: block; width: 160px; height: 128px; margin: auto" />
@@ -203,6 +207,7 @@
     />
     <previous-detail :previousDetailDlg.sync="previousDetailDlg" :rowInfo="rowInfo" />
     <RenewalRateDetail :showRenewalRateDetailDlg.sync="showRenewalRateDetailDlg" :renewalRateDetailForm.sync="renewalRateDetailForm" :noRenewalReasonListSon="noRenewalReasonList" />
+    <historical-notes-dlg :historicalNotesDlgVisible.sync="historicalNotesDlgVisible" :CompanyId.sync="historicalNotesId" />
   </div>
 </template>
 
@@ -216,11 +221,13 @@ import viewRemark from "./components/noRenewalReasonDia/viewRemark.vue";
 import confirmedNoRenewal from "./components/noRenewalReasonDia/confirmedNoRenewal.vue";
 import PreviousDetail from "./components/previousDetail.vue";
 import RenewalRateDetail from "./components/renewalRateDetail.vue";
+import HistoricalNotesDlg from "@/components/historicalNotesDlg.vue";
+
 var moment = require("moment");
 moment().format();
 export default {
   name: "",
-  components: { mPage, renewalListDia, addRemark, viewRemark, confirmedNoRenewal, PreviousDetail, RenewalRateDetail },
+  components: { mPage, renewalListDia, addRemark, viewRemark, confirmedNoRenewal, PreviousDetail, RenewalRateDetail, HistoricalNotesDlg },
   computed: {
     exportExcel() {
       let baseUrl = process.env.API_ROOT + "/statistic_report/merge_company_list";
@@ -260,6 +267,10 @@ export default {
     canConfirmNotRenewed() {
       return ["admin", "rai_admin"].includes(this.Role);
     },
+    // crm 15.9.1 区分权益FICC的展示
+    isRoleType() {
+      return localStorage.getItem("RoleType") || "";
+    },
   },
   data() {
     return {
@@ -343,6 +354,9 @@ export default {
       showRenewalRateDetailDlg: false,
       renewalRateDetailForm: {},
       RenewalDataForm: {},
+
+      historicalNotesDlgVisible: false, //历史备注的弹框
+      historicalNotesId: 0,
     };
   },
   /* 页面跳转前记录参数 */
@@ -651,6 +665,11 @@ export default {
       };
       return params;
     },
+    // 点击了历史留言
+    historicalNotesClickHandler(item) {
+      this.historicalNotesDlgVisible = true;
+      this.historicalNotesId = item.CompanyId;
+    },
   },
   created() {},
   mounted() {

+ 23 - 2
src/views/dataReport_manage/equityServiceStatistics.vue

@@ -60,7 +60,7 @@
       <el-table :data="tableData" border style="width: 100%" @sort-change="sortChangeHandle">
         <el-table-column align="center" prop="CompanyName" label="客户名称" width="180">
           <template slot-scope="{ row }">
-            <el-tooltip effect="dark" placement="top-start" content="过去4周,kp均未覆盖服务" v-if="row.IsRed">
+            <el-tooltip effect="dark" placement="top-start" content="过去4周,kp均未覆盖服务" v-if="row.IsUserMaker">
               <span class="deletesty" @click="goDetail(row)">{{ row.CompanyName }}</span>
             </el-tooltip>
             <span v-else class="editsty" @click="goDetail(row)">{{ row.CompanyName }}</span>
@@ -126,6 +126,11 @@
             <span @click="billClickHandler(row, 4)" class="editsty">{{ row.ThreeWeekAmount }}</span>
           </template>
         </el-table-column>
+        <el-table-column align="center" label="操作" width="80" v-if="isRoleType == 'admin' || isRoleType == '权益'">
+          <template slot-scope="{ row }">
+            <span @click="historicalNotesClickHandler(row)" class="editsty">历史备注</span>
+          </template>
+        </el-table-column>
       </el-table>
       <!-- 页数选择器 -->
       <m-page style="margin: 20px 0" :page_no="page_no" :pageSize="pageSize" :total="total" @handleCurrentChange="pageChange" />
@@ -143,6 +148,7 @@
         WhatWeek: this.whatWeek,
       }"
     />
+    <historical-notes-dlg :historicalNotesDlgVisible.sync="historicalNotesDlgVisible" :CompanyId.sync="historicalNotesId" />
   </div>
 </template>
 
@@ -151,10 +157,11 @@ import { dataMainInterface, customInterence } from "@/api/api.js";
 import CoverageRateDlg from "./components/CoverageRateDlg.vue";
 import ServiceDetailsDlg from "./components/ServiceDetailsDlg.vue";
 import mPage from "@/components/mPage.vue";
+import HistoricalNotesDlg from "@/components/historicalNotesDlg.vue";
 
 export default {
   name: "",
-  components: { CoverageRateDlg, ServiceDetailsDlg, mPage },
+  components: { CoverageRateDlg, ServiceDetailsDlg, mPage, HistoricalNotesDlg },
   props: {},
   data() {
     return {
@@ -191,6 +198,9 @@ export default {
       whatWeek: "",
       customSellerList: [],
       searchVal: "", //客户名称
+
+      historicalNotesDlgVisible: false, //历史备注的弹框
+      historicalNotesId: 0,
     };
   },
   computed: {
@@ -228,6 +238,12 @@ export default {
       }
       return `${baseUrl}?${token}${paramStr}`;
     },
+    // crm 15.9.1 区分权益FICC的展示
+    isRoleType() {
+      console.log(localStorage.getItem("RoleType"), "=============");
+
+      return localStorage.getItem("RoleType") || "";
+    },
   },
   watch: {},
   created() {},
@@ -379,6 +395,11 @@ export default {
         console.log(this.customSellerList, res);
       }
     },
+    // 点击了历史留言
+    historicalNotesClickHandler(item) {
+      this.historicalNotesDlgVisible = true;
+      this.historicalNotesId = item.CompanyId;
+    },
   },
 };
 </script>