Prechádzať zdrojové kódy

Merge branch 'CYGX_10.9'

hbchen-home 1 rok pred
rodič
commit
ec9bea5112

+ 2 - 1
config/dev.env.js

@@ -10,5 +10,6 @@ module.exports = merge(prodEnv, {
   CHART_LINK:'"https://charttest.hzinsights.com/chartshow"',
   HR_MANAGEMENT_SYSTEM:'"http://8.136.199.33:8391/login"',
   FINANCIAL_MANAGEMENT_SYSTEM:'"http://8.136.199.33:8618/login"',
-  ETA_SYSTEM:'"http://8.136.199.33:7778/temppage"'
+  ETA_SYSTEM:'"http://8.136.199.33:7778/temppage"',
+  CYGX_WEB:'"https://clpttest.hzinsights.com"' // 查研观向网页版首页地址
 });

+ 2 - 1
config/prod.env.js

@@ -6,5 +6,6 @@ module.exports = {
 	CHART_LINK:'"https://chartlib.hzinsights.com/chartshow"',
 	HR_MANAGEMENT_SYSTEM:'"https://hr.hzinsights.com/login"',
 	FINANCIAL_MANAGEMENT_SYSTEM:'"https://fms.hzinsights.com/login"',
-	ETA_SYSTEM:'"https://eta.hzinsights.com/temppage"'
+	ETA_SYSTEM:'"https://eta.hzinsights.com/temppage"',
+	CYGX_WEB:'"https://web.hzinsights.com"' // 查研观向网页版首页地址
 }

+ 2 - 1
config/prod.test.env.js

@@ -8,5 +8,6 @@ module.exports = {
 	CHART_LINK:'"https://charttest.hzinsights.com/chartshow"',
 	HR_MANAGEMENT_SYSTEM:'"http://8.136.199.33:8391/login"',
   FINANCIAL_MANAGEMENT_SYSTEM:'"http://8.136.199.33:8618/login"',
-  ETA_SYSTEM:'"http://8.136.199.33:7778/temppage"'
+  ETA_SYSTEM:'"http://8.136.199.33:7778/temppage"',
+	CYGX_WEB:'"https://clpttest.hzinsights.com"' // 查研观向网页版首页地址
 }

BIN
src/assets/img/icons/warning_triangle_yellow.png


+ 113 - 0
src/views/custom_manage/contacts/compontents/contactsColums.js

@@ -218,6 +218,38 @@ export const tableColums = (type) => {
           widthsty: 300,
         },
       ]
+    : type === 10
+    ? [
+        {
+          label: "标签名称",
+          key: "TagName",
+        },
+        {
+          label: "报告系列",
+          key: "ArticleTypes",
+          // widthsty: 200,
+        },
+        {
+          label: "活动类型",
+          key: "ActivityTypes",
+          // widthsty: 300,
+        },
+        {
+          label: "相关产业",
+          key: "Industries",
+          // widthsty: 300,
+        },
+        {
+          label: "相关标的",
+          key: "SubjectNames",
+          // widthsty: 300,
+        },
+        {
+          label: "点击时间",
+          key: "CreateTime",
+          // widthsty: 300,
+        },
+    ]      
     : [];
 };
 
@@ -618,6 +650,44 @@ export const organizationTableColums = (type) => {
           key: "CreateTime",
         },
       ]
+    : type === 10
+    ? [
+        {
+          label: "姓名",
+          key: "RealName",
+          // widthsty: 130,
+        },
+        {
+          label: "手机号",
+          key: "Mobile",
+        },
+        {
+          label: "标签名称",
+          key: "TagName",
+          // widthsty: 500,
+        },
+        {
+          label: "报告系列",
+          key: "ArticleTypes",
+        },
+        {
+          label: "活动类型",
+          key: "ActivityTypes",
+        },        
+        {
+          label: "相关产业",
+          key: "SubjectNames",
+          // widthsty: 500,
+        },
+        {
+          label: "相关标的",
+          key: "SubjectNames",
+        },
+        {
+          label: "点击时间",
+          key: "CreateTime",
+        },
+      ]
     : [];
 };
 
