Browse Source

同步crm13.6

cxmo 1 năm trước cách đây
mục cha
commit
c036e0a7cc

+ 7 - 0
src/api/modules/crmApi.js

@@ -512,6 +512,13 @@ const customInterence = {
     addCustomRemark:(params)=>{
         return http.post("/custom/share/remark/add",params)
     },
+    /**
+     * 客户列表,正式客户共享-删除备注
+     * RemarkId
+     */
+    deleteRemark:(params)=>{
+        return http.post("/custom/remark/del",params)
+    },
   /* 审批列表
 		PageSize *
 		CurrentIndex *

+ 1 - 1
src/views/contract_manage/addContract.vue

@@ -472,7 +472,7 @@ export default {
       cb([])
       if(!queryString) return
       let CompanyType=localStorage.getItem('RoleType')
-      let res=await customInterence.customList({KeyWord:queryString,PageSize:10000,CompanyType:CompanyType})
+      let res=await customInterence.customList({KeyWord:queryString,PageSize:10000,CompanyType:CompanyType,IncludeShare:true})
       // this.contractTypeDisable1=false
       // this.contractTypeDisable2=false
       // this.contractTypeDisable3=false

+ 2 - 2
src/views/contract_manage/editContract.vue

@@ -505,7 +505,7 @@ export default {
     // 初始化客户搜索动作
     async initCustomeSelect(queryString){
       let CompanyType=localStorage.getItem('RoleType')
-      let res=await customInterence.customList({KeyWord:queryString,PageSize:10000,CompanyType:CompanyType})
+      let res=await customInterence.customList({KeyWord:queryString,PageSize:10000,CompanyType:CompanyType,IncludeShare:true})
       if(res.Ret===200){
         if(res.Data.List&&res.Data.List.length>0){
           this.handleSelectCustome(res.Data.List[0])
@@ -518,7 +518,7 @@ export default {
       cb([])
       if(!queryString) return
       let CompanyType=localStorage.getItem('RoleType')
-      let res=await customInterence.customList({KeyWord:queryString,PageSize:10000,CompanyType:CompanyType})
+      let res=await customInterence.customList({KeyWord:queryString,PageSize:10000,CompanyType:CompanyType,IncludeShare:true})
       // this.contractTypeDisable1=false
       // this.contractTypeDisable2=false
       // this.contractTypeDisable3=false

+ 67 - 20
src/views/custom_manage/compontents/Ctimeline.vue

@@ -1,21 +1,28 @@
 <template>
 	<div class="Ctimeline_container" v-if="activities.length">
-		<el-timeline>
-			<el-timeline-item
-				v-for="(activity, index) in activities"
-				:key="index"
-				:timestamp="activity.CreateTime"
-				color="#409EFF"
-				placement="top">
-				{{activity.SysRealName+(specialOperationList.includes(activity.Operation)?'添加未续约说明':activity.Remark)}}
-				<!-- {{activity.SysRealName+activity.Remark}} -->
-				<span v-if="activity.Operation=='freeze'&&activity.ApproveContent" class="freeze-text" @click="showFreeze(activity)">冻结理由</span>
-				<span v-if="(specialOperationList.includes(activity.Operation))&&activity.ApproveContent" @click="showRemark(activity)" class="freeze-text">未续约说明</span>
-				<!-- <span v-if="activity.Operation=='try_out'&&!isHasTryOutRenewalReason" class="freeze-text" @click="showAddRemark(activity)">添加说明</span> -->
-				<span v-if="isShowBtn&&index==firstTryOutIdx" class="freeze-text" @click="showAddRemark(activity)">添加未续约说明</span>
-				<span v-if="activity.Operation==='close'&&activity.ApproveContent" @click="showCloseRemark(activity)" class="freeze-text">关闭理由</span>
-			</el-timeline-item>
-		</el-timeline>
+		<div class="timeline-tab" v-if="ficcProcess.length&&raiProcess.length">
+			<span :class="{'active':timeLineType==='ficc'}" @click="changeTimeLineData('ficc')">FICC</span>
+			<span :class="{'active':timeLineType==='rai'}" @click="changeTimeLineData('rai')">权益</span>
+		</div>
+		<div class="timeline-wrap" :style="{maxHeight:`${(ficcProcess.length&&raiProcess.length)?'430px':'490px'}`}">
+			<el-timeline>
+				<el-timeline-item
+					v-for="(activity, index) in timeLineData"
+					:key="index"
+					:timestamp="activity.CreateTime"
+					color="#409EFF"
+					placement="top">
+					{{activity.SysRealName+(specialOperationList.includes(activity.Operation)?'添加未续约说明':activity.Remark)}}
+					<!-- {{activity.SysRealName+activity.Remark}} -->
+					<span v-if="activity.Operation=='freeze'&&activity.ApproveContent" class="freeze-text" @click="showFreeze(activity)">冻结理由</span>
+					<span v-if="(specialOperationList.includes(activity.Operation))&&activity.ApproveContent" @click="showRemark(activity)" class="freeze-text">未续约说明</span>
+					<!-- <span v-if="activity.Operation=='try_out'&&!isHasTryOutRenewalReason" class="freeze-text" @click="showAddRemark(activity)">添加说明</span> -->
+					<span v-if="isShowBtn&&index==firstTryOutIdx" class="freeze-text" @click="showAddRemark(activity)">添加未续约说明</span>
+					<span v-if="activity.Operation==='close'&&activity.ApproveContent" @click="showCloseRemark(activity)" class="freeze-text">关闭理由</span>
+				</el-timeline-item>
+			</el-timeline>
+		</div>
+		
 		<!-- 冻结理由弹窗 -->
 		<!-- <el-dialog
 		:visible.sync="show"
@@ -116,6 +123,10 @@ export default {
 			// 显示未续约说明按钮类型
 			specialOperationList:['edit_renewal_reason','add_renewal_reason','add_try_out_reason'],
 			isShowBtn: false,	// 是否显示添加未续约说明按钮
+			ficcProcess:[],
+			raiProcess:[],
+			timeLineType:'',
+			timeLineData:[]
 		};
 	},
 	methods: {
@@ -132,7 +143,13 @@ export default {
 							CreateTime:item.CreateTime.replace(/-/g,'.')
 						}
 					}) || [];
-
+					//将进度流程拆分为FICC和权益
+					this.ficcProcess = this.activities.filter(item=>item.ProductName==='ficc')
+					this.raiProcess = this.activities.filter(item=>item.ProductName!=='ficc')
+					this.changeTimeLineData('ficc')
+					if(!this.ficcProcess.length&&this.raiProcess.length){
+						this.changeTimeLineData('rai')
+					}
 				}
 			})
 		},
@@ -214,6 +231,14 @@ export default {
 				showCancelButton:false
 			}).then(()=>{}).catch(()=>{})
 		},
+		//改变时间线展示的内容
+		changeTimeLineData(type){
+			if(type===this.timeLineType) return 
+			this.timeLineType = type
+			type==='ficc'&&(this.timeLineData = this.ficcProcess)
+			type==='rai'&&(this.timeLineData = this.raiProcess)
+			document.querySelector('.timeline-wrap')&&(document.querySelector('.timeline-wrap').scrollTop = 0)
+		}
 	},
 	computed: {
 		// 第一个正式转试用索引
@@ -231,10 +256,9 @@ export default {
 <style lang='scss' >
 .Ctimeline_container {
 	box-sizing: border-box;
-	min-width: 270px;
+	min-width: 428px;
 	max-height: 550px;
-	overflow-y: auto;
-	padding: 28px 44px;
+	padding: 30px;
 	border: 1px solid #AAB4CC;
 	background: #fff;
 	border-radius: 4px;
@@ -258,5 +282,28 @@ export default {
 		cursor: pointer;
 		margin:0 5px;
 	}
+	.el-timeline{
+		margin:5px;
+	}
+	.timeline-tab{
+		display: flex;
+		margin-bottom: 30px;
+		span{
+			flex: 1;
+			text-align: center;
+			display: inline-block;
+			height: 30px;
+			line-height: 30px;
+			cursor: pointer;
+			&.active{
+				background-color: #EDF4FF;
+				color:#3385FF;
+			}
+		}
+	}
+	.timeline-wrap{
+		//max-height: calc(550px - 120px);
+		overflow-y: auto;
+	}
 }
 </style>

+ 300 - 0
src/views/custom_manage/compontents/historyContract.vue

@@ -0,0 +1,300 @@
+<template>
+    <!-- 历史签约弹窗 -->
+    <div class="history-contract-wrap">
+        <el-dialog
+        :visible.sync="isPreview"
+        :modal-append-to-body='false'
+        @close="$emit('close')"
+        title="历史签约"
+        center
+        top="7vh"
+        v-dialogDrag
+        width="1200px">
+            <div class="dialog-wrap">
+                <div class="contract-tab">
+                    <span :class="{'active':contractType==='ficc'}" @click="changeContractType('ficc')">FICC</span>
+                    <span :class="{'active':contractType==='rai'}" @click="changeContractType('rai')">权益</span>
+                </div>
+                <div class="contract-list">
+                    <div class="contract-item" v-for="(item,index) in contractList" :key="item.ContractCode">
+                        <div class="contract-tag">
+                            <el-tag>
+                                {{item.ContractType}}
+                                <el-tooltip
+                                class="item" 
+                                effect="dark"
+                                v-if="item.ContractType!='补充协议'"
+                                placement="top-start">
+                                    <div slot="content" v-if="item.ContractType=='新签合同'">没有正式转试用记录的客户,在申请转正时提交的合同</div>
+                                    <div slot="content" v-if="item.ContractType=='续约合同'">
+                                        1、有正式转试用记录的客户,在申请转正时提交的合同<br>
+                                        2、所有客户在续约申请时提交的合同
+                                    </div>
+                                    <i class="el-icon-info"></i>
+                                </el-tooltip>
+                            </el-tag>
+                            <span :style="{'text-decoration-line':item.ContractId?'underline':'none'}" @click="toContractDetail(item)">合同编号:{{item.ContractCode}}</span>
+                        </div>
+                        <div class="line"></div>
+                        <!-- 合同基本信息 -->
+                        <div class="contract-base">
+                            <ul class="base-lise">
+                                <li><p>合同期限:{{item.StartDate+'~'+item.EndDate}}</p><p>合同金额:{{item.Money}}</p></li>
+                                <li><p>付款方式:{{item.PayMethod}}</p><p>付款渠道:{{item.PayChannel}}</p></li>
+                                <li><p>审批时间:{{item.ModifyTimeStr|formatTime}}</p><p></p></li>
+                            </ul>
+                        </div>
+                        <!-- 权限设置和查看附件 -->
+                        <div class="contract-info">
+                            <div @click="showExpand(index,'root')">权限设置 <span><i :class="item.extend?'el-icon-arrow-down':'el-icon-arrow-right'"></i></span></div>
+                            <!-- <el-button type="primary" style="width:100px;" @click="showContractFiles(item)">合同附件</el-button> -->
+                        </div>
+                        <div class="contract-root" v-show="item.extend">
+                            <ul class="menu_lists">
+                                <li v-for="auth in item.PermissionList" :key="auth.ClassifyName" class="menu_item">
+                                    <el-checkbox :indeterminate="auth.CheckList.length>0&&auth.CheckList.length<auth.Items.length" v-model="auth.CheckAll" disabled style="marginRight:30px;fontWeight:bold;">{{auth.ClassifyName+':'}}</el-checkbox>
+                                    <el-checkbox-group v-model="auth.CheckList" disabled>
+                                        <el-checkbox v-for="list in auth.Items" :label="list.ChartPermissionId" :key="list.ChartPermissionId" class="list_item">{{list.PermissionName}}</el-checkbox>
+                                    </el-checkbox-group>
+                                </li>
+                            </ul>
+                        </div>
+                        <div class="contract-info">
+                            <div @click="showExpand(index,'files')">合同附件 <span><i :class="item.filesExtend?'el-icon-arrow-down':'el-icon-arrow-right'"></i></span></div>
+                        </div>
+                       <div class="contract-files" v-show="item.filesExtend">
+                            <ul class="file-list">
+                                <li v-for="img in item.constractFiles" :key="img">
+                                    <img :src="require('@/assets/img/constract/word-icon.png')" v-if="img.type=='word'" @click="preViewConstractFile(img)"/>
+                                    <img :src="require('@/assets/img/constract/pdf.png')" v-else-if="img.type=='pdf'" @click="preViewConstractFile(img)"/>
+                                    <img :src="img.url" v-else-if="img.type=='img'" @click="preViewConstractFile(img,item.constractFiles)"/>
+                                </li>
+                            </ul>
+                       </div>
+                    </div>
+                    <span v-if="!contractList.length" style="font-size:16px;color:#999;">暂无历史合同</span>
+                </div>
+            </div>
+            <el-image-viewer 
+                v-if="showViewer" 
+                :on-close="()=>{this.showViewer = false}" 
+                :url-list="constractFileImgList" />
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
+export default {
+    props:{
+        isPreview:{
+            type:Boolean,
+            default:false
+        },
+        dealList:{
+            type:Array,
+            default:()=>{return []}
+        }
+    },
+    components:{ElImageViewer},
+    watch:{
+        isPreview(val){
+            if(val){
+                this.getContractList()
+            }
+        }
+    },
+    data() {
+        return {
+            ficcContractList:[],
+            raiContractList:[],
+            contractList:[],
+            contractType:'',
+            showViewer:false,
+            constractFileImgList:[]
+        };
+    },
+    methods: {
+        getContractList(){
+            this.ficcContractList = this.dealList.filter(i=>i.ProductId===1)
+            this.raiContractList = this.dealList.filter(i=>i.ProductId===2)
+            this.changeContractType('ficc')
+            if(!this.ficcContractList.length&&this.raiContractList.length){
+                this.changeContractType('rai')
+            }
+        },
+        changeContractType(type){
+            if(this.contractType===type) return 
+            this.contractType = type
+            type==='ficc'&&(this.contractList=this.ficcContractList)
+            type==='rai'&&(this.contractList=this.raiContractList)
+        },
+        showContractFiles(data){
+            this.constractFileImgList = []
+            const {constractFiles} = data
+            const imageList = constractFiles.filter(i=>i.type==='img')
+            const wordList = constractFiles.filter(i=>i.type==='word')
+            const pdfList = constractFiles.filter(i=>i.type==='pdf')
+            imageList.forEach(i=>{
+                this.constractFileImgList.push(i.url)
+            })
+            /* wordList.forEach(i=>{
+                window.open('https://view.officeapps.live.com/op/view.aspx?src='+i.url,'_blank');
+            })
+            pdfList.forEach(i=>{
+                window.open(i.url);
+            }) */
+            if(this.constractFileImgList.length){
+                this.showViewer = true
+            }
+        },
+        preViewConstractFile(data,list=[]){
+            this.constractFileImgList = []
+            if(data.type==='word'){
+                window.open('https://view.officeapps.live.com/op/view.aspx?src='+data.url,'_blank');
+            }
+            if(data.type==='pdf'){
+                window.open(data.url);
+            }
+            if(data.type==='img'){
+                //改变list的顺序,当前点击的为第一个
+                list.filter(i=>i.type==='img').map(i=>{this.constractFileImgList.push(i.url)})
+                const index = this.constractFileImgList.findIndex(url=>url===data.url)
+                this.constractFileImgList = [...this.constractFileImgList.slice(index),...this.constractFileImgList.slice(0,index)]
+                if(this.constractFileImgList.length){
+                    this.showViewer = true
+                }
+            }
+        },
+        showExpand(index,type='root'){
+            type==='root'&&(this.contractList[index].extend = !this.contractList[index].extend)
+            type==='files'&&(this.contractList[index].filesExtend = !this.contractList[index].filesExtend)
+            this.contractList.splice(index,1,this.contractList[index])
+        },
+        toContractDetail(item){
+            if(!item.ContractId) return 
+            const { href } = this.$router.resolve({path:'/contractdetail',query:{contractId:item.ContractId}})||{href:''}
+            href&&window.open(href, '_blank');
+        }
+    },
+};
+</script>
+
+<style scoped lang="scss">
+.history-contract-wrap{
+    .dialog-wrap{
+        padding:5px 60px 30px 60px;
+        .contract-tab{
+            display: flex;
+            margin-bottom: 30px;
+            span{
+                flex: 1;
+                text-align: center;
+                font-size: 16px;
+                padding-bottom: 5px;
+                cursor: pointer;
+                &.active{
+                    color: #0052D9;
+                    border-bottom: 2px solid #0052D9;
+                }
+            }
+        }
+        .contract-list{
+            max-height: 600px;
+            min-height: 200px;
+            overflow-y: auto;
+            padding-right: 6px;
+            .contract-item{
+                padding:20px;
+                border:1px solid #DCDFE6;
+                border-radius: 4px;
+                margin-bottom: 30px;
+                display: flex;
+                flex-direction: column;
+                gap:20px 0;
+                .contract-tag{
+                    span{
+                        cursor: pointer;
+                        &:last-child{
+                           margin-left: 12px; 
+                        }
+                        font-size: 16px;
+                        color:#409EFF;
+                    }
+                }
+                .line{
+                    height: 1px;
+                    background-color: #DCDFE6;
+                    margin: 0 -20px;
+                }
+                .contract-base{
+                    li{
+                        display: flex;
+                        border: 1px solid #DCDFE6;
+                        border-bottom: none;
+                        &:last-child{
+                            border-bottom: 1px solid #DCDFE6;
+                        }
+                        p{
+                            font-size: 16px;
+                            flex: 1;
+                            min-height: 48px;
+                            display: flex;
+                            align-items: center;
+                            margin-left: 20px;
+                            &:first-child{
+                                border-right: 1px solid #DCDFE6;
+                            }
+                        }
+                    }
+                }
+                .contract-info{
+                    display: flex;
+                    justify-content: space-between;
+                    align-items: center;
+                    div,i::before{
+                        font-size: 14px;
+                        font-weight: bold;
+                        color:#333333;
+                        cursor: pointer;
+                    }
+                }
+                .contract-root{
+                    border:2px dashed #DCDFE6;
+                    border-radius: 4px;
+                    padding:20px;
+                    .menu_lists{
+                        li{
+                            display: flex;
+                            margin-bottom: 20px;
+                            &:last-child{
+                                margin-bottom: 0;
+                            }
+                        }
+                    }
+                }
+                .contract-files{
+                    .file-list{
+                        display: flex;
+                        gap: 10px;
+                        flex-wrap: wrap;
+                        li{
+                            width:240px;
+                            height:180px;
+                            padding: 10px;
+                            box-sizing: border-box;
+                            cursor: pointer;
+                            border-radius: 4px;
+                            background-color: rgb(170, 170, 170);;
+                            img{
+                                width: 100%;
+                                height: 100%;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+</style>

+ 23 - 0
src/views/custom_manage/customList/components/customRemarkDialog.vue

@@ -29,6 +29,12 @@
                 <el-table-column label="创建时间" key="CreateTime" align="center">
                     <template slot-scope="scope">{{scope.row.CreateTime}}</template>
                 </el-table-column>
+                <el-table-column label="操作" align="center" v-if="Role!=='admin'">
+                    <template slot-scope="{row}">
+                        <el-button type="text" size="small" style="color:red;" v-if="row.ButtonDel"
+                            @click="deleteRecord(row)">删除</el-button>
+                    </template>
+                </el-table-column>
             </el-table>
         </template>
         <div style="padding:20px 0;"></div>
@@ -101,6 +107,23 @@ export default {
                 this.tableLoading = false
             })
         },
+        //删除备注
+        deleteRecord(data){
+            this.$confirm('备注删除后不可恢复,确认删除吗?','提示',{
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type:'warning',
+                appendToBody:false
+            }).then(()=>{
+                customInterence.deleteRemark({
+                    RemarkId:data.RemarkId
+                }).then(res=>{
+                    if(res.Ret!==200) return 
+                    this.$message.success("删除成功")
+                    this.getRemarkList()
+                })
+            })
+        },
         closeDia(){
             this.$emit('close')
         }

+ 17 - 12
src/views/custom_manage/customList/customDetail.vue

@@ -127,13 +127,10 @@
 
 				</div>
 				<div style="flex-shrink: 0;">
-					<div style="fontSize:14px;color:#409EFF;textAlign:right;marginBottom:15px;" v-if="isBtnShow.BtnHistoryList&&dealList.length">
-						<span @click="previewHistory" style="cursor:pointer;">历史签约</span>
-					</div>
-					
-					<div style="display:flex;justify-content:flex-end;margin:0 0 30px;">
-						<el-button type="primary" style="width:80px;marginRight:24px;" @click="editHandle" v-if="isBtnShow.BtnEdit">编辑</el-button>
-						<el-button type="primary" plain style="width:80px;" @click="delHandle" v-if="isBtnShow.BtnDelete">删除</el-button>
+					<div style="display:flex;justify-content:flex-end;align-items: center;gap:0 20px;margin:0 0 30px;">
+						<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>
 					</div>
 					<Ctimeline :id="companyId"></Ctimeline>
 				</div>
@@ -373,8 +370,8 @@
 		v-if="showViewer" 
 		:on-close="closeViewer" 
 		:url-list="[imgView]" />
-		<!-- 历史签约弹窗 -->
-		<el-dialog
+		<!-- 历史签约弹窗 旧版-->
+		<!-- <el-dialog
 		:visible.sync="isPreview"
 		:modal-append-to-body='false'
 		:show-close="false"
@@ -441,7 +438,7 @@
 									<el-image :src="require('@/assets/img/constract/word-icon.png')" style="width:240px;height:180px;" v-if="img.type=='word'" @click.native="preViewConstractFile(img)"></el-image>
 									<pdf ref="pdf" :src="img.url" style="width:240px;height:180px;overflow:hidden" v-else-if="img.type=='pdf'" @click.native="preViewConstractFile(img)"></pdf>
 									<el-image :src="img.url" :preview-src-list="constractFileImgList" alt="" style="background:#aaa;width:240px;height:180px;" v-else @click.native="preViewConstractFile(item.constractFiles)"/>
-									<!-- <i class="el-icon-zoom-in" style="position:absolute;right:12px;top:12px;color:#fff;" @click="preViewConstractFile(img)"></i> -->
+									<i class="el-icon-zoom-in" style="position:absolute;right:12px;top:12px;color:#fff;" @click="preViewConstractFile(img)"></i>
 								</li>
 							</ul>
 						</li>
@@ -449,7 +446,7 @@
 				</div>
 			</template>
 			<span v-else>暂无历史合同</span>
-		</el-dialog>
+		</el-dialog> -->
 		<!-- 导入的联系人表格 -->
 		<el-dialog
 		title="批量导入"
@@ -632,6 +629,12 @@
 		></product-read-info>
 		<!-- 研选服务点数明细 弹框 -->
 		<DeductDetailDlg :isShowResearchNumber.sync="isShowResearchNumber" :dataForm="raiform"/>
+		<!-- 历史签约弹窗 新版 -->
+		<HistoryContract 
+			:isPreview="isPreview"
+			:dealList="dealList"
+			@close="isPreview=false"
+		/>
 	</div>	
 </template>
 
@@ -649,9 +652,10 @@ import CpessionTableEquity from '../compontents/CpessionTableEquity.vue'
 import ExportData from '../compontents/exportData.vue'
 import ProductReadInfo from '../compontents/ProductReadInfo.vue'
 import DeductDetailDlg from './components/deductDetailDlg.vue'
+import HistoryContract from '../compontents/historyContract.vue'
 export default {
 	name:'',
-	components: {Ctimeline,Contactdia,Readia,ElImageViewer,CpessionTable,pdf,chartAuthDialog, ExportData ,CpessionTableEquity, ProductReadInfo, DeductDetailDlg},
+	components: { Ctimeline, Contactdia, Readia, ElImageViewer, CpessionTable, pdf, chartAuthDialog, ExportData, CpessionTableEquity, ProductReadInfo, DeductDetailDlg, HistoryContract },
 	computed:{
 		Role() {
 			let role = localStorage.getItem('Role') || '';
@@ -851,6 +855,7 @@ export default {
 		//点击预览历史签约中的合同附件
 		preViewConstractFile(e) {
 			console.log(e);
+			this.constractFileImgList=[]
 			if(e instanceof Array){
 				e.forEach(item=>{
 					if(item.type==='img'){

+ 44 - 13
src/views/custom_manage/customList/customList.vue

@@ -641,7 +641,8 @@
 		<el-dialog
 		:visible.sync="isRemarkLook"
 		:close-on-click-modal="false"
-		:modal-append-to-body='false'
+		:modal-append-to-body="true"
+		:append-to-body="true"
 		@close="closeDia"
 		width="800px"
 		v-dialogDrag
@@ -674,6 +675,12 @@
 				<el-table-column label="创建时间"  key="CreateTime" align="center">
 					<template slot-scope="scope">{{scope.row.CreateTime}}</template>
 				</el-table-column>
+				<el-table-column label="操作" align="center">
+					<template slot-scope="{row}">
+						<el-button type="text" size="small" style="color:red;" v-if="row.ButtonDel"
+							@click="lookRemarkDelete(row)">删除</el-button>
+					</template>
+				</el-table-column>
 			</el-table>
 			</template>
 			<div style="padding:20px 0;"></div>
@@ -2080,6 +2087,28 @@ ShareListDialog},
 				})
 			}
 		},
+		//删除备注
+		async lookRemarkDelete(data){
+			this.$confirm('备注删除后不可恢复,确认删除吗?','提示',{
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type:'warning',
+				appendToBody:false
+			}).then(async()=>{
+				const res = await customInterence.deleteRemark({
+					RemarkId:data.RemarkId
+				})
+				if(res.Ret!==200) return 
+				this.$message.success("删除成功")
+				customInterence.lookRemarkAuth({
+					CompanyId:this.lookRemarkItem.CompanyId
+				}).then(res => {
+					if(res.Ret === 200) {
+						this.lookRemarkList=res.Data;
+					}
+				})
+			})
+		},
 		accumulativeFrequencyClick(item){
 			this.accumulativeFrequencyDlg = true
 			this.accumulativeFrequencyItem = item.row
@@ -2480,18 +2509,6 @@ ShareListDialog},
 			}
 		}
 	}
-	.look-remark-commit {
-		width: 426px;
-		height: 41px;
-		background: #409EFF;
-		margin:  30px auto;
-		text-align: center;
-		line-height: 41px;
-		color: #fff;
-		box-shadow: 0px 2px 6px 1px rgba(64, 158, 255, 0.05);
-		border-radius: 4px 4px 4px 4px;
-		cursor: pointer;
-	}
 	.mouse-enter {
 		&:hover {
 			text-decoration:underline;
@@ -2545,4 +2562,18 @@ ShareListDialog},
 		}
 	}
 }
+</style>
+<style lang="scss">
+.look-remark-commit{
+	width: 426px;
+	height: 41px;
+	background: #409EFF;
+	margin:  30px auto;
+	text-align: center;
+	line-height: 41px;
+	color: #fff;
+	box-shadow: 0px 2px 6px 1px rgba(64, 158, 255, 0.05);
+	border-radius: 4px 4px 4px 4px;
+	cursor: pointer;
+	}
 </style>

+ 423 - 46
src/views/custom_manage/customList/customShareList.vue

@@ -272,21 +272,38 @@
                     </el-table-column>
 					<el-table-column label="操作" align="center" min-width="7.14%">
 						<template slot-scope="scope">
-						    <div class="tool" style="display: flex;flex-direction: column;">
-						        <span class="editsty" style="white-space: nowrap;" @click="itemclickHandle({type:'查看权限',data:scope.row})">
-						            查看权限
-						        </span>
-						        <span @click="itemclickHandle({type:'分配销售',data:scope.row})" v-if="Role=='thisAdmin'" class="editsty"
-						            style="white-space: nowrap;">
-						            {{scope.row.ShareSellerId?'修改销售':'分配销售'}}
-						        </span>
-						        <span class="editsty" @click="itemclickHandle({type:'服务记录',data:scope.row})">
-						            服务记录
-						        </span>
-						        <span class="editsty" @click="itemclickHandle({type:'备注',data:scope.row})">
-						            备注
-						        </span>
-						    </div>
+							<div class="tool" style="display: flex; align-items: center;justify-content: center;" v-if="scope.row.ApproveStatus!='待审批'">
+								<!-- <span class="editsty" style="white-space: nowrap;" @click="itemclickHandle({type:'查看权限',data:scope.row})">
+									查看权限
+								</span>
+								<span @click="itemclickHandle({type:'分配销售',data:scope.row})" v-if="Role=='thisAdmin'" class="editsty"
+									style="white-space: nowrap;">
+									{{scope.row.ShareSellerId?'修改销售':'分配销售'}}
+								</span>
+								<span class="editsty" @click="itemclickHandle({type:'服务记录',data:scope.row})">
+									服务记录
+								</span>
+								<span class="editsty" @click="itemclickHandle({type:'备注',data:scope.row})">
+									备注
+								</span> -->
+								<div class="font-tool" style="display:flex;flex-direction:column;">
+									<span class="editsty" v-for="item in getToolBtnList(scope.row).slice(0,3)" :key="item.type" @click="itemclickHandle({type:item.type,data:scope.row})">
+										{{item.type==='分配销售'?scope.row.ShareSellerId?'修改销售':'分配销售':item.type}}
+									</span>
+								</div>
+								<el-dropdown size="medium" placement="bottom-start" @command="itemclickHandle" style="height: 16px;margin-left: 5px;" v-if="getToolBtnList(scope.row).length>3">
+									<span class="el-dropdown-link">
+										<i class="el-icon-more el-icon--right"></i>
+										<el-dropdown-menu slot="dropdown">
+											<el-dropdown-item :command="{type:item.type,data:scope.row}" 
+											v-for="item in getToolBtnList(scope.row).slice(3)" :key="item.type">
+												<span>{{item.type}}</span>
+											</el-dropdown-item>
+										</el-dropdown-menu>
+									</span>
+								</el-dropdown>
+
+							</div>
 						</template>
 					</el-table-column>
 					<div slot="empty" style="line-height:44px;margin:60px 0;color:#999;">
@@ -314,7 +331,7 @@
 		:visible.sync="assignedSellerShow"
 		:close-on-click-modal="false"
 		:modal-append-to-body='false'
-    :title="assignedSellerTitle"
+		:title="assignedSellerTitle"
 		@close="cancelAssign"
 		center
 		width="444px">
@@ -328,7 +345,7 @@
 						placeholder="请选择修改的销售"
 						style="width: 240px"
 						filterable>
-            <el-option :label="item.RealName" :value="item.AdminId" v-for="item in salesArr" :key="item.AdminId"></el-option>
+						<el-option :label="item.RealName" :value="item.AdminId" v-for="item in salesArr" :key="item.AdminId"></el-option>
 					</el-select>
 				</el-form-item>
 			</el-form>	
@@ -346,7 +363,7 @@
       :customInfo.sync="customInfo"
     />
     <!-- 路演业阅读的弹框 -->
-		<accumulative-frequency-dlg :accumulativeFrequencyDlg.sync="accumulativeFrequencyDlg" :accumulativeFrequencyItem.sync="accumulativeFrequencyItem" />
+	<accumulative-frequency-dlg :accumulativeFrequencyDlg.sync="accumulativeFrequencyDlg" :accumulativeFrequencyItem.sync="accumulativeFrequencyItem" />
     <!-- 服务记录弹窗 -->
     <share-list-dialog 
         :isShareRecodeDialogShow.sync="isShareRecodeDialogShow"
@@ -359,6 +376,53 @@
         :lookRemarkItem="customInfo"
         @close="isRemarkLook=false"
     />
+	<!-- 补全客户信息弹窗 -->
+	<CompleteInfo
+		:form="completeForm"
+		@cancel="cancelCompleteInfo($event)"
+	></CompleteInfo>
+
+	<!-- 合同  -->
+	<el-dialog
+		:visible.sync="contractModel.show"
+		:modal-append-to-body='false'
+		width="800px"
+		class="self-dialog"
+		v-dialogDrag
+	>
+		<div style="text-align:center;margin:30px 0 100px 0">
+			<img width="191" src="../../../assets/img/cus_m/bzht.png" @click="handleContractModel('标准')" style="margin-right:80px;cursor: pointer;">
+			<img width="191" src="../../../assets/img/cus_m/fbzht.png" @click="handleContractModel('非标准')" style="cursor: pointer;">
+			<p style="font-size:15px;color:#333;text-align:left;padding-left:100px;margin-top:30px">
+				注:<br>
+				系统生成合同请选择标准合同入口<br>
+				非系统生成合同请选择非标准合同入口(包含已走完邮件流程的标准合同)</p>
+		</div>
+	</el-dialog>
+	<!-- 合同信息 -->
+	<ContractInfo 
+		:initData="contractDialog" 
+		@contractInfoDialogClose="contractInfoDialogClose"
+	></ContractInfo>
+
+	<!-- 增开试用弹窗 -->
+	<el-dialog
+		:visible.sync="isAddTrial"
+		:close-on-click-modal="false"
+		:modal-append-to-body='false'
+		@close="isAddTrial=false"
+		width="800px"
+		v-dialogDrag
+		center>
+			<div slot="title" style="display:flex;alignItems:center;">
+				<span style="fontSize:16px;">增开试用(默认两个月)</span>
+			</div>
+			<Cauthlist
+				:autharr="authList"
+				:id="addTryId"
+				@addOver="addTryOver"
+				@close="isAddTrial=false"/>
+		</el-dialog>
 	</div>
 </template>
 
@@ -370,10 +434,13 @@ import mixin from './mixins/customlistMixin';
 import TotalDayDialog from '../compontents/TotalDayDialog.vue'
 import ShareListDialog from './components/shareListDialog.vue';
 import CustomRemarkDialog from './components/customRemarkDialog.vue';
+import ContractInfo from '../compontents/ContractInfo.vue';
+import CompleteInfo from '../compontents/CompleteInfo.vue';
+import Cauthlist from '../compontents/CauthList.vue';
 export default {
 	name:'',
 	mixins: [ mixin ],
-	components: {TotalDayDialog,AccumulativeFrequencyDlg,permissionView, ShareListDialog,CustomRemarkDialog},
+	components: {TotalDayDialog,AccumulativeFrequencyDlg,permissionView, ShareListDialog,CustomRemarkDialog,ContractInfo,CompleteInfo,Cauthlist},
 	computed:{
 		isPWang(){
 			return this.adminId == 66
@@ -398,14 +465,14 @@ export default {
 	},
 	data () {
 
-    this.statusList = ['全部','已分配','待分配']
+		this.statusList = ['全部','已分配','待分配']
 		return {
 			adminId:localStorage.getItem('AdminId'),
 			sales:[],
 			salesArr:[],//销售
 			tableData:[],
 			isShowloadding:false,
-      status:2,
+			status:2,
 			search_txt:'',
 			total:0,
 			page_no:1,
@@ -415,7 +482,7 @@ export default {
 			lookAuthList:[],//查看的权限
 			lookAuthListEquity:[],//权益
 			assignedSellerShow:false,//分配销售弹窗
-      assignedSellerTitle:'分配销售',
+			assignedSellerTitle:'分配销售',
 			assignform:{
 				CompanyId:'',
 				CompanyName:'',
@@ -430,11 +497,29 @@ export default {
 			sort_param:'',//自定义排序方式的哪一个
 			btnCommandList:{
 				BtnView: '查看权限',
-				BtnAllocation: '分配销售'
+				BtnModifySeller: '分配销售',
+				BtnUpdate: '续约申请',
+				BtnAddAgreement: '补充协议',
+				BtnTryOut: '增开试用',
+				BtnServiceRecord:'服务记录',
+				BtnRemarkView:'备注'
 			},	// 按钮命令列表
 			accumulativeFrequencyDlg:false,//路演业阅读的弹框
 			accumulativeFrequencyItem:{},
-            isRemarkLook:false,//备注的弹框
+			isRemarkLook:false,//备注的弹框
+			contractDialog:{
+				show:false,
+				type:'',//类型 续约申请、补充协议
+				cusdata:null,//客户信息(列表用户数据)
+			},//续约申请、补充协议 合同信息弹窗
+			contractModel:{
+				show:false,
+				data:null,//客户信息(列表用户数据)
+				type:'',//类型 续约申请、补充协议
+			},//续约申请、补充协议 选择合同类型弹窗 
+			completeForm:{},
+			isAddTrial:false,
+			authList:[],
 		};
 	},
 	methods: {
@@ -447,8 +532,8 @@ export default {
 				PageSize:this.pageSize,
 				CurrentIndex:this.page_no,
 				Keyword:this.search_txt,
-        ListParam:this.Role=='thisSeller'?1:this.status, // 销售只能看分配给自己的共享客户,即状态需要是已分配
-        SellerId:this.sales.join(',')
+				ListParam:this.Role=='thisSeller'?1:this.status, // 销售只能看分配给自己的共享客户,即状态需要是已分配
+				SellerId:this.sales.join(',')
 			}
 			customInterence.getShareCustomList(params).then(res => {
 				if(res.Ret === 200) {
@@ -474,20 +559,34 @@ export default {
 				query:{
 					id:item.CompanyId,
 				}});
-      		window.open(href, '_blank');
+			window.open(href, '_blank');
+		},
+		getToolBtnList(data){
+			let toolList = []
+			const {BtnItem} = data
+			for(const i in this.btnCommandList){
+				if(BtnItem[i]){
+					toolList.push({type:this.btnCommandList[i]})
+				}
+			}
+			return toolList
 		},
 
 		/* 操作-按钮 */
 		async itemclickHandle(query) {
-			if(query.type == '分配销售') {
-        this.assignedSellerFun(query.data)
+			if(query.type == '分配销售'||query.type=='修改销售') {
+				this.assignedSellerFun(query.data)
 			}else if(query.type=='查看权限'){
 				this.lookHandle(query.data)
-            }else if(query.type=='服务记录'){
-                this.handleShowShareRecode(query.data)
-            }else if(query.type=='备注'){
-                this.handleShowRemark(query.data)
-            }
+			}else if(query.type=='服务记录'){
+				this.handleShowShareRecode(query.data)
+			}else if(query.type=='备注'){
+				this.handleShowRemark(query.data)
+			}else if(["续约申请","补充协议"].includes(query.type)){
+				this.handleOpenContractChoose(query.type,query.data)
+			}else if("增开试用"){
+				this.addTrialHandle(query.data)
+			}
 		},
 		/* 查看权限 */
 		lookHandle(item) {
@@ -496,7 +595,7 @@ export default {
 				CompanyId:item.CompanyId
 			}).then(res => {
 				if(res.Ret === 200) {
-          this.isLook = true;
+					this.isLook = true;
 					let auth = [];			
 					res.Data.List ?	res.Data.List.forEach(item=> { 
 						auth.push(item.Items)
@@ -512,14 +611,14 @@ export default {
 				}
 			})
 		},
-    assignedSellerFun(row){
+		assignedSellerFun(row){
 			this.assignform = {
 				CompanyName:row.CompanyName,
 				CompanyId:row.CompanyId,
 				SellsId:row.ShareSellerId==0?'':row.ShareSellerId+'',
 			}
 			this.assignedSellerShow = true;
-    },
+		},
 		/* 页码改变 */
 		handleCurrentChange(page) {
 			this.page_no = page;
@@ -529,7 +628,7 @@ export default {
 		closeDia() {
 			this.lookTitle = '';
 			this.lookAuthList = [];
-      this.lookAuthListEquity = []
+			this.lookAuthListEquity = []
 			this.isLook = false;
 		},
 		/* 分配销售 */
@@ -562,26 +661,304 @@ export default {
 		},
 		/* 到期天数排序发生变化 全局排序 */
 		sortChangeHandle(item) {
-        this.sort_type = item.order === 'ascending' ? 'asc':item.order === 'descending' ? 'desc' : '';
-        this.sort_param = item.prop;
-				this.getTableData();
+			this.sort_type = item.order === 'ascending' ? 'asc':item.order === 'descending' ? 'desc' : '';
+			this.sort_param = item.prop;
+			this.getTableData();
 		},
 		accumulativeFrequencyClick(item){
 			this.accumulativeFrequencyDlg = true
 			this.accumulativeFrequencyItem = item.row
 		},
-        handleShowRemark(item){
-            this.customInfo = item
-            this.isRemarkLook = true
-        }
+		handleShowRemark(item){
+			this.customInfo = item
+			this.isRemarkLook = true
+		},
+		//关闭合同信息弹窗
+		contractInfoDialogClose(e){
+			this.contractDialog={
+				show:false,
+				type:'',
+				cusdata:null,
+			}
+			if(e==='updateList'){
+				this.getTableData();
+			}
+		},
+		//验证客户信息完整性
+		async getCustomerDetail(id){
+			let res=await customInterence.customDetail({
+				CompanyId:id
+			})
+			if(res.Ret!=200) return
+
+			let RoleType=localStorage.getItem('RoleType')
+			let IndustryId='',Source=';'
+			if(RoleType=='ficc'){
+				IndustryId=res.Data.FiccItem.IndustryId
+				Source=res.Data.FiccItem.Source
+			}else if(RoleType=='权益'){
+				IndustryId=res.Data.RaiItem.IndustryId
+				Source=res.Data.RaiItem.Source
+			}
+			if((res.Data.Item.RegionType!='海外'&&!res.Data.Item.Province&&!res.Data.Item.City)||!res.Data.Item.CreditCode||!IndustryId||!Source){
+				this.completeForm={
+					nameDisable:res.Data.Item.CompanyName!='',
+					CityDisable:res.Data.Item.City!='',
+					CreditCodeDisable:res.Data.Item.CreditCode!='',
+					IndustryIdDisable:IndustryId!=' ',
+					SourceDisable:Source!='',		
+					CompanyId:id,
+					name:res.Data.Item.CompanyName,
+					Province:res.Data.Item.Province,
+					RegionType:res.Data.Item.RegionType,
+					City:res.Data.Item.City,
+					CreditCode:res.Data.Item.CreditCode,
+					IndustryId:IndustryId?IndustryId:'',
+					Source:Source,
+					flag:false,//是否为跨部门
+					show:true
+				}
+			}else{
+				this.completeForm.show=false
+			}
+			return new Promise((resolve,reject)=>{
+				resolve(this.completeForm.show)
+			})
+		},
+		//关闭补全信息弹窗
+		cancelCompleteInfo(refresh){
+			// 刷新列表
+			if(refresh){
+				this.getTableData()
+			}
+			this.completeForm={
+				show:false
+			}
+		},
+		//打开合同选择弹窗
+		async handleOpenContractChoose(type,data){
+			
+			let flag=await this.getCustomerDetail(data.CompanyId)
+			if(flag) return
+			this.contractModel = {
+				type,data,show:true
+			}
+		},
+		//选择标准/非标合同
+		handleContractModel(model){
+			if(model==='标准'){
+				this.contractDialog.type = this.contractModel.type
+				this.contractDialog.cusdata = this.contractModel.data
+				this.contractDialog.show = true
+			}else{
+				sessionStorage.setItem('companyInfo',JSON.stringify(this.contractModel.data))
+				const routeMap = {
+					'续约申请':'/updateCustom',
+					'补充协议':'/addAgreement'
+				}
+				const { href } = this.$router.resolve({path:routeMap[this.contractModel.type],})||{href:''}
+				href&&window.open(href, '_blank');
+			}
+			this.contractModel={
+				type:'',data:null,show:false
+			}
+		},
+		//增加试用完成
+		addTryOver(){
+			this.isAddTrial = false;
+			this.getTableData();
+		},
+		//增开试用
+		addTrialHandle(item) {
+			this.authList = [];
+			customInterence.lookauth({
+				CompanyId:item.CompanyId,
+				LookType:1
+			}).then(res => {
+				if(res.Ret === 200) {
+					let auth = [];
+					// res.Data.List 有值为 ficc
+					// res.Data.ListRai 有值为 权益
+					res.Data.List ? res.Data.List.forEach(item=> {
+						let obj = {
+							checkAll:item.CheckList&&item.CheckList.length===item.Items.length?true:false,
+							isIndeterminate:item.CheckList&&item.CheckList.length>0 && item.CheckList.length<item.Items.length,
+							defaultAuth:item.CheckList,
+							customType:'ficc',
+							...item,
+						}
+						auth.push(obj)
+					}):
+					// 权益 RaiMerge 0不管 1合并 2拆分 所传入的数据结构不一样
+					res.Data.ListRai[0].RaiMerge==1?res.Data.ListRai.forEach(item=> { // 合并
+						let obj = {
+							checkAll:item.CheckList&&item.CheckList.length===item.Items.length?true:false,
+							isIndeterminate:item.CheckList&&item.CheckList.length>0 && item.CheckList.length<item.Items.length,
+							defaultAuth:item.CheckList,
+							...item,
+						}
+						auth.push(obj)
+					}): res.Data.ListRai.forEach(item=> { // 拆分
+						let obj = {
+							defaultAuth:item.CheckList,
+							customType:'权益',
+							...item,
+						}	
+						// 组合所需的数据格式
+						obj.dataList=[
+							{
+								PermissionTypeName:'',
+								medicine:{
+									value:'医药',
+									isIndeterminate:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[1].ChartPermissionId].includes(id)).length ==1,
+									isCheckAll:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[1].ChartPermissionId].includes(id)).length == 2,
+									isDisabled:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[1].ChartPermissionId].includes(id)).length ==2
+								},
+								consumption:{
+									value:'消费',
+									isIndeterminate:item.CheckList.filter(id => [obj.Items[2].ChartPermissionId,obj.Items[3].ChartPermissionId].includes(id)).length ==1,
+									isCheckAll:item.CheckList.filter(id => [obj.Items[2].ChartPermissionId,obj.Items[3].ChartPermissionId].includes(id)).length == 2,
+									isDisabled:item.CheckList.filter(id => [obj.Items[2].ChartPermissionId,obj.Items[3].ChartPermissionId].includes(id)).length ==2
+								},
+								technology:{
+									value:'科技',
+									isIndeterminate:item.CheckList.filter(id => [obj.Items[4].ChartPermissionId,obj.Items[5].ChartPermissionId].includes(id)).length ==1,
+									isCheckAll:item.CheckList.filter(id => [obj.Items[4].ChartPermissionId,obj.Items[5].ChartPermissionId].includes(id)).length == 2,
+									isDisabled:item.CheckList.filter(id => [obj.Items[4].ChartPermissionId,obj.Items[5].ChartPermissionId].includes(id)).length ==2
+								},
+								smart:{
+									value:'智造',
+									isIndeterminate:item.CheckList.filter(id => [obj.Items[6].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length ==1,
+									isCheckAll:item.CheckList.filter(id => [obj.Items[6].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length == 2,
+									isDisabled:item.CheckList.filter(id => [obj.Items[6].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length ==2
+								},
+								strategy:{
+									value:'策略'
+								},
+								experts:{
+									value:'专家'
+								},
+								roadshow:{
+									value:'路演服务'
+								},
+								choose:{
+									value:'买方研选'
+								}
+							},
+							{
+								PermissionTypeName:{
+									value:'主观',
+									isIndeterminate:[1,2,3].includes(item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[2].ChartPermissionId,
+										obj.Items[4].ChartPermissionId,obj.Items[6].ChartPermissionId].includes(id)).length),
+									isCheckAll:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[2].ChartPermissionId,
+										obj.Items[4].ChartPermissionId,obj.Items[6].ChartPermissionId].includes(id)).length == 4,
+									isDisabled:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[2].ChartPermissionId,
+										obj.Items[4].ChartPermissionId,obj.Items[6].ChartPermissionId].includes(id)).length ==4
+								},
+								medicine:{
+									value:obj.Items[0].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[0].ChartPermissionId)
+								},
+								consumption:{
+									value:obj.Items[2].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[2].ChartPermissionId)
+								},
+								technology:{
+									value:obj.Items[4].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[4].ChartPermissionId)
+								},
+								smart:{
+									value:obj.Items[6].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[6].ChartPermissionId)
+								},
+								strategy:{
+									value:obj.Items[8].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[8].ChartPermissionId)
+								},
+								experts:{
+									value:obj.Items[9].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[9].ChartPermissionId)
+								},
+								roadshow:{
+									value:obj.Items[10].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[10].ChartPermissionId)
+								},
+								choose:{
+									value:obj.Items[11].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[11].ChartPermissionId)
+								}
+							},
+							{
+								PermissionTypeName:{
+									value:'客观',
+									isIndeterminate:[1,2,3].includes(item.CheckList.filter(id => [obj.Items[1].ChartPermissionId,obj.Items[3].ChartPermissionId,
+										obj.Items[5].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length),
+									isCheckAll:item.CheckList.filter(id => [obj.Items[1].ChartPermissionId,obj.Items[3].ChartPermissionId,
+										obj.Items[5].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length == 4,
+									isDisabled:item.CheckList.filter(id => [obj.Items[1].ChartPermissionId,obj.Items[3].ChartPermissionId,
+										obj.Items[5].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length ==4
+								},
+								medicine:{
+									value:obj.Items[1].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[1].ChartPermissionId)
+								},
+								consumption:{
+									value:obj.Items[3].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[3].ChartPermissionId)
+								},
+								technology:{
+									value:obj.Items[5].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[5].ChartPermissionId)
+								},
+								smart:{
+									value:obj.Items[7].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[7].ChartPermissionId)
+								},
+								strategy:{
+									value:obj.Items[8].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[8].ChartPermissionId)
+								},
+								experts:{
+									value:obj.Items[9].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[9].ChartPermissionId)
+								},
+								roadshow:{
+									value:obj.Items[10].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[10].ChartPermissionId)
+								},
+								choose:{
+									value:obj.Items[11].ChartPermissionId,
+									isDisabled:item.CheckList.includes(obj.Items[11].ChartPermissionId)
+								}
+							}
+						]
+
+						auth.push(obj)
+					})
+					this.authList = auth;
+				}
+			})
+			this.addTryId = item.CompanyId;
+			this.isAddTrial = true;
+		},
 	},
 	created() {
 		this.getSale()
-    this.getTableData()
+		this.getTableData()
 	}
 }
 </script>
 
