Commit b4034d5b authored by 黄奎's avatar 黄奎

页面修改

parent c71dbf8a
...@@ -112,113 +112,117 @@ var chartsUtils = { ...@@ -112,113 +112,117 @@ var chartsUtils = {
}, },
//销售 任务管理 部门执行力 //销售 任务管理 部门执行力
saleTaskDepartment: function(id, myTitle, myValue, insideColor, outsideColor) { saleTaskDepartment: function(id, myTitle, myValue, insideColor, outsideColor) {
var myChart3 = selfechart.init(document.getElementById(id)); var obj=document.getElementById(id);
myChart3.setOption({ if(obj!=null)
series: [{ {
name: '业务指标', var myChart3 = selfechart.init(obj);
type: 'gauge', myChart3.setOption({
detail: { series: [{
show: true, name: '业务指标',
backgroundColor: 'rgba(0,0,0,0)', type: 'gauge',
borderWidth: 0, detail: {
borderColor: '#ccc', show: true,
offsetCenter: [0, '10%'], backgroundColor: 'rgba(0,0,0,0)',
formatter: '{value}%', borderWidth: 0,
textStyle: { borderColor: '#ccc',
color: insideColor, //百分比 offsetCenter: [0, '10%'],
fontSize: 15 formatter: '{value}%',
} textStyle: {
}, color: insideColor, //百分比
radius: '90%', fontSize: 15
startAngle: 200, }
endAngle: -25, },
data: [{ value: myValue, name: myTitle }], radius: '90%',
splitLine: { startAngle: 200,
show: false endAngle: -25,
}, data: [{ value: myValue, name: myTitle }],
axisLine: { splitLine: {
show: true, show: false
lineStyle: { },
color: [ axisLine: {
[1, 'transparent'] show: true,
], lineStyle: {
width: 2 color: [
} [1, 'transparent']
}, //缩在里面的标线 ],
axisTick: { width: 2
min: 0, }
max: 100, }, //缩在里面的标线
splitNumber: 3, //缩在里面的标线的宽度 axisTick: {
length: 2, // //缩在里面的标线的长度 min: 0,
lineStyle: { // 属性lineStyle控制线条样式 max: 100,
color: insideColor //刻度 splitNumber: 3, //缩在里面的标线的宽度
} length: 2, // //缩在里面的标线的长度
}, lineStyle: { // 属性lineStyle控制线条样式
axisLabel: { color: insideColor //刻度
formatter: function(v) { }
return ""; },
axisLabel: {
formatter: function(v) {
return "";
}
},
//指针的宽度
pointer: {
width: 0
},
title: {
show: true,
offsetCenter: [0, '40%'],
textStyle: {
color: '#9E9E9E',
fontSize: 14
}
} }
}, },
//指针的宽度 { //空仪表,最外层边框
pointer: { name: '',
width: 0 type: 'gauge',
}, startAngle: 200,
title: { endAngle: -25,
show: true, radius: "100%",
offsetCenter: [0, '40%'], //symbol: 'circle', //设定为实心点
textStyle: { //symbolSize: 20, //设定实心点的大小
color: '#9E9E9E', detail: { formatter: '{value}%' },
fontSize: 14 axisLine: { //仪表圈
} show: true,
lineStyle: {
color: [
[myValue / 100, insideColor], //完成度
[1, outsideColor]
],
shadowColor: [
[myValue / 100, 'black'],
[1, outsideColor]
],
width: 2
}
},
splitLine: { //分割线
show: false
},
axisTick: { //刻度线
show: false
},
axisLabel: { //刻度标签
show: false
},
pointer: { //指针
show: true,
width: 5,
shadowColor: 'black', //默认透明
shadowBlur: 5
},
detail: {
show: false
},
data: []
} }
}, ]
{ //空仪表,最外层边框 })
name: '', }
type: 'gauge',
startAngle: 200,
endAngle: -25,
radius: "100%",
//symbol: 'circle', //设定为实心点
//symbolSize: 20, //设定实心点的大小
detail: { formatter: '{value}%' },
axisLine: { //仪表圈
show: true,
lineStyle: {
color: [
[myValue / 100, insideColor], //完成度
[1, outsideColor]
],
shadowColor: [
[myValue / 100, 'black'],
[1, outsideColor]
],
width: 2
}
},
splitLine: { //分割线
show: false
},
axisTick: { //刻度线
show: false
},
axisLabel: { //刻度标签
show: false
},
pointer: { //指针
show: true,
width: 5,
shadowColor: 'black', //默认透明
shadowBlur: 5
},
detail: {
show: false
},
data: []
}
]
})
}, },
saleIndex: function(id, data) { saleIndex: function(id, data) {
var myChart4 = selfechart.init(document.getElementById(id)); var myChart4 = selfechart.init(document.getElementById(id));
......
<template> <template>
<div class="saleTaskList"> <div class="saleTaskList">
<div v-show="addTask" class="addTaskLayer"> <div v-show="addTask" class="addTaskLayer">
<p class="addTaskTitle">{{$t('salesModule.ReleaseTask')}}</p> <p class="addTaskTitle">{{$t('salesModule.ReleaseTask')}}</p>
<div class="addMsg"> <div class="addMsg">
<div> <div>
<p>{{$t('salesModule.BaseInfo')}}</p> <p>{{$t('salesModule.BaseInfo')}}</p>
<el-form :model="addTaskMsg" :rules="rules" ref="addTaskMsg" label-width="80px"> <el-form :model="addTaskMsg" :rules="rules" ref="addTaskMsg" label-width="80px">
<el-form-item class='w300' :label="$t('salesModule.TaskName')" maxlength='20' prop="TaskName"> <el-form-item class='w300' :label="$t('salesModule.TaskName')" maxlength='20' prop="TaskName">
<el-input type="text" :disabled='isAllocatingTask' v-model='addTaskMsg.TaskName' :placeholder="$t('visaT.Pleasefillin')"></el-input> <el-input type="text" :disabled='isAllocatingTask' v-model='addTaskMsg.TaskName'
</el-form-item> :placeholder="$t('visaT.Pleasefillin')"></el-input>
<el-form-item class='w300' :label="$t('salesModule.TaskType')" prop="TaskType"> </el-form-item>
<el-select :placeholder="$t('pub.pleaseSel')" :disabled='isDisabled||isAllocatingTask' v-model='addTaskMsg.TaskType'> <el-form-item class='w300' :label="$t('salesModule.TaskType')" prop="TaskType">
<el-option v-for='item in taskTypeList' <el-select :placeholder="$t('pub.pleaseSel')" :disabled='isDisabled||isAllocatingTask'
:label='item.Name' v-model='addTaskMsg.TaskType'>
:value='item.Id' <el-option v-for='item in taskTypeList' :label='item.Name' :value='item.Id' :key='item.Id'></el-option>
:key='item.Id' </el-select>
></el-option> </el-form-item>
</el-select> <el-form-item class='w300' :label="$t('salesModule.TaskTotal')" prop="TaskNum">
</el-form-item> <el-input type="text" :disabled='isAllocatingTask' :placeholder="$t('visaT.Pleasefillin')"
<el-form-item class='w300' :label="$t('salesModule.TaskTotal')" prop="TaskNum"> v-model.number='addTaskMsg.TaskNum'></el-input>
<el-input type="text" :disabled='isAllocatingTask' :placeholder="$t('visaT.Pleasefillin')" v-model.number='addTaskMsg.TaskNum' ></el-input> </el-form-item>
</el-form-item>
<el-form-item v-show='isAllocatingTask' class='w300' :label="$t('salesModule.KeFenNum')" prop="RealTaskNum">
<el-form-item v-show='isAllocatingTask' class='w300' :label="$t('salesModule.KeFenNum')" prop="RealTaskNum"> <el-input type="text" :disabled='isAllocatingTask' :placeholder="$t('visaT.Pleasefillin')"
<el-input type="text" :disabled='isAllocatingTask' :placeholder="$t('visaT.Pleasefillin')" v-model.number='addTaskMsg.RealTaskNum' ></el-input> v-model.number='addTaskMsg.RealTaskNum'></el-input>
</el-form-item> </el-form-item>
<el-form-item class='w500' :label="$t('salesModule.TimeRange')" prop="taskTime"> <el-form-item class='w500' :label="$t('salesModule.TimeRange')" prop="taskTime">
<el-date-picker class="h34" <el-date-picker class="h34" :disabled='isAllocatingTask' type="daterange" :picker-options="pickerOptions"
:disabled='isAllocatingTask' v-model='addTaskMsg.taskTime' value-format="yyyy-MM-dd" range-separator="-"
type="daterange" :start-placeholder="$t('system.table_begTime')" :end-placeholder="$t('salesModule.EndTime')">
:picker-options="pickerOptions" </el-date-picker>
v-model='addTaskMsg.taskTime' </el-form-item>
value-format="yyyy-MM-dd" <el-form-item :label="$t('salesModule.TaskRemark')" prop='Remarks'>
range-separator="-" <el-input type="textarea" :disabled='isAllocatingTask' maxlength="200" class="w350"
:start-placeholder="$t('system.table_begTime')" v-model='addTaskMsg.Remarks'></el-input>
:end-placeholder="$t('salesModule.EndTime')"> </el-form-item>
</el-date-picker> </el-form>
</el-form-item> </div>
<el-form-item :label="$t('salesModule.TaskRemark')" prop='Remarks'> <div>
<el-input type="textarea" :disabled='isAllocatingTask' maxlength="200" class="w350" v-model='addTaskMsg.Remarks'></el-input> <p>{{$t('salesModule.JoinDepart')}}</p>
</el-form-item> <el-form :model="membersArr" :rules="rules" ref="membersArr" label-width="80px">
</el-form> <el-form-item class='w300' :label="$t('salesModule.JoinPart')" v-if='taskMembers.Type==1'>
</div> <!--<el-select placeholder="请选项" class='multiple_input' filterable multiple :disabled='isOK' v-model='membersArr' @change='addTaskItem'>
<div>
<p>{{$t('salesModule.JoinDepart')}}</p>
<el-form :model="membersArr" :rules="rules" ref="membersArr" label-width="80px">
<el-form-item class='w300' :label="$t('salesModule.JoinPart')" v-if='taskMembers.Type==1' >
<!--<el-select placeholder="请选项" class='multiple_input' filterable multiple :disabled='isOK' v-model='membersArr' @change='addTaskItem'>
<el-option v-for='item in taskMembers.date' <el-option v-for='item in taskMembers.date'
:label='item.Name' :label='item.Name'
:value='item.Id' :value='item.Id'
:key='item.Id' :key='item.Id'
></el-option> ></el-option>
</el-select>--> </el-select>-->
<treeselect <treeselect :multiple="true" :options="taskMembers.date" :flat="true" @select='addTaskItem'
:multiple="true" @deselect='deleteTaskItem' :sort-value-by="sortValueBy" :normalizer="normalizer" v-model="membersArr" />
:options="taskMembers.date"
:flat="true" </el-form-item>
@select='addTaskItem' <el-form-item class='w300' :label="$t('salesModule.JoinPeople')" v-if='taskMembers.Type==2'>
@deselect='deleteTaskItem' <!--<el-select placeholder="请选项" class='multiple_input' filterable multiple :disabled='isOK'
:sort-value-by="sortValueBy"
:normalizer="normalizer"
v-model="membersArr"
/>
</el-form-item>
<el-form-item class='w300' :label="$t('salesModule.JoinPeople')" v-if='taskMembers.Type==2'>
<!--<el-select placeholder="请选项" class='multiple_input' filterable multiple :disabled='isOK'
v-model='membersArr' v-model='membersArr'
@change='addTaskItem' @change='addTaskItem'
> >
...@@ -80,648 +67,981 @@ ...@@ -80,648 +67,981 @@
:key='item.Id' :key='item.Id'
></el-option> ></el-option>
</el-select>--> </el-select>-->
<treeselect <treeselect :multiple="true" :options="taskMembers.date" :flat="true" @select='addTaskItem'
:multiple="true" @deselect='deleteTaskItem' :sort-value-by="sortValueBy" :normalizer="normalizer" v-model="membersArr" />
:options="taskMembers.date"
:flat="true" </el-form-item>
@select='addTaskItem' </el-form>
@deselect='deleteTaskItem' <p style="text-align:center" v-show="taskMembers&&taskMembers.date&&taskMembers.date.length==0">{{$t('system.content_noData')}}</p>
:sort-value-by="sortValueBy" </div>
:normalizer="normalizer" <div class="addTaskLayerTableScroll" style="max-width:600px; overflow-x: auto;">
v-model="membersArr" <p>{{$t('salesModule.TaskFenPei')}}</p>
/> <table class="addTaskLayerTable" border="0" cellspacing="1" cellpadding="1">
<tr>
</el-form-item> <th v-for="item in addTaskTableList">{{item.name}}</th>
</el-form> </tr>
<p style="text-align:center" v-show="taskMembers.date.length==0">{{$t('system.content_noData')}}</p> <tr>
</div> <td v-for="item in addTaskTableList">
<div class="addTaskLayerTableScroll" style="max-width:600px; overflow-x: auto;"> <input v-model="item.value" type="number" :placeholder="$t('salesModule.PositiveInteger')"
<p>{{$t('salesModule.TaskFenPei')}}</p> style="text-align: center;border: none;" />
<table class="addTaskLayerTable" border="0" cellspacing="1" cellpadding="1"> </td>
<tr> </tr>
<th v-for="item in addTaskTableList">{{item.name}}</th> <tr>
</tr> <td v-for="item in addTaskTableList">
<tr> <div class="addTaskLayerTableDiv" v-if='item.PrevFinish!=-1'>
<td v-for="item in addTaskTableList"> <p class="finish finishH">{{$t('salesModule.SimilarTask')}}</p>
<input v-model="item.value" type="number" :placeholder="$t('salesModule.PositiveInteger')" style="text-align: center;border: none;" /> <p>
</td> <el-progress type="circle" width='40' :percentage="item.Percentage" :stroke-width="w2"
</tr> color="#2AAEF2"></el-progress>
<tr> </p>
<td v-for="item in addTaskTableList"> </div>
<div class="addTaskLayerTableDiv" v-if='item.PrevFinish!=-1'> <div v-if='item.PrevFinish!=-1' class="addTaskLayerTableDiv">
<p class="finish finishH">{{$t('salesModule.SimilarTask')}}</p> <p class="finish finishNumTips">{{$t('salesModule.LastComplete')}}</p>
<p> <p class="finishNum">{{item.PrevFinish}}</p>
<el-progress type="circle" width='40' :percentage="item.Percentage" :stroke-width="w2" color="#2AAEF2"></el-progress> </div>
</p> <div v-if='item.PrevFinish==-1' class="finish">
</div> {{$t('salesModule.NoHistoryTask')}}
<div v-if='item.PrevFinish!=-1' class="addTaskLayerTableDiv"> </div>
<p class="finish finishNumTips">{{$t('salesModule.LastComplete')}}</p> </td>
<p class="finishNum">{{item.PrevFinish}}</p> </tr>
</div> </table>
<div v-if='item.PrevFinish==-1' class="finish"> </div>
{{$t('salesModule.NoHistoryTask')}} </div>
</div> <p style="text-align: right; width: 100%; clear: both;">
</td> <input type="button" class="hollowFixedBtn" :value="$t('pub.cancelBtn')" @click="clearMsg" />
</tr> <input v-if='!isAllocatingTask' type="button" class="normalBtn" :value="$t('pub.saveBtn')"
</table> @click="submitForm('addTaskMsg')" />
</div> <input v-if='isAllocatingTask' type="button" class="normalBtn" :value="$t('pub.saveBtn')"
</div> @click="saveAllocatingTask" />
<p style="text-align: right; width: 100%; clear: both;"> </p>
<input type="button" class="hollowFixedBtn" :value="$t('pub.cancelBtn')" @click="clearMsg"/> </div>
<input v-if='!isAllocatingTask' type="button" class="normalBtn" :value="$t('pub.saveBtn')" @click="submitForm('addTaskMsg')"/> <ul>
<input v-if='isAllocatingTask' type="button" class="normalBtn" :value="$t('pub.saveBtn')" @click="saveAllocatingTask"/> <li>
</p> <p>{{$t('salesModule.DepartNewTask')}}</p>
</div> <div class="itemCont" id='deparmentTask'>
<ul> <div class="noDataNotice" v-if='departmetTaskList&&departmetTaskList.length==0'>
<li> <i class="iconfont icon-kong"></i>
<p>{{$t('salesModule.DepartNewTask')}}</p> <p>{{$t('salesModule.NoTasks')}}</p>
<div class="itemCont" id='deparmentTask'> </div>
<div class="noDataNotice" v-if='departmetTaskList.length==0'> <div class="contTypeOne" v-for="(item,index) in departmetTaskList">
<i class="iconfont icon-kong"></i> <p>
<p>{{$t('salesModule.NoTasks')}}</p> <el-popover placement="bottom" width="260" trigger="hover">
</div> <div class="saleTaskpopover">
<div class="contTypeOne" v-for="(item,index) in departmetTaskList"> <p style="font-size: 14px;font-weight: bold; color: #333; margin: 10px 0;">{{item.TaskName}}</p>
<p> <table class="saleTaskpopoverTable" border="0" cellspacing="0" cellpadding="0">
<el-popover placement="bottom" width="260" trigger="hover"> <tr>
<div class="saleTaskpopover"> <td width="80"><i class="iconfont icon-img-ren"></i>{{$t('salesModule.IssuedPeople')}}</td>
<p style="font-size: 14px;font-weight: bold; color: #333; margin: 10px 0;">{{item.TaskName}}</p> <td>{{item.CreateBy}}</td>
<table class="saleTaskpopoverTable" border="0" cellspacing="0" cellpadding="0"> </tr>
<tr> <tr>
<td width="80"><i class="iconfont icon-img-ren"></i>{{$t('salesModule.IssuedPeople')}}</td> <td><i class="iconfont icon-ico-time"></i>{{$t('salesModule.IssuedTime')}}</td>
<td>{{item.CreateBy}}</td> <td>{{item.CreateDate}}</td>
</tr> </tr>
<tr> <tr>
<td><i class="iconfont icon-ico-time"></i>{{$t('salesModule.IssuedTime')}}</td> <td><i class="iconfont icon-ico-renwuyaoqiu"></i>{{$t('salesModule.TaskYaoQiu')}}</td>
<td>{{item.CreateDate}}</td> <td><span style="color: #257BF1;">{{item.TaskNum}}</span></td>
</tr> </tr>
<tr> <tr>
<td><i class="iconfont icon-ico-renwuyaoqiu"></i>{{$t('salesModule.TaskYaoQiu')}}</td> <td><i class="iconfont icon-ico-shijianfanwei"></i>{{$t('salesModule.TimeRange')}}</td>
<td><span style="color: #257BF1;">{{item.TaskNum}}</span></td> <td>{{item.StartTime}}{{$t('restaurant.res_To')}}{{item.EndTime}}</td>
</tr> </tr>
<tr> <tr>
<td><i class="iconfont icon-ico-shijianfanwei"></i>{{$t('salesModule.TimeRange')}}</td> <td><i class="iconfont icon-ico-beizhu"></i>{{$t('salesModule.TaskRemark')}}</td>
<td>{{item.StartTime}}{{$t('restaurant.res_To')}}{{item.EndTime}}</td> <td>{{item.Remarks}}</td>
</tr> </tr>
<tr> </table>
<td><i class="iconfont icon-ico-beizhu"></i>{{$t('salesModule.TaskRemark')}}</td> <input type="button" class="normalBtn w220" :value="$t('salesModule.TaskStart')"
<td>{{item.Remarks}}</td> @click="allocatingTask(item)" />
</tr> </div>
</table> <span style="font-size: 16px; color: #333; cursor: pointer;" slot="reference">{{item.TaskName}}</span>
<input type="button" class="normalBtn w220" :value="$t('salesModule.TaskStart')" @click="allocatingTask(item)"/> </el-popover>
</div> <em>{{item.CreateBy}}</em><i class="iconfont icon-ico-fenjie fr" @click="allocatingTask(item)"></i>
<span style="font-size: 16px; color: #333; cursor: pointer;" slot="reference">{{item.TaskName}}</span> </p>
</el-popover> <p>
<em>{{item.CreateBy}}</em><i class="iconfont icon-ico-fenjie fr" @click="allocatingTask(item)"></i></p> <el-progress :stroke-width="w12" :percentage="0" :show-text='false'></el-progress>
<p><el-progress :stroke-width="w12" :percentage="0" :show-text='false'></el-progress></p> </p>
<p class="smallfont">0/{{item.TaskNum}}{{item.Unit}}</p> <p class="smallfont">0/{{item.TaskNum}}{{item.Unit}}</p>
</div> </div>
</div> </div>
</li> </li>
<li> <li>
<p>{{$t('salesModule.NowTask')}}</p> <p>{{$t('salesModule.NowTask')}}</p>
<div class="itemCont width530" id='nowTask'> <div class="itemCont width530" id='nowTask'>
<div class="noDataNotice" v-if='nowTaskList.length==0'> <div class="noDataNotice" v-if='nowTaskList&&nowTaskList.length==0'>
<i class="iconfont icon-kong"></i> <i class="iconfont icon-kong"></i>
<p>{{$t('salesModule.NoTaskIn')}}</p> <p>{{$t('salesModule.NoTaskIn')}}</p>
</div> </div>
<div class="contTypeTwo" v-for="(item,index) in nowTaskList"> <div class="contTypeTwo" v-for="(item,index) in nowTaskList">
<el-progress type="circle" width='88' :percentage="item.rate" :color="item.color"></el-progress> <el-progress type="circle" width='88' :percentage="item.rate" :color="item.color"></el-progress>
<p class="goSaleTaskDetail" @click="goUrl('saleTaskDetail',item.id,'任务详情')">{{item.taskName}}</p> <p class="goSaleTaskDetail" @click="goUrl('saleTaskDetail',item.id,'任务详情')">{{item.taskName}}</p>
</div> </div>
</div> </div>
</li> </li>
<li> <li>
<p>{{$t('salesModule.DepartmentExecution')}}<span @click="goUrl('saleTaskHistory',0,'历史任务')">{{$t('salesModule.HistoryTask')}}</span></p> <p>{{$t('salesModule.DepartmentExecution')}}<span
<div class="itemCont width590 myChatList"> @click="goUrl('saleTaskHistory',0,'历史任务')">{{$t('salesModule.HistoryTask')}}</span></p>
<div id="mychart0" style="width: 130px; height: 130px;"></div> <div class="itemCont width590 myChatList">
<div id="mychart1" style="width: 130px; height: 130px;"></div> <div id="mychart0" style="width: 130px; height: 130px;"></div>
<div id="mychart2" style="width: 130px; height: 130px;"></div> <div id="mychart1" style="width: 130px; height: 130px;"></div>
<div id="mychart3" style="width: 130px; height: 130px;"></div> <div id="mychart2" style="width: 130px; height: 130px;"></div>
<div id="mychart4" style="width: 130px; height: 130px;"></div> <div id="mychart3" style="width: 130px; height: 130px;"></div>
</div> <div id="mychart4" style="width: 130px; height: 130px;"></div>
</li> </div>
<li> </li>
<p>{{$t('salesModule.MyTasks')}}<span @click="addNewTask"><i class="iconfont icon-ico-xinzengrenwu" style="vertical-align:middle;margin-right:5px; margin-top: -3px;font-size:14px;"></i>{{$t('salesModule.AddTasks')}}</span></p> <li>
<div class="itemCont" id='myTask'> <p>{{$t('salesModule.MyTasks')}}<span @click="addNewTask"><i class="iconfont icon-ico-xinzengrenwu"
<div class="noDataNotice" v-if='myTaskList.length==0'> style="vertical-align:middle;margin-right:5px; margin-top: -3px;font-size:14px;"></i>{{$t('salesModule.AddTasks')}}</span>
<i class="iconfont icon-kong"></i> </p>
<p>{{$t('salesModule.NoTaskIn')}}</p> <div class="itemCont" id='myTask'>
<p>{{$t('salesModule.ClickAddTasks')}}</p> <div class="noDataNotice" v-if='myTaskList&&myTaskList.length==0'>
</div> <i class="iconfont icon-kong"></i>
<div class="contTypeOne" v-for='(item,index) in myTaskList'> <p>{{$t('salesModule.NoTaskIn')}}</p>
<p>{{item.TaskName}} <span class="fr" :style="{color:item.Color}">{{item.StatusName}}</span></p> <p>{{$t('salesModule.ClickAddTasks')}}</p>
<p><el-progress :stroke-width="w12" :percentage="(item.FinishNum/item.TaskNum)*100" :color='item.Color' :show-text='false'></el-progress></p> </div>
<p class="smallfont">{{item.FinishNum}}/{{item.TaskNum}}{{item.Unit}}</p> <div class="contTypeOne" v-for='(item,index) in myTaskList'>
</div> <p>{{item.TaskName}} <span class="fr" :style="{color:item.Color}">{{item.StatusName}}</span></p>
</div> <p>
</li> <el-progress :stroke-width="w12" :percentage="(item.FinishNum/item.TaskNum)*100" :color='item.Color'
<li> :show-text='false'></el-progress>
<p>{{$t('salesModule.TodayTask')}}</p> </p>
<div class="itemCont width530" id='todayTask'> <p class="smallfont">{{item.FinishNum}}/{{item.TaskNum}}{{item.Unit}}</p>
<div class="noDataNotice" v-if='todayTaskListNew.length==0&&todayTaskList.length==0'> </div>
<i class="iconfont icon-kong"></i> </div>
<p>{{$t('salesModule.NoActive')}}</p> </li>
</div> <li>
<div class="contTypeThree" v-for="(item,index) in todayTaskListNew"> <p>{{$t('salesModule.TodayTask')}}</p>
<div class="name"> <div class="itemCont width530" id='todayTask'>
<img v-if='!item.emPhoto' src="../../assets/img/litheader.png"/> <div class="noDataNotice" v-if='todayTaskListNew.length==0&&todayTaskList.length==0'>
<img v-if='item.emPhoto' :onerror="defaultImg" :src='item.emPhoto'/> <i class="iconfont icon-kong"></i>
{{item.employeeName}} <p>{{$t('salesModule.NoActive')}}</p>
</div> </div>
<div class="department"> <div class="contTypeThree" v-for="(item,index) in todayTaskListNew">
<i class="iconfont icon-bumen"></i> <div class="name">
{{item.departmentName}} <img v-if='!item.emPhoto' src="../../assets/img/litheader.png" />
</div> <img v-if='item.emPhoto' :onerror="defaultImg" :src='item.emPhoto' />
<div class="message"><p class="msg">{{item.taskName}}</p><p>{{$t('salesModule.Contribution')}}<span>+{{item.taskNum}}</span></p></div> {{item.employeeName}}
<div class="time"> </div>
<i class="iconfont icon-qingjia"></i> <div class="department">
{{item.createDate}} <i class="iconfont icon-bumen"></i>
</div> {{item.departmentName}}
</div> </div>
<div class="message">
<p class="msg">{{item.taskName}}</p>
<div class="contTypeThree" v-for="(item,index) in todayTaskList"> <p>{{$t('salesModule.Contribution')}}<span>+{{item.taskNum}}</span></p>
<div class="name"> </div>
<img v-if='!item.emPhoto' src="../../assets/img/litheader.png"/> <div class="time">
<img v-if='item.emPhoto' :onerror="defaultImg" :src='item.emPhoto'/> <i class="iconfont icon-qingjia"></i>
{{item.employeeName}} {{item.createDate}}
</div> </div>
<div class="department"> </div>
<i class="iconfont icon-bumen"></i>
{{item.departmentName}}
</div> <div class="contTypeThree" v-for="(item,index) in todayTaskList">
<div class="message"><p class="msg">{{item.taskName}}</p><p>{{$t('salesModule.Contribution')}}<span>+{{item.taskNum}}</span></p></div> <div class="name">
<div class="time"> <img v-if='!item.emPhoto' src="../../assets/img/litheader.png" />
<i class="iconfont icon-qingjia"></i> <img v-if='item.emPhoto' :onerror="defaultImg" :src='item.emPhoto' />
{{item.createDate}} {{item.employeeName}}
</div> </div>
</div> <div class="department">
<i class="iconfont icon-bumen"></i>
</div> {{item.departmentName}}
</li> </div>
</ul> <div class="message">
</div> <p class="msg">{{item.taskName}}</p>
<p>{{$t('salesModule.Contribution')}}<span>+{{item.taskNum}}</span></p>
</div>
<div class="time">
<i class="iconfont icon-qingjia"></i>
{{item.createDate}}
</div>
</div>
</div>
</li>
</ul>
</div>
</template> </template>
<script> <script>
import Treeselect from '@riophae/vue-treeselect' import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css' import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default { export default {
components: { Treeselect }, components: {
data(){ Treeselect
return{ },
value: [ 'c', 'aaa', 'bb' ], data() {
options: [ return {
{ value: ['c', 'aaa', 'bb'],
id: 'a', options: [{
label: 'a', id: 'a',
children: [ { label: 'a',
id: 'aa', children: [{
label: 'aa', id: 'aa',
}, { label: 'aa',
id: 'ab', }, {
label: 'ab', id: 'ab',
} ], label: 'ab',
},{ }],
id: 'b', }, {
label: 'b', id: 'b',
}, label: 'b',
{ },
id: 'c', {
label: 'c', id: 'c',
} label: 'c',
], }
normalizer(node) { ],
return { normalizer(node) {
id: node.Id, return {
label: node.Name, id: node.Id,
children: node.ChlidList, label: node.Name,
} children: node.ChlidList,
}, }
sortValueBy: 'ORDER_SELECTED', },
pickerOptions: { sortValueBy: 'ORDER_SELECTED',
disabledDate: (time) => { //disabledDate true 为禁止选择 pickerOptions: {
return time.getTime() < Date.now()-86400000 disabledDate: (time) => { //disabledDate true 为禁止选择
} return time.getTime() < Date.now() - 86400000
}, }
timer:null, },
w12:12, timer: null,
w2:2, w12: 12,
defaultImg: 'this.src="' + require("../../assets/img/litheader.png") + '"', w2: 2,
allocatingTaskId:'', defaultImg: 'this.src="' + require("../../assets/img/litheader.png") + '"',
isAllocatingTask:false, allocatingTaskId: '',
isOK:false, isAllocatingTask: false,
isDisabled:false, isOK: false,
membersArr:[], isDisabled: false,
membersArrCopy:[], membersArr: [],
addTask:false, membersArrCopy: [],
addMsg1:{}, addTask: false,
layerMsg:{ addMsg1: {},
TaskUserId:0 layerMsg: {
}, TaskUserId: 0
departmetTaskMsg:{ },
pageIndex:1, departmetTaskMsg: {
pageSize:5 pageIndex: 1,
}, pageSize: 5
nowTaskMsg:{ },
pageIndex:1, nowTaskMsg: {
pageSize:15 pageIndex: 1,
}, pageSize: 15
myTaskMsg:{ },
pageIndex:1, myTaskMsg: {
pageSize:5 pageIndex: 1,
}, pageSize: 5
todayTaskMsg:{ },
pageIndex:1, todayTaskMsg: {
pageSize:10, pageIndex: 1,
Id:0 pageSize: 10,
}, Id: 0
todayTaskMsgNew:{ },
Id:0 todayTaskMsgNew: {
}, Id: 0
addTaskMsg:{ },
TaskName:'', addTaskMsg: {
StartTime:'', TaskName: '',
EndTime:'', StartTime: '',
TaskNum:'', EndTime: '',
TaskType:1, TaskNum: '',
Remarks:'', TaskType: 1,
UserTaskList:[], Remarks: '',
taskTime:'', UserTaskList: [],
RealTaskNum:'0' taskTime: '',
}, RealTaskNum: '0'
rules:{ },
TaskName:[ rules: {
{ required: true, message:this.$t('rule.EnterTaskName'), trigger: 'blur' } TaskName: [{
], required: true,
TaskType:[ message: this.$t('rule.EnterTaskName'),
{ required: true, message:this.$t('rule.ChoiceTaskType'), trigger: 'change' } trigger: 'blur'
], }],
TaskNum:[ TaskType: [{
{ required: true, message:this.$t('rule.EnterNum'), trigger: 'blur' }, required: true,
{ pattern: /^[1-9]\d*$/, message:this.$t('rule.OnlyInter') } message: this.$t('rule.ChoiceTaskType'),
], trigger: 'change'
taskTime:[ }],
{ required: true, message:this.$t('rule.ChoiceRQFW'), trigger: 'change' } TaskNum: [{
], required: true,
Remarks:[ message: this.$t('rule.EnterNum'),
{ required: false, message:this.$t('rule.EnterMark'), trigger: 'blur' } trigger: 'blur'
], },
{
}, pattern: /^[1-9]\d*$/,
addTaskTableList:[], message: this.$t('rule.OnlyInter')
//返回数据 }
taskMemberList:[], ],
departmetTaskList:[], taskTime: [{
nowTaskList:[], required: true,
todayTaskList:[], message: this.$t('rule.ChoiceRQFW'),
todayTaskListNew:[], trigger: 'change'
departmentPowerList:[], }],
myTaskList:[], Remarks: [{
taskTypeList:[], required: false,
taskMembers:{} message: this.$t('rule.EnterMark'),
} trigger: 'blur'
}, }],
mounted() {
this.getDepartmetTask() },
this.getNowTask() addTaskTableList: [],
this.getDepartmentPower() //返回数据
this.getMyTask() taskMemberList: [],
this.getTodayTask() departmetTaskList: [],
this.getTodayTaskNew() nowTaskList: [],
this.getTaskMember() todayTaskList: [],
let that=this todayTaskListNew: [],
departmentPowerList: [],
myTaskList: [],
taskTypeList: [],
taskMembers: {}
}
},
mounted() {
this.getDepartmetTask()
this.getNowTask()
this.getDepartmentPower()
this.getMyTask()
this.getTodayTask()
this.getTodayTaskNew()
this.getTaskMember()
let that = this
let deparmentTask = document.getElementById('deparmentTask'), let deparmentTask = document.getElementById('deparmentTask'),
nowTask = document.getElementById('nowTask'), nowTask = document.getElementById('nowTask'),
myTask = document.getElementById('myTask'), myTask = document.getElementById('myTask'),
todayTask = document.getElementById('todayTask'); todayTask = document.getElementById('todayTask');
if (deparmentTask) { if (deparmentTask) {
deparmentTask.addEventListener('scroll',function(){ //部门新任务 deparmentTask.addEventListener('scroll', function () { //部门新任务
if(this.scrollHeight-this.scrollTop===this.clientHeight){ if (this.scrollHeight - this.scrollTop === this.clientHeight) {
that.departmetTaskMsg.pageIndex=Math.ceil(that.departmetTaskList.length/5)+1 that.departmetTaskMsg.pageIndex = Math.ceil(that.departmetTaskList.length / 5) + 1
that.getDepartmetTask() that.getDepartmetTask()
} }
}) })
} }
if (nowTask) { if (nowTask) {
nowTask.addEventListener('scroll',function(){ //当前 nowTask.addEventListener('scroll', function () { //当前
if(this.scrollHeight-this.scrollTop===this.clientHeight){ if (this.scrollHeight - this.scrollTop === this.clientHeight) {
that.nowTaskMsg.pageIndex=Math.ceil(that.nowTaskList.length/15)+1 that.nowTaskMsg.pageIndex = Math.ceil(that.nowTaskList.length / 15) + 1
that.getNowTask() that.getNowTask()
} }
}) })
} }
if (myTask) { if (myTask) {
myTask.addEventListener('scroll',function(){ //我发布的任务 myTask.addEventListener('scroll', function () { //我发布的任务
if(this.scrollHeight-this.scrollTop===this.clientHeight){ if (this.scrollHeight - this.scrollTop === this.clientHeight) {
that.myTaskMsg.pageIndex=Math.ceil(that.myTaskList.length/5)+1 that.myTaskMsg.pageIndex = Math.ceil(that.myTaskList.length / 5) + 1
that.getMyTask() that.getMyTask()
} }
}) })
} }
if (todayTask) { if (todayTask) {
todayTask.addEventListener('scroll',function(){ //我发布的任务 todayTask.addEventListener('scroll', function () { //我发布的任务
if(this.scrollHeight-this.scrollTop===this.clientHeight){ if (this.scrollHeight - this.scrollTop === this.clientHeight) {
that.todayTaskMsg.pageIndex=Math.ceil(that.todayTaskList.length/10)+1 that.todayTaskMsg.pageIndex = Math.ceil(that.todayTaskList.length / 10) + 1
that.getTodayTask() that.getTodayTask()
} }
}) })
} }
}, },
methods: { methods: {
clearMsg(){ clearMsg() {
this.addTask=false this.addTask = false
this.$refs['addTaskMsg'].resetFields(); this.$refs['addTaskMsg'].resetFields();
this.membersArr=[] this.membersArr = []
this.membersArrCopy=[] this.membersArrCopy = []
this.addTaskTableList=[] this.addTaskTableList = []
}, },
submitForm(msg) {//提交创建、修改表单 submitForm(msg) { //提交创建、修改表单
this.$refs[msg].validate((valid) => { this.$refs[msg].validate((valid) => {
if (valid) { if (valid) {
this.saveNewTask() this.saveNewTask()
} else { } else {
return false; return false;
} }
}); });
}, },
saveAllocatingTask(){ saveAllocatingTask() {
let addAllocatingMsg=[] let addAllocatingMsg = []
let i=0; let i = 0;
this.addTaskTableList.forEach(item=>{ this.addTaskTableList.forEach(item => {
addAllocatingMsg.push({Id:item.id,DepOrEmpId:item.DepOrEmpId,TaskNum:item.value,RealTaskNum:item.value,Type:item.type}) addAllocatingMsg.push({
i+=parseInt(item.value) Id: item.id,
}) DepOrEmpId: item.DepOrEmpId,
if(this.membersArr.length==0){ TaskNum: item.value,
this.$message.error('请选择分配对象!') RealTaskNum: item.value,
return Type: item.type
} })
i += parseInt(item.value)
// if(this.addTaskMsg.TaskNum!=i) })
// { if (this.membersArr.length == 0) {
// this.$message.error('任务数量和分配数量之和不相等,请修改!') this.$message.error('请选择分配对象!')
// return return
// } }
this.apipost('Sell_Post_Management_AllotSellTask',{UserTaskId:this.allocatingTaskId,UserTaskList:addAllocatingMsg},res=>{ // if(this.addTaskMsg.TaskNum!=i)
if(res.data.resultCode==1){ // {
this.$message.success(res.data.message) // this.$message.error('任务数量和分配数量之和不相等,请修改!')
this.clearMsg() // return
this.departmetTaskList=[] // }
this.myTaskList=[]
this.departmetTaskMsg.PageIndex=1 this.apipost('Sell_Post_Management_AllotSellTask', {
this.myTaskMsg.pageIndex=1 UserTaskId: this.allocatingTaskId,
this.getDepartmetTask() UserTaskList: addAllocatingMsg
this.getMyTask() }, res => {
}else{ if (res.data.resultCode == 1) {
this.$message.error(res.data.message) this.$message.success(res.data.message)
} this.clearMsg()
},err=>{}) this.departmetTaskList = []
}, this.myTaskList = []
allocatingTask(obj){ this.departmetTaskMsg.PageIndex = 1
this.layerMsg.TaskUserId=obj.Id this.myTaskMsg.pageIndex = 1
this.getTaskMember() this.getDepartmetTask()
this.allocatingTaskId=obj.Id this.getMyTask()
this.addTask=true } else {
this.isAllocatingTask=true this.$message.error(res.data.message)
this.getTaskType() }
this.membersArr=[] }, err => {})
this.addTaskTableList=[] },
allocatingTask(obj) {
this.apipost('Sell_Get_Management_GetSellDepartmentTaskInfo',{UserTaskId:obj.Id},res=>{ this.layerMsg.TaskUserId = obj.Id
if(res.data.resultCode==1){ this.getTaskMember()
let msg=res.data.data this.allocatingTaskId = obj.Id
this.addTaskMsg.TaskName=msg.TaskName this.addTask = true
this.addTaskMsg.TaskType=msg.TaskType this.isAllocatingTask = true
this.addTaskMsg.TaskNum=msg.TaskNum this.getTaskType()
this.addTaskMsg.RealTaskNum=msg.RealTaskNum this.membersArr = []
this.addTaskMsg.taskTime=[msg.StartTime,msg.EndTime] this.addTaskTableList = []
this.addTaskMsg.Remarks=msg.Remarks
msg.UserTaskList.forEach(item=>{ this.apipost('Sell_Get_Management_GetSellDepartmentTaskInfo', {
this.membersArr.push(item.DepOrEmpId) UserTaskId: obj.Id
this.membersArrCopy.push(item.DepOrEmpId) }, res => {
this.addTaskTableList.push({type:item.Type,id:item.Id,DepOrEmpId:item.DepOrEmpId,name:item.DepEmpName,value:item.RealTaskNum,Percentage:item.Percentage,PrevFinish:item.PrevFinish}) if (res.data.resultCode == 1) {
}) let msg = res.data.data
} this.addTaskMsg.TaskName = msg.TaskName
},err=>{}) this.addTaskMsg.TaskType = msg.TaskType
}, this.addTaskMsg.TaskNum = msg.TaskNum
addTaskItem(node){ this.addTaskMsg.RealTaskNum = msg.RealTaskNum
let taskItemMsg={} this.addTaskMsg.taskTime = [msg.StartTime, msg.EndTime]
taskItemMsg.JoinId=node.Id this.addTaskMsg.Remarks = msg.Remarks
taskItemMsg.JoinType=this.taskMembers.Type msg.UserTaskList.forEach(item => {
taskItemMsg.TaskType=this.addTaskMsg.TaskType this.membersArr.push(item.DepOrEmpId)
this.apipost('Sell_Get_Management_GetPrevTaskRecord',taskItemMsg,res=>{ this.membersArrCopy.push(item.DepOrEmpId)
if(res.data.resultCode==1){ this.addTaskTableList.push({
this.addTaskTableList.push({type:taskItemMsg.JoinType,id:0,DepOrEmpId:taskItemMsg.JoinId,name:node.Name,value:'',Percentage:res.data.data.Percentage,PrevFinish:res.data.data.PrevFinish}) type: item.Type,
} id: item.Id,
},err=>{}) DepOrEmpId: item.DepOrEmpId,
}, name: item.DepEmpName,
deleteTaskItem(node){ value: item.RealTaskNum,
if(this.addTaskTableList.findIndex(item=>item.DepOrEmpId==node.Id)!=-1){ Percentage: item.Percentage,
this.addTaskTableList.splice(this.addTaskTableList.findIndex(item=>item.DepOrEmpId==node.Id),1) PrevFinish: item.PrevFinish
} })
}, })
getTaskMember(){ }
this.apipost('Sell_Get_Management_GetNowDepartmentChild',this.layerMsg,res=>{ }, err => {})
if(res.data.resultCode==1){ },
this.taskMembers=res.data.data addTaskItem(node) {
this.taskMemberList=res.data.data.date let taskItemMsg = {}
} taskItemMsg.JoinId = node.Id
},err=>{}) taskItemMsg.JoinType = this.taskMembers.Type
}, taskItemMsg.TaskType = this.addTaskMsg.TaskType
addNewTask(){ this.apipost('Sell_Get_Management_GetPrevTaskRecord', taskItemMsg, res => {
this.addTask=true if (res.data.resultCode == 1) {
this.isAllocatingTask=false this.addTaskTableList.push({
this.layerMsg.TaskUserId=0 type: taskItemMsg.JoinType,
this.getTaskMember() id: 0,
this.getTaskType() DepOrEmpId: taskItemMsg.JoinId,
}, name: node.Name,
saveNewTask(){ value: '',
this.addTaskMsg.UserTaskList=[] Percentage: res.data.data.Percentage,
this.addTaskMsg.StartTime=this.addTaskMsg.taskTime[0] PrevFinish: res.data.data.PrevFinish
this.addTaskMsg.EndTime=this.addTaskMsg.taskTime[1] })
this.addTaskMsg.RealTaskNum=this.addTaskMsg.TaskNum }
let i=0; }, err => {})
this.addTaskTableList.forEach(item=>{ },
this.addTaskMsg.UserTaskList.push({Type:item.type,RealTaskNum:item.value,TaskNum:item.value,DepOrEmpId:item.DepOrEmpId}) deleteTaskItem(node) {
i+=parseInt(item.value) if (this.addTaskTableList.findIndex(item => item.DepOrEmpId == node.Id) != -1) {
}) this.addTaskTableList.splice(this.addTaskTableList.findIndex(item => item.DepOrEmpId == node.Id), 1)
if(this.addTaskTableList.length==0){ }
this.$message.error('请选择分配对象!') },
return getTaskMember() {
} this.apipost('Sell_Get_Management_GetNowDepartmentChild', this.layerMsg, res => {
this.apipost('Sell_Post_Management_SetSellTask',this.addTaskMsg,res=>{ if (res.data.resultCode == 1) {
if(res.data.resultCode==1){ this.taskMembers = res.data.data
this.clearMsg() this.taskMemberList = res.data.data.date
this.departmetTaskList=[] }
this.myTaskList=[] }, err => {})
this.departmetTaskMsg.PageIndex=1 },
this.myTaskMsg.pageIndex=1 addNewTask() {
this.getDepartmetTask() this.addTask = true
this.getMyTask() this.isAllocatingTask = false
this.$message.success(res.data.message) this.layerMsg.TaskUserId = 0
}else{ this.getTaskMember()
this.$message.error(res.data.message) this.getTaskType()
} },
},err=>{}) saveNewTask() {
}, this.addTaskMsg.UserTaskList = []
getTaskType(){ this.addTaskMsg.StartTime = this.addTaskMsg.taskTime[0]
this.apipost('Sell_Get_Management_GetSellTaskTypeList',{},res=>{ this.addTaskMsg.EndTime = this.addTaskMsg.taskTime[1]
if(res.data.resultCode==1){ this.addTaskMsg.RealTaskNum = this.addTaskMsg.TaskNum
this.taskTypeList=res.data.data let i = 0;
} this.addTaskTableList.forEach(item => {
},err=>{}) this.addTaskMsg.UserTaskList.push({
}, Type: item.type,
getDepartmetTask(){ RealTaskNum: item.value,
this.apipost('Sell_Get_Management_GetSellDepartmentTaskList',this.departmetTaskMsg,res=>{ TaskNum: item.value,
if(res.data.resultCode==1){ DepOrEmpId: item.DepOrEmpId
this.departmetTaskList=this.departmetTaskList.concat(res.data.data.pageData) })
} i += parseInt(item.value)
},err=>{}) })
}, if (this.addTaskTableList.length == 0) {
getNowTask(){ this.$message.error('请选择分配对象!')
this.apipost('TaskManagemnet_post_GetNowTaskForEmployee',this.nowTaskMsg,res=>{ return
if(res.data.resultCode==1){ }
this.nowTaskList=this.nowTaskList.concat(res.data.data.pageData) this.apipost('Sell_Post_Management_SetSellTask', this.addTaskMsg, res => {
} if (res.data.resultCode == 1) {
},err=>{}) this.clearMsg()
}, this.departmetTaskList = []
getDepartmentPower(){ this.myTaskList = []
this.apipost('TaskManagemnet_post_GetExecutiveForce',{},res=>{ this.departmetTaskMsg.PageIndex = 1
if(res.data.resultCode==1){ this.myTaskMsg.pageIndex = 1
this.departmentPowerList=res.data.data this.getDepartmetTask()
this.departmentPowerList.forEach((i,index)=>{ this.getMyTask()
let insideColor this.$message.success(res.data.message)
let outsideColor } else {
if(i.rate==0){ this.$message.error(res.data.message)
insideColor='#999999' }
outsideColor='#999999' }, err => {})
}else if(i.rate<50&&i.rate>0){ },
insideColor='#E85252' getTaskType() {
outsideColor='#FFDDDD' this.apipost('Sell_Get_Management_GetSellTaskTypeList', {}, res => {
}else if(50<=i.rate&&i.rate<80){ if (res.data.resultCode == 1) {
insideColor='#FFBA1F' this.taskTypeList = res.data.data
outsideColor='#FFE09B' }
}else if(80<=i.rate&&i.rate<100){ }, err => {})
insideColor='#2AAEF2' },
outsideColor='#BDE9FF' getDepartmetTask() {
}else if(i.rate==100){ this.apipost('Sell_Get_Management_GetSellDepartmentTaskList', this.departmetTaskMsg, res => {
insideColor='#47BF8C' if (res.data.resultCode == 1) {
outsideColor='#47BF8C' this.departmetTaskList = this.departmetTaskList.concat(res.data.data.pageData)
} }
this.$nextTick(()=>{ }, err => {})
this.$chartsUtils.saleTaskDepartment('mychart'+index,i.taskTypeStr,i.rate,insideColor,outsideColor) },
}) getNowTask() {
}) this.apipost('TaskManagemnet_post_GetNowTaskForEmployee', this.nowTaskMsg, res => {
} if (res.data.resultCode == 1) {
},err=>{}) this.nowTaskList = this.nowTaskList.concat(res.data.data.pageData)
}, }
getMyTask(){ }, err => {})
this.apipost('Sell_Management_TaskForMyIssue',this.myTaskMsg,res=>{ },
if(res.data.resultCode==1){ getDepartmentPower() {
this.myTaskList=this.myTaskList.concat(res.data.data.pageData) this.apipost('TaskManagemnet_post_GetExecutiveForce', {}, res => {
} if (res.data.resultCode == 1) {
},err=>{}) this.departmentPowerList = res.data.data
}, this.departmentPowerList.forEach((i, index) => {
getTodayTask(){ let insideColor
this.apipost('TaskManagemnet_post_GetListSellContribution',this.todayTaskMsg,res=>{ let outsideColor
if(res.data.resultCode==1){ if (i.rate == 0) {
this.todayTaskList=this.todayTaskList.concat(res.data.data.pageData) insideColor = '#999999'
if(this.todayTaskList.length>0){ outsideColor = '#999999'
this.todayTaskMsg.Id=this.todayTaskList[0].id } else if (i.rate < 50 && i.rate > 0) {
this.todayTaskMsgNew.Id=this.todayTaskList[0].id insideColor = '#E85252'
} outsideColor = '#FFDDDD'
} } else if (50 <= i.rate && i.rate < 80) {
},err=>{}) insideColor = '#FFBA1F'
outsideColor = '#FFE09B'
}, } else if (80 <= i.rate && i.rate < 100) {
getTodayTaskNew(){ insideColor = '#2AAEF2'
this.timer = setInterval(()=>{ outsideColor = '#BDE9FF'
this.apipost('TaskManagemnet_post_GetRefreshList',this.todayTaskMsgNew,res=>{ } else if (i.rate == 100) {
if(res.data.resultCode==1){ insideColor = '#47BF8C'
if(res.data.data.length>0){ outsideColor = '#47BF8C'
this.todayTaskListNew=res.data.data.concat(this.todayTaskListNew) }
this.todayTaskMsgNew.Id=this.todayTaskListNew[0].id this.$nextTick(() => {
}else{ this.$chartsUtils.saleTaskDepartment('mychart' + index, i.taskTypeStr, i.rate, insideColor,
outsideColor)
} })
} })
},err=>{}) }
},60000) }, err => {})
}, },
goUrl (path,id,title) { getMyTask() {
this.$router.push({ name: path,query:{"id":id,"PersonOrDepartment":0,blank:'y',tab:title} }) this.apipost('Sell_Management_TaskForMyIssue', this.myTaskMsg, res => {
} if (res.data.resultCode == 1) {
},beforeDestroy(){ this.myTaskList = this.myTaskList.concat(res.data.data.pageData)
if(this.timer) { //如果定时器还在运行 或者直接关闭,不用判断 }
clearInterval(this.timer); //关闭 }, err => {})
} },
} getTodayTask() {
this.apipost('TaskManagemnet_post_GetListSellContribution', this.todayTaskMsg, res => {
if (res.data.resultCode == 1) {
this.todayTaskList = this.todayTaskList.concat(res.data.data.pageData)
if (this.todayTaskList&&this.todayTaskList.length > 0) {
this.todayTaskMsg.Id = this.todayTaskList[0].id
this.todayTaskMsgNew.Id = this.todayTaskList[0].id
}
}
}, err => {})
},
getTodayTaskNew() {
this.timer = setInterval(() => {
this.apipost('TaskManagemnet_post_GetRefreshList', this.todayTaskMsgNew, res => {
if (res.data.resultCode == 1) {
if (res.data.data && res.data.data.length > 0) {
this.todayTaskListNew = res.data.data.concat(this.todayTaskListNew)
this.todayTaskMsgNew.Id = this.todayTaskListNew[0].id
} else {
}
}
}, err => {})
}, 60000)
},
goUrl(path, id, title) {
this.$router.push({
name: path,
query: {
"id": id,
"PersonOrDepartment": 0,
blank: 'y',
tab: title
}
})
}
},
beforeDestroy() {
if (this.timer) { //如果定时器还在运行 或者直接关闭,不用判断
clearInterval(this.timer); //关闭
}
} }
}
</script> </script>
<style> <style>
.saleTaskList .noDataNotice{ text-align: center; padding-top: 80px; color: #999; font-size: 14px; } .saleTaskList .noDataNotice {
.saleTaskList .noDataNotice>i{font-size: 120px; color: #ccc;} text-align: center;
.saleTaskList .noDataNotice>p{margin-top: 10px;} padding-top: 80px;
.saleTaskList{position: absolute; left: 0; top:35px; padding-left:20px ; } color: #999;
.saleTaskList .goSaleTaskDetail{cursor: pointer;} font-size: 14px;
.saleTaskList .goSaleTaskDetail:hover{color: #E95252;} }
.saleTaskList ul li{float: left; margin:10px 30px 0 0;}
.saleTaskList .itemCont::-webkit-scrollbar{width: 4px;height: 1px;} .saleTaskList .noDataNotice>i {
.saleTaskList .itemCont::-webkit-scrollbar-thumb{box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);border-radius: 4px;background: #eee;} font-size: 120px;
.saleTaskList ul li .itemCont{width: 460px; height: 360px; border:1px solid #e5e5e5; background: #fff; border-radius: 4px; overflow-y: auto; padding:10px 20px;} color: #ccc;
.saleTaskList ul li .width530{width: 530px!important;} }
.saleTaskList ul li .width590{width: 590px!important;}
.saleTaskList .myChatList>div{float: left;margin:20px 25px 19px;} .saleTaskList .noDataNotice>p {
.saleTaskList .itemCont .contTypeOne .el-progress__text{font-size: 14px!important;} margin-top: 10px;
.saleTaskList ul li>p{height: 14px; line-height: 14px; border-left:3px solid #E95252; font-size: 14px; color: #333; margin: 20px 0; text-indent: 10px;} }
.saleTaskList .addTaskTitle{height: 14px; line-height: 14px; border-left:3px solid #E95252; font-size: 14px; color: #333; margin: 20px 0; text-indent: 10px;}
.saleTaskList .contTypeOne {margin-bottom:15px ;} .saleTaskList {
.saleTaskList .contTypeOne p{font-size: 16px; color: #333;} position: absolute;
.saleTaskList .contTypeOne p.smallfont{font-size: 14px; color: #666;} left: 0;
.saleTaskList .contTypeOne p{line-height:40px;} top: 35px;
.saleTaskList .contTypeOne p i{color: #E95252; cursor: pointer;} padding-left: 20px;
.saleTaskList .contTypeOne p>em{color: #fff; background: #2C6ED5; font-size: 12px; font-style: normal; padding:0 2px; border-radius: 4px; margin-left:8px;} }
.saleTaskList .contTypeOne p>span{font-size: 12px; color: #47BF8C;}
.saleTaskList .contTypeTwo {float: left; width: 126px; height: 126px; text-align: center; margin: 10px;} .saleTaskList .goSaleTaskDetail {
.saleTaskList .contTypeTwo>p{font-size: 14px; color: #666;margin-top: 10px;} cursor: pointer;
.saleTaskList .itemCont .contTypeTwo .el-progress__text{font-size: 20px!important;} }
.saleTaskList ul li>p>span{float: right; color: #E95252; cursor:pointer;}
.saleTaskList .itemCont .contTypeThree{margin:20px 0; overflow: hidden;line-height: 30px; height: 30px} .saleTaskList .goSaleTaskDetail:hover {
.saleTaskList .itemCont .contTypeThree>div{float: left; font-size: 14px;} color: #E95252;
.saleTaskList .itemCont .contTypeThree .name{width: 100px;} }
.saleTaskList .itemCont .contTypeThree .name>img{width: 24px; height: 24px; border-radius: 12px; vertical-align:middle}
.saleTaskList .itemCont .contTypeThree .department{width: 110px;} .saleTaskList ul li {
.saleTaskList .itemCont .contTypeThree .message{width:200px;} float: left;
.saleTaskList .itemCont .contTypeThree .message>p{float: left;} margin: 10px 30px 0 0;
.saleTaskList .itemCont .contTypeThree .message>p>span{color:#47BF8C;} }
.saleTaskList .itemCont .contTypeThree .message p.msg{max-width: 120px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}
.saleTaskList .itemCont .contTypeThree .time{float: right; text-align: right; color: #999;} .saleTaskList .itemCont::-webkit-scrollbar {
.saleTaskpopover{padding:0 10px 10px; font-size: 12px;} width: 4px;
.saleTaskpopoverTable{margin: 10px 0 20px 0;} height: 1px;
.saleTaskpopoverTable tr{height: 34px; } }
.saleTaskpopoverTable td{font-size: 12px!important; color: #666;}
.saleTaskpopoverTable td>i{margin-right: 3px; color: #d9d9d9;} .saleTaskList .itemCont::-webkit-scrollbar-thumb {
.saleTaskList .addTaskLayer{position:absolute; padding:0 20px 20px; left: 0; bottom: 0; width: 100%; min-height:520px; z-index: 5; background: #ffffff; border-top: 1px solid #D2D2D2;} box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
.saleTaskList .addTaskLayer .addMsg{width: 100%; height: 420px;} border-radius: 4px;
.saleTaskList .addTaskLayer .addMsg>div{float: left; min-height: 300px; font-size: 12px; padding:0 13px; margin-right: 30px;} background: #eee;
.saleTaskList .addTaskLayer .addMsg>div>p{margin: 15px 0;} }
.addTaskLayer .el-form-item__label{font-size: 12px!important;}
.addTaskLayer .el-date-editor.el-range-editor.el-input__inner.el-date-editor--daterange{border-radius: 17px;} .saleTaskList ul li .itemCont {
.el-select .el-input {border-radius: 17px;height: 34px;} width: 460px;
.h34 .el-range__icon,.h34 .el-range-separator{line-height: 29px;} height: 360px;
.addTaskLayerTable{background: #EDEDED;} border: 1px solid #e5e5e5;
.addTaskLayerTable td{padding: 10px; background: #FFF; text-align: center;} background: #fff;
.addTaskLayerTable th{background: #EDEDED; padding:10px;} border-radius: 4px;
.addTaskLayerTableDiv{overflow: hidden;} overflow-y: auto;
.addTaskLayerTableDiv>p{display:inline-block;margin-bottom: 10px;} padding: 10px 20px;
.addTaskLayerTableDiv .finish{width: 56px; text-align:left;} }
.addTaskLayerTableDiv .finishH{height: 30px;}
.finishNumTips{height: 12px;} .saleTaskList ul li .width530 {
.finishNum{width: 40px;} width: 530px !important;
.addTaskLayer .vue-treeselect__x{display: none;} }
.saleTaskList ul li .width590 {
width: 590px !important;
}
.saleTaskList .myChatList>div {
float: left;
margin: 20px 25px 19px;
}
.saleTaskList .itemCont .contTypeOne .el-progress__text {
font-size: 14px !important;
}
.saleTaskList ul li>p {
height: 14px;
line-height: 14px;
border-left: 3px solid #E95252;
font-size: 14px;
color: #333;
margin: 20px 0;
text-indent: 10px;
}
.saleTaskList .addTaskTitle {
height: 14px;
line-height: 14px;
border-left: 3px solid #E95252;
font-size: 14px;
color: #333;
margin: 20px 0;
text-indent: 10px;
}
.saleTaskList .contTypeOne {
margin-bottom: 15px;
}
.saleTaskList .contTypeOne p {
font-size: 16px;
color: #333;
}
.saleTaskList .contTypeOne p.smallfont {
font-size: 14px;
color: #666;
}
.saleTaskList .contTypeOne p {
line-height: 40px;
}
.saleTaskList .contTypeOne p i {
color: #E95252;
cursor: pointer;
}
.saleTaskList .contTypeOne p>em {
color: #fff;
background: #2C6ED5;
font-size: 12px;
font-style: normal;
padding: 0 2px;
border-radius: 4px;
margin-left: 8px;
}
.saleTaskList .contTypeOne p>span {
font-size: 12px;
color: #47BF8C;
}
.saleTaskList .contTypeTwo {
float: left;
width: 126px;
height: 126px;
text-align: center;
margin: 10px;
}
.saleTaskList .contTypeTwo>p {
font-size: 14px;
color: #666;
margin-top: 10px;
}
.saleTaskList .itemCont .contTypeTwo .el-progress__text {
font-size: 20px !important;
}
.saleTaskList ul li>p>span {
float: right;
color: #E95252;
cursor: pointer;
}
.saleTaskList .itemCont .contTypeThree {
margin: 20px 0;
overflow: hidden;
line-height: 30px;
height: 30px
}
.saleTaskList .itemCont .contTypeThree>div {
float: left;
font-size: 14px;
}
.saleTaskList .itemCont .contTypeThree .name {
width: 100px;
}
.saleTaskList .itemCont .contTypeThree .name>img {
width: 24px;
height: 24px;
border-radius: 12px;
vertical-align: middle
}
.saleTaskList .itemCont .contTypeThree .department {
width: 110px;
}
.saleTaskList .itemCont .contTypeThree .message {
width: 200px;
}
.saleTaskList .itemCont .contTypeThree .message>p {
float: left;
}
.saleTaskList .itemCont .contTypeThree .message>p>span {
color: #47BF8C;
}
.saleTaskList .itemCont .contTypeThree .message p.msg {
max-width: 120px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap
}
.saleTaskList .itemCont .contTypeThree .time {
float: right;
text-align: right;
color: #999;
}
.saleTaskpopover {
padding: 0 10px 10px;
font-size: 12px;
}
.saleTaskpopoverTable {
margin: 10px 0 20px 0;
}
.saleTaskpopoverTable tr {
height: 34px;
}
.saleTaskpopoverTable td {
font-size: 12px !important;
color: #666;
}
.saleTaskpopoverTable td>i {
margin-right: 3px;
color: #d9d9d9;
}
.saleTaskList .addTaskLayer {
position: absolute;
padding: 0 20px 20px;
left: 0;
bottom: 0;
width: 100%;
min-height: 520px;
z-index: 5;
background: #ffffff;
border-top: 1px solid #D2D2D2;
}
.saleTaskList .addTaskLayer .addMsg {
width: 100%;
height: 420px;
}
.saleTaskList .addTaskLayer .addMsg>div {
float: left;
min-height: 300px;
font-size: 12px;
padding: 0 13px;
margin-right: 30px;
}
.saleTaskList .addTaskLayer .addMsg>div>p {
margin: 15px 0;
}
.addTaskLayer .el-form-item__label {
font-size: 12px !important;
}
.addTaskLayer .el-date-editor.el-range-editor.el-input__inner.el-date-editor--daterange {
border-radius: 17px;
}
.el-select .el-input {
border-radius: 17px;
height: 34px;
}
.h34 .el-range__icon,
.h34 .el-range-separator {
line-height: 29px;
}
.addTaskLayerTable {
background: #EDEDED;
}
.addTaskLayerTable td {
padding: 10px;
background: #FFF;
text-align: center;
}
.addTaskLayerTable th {
background: #EDEDED;
padding: 10px;
}
.addTaskLayerTableDiv {
overflow: hidden;
}
.addTaskLayerTableDiv>p {
display: inline-block;
margin-bottom: 10px;
}
.addTaskLayerTableDiv .finish {
width: 56px;
text-align: left;
}
.addTaskLayerTableDiv .finishH {
height: 30px;
}
.finishNumTips {
height: 12px;
}
.finishNum {
width: 40px;
}
.addTaskLayer .vue-treeselect__x {
display: none;
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment