|
@@ -1,10 +1,1151 @@
|
|
|
+<script>
|
|
|
+import { defineComponent } from 'vue'
|
|
|
+export default defineComponent({
|
|
|
+ //进入前是否清除参数
|
|
|
+ beforeRouteEnter(to, from, next) {
|
|
|
+ if(!['/editCustom','/turnCustom','/updateCustom','/customDetail'].includes(from.path)) {
|
|
|
+ sessionStorage.removeItem('customListBack')
|
|
|
+ }
|
|
|
+
|
|
|
+ next()
|
|
|
+ }
|
|
|
+})
|
|
|
+</script>
|
|
|
+
|
|
|
<script setup>
|
|
|
import { ref } from 'vue'
|
|
|
+import { useRoute,useRouter } from 'vue-router'
|
|
|
+import { Search,MoreFilled } from '@element-plus/icons-vue'
|
|
|
+import { ElMessageBox,ElMessage } from 'element-plus'
|
|
|
+import { customInterence } from '@/api/api.js'
|
|
|
+import { useViewPermissionDia,useLookTrialDia,useCommunicaRecordDia,useChooseContractDia,useList,useAddTrialDia,useViewRemarkCustomDia,useCompleteInfoDia,useFreezeReasonDia } from "./hooks/customlistHook";
|
|
|
+import mPage from '@/components/mPage.vue'
|
|
|
+
|
|
|
+// import Capplydia from '../compontents/Capplydialog.vue'
|
|
|
+// import Contactdia from '../compontents/Contactdialog'
|
|
|
+// import Cauthlist from '../compontents/CauthList.vue'
|
|
|
+// import CompleteInfo from '../compontents/CompleteInfo.vue'
|
|
|
+// import ContractInfo from '../compontents/ContractInfo.vue'
|
|
|
+// import {locationOptions} from "./location"
|
|
|
+// import AccumulativeFrequencyDlg from '../compontents/accumulativeFrequencyDlg.vue'
|
|
|
+// import ModifyToDoDialog from '../compontents/ModifyToDoDialog.vue'
|
|
|
+// import CheckToDoDialog from '../compontents/CheckToDoDialog.vue'
|
|
|
+// import HistoryToDoDialog from '../compontents/HistoryToDoDialog.vue'
|
|
|
+// import permissionView from './components/permissionView.vue'
|
|
|
+// import TotalDayDialog from '../compontents/TotalDayDialog.vue'
|
|
|
+// import ShareListDialog from './components/shareListDialog.vue'
|
|
|
+
|
|
|
+const $router = useRouter()
|
|
|
+const $route = useRoute()
|
|
|
+
|
|
|
+
|
|
|
+const {
|
|
|
+ suspendHandle,
|
|
|
+ editHandle,
|
|
|
+ Role,
|
|
|
+ RaiSellerRole,
|
|
|
+ RoleType,
|
|
|
+ RoleIdentity,
|
|
|
+ SellerAdminId,
|
|
|
+} = useList();
|
|
|
+
|
|
|
|
|
|
+function initData() {
|
|
|
+ if(sessionStorage.getItem('customListBack')) {
|
|
|
+ let backData = JSON.parse(sessionStorage.getItem('customListBack'));
|
|
|
+ this.search_txt = backData.keyword;
|
|
|
+ this.page_no = backData.page_no,
|
|
|
+ this.act_status = backData.act_status,
|
|
|
+ this.type = backData.type,
|
|
|
+ this.trade = backData.trade,
|
|
|
+ this.sales = backData.sales,
|
|
|
+ this.variety = backData.variety,
|
|
|
+ this.date = backData.date,
|
|
|
+ this.start_date = backData.start_date,
|
|
|
+ this.end_date = backData.end_date,
|
|
|
+ this.createdate = backData.createdate,
|
|
|
+ this.search_txt = backData.keyword,
|
|
|
+ this.setmealSelect =backData.setmealSelect,
|
|
|
+ this.valueLocation=JSON.parse(backData.valueLocation)
|
|
|
+ this.todoType = backData.todoStatus
|
|
|
+ // const arr =[]
|
|
|
+ // this.valueLocation.forEach(item=>{
|
|
|
+ // arr.push(item.join(''))
|
|
|
+ // })
|
|
|
+ // this.locationValue=arr.join(',')
|
|
|
+ handleChangeLocation()
|
|
|
+ }
|
|
|
+ getSale();
|
|
|
+
|
|
|
+ // 从客户区域统计列表过来的参数
|
|
|
+ this.act_status=this.$route.params.Status ? this.$route.params.Status : this.act_status
|
|
|
+ this.type = this.$route.params.CompanyType ? this.$route.params.CompanyType : this.type
|
|
|
+ this.act_trialTag = this.$route.params.TryStage ? this.$route.params.TryStage : this.act_trialTag
|
|
|
+ this.valueLocation = this.$route.params.valueLocation ?
|
|
|
+ JSON.parse(sessionStorage.getItem('regionData')) || [] :[]
|
|
|
+
|
|
|
+ if($route.query.adminId){
|
|
|
+ this.isShowloadding = true
|
|
|
+ this.getSaleByAdminId();
|
|
|
+ }else if(this.valueLocation.length>0){
|
|
|
+ this.handleChangeLocation()
|
|
|
+ sessionStorage.removeItem('regionData')
|
|
|
+ }else{
|
|
|
+ this.getTableData();
|
|
|
+ }
|
|
|
+ this.getmodifySale();
|
|
|
+}
|
|
|
</script>
|
|
|
<template>
|
|
|
- <div></div>
|
|
|
+ <div class="customList_container" ref="cusContainer">
|
|
|
+ <div class="customList_bot_top">
|
|
|
+ <div>
|
|
|
+ <div v-if="Role!='finance'">
|
|
|
+ <el-button type="primary" @click="addCustom" style="marginRight:10px;width:80px;" v-if="AddCompanyBtn">新增</el-button>
|
|
|
+ <!-- <a :href="exportUrlDl" download>
|
|
|
+ <el-button type="primary" plain style="width:100px;marginRight:10px;">导出客户</el-button>
|
|
|
+ </a>
|
|
|
+ <a :href="exportUserDl" download>
|
|
|
+ <el-button type="primary" plain style="width:110px;">导出联系人</el-button>
|
|
|
+ </a> -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-input
|
|
|
+ placeholder="客户名称/社会信用码/手机号码/邮箱"
|
|
|
+ v-model="search_txt"
|
|
|
+ style="max-width:520px"
|
|
|
+ @input="searchHandle"
|
|
|
+ clearable>
|
|
|
+ <template #prefix>
|
|
|
+ <el-icon><Search/></el-icon>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </div>
|
|
|
+ <div class="customList_bot">
|
|
|
+ <div class="customList_top">
|
|
|
+ <el-row :span="24">
|
|
|
+ <el-select v-model="fromArea" placeholder="请选择所属区域" style="width:200px;marginRight:10px;marginBottom:8px;" clearable @change="changeFromArea">
|
|
|
+ <el-option
|
|
|
+ v-for="item in areaArr"
|
|
|
+ :key="item"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.name">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select v-model="type" placeholder="请选择客户类型" style="width:200px;marginRight:10px;marginBottom:8px;" clearable v-if="Role=='finance'||Role=='admin'" @change="changeType">
|
|
|
+ <el-option
|
|
|
+ v-for="item in typeArr"
|
|
|
+ :key="item"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.name">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select v-model="trade" placeholder="请选择行业" style="width:200px;marginRight:10px;marginBottom:8px;" clearable @change="changeTrade">
|
|
|
+ <el-option
|
|
|
+ v-for="item in tradeArr"
|
|
|
+ :key="item.IndustryId"
|
|
|
+ :label="item.IndustryName"
|
|
|
+ :value="item.IndustryId">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-cascader
|
|
|
+ v-if="this.act_status=='流失' ||(Role=='finance'||Role=='admin'||Role=='ficc_admin'||Role=='rai_admin'||ManageType!=0)"
|
|
|
+ v-model="sales"
|
|
|
+ placeholder="请选择销售"
|
|
|
+ style="width:200px;marginRight:10px;marginBottom:8px;"
|
|
|
+ :options="salesArr"
|
|
|
+ :props="defaultSalesProps"
|
|
|
+ :show-all-levels="false"
|
|
|
+ :key="modifySales"
|
|
|
+ collapse-tags
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ @change="changeSales">
|
|
|
+ </el-cascader>
|
|
|
+ <el-select v-model="setmealSelect" placeholder="请选择套餐类型" style="width:200px;marginRight:10px;marginBottom:8px;" clearable @change="changeTrade">
|
|
|
+ <el-option
|
|
|
+ v-for="item in setmealArr"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-cascader
|
|
|
+ v-model="variety"
|
|
|
+ placeholder="请选择已购品种"
|
|
|
+ style="width:200px;marginRight:10px;marginBottom:8px;"
|
|
|
+ :options="varietyArr"
|
|
|
+ :props="defaultprops"
|
|
|
+ :show-all-levels="false"
|
|
|
+ collapse-tags
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ @change="changeVariety">
|
|
|
+ </el-cascader>
|
|
|
+ <el-cascader
|
|
|
+ v-model="variety_red"
|
|
|
+ placeholder="请选择阅读权限"
|
|
|
+ style="width:200px;marginRight:10px;marginBottom:8px;"
|
|
|
+ :options="varietyArr"
|
|
|
+ :props="defaultprops"
|
|
|
+ :show-all-levels="false"
|
|
|
+ collapse-tags
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ @change="changeVariety">
|
|
|
+ </el-cascader>
|
|
|
+ <el-cascader v-model="valueLocation" collapse-tags :props="locationProps" clearable :options="locationOptions" @change="handleChangeLocation"
|
|
|
+ placeholder="请选择客户地址" style="width:200px;marginRight:10px;marginBottom:8px;">
|
|
|
+ </el-cascader>
|
|
|
+ <date-picker
|
|
|
+ v-model="date"
|
|
|
+ type="date"
|
|
|
+ range
|
|
|
+ value-type="format"
|
|
|
+ placeholder="服务日期"
|
|
|
+ @change="dateChange"
|
|
|
+ style="width:200px;marginRight:10px;marginBottom:8px;">
|
|
|
+ </date-picker>
|
|
|
+ <date-picker
|
|
|
+ v-model="createdate"
|
|
|
+ type="date"
|
|
|
+ range
|
|
|
+ value-type="format"
|
|
|
+ placeholder="创建时间"
|
|
|
+
|
|
|
+ @change="dateChange2" style="width:200px;marginRight:10px;marginBottom:8px;">
|
|
|
+ </date-picker>
|
|
|
+ <el-select v-model="todoType" placeholder="请选择任务状态" clearable @change="changeTodoType" style="width:200px;marginRight:10px;marginBottom:8px;">
|
|
|
+ <el-option
|
|
|
+ v-for="item in todoTypeArr"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.name">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ <ul class="tabs_cont">
|
|
|
+ <li :class="['tab',{'act':act_status === item.Status}]" v-for="(item,index) in tabs" :key="index" @click="changeStatus(item,index)">
|
|
|
+ {{item.Status+'('+item.Count+')'}}
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <ul class="tabs_cont trial-ul" v-if="act_status === '试用'">
|
|
|
+ <li :class="['trial-item',{'act':act_trialTag === item.TryStage}]" v-for="item in trialTagArr" :key="item.TryStage" @click="changeTagStatus(item)">
|
|
|
+ {{item.TryStageStr+'('+item.Count+')'}}
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <div class="bot_cont">
|
|
|
+ <el-table
|
|
|
+ ref="userTable"
|
|
|
+ :data="tableData"
|
|
|
+ v-loading="isShowloadding"
|
|
|
+ element-loading-text="数据加载中..."
|
|
|
+ @sort-change="sortChangeHandle"
|
|
|
+ border>
|
|
|
+ <el-table-column
|
|
|
+ prop="CompanyName"
|
|
|
+ label="客户名称"
|
|
|
+ align="center"
|
|
|
+ min-width="7.14%"
|
|
|
+ >
|
|
|
+ <template #default="scope">
|
|
|
+ <div :class="{'isShared':scope.row.IsShared}">
|
|
|
+ <span
|
|
|
+ v-if="scope.row.IsSuspend ===1 || scope.row.Status=='潜在'"
|
|
|
+ @click="goDetail(scope.row)"
|
|
|
+ class="mouse-enter"
|
|
|
+ :class="{'color-red':act_status==='正式'&&scope.row.Status.includes('正式')&&scope.row.WeekViewActive===0}"
|
|
|
+ :style="scope.row.Status=='潜在'?'':'color:#bbb;cursor:pointer'"
|
|
|
+ >
|
|
|
+ {{scope.row.CompanyName}}
|
|
|
+ </span>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="color:#409EFF;cursor:pointer;"
|
|
|
+ @click="goDetail(scope.row)"
|
|
|
+ class="customName"
|
|
|
+ :class="{'isShared':scope.row.IsShared,'color-red':act_status==='正式'&&scope.row.Status.includes('正式')&&scope.row.WeekViewActive===0}"
|
|
|
+ >{{scope.row.CompanyName}}</span>
|
|
|
+ <img width="15" src="../../../assets/img/icons/remark.png" alt="" v-if="scope.row.RenewalReason||(scope.row.Status==='冻结'&&scope.row.FreezeReason)">
|
|
|
+
|
|
|
+ <el-tooltip content="此客户存在长期且反复申请试用,但从未签约的情况,请谨慎领取" placement="top" :open-delay="500"
|
|
|
+ v-if="RaiSellerRole && scope.row.IsScrounge == 1">
|
|
|
+ <img width="16" style="cursor: pointer;" src="../../../assets/img/icons/warning_triangle_yellow.png" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="To-Do" prop="todo" align="center" min-width="5.14%" sortable="custom">
|
|
|
+ <template #header>
|
|
|
+ <div class="todolabel" :class="{sort:SortByTodo}" style="display:inline-block;">
|
|
|
+ <span>To-Do</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template #default="scope">
|
|
|
+ <div class="todo-btn">
|
|
|
+ <p class="hint" :style="`background-color:${getTodoBtnColor(scope.row.TodoButtonColor)}`"></p>
|
|
|
+ <div class="btnwrap">
|
|
|
+ <span class="item"
|
|
|
+ v-for="item in getToDoBtn(scope.row)"
|
|
|
+ :key="item.key"
|
|
|
+ :style="item.style"
|
|
|
+ @click="!item.disable&&handleToDoBtnClick(scope.row,item.key)"
|
|
|
+ >{{item.label}}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="DL" prop="deadline" align="center" min-width="5%" sortable="custom">
|
|
|
+ <template #header>
|
|
|
+ <div class="todolabel" :class="{sort:sort_param==='deadline'}" style="display:inline-block;">
|
|
|
+ <span>DL</span>
|
|
|
+ <el-tooltip
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ content="未完成To Do任务的截止日期-当前日期"
|
|
|
+ >
|
|
|
+ <i class="el-icon-info"/>
|
|
|
+ </el-tooltip>
|
|
|
+ <!-- <img :src="todoSrc" style="margin-left:3px;width:16px;height:16px;padding:3px;"/> -->
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template #default="{row}">
|
|
|
+ <span>{{row.Deadline||'--'}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="CompanyType"
|
|
|
+ label="类型"
|
|
|
+ align="center"
|
|
|
+ min-width="4.14%"
|
|
|
+ >
|
|
|
+ <template #default="{row}">
|
|
|
+
|
|
|
+ <template v-if="row.CompanyType.indexOf('/')!==-1">
|
|
|
+ <span :style="row.IsSuspend===1?'color:#bbb':''">{{row.CompanyType.split('/')[0]}}</span><br/>
|
|
|
+ <span v-if="row.FiccPackageType" class="ficc-package">{{row.FiccPackageType == 1 ? '大套餐': '小套餐'}}</span>
|
|
|
+ <br v-if="row.FiccPackageType"/>
|
|
|
+ <span :style="row.IsSuspend===1?'color:#bbb':''">{{row.CompanyType.split('/')[1]}}</span>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <span :style="row.IsSuspend===1?'color:#bbb':''">{{row.CompanyType}}</span>
|
|
|
+ <span v-if="row.FiccPackageType&&row.CompanyType.includes('ficc')" class="ficc-package">{{row.FiccPackageType == 1 ? '大套餐': '小套餐'}}</span>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="IndustryName"
|
|
|
+ label="所属行业"
|
|
|
+ min-width="6.14%"
|
|
|
+ align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <!-- <span :style="scope.row.IsSuspend===1?'color:#bbb':''">{{scope.row.IndustryName}}</span> -->
|
|
|
+ <div :style="scope.row.IsSuspend===1?'color:#bbb':''">
|
|
|
+ <p :style="scope.row.IsSuspend===1?'color:#bbb':''" v-for="item in scope.row.IndustryName.split('/')" :key="item">{{item}}</p>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="City"
|
|
|
+ label="客户地址"
|
|
|
+ min-width="6.14%"
|
|
|
+ align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <!-- <span v-if="scope.row.Province && scope.row.City" :style="scope.row.IsSuspend===1?'color:#bbb':''">{{scope.row.Province+'/'+scope.row.City}}</span> -->
|
|
|
+ <span v-if="scope.row.Province && scope.row.City" :style="scope.row.IsSuspend===1?'color:#bbb':''">{{scope.row.Province}}<br/>{{scope.row.City}}</span>
|
|
|
+ <span v-else :style="scope.row.IsSuspend===1?'color:#bbb':''">{{scope.row.RegionType}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="SellerName"
|
|
|
+ label="销售"
|
|
|
+ min-width="6.14%"
|
|
|
+ align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ <!-- <span :style="scope.row.IsSuspend===1?'color:#bbb':''">{{scope.row.SellerName}}</span> -->
|
|
|
+ <p :style="scope.row.IsSuspend===1?'color:#bbb':''" v-for="item in scope.row.SellerName.split('/')" :key="item">{{item}}</p>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="Status"
|
|
|
+ label="状态"
|
|
|
+ min-width="7.14%"
|
|
|
+ align="center" :sortable="act_status==='试用'&&act_trialTag===0?'custom':false" style="background:red">
|
|
|
+ <template #header>
|
|
|
+ <div class="todolabel" :class="{sort:sort_param==='tryStage'}" style="display:inline-block;">
|
|
|
+ <span>状态</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template #default="scope">
|
|
|
+ <!-- <span :style="scope.row.IsSuspend===1?'color:#bbb':''">{{scope.row.Status+(scope.row.ApproveStatus?'('+scope.row.ApproveStatus+')':'')}}</span> -->
|
|
|
+ <p :style="scope.row.IsSuspend===1?'color:#bbb;margin:3px 0':'margin:3px 0'" v-for="(item,index) in scope.row.Status.split('/')" :key="item">
|
|
|
+ {{ item }}
|
|
|
+ <template v-if="item === '试用' && scope.row.TryStageSlice">
|
|
|
+ <el-select
|
|
|
+ v-model="scope.row.TryStageSlice[index].TryStage"
|
|
|
+ v-if="scope.row.Status === '试用/试用'"
|
|
|
+ :disabled="!scope.row.TryStageSlice[index].HasPermission"
|
|
|
+ size="mini"
|
|
|
+ style="width: 50px"
|
|
|
+ placeholder=""
|
|
|
+ @change="changeTrialHandle(scope.row,scope.row.TryStageSlice[index])"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in trialTags"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select
|
|
|
+ v-model="scope.row.TryStageSlice[0].TryStage"
|
|
|
+ :disabled="!scope.row.TryStageSlice[0].HasPermission"
|
|
|
+ v-else
|
|
|
+ size="mini"
|
|
|
+ style="width: 50px"
|
|
|
+ placeholder=""
|
|
|
+ @change="changeTrialHandle(scope.row,scope.row.TryStageSlice[0])"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in trialTags"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </p>
|
|
|
+ <!-- 共享客户显示咨询组销售 -->
|
|
|
+ <span v-if="scope.row.IsShare==1 && scope.row.ShareSeller">{{ scope.row.ShareSeller }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="累计试用天数"
|
|
|
+ align="center"
|
|
|
+ min-width="5.14%"
|
|
|
+ prop="tryOutDay"
|
|
|
+ sortable="custom">
|
|
|
+ <template #default="{row}">
|
|
|
+ <el-tooltip :disabled="row.IsSuspend===1||(row.FiccTryOutDay+row.RaiTryOutDay===0)">
|
|
|
+ <template #content>
|
|
|
+ <div>
|
|
|
+ <p v-if="row.FiccTryOutDay">FICC累计试用天数:{{row.FiccTryOutDay}}</p>
|
|
|
+ <p v-if="row.RaiTryOutDay">权益累计试用天数:{{row.RaiTryOutDay}}</p>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <span :style="row.IsSuspend===1?'color:#bbb':'color:#409EFF;cursor:pointer;'" @click="handleTotalDayClick(row)">
|
|
|
+ {{row.FiccTryOutDay+row.RaiTryOutDay}}
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="阅读"
|
|
|
+ align="center"
|
|
|
+ min-width="5.14%"
|
|
|
+ prop="viewTotal"
|
|
|
+ sortable="custom">
|
|
|
+ <template #default="{row}">
|
|
|
+ <el-tooltip :disabled="row.IsSuspend===1 || (row.FiccView+row.RaiView)===0">
|
|
|
+ <template #content>
|
|
|
+ <div>
|
|
|
+ <p v-if="row.FiccView">FICC报告阅读次数:{{row.FiccView}}</p><p v-if="row.RaiView">权益报告阅读次数:{{row.RaiView}}</p>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <span :style="row.IsSuspend===1?'color:#bbb':'color:#409EFF;cursor:pointer;'">
|
|
|
+ <!-- {{row.FiccView+row.RaiView}} -->
|
|
|
+ <!-- 阅读次数拆分 -->
|
|
|
+ {{row.AllViewTotal}}
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="路演"
|
|
|
+ align="center"
|
|
|
+ min-width="5.14%"
|
|
|
+ prop="roadShowTotal"
|
|
|
+ sortable="custom">
|
|
|
+ <template #default="scope">
|
|
|
+ <span :style="scope.row.IsSuspend===1?'color:#bbb':''" @click="accumulativeFrequencyClick(scope)" class="editsty" v-if="scope.row.RoadShowTotal > 0">{{scope.row.RoadShowTotal}}</span>
|
|
|
+ <span :style="scope.row.IsSuspend===1?'color:#bbb':''" v-else>{{scope.row.RoadShowTotal}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="最近阅读"
|
|
|
+ min-width="8.14%"
|
|
|
+ align="center"
|
|
|
+ prop="viewTime"
|
|
|
+ sortable="custom">
|
|
|
+ <template #default="scope">
|
|
|
+ <p v-if="scope.row.FiccLastViewTime" :style="scope.row.IsSuspend===1?'color:#bbb':''">ficc: {{$moment(scope.row.FiccLastViewTime).format('YYYY.MM.DD')}}</p>
|
|
|
+ <p v-else-if="scope.row.RaiLastViewTime" :style="scope.row.IsSuspend===1?'color:#bbb':''">权益: {{$moment(scope.row.RaiLastViewTime).format('YYYY.MM.DD')}}</p>
|
|
|
+ <p v-else :style="scope.row.IsSuspend===1?'color:#bbb':''">--</p>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="EndDate"
|
|
|
+ :label="act_status=='冻结'?'冻结期限':'服务期限'"
|
|
|
+ align="center"
|
|
|
+ min-width="6.14%">
|
|
|
+ <template #default="scope">
|
|
|
+ <span :style="scope.row.IsSuspend===1?'color:#bbb':''">
|
|
|
+ <!-- 正常的时间显示 -->
|
|
|
+ <template v-if="scope.row.StartDate.indexOf('/')==-1">
|
|
|
+ <template v-if="act_status=='流失'">
|
|
|
+ 创建时间:{{formatTime(scope.row.CreatedTime)}}
|
|
|
+ </template>
|
|
|
+ <template v-else-if="scope.row.Status == '永续'">
|
|
|
+ 永久
|
|
|
+ </template>
|
|
|
+ <template v-else-if="act_status == '冻结'">
|
|
|
+ {{scope.row.FreezeStartDate}}~{{scope.row.FreezeEndDate}}
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ {{scope.row.StartDate}}~{{scope.row.EndDate}}
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ <!-- 公用客户的时间显示 -->
|
|
|
+ <template v-else>
|
|
|
+ {{scope.row.StartDate.substr(0,10)}}~{{scope.row.EndDate.substr(0,10)}}/{{scope.row.StartDate.substr(11)}}~{{scope.row.EndDate.substr(11)}}
|
|
|
+ </template>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="expireDay"
|
|
|
+ :label="act_status=='冻结'?'解冻':'到期'"
|
|
|
+ align="center"
|
|
|
+ min-width="5.14%"
|
|
|
+ sortable="custom">
|
|
|
+ <template #default="scope">
|
|
|
+ <span :style="scope.row.IsSuspend===1?'color:#bbb':''">
|
|
|
+ <template v-if="act_status=='冻结'">
|
|
|
+ {{scope.row.FreezeExpireDays||'--'}}
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ {{scope.row.ExpireDay||'--'}}
|
|
|
+ </template>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="createTime"
|
|
|
+ :label="
|
|
|
+ act_status=='冻结'?'冻结时间'
|
|
|
+ :act_status=='正式'?'转正时间'
|
|
|
+ :act_status=='流失'?'流失时间'
|
|
|
+ :act_status=='关闭'?'关闭时间':'创建时间'"
|
|
|
+ sortable="custom"
|
|
|
+ align="center" min-width="6.14%">
|
|
|
+ <template #default="scope">
|
|
|
+ <span :style="scope.row.IsSuspend===1?'color:#bbb':''">
|
|
|
+ <template v-if="act_status=='冻结'">
|
|
|
+ {{$moment(scope.row.FreezeTime).format('YYYY.MM.DD')}}
|
|
|
+ </template>
|
|
|
+ <template v-else-if="act_status=='正式'">
|
|
|
+ {{$moment(scope.row.FormalTime).format('YYYY.MM.DD')}}
|
|
|
+ </template>
|
|
|
+ <template v-else-if="act_status=='流失'">
|
|
|
+ <!-- {{scope.row.LossTime?$moment(scope.row.LossTime.replaceAll('.','-')).format('YYYY.MM.DD'):''}} -->
|
|
|
+ {{scope.row.LossTime
|
|
|
+ ?(`${scope.row.LossTime.split('/')[0].substr(0,10)}`)
|
|
|
+ :''}}
|
|
|
+ {{scope.row.LossTime&&scope.row.IsShared&&scope.row.LossTime.split('/')[1]
|
|
|
+ ? `/${scope.row.LossTime.split('/')[1].substr(0,10)}`
|
|
|
+ :''}}
|
|
|
+ </template>
|
|
|
+ <template v-else-if="act_status=='关闭'">
|
|
|
+ {{$moment(scope.row.CloseTime).format('YYYY.MM.DD')}}
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ {{$moment(scope.row.CreatedTime).format('YYYY.MM.DD')}}
|
|
|
+ </template>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" align="center" min-width="7.14%">
|
|
|
+ <template #default="scope" v-if="!scope.row.ApproveStatus">
|
|
|
+ <!-- 新操作栏 -->
|
|
|
+ <div style="color:#4099ef; font-size:24px;display:flex;align-content: center;justify-content: center;align-items: center;">
|
|
|
+ <div class="tool" style="display: flex;flex-direction: column;">
|
|
|
+ <span :class="item==='BtnDelete'?'deletesty':'editsty'" style="margin: 0 5px;" @click.stop="itemclickHandle({type:btnName(item,scope.row),data:scope.row})"
|
|
|
+ v-for="item,index in btnList(scope.row.BtnItem,'front')" :key="index">{{btnName(item,scope.row)}}</span>
|
|
|
+ </div>
|
|
|
+ <el-dropdown size="medium" placement="bottom-start" @command="itemclickHandle"
|
|
|
+ v-if="btnList(scope.row.BtnItem,'back').length" style="height: 16px;">
|
|
|
+ <span class="el-dropdown-link">
|
|
|
+ <i class="el-icon-more el-icon--right"></i>
|
|
|
+ </span>
|
|
|
+ <template #dropdown>
|
|
|
+ <el-dropdown-menu>
|
|
|
+ <el-dropdown-item :command="{type:btnName(item,scope.row),data:scope.row}"
|
|
|
+ v-for="item,index in btnList(scope.row.BtnItem,'back')" :key="index">
|
|
|
+ <span>{{btnName(item,scope.row)}}</span>
|
|
|
+ </el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </template>
|
|
|
+ </el-dropdown>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <template #empty>
|
|
|
+ <div style="lineHeight:44px;margin:60px 0;color:#999;">
|
|
|
+ <img src="~@/assets/img/cus_m/nodata.png" alt="" style="display:block;width:160px;height:128px;margin: auto;">
|
|
|
+ <span>暂无信息</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table>
|
|
|
+ <div class="toolbar fixedbar">
|
|
|
+ <el-pagination
|
|
|
+ layout="prev,pager,next"
|
|
|
+ background
|
|
|
+ :current-page="page_no"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ :page-size="pageSize"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ :total="total"
|
|
|
+ style="float:right;">
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 申请弹窗 -->
|
|
|
+ <Capplydia
|
|
|
+ :isApply="isApply"
|
|
|
+ :title="applyTit"
|
|
|
+ :formdata="applyForm"
|
|
|
+ :contactFormData="contactFormData"
|
|
|
+ @cancelHandle="cancelHandle">
|
|
|
+ </Capplydia>
|
|
|
+
|
|
|
+ <!-- 查看权限弹窗 -->
|
|
|
+ <permissionView :isLook="isLook" :lookTitle="lookTitle" :lookAuthList="lookAuthList" :lookAuthListEquity="lookAuthListEquity"
|
|
|
+ @closeDia="closeDia"></permissionView>
|
|
|
+
|
|
|
+ <!-- 增开试用弹窗 -->
|
|
|
+ <el-dialog
|
|
|
+ v-model="isAddTrial"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :modal-append-to-body='false'
|
|
|
+ @close="isAddTrial=false"
|
|
|
+ width="800px"
|
|
|
+ draggable
|
|
|
+ center>
|
|
|
+ <template #header>
|
|
|
+ <div style="display:flex;alignItems:center;">
|
|
|
+ <!-- <img :src="$icons.auth" style="color:#fff;width:16px;height:16px;marginRight:5px;"> -->
|
|
|
+ <span style="fontSize:16px;">增开试用(默认两个月)</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <Cauthlist
|
|
|
+ :autharr="authList"
|
|
|
+ :id="addTryId"
|
|
|
+ @addOver="addTryOver"
|
|
|
+ @close="isAddTrial=false"/>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 修改销售弹窗 -->
|
|
|
+ <el-dialog
|
|
|
+ draggable
|
|
|
+ v-model="isMove"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :modal-append-to-body='false'
|
|
|
+ @close="cancelMove"
|
|
|
+ center
|
|
|
+ width="30%">
|
|
|
+ <template #header>
|
|
|
+ <div style="display:flex;alignItems:center;">
|
|
|
+ <img :src="$icons.edit" style="color:#fff;width:16px;height:16px;marginRight:5px;">
|
|
|
+ <span style="fontSize:16px;">修改销售</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <el-form :model="moveform" :rules="moveRule" ref="moveform" label-width="100px" style="marginTop:15px;">
|
|
|
+ <el-form-item label="客户名称" prop="name">
|
|
|
+ <span style="fontSize:16px;">{{moveform.companyName}}</span>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="当前销售" prop="name">
|
|
|
+ <span style="fontSize:16px;">{{moveform.sellerName}}</span>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="移至销售" prop="sale">
|
|
|
+ <el-cascader
|
|
|
+ v-model="moveform.sale"
|
|
|
+ placeholder="请选择修改的销售"
|
|
|
+ style="width: 70%"
|
|
|
+ :options="modifysalesArr"
|
|
|
+ :props="{multiple: false,label:'RealName',children:'ChildrenList',value:'AdminId'}"
|
|
|
+ :show-all-levels="false"
|
|
|
+ clearable
|
|
|
+ filterable>
|
|
|
+ </el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div style="display:flex;justify-content:center;margin:75px 0 26px;">
|
|
|
+ <el-button type="primary" style="width:80px;marginRight:24px;" @click="saveMove">保存</el-button>
|
|
|
+ <el-button style="width:80px;" @click="cancelMove">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 添加联系人弹窗 -->
|
|
|
+ <Contactdia
|
|
|
+ :id="addCompanyId"
|
|
|
+ :title="'新增联系人'"
|
|
|
+ :userForm="diaform"
|
|
|
+ :custom_name="moveform.companyName"
|
|
|
+ :needCard="true"
|
|
|
+ :isShowclose="isShowclose"
|
|
|
+ :isPickLoss="isPickLoss"
|
|
|
+ :isPickSelf="isPickSelf"
|
|
|
+ :regionType="regionType"
|
|
|
+ :isAddContact="isAddContact"
|
|
|
+ @cancel="cancelConcatdia"
|
|
|
+ @addContactNext="addContactNext">
|
|
|
+ </Contactdia>
|
|
|
+
|
|
|
+ <!-- 冻结理由弹窗 -->
|
|
|
+ <el-dialog
|
|
|
+ v-model="isFreezeReason"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :modal-append-to-body='false'
|
|
|
+ @close="closeFreezeReason"
|
|
|
+ width="800px"
|
|
|
+ draggable
|
|
|
+ center>
|
|
|
+ <template #header>
|
|
|
+ <div style="display:flex;alignItems:center;">
|
|
|
+ <img src="../../../assets/img/freeze-icon.png" alt="" width="16" style="margin-right:10px">
|
|
|
+ <span style="fontSize:16px;">冻结</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :rows="6"
|
|
|
+ placeholder="请输入冻结理由"
|
|
|
+ v-model="freezeData.reason">
|
|
|
+ </el-input>
|
|
|
+ <div style="text-align:center;margin:30px 0;">
|
|
|
+ <el-button type="primary" @click="handleConfirmFreeze">确定</el-button>
|
|
|
+ <el-button type="primary" plain @click="closeFreezeReason">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 补全信息弹窗 -->
|
|
|
+ <CompleteInfo
|
|
|
+ :form="completeForm"
|
|
|
+ @cancel="cancelCompleteInfo($event)"
|
|
|
+ ></CompleteInfo>
|
|
|
+
|
|
|
+ <!-- 申请转正、续约申请、补充协议选择申请合同模式弹窗 -->
|
|
|
+ <el-dialog
|
|
|
+ v-model="contractModel.show"
|
|
|
+ :modal-append-to-body='false'
|
|
|
+ width="800px"
|
|
|
+ class="self-dialog"
|
|
|
+ draggable
|
|
|
+ >
|
|
|
+ <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
|
|
|
+ v-model="isRemarkLook"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :modal-append-to-body="true"
|
|
|
+ :append-to-body="true"
|
|
|
+ @close="closeDia"
|
|
|
+ width="800px"
|
|
|
+ draggable
|
|
|
+ center>
|
|
|
+ <template #header>
|
|
|
+ <div style="display:flex;alignItems:center;">
|
|
|
+ <img :src="$icons.auth" style="color:#fff;width:16px;height:16px;marginRight:5px;">
|
|
|
+ <span style="fontSize:16px;">{{lookRemarkTitle}}</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template>
|
|
|
+ <div v-if="(RoleIdentity == 'rai_seller' || RoleIdentity == 'ficc_seller') || (SellerAdminId == lookRemarkItem.SellerId)">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :rows="3"
|
|
|
+ placeholder="请输入文字"
|
|
|
+ v-model="lookRemarkTextarea">
|
|
|
+ </el-input>
|
|
|
+ <div class="look-remark-commit" @click="lookRemarkAdd">保存</div>
|
|
|
+ </div>
|
|
|
+ <el-table
|
|
|
+ :data="lookRemarkList"
|
|
|
+ border
|
|
|
+ max-height="300"
|
|
|
+ style="width: 100%; margin-top: 20px;margin-bottom: 20px"
|
|
|
+ >
|
|
|
+ <el-table-column label="备注内容" key="Remark" align="center">
|
|
|
+ <template #default="scope">{{scope.row.Remark}}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="客户类型" align="center" key="ProductName" v-if="lookRemarkItem.IsShared && (RoleIdentity != 'rai_seller' && RoleIdentity != 'ficc_seller')">
|
|
|
+ <template #default="scope">{{scope.row.ProductName}}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="创建时间" key="CreateTime" align="center">
|
|
|
+ <template #default="scope">{{scope.row.CreateTime}}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" align="center">
|
|
|
+ <template #default="{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>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 查看备注弹窗 -->
|
|
|
+ <accumulative-frequency-dlg :accumulativeFrequencyDlg="accumulativeFrequencyDlg" :accumulativeFrequencyItem="accumulativeFrequencyItem" />
|
|
|
+
|
|
|
+ <!-- 新建/编辑销售To Do的弹窗 -->
|
|
|
+ <Modify-to-do-dialog
|
|
|
+ :todoInfo="todoInfo"
|
|
|
+ :type="modifyToDoType"
|
|
|
+ :isModifyDialogShow="isModifyDialogShow"
|
|
|
+ @modify="handleModifyToDo"
|
|
|
+ ></Modify-to-do-dialog>
|
|
|
+
|
|
|
+ <check-to-do-dialog
|
|
|
+ :todoInfo="todoInfo"
|
|
|
+ :ischeckToDoDialogShow="ischeckToDoDialogShow"
|
|
|
+ @check="handleApprove"
|
|
|
+ ></check-to-do-dialog>
|
|
|
+
|
|
|
+ <history-to-do-dialog :todoInfo="todoInfo" :isHistoryDialogShow="isHistoryDialogShow"></history-to-do-dialog>
|
|
|
+
|
|
|
+ <!-- 累计试用天数弹窗 -->
|
|
|
+ <total-day-dialog
|
|
|
+ :isTotalDayDialogShow="isTotalDayDialogShow"
|
|
|
+ :customInfo="customInfo"
|
|
|
+ />
|
|
|
+
|
|
|
+ <!-- 服务记录弹窗 -->
|
|
|
+ <share-list-dialog
|
|
|
+ :isShareRecodeDialogShow="isShareRecodeDialogShow"
|
|
|
+ :customInfo="customInfo"
|
|
|
+ :allowEdit="false"
|
|
|
+ @close="isShareRecodeDialogShow=false"/>
|
|
|
+
|
|
|
+ <!-- 关闭客户弹窗 -->
|
|
|
+ <el-dialog
|
|
|
+ v-model="isCloseCustomDialogShow"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :modal-append-to-body='false'
|
|
|
+ title="关闭"
|
|
|
+ @close="isCloseCustomDialogShow=false"
|
|
|
+ width="800px"
|
|
|
+ draggable
|
|
|
+ center
|
|
|
+ >
|
|
|
+ <div class="close-custom-dialog">
|
|
|
+ <p>是否确认将试用客户【{{customInfo.CompanyName}}】转为关闭客户?若关闭,请填写关闭理由!</p>
|
|
|
+ <textarea rows="6" v-model="closeReason" placeholder="关闭理由描述"></textarea>
|
|
|
+ <div class="btn-list">
|
|
|
+ <el-button type="primary" plain @click="isCloseCustomDialogShow=false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="closeCustom">确定</el-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
-<style scoped lang="scss">
|
|
|
+<style lang='scss' scoped>
|
|
|
+ .self-dialog{
|
|
|
+ width: 100% !important;
|
|
|
+ max-width: 100% !important;
|
|
|
+ :deep(.el-dialog__header){
|
|
|
+ background-color: #fff;
|
|
|
+ .el-dialog__close.el-icon.el-icon-close{
|
|
|
+ color: #666;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .ficc-package {
|
|
|
+ display: inline-block;
|
|
|
+ font-size: 12px;
|
|
|
+ padding:0 5px;
|
|
|
+ border-radius: 5px;
|
|
|
+ color: #3994fb;
|
|
|
+ background-color: #dcecfc;
|
|
|
+ }
|
|
|
+ .color-red{
|
|
|
+ color:red !important;
|
|
|
+ }
|
|
|
+ .isShared::after{
|
|
|
+ content: '共享';
|
|
|
+ font-size: 12px;
|
|
|
+ // padding: 0px 0px 0px 2px;
|
|
|
+ width: 30px;
|
|
|
+ color: #3994fb;
|
|
|
+ background-color: #dcecfc;
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ bottom: 0;
|
|
|
+ border-top-right-radius: 5px;
|
|
|
+ }
|
|
|
+.customList_container {
|
|
|
+ :deep(.mx-datepicker) {
|
|
|
+ width: 200px !important;
|
|
|
+ }
|
|
|
+ :deep(.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner) {
|
|
|
+ background-color: #409EFF !important;
|
|
|
+ border-color: #409EFF;
|
|
|
+ }
|
|
|
+ :deep(.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner) {
|
|
|
+ background-color: #409EFF !important;
|
|
|
+ border-color: #409EFF;
|
|
|
+ }
|
|
|
+ .customList_bot_top {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 28px;
|
|
|
+ padding: 20px 30px;
|
|
|
+ background: #fff;
|
|
|
+ border: 1px solid #ECECEC;
|
|
|
+ border-radius: 4px;
|
|
|
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
|
|
|
+ }
|
|
|
+ .customList_bot {
|
|
|
+ min-height: calc(100vh - 324px);
|
|
|
+ padding: 20px 30px 80px;
|
|
|
+ background: #fff;
|
|
|
+ position: relative;
|
|
|
+ border: 1px solid #ECECEC;
|
|
|
+ border-radius: 4px;
|
|
|
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
|
|
|
+ .customList_top {
|
|
|
+ padding: 20px 0 30px;
|
|
|
+ background: #fff;
|
|
|
+ .el-cascader__search-input{
|
|
|
+ min-width: 30px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .tabs_cont {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ color: #333;
|
|
|
+ margin-bottom: 30px;
|
|
|
+ &.trial-ul {
|
|
|
+ padding: 0 30px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .tab {
|
|
|
+ width: 129px;
|
|
|
+ height: 22px;
|
|
|
+ line-height: 22px;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 14px;
|
|
|
+ border-right:1px solid #707070;
|
|
|
+ cursor: pointer;
|
|
|
+ transition-delay: 0.05s;
|
|
|
+ &:hover {
|
|
|
+ color: #409EFF;
|
|
|
+ }
|
|
|
+ &.act {
|
|
|
+ // padding: 9px 24px;
|
|
|
+ height: 40px;
|
|
|
+ line-height: 40px;
|
|
|
+ background: #409EFF;
|
|
|
+ border-radius: 4px;
|
|
|
+ color: #fff;
|
|
|
+ border-color: #409EFF;
|
|
|
+ transform: scale(1.014);
|
|
|
+ }
|
|
|
+ &:last-child {
|
|
|
+ border: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .trial-item {
|
|
|
+ cursor: pointer;
|
|
|
+ margin-right: 30px;
|
|
|
+ &:hover {
|
|
|
+ color: #409EFF;
|
|
|
+ }
|
|
|
+ &.act {
|
|
|
+ color: #409EFF;
|
|
|
+ position: relative;
|
|
|
+ &::after {
|
|
|
+ content: "";
|
|
|
+ width: 100%;
|
|
|
+ height: 2px;
|
|
|
+ position: absolute;
|
|
|
+ bottom: -10px;
|
|
|
+ left: 50%;
|
|
|
+ transform: translateX(-50%);
|
|
|
+ background: #409EFF;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .try_style {
|
|
|
+ color: #BBBBBB;
|
|
|
+ }
|
|
|
+ .bot_cont{
|
|
|
+ //padding-bottom: 20px;
|
|
|
+ .fixedbar{
|
|
|
+ position: fixed;
|
|
|
+ right: 45px;
|
|
|
+ bottom: 20px;
|
|
|
+ background-color: transparent;
|
|
|
+ z-index: 2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .todo-btn{
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-around;
|
|
|
+ align-items: center;
|
|
|
+ /* padding: 0 10px; */
|
|
|
+ .hint{
|
|
|
+ width: 8px;
|
|
|
+ height: 8px;
|
|
|
+ background-color: #D1433A;
|
|
|
+ border-radius: 50%;
|
|
|
+ }
|
|
|
+ .btnwrap{
|
|
|
+ display: flex;
|
|
|
+ align-content: space-around;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: space-between;
|
|
|
+ span.item{
|
|
|
+ margin-right: 10px;
|
|
|
+ font-size: 14px;
|
|
|
+ color:#409EFF;
|
|
|
+ cursor: pointer;
|
|
|
+ &:last-child{
|
|
|
+ margin-right: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ .todolabel{
|
|
|
+ &+span.caret-wrapper{
|
|
|
+ .sort-caret.ascending{
|
|
|
+ border-bottom-color: #C0C4CC;
|
|
|
+ }
|
|
|
+ .sort-caret.descending{
|
|
|
+ border-top-color: #C0C4CC
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .todolabel.sort{
|
|
|
+ &+span.caret-wrapper{
|
|
|
+ .sort-caret.ascending{
|
|
|
+ border-bottom-color: #409EFF;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .todolabel.hidden{
|
|
|
+ &+span.caret-wrapper{
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .menu_lists {
|
|
|
+ padding: 40px 18px;
|
|
|
+ border-radius: 4px;
|
|
|
+ .menu_item {
|
|
|
+ display: flex;
|
|
|
+ // align-items: center;
|
|
|
+ margin-bottom: 30px;
|
|
|
+ &:last-child {
|
|
|
+ margin-bottom: 0;
|
|
|
+ }
|
|
|
+ .list_item {
|
|
|
+ margin-right: 20px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ &:last-child {
|
|
|
+ margin-right: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .mouse-enter {
|
|
|
+ &:hover {
|
|
|
+ text-decoration:underline;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .close-custom-dialog{
|
|
|
+ padding: 0 20px;
|
|
|
+ p{
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+ textarea{
|
|
|
+ margin: 20px 0;
|
|
|
+ width:100%;
|
|
|
+ resize: none;
|
|
|
+ border-radius: 4px;
|
|
|
+ border:1px solid #DCDFE6;
|
|
|
+ box-sizing: border-box;
|
|
|
+ padding:15px;
|
|
|
+ }
|
|
|
+ .btn-list{
|
|
|
+ text-align: center;
|
|
|
+ margin: 25px 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
|
|
|
+<style lang="scss" scoped>
|
|
|
+.customList_container {
|
|
|
+ :deep(.el-input--mini) {
|
|
|
+ .el-input__inner{
|
|
|
+ padding: 0 6px !important;
|
|
|
+ height: 24px;
|
|
|
+ line-height: 24px;
|
|
|
+ color: #409EFF;
|
|
|
+ background: #ECF5FF;
|
|
|
+ border-color: #409EFF;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ .el-input__suffix {
|
|
|
+ right: -22px;
|
|
|
+ }
|
|
|
+ &.is-disabled {
|
|
|
+ .el-input__inner {
|
|
|
+ border-color: #E4E7ED;
|
|
|
+ }
|
|
|
+ .el-input__suffix {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.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>
|