Kaynağa Gözat

ETA1.1.7 预提测

hbchen 1 yıl önce
ebeveyn
işleme
f779bfc009

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

@@ -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,24 +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.ischild ? row.ClassifyName : ""
+              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"
@@ -143,7 +143,7 @@
               <el-option v-for="item in classifyparentArr" :key="item.ClassifyName" :label="item.ClassifyName" :value="item.Id"/>
             </el-select> -->
             <el-cascader :options="classifyparentArr" v-model="classifyForm.parent_id" placeholder="请选择"
-            :props="{value:'Id',label:'ClassifyName',children:'Child'}" style="min-width:400px;"></el-cascader>
+            :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 
@@ -205,76 +205,71 @@ export default {
   computed:{
       //添加分类是否展示
       isAddClassifyBtnShow(){
-        return true
-        //   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===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
+                )
+          }
       },
       //编辑是否展示
       isEditBtnShow(){
-        return true
-        // 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
-        //         )
-        //     }
+        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
+                )
+            }
       },
       //删除是否展示
       isDeleteBtnShow(){
-        return true
-        // 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
-        //         )
-        //     }
+        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
+                )
+            }
       },
       //权限设置是否展示
       isAuthSetBtnShow(){
-        return true
-        // 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
-        //         )
-        //     }
+        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
-      // },
+      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() {
@@ -322,20 +317,20 @@ 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:[
-      //   {
-      //     name:'英文研报',
-      //     val:0
-      //   },
-      //   {
-      //     name:'线上路演',
-      //     val:1
-      //   }
-      // ],
-      // aTab:0,
+      tabsOpt:[
+        {
+          name:'英文研报',
+          val:0
+        },
+        {
+          name:'线上路演',
+          val:1
+        }
+      ],
+      aTab:0,
 
       isexpand:false,
 
@@ -383,15 +378,20 @@ 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');
         }
       });
     },
@@ -414,11 +414,13 @@ export default {
           if(res.Ret !== 200) return
 
           this.classifyparentArr=[];
+          this.classifyparentArr.push({Id:0,ClassifyName:'无',Child:null})
 					res.Data.List && res.Data.List.forEach((item,i)=>{
 							item.Id=parseInt(item.Id);
-
-							if(!item.Child) this.classifyparentArr.push(item);
+              // 拿取前两级
+							if(item.Child && (!item.Child.some(it => it.Child && it.Child.length>0))) this.classifyparentArr.push(item);
 					});
+          console.log(this.classifyparentArr);
         })
     },
 
@@ -466,7 +468,8 @@ 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,

+ 30 - 16
src/views/report_manage/reportEn/reportEditor.vue

@@ -644,9 +644,29 @@ export default {
 					this.aeForm = {
 						add_type: parseInt(data.AddType),
 						classify_name: 1,
-						classifynameArr:
-							data.ClassifyIdSecond && data.ClassifyNameSecond
-								? [
+						// 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),
@@ -654,14 +674,7 @@ export default {
 										JSON.stringify({
 											l: data.ClassifyNameSecond,
 											v: parseInt(data.ClassifyIdSecond),
-										}),
-								  ]
-								: [
-										JSON.stringify({
-											l: data.ClassifyNameFirst,
-											v: parseInt(data.ClassifyIdFirst),
-										}),
-								  ],
+										})],
 						title: data.Title,
 						abstract: data.Abstract,
 						author: data.Author ? data.Author.split(',') : '',
@@ -710,8 +723,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:
@@ -725,12 +738,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;
 			}
 
@@ -932,6 +945,7 @@ export default {
 									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

+ 56 - 19
src/views/report_manage/reportEn/reportlist.vue

@@ -246,45 +246,46 @@
                     children:'Child'
                   }"
                   placeholder="请选择品种权限"
+                  style="margin-bottom: 10px;"
                 />
                 <el-select
-                  v-model="popData.value"
+                  v-model="popData.customValue"
                   multiple
                   filterable
                   collapse-tags
                   placeholder="请选择客户"
-                  value-key="Id">
+                  value-key="CompanyId">
                   <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>
+                    v-for="item in popData.customOptions"
+                    :key="item.CompanyId"
+                    :label="item.CompanyName"
+                    :value="item">
                   </el-option>
                 </el-select>
                 <div class="user-box-hint">取消发送客户信息:</div>
                 <div class="user-box">
                   <div style="margin-top:10px" class="box">
-                    <el-tooltip 
+                    <!-- <el-tooltip 
                       effect="dark" 
                       :content="item.Email" 
                       placement="top"
-                      v-for="(item,index) in popData.value"
+                      v-for="(item,index) in popData.customValue"
                       :key="item.Id"
-                      >
-                    <el-tag
+                      > -->
+                      <el-tag
                       closable
+                      v-for="(item,index) in popData.customValue"
+                      :key="item.CompanyId"
                       style="margin:0 10px 10px 0"
-                      @close="handleDelSelectCustom(item,index)">
-                      {{item.Name}}
+                      @close="handleDelSelectCompany(item,index)">
+                      {{item.CompanyName}}
                     </el-tag>
-                    </el-tooltip>
+                    <!-- </el-tooltip> -->
                   </div>
                 </div>
               </div>
               <div class="addressee-append-box">
-                <el-checkbox v-model="popData.checkUser" style="margin-left:20px">指定人员</el-checkbox>
+                <el-checkbox v-model="popData.checkUser" style="margin:0 0 10px 20px;width: 100px;">指定人员</el-checkbox>
                 <el-select
                   v-show="popData.checkUser"
                   v-model="popData.value"
@@ -374,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 {
@@ -391,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=[]
       }
@@ -476,6 +479,8 @@ export default {
         checkUser:false,//是否选择指定人员
         options: [],
         value: [],
+        customOptions:[],
+        customValue:[],
         theme:'',
         reportId:0,
         varietyOpt:[],
@@ -530,6 +535,7 @@ export default {
 				CurrentIndex:this.page_no,
         PageSize:15,
         Frequency:this.searchform.frequency,
+        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,
@@ -702,6 +708,7 @@ export default {
             })
           })
         }
+        this.getCustomListEnFun()
       })
     },
 
@@ -727,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()
@@ -759,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
@@ -779,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('发送成功')