|
@@ -5,7 +5,7 @@
|
|
|
<span style="padding: 0 5px 0 0;">创建时间</span>
|
|
|
<el-date-picker v-model="queryLists.dateQuery" align="left" size="medium" type="datetime" style="width: 180px;" placeholder="选择日期" :picker-options="pickerOptions" />
|
|
|
<span style="padding: 0 5px 0 30px;">项目名称</span>
|
|
|
- <el-input v-model="queryLists.name" placeholder="项目名称" size="medium" clearable style="width: 180px;" class="filter-item" @keyup.enter.native="handleFilter" />
|
|
|
+ <el-input v-model="queryLists.name" placeholder="项目名称" size="medium" clearable style="width: 180px;" class="filter-item" />
|
|
|
<span style="padding: 0 5px 0 30px;">状态</span>
|
|
|
<el-select v-model="queryLists.statusString" size="medium" style="width: 180px; margin-right:20px;" clearable placeholder="状态">
|
|
|
<el-option v-for="item in statusOptionss" :key="item.value" :label="item.name" :value="item.value" />
|
|
@@ -16,7 +16,6 @@
|
|
|
</el-header>
|
|
|
|
|
|
<el-table :data="list" style="width: 100%;margin-bottom: 20px;margin-top: 20px;" row-key="id" lazy>
|
|
|
- <!-- :tree-props="{children: 'taskInfoDOList', hasChildren: 'hasChildren'}" -->
|
|
|
<el-table-column label="序号" prop="id" sortable align="center" min-width="80">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{ scope.row.id }}</span>
|
|
@@ -24,12 +23,12 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="项目名称" min-width="200px" align="center">
|
|
|
<template v-slot="scope">
|
|
|
- <span class="projectStyle" @click="projectShowData(scope.row.id, scope.row);dialogTableVisible = true;">{{ scope.row.name }}</span>
|
|
|
+ <el-tooltip content="点击进入详情页面" placement="top"><el-tag class="tag" @click="projectShowData(scope.row.id, scope.row)">{{ scope.row.name }}</el-tag></el-tooltip>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="状态" min-width="80px" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <span>{{ scope.row.statusString }}</span>
|
|
|
+ <el-tag type="success"><span>{{ scope.row.statusString }}</span></el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="创建时间" min-width="200px" align="center">
|
|
@@ -49,7 +48,7 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="操作" align="center" min-width="250px" class-name="small-padding fixed-width" fixed="right">
|
|
|
<template slot-scope="{row}">
|
|
|
- <el-button type="primary" size="mini" @click="dialogFormVisible = true, changeData(row)">编辑</el-button>
|
|
|
+ <el-button type="primary" size="mini" @click="dialogFormVisible1 = true, changeData(row)">编辑</el-button>
|
|
|
<el-button type="primary" size="mini" @click="deleteCodeData(row.id)">删除</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -64,7 +63,7 @@
|
|
|
@current-change="handleCurrentChange"
|
|
|
/>
|
|
|
|
|
|
- <el-dialog :title="titleName" width="80%" :visible.sync="dialogFormVisible">
|
|
|
+ <el-dialog :title="titleName" width="80%" :visible.sync="dialogFormVisible" @close="closeDialog">
|
|
|
<el-form ref="serviceDataForms" :model="form" :rules="serviceDataRules" style="width:93%;">
|
|
|
<el-form-item label="项目名称" prop="name" :label-width="formLabelWidths">
|
|
|
<el-input v-model="form.name" autocomplete="off" placeholder="项目名称" />
|
|
@@ -81,6 +80,11 @@
|
|
|
<el-option v-for="item in statusOptionss" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="平台类型" prop="platForm" :label-width="formLabelWidths">
|
|
|
+ <el-select v-model="form.platForm" placeholder="平台类型">
|
|
|
+ <el-option v-for="item in platFormString" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
</div>
|
|
|
<div style="flex:1;">
|
|
|
<el-form-item label="优先级" prop="priorityString" :label-width="formLabelWidths">
|
|
@@ -130,7 +134,11 @@
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div style="display: flex;">
|
|
|
+ <el-form-item style="margin-left:110px;width:84%;">
|
|
|
+ <div id="testInfo" />
|
|
|
+ <!-- <div id="testInfo1" class="text" /> -->
|
|
|
+ </el-form-item>
|
|
|
+ <!-- <div style="display: flex;">
|
|
|
<div style="flex;1;">
|
|
|
<el-form-item label="需求评审时间" :label-width="formLabelWidths">
|
|
|
<el-date-picker v-model="form.mrdTime" type="datetime" placeholder="选择日期" />
|
|
@@ -147,11 +155,11 @@
|
|
|
<el-date-picker v-model="form.clientDevTime" type="datetime" placeholder="选择日期" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <el-form-item label="开发联调时间" :label-width="formLabelWidths">
|
|
|
+ </div> -->
|
|
|
+ <!-- <el-form-item label="开发联调时间" :label-width="formLabelWidths">
|
|
|
<el-date-picker v-model="form.joinTestTime" type="datetime" placeholder="选择日期" />
|
|
|
- </el-form-item>
|
|
|
- <div style="display: flex;">
|
|
|
+ </el-form-item> -->
|
|
|
+ <!-- <div style="display: flex;">
|
|
|
<div style="flex:1;">
|
|
|
<el-form-item label="服务端提测时间" :label-width="formLabelWidths">
|
|
|
<el-date-picker v-model="form.serviceLaunchTestTime" type="datetime" placeholder="选择日期" />
|
|
@@ -180,7 +188,7 @@
|
|
|
<el-date-picker v-model="form.pmTestTime" type="datetime" placeholder="选择日期" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</div>
|
|
|
</transition>
|
|
|
<div style="display: flex; padding-top:30px; width: 100%;">
|
|
@@ -198,450 +206,117 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog :title="codeTitle" width="80%" :visible.sync="dialogFormTaskVisible">
|
|
|
- <el-form ref="serviceTaskDataForms" :model="formTask" :rules="serviceDataRules">
|
|
|
- <el-form-item label="任务名称" prop="name" label-width="100px" style="width:93%;">
|
|
|
- <el-input v-model="formTask.name" placeholder="任务名称" autocomplete="off" />
|
|
|
+ <el-dialog :title="titleName" width="80%" :visible.sync="dialogFormVisible1" @close="closeDialog">
|
|
|
+ <el-form ref="serviceDataForms" :model="form" :rules="serviceDataRules" style="width:93%;">
|
|
|
+ <el-form-item label="项目名称" prop="name" :label-width="formLabelWidths">
|
|
|
+ <el-input v-model="form.name" autocomplete="off" placeholder="项目名称" />
|
|
|
</el-form-item>
|
|
|
<div style="display: flex;">
|
|
|
<div style="flex:1;">
|
|
|
- <el-form-item label="业务线" prop="bizIdString" label-width="100px">
|
|
|
- <el-select v-model="formTask.bizIdString" placeholder="业务线">
|
|
|
- <el-option v-for="item in bizOptions" :key="item.value" :label="item.name" :value="item.value" />
|
|
|
+ <el-form-item label="业务线" prop="bizIdString" :label-width="formLabelWidths">
|
|
|
+ <el-select v-model="form.bizIdString" placeholder="业务线">
|
|
|
+ <el-option v-for="item in bizOptions" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="优先级" prop="priorityString" label-width="100px">
|
|
|
- <el-select v-model="formTask.priorityString" placeholder="优先级">
|
|
|
- <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.value" />
|
|
|
+ <el-form-item label="状态" prop="statusString" :label-width="formLabelWidths">
|
|
|
+ <el-select v-model="form.statusString" placeholder="状态">
|
|
|
+ <el-option v-for="item in statusOptionss" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="进展" prop="stageString" label-width="100px">
|
|
|
- <el-select v-model="formTask.stageString" placeholder="进展">
|
|
|
- <el-option v-for="item in stageStrings" :key="item.value" :label="item.name" :value="item.value" />
|
|
|
+ <el-form-item label="平台类型" prop="platForm" :label-width="formLabelWidths">
|
|
|
+ <el-select v-model="form.platForm" placeholder="平台类型">
|
|
|
+ <el-option v-for="item in platFormString" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div style="flex:1;">
|
|
|
- <el-form-item label="平台类型" prop="type" label-width="100px">
|
|
|
- <el-select v-model="formTask.type" placeholder="平台类型" @change="clickType(formTask.type)">
|
|
|
- <el-option v-for="item in typeString" :key="item.value" :label="item.name" :value="item.value" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="状态" prop="statusString" label-width="100px">
|
|
|
- <el-select v-model="formTask.statusString" placeholder="状态">
|
|
|
- <el-option v-for="item in statusOptionss" :key="item.value" :label="item.name" :value="item.value" />
|
|
|
+ <el-form-item label="优先级" prop="priorityString" :label-width="formLabelWidths">
|
|
|
+ <el-select v-model="form.priorityString" placeholder="优先级">
|
|
|
+ <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="任务类型" prop="taskType" label-width="100px">
|
|
|
- <el-select v-model="formTask.taskType" placeholder="任务类型">
|
|
|
- <el-option v-for="item in taskTypeStr" :key="item.code" :label="item.name" :value="item.name" />
|
|
|
+ <el-form-item label="进展" prop="stageString" :label-width="formLabelWidths">
|
|
|
+ <el-select v-model="form.stageString" placeholder="进展">
|
|
|
+ <el-option v-for="item in stageStrings" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div style="flex:1;">
|
|
|
- <el-form-item label="业务模块" prop="businessType" label-width="100px">
|
|
|
- <el-select v-model="formTask.businessType" placeholder="业务模块">
|
|
|
- <el-option v-for="item in businessTypeStr" :key="item.code" :label="item.name" :value="item.code" />
|
|
|
- </el-select>
|
|
|
+ <el-form-item label="PM" prop="pm" :label-width="formLabelWidths">
|
|
|
+ <el-input v-model="form.pm" autocomplete="off" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="是否免测" prop="notest" label-width="100px">
|
|
|
- <el-select v-model="formTask.notest" placeholder="是否免测">
|
|
|
- <el-option v-for="item in noTestString" :key="item.value" :label="item.name" :value="item.value" />
|
|
|
- </el-select>
|
|
|
+ <el-form-item label="版本" :label-width="formLabelWidths">
|
|
|
+ <el-input v-model="form.version" autocomplete="off" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-show="false" label="创建人" :label-width="formLabelWidths">
|
|
|
+ <el-input v-model="form.creater" autocomplete="off" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <el-form-item label="需求文档" style="width:72vw;" label-width="100px">
|
|
|
- <el-input v-model="formTask.mrdUrl" autocomplete="off" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="技术文档" style="width:72vw;" label-width="100px">
|
|
|
- <el-input v-model="formTask.devUrl" autocomplete="off" />
|
|
|
+ <el-form-item label="需求文档" :label-width="formLabelWidths">
|
|
|
+ <el-input v-model="form.mrdUrl" autocomplete="off" />
|
|
|
</el-form-item>
|
|
|
<el-button type="primary" round size="mini" icon="el-icon-arrow-down" style="cursor: pointer;" @click="show2 = !show2">详细添加</el-button>
|
|
|
<transition name="el-zoom-in-top">
|
|
|
- <div v-show="show2" style="display: flex; width:93%; padding-top:30px;">
|
|
|
- <div style="flex:1;">
|
|
|
- <el-form-item label="标签" :label-width="formLabelWidth">
|
|
|
- <el-input v-model="formTask.tag" style="width:220px;" autocomplete="off" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="RD" :label-width="formLabelWidth">
|
|
|
- <el-input v-model="formTask.rd" style="width:220px;" autocomplete="off" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="QA" :label-width="formLabelWidth">
|
|
|
- <el-input v-model="formTask.qa" style="width:220px;" autocomplete="off" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="需求评审时间" :label-width="formLabelWidth">
|
|
|
- <el-date-picker v-model="formTask.mrdTime" type="datetime" placeholder="选择日期" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="计划开始开发时间" :label-width="formLabelWidth">
|
|
|
- <el-date-picker v-model="formTask.startDevPlanTime" type="datetime" placeholder="选择日期" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="计划测试完成时间" :label-width="formLabelWidth">
|
|
|
- <el-date-picker v-model="formTask.testFinishPlanTime" type="datetime" placeholder="选择日期" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="计划提测时间" :label-width="formLabelWidth">
|
|
|
- <el-date-picker v-model="formTask.launchTestPlanTime" type="datetime" placeholder="选择日期" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="计划上线时间" :label-width="formLabelWidth">
|
|
|
- <el-date-picker v-model="formTask.onlinePlanTime" type="datetime" placeholder="选择日期" />
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- <div style="flex:1;">
|
|
|
- <el-form-item label="分组" :label-width="formLabelWidth">
|
|
|
- <el-input v-model="formTask.group" style="width:220px;" autocomplete="off" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="PM" :label-width="formLabelWidth">
|
|
|
- <el-input v-model="formTask.pm" style="width:220px;" autocomplete="off" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="关注人" prop="focusPenson" :label-width="formLabelWidth">
|
|
|
- <el-input v-model="formTask.focusPenson" style="width:220px;" autocomplete="off" />
|
|
|
- </el-form-item>
|
|
|
- <!-- <el-form-item label="创建人" :label-width="formLabelWidth">
|
|
|
- <el-input v-model="formTask.creater" autocomplete="off" />
|
|
|
- </el-form-item> -->
|
|
|
- <el-form-item label="实际开始开发时间" :label-width="formLabelWidth">
|
|
|
- <el-date-picker v-model="formTask.startDevRealTime" type="datetime" placeholder="选择日期" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="实际测试完成时间" :label-width="formLabelWidth">
|
|
|
- <el-date-picker v-model="formTask.testFinishRealTime" type="datetime" placeholder="选择日期" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="冒烟测试完成时间" :label-width="formLabelWidth">
|
|
|
- <el-date-picker v-model="formTask.smokeTestFinishTime" type="datetime" placeholder="选择日期" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="实际提测时间" :label-width="formLabelWidth">
|
|
|
- <el-date-picker v-model="formTask.launchTestRealTime" type="datetime" placeholder="选择日期" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="实际上线时间" :label-width="formLabelWidth">
|
|
|
- <el-date-picker v-model="formTask.onlineRealTime" type="datetime" placeholder="选择日期" />
|
|
|
- </el-form-item>
|
|
|
+ <div v-show="show2" style=" width:100%;margin-left:50px; padding-top:30px;">
|
|
|
+ <div style="display: flex;">
|
|
|
+ <div style="flex;1;">
|
|
|
+ <el-form-item label="UE " :label-width="formLabelWidths">
|
|
|
+ <el-input v-model="form.ue" style="width:220px;" autocomplete="off" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="UI " :label-width="formLabelWidths">
|
|
|
+ <el-input v-model="form.ui" style="width:220px;" autocomplete="off" />
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div style="flex:1;margin-left:135px;">
|
|
|
+ <el-form-item label="RD " :label-width="formLabelWidths">
|
|
|
+ <el-input v-model="form.rd" style="width:220px;" autocomplete="off" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="QA " :label-width="formLabelWidths">
|
|
|
+ <el-input v-model="form.qa" style="width:220px;" autocomplete="off" />
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ <el-form-item style="margin-left:110px;width:84%;">
|
|
|
+ <div id="timeInfo" />
|
|
|
+ <!-- <div id="timeInfo1" class="text" /> -->
|
|
|
+ </el-form-item>
|
|
|
</div>
|
|
|
</transition>
|
|
|
- <dir style="display:flex; width:93%;">
|
|
|
- <el-form-item label="备注" style="flex:1;" label-width="60px">
|
|
|
- <el-input v-model="formTask.remarks" type="textarea" :rows="4" placeholder="备注" />
|
|
|
+ <div style="display: flex; padding-top:30px; width: 100%;">
|
|
|
+ <el-form-item label="备注" style="flex:1;" label-width="180px">
|
|
|
+ <el-input v-model="form.remarks" type="textarea" :rows="4" placeholder="备注" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="描述" style="flex:1;" label-width="60px">
|
|
|
- <el-input v-model="formTask.description" type="textarea" :rows="4" placeholder="请输入内容" />
|
|
|
+ <el-form-item label="描述" style="flex:1;" label-width="130px">
|
|
|
+ <el-input v-model="form.description" type="textarea" :rows="4" placeholder="请输入内容" />
|
|
|
</el-form-item>
|
|
|
- </dir>
|
|
|
+ </div>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="dialogFormTaskVisible = false">取 消</el-button>
|
|
|
- <el-button v-if="showYes" type="primary" @click="dialogFormTaskVisible = true, codeTitle === '任务新增'?createaddTaskData(formTask):updateaddTaskData(formTask)">确 定</el-button>
|
|
|
+ <el-button @click="dialogFormVisible1 = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="dialogFormVisible1 = true, titleName === '新增'?createCode(form):updateData(form)">确 定</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
-
|
|
|
- <!-- 二页面 -->
|
|
|
- <el-dialog width="80%" :visible.sync="dialogTableVisible">
|
|
|
- <div style="font-size:18px;color:#000000;">项目管理</div><hr>
|
|
|
- <div>
|
|
|
- <div style=" diaplay: flex; padding-top:30px;">
|
|
|
- <span class="tableproject" style="flex:1;">状态</span>
|
|
|
- <el-select v-model="projectData.statusString" style="width: 100px;" size="mini" placeholder="状态" @change="updateData(projectData)">
|
|
|
- <el-option v-for="item in statusOptionss" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
- </el-select>
|
|
|
- <span class="tableproject" style="flex:1;">优先级</span>
|
|
|
- <el-select v-model="projectData.priorityString" style="width: 100px;" size="mini" placeholder="优先级" @change="updateData(projectData)">
|
|
|
- <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
- </el-select>
|
|
|
- <span class="tableproject" style="flex:1;">进展</span>
|
|
|
- <el-select v-model="projectData.stageString" placeholder="进展" style="width: 100px;" size="mini" @change="updateData(projectData)">
|
|
|
- <el-option v-for="item in stageStrings" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
- </el-select>
|
|
|
- <el-button type="primary" size="small" style="float:right;margin-right:7%" @click="dialogFormVisible = true, changeData">编辑</el-button>
|
|
|
- </div><hr>
|
|
|
- <el-form style=" padding-left: 100px;" label="right" size="mini" label-width="110px">
|
|
|
- <el-form-item label="项目名称 :"><span>{{ projectData.name }}</span></el-form-item>
|
|
|
- </el-form>
|
|
|
- <div style="display:flex;">
|
|
|
- <el-form style="flex:1; padding-left: 100px;" label="right" size="mini" label-width="110px">
|
|
|
- <el-form-item label="PM :"><span>{{ projectData.pm }}</span></el-form-item>
|
|
|
- <el-form-item label="版本 :"><span>{{ projectData.version }}</span></el-form-item>
|
|
|
- <el-form-item label="开始时间 :"><span>{{ projectData.createTime }}</span></el-form-item>
|
|
|
- </el-form>
|
|
|
- <el-form style="flex:1; padding-left: 100px;" label="right" size="mini" label-width="110px">
|
|
|
- <el-form-item label="QA :"><span>{{ projectData.qa }}</span></el-form-item>
|
|
|
- <el-form-item label="RD :"><span>{{ projectData.rd }}</span></el-form-item>
|
|
|
- <el-form-item label="计划上线时间 :"><span>{{ projectData.allOnlineTime }}</span></el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <el-form style=" padding-left: 100px;" label="right" size="mini" label-width="110px">
|
|
|
- <el-form-item label="需求文档 :"><span>{{ projectData.mrdUrl }}</span></el-form-item>
|
|
|
- </el-form>
|
|
|
-
|
|
|
- <el-form style=" padding-left: 100px;" label="right" size="mini" label-width="110px">
|
|
|
- <el-form-item label="描述 :"><span>{{ projectData.description }}</span></el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <el-button type="primary" round size="mini" icon="el-icon-arrow-down" style="cursor: pointer;" @click="show2 = !show2">详细查看</el-button>
|
|
|
- <transition name="el-zoom-in-top">
|
|
|
- <div v-show="show2" style="width:100%; padding-top:30px;">
|
|
|
- <div style="display: flex;">
|
|
|
- <el-form style="flex:1.7; margin-left: 100px;" label="right" size="mini" label-width="100px">
|
|
|
- <el-form-item label="UE :"><span>{{ projectData.ue }}</span></el-form-item>
|
|
|
- </el-form>
|
|
|
- <el-form style="flex:1; margin-right: 130px;" label="right" size="mini" label-width="100px">
|
|
|
- <el-form-item label="UI :"><span>{{ projectData.ui }}</span></el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <div style="display: flex;">
|
|
|
- <el-form style="flex:1; margin-left: 50px;" label="right" size="mini" label-width="150px">
|
|
|
- <el-form-item label="需求评审时间 :"><span>{{ projectData.mrdTime }}</span></el-form-item>
|
|
|
- <el-form-item label="服务端开始开发时间 :"><span>{{ projectData.serviceDevTime }}</span></el-form-item>
|
|
|
- </el-form>
|
|
|
- <el-form style="flex:1; margin-right: -50px;" label="right" size="mini" label-width="150px">
|
|
|
- <el-form-item label="全量时间 :"><span>{{ projectData.allOnlineTime }}</span></el-form-item>
|
|
|
- <el-form-item label="客户端提测时间 :"><span>{{ projectData.clientLaunchTestTime }}</span></el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <el-form style="margin-left: 95px;"><el-form-item label="开发联调时间 :"><span>{{ projectData.joinTestTime }}</span></el-form-item></el-form>
|
|
|
- <div style="display: flex;">
|
|
|
- <el-form style="flex:1; margin-left: 50px;" label="right" size="mini" label-width="150px">
|
|
|
- <el-form-item label="服务端测试完成时间 :"><span>{{ projectData.serviceFinishTestTime }}</span></el-form-item>
|
|
|
- <el-form-item label="服务端提测时间 :"><span>{{ projectData.serviceLaunchTestTime }}</span></el-form-item>
|
|
|
- <el-form-item label="服务端上线时间 :"><span>{{ projectData.serverOnLine }}</span></el-form-item>
|
|
|
- <el-form-item label="产品验收时间 :"><span>{{ projectData.pmTestTime }}</span></el-form-item>
|
|
|
- </el-form>
|
|
|
- <el-form style="flex:1; margin-left: 50px;" label="right" size="mini" label-width="150px">
|
|
|
- <el-form-item label="客户端开始开发时间 :"><span>{{ projectData.clientDevTime }}</span></el-form-item>
|
|
|
- <el-form-item label="客户端测试完成时间 :"><span>{{ projectData.clientFinishTestTime }}</span></el-form-item>
|
|
|
- <el-form-item label="客户端上线时间 :"><span>{{ projectData.clientOnlineTime }}</span></el-form-item>
|
|
|
- <el-form-item label="灰度时间 :"><span>{{ projectData.pmTestTime }}</span></el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </transition>
|
|
|
-
|
|
|
- <div style="margin-top:20px;">
|
|
|
- <div style="font-size:18px;color:#000000;">任务信息
|
|
|
- <el-button type="primary" size="small" style="float:right;margin:-8px 7% 0 0;" @click=" dialogFormTaskVisible = true, changeaddTaskData()">新增</el-button>
|
|
|
- </div><hr>
|
|
|
- <el-table
|
|
|
- :data="listData"
|
|
|
- row-key="id"
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-table-column label="序号" prop="id" sortable align="center" min-width="60">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span>{{ scope.row.id }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="任务名称" prop="name" align="center" min-width="100">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span class="projectStyle" @click="taskInformation = true, getClickId(scope.row, scope.row.id)">{{ scope.row.name }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="状态" prop="statusString" align="center" min-width="60">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span>{{ scope.row.statusString }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="创建时间" prop="createTime" align="center" min-width="150">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span>{{ scope.row.createTime }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="计划上线时间" prop="modifyTime" align="center" min-width="150">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span>{{ scope.row.onlinePlanTime }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="操作" align="center" min-width="150">
|
|
|
- <template slot-scope="{row}">
|
|
|
- <el-button type="primary" size="small" @click=" dialogFormTaskVisible = true, seeTaskData(row)">编辑</el-button>
|
|
|
- <el-button type="primary" size="small" @click="deleteTaskDataOut1(row.id)">删除</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
- <!-- 三页面 -->
|
|
|
- <el-dialog width="80%" :visible.sync="taskInformation">
|
|
|
- <div style="font-size:18px;color:#000000;">任务信息</div><hr>
|
|
|
- <div width="70%" style="padding-top:30px;">
|
|
|
- <div style="padding-bottom:5px; diaplay: flex;">
|
|
|
- <span class="tableproject" style="flex:1;">状态</span>
|
|
|
- <el-select v-model="taskDatas.statusString" style="width: 100px;" size="mini" placeholder="状态" @change="updateaddTaskData(taskDatas)">
|
|
|
- <el-option v-for="item in statusOptionss" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
- </el-select>
|
|
|
- <span class="tableproject" style="flex:1;">优先级</span>
|
|
|
- <el-select v-model="taskDatas.priorityString" style="width: 100px;" size="mini" placeholder="优先级" @change="updateaddTaskData(taskDatas)">
|
|
|
- <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.name" />
|
|
|
- </el-select>
|
|
|
- <el-button type="primary" size="small" @click="createReport(1, taskDatas)">新建提测报告</el-button>
|
|
|
- <el-button type="primary" size="small" @click="createReport(2, taskDatas)">新建日报报告</el-button>
|
|
|
- <el-button type="primary" size="small" @click="createReport(3, taskDatas)">新建准出报告</el-button>
|
|
|
- <el-button type="primary" size="small" @click="createReport(4, taskDatas)">新建bug</el-button>
|
|
|
- <el-button type="primary" size="small" style="float:right;margin-right:7%" @click=" dialogFormTaskVisible = true, queryTaskData(taskDatas)">编辑</el-button>
|
|
|
- </div>
|
|
|
- <hr>
|
|
|
- <div style="display:flex;">
|
|
|
- <el-form style="flex:1; padding-left: 130px;" size="mini" label="right" label-width="110px">
|
|
|
- <el-form-item label="任务名称 :"><span>{{ taskDatas.name }}</span></el-form-item>
|
|
|
- <el-form-item label="PM :"><span>{{ taskDatas.pm }}</span></el-form-item>
|
|
|
- <el-form-item label="RD :"><span>{{ taskDatas.rd }}</span></el-form-item>
|
|
|
- <el-form-item label="QA :"><span>{{ taskDatas.qa }}</span></el-form-item>
|
|
|
- <el-form-item label="打回次数 :"><span>{{ taskDatas.reopen }}</span></el-form-item>
|
|
|
- </el-form>
|
|
|
- <el-form style="flex:1;" label="right" size="mini" label-width="110px">
|
|
|
- <el-form-item label="业务线 :"><span>{{ taskDatas.bizIdString }}</span></el-form-item>
|
|
|
- <el-form-item label="任务类型 :"><span>{{ taskDatas.taskType }}</span></el-form-item>
|
|
|
- <el-form-item label="平台类型 :"><span>{{ taskDatas.typeString }}</span></el-form-item>
|
|
|
- <el-form-item label="是否免测 :"><span>{{ taskDatas.noTestString }}</span></el-form-item>
|
|
|
- <el-form-item label="业务模块 :"><span>{{ taskDatas.businessType }}</span></el-form-item>
|
|
|
-
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <el-form label="right" style="margin-left:30px;" size="mini" label-width="210px">
|
|
|
- <el-form-item label="需求文档 :" style="width:60vw;"><span>{{ taskDatas.mrdUrl }}</span></el-form-item>
|
|
|
- <el-form-item label="技术文档 :" style="width:60vw;"><span>{{ taskDatas.devUrl }}</span></el-form-item>
|
|
|
- <el-form-item label="描述 :" style="width:60vw;"><span>{{ taskDatas.description }}</span></el-form-item>
|
|
|
- <el-form-item label="备注 :" style="width:60vw;"><span>{{ taskDatas.remarks }}</span></el-form-item>
|
|
|
-
|
|
|
- </el-form>
|
|
|
- <el-button type="primary" round size="mini" icon="el-icon-arrow-down" style="cursor: pointer;" @click="show2 = !show2">详细查看</el-button>
|
|
|
- <el-form label="right" size="mini" label-width="110px">
|
|
|
- <transition name="el-zoom-in-top">
|
|
|
- <div v-show="show2" style="display: flex;margin-left:90px; width:93%; padding-top:30px;">
|
|
|
- <div style="flex:1;">
|
|
|
- <el-form-item label="标签 :" :label-width="formLabelWidth"><span>{{ taskDatas.tag }}</span></el-form-item>
|
|
|
- <el-form-item label="需求评审时间 :" :label-width="formLabelWidth"><span>{{ taskDatas.mrdTime }}</span></el-form-item>
|
|
|
- <el-form-item label="计划开始开发时间 :" :label-width="formLabelWidth"><span>{{ taskDatas.startDevPlanTime }}</span></el-form-item>
|
|
|
- <el-form-item label="计划测试完成时间 :" :label-width="formLabelWidth"><span>{{ taskDatas.testFinishPlanTime }}</span></el-form-item>
|
|
|
- <el-form-item label="计划提测时间 :" :label-width="formLabelWidth"><span>{{ taskDatas.launchTestPlanTime }}</span></el-form-item>
|
|
|
- <el-form-item label="计划上线时间 :" :label-width="formLabelWidth"><span>{{ taskDatas.onlinePlanTime }}</span></el-form-item>
|
|
|
- </div>
|
|
|
- <div style="flex:1;">
|
|
|
- <el-form-item label="分组 :" :label-width="formLabelWidth"><span>{{ taskDatas.group }}</span></el-form-item>
|
|
|
- <el-form-item label="关注人 :" prop="focusPenson" :label-width="formLabelWidth"><span>{{ taskDatas.focusPenson }}</span></el-form-item>
|
|
|
- <el-form-item label="实际开始开发时间 :" :label-width="formLabelWidth"><span>{{ taskDatas.startDevRealTime }}</span></el-form-item>
|
|
|
- <el-form-item label="实际测试完成时间 :" :label-width="formLabelWidth"><span>{{ taskDatas.testFinishRealTime }}</span></el-form-item>
|
|
|
- <el-form-item label="冒烟测试完成时间 :" :label-width="formLabelWidth"><span>{{ taskDatas.smokeTestFinishTime }}</span></el-form-item>
|
|
|
- <el-form-item label="实际提测时间 :" :label-width="formLabelWidth"><span>{{ taskDatas.launchTestRealTime }}</span></el-form-item>
|
|
|
- <el-form-item label="实际上线时间 :" :label-width="formLabelWidth"><span>{{ taskDatas.onlineRealTime }}</span></el-form-item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </transition>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <div style="margin-top:20px; width=100%">
|
|
|
- <div style="font-size:18px;color:#000000;" />
|
|
|
- <el-tabs :tab-position="tabPosition" style="height: 200px; width:100%;">
|
|
|
- <el-tab-pane label="提测报告">
|
|
|
- <el-table :data="listTaskDatas" style="width: 100%">
|
|
|
- <el-table-column label="ID" prop="id" align="center" min-width="60">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.id }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="标题" prop="name" align="center" min-width="100">
|
|
|
- <template slot-scope="scope"><span class="projectStyle" @click="queryData(scope.row.id, listTaskDatas)"><a href="#">{{ scope.row.name }}</a></span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="创建时间" prop="gmtCreate" align="center" min-width="150">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.gmtCreate }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="状态" prop="statusString" align="center" min-width="80">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.statusString }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="操作" align="center" min-width="150">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button type="primary" size="small" disabled>查看</el-button>
|
|
|
- <el-button type="primary" size="small" @click="yesCallBack1(2,scope.row.id)">打回</el-button>
|
|
|
- <el-button type="primary" size="small" @click="yesCallBack(1,scope.row.id)">通过</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="日报报告">
|
|
|
- <el-table :data="dailyTestReports" style="width: 100%">
|
|
|
- <el-table-column label="ID" prop="id" align="center" min-width="60">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.id }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="标题" prop="name" align="center" min-width="100">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.reportName }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="创建时间" prop="gmtCreate" align="center" min-width="150">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.gmtCreate }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="准出报告">
|
|
|
- <el-table :data="projectTestReports" style="width: 100%">
|
|
|
- <el-table-column label="ID" prop="id" align="center" min-width="60">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.id }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="标题" prop="name" align="center" min-width="100">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.reportName }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="创建时间" prop="gmtCreate" align="center" min-width="150">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.gmtCreate }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="状态" prop="status" align="center" min-width="80">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.statusString }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="bug报告">
|
|
|
- <el-table :data="projectBug" style="width: 100%">
|
|
|
- <el-table-column label="ID" align="center" min-width="60">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.id }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="标题" align="center" min-width="100">
|
|
|
- <template slot-scope="scope"><span class="projectStyle" @click="queryBugData(scope.row.id, projectBug)"><a href="#">{{ scope.row.bugName }}</a></span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="状态" align="center" min-width="80">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.status }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="当前处理人" align="center" min-width="100">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.currentHandler }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="创建时间" align="center" min-width="150">
|
|
|
- <template slot-scope="scope"><span>{{ scope.row.gmtCreate }}</span></template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </el-tab-pane>
|
|
|
- </el-tabs>
|
|
|
- <div style="height:aotu; text-align:center;">----------------------------------我是底线---------------------------------</div>
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
- <el-dialog title="打回原因" :visible.sync="centerDialogVisible" width="30%" center>
|
|
|
- <el-input v-model="CallBackTheReason" type="textarea" :rows="2" />
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="centerDialogVisible = false">取 消</el-button>
|
|
|
- <el-button type="primary" @click="yesCallBack(2, CallBackTheReason)">确 定</el-button>
|
|
|
- </span>
|
|
|
- </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { projectInit, addProject, deleteProject, updateProject, getProjectData, createTaskData, deleteTaskData, getTaskData, updateTaskList, launchTestUpdate } from '@/api/projectPage.js'
|
|
|
+import { projectInit, addProject, deleteProject, updateProject } from '@/api/projectPage.js'
|
|
|
+import E from 'wangeditor' // 富文本
|
|
|
|
|
|
export default {
|
|
|
name: 'Projects',
|
|
|
data() {
|
|
|
return {
|
|
|
- tt: '',
|
|
|
list: [],
|
|
|
- listData: [],
|
|
|
- listTaskDatas: [],
|
|
|
- projectTestReports: [],
|
|
|
- dailyTestReports: [],
|
|
|
- businessTypeStr: [],
|
|
|
- taskTypeStr: [],
|
|
|
- projectBug: [],
|
|
|
- tabPosition: 'top',
|
|
|
- textarea: '',
|
|
|
- CallBackTheReason: '',
|
|
|
show2: false,
|
|
|
- showYes: true,
|
|
|
- centerDialogVisible: false,
|
|
|
+ test: false,
|
|
|
+ time: false,
|
|
|
titleName: '',
|
|
|
- codeTitle: '',
|
|
|
formLabelWidths: '160px',
|
|
|
formLabelWidth: '150px',
|
|
|
curIndex: 1, // 初始页
|
|
|
- pageSize: 5, // 每页的数据
|
|
|
+ pageSize: 5, // 每页的数据
|
|
|
total: 0,
|
|
|
noTestString: [{ name: '测试', value: 0 }, { name: '自测', value: 1 }],
|
|
|
typeString: [{ name: '服务端', value: 1 }, { name: '客户端', value: 2 }],
|
|
@@ -651,17 +326,16 @@ export default {
|
|
|
bizOptions: [{ name: '万象', value: 101 }, { name: '企业级', value: 100 }, { name: '滴滴代驾', value: 261 }, { name: 'prado', value: 330 }, { name: 'carbo', value: 331 }, { name: '海马', value: 309 }],
|
|
|
userInformation: localStorage.getItem('username'),
|
|
|
userNames: localStorage.getItem('realname'),
|
|
|
- statusShow: '',
|
|
|
- childrenList: '',
|
|
|
parameter: '',
|
|
|
queryLists: {},
|
|
|
queryListData: {},
|
|
|
- projectShow: '',
|
|
|
statusproject: false,
|
|
|
+ platFormString: [], // 平台类型Data
|
|
|
projectData: {},
|
|
|
+ timeInfo: [],
|
|
|
+ testInfo: [],
|
|
|
Arra: [],
|
|
|
bizData: {},
|
|
|
- dialogStatus: '',
|
|
|
bizJson: '',
|
|
|
deleteCode: '',
|
|
|
userData: '',
|
|
@@ -687,22 +361,14 @@ export default {
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
- CallBackStatus: '',
|
|
|
- CallBackId: '',
|
|
|
- datachange: true,
|
|
|
- dialogTableVisible: false,
|
|
|
- dialogFormTaskVisible: false,
|
|
|
- taskInformation: false,
|
|
|
dialogFormVisible: false,
|
|
|
+ dialogFormVisible1: false,
|
|
|
objData: {},
|
|
|
- getId: '',
|
|
|
getName: '',
|
|
|
form: {},
|
|
|
formTask: {},
|
|
|
taskDatas: {},
|
|
|
codeData: '',
|
|
|
- clientTypeEnumList: '',
|
|
|
- serviceTypeEnumList: '',
|
|
|
serviceDataRules: {
|
|
|
notest: [{ required: true, message: '是否免测不能为空', trigger: 'change' }],
|
|
|
type: [{ required: true, message: '平台类型不能为空', trigger: 'change' }],
|
|
@@ -712,14 +378,16 @@ export default {
|
|
|
priorityString: [{ required: true, message: '优先级不能为空', trigger: 'change' }],
|
|
|
stageString: [{ required: true, message: '进展不能为空', trigger: 'change' }],
|
|
|
pm: [{ required: true, message: 'pm不能为空', trigger: 'change' }],
|
|
|
- taskType: [{ required: true, message: '任务类型不能为空', trigger: 'change' }],
|
|
|
- businessType: [{ required: true, message: '业务模块不能为空', trigger: 'change' }]
|
|
|
+ platForm: [{ required: true, message: '平台类型不能为空', trigger: 'change' }]
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
this.getList()
|
|
|
},
|
|
|
+ mounted() {
|
|
|
+ this.wangeditor()
|
|
|
+ },
|
|
|
methods: {
|
|
|
getList() {
|
|
|
this.bizJson = localStorage.getItem('key')
|
|
@@ -732,18 +400,44 @@ export default {
|
|
|
}
|
|
|
projectInit(this.queryListData).then(response => {
|
|
|
this.list = response.data
|
|
|
- this.total = response.total
|
|
|
- this.serviceTypeEnumList = response.query.serviceTypeEnumList
|
|
|
- this.clientTypeEnumList = response.query.clientTypeEnumList
|
|
|
- this.taskTypeStr = response.query.taskAndRoutineEnumList
|
|
|
+ this.total = this.list.length
|
|
|
+ this.platFormString = response.query.platformTypeEnumList
|
|
|
})
|
|
|
},
|
|
|
- // 新增
|
|
|
+
|
|
|
+ wangeditor() {
|
|
|
+ this.testInfo = new E('#testInfo')
|
|
|
+ this.timeInfo = new E('#timeInfo')
|
|
|
+ // this.timeInfo.customConfig.menus = ['bold', 'foreColor', 'italic', 'underline', 'link', 'list', 'justify', 'image', 'link', 'table']
|
|
|
+ this.timeInfo.customConfig.onchange = (html) => { this.timeInfo = html }
|
|
|
+ },
|
|
|
+
|
|
|
+ // 新建项目
|
|
|
changeaddData() {
|
|
|
this.$nextTick(() => {
|
|
|
this.$refs['serviceDataForms'].clearValidate()
|
|
|
})
|
|
|
this.titleName = '新增'
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ this.testInfo.customConfig.uploadImgServer = '/upload-img' // 上传图片到服务器
|
|
|
+ this.testInfo.customConfig.showLinkImg = false // 隐藏网络图片
|
|
|
+ this.testInfo.customConfig.uploadImgHooks = {}
|
|
|
+ this.testInfo.customConfig.linkCheck = function(text, link) {
|
|
|
+ console.log(text) // 插入的文字
|
|
|
+ console.log(link) // 插入的链接
|
|
|
+ return true // 返回 true 表示校验成功
|
|
|
+ // return '验证失败' // 返回字符串,即校验失败的提示信息
|
|
|
+ }
|
|
|
+ this.testInfo.customConfig.menus = ['bold', 'foreColor', 'italic', 'underline', 'list', 'justify', 'table']
|
|
|
+ this.testInfo.customConfig.customUploadImg = function(files, insert) {
|
|
|
+ console.log(files)
|
|
|
+ insert('https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png')
|
|
|
+ }
|
|
|
+ this.testInfo.customConfig.onchange = (html) => { this.timeInfo = html }
|
|
|
+ this.testInfo.create()
|
|
|
+ this.testInfo.txt.html(``)
|
|
|
+ }, 100)
|
|
|
this.form = {}
|
|
|
},
|
|
|
|
|
@@ -751,6 +445,7 @@ export default {
|
|
|
this.$refs['serviceDataForms'].validate((valid) => {
|
|
|
if (valid) {
|
|
|
this.bizData = vel
|
|
|
+ typeof (this.timeInfo) === 'string' ? this.bizData.timeInfo = this.timeInfo : ''
|
|
|
for (var a of this.statusOptionss) {
|
|
|
vel.statusString === a.name ? this.bizData.status = a.value : ''
|
|
|
}
|
|
@@ -761,8 +456,6 @@ export default {
|
|
|
vel.stageString === f.name ? this.bizData.stage = f.value : ''
|
|
|
}
|
|
|
this.bizData.bizId = this.bizJson
|
|
|
- // this.bizData.status = vel.statusString
|
|
|
- // this.bizData.priority = vel.priorityString
|
|
|
} else {
|
|
|
console.log('error submit!!')
|
|
|
return false
|
|
@@ -782,13 +475,42 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
|
|
|
- // 编辑
|
|
|
+ closeDialog() {
|
|
|
+ this.testInfo = new E('#testInfo')
|
|
|
+ this.timeInfo = new E('#timeInfo')
|
|
|
+ // this.testInfo.txt.clear()
|
|
|
+ // this.timeInfo !== '' ? this.timeInfo.txt.clear() : ''
|
|
|
+ this.show2 = false
|
|
|
+ },
|
|
|
+
|
|
|
+ // 项目编辑
|
|
|
changeData(vel) {
|
|
|
this.titleName = '编辑'
|
|
|
- this.form = vel
|
|
|
+ for (var a of this.list) {
|
|
|
+ if (a.id === vel.id) {
|
|
|
+ this.form = a
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (var b of this.platFormString) {
|
|
|
+ b.code === this.projectData.platForm ? this.projectData.platForm = b.name : ''
|
|
|
+ }
|
|
|
+ setTimeout(() => {
|
|
|
+ // this.timeInfo.customConfig.uploadImgServer = '/upload' // 上传图片到服务器
|
|
|
+ // this.timeInfo.customConfig.showLinkImg = false // 隐藏网络图片
|
|
|
+ // this.timeInfo.customConfig.customUploadImg = function(files, insert) {
|
|
|
+ // console.log(files)
|
|
|
+ // insert('File.url')
|
|
|
+ // }
|
|
|
+ this.timeInfo.customConfig.menus = ['bold', 'foreColor', 'italic', 'underline', 'list', 'justify', 'table']
|
|
|
+ this.timeInfo.customConfig.onchange = (html) => { this.timeInfo = html }
|
|
|
+ this.timeInfo.create()
|
|
|
+ this.timeInfo.txt.html(this.form.timeInfo)
|
|
|
+ }, 100)
|
|
|
},
|
|
|
+
|
|
|
updateData(vel) {
|
|
|
this.bizData = vel
|
|
|
+ typeof (this.timeInfo) === 'string' ? this.bizData.timeInfo = this.timeInfo : ''
|
|
|
for (var a of this.statusOptionss) {
|
|
|
vel.statusString === a.name ? this.bizData.status = a.value : ''
|
|
|
}
|
|
@@ -815,8 +537,7 @@ export default {
|
|
|
this.objData = { projectInfo: this.bizData, user: this.userData }
|
|
|
updateProject(this.objData).then(response => {
|
|
|
if (response.code === 200) {
|
|
|
- this.dialogFormVisible = false
|
|
|
- this.dialogTableVisible = false
|
|
|
+ this.dialogFormVisible1 = false
|
|
|
this.bizData = {}
|
|
|
this.successFun()
|
|
|
this.getList()
|
|
@@ -825,13 +546,15 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+
|
|
|
+ // 项目删除提示
|
|
|
deleteCodeData(e) {
|
|
|
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
}).then(() => {
|
|
|
- this.handleDelete(e)
|
|
|
+ this.handleDelete(e) // 点击确认删除
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
message: '删除成功!'
|
|
@@ -844,7 +567,7 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
|
|
|
- // 删除
|
|
|
+ // 项目删除
|
|
|
handleDelete(e) {
|
|
|
this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
deleteProject(e, this.userData).then(response => {
|
|
@@ -873,139 +596,10 @@ export default {
|
|
|
this.list = response.data
|
|
|
})
|
|
|
},
|
|
|
- // 项目页面
|
|
|
- projectShowData(vel, ele) {
|
|
|
- this.parameter = vel
|
|
|
- this.bizData = ele
|
|
|
- this.changeData(this.bizData)
|
|
|
- getProjectData(vel, this.bizData).then(response => {
|
|
|
- this.projectData = response.data
|
|
|
- this.listData = response.data.taskInfoDOList
|
|
|
- })
|
|
|
- },
|
|
|
- deleteTaskDataOut1(e) {
|
|
|
- this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
- }).then(() => {
|
|
|
- this.deleteTaskDataOut(e)
|
|
|
- this.$message({ type: 'success', message: '删除成功!' })
|
|
|
- }).catch(() => {
|
|
|
- this.$message({ type: 'info', message: '已取消删除' })
|
|
|
- })
|
|
|
- },
|
|
|
- // 任务删除
|
|
|
- deleteTaskDataOut(e) {
|
|
|
- this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
- deleteTaskData(e, this.userData).then(response => {
|
|
|
- if (response.code === 200) {
|
|
|
- this.getList()
|
|
|
- this.successFun()
|
|
|
- this.dialogTableVisible = false
|
|
|
- } else {
|
|
|
- this.errorFun(response.msg)
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- // 任务查看
|
|
|
- seeTaskData(vel) {
|
|
|
- this.showYes = false
|
|
|
- this.formTask = vel
|
|
|
- this.queryTaskData(vel)
|
|
|
- },
|
|
|
- // 任务编辑
|
|
|
- queryTaskData(ele) {
|
|
|
- this.showYes = true
|
|
|
- this.codeTitle = '任务编辑'
|
|
|
- ele.type === '服务端' ? this.businessTypeStr = this.clientTypeEnumList : this.businessTypeStr = this.serviceTypeEnumList
|
|
|
- this.formTask = ele
|
|
|
- },
|
|
|
- // 任务新增
|
|
|
- changeaddTaskData() {
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$refs['serviceTaskDataForms'].clearValidate()
|
|
|
- })
|
|
|
- this.showYes = true
|
|
|
- this.codeTitle = '任务新增'
|
|
|
- this.formTask = {}
|
|
|
- },
|
|
|
- createaddTaskData(vel) {
|
|
|
- this.$refs['serviceTaskDataForms'].validate((valid) => {
|
|
|
- if (valid) {
|
|
|
- this.formTask = vel
|
|
|
- this.formTask.bizId = vel.bizIdString
|
|
|
- this.formTask.priority = vel.priorityString
|
|
|
- this.formTask.status = vel.statusString
|
|
|
- this.formTask.stage = vel.stageString
|
|
|
- this.formTask.projectId = this.parameter
|
|
|
- } else {
|
|
|
- console.log('error submit!!')
|
|
|
- return false
|
|
|
- }
|
|
|
-
|
|
|
- this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
- this.objData = { taskInfo: this.formTask, user: this.userData }
|
|
|
- createTaskData(this.objData).then(response => {
|
|
|
- if (response.code === 200) {
|
|
|
- this.getList()
|
|
|
- this.successFun()
|
|
|
- this.dialogTableVisible = false
|
|
|
- this.dialogFormTaskVisible = false
|
|
|
- } else {
|
|
|
- this.errorFun(response.msg)
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
- },
|
|
|
|
|
|
- // 获取任务点击id
|
|
|
- getClickId(ele, e) {
|
|
|
- this.formTask = ele
|
|
|
- this.queryTaskData(this.formTask)
|
|
|
- getTaskData(e).then(response => {
|
|
|
- this.taskDatas = response.data
|
|
|
- this.listTaskDatas = response.data.launchTestInfoList
|
|
|
- this.listTaskDatas.statusString = this.taskDatas.statusString
|
|
|
- this.projectTestReports = response.data.projectTestReports
|
|
|
- this.projectTestReports.statusString = this.taskDatas.statusString
|
|
|
- this.dailyTestReports = response.data.dailyTestReports
|
|
|
- this.projectBug = response.data.bugBaseInfoDOS
|
|
|
- // this.dailyTestReports.statusString = this.taskDatas.statusString
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- updateaddTaskData(vel) {
|
|
|
- this.formTask = vel
|
|
|
- this.formTask.projectId = this.parameter
|
|
|
- // this.formTask.priority = vel.priority
|
|
|
- for (var e of this.bizOptions) {
|
|
|
- // vel.bizIdString === e.name ? this.formTask.bizId = e.value : ''
|
|
|
- typeof (vel.bizIdString) === 'number' ? this.formTask.bizId = vel.bizIdString : vel.bizIdString === e.name ? this.formTask.bizId = e.value : ''
|
|
|
- }
|
|
|
- for (var ele of this.statusOptionss) {
|
|
|
- typeof (vel.statusString) === 'number' ? this.formTask.status = vel.statusString : vel.statusString === ele.name ? this.formTask.status = ele.value : ''
|
|
|
- }
|
|
|
- for (var el of this.statusOptionss) {
|
|
|
- typeof (vel.stageString) === 'number' ? this.formTask.stage = vel.stageString : vel.stageString === el.name ? this.formTask.stage = el.value : ''
|
|
|
- }
|
|
|
- for (var els of this.priorityStrings) {
|
|
|
- typeof (vel.priorityString) === 'number' ? this.formTask.priority = vel.priorityString : vel.priorityString === els.name ? this.formTask.priority = els.value : ''
|
|
|
- }
|
|
|
- this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
- this.objData = { taskInfo: this.formTask, user: this.userData }
|
|
|
- updateTaskList(this.objData).then(response => {
|
|
|
- if (response.code === 200) {
|
|
|
- this.dialogFormTaskVisible = false
|
|
|
- this.taskInformation = false
|
|
|
- this.dialogTableVisible = false
|
|
|
- this.queryTaskData(this.formTask)
|
|
|
- this.getList()
|
|
|
- this.successFun()
|
|
|
- } else {
|
|
|
- this.errorFun(response.msg)
|
|
|
- }
|
|
|
- })
|
|
|
+ // 项目详情页面跳转
|
|
|
+ projectShowData(e, ele) {
|
|
|
+ this.$router.push({ path: '/Platform/presentation/projectQuery', query: { id: e }})
|
|
|
},
|
|
|
handleSizeChange(size) {
|
|
|
this.pageSize = size
|
|
@@ -1015,97 +609,27 @@ export default {
|
|
|
this.curIndex = curIndex
|
|
|
this.getList()
|
|
|
},
|
|
|
- createReport(e, ele) {
|
|
|
- this.codeData = { id: ele.id, name: ele.name }
|
|
|
- if (ele.typeString === '客户端') {
|
|
|
- switch (e) {
|
|
|
- case 1:
|
|
|
- this.$router.push({ path: '/Platform/presentation/PresentReport', query: { id: ele.id }})
|
|
|
- break
|
|
|
- case 2:
|
|
|
- this.$router.push({ path: '/Platform/presentation/DailyNewsAdded', query: { id: ele.id }})
|
|
|
- break
|
|
|
- case 3:
|
|
|
- this.$router.push({ path: '/Platform/presentation/ClientAcceptance', query: { id: ele.id }})
|
|
|
- break
|
|
|
- case 4:
|
|
|
- this.$router.push({ path: '/Platform/defectManagement', query: { id: ele.id, code: 4 }})
|
|
|
- break
|
|
|
- }
|
|
|
- } else {
|
|
|
- switch (e) {
|
|
|
- case 1:
|
|
|
- this.$router.push({ path: '/Platform/presentation/presentationReport', query: { id: ele.id }})
|
|
|
- break
|
|
|
- case 2:
|
|
|
- this.$router.push({ path: '/Platform/presentation/DailyNewsAdded', query: { id: ele.id }})
|
|
|
- break
|
|
|
- case 3:
|
|
|
- this.$router.push({ path: '/Platform/presentation/Acceptance', query: { id: ele.id }})
|
|
|
- break
|
|
|
- case 4:
|
|
|
- this.$router.push({ path: '/Platform/defectManagement', query: { id: ele.id, code: 4 }})
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
successFun() {
|
|
|
this.$notify({ title: 'Success', message: 'Created Successfully', type: 'success', duration: 2000 })
|
|
|
},
|
|
|
errorFun(e) {
|
|
|
this.$notify({ title: 'Failed', message: e, type: 'error', duration: 2000 })
|
|
|
- },
|
|
|
- yesCallBack(e, ele) {
|
|
|
- this.centerDialogVisible = false
|
|
|
- if (e === 1) {
|
|
|
- this.tt = { status: 1, id: ele }
|
|
|
- } else {
|
|
|
- this.tt = { status: 2, id: this.CallBackId, launchRepulseInfo: ele }
|
|
|
- }
|
|
|
- this.userData = { id: '', ename: this.userInformation, name: this.userNames }
|
|
|
- this.objData = { launchTestInfo: this.tt, user: this.userData }
|
|
|
- launchTestUpdate(this.objData).then(res => {
|
|
|
- res.code === 200 ? this.successFun() : this.errorFun(res.msg)
|
|
|
- })
|
|
|
- },
|
|
|
- clickType(e) {
|
|
|
- // this.formTask.businessType = ''
|
|
|
- e === 1 ? this.businessTypeStr = this.serviceTypeEnumList : this.businessTypeStr = this.clientTypeEnumList
|
|
|
- },
|
|
|
- yesCallBack1(e, ele) {
|
|
|
- this.centerDialogVisible = true
|
|
|
- this.CallBackStatus = e
|
|
|
- this.CallBackId = ele
|
|
|
- },
|
|
|
- queryData(e, ele) {
|
|
|
- for (var val of ele) {
|
|
|
- if (e === val.id) {
|
|
|
- this.mub = val
|
|
|
- }
|
|
|
- }
|
|
|
- this.$router.push({ path: '/Platform/presentation/acceptTheReport', query: { data: this.mub }})
|
|
|
- },
|
|
|
- queryBugData(e, ele) {
|
|
|
- // location.href = 'http://localhost:9528/#/Platform/presentation/defectManageQuery?id=' + e
|
|
|
- for (var val of ele) {
|
|
|
- if (e === val.id) {
|
|
|
- this.mub = val
|
|
|
- }
|
|
|
- }
|
|
|
- this.$router.push({ path: '/Platform/presentation/defectManageQuery', query: { data: this.mub }})
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
-<style>
|
|
|
-.projectStyle{
|
|
|
- color: blue;
|
|
|
- cursor: pointer;
|
|
|
-}
|
|
|
-.tableproject{
|
|
|
- display:inline-block;
|
|
|
- width:90px;
|
|
|
- text-align: right;
|
|
|
-}
|
|
|
+<style scoped>
|
|
|
+ .toolbar {
|
|
|
+ border: 2px solid #ccc;
|
|
|
+ }
|
|
|
+ .text {
|
|
|
+ font-size: 15px;
|
|
|
+ color: #606266;
|
|
|
+ border: 2px solid #ccc;
|
|
|
+ height: auto;
|
|
|
+ }
|
|
|
+ .tag {
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
</style>
|