You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1444 lines
55 KiB
Plaintext

11 months ago
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../WF/Portal/layui/css/layui.css" rel="stylesheet" />
<script type="text/javascript" src="../../WF/Scripts/bootstrap/js/jquery.min.js"></script>
<script type="text/javascript" src="../../WF/Scripts/bootstrap/js/bootstrap.min.js"></script>
<script src="../../WF/Scripts/QueryString.js" type="text/javascript"></script>
<script src="../../WF/Scripts/config.js" type="text/javascript"></script>
<script src="../../WF/Comm/Gener.js" type="text/javascript"></script>
<script src="../../WF/Scripts/layui/laydate/laydate.js"></script>
<script src="../layuiadmin/layui/lay/modules/layer.js"></script>
<script src="../../WF/Scripts/layui/LayuiDialog.js" type="text/javascript"></script>
<script src="../../WF/Portal/js/vue/vue.js" type="text/javascript"></script>
<style>
body {
background: #fff;
}
.taskWindows {
width: 100%;
height: 100%;
background: #fff;
position: fixed;
top: 0px;
}
.taskForm {
width: 80%;
box-shadow: 0px 0px 8px #eee;
height: 80%;
margin: 5% auto;
padding: 15px;
border-radius: 5px;
}
.pull-right {
float: right;
}
.taskForm > .tf-title {
padding: 10px 0px;
}
.taskForm > .tf-title > .title {
font-size: 16px;
font-weight: bold
}
.tf-colse {
cursor: pointer;
font-size: 16px;
font-weight: bold
}
.tf-colse:hover {
color: #1E9FFF;
}
.taskeidt {
width: 70%;
height: 100%;
position: fixed;
top: 0px;
right: 0px;
transform: translateX(100%);
transition: all 0.8s;
box-shadow: 0px 0px 8px #ccc;
}
.in {
transform: translateX(0)
}
.closeEdit {
position: absolute;
top: 50%;
background: #ff6a00;
left: -40px;
color: #fff;
width: 40px;
height: 40px;
font-size: 36px;
font-weight: bold;
text-align: center;
line-height: 30px;
border-radius: 5px 0px 0px 5px;
cursor: pointer
}
.editTaskWindow {
background: #fff;
height: 100%;
box-shadow: 0px 0px 8px #eee;
}
.editTk-header {
border-bottom: 15px solid #efefef;
padding: 15px;
}
.editTk-nav {
font-size: 12px;
color: #808080;
line-height: 32px;
}
.editTk-title {
font-size: 20px;
font-weight: bold;
padding: 15px 0px;
}
.editTk-colinfo {
color: #808080
}
.editTk-colinfo .bg {
width: 40px;
height: 40px;
line-height: 40px;
border-radius: 50%;
text-align: center;
display: inline-block;
color: #fff;
float: left;
margin-right: 10px;
}
.editTk-colinfo .bg0 {
background: #1E9FFF
}
.editTk-colinfo .bg1 {
background: #ff6a00
}
.editTk-colinfo .bg2 {
background: #009688
}
.editTk-colinfo .bg3 {
background: #02b436
}
.editTk-colinfo .bg4 {
background: #a33de1
}
.editTk-colinfo .coltxto {
line-height: 40px;
}
.editTk-colinfo .coltxt strong {
display: block;
color: #000000
}
.PRI {
position: relative
}
.PRIab {
position: absolute;
top: 42px;
left: 6px;
background: #fff;
border: 1px solid #efefef;
padding: 5px;
border-radius: 5px;
}
.PRIab span {
width: 30px;
height: 30px;
display: inline-block;
border-radius: 50%;
margin: 5px;
text-align: center;
line-height: 30px;
color: #fff;
}
.PRIab .bg0 {
background: #1E9FFF
}
.PRIab .bg1 {
background: #ff6a00
}
.PRIab .bg2 {
background: #009688
}
.task-table-pri{ text-align:center}
.task-table-pri .bg {
font-size: 12px;
color: #fff;
display: inline-block;
padding: 2px 5px;
}
.task-table-pri .bg0 {
background: #1E9FFF
}
.task-table-pri .bg1 {
background: #ff6a00
}
.task-table-pri .bg2 {
background: #009688
}
.task-fixed {
position: fixed;
bottom: 10px;
width: 88%;
left: 5%;
border: 1px solid #efefef;
padding: 10px 1%;
border-radius: 5px;
background: #fff;
}
.editTk-body {
padding: 15px;
max-height:600px;
overflow:auto
}
.editTk-body .TK-panel {
padding: 5px 0px;
}
.TK-panel .TK-panel-title {
font-weight: bold;
line-height: 30px;
}
.TK-panel .TK-panel-body {
padding: 5px 0px;
}
.task-fixed-bottom {
line-height: 38px;
color: #808080
}
.task-foot-icon {
cursor: pointer
}
.task-foot-icon span {
display: block
}
.task-foot-icon i:hover {
color: #1E9FFF;
}
.gray {
color: #808080
}
.input-select_pop {
position: absolute;
z-index: 9;
background-color: white;
border: 1px solid #E4E7ED;
border-radius: 4px;
max-height: 274px;
box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
margin-top: 5px;
padding: 5px 10px;
box-sizing: border-box;
}
.input-select_options {
line-height: 26px;
width: 160px;
}
.selectRefShow {
border: 1px solid #eee;
line-height: 38px;
height: 38px;
position:relative
}
.selectRefHide {
padding-top: 10px;
border-top: 1px solid #efefef;
margin-top: 5px;
display: block
}
.sub-task {
display: flex;
margin: 4px 0px;
background: #f8faff;
padding: 8px;
font-size: 14px
}
.edit-del-box {
white-space: nowrap;
opacity: 0
}
.edit-dtto {
white-space: nowrap;
color: #b2b1b1
}
.edit-del-box:hover {
opacity: 1
}
.xr-text-btn {
font-size: 12px;
cursor: pointer;
margin: 0px 5px;
}
.xr-text-btn.primary {
color: #2362fb;
}
.xr-text-btn.delete {
color: #f94e4e;
}
.task-sub {
border: 1px solid #2362fb;
border-radius: 3px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
padding: 5px;
}
.subtasks-content {
width: 100%
}
.subtasks-content .layui-input {
border: 0px;
height: 30px;
}
.childDTTo {
width: auto;
font-size: 12px;
white-space: nowrap;
}
.editRefdata {
display: inline-block;
background: #f8faff;
padding: 2px 5px 4px 15px;
margin: 0px 5px;
}
.editRefdata sup {
opacity: 0;
}
.editRefdata:hover sup {
opacity: 1;
color: #f94e4e;
cursor: pointer
}
.TaskDepts {
width: 300px;
position: absolute;
z-index: 999;
background: #fff;
border: 1px solid #e6e6e6;
border-radius: 5px;
box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
}
.TaskDepts .TaskDepts-title {
border-bottom: 1px solid #e6e6e6;
padding:10px 15px;
}
.TaskDepts .TaskDepts-box {
padding: 10px 15px;
height: 248px;
overflow:auto
}
.Depts li{
line-height:26px;
}
.Depts li .Depts-Emps {
padding-left:20px
}
.txtu {
text-decoration: line-through;
color:#808080;
background:#f8faff
}
</style>
</head>
<body>
<div class="layui-fluid" id="workRec-Default" style="margin-top:15px">
<div class="TaskDepts" v-if="Deptshow" :style = "{'left':DeptshowLeft,'top':Deptshowtop}">
<div class="TaskDepts-title">人员</div>
<div class="TaskDepts-box">
<div class="TaskDepts-input">
<input type="text" class="layui-input" placeholder="请输入内容" id="SearchRefKey" @input="selectRefHandle($event)" placeholder="搜索参与人"/>
</div>
<div class="Depts">
<ul>
<li class="" v-for="(Ditem,dk) in DeptsData" v-if="Ditem.Num > 0">
<p @click="Ditem.open = !Ditem.open"><i v-if="Ditem.Empslist.length > 0" class="layui-icon"
:class="Ditem.open ? 'layui-icon-down':'layui-icon-right'"></i> {{Ditem.Name}} {{Ditem.Num}}人</p>
<div class="Depts-Emps" v-for="(Eitem,dk) in Ditem.Empslist" v-if="Ditem.open || Ditem.Num === 0">
<input type="checkbox" :value="Eitem.No" @click.stop="SelRefEmpno(Eitem.No,Eitem.Name,ChoosePeoTpye,Eitem.status)" v-model="Eitem.status"/> {{Eitem.Name}}
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="layui-row">
<span class="pull-right layui-btn layui-btn-normal layui-btn-sm" @click.stop="AddTask()">添加任务</span>
<span @click.stop="AllTasks(1)" class="layui-btn layui-btn-sm" :class="{'layui-btn-normal':1===activeIndex}">全部</span>
<span @click.stop="MyTasks(2)" class="layui-btn layui-btn-sm" :class="{'layui-btn-normal':2===activeIndex}">我负责的</span>
<span @click.stop="RefTasks(3)" class="layui-btn layui-btn-sm" :class="{'layui-btn-normal':3===activeIndex}">我参与的</span>
</div>
<table class="layui-table">
<thead>
<tr align="center">
<th width="40">#</th>
<th width="40">-</th>
<th>任务名称</th>
<th>开始时间</th>
<th>结束时间</th>
<th>负责人</th>
<th>参与人</th>
</tr>
</thead>
<tbody>
<tr v-for="(item,index) in list" @click.stop="editTask(item.MyPK)" :id="'title'+item.MyPK" :class="item.TaskSta ?'txtu':''">
<td align="center"><input type="checkbox" :value="item.TaskSta" @click.stop="checkboxI(item.MyPK,item.TaskSta)" v-model="item.TaskSta" /></td>
<td class="task-table-pri"><div class="bg" :class="'bg'+item.TaskPRI">{{item.TaskPRIText}}</div></td>
<td><div >{{item.Title}}</div></td>
<td>{{item.DTFrom}}</td>
<td>{{item.DTTo}}</td>
<td>{{item.ManagerEmpName}}</td>
<td>{{item.RefEmpsName}}</td>
</tr>
</tbody>
</table>
<div class="taskWindows" v-if="show" @click.stop="isShowRefPop=false,Deptshow=false">
<div class="taskForm">
<div class="tf-title">
<span class="pull-right tf-colse" @click.stop="closeTask(),Deptshow=false"><i class="layui-icon layui-icon-close"></i></span>
<div class="title">新建任务</div>
</div>
<form class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">任务名称</label>
<div class="layui-input-block">
<input type="text" name="TB_Title" id="TB_Title" autocomplete="off" placeholder="请输入标题" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">开始时间</label>
<div class="layui-input-inline">
<input type="text" name="TB_DTFrom" id="TB_DTFrom" autocomplete="off" placeholder="请输入开始时间" class="layui-input" v-on:focus="Dtime('TB_DTFrom')">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">结束时间</label>
<div class="layui-input-inline">
<input type="text" name="TB_DTTo" id="TB_DTTo" autocomplete="off" placeholder="请输入结束时间" class="layui-input" v-on:focus="Dtime('TB_DTTo')">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">负责人</label>
<div class="layui-input-inline" style="width:auto;min-width:190px">
<div id="TB_RefEmpsNo" @click.stop="selectEmpShow($event)" class="selectRefShow" v-html="EmpHtmlraw" ref="EmpBox"></div>
<!--<div class="input-select_pop" v-if="isShowEmpPop">
<input type="text" name="TB_ManagerEmpName" id="TB_ManagerEmpName" @input="selectEmpHandle($event)" autocomplete="off" placeholder="请输入负责人" class="layui-input">
<ul class="input-select_options">
<li v-for="(option,index) in optionsList" @click.stop="SelEmpno(option.No,option.Name)">
{{option.Name}}
</li>
</ul>
</div>-->
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">参与人</label>
<div class="layui-input-inline" style="width:auto;min-width:190px">
<div id="TB_RefEmpsNo" @click.stop="selectRefShow($event)" class="selectRefShow" v-html="RefHtmlraw" ref="RefBox">请选择</div>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">优先级</label>
<div class="layui-input-inline">
<select name="TB_TaskPRI" id="TB_TaskPRI" class="layui-input" style="display:block">
<option value="0">高</option>
<option value="1">中</option>
<option value="2">低</option>
</select>
</div>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">描述</label>
<div class="layui-input-block">
<textarea placeholder="请输入内容" name="TB_Docs" id="TB_Docs" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<span type="submit" class="layui-btn layui-btn-normal" @click.stop="SaveTask()">保存</span>
<button @click.stop="closeTask()" class="layui-btn layui-btn-primary">取消</button>
</div>
</div>
</form>
</div>
</div>
<div :class="editshow ? 'taskeidt in':'taskeidt'" v-if="editshow" @click.stop="addChildSave(edittaskdata.MyPK),showAddChildbox=false,showAddChild=true,prisshow=false,isShowEmpPop=false,isShowRefPop=false,Deptshow=false">
<div class="closeEdit" @click.top="closeEditTask()">
<i class="layui-icon layui-icon-close"></i>
</div>
<div class="editTaskWindow">
<div class="editTk-header">
<div class="editTk-nav">
<div class="pull-right"><span class="layui-btn layui-btn-xs layui-btn-primary" @click.stop="delTask(edittaskdata.MyPK)">删除</span></div>
<div class="navinfo">{{edittaskdata.RecName}} 创建于 {{edittaskdata.RDT}}</div>
</div>
<div class="editTk-title" v-if="edittitle==1" @click.stop="editTasktitle()">{{edittaskdata.Title}}</div>
<div class="editTk-title" v-if="edittitle==0">
<input :value="edittaskdata.Title" id="edittitle" class="layui-input" style="margin-bottom:8px" />
<button class="layui-btn layui-btn-sm layui-btn-normal" @click.stop="editTasktitleSave(edittaskdata.MyPK)">确认</button>
<button class="layui-btn layui-btn-sm layui-btn-primary" @click.stop="editTasktitleC()">取消</button>
</div>
<div class="layui-row editTk-colinfo">
<div class="layui-col-sm3 PRI" @click.stop="PRIbtn">
<div class="bg" :class="'bg'+edittaskdata.TaskPRI">{{edittaskdata.TaskPRIText}}</div>
<div class="coltxto">
优先级
</div>
<div class="PRIab" id="PRIab" v-show="prisshow">
<span class="bg0" @click.stop="PRIshowBtn(edittaskdata.MyPK,0)">高</span><span class="bg1" @click.stop="PRIshowBtn(edittaskdata.MyPK,1)">中</span><span @click.stop="PRIshowBtn(edittaskdata.MyPK,2)" class="bg2">低</span>
</div>
</div>
<div class="layui-col-sm3">
<div class="bg2 bg">In</div>
<div :class="edittaskdata.ManagerEmpNo ? 'coltxt':'coltxto'" @click.stop="selectEmpEShow(edittaskdata.ManagerEmpName)" ref="EmpBoxE">
<strong id="EditEmpName">{{edittaskdata.ManagerEmpName}}</strong>负责人
</div>
</div>
<div class="layui-col-sm3" id="chStartDate" :date-Start="edittaskdata.MyPK">
<div class="bg3 bg">开</div><div :class="edittaskdata.DTFrom ? 'coltxt':'coltxto'" id="nDTFrom" v-bind:click="Dtime('nDTFrom')">
<strong>{{edittaskdata.DTFrom}}</strong>开始时间
</div>
</div>
<div class="layui-col-sm3" id="chEndDate" :date-End="edittaskdata.MyPK">
<div class="bg4 bg">终</div><div :class="edittaskdata.DTTo ? 'coltxt':'coltxto'" id="nDTTo" v-bind:click="Dtime('nDTTo')"><strong>{{edittaskdata.DTTo}}</strong>结束时间</div>
</div>
</div>
</div>
<div class="editTk-body">
<div class="TK-panel">
<div class="TK-panel-title">参与人</div>
<div class="TK-panel-body">
<div class="editRefdata" v-for="(ritem,lk) in RefEmpsData">
{{ritem.name}}
<sup @click.stop="DelRef(edittaskdata.MyPK,lk)">X</sup>
</div>
<div class="editRefdata">
<span @click.stop="selectRefEShow()" ref="RefBoxE">+ 添加参与人</span>
</div>
</div>
</div>
<div class="TK-panel">
<div class="TK-panel-title">描述</div>
<div class="TK-panel-body gray" v-if="editdocs==1" @click.stop="editTaskDocs()">{{edittaskdata.Docs}}</div>
<div class="TK-panel-body" v-if="editdocs==0">
<textarea class="layui-textarea" id="editDocs" style="margin-bottom:8px">{{edittaskdata.Docs}}</textarea>
<button class="layui-btn layui-btn-sm layui-btn-normal" @click.stop="editTaskDocsSave(edittaskdata.MyPK)">确认</button>
<button class="layui-btn layui-btn-sm layui-btn-primary" @click.stop="editTaskDocsC()">取消</button>
</div>
</div>
<div class="TK-panel">
<div class="TK-panel-title" id="tst">子任务</div>
<div class="TK-panel-body">
<div id="TKchild_id">
<div v-for="(childs,index) in taskChildData">
<div class="sub-task" v-if="!showEditChild[index]">
<div class="subtasks-content">
<input type="checkbox" :value="childs.TaskSta" @click.stop="checkboxI(childs.MyPK,childs.TaskSta)" v-model="childs.TaskSta" /> {{childs.Title}}
</div>
<div class="edit-del-box">
<span @click.stop="editChildTask(childs.MyPK,index)" class="xr-text-btn primary">编辑</span>
<span @click.stop="delChildTask(childs.MyPK,index)" class="xr-text-btn delete">删除</span>
</div>
<div class="edit-dtto" :id="'s'+index+'1a'">{{childs.DTTo}}</div>
</div>
<div v-if="showEditChild[index]" class="task-sub" @click.stop="showEditChild[index]=true">
<div class="subtasks-content">
<input class="layui-input" id="TaskchildTitle" :value="childs.Title" @keyup.enter="addChildSave(edittaskdata.MyPK)" />
<input class="layui-input" type="hidden" id="TaskchildStart" value="edit" :data-childmpyk="childs.MyPK" />
</div>
<div class="childDTTo"><i class="layui-icon layui-icon-date" :id="'s'+index+1" @click.stop="choosetimeC('s'+index+1,childs.MyPK)">{{childs.DTTo}}</i></div>
</div>
</div>
</div>
<span @click.stop="addChild(edittaskdata.MyPK)" v-if="showAddChild">+ 添加子任务</span>
<div v-if="showAddChildbox" class="task-sub" @click.stop="showAddChildbox=true">
<div class="subtasks-content">
<input class="layui-input" id="TaskchildTitle" @keyup.enter="addChildSave(edittaskdata.MyPK)" />
<input class="layui-input" type="hidden" id="TaskchildStart" value="add" />
</div>
<div class="childDTTo"><i class="layui-icon layui-icon-date" id="ccdate" @click.stop="choosetime('ccdate')"></i></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
var editPK = '';
var laydates = laydate;
new Vue({
el: '#workRec-Default',
data: {
list: [],//
tasklist: [],//任务列表
ens: [],
activebtn: 1,
showfixed: true,
show: false,//添加显示
editshow: false,//编辑显示
addshowTask: false,
addshowBtn: true,
addshowFull: false,
edittaskdata: [],
edittitle: 1,
editdocs: 1,
prisshow: false,
optionsList: [],
isShowEmpPop: false,
optionsRefList: [],
isShowRefPop: false,
taskChildData: [],
htmlraw: '',
EmpHtmlraw: '请选择',
RefHtmlraw: '',
activeIndex: 0,
showAddChildbox: false,
showAddChild: true,
showEditChild: [],
ManagerEmpName: '',
ManagerEmpNo: '',
RefEmpsNo: '',
RefEmpsName: '',
RefEmpsData: [],
Deptshow: false,
DeptshowLeft: 0,
Deptshowtop: 0,
DeptsData: [],//人员信息
DeptsDatas:[],
EmpsData: [],
ChoosePeoTpye: '',
key:''
},
methods: {
selectEmpHandle: function (event) {
var key = event.currentTarget.value;
//console.log(event.currentTarget.value);
if (key) {
var ens = new Entities("BP.CCOA.Tasks");
var data = ens.DoMethodReturnJSON("TextBox_EmpPinYin", key);
// console.log(data);
if (data.length) {
this.isShowEmpPop = true;
this.optionsList = data;
} else {
this.optionsList = '';
this.isShowEmpPop = false;
}
} else {
this.optionsList = '';
this.isShowEmpPop = false;
}
},
selectRefShow: function (e) {
console.log(this.RefHtmlraw)
this.Deptshow = true;
this.ChoosePeoTpye = 1
var Depts = this.DeptsDatas;
for (d = 0; d < Depts.length; d++) {
var de = Depts[d]
de.open = false
var childModules = de.Empslist
for (c = 0; c < childModules.length; c++) {
var ce = childModules[c]
var splitDate = this.RefHtmlraw
ce.status = 0
if (splitDate.indexOf(ce.Name) != -1 ) {
ce.status = 1
de.open = true
}
}
}
console.log(Depts)
this.DeptsData = Depts;
//this.selectRefShow=true
const $circle = this.$refs.RefBox
this.DeptshowLeft = this.getParentLeft($circle) + 'px'
this.Deptshowtop = this.getParentTop($circle) + 30 + 'px'
},
selectEmpShow: function (e) {
this.Deptshow = true;
this.ChoosePeoTpye = 2
var Depts = this.DeptsDatas;
for (d = 0; d < Depts.length; d++) {
var de = Depts[d]
de.open = false
var childModules = de.Empslist
for (c = 0; c < childModules.length; c++) {
var ce = childModules[c]
ce.status = 0
if (ce.Name == this.EmpHtmlraw) {
ce.status = 1
de.open = true
}
}
}
this.DeptsData = Depts;
//this.selectRefShow=true
const $circle = this.$refs.EmpBox
this.DeptshowLeft = this.getParentLeft($circle) + 'px'
this.Deptshowtop = this.getParentTop($circle) + 30 + 'px'
},
selectEmpEShow: function (e) {
this.Deptshow = true;
this.ChoosePeoTpye = 3
var Depts = this.DeptsDatas;
for (d = 0; d < Depts.length; d++) {
var de = Depts[d]
de.open = false
var childModules = de.Empslist
for (c = 0; c < childModules.length; c++) {
var ce = childModules[c]
ce.status = 0
if (ce.Name == e) {
ce.status = 1
de.open = true
}
}
}
this.DeptsData = Depts;
//this.selectRefShow=true
const $circle = this.$refs.EmpBoxE
this.DeptshowLeft = this.getParentLeft($circle) + 'px'
this.Deptshowtop = this.getParentTop($circle) + 30 + 'px'
},
selectRefEShow: function (e) {
this.Deptshow = true;
this.ChoosePeoTpye = 4
var Depts = this.DeptsDatas;
for (d = 0; d < Depts.length; d++) {
var de = Depts[d]
de.open = false
var childModules = de.Empslist
for (c = 0; c < childModules.length; c++) {
var ce = childModules[c]
var splitDate = this.edittaskdata.RefEmpsName
ce.status = 0
if (splitDate.indexOf(ce.Name) != -1) {
ce.status = 1
de.open = true
}
}
}
console.log(Depts)
this.DeptsData = Depts;
//this.selectRefShow=true
const $circle = this.$refs.RefBoxE
this.DeptshowLeft = this.getParentLeft($circle) + 'px'
this.Deptshowtop = this.getParentTop($circle) + 30 + 'px'
},
getParentTop: function (e) {
var offset = e.offsetTop
if (e.offsetParent != null) {
offset += this.getParentTop(e.offsetParent)
}
return offset
},
/**
* 获取左侧div的距离
*/
getParentLeft(e) {
var offset = e.offsetLeft
if (e.offsetParent != null) {
offset += this.getParentLeft(e.offsetParent)
}
return offset
},
selectRefHide: function () {
this.isShowRefPop = false;
},
selectRefHandle: function (event) {
var key = event.currentTarget.value;
console.log(key);
var Depts = this.DeptsDatas;
if (key) {
var des=[]
for (d = 0; d < Depts.length; d++) {
var de = Depts[d]
de.open = false
var childModules = de.Empslist
de.Num = 0
for (c = 0; c < childModules.length; c++) {
var ce = childModules[c]
if (ce.Name.indexOf(key) != -1) {
de.open = true
de.Num += 1
}
}
if (de.Num) des.push(de)
}
this.DeptsData = des
} else {
for (d = 0; d < Depts.length; d++) {
var de = Depts[d]
de.open = false
var childModules = de.Empslist
de.Num = childModules.length
}
this.DeptsData = Depts
console.log(this.DeptsData);
}
},
SelRefEmpno: function (no, name, Peotype, status) {
console.log(Peotype)
if (status==1) {
status = 0;
} else {
status = 1;
}
console.log(status)
if (Peotype == 4) {
var _this = this
var emypk = this.edittaskdata.MyPK
var splitDate = this.edittaskdata.RefEmpsName
var RefEmpsNo = this.edittaskdata.RefEmpsNo
if (status == 1) {
if (splitDate.indexOf(name) != -1)
return
splitDate += name + ';'
RefEmpsNo += no + ';'
} else {
splitDate = splitDate.replace(name + ';', "")
RefEmpsNo = RefEmpsNo.replace(no + ';', "")
}
//参与人处理
if (splitDate) {
var NameDataFg = splitDate.split(';')
var NoDataFg = RefEmpsNo.split(';')
this.RefEmpsData=[]
for (l = 0; l < NameDataFg.length - 1; l++) {
this.RefEmpsData.push({ 'no': NoDataFg[l], 'name': NameDataFg[l] })
}
}
this.edittaskdata.RefEmpsName = splitDate
this.edittaskdata.RefEmpsNo = RefEmpsNo
console.log(this.edittaskdata.MyPK)
_this.AddRefSave(this.edittaskdata.MyPK, RefEmpsNo, splitDate);
// this.Deptshow = false
}
if (Peotype == 3) {
var _this = this
var emypk = this.edittaskdata.MyPK
if (status == 1) {
this.edittaskdata.ManagerEmpName = name
this.edittaskdata.ManagerEmpNo = no
} else {
this.edittaskdata.ManagerEmpName =''
name = ''
no = ''
// this.Deptshow = false
}
_this.editTaskEmpSave(emypk, no, name)
this.Deptshow = false
}
if (Peotype == 2) {
if (status == 1) {
this.EmpHtmlraw = name
this.ManagerEmpName = name
this.ManagerEmpNo = no
this.Deptshow = false
} else {
this.EmpHtmlraw = ''
this.ManagerEmpName = ''
this.ManagerEmpNo = ''
// this.Deptshow = false
}
}
if (Peotype == 1) {
var splitDate = this.RefHtmlraw;
if (splitDate) {
if (status == 1) {
if (splitDate.indexOf(name) != -1)
return
this.RefEmpsName += name + ';'
this.RefEmpsNo += no + ';'
this.RefHtmlraw += name + ';'
} else {
console.log(splitDate)
this.RefEmpsName = this.RefEmpsName.replace(name + ';', "")
this.RefEmpsNo = this.RefEmpsName.replace(no + ';', "")
this.RefHtmlraw = this.RefEmpsName.replace(name + ';', "")
}
} else {
this.RefEmpsName += name + ';'
this.RefEmpsNo += no + ';'
this.RefHtmlraw += name + ';'
}
}
},
checkboxI: function (mypk, taskState) {
if (taskState) {
taskState = 0;
$('#title' + mypk).removeClass('textu')
} else {
taskState = 1;
$('#title' + mypk).addClass('textu')
}
var task = new Entity("BP.CCOA.Task", mypk);
task.TaskSta = taskState; // 0=未完成, 1=完成.
task.Update();
},
addChild: function (mypk) {
this.showAddChildbox = true
this.showAddChild = false
this.showEditChild = []
},
choosetime: function (value) {
// console.log(value)
laydate.render({
elem: '#'+value //指定元素
});
},
choosetimeC: function (id,mypk) {
laydate.render({
elem: '#' + id //指定元素
, done: function (value, date, endDate) {
$('#' + id+'a').html(value)
var task = new Entity("BP.CCOA.Task", mypk);
task.DTTo = value;
task.Update();
}
});
},
addChildSave: function (mypk) {
var cTitle = $('#TaskchildTitle').val();
var childstart = $('#TaskchildStart').val();
var childDTTo = $('#ccdate').html();
//console.log(cTitle);
if (cTitle) {
if (childstart == 'add') {
var task = new Entity("BP.CCOA.Task");
task.Title = cTitle;
task.DTTo = childDTTo;
task.ParentNo = mypk;
task.IsSubTask = 1;
task.Insert();
}
if (childstart == 'edit') {
var chmpyk = $('#TaskchildStart').data('childmpyk');
var task = new Entity("BP.CCOA.Task", chmpyk);
task.Title = cTitle;
task.Update();
this.showEditChild = [];
}
}
var edChildTk = new Entities("BP.CCOA.Tasks");
edChildTk.Retrieve("ParentNo", mypk);
var edChildTkdata = edChildTk.TurnToArry()
this.taskChildData = edChildTkdata;
$('#TaskchildTitle').val('');
$('#childDTTo').html('');
},
editChildTask: function (mypk, index) {
this.showEditChild = [];
this.showAddChildbox = false
this.showAddChild = true
this.$set(this.showEditChild, index, true)
//console.log(this.showEditChild[index]);
},
delChildTask: function (mypk, index) {
if (confirm('您确定想删除子任务吗?')) {
var endel = new Entity('BP.CCOA.Task', mypk);
endel.Delete();
this.taskChildData.splice(index, 1);
}
},
DelRef: function (mypk, index) {
var _this = this
this.RefEmpsData.splice(index, 1);
//console.log(this.RefEmpsData);
var delEno = ''
var delEname = ''
for (y = 0; y < this.RefEmpsData.length; y++) {
var ref = this.RefEmpsData[y]
delEname += ref.name + ';'
delEno += ref.no + ';'
}
this.edittaskdata.RefEmpsName = delEname
this.edittaskdata.RefEmpsNo = delEno
_this.AddRefSave(mypk, delEno, delEname);
},
EditRefAdd: function (mypk, no, name) {
var _this = this
this.RefEmpsData.push({ 'no': no, 'name': name })
var Eno = ''
var Ename = ''
for (y = 0; y < this.RefEmpsData.length; y++) {
var ref = this.RefEmpsData[y]
Ename += ref.name + ';'
Eno += ref.no + ';'
}
_this.AddRefSave(mypk, Eno, Ename);
},
AddRefSave: function (mypk,no,name) {
var task = new Entity("BP.CCOA.Task", mypk);
task.RefEmpsNo = no;
task.RefEmpsName = name;
task.Update();
},
AddTask: function () { // 新建任务.
this.show = true
this.showfixed = false
hTitle = $('#addInputTask').val();
$('#TB_Title').val(hTitle)
},
closeTask: function () {
this.show = false
this.showfixed = true
},
PRIbtn: function () {
this.prisshow = true
},
PRIshowBtn: function (mypk, pri) {
this.prisshow = false
var task = new Entity("BP.CCOA.Task", mypk);
task.TaskPRI = pri;
task.Update();
var edtask = new Entity("BP.CCOA.Task", mypk);
edtask.Retrieve();
this.edittaskdata = edtask
},
editTask: function (mypk) {
this.editshow = true
this.showfixed = false
var edtask = new Entity("BP.CCOA.Task", mypk);
edtask.Retrieve();
var edChildTk = new Entities("BP.CCOA.Tasks");
edChildTk.Retrieve("ParentNo", mypk);
var edChildTkdata = edChildTk.TurnToArry()
this.taskChildData = edChildTkdata;
console.log(edChildTkdata)
var NameData = edtask.RefEmpsName
var NoData = edtask.RefEmpsNo
//参与人处理
if (NameData) {
var NameDataFg = NameData.split(';')
this.RefEmpsData=[]
var NoDataFg = NoData.split(';')
for (l = 0; l < NameDataFg.length-1; l++){
this.RefEmpsData.push({ 'no': NoDataFg[l], 'name': NameDataFg[l]})
}
}
if (!edtask.Docs) edtask.Docs = '添加描述'
this.edittaskdata = edtask
editPK = edtask.MyPK
console.log(edtask)
},
closeEditTask: function () {
this.editshow = false
this.showfixed = true
location.reload();
},
addBtn: function () {
this.addshowBtn = false
this.addshowTask = true
this.addshowFull = true
},
closeAddTask: function () {
this.addshowBtn = true
this.addshowTask = false
this.addshowFull = false
},
SaveTask: function () { // 新建任务.
var title = $('#TB_Title').val();
if (title) {
var task = new Entity("BP.CCOA.Task");
task.ManagerEmpName = this.ManagerEmpName;
task.ManagerEmpNo = this.ManagerEmpNo;
task.RefEmpsName = this.RefEmpsName;
task.RefEmpsNo = this.RefEmpsNo;
task.CopyForm();
task.Insert();
layer.msg('添加成功', { time: 1000 }, function () {
location.reload();
})
}
else {
layer.msg('请输入标题', {time:1000})
}
},
SaveSimpleTask: function () { // 新建任务.
var task = new Entity("BP.CCOA.Task");
task.Title = $('#addInputTask').val();
task.DTFrom = $('#icon-date').html();
task.Insert();
location.reload();
this.addshowBtn = true
this.addshowTask = false
this.addshowFull = false
},
delTask: function (mypk) { //设置任务完成.
if (confirm('您确定想删除该任务吗?')) {
var endel = new Entity('BP.CCOA.Task', mypk);
endel.Delete();
location.reload();
}
},
editTasktitle: function (mypk) { //设置任务完成.
this.edittitle = 0;
},
editTasktitleC: function () { //设置任务完成.
this.edittitle = 1;
},
editTasktitleSave: function (mypk) { //设置任务完成.
this.edittitle = 1;
var Newtitle = $('#edittitle').val();
var task = new Entity("BP.CCOA.Task", mypk);
task.Title = Newtitle;
task.Update();
var edtask = new Entity("BP.CCOA.Task", mypk);
edtask.Retrieve();
this.edittaskdata = edtask
},
editTaskDocs: function (mypk) { //设置任务完成.
this.editdocs = 0;
},
editTaskDocsC: function () { //设置任务完成.
this.editdocs = 1;
},
editTaskDocsSave: function (mypk) { //设置任务完成.
this.editdocs = 1;
var NewDocs = $('#editDocs').val();
var task = new Entity("BP.CCOA.Task", mypk);
task.Docs = NewDocs;
task.Update();
var edtask = new Entity("BP.CCOA.Task", mypk);
edtask.Retrieve();
this.edittaskdata = edtask
},
editTaskEmpSave: function (mypk,no,name) { //设置任务完成.
this.editdocs = 1;
var task = new Entity("BP.CCOA.Task", mypk);
task.ManagerEmpNo = no;
task.ManagerEmpName = name;
task.Update();
this.isShowRefPop = false
$('#EditEmpName').html(name);
},
AllTasks: function () {
//所有的任务都已经取出来了,不用过滤.
this.list = this.tasklist;
this.activeIndex = 1
},
MyTasks: function () {
//我是负责人任务s. 字段: ManagerEmpNo = webUse.No 就是我负责的任务.
this.activeIndex = 2
var tasklist = this.tasklist;
var webUser = new WebUser();
var myens = [];
for (var i = 0; i < tasklist.length; i++) {
var en = tasklist[i];
if (en.ManagerEmpNo != webUser.No)
continue;
myens.push(en);
}
this.list = myens
//this.list = myens;
},
RefTasks: function () {
this.activeIndex = 3
//我参与的任务. 字段: RefEmpsNo = 包含 webUse.No 就是我负责的任务.
var tasklist = this.tasklist;
var webUser = new WebUser();
var myens = [];
for (var i = 0; i < tasklist.length; i++) {
var en = tasklist[i];
if (en.RefEmpsNo.indexOf(webUser.No) == -1)
continue;
myens.push(en);
}
this.list = myens;
},
Dtime: function (event) {
if (event == 'nDTFrom') {
laydates.render({
elem: '#chStartDate'
, done: function (value, date, endDate) {
$('#nDTFrom strong').html(value)
$('#nDTFrom').addClass('coltxt')
$('#nDTFrom').removeClass('coltxto')
var task = new Entity("BP.CCOA.Task", editPK);
task.DTFrom = value;
task.Update();
}
});
}
if (event == 'nDTTo') {
laydates.render({
elem: '#chEndDate'
, done: function (value, date, endDate) {
$('#nDTTo strong').html(value)
$('#nDTTo').addClass('coltxt')
$('#nDTTo').removeClass('coltxto')
var task = new Entity("BP.CCOA.Task", editPK);
task.DTTo = value;
task.Update();
}
});
}
laydates.render({
elem: '#'+event
});
}
},
mounted: function () {
var ens = new Entities("BP.CCOA.Tasks");
ens = ens.DoMethodReturnJSON("Task_AllTasks");
this.tasklist = ens;
this.list = ens;
// console.log(ens);
this.activeIndex = 1
var ensD = new Entities("BP.CCOA.Tasks");
var DeptEmps = ensD.DoMethodReturnJSON("Selecter_DeptEmps");
var Depts = DeptEmps.Depts
var Emps = DeptEmps.Emps
for (d = 0; d < Depts.length; d++) {
var de = Depts[d]
de.Empslist = []
de.open = false
var childModules = Emps.filter(function (module) {
// return module.SystemNo === ''
return module.FK_Dept === de.No
})
de.Num = childModules.length
for (c = 0; c < childModules.length; c++) {
var ce = childModules[c]
ce.status = 0
}
de.Empslist = childModules
}
this.DeptsDatas = Depts
//this.EmpsData = DeptEmps.Emps
}
});
//日期
function TextBox_Emp(ctrl) {
}
function getSubTask(mypk) {
var ens = new Entities("BP.CCOA.Tasks");
ens.Retrieve("ParentNo", mypk);
return ens;
}
function Save() {
var mypk = GetQueryString("MyPK");
var en = new Entity("BP.CCOA.Task", mypk);
en.CopyForm();
en.Update();
//en.Title = $("#TB_Ttile").val();
//en.DTFrom = $("#TB_DTFrom").val();
//en.DTTo = $("#TB_DTTo").val();
//en.Docs = $("#TB_Docs").val();
//en.Update();
}
function AddSubTask(title, endDate) {
var mypk = GetQueryString("MyPK");
var en = new Entity("BP.CCOA.Task");
en.Title = title;
en.DTTo = endDate; //结束日期.
en.ParentNo = mypk;
en.Insert();
}
</script>
</body>
</html>