123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813 |
- <template>
- <div style="background-color:#F2F3F6;display:flex;align-items: center;justify-content: center;">
- <el-container>
- <el-header class="bgborder" style=" margin: 1%;height: 7vh;display: flex; justify-content: space-between; align-items: center;">
- <div style="float: left;">
- <el-tooltip class="item" effect="dark" content="爱啥啥" placement="bottom">
- <span style="font-weight: 600;"><span style="background: red;">未知</span>任务:{{ task_form.name }}</span>
- </el-tooltip>
- <el-dropdown @command="handleCommand">
- <el-button size="mini" type="primary" plain class="el-dropdown-link drop_down" style="cursor: pointer;">{{ task_form.statusString }}<i class="el-icon-arrow-down el-icon--right" /></el-button>
- <el-dropdown-menu slot="dropdown" align="center">
- <el-dropdown-item v-for="item in taskStatus" :key="item.value" :command="{value:item.code,label:item.msg}">{{ item.msg }}</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- </div>
- <span style="float: right;">
- <el-button size="mini" type="primary" plain @click="centerDialogVisible_task = true">删除任务</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 @click.native="createReport(4, task_form)">新建Bug</el-dropdown-item>
- <el-dropdown-item @click.native="createReport(1, task_form)">新建提测报告</el-dropdown-item>
- <el-dropdown-item @click.native="createReport(2, task_form)">新建测试报告</el-dropdown-item>
- <el-dropdown-item @click.native="createReport(3, task_form)">新建准出报告</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- </span>
- </el-header>
- <el-container>
- <el-aside class="bgborder" style=" margin:0 1%;minWidth: 55%;">
- <div style="margin: 5% 5% 0 5%; font-weight: 600; white-space: nowrap;">
- <b style="color: #409EFF;margin: 0 0.5%; font-size: 20px; ">I</b>数据统计
- </div>
- <div style="display: flex; justify-content: space-between; align-items: center;">
- <span style="text-align: center; margin-left: 8%; border-right:1px solid #BBBBBB; padding-right: 8%;">
- <p style="width: 70px;">bug数量</p>
- <p style="font-size: 70px;">{{ totalCount }}</p>
- <p v-show="fixInFutureCount <= 0? false: true">
- <span style="color: #F56C6C; width: 100px;">以后修复{{ fixInFutureCount }}个</span>
- </p>
- </span>
- <div id="div1" style="width:100%;height:300px;margin-bottom: 3%;" />
- </div>
- </el-aside>
- <el-container>
- <el-main class="bgborder form_e" style="overflow: hidden;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>
- <el-form label-position="left" style="margin: 0 8%" :model="task_form">
- <el-row :gutter="20">
- <el-col :span="19">
- <el-form-item label="所属项目:" label-width="90px" style="word-break: break-all;">{{ task_form.projectName }}</el-form-item>
- </el-col>
- <el-col :span="1">
- <el-button size="mini" type="primary" @click="open_created(task_form.describe)">修 改</el-button>
- </el-col>
- </el-row>
- <el-form-item label="所属需求:" label-width="90px">{{ task_form.requireName }}</el-form-item>
- <el-form-item label="业务线/平台/模块:" label-width="150px">{{ task_form.bizIdString }} / {{ task_form.typeString }} / {{ task_form.clientTypeString }}</el-form-item>
- <el-form-item label="是否免测:" label-width="90px">{{ task_form.noTestString }}</el-form-item>
- <el-form-item label="开发负责人:" label-width="100px">{{ task_form.rdObject.name }}</el-form-item>
- <el-form-item label="测试负责人:" label-width="100px">{{ task_form.qaObject.name }}</el-form-item>
- <el-form-item label="涉及的客户端:" label-width="120px">{{ task_form.involveAppString }}</el-form-item>
- <el-form-item label="技术文档:" label-width="90px" style="word-break: break-all;">{{ task_form.devUrl }}</el-form-item>
- </el-form>
- </el-main>
- </el-container>
- </el-container>
- <el-header class="bgborder" style="margin: 1%;height: auto; padding: 0;">
- <div style="margin: 3%; font-weight: 600; white-space: nowrap;">
- <b style="color: #409EFF;margin: 0 0.5%; font-size: 20px; ">I</b>排期事件
- </div>
- <el-row :gutter="20" style="margin: 2% 3%">
- <el-col :span="12">
- <el-button size="mini" type="primary" plain icon="el-icon-plus" @click="add_Event">添加事件</el-button>
- </el-col>
- <el-col :span="12" :push="7">
- <el-button-group>
- <el-button size="mini" type="primary" plain @click="GanttChart(2)">甘特图</el-button>
- <el-button size="mini" type="primary" plain @click="GanttChart(1)">列 表</el-button>
- </el-button-group>
- </el-col>
- </el-row>
- <div>
- <div v-show="Gantt">甘特图 就是这个 还没写,怎么样,</div>
- <el-table v-show="table_show" :data="arr_event" style="width: 100%;" size="mini" :header-cell-style="{ background: '#6AB4FF', color: '#FFFFFF' }" show-overflow-tooltip="true">
- <el-table-column label="事件类型" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.name }}</template>
- </el-table-column>
- <el-table-column label="描述" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.desc }}</template>
- </el-table-column>
- <el-table-column label="排期" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.startTime }} - {{ scope.row.endTime }}</template>
- </el-table-column>
- <el-table-column label="人员" min-width="100" align="center">
- <template slot-scope="scope">
- <div v-for="item of scope.row.peopleObject" :key="item.idapId">
- {{ item.name }}
- </div>
- </template>
- </el-table-column>
- <el-table-column label="操作" min-width="100" align="center">
- <template slot-scope="scope">
- <el-button size="mini" type="primary" plain @click="event_query(scope.row.id)">编辑</el-button>
- <el-button size="mini" type="primary" plain>删除</el-button>
- </template>
- </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>排期汇总:{{ tiem_date.startTime }} ~ {{ tiem_date.endTime }}</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>实际提测时间:{{ task_form.launchTestRealTime }}</div></el-col>
- <el-col :span="8"><div>实际准出时间:{{ task_form.testFinishRealTime }}</div></el-col>
- <el-col :span="8"><div>实际上线完成时间:{{ task_form.onlineRealTime }}</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>预计上线版本:{{ task_form.preOnlineVersion }}</div></el-col>
- <!-- <el-col :span="8"><div>实际上线版本:<span>{{ task_form.value }}</span></div></el-col> -->
- </el-row>
- </div>
- </el-header>
- <el-footer class="footer" style=" height: auto;">
- <span style="text-align: right; margin: 1% 0 -3% 0;float:right;">
- <el-button size="mini" type="primary" plain icon="el-icon-plus" @click="createReport(4, task_form)">提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 @click.native="createReport(1, task_form)">新建提测报告</el-dropdown-item>
- <el-dropdown-item @click.native="createReport(2, task_form)">新建测试报告</el-dropdown-item>
- <el-dropdown-item @click.native="createReport(3, task_form)">新建准出报告</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- </span>
- <el-tabs tab-position="top" @tab-click="handleClick">
- <el-tab-pane label="Bug" style="position: relative;">
- <div style="padding: 1% 0;display: flex; justify-content: space-start; align-items: center;border-top: 1px solid #E9E9E9;">
- <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="bugBaseInfoDOList" style="width: 100%;" size="mini" :header-cell-style="{ background: '#6AB4FF', color: '#FFFFFF' }" show-overflow-tooltip="true">
- <el-table-column label="标题名称" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.teamName }}</template>
- </el-table-column>
- <el-table-column label="状态" min-width="100" align="center">
- <!-- <template slot-scope="scope"> -->
- <el-dropdown @command="handleCommand">
- <el-button size="mini" type="primary" plain class="el-dropdown-link drop_down" style="cursor: pointer;">{{ task_form.statusString }}<i class="el-icon-arrow-down el-icon--right" /></el-button>
- <el-dropdown-menu slot="dropdown" align="center">
- <el-dropdown-item v-for="item in taskStatus" :key="item.value" :command="{value:item.code,label:item.msg}">{{ item.msg }}</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- <!-- {{ scope.row.teamName }} -->
- <!-- </template> -->
- </el-table-column>
- <el-table-column label="提报人" min-width="100" align="center">
- <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>
- </el-table-column>
- <el-table-column label="提报日期" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.teamName }}</template>
- </el-table-column>
- </el-table>
- <div 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" />
- </div>
- </el-tab-pane>
- <el-tab-pane label="提测报告" style="overflow: auto;width: 100%;">
- <el-table :data="launchTestInfoDOS" style="width: 100%;margin:2% 0;" size="mini" :header-cell-style="{ background: '#6AB4FF', color: '#FFFFFF' }" show-overflow-tooltip="true">
- <el-table-column label="ID" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.id }}</template>
- </el-table-column>
- <el-table-column label="标题名称" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.name }}</template>
- </el-table-column>
- <el-table-column label="状态" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.statusString }}</template>
- </el-table-column>
- <el-table-column label="创建日期" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.gmtCreate }}</template>
- </el-table-column>
- <el-table-column label="操作" align="center" width="300">
- <template slot-scope="scope">
- <div>
- <el-button size="mini" type="primary" plain @click="pass(1,scope.row.id)">通过</el-button>
- <el-button size="mini" type="danger" plain @click="back(2,scope.row.id)">打回</el-button>
- <el-dialog title="打回原因" :visible.sync="dialog_launchTestInfoDOS" width="30%">
- <el-input v-model="CallBackTheReason" type="textarea" :rows="3" />
- <span slot="footer" class="dialog-footer">
- <el-button type="primary" size="mini" @click="passOrBackSend()">确 定</el-button>
- <el-button type="danger" size="mini" @click="dialog_launchTestInfoDOS = false">取 消</el-button>
- </span>
- </el-dialog>
- </div>
- </template>
- </el-table-column>
- </el-table>
- </el-tab-pane>
- <el-tab-pane label="测试报告" style="overflow: auto;width: 100%;">
- <el-table :data="dailyTestReports" style="width: 100%;margin:2% 0;" size="mini" :header-cell-style="{ background: '#6AB4FF', color: '#FFFFFF' }" show-overflow-tooltip="true">
- <el-table-column label="ID" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.id }}</template>
- </el-table-column>
- <el-table-column label="标题名称" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.reportName }}</template>
- </el-table-column>
- <el-table-column label="创建日期" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.gmtCreate }}</template>
- </el-table-column>
- </el-table>
- </el-tab-pane>
- <el-tab-pane label="准出报告" style="overflow: auto;width: 100%;">
- <el-table :data="projectTestReportDOS" style="width: 100%;margin:2% 0;" size="mini" :header-cell-style="{ background: '#6AB4FF', color: '#FFFFFF' }" show-overflow-tooltip="true">
- <el-table-column label="ID" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.id }}</template>
- </el-table-column>
- <el-table-column label="标题名称" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.reportName }}</template>
- </el-table-column>
- <el-table-column label="状态" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.statusString }}</template>
- </el-table-column>
- <el-table-column label="创建日期" min-width="100" align="center">
- <template slot-scope="scope">{{ scope.row.gmtCreate }}</template>
- </el-table-column>
- </el-table>
- </el-tab-pane>
- <el-tab-pane label="评论">
- <p v-show="commentShow" style="color:#9B9B9B">还没有评论,快来评论吧!</p>
- <div v-for="(item, value) of commentTxt" :key="value">{{ item.commentInfo.name }} <span style="color:#9B9B9B">{{ item.commentInfo.gmtCreater }}</span>
- <p>{{ item.commentInfo.content }}</p></div>
- <el-input v-model="content" rows="6" type="textarea" placeholder="请输入评论内容..." show-word-limit />
- <p style="text-align: right;">
- <el-button size="mini" type="primary" plain>取消</el-button>
- <el-button size="mini" type="primary" plain @click="comment(content)">发送</el-button>
- </p>
- </el-tab-pane>
- </el-tabs>
- </el-footer>
- </el-container>
- <el-dialog :visible.sync="centerDialogVisible" width="30%" center>
- <div align="center">确定要删除此项目吗?</div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="centerDialogVisible = false">取 消</el-button>
- <el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
- </span>
- </el-dialog>
- <el-dialog title="新建事件" :visible.sync="dialogFormVisible">
- <el-form ref="form" :model="form" :rules="form_rules" :label-width="formLabelWidth">
- <el-form-item label="事件类型" prop="type">
- <el-select v-model="form.type" :loading="loading" clearable placeholder="请选择" style="width: 100%">
- <el-option v-for="item in taskScheduleEvent" :key="item.code" :label="item.msg" :value="item.code" />
- </el-select>
- </el-form-item>
- <el-form-item label="事件描述">
- <el-input v-model="form.desc" autocomplete="off" placeholder="请输入描述信息" />
- </el-form-item>
- <el-form-item label="排期" prop="date_start">
- <el-date-picker v-model="form.date_start" type="daterange" range-separator="~" start-placeholder="请选择开始日期" end-placeholder="请选择结束日期" />
- <el-checkbox v-model="form.noHoliday">排除周末</el-checkbox>
- </el-form-item>
- <el-form-item label="参与人员">
- <el-select v-model="form.peoples" multiple filterable remote reserve-keyword placeholder="创建人" :remote-method="remoteMethod" :loading="loading" style="width: 100%">
- <el-option v-for="item in options" :key="item.idap" :label="item.name" :value="test2(item, 0)">
- <span style="float: left">{{ item.name }}</span>
- <span style="float: right; color: #8492a6; font-size: 13px,">{{ item.idap }}</span>
- </el-option>
- </el-select>
- </el-form-item>
- </el-form>
- <div slot="footer" class="dialog-footer">
- <el-button @click="dialogFormVisible = false">取 消</el-button>
- <el-button type="primary" @click="even === '新建事件'? event_created(form):event_update(form)">确 定</el-button>
- </div>
- </el-dialog>
- <!-- 删除 -->
- <el-dialog :visible.sync="centerDialogVisible_task" width="30%" center>
- <div align="center">确定要删除<span style="color:red;"> {{ task_form.name }} </span> 的任务吗?</div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="centerDialogVisible_task = false">关 闭</el-button>
- <el-button type="primary" @click="task_delete(task_form.id )">确 定</el-button>
- </span>
- </el-dialog>
- <!-- 弹窗 -->
- <openDialog v-if="dialog_open" ref="task_createdUpdata" />
- </div>
- </template>
- <script>
- import { taskGet, memberQueryMemberInfoByIDAPorName, bugGetBugStatusMapInfo, configShowTaskEnum, ScheduleCreate, tasktaskDelete, taskUpdate, ScheduleUpdate, commentCreate, commentList } from '@/api/taskIndex' // ajax
- import openDialog from '@/views/projectManage/dialog_vue'
- import echarts from 'echarts'
- export default {
- components: {
- openDialog
- },
- data() {
- return {
- dialog_open: false,
- task_form: {
- statusString: '未开始',
- describe: '',
- qaObject: {
- name: ''
- },
- rdObject: {
- name: ''
- }
- },
- CallBackTheReason: '', // 打回原因
- content: '', // 评论
- comment_content: '', // 评论内容
- commentTxt: [],
- commentShow: true, // 评论为空默认显示
- dialog_launchTestInfoDOS: false, // 打回弹窗
- currentPage: 0,
- tiem_date: { // 排期汇总
- startTime: '',
- endTime: ''
- },
- userInformation: localStorage.getItem('username'),
- userNames: localStorage.getItem('realname'),
- form_rules: {
- type: [{ required: true, message: '事件类型不能为空', trigger: 'blur' }],
- date_start: [{ required: true, message: '排期不能为空', trigger: 'blur' }]
- },
- arr_event: [], // 事件table
- options: [], // 人员信息
- bugBaseInfoDOList: [], // bug
- launchTestInfoDOS: [], // 提测
- dailyTestReports: [], // 测试
- projectTestReportDOS: [], // 准出
- loading: false,
- Addition: false,
- Addition1: false,
- Addition2: false,
- table_show: true, // 表格(显示)
- Gantt: false, // 甘特图(显示)
- textarea: '', // 项目总目标
- taskScheduleEvent: [], // 事件类型
- total: 0,
- show2: true,
- describe: false,
- describe1: false,
- dialogFormVisible: false,
- centerDialogVisible: false,
- centerDialogVisible_task: false, // 任务dialog
- options1: [],
- even: '', // 添加事件
- form: {
- name: '',
- region: '',
- date1: '',
- date2: '',
- delivery: false,
- type: [],
- resource: '',
- desc: ''
- },
- formLabelWidth: '100px',
- project_Milepost: [
- {
- name: '第一阶段',
- date: '2019/12/06',
- code: '你丹江口市内存卡就是你的错'
- }
- ],
- tasktId: '',
- echarts_name: [], // echarts_name
- echarts_value: [], // echats_value
- fixInFutureCount: '', // 已延期
- totalCount: '', // bug总数
- test: {},
- taskStatus: []
- }
- },
- created() {
- this.get_list()
- },
- mounted() {
- this.get_echarts()
- },
- methods: {
- test2(item, e) { // 获取团队人员信息
- if (typeof this.test[item.idap] === 'undefined') {
- item.role = e
- this.test[item.idap] = item
- }
- return item.idap
- },
- get_list() {
- var url = window.location.href // 获取url中"?"符后的字
- this.taskId = url.split('?id=')
- configShowTaskEnum().then(res => {
- this.taskScheduleEvent = res.data.taskScheduleEvent
- this.taskStatus = res.data.taskStatus
- })
- taskGet(this.taskId[1]).then(res => {
- this.task_form = res.data
- this.total = res.total
- this.tiem_date.startTime = res.data.scheduleListResponse.startTime // 开始时间
- this.tiem_date.endTime = res.data.scheduleListResponse.endTime // 结束时间
- this.arr_event = res.data.scheduleListResponse.schedulDetailResponseList
- this.table_loading = false
- this.launchTestInfoDOS = res.data.launchTestInfoDOS // 提测
- this.dailyTestReports = res.data.dailyTestReports // 测试
- this.projectTestReportDOS = res.data.projectTestReportDOS // 准出
- this.task_form.bugBaseInfoDOList !== null ? this.bugBaseInfoDOList = res.date.bugBaseInfoDOList : this.bugBaseInfoDOList = [] // bug
- })
- commentList({ type: 3, joinId: this.taskId[1] }).then(res => {
- this.commentTxt = res.data
- this.commentTxt !== '' ? this.commentShow = false : this.commentShow = true
- })
- },
- open_created(e) { // 打开弹窗
- var url = window.location.href // 获取url中"?"符后的字串
- this.taskId = url.split('?id=')
- this.dialog_open = true
- this.$nextTick(() => { this.$refs.task_createdUpdata.init(3, this.taskId) })
- },
- get_echarts() {
- bugGetBugStatusMapInfo({ taskId: this.taskId[1] }).then(res => {
- this.fixInFutureCount = res.data.fixInFutureCount
- this.totalCount = res.data.totalCount
- res.data.statusInfoList.map(item => {
- this.echarts_name.push(item.statusString)
- this.echarts_value.push(item.count)
- })
- })
- setTimeout(() => {
- var myChart = echarts.init(document.getElementById('div1'))
- myChart.setOption({
- xAxis: {
- type: 'category',
- data: this.echarts_name,
- axisLine: { show: true, lineStyle: { type: 'dashed' }}
- },
- yAxis: [{ gridIndex: 0, axisTick: { show: false }, axisLabel: { show: false }, splitLine: { show: false }, axisLine: { show: false }}],
- series: [
- {
- data: this.echarts_value,
- type: 'bar',
- itemStyle: { normal: { color: '#409EFF' }},
- label: {
- show: true,
- position: 'inside'
- }
- }]
- })
- window.onresize = myChart.resize
- }, 500)
- },
- handleCommand(command) {
- this.task_form.statusString = command.label
- var taskInfoDO = this.task_form
- taskInfoDO.status = command.value
- var user = { name: this.userNames, ename: this.userInformation, id: '' }
- taskUpdate({ taskInfoDO, user }).then(res => {
- if (res.code === 200) {
- this.$message({ message: res.msg, type: 'success', duration: 1000, offset: 150 })
- }
- })
- },
- event_query(e) { // 编辑事件(添加事件)
- var eventID = {}
- this.arr_event.map(item => {
- item.id === e ? eventID = item : ''
- })
- this.dialogFormVisible = true
- this.form = eventID
- this.$set(this.form, 'date_start', [eventID.startTime, eventID.endTime])
- this.form.noHoliday === 1 ? this.form.noHoliday = false : this.form.noHoliday = true
- console.log(this.form, 'form')
- },
- blur_describe(e) {
- this.describe = false
- this.describe1 = true
- this.$set(this.task_form, 'describe', e)
- },
- click_b() {
- console.log('v')
- },
- remoteMethod(query) { // 人员查询
- if (query !== '') {
- this.loading = true
- setTimeout(() => {
- this.loading = false
- memberQueryMemberInfoByIDAPorName({ memberIDAP: query }).then(res => {
- this.options = res.data
- })
- }, 200)
- } else {
- this.options = []
- }
- },
- handleClick(tab, event) {
- console.log(tab, event)
- },
- task_delete(e) { // 删除任务
- var user = { name: this.userNames, ename: this.userInformation, id: '' }
- tasktaskDelete(user, e).then(res => {
- if (res.code === 200) {
- this.$router.push({ name: '任务', query: {}})
- this.$message({ message: res.msg, type: 'success', duration: 1000, offset: 150 })
- } else {
- this.$message({ message: res.msg + '请联系开发人员', type: 'error', duration: 1000, offset: 150 })
- }
- })
- },
- event_update(e) { // 编辑事件
- this.even = '编辑事件'
- this.$refs['form'].validate((valid) => {
- if (valid) {
- var schedule = e
- e.noHoliday === true ? schedule.noHoliday = 0 : schedule.noHoliday = 1
- schedule.startTime = e.date_start[0]
- schedule.endTime = e.date_start[1]
- schedule.taskId = Number(this.taskId[1])
- this.taskScheduleEvent.map(item => {
- item.code === e.type ? schedule.name = item.msg : ''
- })
- var user = { name: this.userNames, ename: this.userInformation, id: '' }
- ScheduleUpdate({ schedule, user }).then(res => {
- if (res.code === 200) {
- this.dialogFormVisible = false
- this.$message({ message: res.msg, type: 'success', duration: 1000, offset: 150 })
- this.get_list()
- }
- })
- }
- })
- },
- event_created(e) { // 添加事件
- this.even = '新建事件'
- this.$refs['form'].validate((valid) => {
- if (valid) {
- var schedule = e
- e.noHoliday === true ? schedule.noHoliday = 0 : schedule.noHoliday = 1
- schedule.startTime = e.date_start[0]
- schedule.endTime = e.date_start[1]
- schedule.taskId = Number(this.taskId[1])
- this.taskScheduleEvent.map(item => {
- item.code === e.type ? schedule.name = item.msg : ''
- })
- var user = { name: this.userNames, ename: this.userInformation, id: '' }
- ScheduleCreate({ schedule, user }).then(res => {
- if (res.code === 200) {
- this.dialogFormVisible = false
- this.$message({ message: res.msg, type: 'success', duration: 1000, offset: 150 })
- this.get_list()
- }
- })
- }
- })
- },
- comment(e) {
- this.content = ''
- this.commentShow = false
- var commentInfo = {
- joinId: this.taskId[1],
- content: e,
- type: 3,
- fatherId: 0,
- name: this.userNames,
- email: this.userInformation
- }
- var user = { name: this.userNames, ename: this.userInformation, id: '' }
- commentCreate({ commentInfo, user }).then(res => {
- if (res.code === 200) {
- this.get_list()
- this.$message({ message: res.msg, type: 'success', duration: 1000, offset: 150 })
- }
- })
- },
- 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
- }
- },
- GanttChart(e) {
- switch (e) {
- case 1:
- this.table_show = true
- this.Gantt = false
- break
- case 2:
- this.table_show = false
- this.Gantt = true
- break
- }
- },
- add_Event() { // 添加事件(排期)
- this.dialogFormVisible = true
- this.form = {}
- this.$nextTick(() => {
- this.$refs['form'].clearValidate()
- })
- },
- // 打回
- back(e, ele) {
- this.dialog_launchTestInfoDOS = true
- // this.CallBackStatus = e
- // this.CallBackId = ele
- },
- // 通过
- pass(e, ele) {
- // this.CallBackStatus = e
- // this.CallBackId = ele
- // this.passOrBackSend()
- },
- passOrBackSend() {
- this.dialog_launchTestInfoDOS = false
- // const tt = { status: this.CallBackStatus, id: this.CallBackId }
- // this.userData = { id: '', ename: this.userInformation, name: this.userNames }
- // this.objData = { launchTestInfo: tt, user: this.userData }
- // launchTestUpdate(this.objData).then(res => {
- // res.code === 200 ? this.successFun('operate') : this.errorFun(res.msg)
- // this.getList()
- // })
- },
- handleSizeChange(size) { // 分页
- this.pageSize = size
- },
- handleCurrentChange(curIndex) { // 分页
- this.curIndex = curIndex
- },
- createReport(e, ele) {
- console.log(ele)
- if (ele.typeString !== '服务端') {
- switch (e) {
- case 1:
- this.$router.push({ path: '/Platform/presentation/PresentReport', query: { task: ele }}) // 客户端提测
- break
- case 2:
- this.$router.push({ path: '/Platform/presentation/DailyNewsAdded', query: { task: ele, taskId: ele.id }}) // 客户端日报
- break
- case 3:
- this.$router.push({ path: '/Platform/presentation/ClientAcceptance', query: { task: ele }}) // 客户端准出
- break
- case 4:
- this.$router.push({ name: '新建Bug', query: { id: ele.id }}) // 缺陷报告
- break
- }
- } else {
- switch (e) {
- case 1:
- this.$router.push({ path: '/Platform/presentation/presentationReport', query: { task: ele }}) // 服务端提测
- break
- case 2:
- this.$router.push({ path: '/Platform/presentation/DailyNewsAdded', query: { task: ele, taskId: ele.id }}) // 服务端日报
- break
- case 3:
- this.$router.push({ path: '/Platform/presentation/Acceptance', query: { task: ele }}) // 服务端准出
- break
- case 4:
- this.$router.push({ name: '新建Bug', query: { id: ele.id }}) // 缺陷报告
- break
- }
- }
- }
- }
- }
- </script>
- <style lang="stylus">
- .footer .el-tabs__nav-wrap::after {
- background-color: #FFFFFF !important;
- }
- .bgborder {
- background-color: #FFFFFF;
- border-radius: 8px;
- }
- .footer {
- margin: 1%;
- background-color: #FFFFFF;
- border-radius: 8px;
- }
- .aside {
- font-size: 14px;
- margin: 5%;
- cursor: pointer;
- }
- .aside:hover {
- color: #409EFF;
- }
- .el-main {
- padding: 0 !important;
- }
- .el-tooltip__popper {
- max-width: 200px;
- }
- .test {
- height: 50vh;
- color: #666666;
- font-size: 14px;
- display: flex;
- align-items: center;
- justify-content: center;
- }
- .time-horizontal {
- list-style-type: none;
- padding: 0px;
- margin: 0px;
- width: 100%;
- height: 222px;
- white-space: nowrap;
- }
- .dialog .el-dialog__header {
- padding: 0;
- }
- .time-horizontal li {
- display: inline-block;
- position: relative;
- text-align: center;
- width: 25%;
- padding-top: 7%;
- }
- .time-horizontal li i div {
- position: absolute;
- top: -10px;
- left: 50%;
- margin-left: -10px;
- width: 20px;
- height: 20px;
- }
- .time-horizontal li i div b {
- display: inline-block;
- cursor: pointer;
- border: 2px solid #61D3B8;
- border-radius: 50%;
- background: #61D3B8;
- color: #61D3B8;
- z-index: 9999;
- width: 20px;
- height: 20px;
- }
- .time-horizontal li i:before {
- content: '';
- width: 0%;
- text-align: center;
- position: absolute;
- top: -50%;
- left: 49.3%;
- height: 100%;
- border: 1px dashed #BBBBBB;
- }
- .time-horizontal li div {
- text-align: center;
- width: 100%;
- position: absolute;
- bottom: 197%;
- }
- .el-divider--horizontal {
- display: block;
- height: 1px;
- width: 100%;
- position: absolute !important;
- margin: 0 !important;
- }
- .form_e .el-form-item {
- margin-bottom: 0px;
- }
- .footer .el-tabs__header {
- padding: 0;
- position: relative;
- margin: 0 0 15px;
- width: 80%;
- }
- </style>
|