@@ -986,5 +1056,48 @@ export const wholeOrganizationTableColums = (type) => {
           key: "CreateTime",
         },
       ]
+    : type === 10
+    ? [
+        {
+          label: "公司名",
+          key: "CompanyName",
+          // widthsty: 200,
+        },
+        {
+          label: "姓名",
+          key: "RealName",
+          // widthsty: 100,
+        },
+        {
+          label: "手机号",
+          key: "Mobile",
+          // widthsty: 100,
+        },
+        {
+          label: "标签名称",
+          key: "TagName",
+        },
+        {
+          label: "报告系列",
+          key: "ArticleTypes",
+          // widthsty: 500,
+        },
+        {
+          label: "活动类型",
+          key: "ActivityTypes",
+        },
+        {
+          label: "相关产业",
+          key: "SubjectNames",
+        },
+        {
+          label: "相关标的",
+          key: "SubjectNames",
+        },
+        {
+          label: "点击时间",
+          key: "CreateTime",
+        },
+      ]
     : [];
 };

+ 10 - 1
src/views/custom_manage/customList/customDetail.vue

@@ -7,7 +7,13 @@
 					<ul class="detail_item" v-if="basicform">
 						<li style="width:40%">
 							<label class="label">客户名称</label>
-							<span class="con">{{basicform.CompanyName}}</span>
+							<span class="con">
+								<span style="margin-right: 10px;">{{basicform.CompanyName}} </span>
+								<el-tooltip content="此客户存在长期且反复申请试用,但从未签约的情况,请谨慎领取" placement="top" :open-delay="500" 
+								v-if="RaiSellerRole && basicform.IsScrounge==1" >
+									<img width="16" style="cursor: pointer;vertical-align: text-top;" src="../../../assets/img/icons/warning_triangle_yellow.png" />
+								</el-tooltip>
+							</span>
 						</li>
 
 						<li style="width:26%">
@@ -665,6 +671,9 @@ export default {
 			let type = localStorage.getItem('RoleType') || '';
 			return type;
 		},
+		RaiSellerRole(){
+			return ['rai_seller','rai_admin','admin'].includes(this.Role)
+		},
 	},	
 	beforeRouteLeave(to, from, next)  {
 		from.matched[0].name='客户管理'

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

@@ -156,6 +156,10 @@
 							:class="{'isShared':scope.row.IsShared,'color-red':act_status==='正式'&&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 content="此客户存在长期且反复申请试用,但从未签约的情况,请谨慎领取" placement="top" :open-delay="500" 
+							v-if="RaiSellerRole && scope.row.IsScrounge == 1">
+								<img width="16" style="cursor: pointer;" src="../../../assets/img/icons/warning_triangle_yellow.png" />
+							</el-tooltip>
 						</template>
 					</el-table-column>
 					<el-table-column label="To-Do" prop="todo" align="center" min-width="5.14%" sortable="custom">
@@ -766,6 +770,9 @@ ShareListDialog},
 			let type = localStorage.getItem('RoleType') || '';
 			return type;
 		},
+		RaiSellerRole(){
+			return ['rai_seller','rai_admin','admin'].includes(this.Role)
+		},
 		SellerAdminId() {
 			let type = localStorage.getItem('AdminId') || '';
 			return type;
@@ -1551,9 +1558,25 @@ ShareListDialog},
 			}else if(query.type=='申请解冻'){
 				this.applyPick(query.data,'申请解冻')
 			}else if(query.type=='申请领取'){
-				this.applyPick(query.data,'申请领取')
+				if(this.RaiSellerRole && query.data.IsScrounge == 1){
+					this.$confirm('此客户存在长期且反复申请试用,但从未签约的情况,确定要领取吗?','申请领取',{
+						type:'warning'
+					}).then(() => {
+						this.applyPick(query.data,'申请领取')
+					}).catch(() => {});
+				}else{
+					this.applyPick(query.data,'申请领取')
+				}
 			}else if(query.type=='领取客户'){
-				this.pickHandle(query.data)
+				if(this.RaiSellerRole && query.data.IsScrounge == 1){
+					this.$confirm('此客户存在长期且反复申请试用,但从未签约的情况,确定要领取吗?','领取客户',{
+						type:'warning'
+					}).then(() => {
+						this.pickHandle(query.data)
+					}).catch(() => {})
+				}else{
+					this.pickHandle(query.data)
+				}
 			}else if(query.type=='备注'){
 				this.lookRemarkHandle(query.data)
 			}else if(query.type=='设置共享' || query.type=='取消共享'){
@@ -1635,6 +1658,16 @@ ShareListDialog},
 			let flag=await this.getCustomerDetail(item.CompanyId)
 			if(flag) return
 
