qinzhipeng_v 5 tahun lalu
induk
melakukan
885e04a85b

+ 12 - 0
src/api/projectIndex.js

@@ -0,0 +1,12 @@
+// 项目
+import request from '@/utils/request'
+import { TeamManagement } from '@/apiConfig/api'
+
+// 新建团队
+export function projectList(data) {
+  return request({
+    url: TeamManagement + `/project/list`,
+    method: 'post',
+    data
+  })
+}

+ 12 - 0
src/api/taskIndex.js

@@ -0,0 +1,12 @@
+// 项目
+import request from '@/utils/request'
+import { TeamManagement } from '@/apiConfig/api'
+
+// list
+export function taskList(data) {
+  return request({
+    url: TeamManagement + `/task/list`,
+    method: 'post',
+    data
+  })
+}

+ 5 - 1
src/apiConfig/api.js

@@ -9,4 +9,8 @@ export const qualityUrl = 'http://10.179.181.103:8898' // 质量度量
 // export const HMvehicleUrl = 'http://10.96.113.197:9999' // 电单车 线下
 export const HMvehicleUrl = 'http://10.179.91.236:9999' // 电单车 线上
 
-export const TeamManagement = 'http://10.179.24.176:8990' // 团队配置
+// -----------------------------------------2.0-----------------------------------------------
+
+export const TeamManagement = 'http://10.179.24.176:8990' // 团队配置 项目
+
+export const task_Url = 'http://10.179.24.176:8990' // 任务

+ 18 - 23
src/views/projectManage/projectList/projectIndex.vue

@@ -38,15 +38,15 @@
 
       <el-main class="bgborder" style=" margin: 0 1%;min-height: 79.5vh;padding:0 !important">
         <div style="margin: 1.5%; font-weight: 600; white-space: nowrap;"><b style="color: #409EFF;margin: 0 0.5%; font-size: 20px; ">I</b>项目列表 <el-button type="primary" size="mini" icon="el-icon-plus" style="float: right;" @click="dialogFormVisible = true">新建</el-button></div>
-        <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="table_project" 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" sortable align="center">
-            <template slot-scope="scope"><el-tag size="mini" :type="random(scope.row)" effect="dark"> {{ scope.row.teamName }}</el-tag></template>
+            <template slot-scope="scope"><el-tag size="mini" :type="random(scope.row)" effect="dark"> {{ scope.row.priority }}</el-tag></template>
           </el-table-column>
           <el-table-column label="项目名称" min-width="200" align="center" show-overflow-tooltip>
-            <template slot-scope="scope"><span @click="link_project">{{ scope.row.address }}</span></template>
+            <template slot-scope="scope"><span @click="link_project">{{ scope.row.name }}</span></template>
           </el-table-column>
           <el-table-column label="业务线" min-width="100" align="center">
-            <template slot-scope="scope">{{ scope.row.teamName }}</template>
+            <template slot-scope="scope">{{ scope.row.bizType }}</template>
           </el-table-column>
           <el-table-column label="项目类型" min-width="100" align="center">
             <template slot-scope="scope">{{ scope.row.teamName }}</template>
@@ -70,10 +70,10 @@
             <template slot-scope="scope">{{ scope.row.teamName }}</template>
           </el-table-column>
           <el-table-column label="创建人" min-width="100" align="center">
-            <template slot-scope="scope">{{ scope.row.teamName }}</template>
+            <template slot-scope="scope">{{ scope.row.creater }}</template>
           </el-table-column>
           <el-table-column label="创建日期" min-width="120" align="center">
-            <template slot-scope="scope">{{ scope.row.date }}</template>
+            <template slot-scope="scope">{{ scope.row.gmtCreate }}</template>
           </el-table-column>
         </el-table>
       </el-main>
@@ -140,11 +140,13 @@
 </template>
 
 <script>
