瀏覽代碼

Merge branch 'ETA_1.1.7'

hbchen 1 年之前
父節點
當前提交
2a58f4ff89

+ 2 - 2
src/utils/buttonConfig.js

@@ -72,11 +72,11 @@ export const classifyBtn={
     classifyList_cnClassify_childMenu:'classifyList:cnClassify:childMenu',//表单项:子目录
 }
 /*
-*--------英文分类----------- 
+*--------英文分类-----------   ETA_1.1.7 不区分英文研报和线上路演 统一使用英文研报的标识
 */
 export const enClassifyBtn = {
     classifyList_enClassify:'classifyList:enClassify',//英文分类这个选项卡是否展示
-    /* -------------线上路演------------- */
+    /* -------------线上路演------------- */ 
     classifyList_enClassify_roadshow:'classifyList:enClassify:roadshow',//线上路演这个选项卡是否展示
     classifyList_enClassify_rsDel:'classifyList:enClassify:rsDel',//线上路演一二级分类删除
     classifyList_enClassify_rsAuthSetting:'classifyList:enClassify:rsAuthSetting',//线上路演二级分类权限设置

+ 106 - 88
src/views/classify_manage/classifyEnlist.vue

@@ -23,7 +23,7 @@
         </el-input>
         </div>
       </div>
-      <div class="tabs-box" :style="authTabsOpt.length>1?'':'border:none'"
+      <!-- <div class="tabs-box" :style="authTabsOpt.length>1?'':'border:none'"
         v-if="authTabsOpt.length">
         <span 
           v-for="item in authTabsOpt" 
@@ -31,10 +31,10 @@
           :class="item.val==aTab?'active':''"
           @click="handleTabChange(item)"
         >{{item.name}}</span>
-      </div>
+      </div> -->
 
+      <!-- v-if="authTabsOpt.length" -->
       <el-table
-        v-if="authTabsOpt.length"
         :data="tableData"
         v-loading="dataLoading"
         row-class-name="tableRowClassName"
@@ -42,7 +42,7 @@
         :default-expand-all="isexpand"
         row-key="Id"
         style="border: 1px solid #dcdfe6"
-        :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
+        :tree-props="{ children: 'Child', hasChildren: 'hasChildren' }"
       >
         <el-table-column
           v-for="item in tableColums"
@@ -54,21 +54,24 @@
           :align="item.align || 'left'"
           :default-expand-all="isexpand"
           row-key="Id"
-          :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
+          :tree-props="{ children: 'Child', hasChildren: 'hasChildren' }"
         >
           <template slot-scope="{ row }">
             <span v-if="item.prop === 'ClassifyOne'">{{
-              row.ischild ? "" : row.ClassifyName
+              row.level==1 ? row.ClassifyName : "" 
             }}</span>
             <span v-else-if="item.prop === 'ClassifyTwo'">{{
-              row.ischild ? row.ClassifyName : ""
+              row.level==2 ? row.ClassifyName : ""
+            }}</span>
+           <span v-else-if="item.prop === 'ClassifyThree'">{{
+              row.level==3 ? row.ClassifyName : ""
             }}</span>
 
             <div v-else-if="item.prop === 'handle'">
               <span 
                 
                 class="editsty"
-                v-if="row.ischild&&isAuthSetBtnShow" 
+                v-if="row.level==3&&isAuthSetBtnShow" 
                 @click="handleShowSetVariety(row)"
               >权限配置</span>
               <span class="editsty" v-if="isEditBtnShow"
@@ -107,7 +110,7 @@
           label-position="left"
           hide-required-asterisk
           label-width="80px">
-          <el-form-item prop="type" label="所属模块">
+          <!-- <el-form-item prop="type" label="所属模块">
             <el-select 
               v-model="classifyForm.type"
               placeholder="请选择所属模块"
@@ -119,7 +122,7 @@
             <el-option v-for="item in authTabsOpt" :key="item.val" :label="item.name" :value="item.val"/>
             </el-select>
 
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item prop="classify_name" label="分类名称">
             <el-input 
               type="text" 
@@ -130,7 +133,7 @@
             />
           </el-form-item>
           <el-form-item prop="parent_id" label="上级分类">
-            <el-select 
+            <!-- <el-select 
               v-model="classifyForm.parent_id"
               placeholder="请选择"
               size="small"
@@ -138,7 +141,9 @@
             >
               <el-option label="无" :value="0"/>
               <el-option v-for="item in classifyparentArr" :key="item.ClassifyName" :label="item.ClassifyName" :value="item.Id"/>
-            </el-select>
+            </el-select> -->
+            <el-cascader :options="classifyparentArr" v-model="classifyForm.parent_id" placeholder="请选择"
+            :props="{value:'Id',label:'ClassifyName',children:'Child',checkStrictly:true,emitPath:false}" style="min-width:400px;"></el-cascader>
           </el-form-item>
           <el-form-item label="后台排序" prop="sort">
             <el-input 
@@ -200,72 +205,71 @@ export default {
   computed:{
       //添加分类是否展示
       isAddClassifyBtnShow(){
-          if(this.aTab===0&&this.authTabsOpt.length){
+          // if(this.aTab===0&&this.authTabsOpt.length){
               return this.permissionBtn.checkPermissionBtn(
                   this.permissionBtn.enClassifyBtn.classifyList_enClassify_rpAddClassify
                 )
-          }
-          if(this.aTab===1&&this.authTabsOpt.length){
-            return this.permissionBtn.checkPermissionBtn(
-                  this.permissionBtn.enClassifyBtn.classifyList_enClassify_rsAddClassify
-                )
-          }
-        return false
+          // }
+          // if(this.aTab===1&&this.authTabsOpt.length){
+          //   return this.permissionBtn.checkPermissionBtn(
+          //         this.permissionBtn.enClassifyBtn.classifyList_enClassify_rsAddClassify
+          //       )
+          // }
       },
       //编辑是否展示
       isEditBtnShow(){
-        if(this.aTab===0){
+        // if(this.aTab===0){
                 return this.permissionBtn.checkPermissionBtn(
                     this.permissionBtn.enClassifyBtn.classifyList_enClassify_rpEdit
                 )
-            }else{
-            return this.permissionBtn.checkPermissionBtn(
-                    this.permissionBtn.enClassifyBtn.classifyList_enClassify_rsEdit
-                )
-            }
+            // }else{
+            // return this.permissionBtn.checkPermissionBtn(
+            //         this.permissionBtn.enClassifyBtn.classifyList_enClassify_rsEdit
+            //     )
+            // }
       },
       //删除是否展示
       isDeleteBtnShow(){
-        if(this.aTab===0){
+        // if(this.aTab===0){
                 return this.permissionBtn.checkPermissionBtn(
                     this.permissionBtn.enClassifyBtn.classifyList_enClassify_rpDel
                 )
-            }else{
-            return this.permissionBtn.checkPermissionBtn(
-                    this.permissionBtn.enClassifyBtn.classifyList_enClassify_rsDel
-                )
-            }
+            // }else{
+            // return this.permissionBtn.checkPermissionBtn(
+            //         this.permissionBtn.enClassifyBtn.classifyList_enClassify_rsDel
+            //     )
+            // }
       },
       //权限设置是否展示
       isAuthSetBtnShow(){
-        if(this.aTab===0){
+        // if(this.aTab===0){
                 return this.permissionBtn.checkPermissionBtn(
                     this.permissionBtn.enClassifyBtn.classifyList_enClassify_rpAuthSetting
                 )
-            }else{
-            return this.permissionBtn.checkPermissionBtn(
-                    this.permissionBtn.enClassifyBtn.classifyList_enClassify_rsAuthSetting
-                )
-            }
-      },
-      //英文研报、线上路演选项卡
-      authTabsOpt(){
-        const isShowTabRoadshow = this.permissionBtn.checkPermissionBtn(
-            this.permissionBtn.enClassifyBtn.classifyList_enClassify_roadshow
-        )
-        const isShowTabReport = this.permissionBtn.checkPermissionBtn(
-            this.permissionBtn.enClassifyBtn.classifyList_enClassify_report
-        )
-        //没时间写更好的写法了,有空再优化
-        let authTabs = []
-        if(isShowTabReport){
-            authTabs.push(this.tabsOpt[0])
-        }
-        if(isShowTabRoadshow){
-            authTabs.push(this.tabsOpt[1])
-        }
-        return authTabs
+            // }else{
+            // return this.permissionBtn.checkPermissionBtn(
+            //         this.permissionBtn.enClassifyBtn.classifyList_enClassify_rsAuthSetting
+            //     )
+            // }
       },
+      //英文研报、线上路演选项卡 - ETA1.1.7 不区分英文研报和线上路演,统一用英文研报的 按钮标识
+      // authTabsOpt(){
+      //   const isShowTabRoadshow = this.permissionBtn.checkPermissionBtn(
+      //       this.permissionBtn.enClassifyBtn.classifyList_enClassify_roadshow
+      //   )
+      //   const isShowTabReport = this.permissionBtn.checkPermissionBtn(
+      //       this.permissionBtn.enClassifyBtn.classifyList_enClassify_report
+      //   )
+      //   //没时间写更好的写法了,有空再优化
+      //   let authTabs = []
+      //   if(isShowTabReport){
+      //       authTabs.push(this.tabsOpt[0])
+      //   }
+      //   if(isShowTabRoadshow){
+      //       authTabs.push(this.tabsOpt[1])
+      //   }
+      //   return authTabs
+      // },
       //添加分类时的选项框
   },
   data() {
@@ -287,6 +291,10 @@ export default {
           label: "二级分类",
           prop: "ClassifyTwo",
         },
+        {
+          label: "三级分类",
+          prop: "ClassifyThree",
+        },
         {
           label: "操作",
           prop: "handle",
@@ -299,7 +307,7 @@ export default {
         title: '',
         show: false,
         classify_name: '',
-        parent_id: 0,
+        parent_id: "0", // 数字的0,级联选择器不回显
         sort: 1,
         classify_id: '',
 
@@ -309,7 +317,7 @@ export default {
         classify_name: [{ required:true,message:'请输入分类名称',trigger:'blur'}],
         parent_id: [{ required:true,message:'请输入',trigger:'blur'}],
         sort: [{ required:true,message:'请输入数字',trigger:'blur'}],
-        type: [{ required:true,message:'请选择',trigger:'change'}]
+        // type: [{ required:true,message:'请选择',trigger:'change'}]
       },
 
       tabsOpt:[
@@ -362,7 +370,7 @@ export default {
         CurrentIndex: this.page_no,
         PageSize: 15,
         KeyWord: this.searchform.key_word,
-        ClassifyType:this.aTab
+        // ClassifyType:this.aTab
       };
       classifyEnInterface.classifyList(params).then(res => {
         this.dataLoading = false;
@@ -370,25 +378,30 @@ export default {
           this.tableData = res.Data.List || [];
           this.total = parseInt(res.Data.Paging.Totals);
           this.tableData.forEach((item, index) => {
+            item.level = 1
             if (item.Child) {
               // item.hasChildren=true;
-              let childnode = JSON.parse(JSON.stringify(item.Child));
-              childnode.forEach((itemchild, i) => {
-                itemchild.ischild = true;
+              // let childnode = JSON.parse(JSON.stringify(item.Child));
+              item.Child.forEach((itemchild, i) => {
+                itemchild.level = 2;
+                itemchild.Child && itemchild.Child.forEach((itemChildTwo,i)=>{
+                  itemChildTwo.level=3
+                })
               });
-              item.children = childnode;
+              // item.children = childnode;
             }
           });
+          console.log(this.tableData,'this.tableData');
         }
       });
     },
 
-    addClassify() {
+    addClassify() {      
       this.classifyForm = {
         title: '新增英文分类',
         show: true,
         classify_name: '',
-        parent_id: 0,
+        parent_id: "0",
         sort: 1,
         type:0
       }
@@ -396,16 +409,13 @@ export default {
 
     /* 获取一级分类 */
     getClassifyOne() {
-      classifyEnInterface.classifyOne({ CurrentIndex: 1, PageSize: 9999,ClassifyType:this.classifyForm.type })
+      classifyEnInterface.classifyOne({ CurrentIndex: 1, PageSize: 9999 /**,ClassifyType:this.classifyForm.type */ })
         .then(res => {
           if(res.Ret !== 200) return
 
-          this.classifyparentArr=[];
-					res.Data.List && res.Data.List.forEach((item,i)=>{
-							item.Id=parseInt(item.Id);
+          this.classifyparentArr=res.Data.List || [];
 
-							if(!item.Child) this.classifyparentArr.push(item);
-					});
+          this.classifyparentArr.unshift({Id:"0",ClassifyName:'无',Child:null})
         })
     },
 
@@ -424,7 +434,7 @@ export default {
         title: '编辑分类',
         show: true,
         classify_name: ClassifyName,
-        parent_id: ParentId,
+        parent_id: ParentId==0?0+'':ParentId,//数字的0,'无'不回显
         sort: Sort,
         classify_id: Id,
         type:ClassifyType
@@ -453,17 +463,19 @@ export default {
     /* 保存分类 */
     async setClassifyHandle() {
       await this.$refs.formRef.validate();
-
+      console.log(this.classifyForm);
+      // return 
       const { classify_name,parent_id,sort,classify_id } = this.classifyForm;
       let params = {
         ClassifyName: classify_name,
-        ParentId: parent_id,
+        ParentId: parseInt(parent_id),
         Sort: sort
       }
 
       const { Ret,Msg } = classify_id 
         ? await classifyEnInterface.classifyEdit({...params,ClassifyId: classify_id}) 
-        : await classifyEnInterface.classifyAdd({...params,ClassifyType:this.classifyForm.type})
+        : await classifyEnInterface.classifyAdd(params)
+        // : await classifyEnInterface.classifyAdd({...params,ClassifyType:this.classifyForm.type})
 
       if(Ret !== 200) return
       this.$message.success(Msg)
@@ -478,25 +490,25 @@ export default {
     },
 
     //切换分类
-    handleTabChange(item){
-      this.aTab=item.val
-      this.page_no=1
-      this.searchform.key_word=''
-      this.getList()
-    },
+    // handleTabChange(item){
+    //   this.aTab=item.val
+    //   this.page_no=1
+    //   this.searchform.key_word=''
+    //   this.getList()
+    // },
 
     //新增分类时切换分类
-    FormClassifyChange(){
-      this.classifyForm.parent_id=0
-      this.getClassifyOne()
-    }
+    // FormClassifyChange(){
+    //   this.classifyForm.parent_id=0
+    //   this.getClassifyOne()
+    // }
   },
 
   mounted() {
-      if(this.authTabsOpt.length){
-        this.aTab = this.authTabsOpt[0].val
+      // if(this.authTabsOpt.length){
+      //   this.aTab = this.authTabsOpt[0].val
         this.getList();
-      }
+      // }
   },
 };
 </script>
@@ -542,3 +554,9 @@ export default {
   }
 }
 </style>
+<style lang="scss">
+.el-cascader .el-input{
+  width: 100%;
+}
+
+</style>

+ 96 - 75
src/views/report_manage/reportEn/reportEditor.vue

@@ -114,6 +114,9 @@
 							<el-cascader
 								@change="userclassidreportdetail"
 								:options="optionsArr"
+								:props="{
+									children:'Child'
+								}"
 								v-model="aeForm.classifynameArr"
 								placeholder="类型筛选"
 								size="medium"
@@ -563,9 +566,10 @@ export default {
 		},
 
 		userclassidreportdetail() {
+			// console.log(this.aeForm.classifynameArr,'this.aeForm.classifynameArr');
 			if (this.aeForm.add_type == 1) {
-				if (this.aeForm.classifynameArr.length == 2) {
-					this.aeForm.title = JSON.parse(this.aeForm.classifynameArr[1]).l;
+				if (this.aeForm.classifynameArr.length == 3) {
+					this.aeForm.title = JSON.parse(this.aeForm.classifynameArr[2]).l;
 				}else{
           this.aeForm.title = ''
         }
@@ -575,11 +579,11 @@ export default {
 				return false;
 			} 
 			let params = {
-				ClassifyIdFirst: JSON.parse(this.aeForm.classifynameArr[0]).v,
+				ClassifyIdFirst: JSON.parse(this.aeForm.classifynameArr[1]).v,
 			};
-			if (this.aeForm.classifynameArr.length === 2) {
+			if (this.aeForm.classifynameArr.length === 3) {
 				params.ClassifyIdSecond = JSON.parse(
-					this.aeForm.classifynameArr[1]
+					this.aeForm.classifynameArr[2]
 				).v;
 			} else {
 				params.ClassifyIdSecond = 0;
@@ -594,24 +598,19 @@ export default {
 					this.aeForm = {
 						add_type: 2,
 						classify_name: 1,
-						classifynameArr:
-							res.Data.ClassifyIdSecond && res.Data.ClassifyNameSecond
-								? [
-										JSON.stringify({
-											l: res.Data.ClassifyNameFirst,
-											v: res.Data.ClassifyIdFirst,
-										}),
-										JSON.stringify({
-											l: res.Data.ClassifyNameSecond,
-											v: res.Data.ClassifyIdSecond,
-										}),
-								  ]
-								: [
-										JSON.stringify({
-											l: res.Data.ClassifyNameFirst,
-											v: res.Data.ClassifyIdFirst,
-										}),
-								  ],
+						classifynameArr:[
+							JSON.stringify({
+								l: res.Data.ClassifyNameRoot,
+								v: parseInt(res.Data.ClassifyIdRoot),
+							}),
+							JSON.stringify({
+								l: res.Data.ClassifyNameFirst,
+								v: parseInt(res.Data.ClassifyIdFirst),
+							}),
+							JSON.stringify({
+								l: res.Data.ClassifyNameSecond,
+								v: parseInt(res.Data.ClassifyIdSecond),
+						})],
 						title: res.Data.Title,
 						abstract: res.Data.Abstract,
 						author: res.Data.Author ? res.Data.Author.split(',') : '',
@@ -635,29 +634,24 @@ export default {
 		//报告详情
 		getreportdetail() {
 			reportEnInterface.reportDetail({ ReportId: parseInt(this.report_id) }).then((res) => {
-				if (res.Ret === 200) {
+				if (res.Ret === 200 && res.Data) {
 					let data = res.Data;
 					this.aeForm = {
 						add_type: parseInt(data.AddType),
 						classify_name: 1,
-						classifynameArr:
-							data.ClassifyIdSecond && data.ClassifyNameSecond
-								? [
-										JSON.stringify({
-											l: data.ClassifyNameFirst,
-											v: parseInt(data.ClassifyIdFirst),
-										}),
-										JSON.stringify({
-											l: data.ClassifyNameSecond,
-											v: parseInt(data.ClassifyIdSecond),
-										}),
-								  ]
-								: [
-										JSON.stringify({
-											l: data.ClassifyNameFirst,
-											v: parseInt(data.ClassifyIdFirst),
-										}),
-								  ],
+						classifynameArr:[
+							JSON.stringify({
+								l: data.ClassifyNameRoot,
+								v: parseInt(data.ClassifyIdRoot),
+							}),
+							JSON.stringify({
+								l: data.ClassifyNameFirst,
+								v: parseInt(data.ClassifyIdFirst),
+							}),
+							JSON.stringify({
+								l: data.ClassifyNameSecond,
+								v: parseInt(data.ClassifyIdSecond),
+						})],
 						title: data.Title,
 						abstract: data.Abstract,
 						author: data.Author ? data.Author.split(',') : '',
@@ -706,8 +700,8 @@ export default {
 			$('#leftfroala .fr-element').find('img.fr-uploading').length&&$('#leftfroala .fr-element').find('img.fr-uploading').remove()
 			let params = {
 				AddType: this.aeForm.add_type,
-				ClassifyIdFirst: JSON.parse(this.aeForm.classifynameArr[0]).v,
-				ClassifyNameFirst: JSON.parse(this.aeForm.classifynameArr[0]).l,
+				ClassifyIdFirst: JSON.parse(this.aeForm.classifynameArr[1]).v,
+				ClassifyNameFirst: JSON.parse(this.aeForm.classifynameArr[1]).l,
 				Title: this.aeForm.title,
 				Abstract: this.aeForm.abstract,
 				Author:
@@ -721,12 +715,12 @@ export default {
 				ReportVersion: 2,
         Overview:this.aeForm.overview.replace(/<p data-f-id=\"pbf\".*?<\/p>/g,'')
 			};
-			if (this.aeForm.classifynameArr.length == 2) {
+			if (this.aeForm.classifynameArr.length == 3) {
 				params.ClassifyIdSecond = JSON.parse(
-					this.aeForm.classifynameArr[1]
+					this.aeForm.classifynameArr[2]
 				).v;
 				params.ClassifyNameSecond = JSON.parse(
-					this.aeForm.classifynameArr[1]
+					this.aeForm.classifynameArr[2]
 				).l;
 			}
 
@@ -885,35 +879,62 @@ export default {
 			let params = { CurrentIndex: 1, PageSize: 1000, KeyWord: '' };
 			reportEnInterface.classifyList(params).then((res) => {
 				if (res.Ret == 200 && Array.isArray(res.Data.List)) {
-					this.optionsArr = [];
-					res.Data.List.forEach(item => {
-						let newitem = {
-							label: item.ClassifyName,
-							value: JSON.stringify({
-								l: item.ClassifyName,
-								v: parseInt(item.Id),
-							}),
-							HasTeleconference:item.HasTeleconference
-						};
-						if (item.Child&&item.Child.length > 0) {
-							let childnode = [];
-							item.Child.forEach((itemchild, i) => {
-								childnode.push({
-									label: itemchild.ClassifyName,
-									value: JSON.stringify({
-										l: itemchild.ClassifyName,
-										v: parseInt(itemchild.Id),
-									}),
-									HasTeleconference:itemchild.HasTeleconference
-								});
-							});
-							newitem.children = childnode;
-						} else {
-							newitem.children = undefined;
-							newitem.disabled=true
+					this.optionsArr = res.Data.List|| []
+					// res.Data.List.forEach(item => {
+					// 	let newitem = {
+					// 		label: item.ClassifyName,
+					// 		value: JSON.stringify({
+					// 			l: item.ClassifyName,
+					// 			v: parseInt(item.Id),
+					// 		}),
+					// 		HasTeleconference:item.HasTeleconference
+					// 	};
+					// 	if (item.Child&&item.Child.length > 0) {
+					// 		let childnode = [];
+					// 		item.Child.forEach((itemchild, i) => {
+					// 			childnode.push({
+					// 				label: itemchild.ClassifyName,
+					// 				value: JSON.stringify({
+					// 					l: itemchild.ClassifyName,
+					// 					v: parseInt(itemchild.Id),
+					// 				}),
+					// 				HasTeleconference:itemchild.HasTeleconference
+					// 			});
+					// 		});
+					// 		newitem.children = childnode;
+					// 	} else {
+					// 		newitem.children = undefined;
+					// 		newitem.disabled=true
+					// 	}
+					// 	this.optionsArr.push(newitem);
+					// });
+					this.optionsArr.map(itemOne =>{
+						itemOne.label = itemOne.ClassifyName
+						itemOne.value = JSON.stringify({
+							l: itemOne.ClassifyName,
+							v: parseInt(itemOne.Id),
+						})
+						itemOne.disabled = !(itemOne.Child && itemOne.Child.length>0)
+						if(itemOne.Child){
+							itemOne.Child.map(itemTwo =>{
+								itemTwo.label = itemTwo.ClassifyName
+								itemTwo.value = JSON.stringify({
+									l: itemTwo.ClassifyName,
+									v: parseInt(itemTwo.Id),
+								})
+								itemTwo.disabled = !(itemTwo.Child && itemTwo.Child.length>0)
+								if(itemTwo.Child){
+									itemTwo.Child.map(itemThree =>{
+										itemThree.label = itemThree.ClassifyName
+										itemThree.value = JSON.stringify({
+											l: itemThree.ClassifyName,
+											v: parseInt(itemThree.Id),
+										})
+									})
+								}
+							})
 						}
-						this.optionsArr.push(newitem);
-					});
+					})
 				}
 			});
 		},

+ 180 - 84
src/views/report_manage/reportEn/reportlist.vue

@@ -59,6 +59,11 @@
           <el-form-item label="">
             <el-cascader
               :options="optionsArr"
+              :props="{
+                value:'Id',
+                label:'ClassifyName',
+                children:'Child'
+              }"
               v-model="searchform.classifynameArr"
               clearable
               placeholder="类型筛选"
@@ -135,9 +140,9 @@
 								<span style="cursor:pointer; color:#4099ef;">{{row.Title}}</span>
 							  <span style="cursor:pointer; color:#4099ef;" v-if="row.CreateTime">({{row.CreateTime.substring(5,7)}}{{row.CreateTime.substring(8,10)}})</span>
 							</span>
-              <span v-else-if="item.key==='ClassifyNameFirst'">
-                {{row.ClassifyNameFirst}} 
-                <span v-if="row.ClassifyNameSecond">/ {{row.ClassifyNameSecond}}</span>
+              <span v-else-if="item.key==='FullClassifyName'">
+                {{row.FullClassifyName}} 
+                <!-- <span v-if="row.ClassifyNameSecond">/ {{row.ClassifyNameSecond}}</span> -->
               </span>
               <span v-else-if="item.key==='State'" :style="row.State===2 && 'color:#46C371;'">
                 {{row.State===2 ? '已发布' : '未发布'}}
@@ -213,61 +218,6 @@
     >
       <div class="send-email-wrap">
         <el-form ref="form" :model="popData" label-width="100px">
-          <el-form-item label="收件人:">
-            <div>
-              <!-- <el-radio v-model="popData.radio" label="1">默认全部</el-radio> -->
-              <el-cascader
-                v-if="popData.show"
-                v-model="popData.varietyVal"
-                :options="popData.varietyOpt"
-                collapse-tags
-                clearable
-                :props="{
-                  multiple:true,
-                  value:'EnPermissionId',
-                  label:'EnPermissionName',
-                  children:'Child'
-                }"
-                placeholder="请选择品种权限"
-              />
-              <el-checkbox v-model="popData.checkUser" style="margin-left:20px">指定人员</el-checkbox>
-            </div>
-            <div v-if="popData.checkUser" class="user-box">
-              <el-select
-                v-model="popData.value"
-                multiple
-                filterable
-                collapse-tags
-                placeholder="请选择客户"
-                value-key="Id"
-              >
-                <el-option
-                  v-for="item in popData.options"
-                  :key="item.Id"
-                  :label="item.Name"
-                  :value="item"
-                  :disabled="item.Enabled===0">
-                  <span>{{item.Name}} &lt;{{item.Email}}&gt;</span>
-                </el-option>
-              </el-select>
-              <div style="margin-top:10px" class="box">
-                <el-tooltip 
-                  effect="dark" 
-                  :content="item.Email" 
-                  placement="top"
-                  v-for="(item,index) in popData.value"
-                  :key="item.Id"
-                  >
-                <el-tag
-                  closable
-                  style="margin:0 10px 10px 0"
-                  @close="handleDelSelectCustom(item,index)">
-                  {{item.Name}}
-                </el-tag>
-                </el-tooltip>
-              </div>
-            </div>
-          </el-form-item>
           <el-form-item label="邮件主题:">
             <div>
               <el-input 
@@ -280,6 +230,101 @@
               ></el-input>
             </div>
           </el-form-item>
+          <el-form-item label="收件人:">
+            <div class="addressee-box">
+              <div class="addressee-cancel-box">
+                <el-cascader
+                  v-if="popData.show"
+                  v-model="popData.varietyVal"
+                  :options="popData.varietyOpt"
+                  collapse-tags
+                  clearable
+                  :props="{
+                    multiple:true,
+                    value:'EnPermissionId',
+                    label:'EnPermissionName',
+                    children:'Child'
+                  }"
+                  placeholder="请选择品种权限"
+                  style="margin-bottom: 10px;"
+                />
+                <div class="user-box-hint">取消发送客户信息:</div>
+                <el-select
+                  v-model="popData.customValue"
+                  multiple
+                  filterable
+                  collapse-tags
+                  placeholder="请选择客户"
+                  value-key="CompanyId">
+                  <el-option
+                    v-for="item in popData.customOptions"
+                    :key="item.CompanyId"
+                    :label="item.CompanyName"
+                    :value="item">
+                  </el-option>
+                </el-select>
+                <div class="user-box">
+                  <div style="margin-top:10px" class="box">
+                    <!-- <el-tooltip 
+                      effect="dark" 
+                      :content="item.Email" 
+                      placement="top"
+                      v-for="(item,index) in popData.customValue"
+                      :key="item.Id"
+                      > -->
+                      <el-tag
+                      closable
+                      v-for="(item,index) in popData.customValue"
+                      :key="item.CompanyId"
+                      style="margin:0 10px 10px 0"
+                      @close="handleDelSelectCompany(item,index)">
+                      {{item.CompanyName}}
+                    </el-tag>
+                    <!-- </el-tooltip> -->
+                  </div>
+                </div>
+              </div>
+              <div class="addressee-append-box">
+                <el-checkbox v-model="popData.checkUser" style="margin:0 0 10px 20px;width: 100px;">指定人员</el-checkbox>
+                <div class="user-box-hint" v-show="popData.checkUser">指定发送人员信息:</div>
+                <el-select
+                  v-show="popData.checkUser"
+                  v-model="popData.value"
+                  multiple
+                  filterable
+                  collapse-tags
+                  placeholder="请选择人员"
+                  value-key="Id">
+                  <el-option
+                    v-for="item in popData.options"
+                    :key="item.Id"
+                    :label="item.Name"
+                    :value="item"
+                    :disabled="item.Enabled===0">
+                    <span>{{item.Name}} &lt;{{item.Email}}&gt;</span>
+                  </el-option>
+                </el-select>
+                <div class="user-box" v-show="popData.checkUser">
+                  <div style="margin-top:10px" class="box">
+                    <el-tooltip 
+                      effect="dark" 
+                      :content="item.Email" 
+                      placement="top"
+                      v-for="(item,index) in popData.value"
+                      :key="item.Id"
+                      >
+                    <el-tag
+                      closable
+                      style="margin:0 10px 10px 0"
+                      @close="handleDelSelectCustom(item,index)">
+                      {{item.Name}}
+                    </el-tag>
+                    </el-tooltip>
+                  </div>
+                </div>
+              </div>
+          </div>
+          </el-form-item>
           <div style="text-align:center;margin-bottom:30px;margin-top:40px">
             <el-button type="primary" plain style="margin-right:10px" @click="popData.show=false">取消</el-button>
             <el-button type="primary" @click="handleConfirmSendEmail">确定</el-button>
@@ -330,7 +375,7 @@
 
 <script>
 import * as reportEnInterface from '@/api/modules/reportEnApi';
-import {strategyReportInterence,reportVarietyENInterence} from '@/api/api.js'
+import {strategyReportInterence,reportVarietyENInterence,customInterence} from '@/api/api.js'
 import mPage from '@/components/mPage.vue';
 import strategyReportEdit from '../components/strategyReportEdit.vue'
 export default {
@@ -347,6 +392,8 @@ export default {
         this.popData.checkUser=false
         this.popData.options=[]
         this.popData.value=[]
+        this.popData.customOptions=[]
+        this.popData.customValue=[]
         this.popData.varietyOpt=[]
         this.popData.varietyVal=[]
       }
@@ -385,7 +432,7 @@ export default {
 				},
         {
 					label: '报告类型',
-					key: 'ClassifyNameFirst',
+					key: 'FullClassifyName',
           minwidthsty: 120
 				},
         {
@@ -429,10 +476,11 @@ export default {
 
       popData:{
         show:false,
-        radio:'1',
         checkUser:false,//是否选择指定人员
         options: [],
         value: [],
+        customOptions:[],
+        customValue:[],
         theme:'',
         reportId:0,
         varietyOpt:[],
@@ -465,17 +513,18 @@ export default {
 			let params={CurrentIndex:0,PageSize:1000,KeyWord:''};
 			reportEnInterface.classifyList(params).then((res) => {
 				if( res.Ret==200&&Array.isArray(res.Data.List) ){
-					res.Data.List.forEach((item,index)=>{
-						let newitem={label:item.ClassifyName,value:item.ClassifyName};
-						if( item.Child ){
-							let childnode=[];
-							item.Child.forEach((itemchild,i)=>{
-								childnode.push({label:itemchild.ClassifyName,value:itemchild.ClassifyName});
-							});
-							newitem.children=childnode;
-						}
-						this.optionsArr.push(newitem);
-					});
+					// res.Data.List.forEach((item,index)=>{
+					// 	let newitem={label:item.ClassifyName,value:item.ClassifyName};
+					// 	if( item.Child ){
+					// 		let childnode=[];
+					// 		item.Child.forEach((itemchild,i)=>{
+					// 			childnode.push({label:itemchild.ClassifyName,value:itemchild.ClassifyName});
+					// 		});
+					// 		newitem.children=childnode;
+					// 	}
+					// 	this.optionsArr.push(newitem);
+					// });
+          this.optionsArr= res.Data.List || []
 				}
 			});
 		},
@@ -486,8 +535,9 @@ export default {
 				CurrentIndex:this.page_no,
         PageSize:15,
         Frequency:this.searchform.frequency,
-        ClassifyNameFirst:this.searchform.classifynameArr?this.searchform.classifynameArr[0]:'',
-        ClassifyNameSecond:this.searchform.classifynameArr&&this.searchform.classifynameArr.length>1?this.searchform.classifynameArr[1]:'',
+        ClassifyIdRoot:this.searchform.classifynameArr[0],
+        ClassifyIdFirst:this.searchform.classifynameArr&&this.searchform.classifynameArr.length>1?this.searchform.classifynameArr[1]:'',
+        ClassifyIdSecond:this.searchform.classifynameArr&&this.searchform.classifynameArr.length>1?this.searchform.classifynameArr[2]:'',
         State:this.searchform.state?this.searchform.state:null,
         KeyWord:this.searchform.key_word,
         StartDate: this.searchform.dateValue ? this.searchform.dateValue[0] : '',
@@ -658,6 +708,7 @@ export default {
             })
           })
         }
+        this.getCustomListEnFun()
       })
     },
 
@@ -683,11 +734,33 @@ export default {
         this.popData.options=arr
       }
     },
+    // 获取英文客户列表
+    getCustomListEnFun(){
+        let arr=[]
+        this.popData.varietyVal&&this.popData.varietyVal.forEach(_e => {
+            arr.push(_e[1])
+        });
+        if(!(arr.length>0)){
+            this.popData.customOptions=[]
+            return 
+        }
 
+        customInterence.getCustomListEn({
+            PageSize:100000,
+            CurrentIndex:1,
+            EnPermissionIds:arr.join(',')
+        }).then(res=>{
+            if(res.Ret!==200) return 
+            this.popData.customOptions = res.Data.List || []
+        })
+    },
     handleDelSelectCustom(item,index){
       this.popData.value.splice(index,1)
     },
-
+    //删除选中的商家
+    handleDelSelectCompany(item,index){
+        this.popData.customValue.splice(index,1)
+    },
     showPVDetail(item){
       this.PVData.reportId=item.Id
       this.getPVDetail()
@@ -715,6 +788,12 @@ export default {
       this.popData.value.forEach(item=>{
         ids.push(item.Id)
       })
+
+      let customIds=[]
+      this.popData.customValue.forEach(item=>{
+        customIds.push(item.CompanyId)
+      })
+
       if(this.popData.checkUser&&ids.length===0){//指定人员
         this.$message.warning('请选择需要发送邮件的人员')
         return
@@ -735,11 +814,13 @@ export default {
       this.popData.varietyVal&&this.popData.varietyVal.forEach(_e => {
         arr.push(_e[1])
       });
+
       reportEnInterface.sendCustomEmail({
         ReportId:this.popData.reportId,
         EmailIds:ids.join(','),
         Theme:this.popData.theme,
-        EnPermissions:arr
+        EnPermissions:arr,
+        NoCompanyIds:customIds,
       }).then(res=>{
         if(res.Ret===200){
           this.$message.success('发送成功')
@@ -802,15 +883,30 @@ export default {
   }
 }
 .send-email-wrap{
-  .user-box{
-    border: 1px dashed #DCDFE6;
-    border-radius: 4px;
-    padding: 20px;
-    margin-top: 20px;
-    .box{
-      max-height: 200px;
-      overflow-y: auto;
+  .addressee-box{
+    display: flex;
+    align-items: flex-start;
+    justify-content: space-between;
+    .addressee-cancel-box,.addressee-append-box{
+      display: flex;
+      flex-direction: column;
+      justify-content: flex-start;
+      width: calc(50% - 12px);
+    }
+    .user-box-hint{
+      color: #999999;
+    }
+    .user-box{
+      border: 1px dashed #DCDFE6;
+      border-radius: 4px;
+      padding: 20px;
+      margin-top: 20px;
+      .box{
+        max-height: 200px;
+        overflow-y: auto;
+      }
     }
   }
+
 }
 </style>