|
@@ -1,4 +1,17 @@
|
|
|
<style lang="scss" scoped>
|
|
|
+.quarter{
|
|
|
+ display: flex;
|
|
|
+ height: 100%;
|
|
|
+}
|
|
|
+.tool-panel{
|
|
|
+ width: 250px;
|
|
|
+ padding: 15px;
|
|
|
+ background-color: #F8F9FB;
|
|
|
+ *{
|
|
|
+ width: 100%;
|
|
|
+ margin: 5px 0;
|
|
|
+ }
|
|
|
+}
|
|
|
table{
|
|
|
width: 100%;
|
|
|
thead{
|
|
@@ -30,9 +43,14 @@ table{
|
|
|
div{
|
|
|
text-align: center;
|
|
|
margin: 5px;
|
|
|
+ label{
|
|
|
+ display: inline-block;
|
|
|
+ width: 100px;
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
/deep/ .el-input{
|
|
|
display: inline-block;
|
|
|
- width: 200px;
|
|
|
+ width: 300px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -41,87 +59,156 @@ table{
|
|
|
}
|
|
|
</style>
|
|
|
<template>
|
|
|
-<div>
|
|
|
+<div class="quarter">
|
|
|
+ <div class="tool-panel">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="params.year"
|
|
|
+ type="year"
|
|
|
+ placeholder="选择年"
|
|
|
+ @change="getPlanList">
|
|
|
+ </el-date-picker>
|
|
|
+ <el-button type="primary" @click="visibleChange = true;">新增季度计划</el-button>
|
|
|
+ </div>
|
|
|
<table>
|
|
|
<thead>
|
|
|
<tr>
|
|
|
<th>计划名</th>
|
|
|
<th>部门</th>
|
|
|
- <th>参与成员</th>
|
|
|
- <th>截止月份</th>
|
|
|
+ <!-- <th>参与成员</th> -->
|
|
|
+ <th>年份</th>
|
|
|
+ <th>季度</th>
|
|
|
<th>简要说明</th>
|
|
|
- <th>操作</th>
|
|
|
+ <th style="width:150px">操作</th>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
<tr v-for="(item,index) in planeList" :key="index">
|
|
|
<td>{{item.name}}</td>
|
|
|
<td>{{item.depart}}</td>
|
|
|
- <td>{{item.member}}</td>
|
|
|
- <td>{{item.end}}</td>
|
|
|
- <td>{{item.brief}}</td>
|
|
|
+ <!-- <td>{{item.member}}</td> -->
|
|
|
+ <td>{{item.year}}</td>
|
|
|
+ <td>{{item.quarter}}</td>
|
|
|
+ <td>{{item.content}}</td>
|
|
|
<td>
|
|
|
- <a>修改</a>
|
|
|
+ <a @click="changeData(item)">修改</a>
|
|
|
|
|
|
- <a>删除</a>
|
|
|
+ <a @click="visibleDelete = true;plan.id = item.id">删除</a>
|
|
|
|
|
|
<a>完成</a>
|
|
|
</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
+ <el-dialog
|
|
|
+ class="dialog-style"
|
|
|
+ title="编辑"
|
|
|
+ :visible.sync="visibleChange"
|
|
|
+ width="500px">
|
|
|
+ <div>
|
|
|
+ <label>名称:</label>
|
|
|
+ <el-input name="name" v-model="plan.name" placeholder="请输入名称" required="required"></el-input>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <label>年份:</label>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="yearData"
|
|
|
+ type="year"
|
|
|
+ placeholder="选择年">
|
|
|
+ </el-date-picker>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <label>季度:</label>
|
|
|
+ <el-select v-model="plan.quarter" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in quarterOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <label>内容:</label>
|
|
|
+ <el-input v-model="plan.content" placeholder="请输入内容" required="required"></el-input>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="change">确 定</el-button>
|
|
|
+ <el-button type="primary" @click="visibleChange = false;plan={}">取消</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ title="提示"
|
|
|
+ :visible.sync="visibleDelete"
|
|
|
+ width="200px">
|
|
|
+ <p class="center-text">确认删除?</p>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="visibleDelete = false;plan={}">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="deletePlan">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import { getPlanList,addPlan,updatePlan,deletePlan } from '@/api/quarter';
|
|
|
export default {
|
|
|
name: 'Quarter',
|
|
|
- components: {
|
|
|
- },
|
|
|
data () {
|
|
|
return {
|
|
|
- planeList:[{
|
|
|
- name: '线上测试功能',
|
|
|
- depart: '开发',
|
|
|
- member: 'HZH',
|
|
|
- end: '1',
|
|
|
- brief: '网页线上测试',
|
|
|
- },{
|
|
|
- name: '线上测试功能',
|
|
|
- depart: '开发',
|
|
|
- member: 'HZH',
|
|
|
- end: '2',
|
|
|
- brief: '网页线上测试',
|
|
|
- },{
|
|
|
- name: '线上测试功能',
|
|
|
- depart: '开发',
|
|
|
- member: 'HZH',
|
|
|
- end: '2',
|
|
|
- brief: '网页线上测试',
|
|
|
- },{
|
|
|
- name: '线上测试功能',
|
|
|
- depart: '开发',
|
|
|
- member: 'HZH',
|
|
|
- end: '3',
|
|
|
- brief: '网页线上测试',
|
|
|
- },{
|
|
|
- name: '线上测试功能',
|
|
|
- depart: '开发',
|
|
|
- member: 'HZH',
|
|
|
- end: '3',
|
|
|
- brief: '网页线上测试',
|
|
|
- },{
|
|
|
- name: '线上测试功能',
|
|
|
- depart: '开发',
|
|
|
- member: 'HZH',
|
|
|
- end: '3',
|
|
|
- brief: '网页线上测试',
|
|
|
- }],
|
|
|
+ planeList:[],
|
|
|
+ plan:{},
|
|
|
+ yearData:'',
|
|
|
+ quarterOptions: [{value:'1',label:'1'},{value:'2',label:'2'},{value:'3',label:'3'},{value:'4',label:'4'}],
|
|
|
+ params:{
|
|
|
+ year: ''
|
|
|
+ },
|
|
|
+ visibleChange: false,
|
|
|
+ visibleDelete: false
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
+ this.getPlanList();
|
|
|
},
|
|
|
methods: {
|
|
|
+ getPlanList(){
|
|
|
+ let params = JSON.parse(JSON.stringify(this.params));
|
|
|
+ params.year = this.params.year?this.params.year.getFullYear():'';
|
|
|
+ getPlanList(params).then((data) => {
|
|
|
+ this.planeList = data.data;
|
|
|
+ })
|
|
|
+ },
|
|
|
+ deletePlan(){
|
|
|
+ deletePlan(this.plan).then((result) => {
|
|
|
+ alert(result?'删除成功':'删除失败');
|
|
|
+ this.visibleDelete = false;
|
|
|
+ this.plan = {};
|
|
|
+ this.getPlanList();
|
|
|
+ })
|
|
|
+ },
|
|
|
+ changeData(item){
|
|
|
+ this.visibleChange = true;
|
|
|
+ this.plan = JSON.parse(JSON.stringify( item ));
|
|
|
+ this.yearData = new Date(item.year,1,1);
|
|
|
+ },
|
|
|
+ change(){
|
|
|
+ this.plan.year = this.yearData.getFullYear();
|
|
|
+ if(this.plan.id){
|
|
|
+ updatePlan(this.plan).then((result) => {
|
|
|
+ alert(result.result?'更新成功':'更新失败');
|
|
|
+ this.visibleChange = false;
|
|
|
+ this.plan = {};
|
|
|
+ this.getPlanList();
|
|
|
+ })
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ addPlan(this.plan).then((result) => {
|
|
|
+ alert(result.result?'添加成功':'添加失败');
|
|
|
+ this.visibleChange = false;
|
|
|
+ this.plan = {};
|
|
|
+ this.getPlanList();
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
}
|
|
|
}
|
|
|
</script>
|