+			if(this.RaiSellerRole && item.IsScrounge == 1){
+				// 已经弹过二次确认弹窗 避免再一次的弹窗
+				this.isPickLoss = true;
+				this.regionType = item.RegionType;
+				this.addCompanyId = item.CompanyId;
+				this.diaform.telCode='86'
+				this.isAddContact = true;
+				return 
+			}
+
 			this.$confirm('是否确认领取该客户?','提示',{
 				type:'warning'
 			}).then(() => {

+ 42 - 3
src/views/custom_manage/customSearch.vue

@@ -29,6 +29,10 @@
 							{{scope.row.CompanyName}}
 						</span>
 						<span v-else :class="scope.row.BtnItem.BtnView?'customName':''" :style="{color:scope.row.BtnItem.BtnView?'#409EFF':'#606266',cursor:scope.row.BtnItem.BtnView?'pointer':'text'}" @click="goDetail(scope.row)">{{scope.row.CompanyName}}</span>
+						<el-tooltip content="此客户存在长期且反复申请试用,但从未签约的情况,请谨慎领取" placement="top" :open-delay="500" 
+						v-if="RaiSellerRole && scope.row.IsScrounge == 1">
+							<img width="16" style="cursor: pointer;" src="../../assets/img/icons/warning_triangle_yellow.png" />
+						</el-tooltip>
 					</template>
 				</el-table-column>
 				<el-table-column
@@ -478,6 +482,13 @@ export default {
 	name:'',
 	components: {Capplydia,Contactdia,Cauthlist,CompleteInfo,ContractInfo,mPage, PermissionDetail},
 	computed:{
+		Role() {
+			let role = localStorage.getItem('Role') || '';
+			return role;
+		},
+		RaiSellerRole(){
+			return ['rai_seller','rai_admin','admin'].includes(this.Role)
+		},
 		RoleType() {
 			let type = localStorage.getItem('RoleType') || '';
 			return type;
@@ -784,8 +795,18 @@ export default {
 		itemclickHandle(query) {
 			if(query.type == '申请转正') {
 				this.applyTurn(query.data)
-			}else if(query.type == '申请延期' || query.type == '申请解冻' || query.type == '申请领取') {
+			}else if(query.type == '申请延期' || query.type == '申请解冻') {
 				this.applyHandle(query.type,query.data)
+			}else if(query.type == '申请领取') {
+				if(this.RaiSellerRole && query.data.IsScrounge == 1){
+					this.$confirm('此客户存在长期且反复申请试用,但从未签约的情况,确定要领取吗?','申请领取',{
+						type:'warning'
+					}).then(() => {
+						this.applyHandle('申请领取',query.data)
+					}).catch(() => {});
+				}else{
+					this.applyHandle('申请领取',query.data)
+				}
 			}else if(query.type == '修改销售') {
 				this.updateSale(query.data);
 			}else if(query.type == '启用' || query.type == '暂停') {
@@ -808,7 +829,15 @@ export default {
 				this.addAgreement(query.data)
 				this.addAgreement(query.data)
 			}else if(query.type=='领取客户'){
-				this.receiveHandle(query.data)
+				if(this.RaiSellerRole && query.data.IsScrounge == 1){
+					this.$confirm('此客户存在长期且反复申请试用,但从未签约的情况,确定要领取吗?','领取客户',{
+						type:'warning'
+					}).then(() => {
+						this.receiveHandle(query.data)
+					}).catch(() => {})
+				}else{
+					this.receiveHandle(query.data)
+				}
 			}else if(query.type=='备注'){
 				this.lookRemarkHandle(query.data)
 			}else if(query.type=='研选详情'){
@@ -1076,6 +1105,16 @@ export default {
 			let flag=await this.getCustomerDetail(item.CompanyId,0)
 			if(flag) return
 
+			if(this.RaiSellerRole && item.IsScrounge == 1){
+				// 已经弹过二次确认弹窗 避免再一次的弹窗
+				this.isPickLoss = true;
+				this.regionType = item.RegionType;
+				this.addCompanyId = item.CompanyId;
+				this.diaform.telCode='86'
+				this.isAddContact = true;
+				return 
+			}
+			
 			this.$confirm('是否确认领取该客户?','提示',{
 				type:'warning'
 			}).then(() => {
@@ -1084,8 +1123,8 @@ export default {
 					this.isPickLoss = true;
 					this.addCompanyId = item.CompanyId;
 					this.regionType=item.RegionType
+					this.diaform.telCode='86'
 					this.isAddContact = true;
-
 				// }else {
 				// 	customInterence.Pick({
 				// 		CompanyId:item.CompanyId,

+ 1 - 0
src/views/rai_manage/activityManage/components/addActivity.vue

@@ -613,6 +613,7 @@ export default {
         Body: this.content,
         PermissionName: this.optionFormregion,
         CustomerTypeIds: this.checkedCitiesTwo,
+        IsAllCustomerType:this.checkAll?1:0,
         LimitPeopleNum: Number(this.astrict) || 0,
         IndustrialManagementIdS: arr.length ? arr.join(",") : "",
         IndustrialSubjectIdS: this.markValue.length ? this.markValue.join(",") : "",

+ 59 - 9
src/views/rai_manage/components/addChoiceness.vue

@@ -50,16 +50,28 @@
             </div>
           </el-form-item>
         </el-form>
-        <!-- 产业/标的 模块 -->
-        <div class="content-module">
-          <div class="content-industry" v-for="(item, index) in industryList" :key="item.ChartPermissionId">
-            <div class="content-name" :class="industryIndex == index ? 'active' : ''" @click="industryBtn(item, index)">{{ item.ChartPermissionName }}</div>
-          </div>
+          <!-- 产业/标的 模块 -->
+          <div class="content-module">
+          <draggable
+          v-model="industryList"
+          animation="300"
+          @update="sortChange">
+            <div class="content-industry" v-for="(item, index) in industryList" :key="item.ChartPermissionId">
+              <div class="content-name" :class="industryIndex == index ? 'active' : ''" @click="industryBtn(item, index)">{{ item.ChartPermissionName }}</div>
+            </div>
+          </draggable>
           <div v-for="(item, index) in industryList" :key="item.ChartPermissionId">
             <RichText v-show="industryIndex == index" :ref="'logic' + index" :spareId="'logictest' + index" :isText="contentTextLogic" />
           </div>
-          <div class="classification">
-            <div v-for="(val, num) in industryListItem" :key="val.IndustrialSubjectId" class="industrial" @click="ificationIndustrialBtn(val, num)" :class="num == ificationIndustrial ? 'pitch' : ''">
+          <draggable
+          :list="industryListItem"
+          animation="300"
+          class="classification"
+          filter=".addIndustrial"
+          :move="onMove"
+          @update="ificationSortChange">
+            <div v-for="(val, num) in industryListItem" :key="val.IndustrialSubjectId" class="industrial" 
+            @click="ificationIndustrialBtn(val, num)" :class="num == ificationIndustrial ? 'pitch' : ''">
               <span style="margin-right: 19px">{{ val.IndustrialSubjectName }}</span>
               <span v-if="num == ificationIndustrial">
                 <img src="~@/assets/img/icons/edit1.png" style="width: 12px; height: 12px; marginright: 10px" @click="editText(val, num)" />
@@ -70,7 +82,7 @@
               <i class="el-icon-plus"></i>
               <span>添加标的</span>
             </div>
-          </div>
+          </draggable>
           <template v-for="(val, num) in industryListItem">
             <div class="industrial-is-new" :key="val.IndustrialSubjectId" v-if="num == ificationIndustrial">
               <el-checkbox v-model="val.IsNew" :true-label="1" :false-label="0">显示new标签</el-checkbox>
@@ -125,9 +137,11 @@
 <script>
 import RichText from "./richText.vue";
 import { raiInterface } from "@/api/api.js";
+import draggable from 'vuedraggable';
+
 export default {
   name: "",
-  components: { RichText },
+  components: { RichText , draggable},
   props: {},
   data() {
     return {
@@ -558,6 +572,42 @@ export default {
       this.industryListItem[this.ificationIndustrial].CompanyLabel.splice(index, 1);
     },
   },
+  // 拖拽排序更新
+  sortChange({oldIndex,newIndex}){
+    this.industryIndex=this.sortChangeFun(this.industryIndex,oldIndex,newIndex)
+  },
+  //标的拖拽排序更新
+  ificationSortChange({oldIndex,newIndex}){
+    this.ificationIndustrial=this.sortChangeFun(this.ificationIndustrial,oldIndex,newIndex)
+  },
+  // 排序更新后的逻辑
+  sortChangeFun(currentIndex,oldIndex,newIndex){
+    console.log({currentIndex,oldIndex,newIndex});
+    let bigger,smaller
+    if(oldIndex>newIndex){
+      bigger=oldIndex
+      smaller=newIndex
+    }else{
+      bigger=newIndex
+      smaller=oldIndex
+    }
+    // 当前算中tab的排序 小于较小的 大于较大的 则不用做变动
+    if(currentIndex < smaller || currentIndex > bigger) return currentIndex
+    // 移动的是当前选中的
+    if(currentIndex == oldIndex) return newIndex
+    if(oldIndex>newIndex){
+      // 向左移 加加
+      currentIndex++
+    }else if(oldIndex<newIndex){
+      // 向右移 减减
+      currentIndex--
+    }
+    return currentIndex
+  },
+  onMove(e){
+    // 返回false表示不允许停靠
+    return !!e.relatedContext.element
+  },
 };
 </script>
 <style lang="scss">

+ 3 - 1
src/views/rai_manage/reportManage/appletsReport.vue

@@ -669,7 +669,9 @@ export default {
     },
     //文章详情
     lookDetail(item) {
-      let href = `https://vmp.hzinsights.com/v2/articles/${item.ArticleId}`;
+      // let href = `https://vmp.hzinsights.com/v2/articles/${item.ArticleId}`;
+      // window.open(href, "_blank");
+      let href = `${process.env.CYGX_WEB}/material/info/${item.ArticleId}`
       window.open(href, "_blank");
     },
     //筛选行业的清除事件

+ 8 - 8
src/views/rai_manage/reportManage/summaryManage.vue

@@ -30,7 +30,7 @@
       <el-table :data="dataList" style="width: 100%" border>
         <el-table-column key="title" align="center" label="报告标题" min-width="300">
           <template slot-scope="scope">
-            <span class="editsty" style="color: #409eff" @click="lookDetail(scope.row.ArticleIdMd5)">{{ scope.row.Title }}</span>
+            <span class="editsty" style="color: #409eff" @click="lookDetail(scope.row.ArticleId)">{{ scope.row.Title }}</span>
           </template>
         </el-table-column>
         <el-table-column key="category" prop="ArticleTypeName" align="center" label="报告类型" min-width="95"></el-table-column>
@@ -252,13 +252,13 @@ export default {
     },
     //文章详情
     lookDetail(id) {
-      let url =
-        process.env.NODE_ENV === "production"
-          ? "https://details.hzinsights.com/cygx/report"
-          : process.env.NODE_ENV === "test"
-          ? "http://xcxh5test.hzinsights.com/xcx_h5/cygx/report"
-          : "http://xcxh5test.hzinsights.com/xcx_h5/cygx/report";
-      let href = `${url}?id=${id}`;
+      // let url =
+      //   process.env.NODE_ENV === "production"
+      //     ? "https://details.hzinsights.com/cygx/report"
+      //     : process.env.NODE_ENV === "test"
+      //     ? "http://xcxh5test.hzinsights.com/xcx_h5/cygx/report"
+      //     : "http://xcxh5test.hzinsights.com/xcx_h5/cygx/report";
+      let href = `${process.env.CYGX_WEB}/material/info/${id}`
       window.open(href, "_blank");
     },
     //列表