|
@@ -3,8 +3,9 @@
|
|
<!-- 顶部导航栏 -->
|
|
<!-- 顶部导航栏 -->
|
|
<el-header class="main-header">
|
|
<el-header class="main-header">
|
|
<div class="select-group">
|
|
<div class="select-group">
|
|
- <!-- <el-cascader ref="cascader" v-model="teamDepartment" :props="departmentOption" :show-all-levels="false" class="cascader" @change="departmentChange(teamDepartment)" />
|
|
|
|
- <span class="el-dropdown-link" style="margin-right: 20px;" @click="setCascader">{{ teamBizName.length > 11 ? teamBizName.substring(0, 11) + '...' : teamBizName }} <i class="el-icon-arrow-down" /></span> -->
|
|
|
|
|
|
+ <el-cascader v-if="depdShow" ref="cascader" v-model="teamDepartment" :props="departmentOption" :show-all-levels="false" class="cascader" style="width: 4%;" @change="departmentChange(teamDepartment)" />
|
|
|
|
+ <span v-if="depdShow" class="el-dropdown-link" style="margin-right: 5px;" @click="setCascader">{{ departmentName.length > 6 ? departmentName.substring(0, 6) + '...' : departmentName }}</span>
|
|
|
|
+ <i v-if="depdShow" :class="[ show ? 'el-icon-circle-close' : 'el-icon-arrow-down', 'icon-close']" @mouseenter="show = true" @mouseleave="show = false" @click="setsearchForm()" />
|
|
<el-cascader ref="cascader" v-model="teamNames" collapse-tags :options="options" :props="props" class="cascader" @change="handleChange(teamNames, options)" />
|
|
<el-cascader ref="cascader" v-model="teamNames" collapse-tags :options="options" :props="props" class="cascader" @change="handleChange(teamNames, options)" />
|
|
<span class="el-dropdown-link" style="margin-right: 20px;" @click="setCascader">{{ teamBizName.length > 11 ? teamBizName.substring(0, 11) + '...' : teamBizName }} <i class="el-icon-arrow-down" /></span>
|
|
<span class="el-dropdown-link" style="margin-right: 20px;" @click="setCascader">{{ teamBizName.length > 11 ? teamBizName.substring(0, 11) + '...' : teamBizName }} <i class="el-icon-arrow-down" /></span>
|
|
<el-cascader ref="cascader" v-model="bizIdCode" collapse-tags :options="searchEnum.businesslines" :props="propsBizId" class="cascader" @change="handleBizIdChange(bizIdCode, searchEnum.businesslines)" />
|
|
<el-cascader ref="cascader" v-model="bizIdCode" collapse-tags :options="searchEnum.businesslines" :props="propsBizId" class="cascader" @change="handleBizIdChange(bizIdCode, searchEnum.businesslines)" />
|
|
@@ -208,9 +209,9 @@ import {
|
|
getTeamBugSummary,
|
|
getTeamBugSummary,
|
|
getTeamBugDisDataBy,
|
|
getTeamBugDisDataBy,
|
|
teamReminding,
|
|
teamReminding,
|
|
- settingQueryBizAndTeamInfo
|
|
|
|
- // getStaffByUsername,
|
|
|
|
- // getSubDeptInfoByParentDeptId
|
|
|
|
|
|
+ settingQueryBizAndTeamInfo,
|
|
|
|
+ getStaffByUsername,
|
|
|
|
+ getSubDeptInfoByParentDeptId
|
|
} from '@/api/workSchedule'
|
|
} from '@/api/workSchedule'
|
|
import { getSeprateDayInfo, scheduleDelete } from '@/api/projectViewDetails'
|
|
import { getSeprateDayInfo, scheduleDelete } from '@/api/projectViewDetails'
|
|
import modifySchedule from '@/views/projectManage/projectList/components/modifySchedule'
|
|
import modifySchedule from '@/views/projectManage/projectList/components/modifySchedule'
|
|
@@ -246,6 +247,7 @@ export default {
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ show: false,
|
|
value: [],
|
|
value: [],
|
|
props: { multiple: true },
|
|
props: { multiple: true },
|
|
propsBizId: {
|
|
propsBizId: {
|
|
@@ -260,7 +262,8 @@ export default {
|
|
optionData: [],
|
|
optionData: [],
|
|
searchForm: {
|
|
searchForm: {
|
|
teamIds: [],
|
|
teamIds: [],
|
|
- bizIds: []
|
|
|
|
|
|
+ bizIds: [],
|
|
|
|
+ deptCode: null
|
|
},
|
|
},
|
|
searchEnum: {
|
|
searchEnum: {
|
|
businesslines: []
|
|
businesslines: []
|
|
@@ -269,14 +272,15 @@ export default {
|
|
// teamName: '团队', // 团队名字
|
|
// teamName: '团队', // 团队名字
|
|
teamNames: [],
|
|
teamNames: [],
|
|
teamDepartment: [], // 部门
|
|
teamDepartment: [], // 部门
|
|
- // departmentOption: {
|
|
|
|
- // checkStrictly: true,
|
|
|
|
- // lazy: true,
|
|
|
|
- // lazyLoad: this.lazyLoad
|
|
|
|
- // }, // 部门props
|
|
|
|
|
|
+ departmentOption: {
|
|
|
|
+ checkStrictly: true,
|
|
|
|
+ lazy: true,
|
|
|
|
+ lazyLoad: this.lazyLoad
|
|
|
|
+ }, // 部门props
|
|
departmentData: [],
|
|
departmentData: [],
|
|
bizIdCode: [-1],
|
|
bizIdCode: [-1],
|
|
teamBizName: '团队',
|
|
teamBizName: '团队',
|
|
|
|
+ departmentName: '组织架构',
|
|
bizName: '业务线', // 业务线名字
|
|
bizName: '业务线', // 业务线名字
|
|
filtrate: {// 筛选区域
|
|
filtrate: {// 筛选区域
|
|
checkedMembers: [] // 被选中的成员列表
|
|
checkedMembers: [] // 被选中的成员列表
|
|
@@ -293,6 +297,7 @@ export default {
|
|
loading: true,
|
|
loading: true,
|
|
bizCode: 0,
|
|
bizCode: 0,
|
|
teamCode: 0,
|
|
teamCode: 0,
|
|
|
|
+ Narration: true,
|
|
calendarView: null, // 日程图表数据
|
|
calendarView: null, // 日程图表数据
|
|
showDetail: false, // 显示详情弹框
|
|
showDetail: false, // 显示详情弹框
|
|
nowDetailData: {}, // 当前选中日程的数据
|
|
nowDetailData: {}, // 当前选中日程的数据
|
|
@@ -309,6 +314,7 @@ export default {
|
|
data: null
|
|
data: null
|
|
},
|
|
},
|
|
datas: [],
|
|
datas: [],
|
|
|
|
+ depdShow: true,
|
|
DialogTitle: '新建排期', // 排期弹框标题
|
|
DialogTitle: '新建排期', // 排期弹框标题
|
|
isDelete: false, // 删除排期操作
|
|
isDelete: false, // 删除排期操作
|
|
visibleSchedule: false, // 排期任务弹框
|
|
visibleSchedule: false, // 排期任务弹框
|
|
@@ -317,7 +323,6 @@ export default {
|
|
task: false,
|
|
task: false,
|
|
bug: false
|
|
bug: false
|
|
},
|
|
},
|
|
- // deptCode1: '',
|
|
|
|
idList: {// 所选项的idList
|
|
idList: {// 所选项的idList
|
|
requireList: [],
|
|
requireList: [],
|
|
taskList: [],
|
|
taskList: [],
|
|
@@ -348,7 +353,7 @@ export default {
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
this.settingGetBizList()
|
|
this.settingGetBizList()
|
|
- // this.getStaffByUsername()
|
|
|
|
|
|
+ this.getStaffByUsername()
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
this.activeName = this.$route.query.page ? this.$route.query.page : '1'
|
|
this.activeName = this.$route.query.page ? this.$route.query.page : '1'
|
|
})
|
|
})
|
|
@@ -361,48 +366,77 @@ export default {
|
|
setCascader() {
|
|
setCascader() {
|
|
this.$refs.cascader.$el.click()
|
|
this.$refs.cascader.$el.click()
|
|
},
|
|
},
|
|
- // getStaffByUsername() {
|
|
|
|
- // getStaffByUsername('qinzhipeng_v').then(res => {
|
|
|
|
- // if (res.code === 200) {
|
|
|
|
- // this.deptCode1 = res.data.deptCode1
|
|
|
|
- // }
|
|
|
|
- // })
|
|
|
|
- // },
|
|
|
|
- // lazyLoad(node, resolve) {
|
|
|
|
- // setTimeout(() => {
|
|
|
|
- // this.getProvence(node, resolve)
|
|
|
|
- // }, 1000)
|
|
|
|
- // },
|
|
|
|
|
|
+ setsearchForm() {
|
|
|
|
+ this.searchForm.deptCode = null
|
|
|
|
+ this.teamDepartment = []
|
|
|
|
+ this.departmentName = '组织架构'
|
|
|
|
+ },
|
|
|
|
+ getStaffByUsername() {
|
|
|
|
+ getStaffByUsername(localStorage.getItem('username')).then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ if (!res.data) {
|
|
|
|
+ this.depdShow = false
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ this.depdShow = true
|
|
|
|
+ const list = res.data.department.split('/')
|
|
|
|
+ this.departmentName = list[list.length - 1]
|
|
|
|
+ for (let i = 1; i <= 6; i++) {
|
|
|
|
+ if (res.data['deptCode' + i] !== '') {
|
|
|
|
+ this.teamDepartment.push(res.data['deptCode' + i])
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.searchForm.deptCode = this.teamDepartment[this.teamDepartment.length - 1]
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ lazyLoad(node, resolve) {
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ this.getProvence(node, resolve)
|
|
|
|
+ }, 1000)
|
|
|
|
+ },
|
|
// test
|
|
// test
|
|
- // getProvence(node, resolve) {
|
|
|
|
- // console.log(node, resolve, 'cdscds')
|
|
|
|
- // console.log(this.deptCode1, 'cdslfkmvdfklvcds')
|
|
|
|
- // getSubDeptInfoByParentDeptId(this.deptCode1).then(e => {
|
|
|
|
- // console.log(e.data, '你的技术')
|
|
|
|
- // // if (Array.isArray(e.data)) {
|
|
|
|
- // // const data =
|
|
|
|
- // // const nodes = null
|
|
|
|
- // // if() {
|
|
|
|
- // // nodes = [{ label: '城市运输与服务技术部', leaf: false, value: res.data.deptCode1 }]
|
|
|
|
- // // }else {
|
|
|
|
- // // nodes = e.data.map(item => ({
|
|
|
|
- // // value: item.deptId,
|
|
|
|
- // // label: item.deptName,
|
|
|
|
- // // leaf: node.level >= 5 // 5层级
|
|
|
|
- // // }))
|
|
|
|
- // // }
|
|
|
|
- // const nodes = e.data.map(item => ({
|
|
|
|
- // value: item.deptId,
|
|
|
|
- // label: item.deptName,
|
|
|
|
- // leaf: node.level >= 5 // 5层级
|
|
|
|
- // }))
|
|
|
|
- // resolve(nodes)
|
|
|
|
- // // }
|
|
|
|
- // })
|
|
|
|
- // },
|
|
|
|
- // departmentChange(name) {
|
|
|
|
- // console.log(name, 'vdvsdvsd')
|
|
|
|
- // },
|
|
|
|
|
|
+ getProvence(node, resolve) {
|
|
|
|
+ let nodes = []
|
|
|
|
+ if (this.Narration) {
|
|
|
|
+ getStaffByUsername(localStorage.getItem('username')).then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ if (!res.data) {
|
|
|
|
+ this.depdShow = false
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ this.depdShow = true
|
|
|
|
+ this.Narration = false
|
|
|
|
+ nodes = [{ label: '城市运输与服务技术部', value: res.data.deptCode1, disabled: res.data.deptArch.isEnabled }]
|
|
|
|
+ resolve(nodes)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ this.departmentName = node.label
|
|
|
|
+ getSubDeptInfoByParentDeptId(node.value).then(e => {
|
|
|
|
+ if (e.data.length > 0) {
|
|
|
|
+ nodes = e.data.map(item => ({
|
|
|
|
+ value: item.deptId,
|
|
|
|
+ label: item.deptName,
|
|
|
|
+ disabled: !item.isEnabled
|
|
|
|
+ }))
|
|
|
|
+ resolve(nodes)
|
|
|
|
+ } else {
|
|
|
|
+ nodes = undefined
|
|
|
|
+ resolve(nodes)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ departmentChange(name, list) {
|
|
|
|
+ getSubDeptInfoByParentDeptId(name[name.length - 2]).then(e => {
|
|
|
|
+ e.data.map(item => {
|
|
|
|
+ item.deptId === name[name.length - 1] ? this.departmentName = item.deptName : ''
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ this.teamDepartment = name
|
|
|
|
+ this.searchForm.deptCode = name[name.length - 1]
|
|
|
|
+ },
|
|
handleBizIdChange(val, option) {
|
|
handleBizIdChange(val, option) {
|
|
if (val.length > 0) {
|
|
if (val.length > 0) {
|
|
const one = val[0]
|
|
const one = val[0]
|
|
@@ -903,6 +937,11 @@ export default {
|
|
/deep/.fc-content span{
|
|
/deep/.fc-content span{
|
|
bottom: 0 !important;
|
|
bottom: 0 !important;
|
|
}
|
|
}
|
|
|
|
+.icon-close {
|
|
|
|
+ z-index: 999999;
|
|
|
|
+ margin-right: 20px;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+}
|
|
</style>
|
|
</style>
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
.cascader {
|
|
.cascader {
|