|
@@ -1,30 +1,20 @@
|
|
|
<template>
|
|
|
<div style="background-color:#F2F3F6;display:flex;align-items: center;justify-content: center;">
|
|
|
<el-container>
|
|
|
- <el-header
|
|
|
- class="bgborder"
|
|
|
- style="height: 7vh;display: flex; justify-content: space-between; align-items: center;"
|
|
|
- >
|
|
|
+ <el-header class="bgborder" style=" margin: 1%;height: 7vh;display: flex; justify-content: space-between; align-items: center;">
|
|
|
<el-tooltip class="item" effect="dark" content="爱啥啥" placement="bottom">
|
|
|
- <span
|
|
|
- style="float: left;"
|
|
|
- >项目名称:"cmckldmcklmdcklmdsklcmklmckldklcmdsdcklmdklcdsklcmkldsmcklm"</span>
|
|
|
+ <span style="float: left;">项目名称:"cmckldmcklmdcklmdsklcmklmckldklcmdsdcklmdklcdsklcmkldsmcklm"</span>
|
|
|
</el-tooltip>
|
|
|
<span style="float: right;">
|
|
|
<el-dropdown>
|
|
|
- <el-button size="mini" type="primary">
|
|
|
- 未开始
|
|
|
- <i class="el-icon-arrow-down el-icon--right" />
|
|
|
- </el-button>
|
|
|
+ <el-button size="mini" type="primary">未开始<i class="el-icon-arrow-down el-icon--right" /></el-button>
|
|
|
<el-dropdown-menu slot="dropdown">
|
|
|
<el-dropdown-item>进行中</el-dropdown-item>
|
|
|
<el-dropdown-item>已完成</el-dropdown-item>
|
|
|
</el-dropdown-menu>
|
|
|
</el-dropdown>
|
|
|
<el-dropdown>
|
|
|
- <el-button size="mini" type="primary">
|
|
|
- 新建
|
|
|
- <i class="el-icon-arrow-down el-icon--right" />
|
|
|
+ <el-button size="mini" type="primary">新建<i class="el-icon-arrow-down el-icon--right" />
|
|
|
</el-button>
|
|
|
<el-dropdown-menu slot="dropdown">
|
|
|
<el-dropdown-item>新建需求</el-dropdown-item>
|
|
@@ -34,10 +24,10 @@
|
|
|
</span>
|
|
|
</el-header>
|
|
|
<el-container>
|
|
|
- <el-aside class="bgborder" style="minWidth: 55%;">
|
|
|
+ <el-aside class="bgborder" style=" margin:0 1%;minWidth: 55%;">
|
|
|
<div style="margin: 5%; font-weight: 600; white-space: nowrap;">
|
|
|
<b style="color: #409EFF;margin: 0 0.5%; font-size: 20px; ">I</b>数据统计
|
|
|
- <el-button size="mini" type="primary" style="float: right;">删除项目</el-button>
|
|
|
+ <el-button size="mini" type="primary" style="float: right;" @click="centerDialogVisible = true">删除项目</el-button>
|
|
|
</div>
|
|
|
<div style="display: flex; justify-content: space-between; align-items: center;">
|
|
|
<span style="text-align: center; margin-left: 10%">
|
|
@@ -64,7 +54,7 @@
|
|
|
</div>
|
|
|
</el-aside>
|
|
|
<el-container>
|
|
|
- <el-main class="bgborder" style="min-height: 50vh;">
|
|
|
+ <el-main class="bgborder" style="margin: 0 2.1% 0 0;min-height: 50vh;">
|
|
|
<div style="margin: 2.5%; font-weight: 600; white-space: nowrap;">
|
|
|
<b style="color: #409EFF;margin: 0 0.5%; font-size: 20px; ">I</b>基础信息
|
|
|
</div>
|
|
@@ -145,60 +135,35 @@
|
|
|
</el-main>
|
|
|
</el-container>
|
|
|
</el-container>
|
|
|
- <el-header class="bgborder" style="height: auto;">
|
|
|
+ <el-header class="bgborder" style="margin: 1%;min-height: 70vh;">
|
|
|
<el-tabs tab-position="top" @tab-click="handleClick">
|
|
|
<el-tab-pane label="项目总目标" style="position: relative;">
|
|
|
- <div v-show="true" class="test">
|
|
|
- 您还没有设定目标请
|
|
|
- <el-button type="text">立即添加</el-button>
|
|
|
+ <div v-show="Addition" class="test">您还没有设定目标请<el-button type="text" @click="ImmediateAddition">立即添加</el-button></div>
|
|
|
+ <div v-show="Addition1">
|
|
|
+
|
|
|
+ <el-input ref="textarea" v-model="textarea" rows="10" type="textarea" placeholder="请输入内容" show-word-limit style="margin: 5% 0;" @blur="blur_textarea(textarea)" />
|
|
|
</div>
|
|
|
- <div v-show="false">
|
|
|
+ <div v-show="Addition2">
|
|
|
<el-row :gutter="20">
|
|
|
- <el-col :span="24" :push="22" style="margin-bottom: 2%;">
|
|
|
- <el-button size="mini" type="primary">编辑</el-button>
|
|
|
+ <el-col :span="24" :push="22" style="margin-bottom: 1.5%;">
|
|
|
+ <el-button size="mini" type="primary" @click="ImmediateAddition">编辑</el-button>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <el-input
|
|
|
- v-model="textarea"
|
|
|
- rows="13"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入内容"
|
|
|
- show-word-limit
|
|
|
- style="margin-bottom: 3%;"
|
|
|
- />
|
|
|
+ {{ textarea }}
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
-
|
|
|
<el-tab-pane label="项目里程碑" style="overflow: auto;width: 100%;">
|
|
|
<div>
|
|
|
<el-divider style="position: absolute;" content-position="right">
|
|
|
- <el-tooltip
|
|
|
- class="item"
|
|
|
- effect="dark"
|
|
|
- content="温馨提示:点击添加可以新建里程碑"
|
|
|
- placement="bottom-end"
|
|
|
- >
|
|
|
- <el-button
|
|
|
- style="z-index: 999999;"
|
|
|
- size="mini"
|
|
|
- type="primary"
|
|
|
- icon="el-icon-plus"
|
|
|
- circle
|
|
|
- @click="dialogFormVisible = true"
|
|
|
- />
|
|
|
+ <el-tooltip class="item" effect="dark" content="温馨提示:点击添加可以新建里程碑" placement="bottom-end">
|
|
|
+ <el-button style="z-index: 999999;" size="mini" type="primary" icon="el-icon-plus" circle @click="dialogFormVisible = true" />
|
|
|
</el-tooltip>
|
|
|
</el-divider>
|
|
|
<ul class="time-horizontal" style="margin-top:15%;">
|
|
|
<li v-for="(item, index) in project_Milepost" :key="index">
|
|
|
<i>
|
|
|
<div>
|
|
|
- <el-popover
|
|
|
- class="popover"
|
|
|
- placement="top"
|
|
|
- width="200"
|
|
|
- trigger="click"
|
|
|
- style="border-radius: 10px;"
|
|
|
- >
|
|
|
+ <el-popover class="popover" placement="top" width="200" trigger="click" style="border-radius: 10px;">
|
|
|
<p style="text-align: center">
|
|
|
<el-button size="mini">删除</el-button>
|
|
|
<el-button size="mini" type="primary" @click="dialogFormVisible = true">编辑</el-button>
|
|
@@ -220,7 +185,7 @@
|
|
|
</el-tabs>
|
|
|
</el-header>
|
|
|
<el-container>
|
|
|
- <el-aside class="bgborder">
|
|
|
+ <el-aside class="bgborder" style="margin:0 1%;">
|
|
|
<div style="margin: 5%; font-weight: 600; white-space: nowrap;">
|
|
|
<b style="color: #409EFF;margin: 0 0.5%; font-size: 20px; ">I</b>需求列表
|
|
|
</div>
|
|
@@ -228,21 +193,10 @@
|
|
|
<div class="aside" @click="show2 = !show2">归属需求任务</div>
|
|
|
<transition name="el-zoom-in-top">
|
|
|
<div v-show="show2" class="transition-box">
|
|
|
- <el-table
|
|
|
- :data="tableData"
|
|
|
- style="width: 100%;"
|
|
|
- size="mini"
|
|
|
- :header-cell-style="{ background: '#6AB4FF', color: '#FFFFFF' }"
|
|
|
- show-overflow-tooltip="true"
|
|
|
- :row-class-name="tableRowClassName"
|
|
|
- >
|
|
|
+ <el-table :data="tableData" style="width: 100%;" size="mini" :header-cell-style="{ background: '#6AB4FF', color: '#FFFFFF' }" show-overflow-tooltip="true" :row-class-name="tableRowClassName">
|
|
|
<el-table-column label="需求名称" min-width="100" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-tag
|
|
|
- size="mini"
|
|
|
- :type="random(scope.row)"
|
|
|
- effect="dark"
|
|
|
- >{{ scope.row.teamName }}</el-tag>
|
|
|
+ <el-tag size="mini" :type="random(scope.row)" effect="dark">{{ scope.row.teamName }}</el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="PM" min-width="100" align="center" show-overflow-tooltip>
|
|
@@ -267,7 +221,7 @@
|
|
|
</div>
|
|
|
</el-aside>
|
|
|
<el-container>
|
|
|
- <el-main class="bgborder" style="min-height: 50vh;">
|
|
|
+ <el-main class="bgborder" style=" margin: 0 1.3% 0 0;min-height: 50vh;">
|
|
|
<div style="margin: 2.5%; font-weight: 600; white-space: nowrap;">
|
|
|
<b style="color: #409EFF;margin: 0 0.5%; font-size: 20px; ">I</b>任务列表
|
|
|
</div>
|
|
@@ -310,7 +264,7 @@
|
|
|
</el-main>
|
|
|
</el-container>
|
|
|
</el-container>
|
|
|
- <el-footer class="footer">
|
|
|
+ <el-footer class="footer" style="display:flex;align-items: center;justify-content: flex-end;">
|
|
|
<el-pagination
|
|
|
background
|
|
|
:current-page="currentPage"
|
|
@@ -328,13 +282,13 @@
|
|
|
<b style="color: #409EFF;margin: 0 0.5%;">I</b>编辑里程碑
|
|
|
</div>
|
|
|
<el-form :model="form" label-position="right">
|
|
|
- <el-form-item label="标题" :label-width="formLabelWidth">
|
|
|
+ <el-form-item label="标题" :label-width="formLabelWidth1">
|
|
|
<el-input v-model="form.name" autocomplete="off" placeholder="请输入标题" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="时间" :label-width="formLabelWidth">
|
|
|
+ <el-form-item label="时间" :label-width="formLabelWidth1">
|
|
|
<el-date-picker v-model="form.date" type="date" placeholder="请选择日期" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="详情" :label-width="formLabelWidth">
|
|
|
+ <el-form-item label="详情" :label-width="formLabelWidth1">
|
|
|
<el-input
|
|
|
v-model="textarea"
|
|
|
rows="3"
|
|
@@ -350,6 +304,68 @@
|
|
|
<el-button type="primary" @click="dialogFormVisible = false">确 定</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+ <el-dialog title="新建项目" :visible.sync="dialog_FormVisible" width="70%">
|
|
|
+ <el-form :model="form" label-position="left" style="margin: 0 3%;">
|
|
|
+ <el-form-item label="项目名称" :label-width="formLabelWidth">
|
|
|
+ <el-input v-model="form.name" autocomplete="off" placeholder="请输入项目名称" />
|
|
|
+ </el-form-item>
|
|
|
+ <div style="display: flex;">
|
|
|
+ <div style="flex; 1;">
|
|
|
+ <el-form-item label="项目类型" :label-width="formLabelWidth">
|
|
|
+ <el-select v-model="form.value" clearable placeholder="业务/产品" style="width: 100%">
|
|
|
+ <el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="业务线" :label-width="formLabelWidth">
|
|
|
+ <el-select v-model="form.value" clearable placeholder="请选择" style="width:20vw">
|
|
|
+ <el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="产品负责人" :label-width="formLabelWidth">
|
|
|
+ <el-select v-model="form.value1" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" clearable placeholder="请输入姓名或邮箱前缀" style="width: 100%">
|
|
|
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="测试负责人" :label-width="formLabelWidth">
|
|
|
+ <el-select v-model="form.value1" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" clearable placeholder="请输入姓名或邮箱前缀" style="width: 100%">
|
|
|
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div style="flex; 1; margin: 0 0 0 auto;">
|
|
|
+ <el-form-item label="优先级" :label-width="formLabelWidth">
|
|
|
+ <el-select v-model="form.value" clearable placeholder="请选择" style="width:20vw">
|
|
|
+ <el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="项目负责人" :label-width="formLabelWidth">
|
|
|
+ <el-select v-model="form.value1" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" clearable placeholder="请输入姓名或邮箱前缀" style="width: 100%">
|
|
|
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="开发负责人" :label-width="formLabelWidth">
|
|
|
+ <el-select v-model="form.value1" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" clearable placeholder="请输入姓名或邮箱前缀" style="width: 100%">
|
|
|
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="项目描述" :label-width="formLabelWidth">
|
|
|
+ <el-input v-model="form.textarea" type="textarea" placeholder="请输入" show-word-limit />
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="dialog_FormVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog_FormVisible = false">创 建</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog :visible.sync="centerDialogVisible" width="30%" center>
|
|
|
+ <div align="center">确定要删除此项目吗?</div>
|
|
|
+ <spn slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="centerDialogVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
|
|
|
+ </spn>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -357,16 +373,22 @@
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
+ Addition: false,
|
|
|
+ Addition1: false,
|
|
|
+ Addition2: false,
|
|
|
+ textarea: '', // 项目总目标
|
|
|
total: 0,
|
|
|
tableData: [],
|
|
|
formLabelAlign: {
|
|
|
- describe: '你好啊!'
|
|
|
+ describe: ''
|
|
|
},
|
|
|
show2: true,
|
|
|
describe: false,
|
|
|
describe1: false,
|
|
|
- textarea: '',
|
|
|
dialogFormVisible: false,
|
|
|
+ dialog_FormVisible: false,
|
|
|
+ centerDialogVisible: false,
|
|
|
+ formLabelWidth: '120px',
|
|
|
form: {
|
|
|
name: '',
|
|
|
region: '',
|
|
@@ -377,7 +399,7 @@ export default {
|
|
|
resource: '',
|
|
|
desc: ''
|
|
|
},
|
|
|
- formLabelWidth: '60px',
|
|
|
+ formLabelWidth1: '60px',
|
|
|
project_Milepost: [
|
|
|
{
|
|
|
name: '第一阶段',
|
|
@@ -429,56 +451,6 @@ export default {
|
|
|
date: '2019/12/06',
|
|
|
code: '你丹江口市内存卡就是你的错'
|
|
|
},
|
|
|
- {
|
|
|
- name: '第一阶段',
|
|
|
- date: '2019/12/06',
|
|
|
- code: '你丹江口市内存卡就是你的错'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '第一阶段',
|
|
|
- date: '2019/12/06',
|
|
|
- code: '你丹江口市内存卡就是你的错'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '第一阶段',
|
|
|
- date: '2019/12/06',
|
|
|
- code: '你丹江口市内存卡就是你的错'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '第一阶段',
|
|
|
- date: '2019/12/06',
|
|
|
- code: '你丹江口市内存卡就是你的错'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '第一阶段',
|
|
|
- date: '2019/12/06',
|
|
|
- code: '你丹江口市内存卡就是你的错'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '第一阶段',
|
|
|
- date: '2019/12/06',
|
|
|
- code: '你丹江口市内存卡就是你的错'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '第一阶段',
|
|
|
- date: '2019/12/06',
|
|
|
- code: '你丹江口市内存卡就是你的错'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '第一阶段',
|
|
|
- date: '2019/12/06',
|
|
|
- code: '你丹江口市内存卡就是你的错'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '第一阶段',
|
|
|
- date: '2019/12/06',
|
|
|
- code: '你丹江口市内存卡就是你的错'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '第一阶段',
|
|
|
- date: '2019/12/06',
|
|
|
- code: '你丹江口市内存卡就是你的错'
|
|
|
- },
|
|
|
{
|
|
|
name: '第一阶段',
|
|
|
date: '2019/12/06',
|
|
@@ -492,6 +464,11 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
get_list() {
|
|
|
+ if (this.textarea === '') {
|
|
|
+ this.Addition = true
|
|
|
+ } else {
|
|
|
+ this.Addition2 = true
|
|
|
+ }
|
|
|
if (this.formLabelAlign.describe !== '') {
|
|
|
this.describe1 = true
|
|
|
} else {
|
|
@@ -499,12 +476,13 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
project_modifica(e) {
|
|
|
- this.describe = true
|
|
|
- this.describe1 = false
|
|
|
- this.$set(this.formLabelAlign, 'describe', e)
|
|
|
- setTimeout(() => {
|
|
|
- this.$refs.describe.focus()
|
|
|
- }, 100)
|
|
|
+ this.dialog_FormVisible = true
|
|
|
+ // this.describe = true
|
|
|
+ // this.describe1 = false
|
|
|
+ // this.$set(this.formLabelAlign, 'describe', e)
|
|
|
+ // setTimeout(() => {
|
|
|
+ // this.$refs.describe.focus()
|
|
|
+ // }, 100)
|
|
|
},
|
|
|
blur_describe(e) {
|
|
|
this.describe = false
|
|
@@ -525,13 +503,30 @@ export default {
|
|
|
}
|
|
|
return ''
|
|
|
},
|
|
|
- handleSizeChange(size) {
|
|
|
- // 分页
|
|
|
+
|
|
|
+ ImmediateAddition() { // 立即添加(编辑)
|
|
|
+ setTimeout(() => { this.$refs.textarea.focus() }, 100)
|
|
|
+ this.Addition = false
|
|
|
+ this.Addition1 = true
|
|
|
+ this.Addition2 = false
|
|
|
+ },
|
|
|
+ blur_textarea(e) { // 项目总目标失去焦点
|
|
|
+ if (e !== '') {
|
|
|
+ this.textarea = e
|
|
|
+ this.Addition2 = true
|
|
|
+ this.Addition1 = false
|
|
|
+ this.Addition = false
|
|
|
+ } else {
|
|
|
+ this.Addition2 = false
|
|
|
+ this.Addition1 = false
|
|
|
+ this.Addition = true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleSizeChange(size) { // 分页
|
|
|
this.pageSize = size
|
|
|
// this.get_list()
|
|
|
},
|
|
|
- handleCurrentChange(curIndex) {
|
|
|
- // 分页
|
|
|
+ handleCurrentChange(curIndex) { // 分页
|
|
|
this.curIndex = curIndex
|
|
|
// this.get_list()
|
|
|
}
|
|
@@ -544,7 +539,6 @@ export default {
|
|
|
}
|
|
|
|
|
|
.bgborder {
|
|
|
- margin: 1%;
|
|
|
background-color: #FFFFFF;
|
|
|
border-radius: 8px;
|
|
|
}
|
|
@@ -575,9 +569,9 @@ export default {
|
|
|
}
|
|
|
|
|
|
.test {
|
|
|
+ height: 50vh;
|
|
|
color: #666666;
|
|
|
font-size: 14px;
|
|
|
- margin-top: 10%;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|