+<style lang='scss'>
+	.self-dialog{
+		.el-dialog__header{
+			background-color: #fff !important;
+			.el-dialog__close.el-icon.el-icon-close{
+				color: #666;
+			}
+		}
+	}
+</style>
 <style lang='scss' scoped>
 	.ficc-package {
 		display: inline-block;

+ 46 - 2
src/views/custom_manage/customSearch.vue

@@ -415,7 +415,8 @@
 		<el-dialog
 		:visible.sync="isRemarkLook"
 		:close-on-click-modal="false"
-		:modal-append-to-body='false'
+		:modal-append-to-body="true"
+		:append-to-body="true"
 		@close="closeDia"
 		width="800px"
 		v-dialogDrag
@@ -448,6 +449,12 @@
 				<el-table-column label="创建时间"  key="CreateTime" align="center">
 					<template slot-scope="scope">{{scope.row.CreateTime}}</template>
 				</el-table-column>
+				<el-table-column label="操作" align="center">
+					<template slot-scope="{row}">
+						<el-button type="text" size="small" style="color:red;" v-if="row.ButtonDel"
+							@click="lookRemarkDelete(row)">删除</el-button>
+					</template>
+				</el-table-column>
 			</el-table>
 			</template>
 			<div style="padding:20px 0;"></div>
@@ -1556,7 +1563,29 @@ export default {
 				}
 				})
 			}
-		}
+		},
+		//删除备注
+		async lookRemarkDelete(data){
+			this.$confirm('备注删除后不可恢复,确认删除吗?','提示',{
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type:'warning',
+				appendToBody:false
+			}).then(async()=>{
+				const res = await customInterence.deleteRemark({
+					RemarkId:data.RemarkId
+				})
+				if(res.Ret!==200) return 
+				this.$message.success("删除成功")
+				customInterence.lookRemarkAuth({
+					CompanyId:this.lookRemarkItem.CompanyId
+				}).then(res => {
+					if(res.Ret === 200) {
+						this.lookRemarkList=res.Data;
+					}
+				})
+			})
+		},
 	},
 	created() {
 		/* 返回保持上次的状态 */
@@ -1652,4 +1681,19 @@ export default {
 		}
 	}
 }
+</style>
+<style lang="scss">
+	.look-remark-commit {
+		width: 426px;
+		height: 41px;
+		background: #409EFF;
+		margin:  30px auto;
+		text-align: center;
+		line-height: 41px;
+		color: #fff;
+		box-shadow: 0px 2px 6px 1px rgba(64, 158, 255, 0.05);
+		border-radius: 4px 4px 4px 4px;
+		cursor: pointer;
+	
+	}
 </style>