|
@@ -3,6 +3,44 @@
|
|
<van-nav-bar :title="title" left-text="返回" @click-left="back" fixed left-arrow />
|
|
<van-nav-bar :title="title" left-text="返回" @click-left="back" fixed left-arrow />
|
|
<div class="content">
|
|
<div class="content">
|
|
<van-form>
|
|
<van-form>
|
|
|
|
+ <div v-if="showOrNot">
|
|
|
|
+ <van-cell title="所属项目" :value="select_project" @click="select_project_show = true,select_project_show_searchText = '',onSearchProject()"></van-cell>
|
|
|
|
+ <van-popup v-model="select_project_show" position="bottom">
|
|
|
|
+ <van-search v-model.trim="select_project_show_searchText" placeholder="输入项目名称搜索" @input="onSearchProject"></van-search>
|
|
|
|
+ <div style="minHeight:300px;">
|
|
|
|
+ <van-radio-group v-model="taskform.projectId">
|
|
|
|
+ <van-radio v-for="uitem in select_project_array" :key="uitem.id" :name="uitem" style="padding:10px">
|
|
|
|
+ <span>{{uitem.projectName}}</span>
|
|
|
|
+ </van-radio>
|
|
|
|
+ </van-radio-group>
|
|
|
|
+ <van-button style="width:100%;position: -webkit-sticky;position: sticky;bottom: 0;" @click="selectProject()">确定</van-button>
|
|
|
|
+ </div>
|
|
|
|
+ </van-popup>
|
|
|
|
+ <van-cell title="所属任务分组" :value="select_grouping" @click="select_grouping_show = true"></van-cell>
|
|
|
|
+ <van-popup v-model="select_grouping_show" position="bottom">
|
|
|
|
+ <van-picker
|
|
|
|
+ show-toolbar
|
|
|
|
+ :columns="select_grouping_array"
|
|
|
|
+ @confirm="selectGrouping"
|
|
|
|
+ @cancel="select_grouping_show = false;$forceUpdate();">
|
|
|
|
+ <template #option="item">
|
|
|
|
+ {{item.name}}
|
|
|
|
+ </template>
|
|
|
|
+ </van-picker>
|
|
|
|
+ </van-popup>
|
|
|
|
+ <van-cell title="所属任务列表" :value="select_list" @click="select_list_show = true"></van-cell>
|
|
|
|
+ <van-popup v-model="select_list_show" position="bottom">
|
|
|
|
+ <van-picker
|
|
|
|
+ show-toolbar
|
|
|
|
+ :columns="select_list_array"
|
|
|
|
+ @confirm="selectList"
|
|
|
|
+ @cancel="select_list_show = false;$forceUpdate();">
|
|
|
|
+ <template #option="item">
|
|
|
|
+ {{item.stagesName}}
|
|
|
|
+ </template>
|
|
|
|
+ </van-picker>
|
|
|
|
+ </van-popup>
|
|
|
|
+ </div>
|
|
<!-- 类型 -->
|
|
<!-- 类型 -->
|
|
<van-field v-model="taskform.taskType" label="类型" @click="taskType.show = true" readonly clickable>
|
|
<van-field v-model="taskform.taskType" label="类型" @click="taskType.show = true" readonly clickable>
|
|
<template #input><span>{{taskType.list[taskform.taskType]}}</span></template>
|
|
<template #input><span>{{taskType.list[taskform.taskType]}}</span></template>
|
|
@@ -100,7 +138,7 @@
|
|
<vue-html5-editor :content="taskform.taskDesc" :height="300" @change="htmleditor"></vue-html5-editor>
|
|
<vue-html5-editor :content="taskform.taskDesc" :height="300" @change="htmleditor"></vue-html5-editor>
|
|
|
|
|
|
</van-form>
|
|
</van-form>
|
|
- <div class="form_btn" style="position:fixed; bottom:0px;width:100%;">
|
|
|
|
|
|
+ <div class="form_btn" style="position:fixed; bottom:0px;width:100%;z-index: 99">
|
|
<div style="padding-bottom:10px;">
|
|
<div style="padding-bottom:10px;">
|
|
<van-button square block type="info" loading-text="保存中..." @click="submitTask" native-type="submit" :loading="submitTaskBtn" style="width:100%;float:left;" :disabled="!canEdit">
|
|
<van-button square block type="info" loading-text="保存中..." @click="submitTask" native-type="submit" :loading="submitTaskBtn" style="width:100%;float:left;" :disabled="!canEdit">
|
|
<div v-if="canEdit">保存</div>
|
|
<div v-if="canEdit">保存</div>
|
|
@@ -117,6 +155,7 @@
|
|
export default {
|
|
export default {
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ showOrNot: false,
|
|
title: '编辑任务',
|
|
title: '编辑任务',
|
|
user: JSON.parse(localStorage.userInfo),
|
|
user: JSON.parse(localStorage.userInfo),
|
|
taskId: JSON.parse(sessionStorage.taskId),
|
|
taskId: JSON.parse(sessionStorage.taskId),
|
|
@@ -158,20 +197,34 @@ export default {
|
|
list: [],
|
|
list: [],
|
|
searchList: [],
|
|
searchList: [],
|
|
searchText: ''
|
|
searchText: ''
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ select_project_show: false,
|
|
|
|
+ select_grouping_show: false,
|
|
|
|
+ select_list_show: false,
|
|
|
|
+ select_project: '请选择',
|
|
|
|
+ select_grouping: '请选择',
|
|
|
|
+ select_list: '请选择',
|
|
|
|
+ select_project_array: [],
|
|
|
|
+ select_project_array_tow: [],
|
|
|
|
+ select_grouping_array: [],
|
|
|
|
+ select_list_array: [],
|
|
|
|
+ select_project_show_searchText: ''
|
|
|
|
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
|
|
+ this.showOrNot = this.taskId.showOrNot
|
|
|
|
+ this.getProjectList()
|
|
if(!this.taskId.addNew){
|
|
if(!this.taskId.addNew){
|
|
this.title = '编辑任务'
|
|
this.title = '编辑任务'
|
|
this.getTask()
|
|
this.getTask()
|
|
}else{
|
|
}else{
|
|
this.title = '新建任务'
|
|
this.title = '新建任务'
|
|
this.taskform = {
|
|
this.taskform = {
|
|
- projectId: JSON.parse(sessionStorage.projectId),
|
|
|
|
- groupId: this.taskId.groupId,
|
|
|
|
- stagesId: this.taskId.stagesId,
|
|
|
|
|
|
+ projectId: '',
|
|
|
|
+ groupId: '',
|
|
|
|
+ stagesId: '',
|
|
taskType: 0,
|
|
taskType: 0,
|
|
name: '',
|
|
name: '',
|
|
startDate: null,
|
|
startDate: null,
|
|
@@ -181,11 +234,96 @@ export default {
|
|
taskLevel: 0,
|
|
taskLevel: 0,
|
|
executorList: [{executorName: '',executorId: '',planHours: this.user.timeType.allday}]
|
|
executorList: [{executorName: '',executorId: '',planHours: this.user.timeType.allday}]
|
|
}
|
|
}
|
|
|
|
+ if(!this.taskId.showOrNot) {
|
|
|
|
+ this.taskform.groupId = this.taskId.groupId
|
|
|
|
+ this.taskform.stagesId = this.taskId.stagesId
|
|
|
|
+ this.taskform.projectId = JSON.parse(sessionStorage.projectId)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
this.getUsersList()
|
|
this.getUsersList()
|
|
console.log('mounted',this.taskId,null);
|
|
console.log('mounted',this.taskId,null);
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ selectProject(value,key) {
|
|
|
|
+ this.select_project = this.taskform.projectId.projectName
|
|
|
|
+ this.taskform.projectId = this.taskform.projectId.id
|
|
|
|
+ console.log(this.taskform)
|
|
|
|
+ this.getTaskGrouping()
|
|
|
|
+ this.select_project_show_searchText = ''
|
|
|
|
+ this.select_project_show = false
|
|
|
|
+
|
|
|
|
+ this.select_list = ''
|
|
|
|
+ this.select_grouping = ''
|
|
|
|
+ this.taskform.groupId = ''
|
|
|
|
+ this.taskform.stagesId = ''
|
|
|
|
+ },
|
|
|
|
+ selectGrouping(value){
|
|
|
|
+ this.select_grouping = value.name
|
|
|
|
+ this.taskform.groupId = value.id
|
|
|
|
+ this.getStageList()
|
|
|
|
+ this.select_grouping_show = false
|
|
|
|
+
|
|
|
|
+ this.select_list = ''
|
|
|
|
+ this.taskform.stagesId = ''
|
|
|
|
+ },
|
|
|
|
+ selectList(value) {
|
|
|
|
+ console.log(value)
|
|
|
|
+ this.select_list = value.stagesName
|
|
|
|
+ this.taskform.stagesId = value.id
|
|
|
|
+ this.select_list_show = false
|
|
|
|
+ },
|
|
|
|
+ onSearchProject() {
|
|
|
|
+ let text = this.select_project_show_searchText
|
|
|
|
+ if(text != '') {
|
|
|
|
+ let projectArr = this.select_project_array_tow
|
|
|
|
+ var arr = []
|
|
|
|
+ for(var i in projectArr) {
|
|
|
|
+ if(projectArr[i].projectName.indexOf(text) != '-1') {
|
|
|
|
+ arr.push(projectArr[i])
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.select_project_array = arr
|
|
|
|
+ } else {
|
|
|
|
+ this.select_project_array = this.select_project_array_tow
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ getProjectList() {
|
|
|
|
+ this.$axios.post("/project/getProjectList", {})
|
|
|
|
+ .then(res => {
|
|
|
|
+ if(res.code == "ok") {
|
|
|
|
+ this.select_project_array = res.data
|
|
|
|
+ this.select_project_array_tow = res.data
|
|
|
|
+ } else {
|
|
|
|
+ this.$toast.fail('失败');
|
|
|
|
+ }
|
|
|
|
+ }).catch(err=> {this.$toast.clear();console.log(err)});
|
|
|
|
+ },
|
|
|
|
+ getTaskGrouping() {
|
|
|
|
+ this.$axios.post("/task-group/list", {projectId:this.taskform.projectId})
|
|
|
|
+ .then(res => {
|
|
|
|
+ if(res.code == "ok") {
|
|
|
|
+ this.select_grouping_array = res.data
|
|
|
|
+ } else {
|
|
|
|
+ this.$toast.fail('失败');
|
|
|
|
+ }
|
|
|
|
+ }).catch(err=> {this.$toast.clear();console.log(err)});
|
|
|
|
+ },
|
|
|
|
+ getStageList() {
|
|
|
|
+ this.$axios.post("/stages/list", {
|
|
|
|
+ projectId: this.taskform.projectId,
|
|
|
|
+ groupId: this.taskform.groupId,
|
|
|
|
+ order: 'seq',
|
|
|
|
+ isDesc: false
|
|
|
|
+ })
|
|
|
|
+ .then(res => {
|
|
|
|
+ if(res.code == "ok") {
|
|
|
|
+ this.select_list_array = res.data.list
|
|
|
|
+ } else {
|
|
|
|
+ this.$toast.fail('失败');
|
|
|
|
+ }
|
|
|
|
+ }).catch(err=> {this.$toast.clear();console.log(err)});
|
|
|
|
+ },
|
|
|
|
+
|
|
back() {
|
|
back() {
|
|
history.back();
|
|
history.back();
|
|
},
|
|
},
|
|
@@ -298,6 +436,19 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if(this.taskform.projectId == '' || this.taskform.projectId == null) {
|
|
|
|
+ this.$toast.fail("请选择所属项目");
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if(this.taskform.groupId == '' || this.taskform.groupId == null) {
|
|
|
|
+ this.$toast.fail("请选择所属任务分组");
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if(this.taskform.stagesId == '' || this.taskform.stagesId == null) {
|
|
|
|
+ this.$toast.fail("请选择所属任务列表");
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
// 去除未选择执行人的执行人列表
|
|
// 去除未选择执行人的执行人列表
|
|
this.taskform.executorList = this.taskform.executorList.filter(item => item.executorId)
|
|
this.taskform.executorList = this.taskform.executorList.filter(item => item.executorId)
|
|
this.taskform.executorListStr = JSON.stringify(this.taskform.executorList)
|
|
this.taskform.executorListStr = JSON.stringify(this.taskform.executorList)
|