+import { projectList } from '@/api/projectIndex'
 export default {
   data() {
     return {
       curIndex: 1,
       pageSize: 15,
+      total: 0,
       options: [],
       value1: [],
       list: [],
@@ -170,23 +172,7 @@ export default {
         name: '王小虎',
         address: '上海市普陀区金沙江路 1518 弄'
       }],
-      tableData: [{
-        date: '2016-05-02',
-        teamName: 'p0',
-        address: '上海市普陀区金沙江路 1518 弄'
-      }, {
-        date: '2016-05-04',
-        teamName: 'p3',
-        address: '上海市普陀区金沙江路 1518 弄'
-      }, {
-        teamName: 'p8',
-        name: '王小虎',
-        address: '上海市普陀区金沙江路 1518 弄'
-      }, {
-        date: '2016-05-03',
-        teamName: 'p2',
-        address: '上海市普陀区金沙江路 1518 弄'
-      }],
+      table_project: [],
       options1: [{
         teamName: '选项1',
         label: '黄金糕'
@@ -214,7 +200,16 @@ export default {
       all_city_list: [{ value: 1, label: '秦志鹏' }, { value: 2, label: '汝瑞' }, { value: 3, label: '赵杰' }]
     }
   },
+  created() {
+    this.get_projectList()
+  },
   methods: {
+    get_projectList() {
+      projectList({ curIndex: 1, pageSize: 15 }).then(res => {
+        this.table_project = res.data
+        this.total = res.total
+      })
+    },
     handleCommand(command) {
       console.log(command)
       var isCommand = ''

+ 61 - 41
src/views/projectManage/taskList/taskIndex.vue

@@ -50,120 +50,120 @@
             <el-dropdown-item v-for="item in all_city_list" :key="item.value" :command="{ value: item.value, label: item.label, flag: 7 }">{{ item.label }}</el-dropdown-item>
           </el-dropdown-menu>
         </el-dropdown>
-        <el-select id="basicName" v-model="form_task.task_PersonInCharge" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" size="mini" placeholder="负责人">
+        <el-select v-model="form_task.task_PersonInCharge" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" size="mini" placeholder="负责人">
           <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
-        <el-select id="basicName" v-model="form_task.task_Participant" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" size="mini" placeholder="参与人">
+        <el-select v-model="form_task.task_Participant" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" size="mini" placeholder="参与人">
           <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
-        <el-select id="basicName" v-model="form_task.task_Founder" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" size="mini" placeholder="创建人">
+        <el-select v-model="form_task.task_Founder" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" size="mini" placeholder="创建人">
           <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
-        <el-button type="primary" size="mini" style="float: right">查询</el-button>
+        <el-button type="primary" size="mini" style="float: right" @click="get_taskList(form_task)">查询</el-button>
         <el-button size="mini" style="float: right;" @click="query_Reset">重置</el-button>
       </el-header>
 
       <el-main class="bgborder" style=" margin: 0 1%;min-height: 79.5vh;padding:0 !important">
         <div style="margin: 1.5%; font-weight: 600; white-space: nowrap;"><b style="color: #409EFF;margin: 0 0.5%; font-size: 20px; ">I</b>任务列表 <el-button type="primary" size="mini" icon="el-icon-plus" style="float: right;" @click="dialogFormVisible = true">新建</el-button></div>
-        <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="task_table" 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="200" align="center" show-overflow-tooltip>
-            <template slot-scope="scope"><span @click="link_project">{{ scope.row.address }}</span></template>
+            <template slot-scope="scope"><span @click="link_project">{{ scope.row.name }}</span></template>
           </el-table-column>
           <el-table-column label="归属项目" min-width="100" align="center">
-            <template slot-scope="scope">{{ scope.row.teamName }}</template>
+            <template slot-scope="scope">{{ scope.row.ProjectName }}</template>
           </el-table-column>
           <el-table-column label="归属需求" min-width="100" align="center">
-            <template slot-scope="scope">{{ scope.row.teamName }}</template>
+            <template slot-scope="scope">{{ scope.row.requireName }}</template>
           </el-table-column>
           <el-table-column label="业务线" min-width="100" align="center">
-            <template slot-scope="scope">{{ scope.row.teamName }}</template>
+            <template slot-scope="scope">{{ scope.row.bizIdString }}</template>
           </el-table-column>
           <el-table-column label="平台" min-width="100" align="center">
-            <template slot-scope="scope">{{ scope.row.teamName }}</template>
+            <template slot-scope="scope">{{ scope.row.typeString }}</template>
           </el-table-column>
           <el-table-column label="模块" min-width="100" align="center">
-            <template slot-scope="scope">{{ scope.row.teamName }}</template>
+            <template slot-scope="scope">{{ scope.row.clientTypeString }}</template>
           </el-table-column>
           <el-table-column label="是否免测" min-width="80" align="center">
-            <template slot-scope="scope">{{ scope.row.teamName }}</template>
+            <template slot-scope="scope">{{ scope.row.noTestString }}</template>
           </el-table-column>
           <el-table-column label="开发负责人" min-width="80" align="center">
-            <template slot-scope="scope">{{ scope.row.teamName }}</template>
+            <template slot-scope="scope">{{ scope.row.rdOwner }}</template>
           </el-table-column>
           <el-table-column label="测试负责人" min-width="80" align="center">
-            <template slot-scope="scope">{{ scope.row.teamName }}</template>
+            <template slot-scope="scope">{{ scope.row.qaOwner }}</template>
           </el-table-column>
           <el-table-column label="开发" min-width="80" align="center">
-            <template slot-scope="scope">{{ scope.row.teamName }}</template>
+            <template slot-scope="scope">{{ scope.row.rdList }}</template>
           </el-table-column>
           <el-table-column label="测试" min-width="100" align="center">
-            <template slot-scope="scope">{{ scope.row.teamName }}</template>
+            <template slot-scope="scope">{{ scope.row.qaList }}</template>
           </el-table-column>
           <el-table-column label="创建日期" min-width="120" align="center">
-            <template slot-scope="scope">{{ scope.row.date }}</template>
+            <template slot-scope="scope">{{ scope.row.createTime }}</template>
           </el-table-column>
         </el-table>
       </el-main>
       <el-footer class="footer" style="display:flex;align-items: center;justify-content: flex-end;">
-        <el-pagination background :current-page="currentPage" :page-sizes="[15, 20, 25, 30]" :page-size="100" layout="total, prev, pager, next, jumper" :total="100" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+        <el-pagination background :current-page="currentPage" :page-sizes="[15, 20, 25, 30]" :page-size="100" layout="total, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
       </el-footer>
     </el-container>
     <el-dialog title="新建任务" :visible.sync="dialogFormVisible" width="70%">
-      <el-form :model="form" label-position="right" style="margin: 0 3%;" label-width="120px">
-        <el-form-item label="任务名称" style="width: 100%">
-          <el-input v-model="form.name" autocomplete="off" placeholder="请输入任务名称" />
+      <el-form :model="task_form" :rules="task_rulesForm" label-position="right" style="margin: 0 3%;" label-width="120px">
+        <el-form-item label="任务名称" prop="name" style="width: 100%">
+          <el-input v-model="task_form.name" autocomplete="off" placeholder="请输入任务名称" />
         </el-form-item>
         <div style="display:flex;align-items: center;justify-content: space-between;">
           <div>
-            <el-form-item label="直接归属">
-              <el-checkbox-group v-model="form.type">
-                <el-checkbox label="不归属" name="type"> 不归属</el-checkbox>
-                <el-checkbox label="需求" name="type" />
-                <el-checkbox label="项目" name="type" />
+            <el-form-item label="直接归属" prop="source">
+              <el-checkbox-group v-model="task_form.source">
+                <el-checkbox label="不归属" name="0"> 不归属</el-checkbox>
+                <el-checkbox label="需求" name="1" />
+                <el-checkbox label="项目" name="2" />
               </el-checkbox-group>
             </el-form-item>
             <el-form-item label="业务/平台/模块">
-              <el-select v-model="form.value" clearable placeholder="请选择" style="width: 20vw">
+              <el-select v-model="task_form.clientType" 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="开发负责人">
-              <el-select v-model="form.value1" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" clearable placeholder="请输入姓名或邮箱前缀" style="width: 100%">
+              <el-select v-model="task_form.rdOwner" 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="归属需求">
-              <el-select v-model="form.value" clearable placeholder="请选择" style="width:20vw">
+              <el-select v-model="task_form.requireId" 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="是否免测">
-              <el-checkbox-group v-model="form.checkList">
+              <el-checkbox-group v-model="task_form.checkList">
                 <el-checkbox label="否" name="type" />
                 <el-checkbox label="是" name="type" />
               </el-checkbox-group>
             </el-form-item>
             <el-form-item label="测试负责人">
-              <el-select v-model="form.value1" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" clearable placeholder="请输入姓名或邮箱前缀" style="width: 100%">
+              <el-select v-model="task_form.qaOwner" 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="技术文档链接">
-          <el-input v-model="form.textarea" placeholder="请粘贴链接" />
+          <el-input v-model="task_form.devUrl" placeholder="请粘贴链接" />
         </el-form-item>
         <div style="display:flex;align-items: center;justify-content: space-between;">
           <el-form-item label="是否跟版">
-            <el-checkbox-group v-model="form.checkList" style="width: 20vw;">
-              <el-checkbox label="否" name="type" />
-              <el-checkbox label="是" name="type" />
+            <el-checkbox-group v-model="task_form.followVersion" style="width: 20vw;">
+              <el-checkbox label="否" name="1" />
+              <el-checkbox label="是" name="0" />
             </el-checkbox-group>
           </el-form-item>
           <el-form-item label="涉及的客户端">
-            <el-select v-model="form.value1" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" clearable placeholder="请选择 多选" style="width: 20vw">
+            <el-select v-model="task_form.involveApp" filterable remote reserve-keyword :remote-method="remoteMethod" :loading="loading" clearable placeholder="请选择 多选" style="width: 20vw">
               <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
             </el-select>
           </el-form-item>
@@ -178,6 +178,8 @@
 </template>
 
 <script>
+import { taskList } from '@/api/taskIndex' // ajax
+
 export default {
   data() {
     return {
@@ -186,9 +188,13 @@ export default {
       options: [],
       value1: [],
       list: [],
-      form: {
+      task_form: {
         type: [],
-        checkList: []
+        source: []
+      },
+      task_rulesForm: {
+        name: [{ required: true, message: '请输入任务名称', trigger: 'blur' }],
+        source: [{ required: true, message: '请输入任务名称', trigger: 'blur' }]
       },
       form_task: {
         task_all: '全部',
@@ -229,10 +235,27 @@ export default {
         label: '北京烤系三星那些闹事你辛苦啦斯诺克选手内心鸭'
       }],
       value: '',
+      total: 0,
+      task_table: [],
       all_city_list: [{ value: 1, label: '秦志鹏' }, { value: 2, label: '汝瑞' }, { value: 3, label: '赵杰' }]
     }
   },
+  created() {
+    this.get_taskList()
+  },
   methods: {
+    get_taskList() {
+      var task = {
+        pageSize: 15,
+        curIndex: 1,
+        creater: 'qinzhipeng_v',
+        bizId: 100
+      }
+      taskList(task).then(res => {
+        this.task_table = res.data
+        this.total = res.total
+      })
+    },
     handleCommand(command) {
       console.log(command)
       var isCommand = ''
@@ -337,9 +360,6 @@ export default {
 
   .el-table .warning-row { background: oldlace; }
 
-  /* #basicName::-webkit-input-placeholder {
-    color: #333333;
-  } */
   .drop_down {
      font-size: 13px;
      color: #333333;

+ 35 - 7
src/views/projectManage/taskList/taskViewDetails.vue

@@ -103,23 +103,44 @@
             </el-table-column>
           </el-table>
 
+          <el-row :gutter="20" style="margin: 2% 3%; color: #333B4A; padding-bottom:2%;border-bottom:1px solid #E9E9E9;">
+            <el-col :span="12"><div>排期汇总:{{ '2019年12月1日~2019年12月16日' }}</div></el-col>
+          </el-row>
+          <el-row :gutter="20" style="margin: 2% 3%; color: #333B4A; padding-bottom:2%;border-bottom:1px solid #E9E9E9;">
+            <el-col :span="8"><div>实际提测时间:{{ '2019年12月1日' }}</div></el-col>
+            <el-col :span="8"><div>实际准出时间:{{ '2019年12月16日' }}</div></el-col>
+            <el-col :span="8"><div>实际上线完成时间:{{ '2020年1月1日' }}</div></el-col>
+          </el-row>
+          <el-row :gutter="20" style="margin: 2% 3%; color: #333B4A; padding-bottom:2%;border-bottom:1px solid #E9E9E9; ">
+            <el-col :span="8"><div>预计上线版本:{{ '滴滴乘客端APP1.2.0 街兔APP2.3.1' }}</div></el-col>
+            <el-col :span="8"><div>实际上线版本:<span>{{ '滴滴乘客端APP1.2.0 街兔APP2.3.1' }}</span></div></el-col>
+          </el-row>
         </div>
       </el-header>
       <el-footer class="footer" style=" height: auto;">
         <el-tabs tab-position="top" @tab-click="handleClick">
           <el-tab-pane label="Bug" style="position: relative;">
+            <el-button size="mini" type="primary" plain>+提Bug</el-button>
+            <el-dropdown>
+              <el-button size="mini" type="primary" plain>新建<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-divider style="color: #E9E9E9;" /><hr>
             <div style="margin: 2% 0;display: flex; justify-content: space-start; align-items: center;">
               <span>快速筛选:</span>
-              <span>全部</span>
-              <span>待测试</span>
-              <span>开发中</span>
-              <span>待开发</span>
-              <span>已完成</span>
+              <span style="margin-left:2%;">全部</span>
+              <span style="margin-left:2%;">待测试</span>
+              <span style="margin-left:2%;">开发中</span>
+              <span style="margin-left:2%;">待开发</span>
+              <span style="margin-left:2%;">已完成</span>
             </div>
             <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">{{ scope.row.address }}</template>
+                <template slot-scope="scope">{{ scope.row.teamName }}</template>
               </el-table-column>
               <el-table-column label="状态" min-width="100" align="center">
                 <template slot-scope="scope">{{ scope.row.teamName }}</template>
@@ -238,7 +259,14 @@ export default {
       Addition2: false,
       textarea: '', // 项目总目标
       total: 0,
-      tableData: [],
+      tableData: [
+        {
+          teamName: '滴滴出行'
+        },
+        {
+          teamName: '质量技术部'
+        }
+      ],
       formLabelAlign: {
         describe: ''
       },