|
@@ -3,10 +3,6 @@
|
|
|
<!--工具条-->
|
|
|
<el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
|
|
|
<el-form :inline="true">
|
|
|
- <!-- <div style="margin-left: 20px;display: inline-block">
|
|
|
- <el-form-item label="任务列表">
|
|
|
- </el-form-item>
|
|
|
- </div> -->
|
|
|
<el-form-item :label="$t('tasklist')">
|
|
|
<div style="margin-left: 8px">
|
|
|
<!-- <el-input style="float:left;" v-model="keyword" class="input-with-select" placeholder="请输入项目名称关键字" clearable="true"> -->
|
|
@@ -18,65 +14,70 @@
|
|
|
<!-- </el-input> -->
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
- <!-- <el-form-item label="项目分组" v-if="user.companyId == '428'">
|
|
|
- <div style="margin-left: 8px">
|
|
|
- <el-select v-model="groupName" style="width:200px;" placeholder="请选择" clearable @change="hiddens()">
|
|
|
- <el-option v-for="(item, index) in groupNameList" :key="index" :label="item" :value="item"></el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- </el-form-item> -->
|
|
|
|
|
|
<el-form-item :label="$t('subordinatedepartments')" v-if="user.timeType.projectWithDept">
|
|
|
- <!-- <span style="margin-left:5px;margin-right:5px;color:#606266;">部门</span> -->
|
|
|
<el-cascader v-model="deptId" :options="departmentList" size="small" :placeholder="$t('qing-xuan-ze-bu-men')"
|
|
|
:props="{ checkStrictly: true, expandTrigger: 'hover' }" :show-all-levels="false" clearable filterable @change="hiddens"
|
|
|
></el-cascader>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <!-- <el-form-item style="float:right;">
|
|
|
- <el-link type="primary" :underline="false" @click="handleAdd(-1,null)">新增任务</el-link>
|
|
|
- </el-form-item> -->
|
|
|
-
|
|
|
- <!-- <div style="margin-left: 40px;display: inline-block">
|
|
|
- <el-form-item label="类型">
|
|
|
- </el-form-item>
|
|
|
- </div> -->
|
|
|
<el-form-item :label="$t('types')">
|
|
|
<div style="margin-left: 8px">
|
|
|
- <!-- <el-input style="float:left;" v-model="keyword" class="input-with-select" placeholder="请输入项目名称关键字" clearable="true"> -->
|
|
|
<el-select v-model="typeField" style="width:120px;" size="small" slot="prepend" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="hiddens()">
|
|
|
- <!-- <el-option label="任务" value="0" @click.native="hiddens()"></el-option>
|
|
|
- <el-option label="里程碑" value="1" @click.native="hiddens()"></el-option>
|
|
|
- <el-option label="风险" value="2" @click.native="hiddens()"></el-option> -->
|
|
|
<el-option :label="$t('other.task')" value="0"></el-option>
|
|
|
<el-option :label="$t('other.milestone')" value="1"></el-option>
|
|
|
<el-option :label="$t('risk')" value="2"></el-option>
|
|
|
</el-select>
|
|
|
- <!-- <el-button slot="append" @click="searchList" icon="el-icon-search"></el-button> -->
|
|
|
- <!-- </el-input> -->
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item >
|
|
|
- <div style="margin-left: 20px">
|
|
|
- <el-select v-model="dateType" style="width:120px;" size="small" slot="prepend" :placeholder="$t('defaultText.pleaseChoose')">
|
|
|
- <el-option :label="$t('starttimes')" :value="0" @click.native="hiddens(1)"></el-option>
|
|
|
- <el-option :label="$t('deadline')" :value="1" @click.native="hiddens(1)"></el-option>
|
|
|
+
|
|
|
+ <el-form-item :label="'项目'">
|
|
|
+ <div style="margin-left: 8px">
|
|
|
+ <el-select v-model="screenProjectId" style="width:150px;" size="small" slot="prepend" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="screenProjectChange">
|
|
|
+ <el-option v-for="item in allProjectList" :key="item.id" :label="item.projectName" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item >
|
|
|
+
|
|
|
+ <el-form-item :label="'任务分组'">
|
|
|
<div style="margin-left: 8px">
|
|
|
- <el-date-picker
|
|
|
- v-model="dateSelect"
|
|
|
- type="daterange"
|
|
|
- size="small"
|
|
|
- range-separator="-"
|
|
|
- :start-placeholder="$t('interval')"
|
|
|
- :end-placeholder="$t('interval')"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- clearable
|
|
|
- @change="hiddens()">
|
|
|
- </el-date-picker>
|
|
|
+ <el-select v-model="screenTaskGroupingId" style="width:150px;" size="small" :disabled="!screenProjectId" slot="prepend" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="hiddens()">
|
|
|
+ <el-option v-for="item in taskGroupList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item :label="'人员'">
|
|
|
+ <div style="margin-left: 8px">
|
|
|
+ <el-select v-model="screenPersonnelId" filterable style="width:120px;" size="small" slot="prepend" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="hiddens()" v-if="user.userNameNeedTranslate != '1'">
|
|
|
+ <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ <selectCat :subject="users" :subjectId="screenPersonnelId" :filterable="true" :clearable="true" @selectCal="selectCal" :size="'small'" :distinction="'10'" v-if="user.userNameNeedTranslate == '1'"></selectCat>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item>
|
|
|
+ <div style="display: flex;">
|
|
|
+ <div style="margin-left: 20px">
|
|
|
+ <el-select v-model="dateType" style="width:120px;" size="small" slot="prepend" :placeholder="$t('defaultText.pleaseChoose')">
|
|
|
+ <el-option :label="$t('starttimes')" :value="0" @click.native="hiddens(1)"></el-option>
|
|
|
+ <el-option :label="$t('deadline')" :value="1" @click.native="hiddens(1)"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div style="margin-left: 8px">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="dateSelect"
|
|
|
+ type="daterange"
|
|
|
+ size="small"
|
|
|
+ range-separator="-"
|
|
|
+ :start-placeholder="$t('interval')"
|
|
|
+ :end-placeholder="$t('interval')"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ clearable
|
|
|
+ @change="hiddens()">
|
|
|
+ </el-date-picker>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
<el-form-item style="float: right;" v-if="user.companyId != '3092'">
|
|
@@ -503,6 +504,7 @@ import { error } from 'dingtalk-jsapi';
|
|
|
isDeleting: true,
|
|
|
showOrNot: false,
|
|
|
typeField: null,
|
|
|
+
|
|
|
searchField: '0',
|
|
|
keyword:null,
|
|
|
user: JSON.parse(sessionStorage.getItem("user")),
|
|
@@ -632,6 +634,12 @@ import { error } from 'dingtalk-jsapi';
|
|
|
meetingStartValue: '',
|
|
|
meetingEndValue: '',
|
|
|
toMeetTaskId:'',
|
|
|
+
|
|
|
+ // 筛选条件
|
|
|
+ screenProjectId: '',
|
|
|
+ screenTaskGroupingId: '',
|
|
|
+ screenPersonnelId: '',
|
|
|
+ allProjectList: []
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
@@ -894,6 +902,7 @@ import { error } from 'dingtalk-jsapi';
|
|
|
|
|
|
//获取项目列表
|
|
|
getList() {
|
|
|
+ console.log('执行函数')
|
|
|
this.listLoading = true;
|
|
|
let parameter = {
|
|
|
status: this.searchField,
|
|
@@ -901,6 +910,9 @@ import { error } from 'dingtalk-jsapi';
|
|
|
pageIndex: this.page,
|
|
|
pageSize: this.size,
|
|
|
// type: this.typeField
|
|
|
+ projectId: this.screenProjectId,
|
|
|
+ groupId: this.screenTaskGroupingId,
|
|
|
+ targetUserId: this.screenPersonnelId
|
|
|
}
|
|
|
if(this.typeField != 'null' && this.typeField != null && this.typeField != '') {
|
|
|
parameter.type = this.typeField
|
|
@@ -1800,7 +1812,63 @@ import { error } from 'dingtalk-jsapi';
|
|
|
arr.push(obj.arrUserList[i].id)
|
|
|
}
|
|
|
this.causeRejectionForm.responsible = arr
|
|
|
+ } else if(obj.distinction == '10') {
|
|
|
+ this.screenPersonnelId = obj.id
|
|
|
+ this.hiddens()
|
|
|
}
|
|
|
+ },
|
|
|
+
|
|
|
+ screenProjectChange() {
|
|
|
+ if(!this.screenProjectId) {
|
|
|
+ this.screenTaskGroupingId = ''
|
|
|
+ } else {
|
|
|
+ this.getTaskGroupList()
|
|
|
+ }
|
|
|
+ this.hiddens()
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ // 获取项目列表
|
|
|
+ getAllProjectlist() {
|
|
|
+ this.http.post('/project/getProjectList',{},
|
|
|
+ res => {
|
|
|
+ if (res.code == "ok") {
|
|
|
+ this.allProjectList = res.data;
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error => {
|
|
|
+ this.$message({
|
|
|
+ message: error,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 获取任务分组列表
|
|
|
+ getTaskGroupList() {
|
|
|
+ this.http.post('/task-group/list',{
|
|
|
+ projectId: this.screenProjectId
|
|
|
+ },
|
|
|
+ res => {
|
|
|
+ if (res.code == "ok") {
|
|
|
+ this.taskGroupList = res.data;
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error => {
|
|
|
+ this.$message({
|
|
|
+ message: error,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
@@ -1818,6 +1886,7 @@ import { error } from 'dingtalk-jsapi';
|
|
|
if(this.user.timeType.projectWithDept) {
|
|
|
this.getDepartmentList()
|
|
|
}
|
|
|
+ this.getAllProjectlist()
|
|
|
// if(this.user.companyId == '428') {
|
|
|
// this.getSthForSb()
|
|
|
// }
|