taskQuery.vue 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615
  1. <template>
  2. <div class="eleStyle">
  3. <!---------------------------查看------------------------------>
  4. <div v-show="queryLay" style="height:100%;width:80%; background:#ffffff; margin: 3% 9% 9% 9%; border-radius: 8px;">
  5. <div style="margin:0% 2%;">
  6. <div style=" padding-top:2%;font-size:18px;color:#000000;">任务信息</div>
  7. <el-divider />
  8. <div width="70%" style="padding-top:30px;">
  9. <div style="padding-bottom:5px; diaplay: flex;">
  10. <span style="flex:1;">状态</span>
  11. <el-select v-model="form.status" style="width: 100px;" size="mini" placeholder="状态" @change="updateaddTaskData(form)">
  12. <el-option v-for="item in processStatusEnumList" :key="item.code" :label="item.name" :value="item.code" />
  13. </el-select>
  14. <span style="flex:1;">优先级</span>
  15. <el-select v-model="form.priority" style="width: 100px;" size="mini" placeholder="优先级" @change="updateaddTaskData(form)">
  16. <el-option v-for="item in bugLevelStr" :key="item.code" :label="item.name" :value="item.code" />
  17. </el-select>
  18. <el-button type="primary" size="small" @click="createReport(1, form)">新建提测报告</el-button>
  19. <el-button type="primary" size="small" @click="createReport(2, form)">新建日报报告</el-button>
  20. <el-button type="primary" size="small" @click="createReport(3, form)">新建准出报告</el-button>
  21. <el-button type="primary" size="small" @click="createReport(4, form)">新建bug</el-button>
  22. <el-button type="primary" size="small" style="float:right;margin-right:7%" @click="queryTaskData(form)">编辑</el-button>
  23. </div>
  24. <el-divider />
  25. <el-form :model="form" size="mini">
  26. <div style="display:flex;">
  27. <el-form style="flex:1; padding-left: 130px;" size="mini" label="right" label-width="110px">
  28. <el-form-item label="任务名称 : " :label-width="formLabelWidth1">{{ form.name }}</el-form-item>
  29. <el-form-item label="进展 : " :label-width="formLabelWidth1">{{ form.stageString }}</el-form-item>
  30. <el-form-item label="PM : " :label-width="formLabelWidth1">{{ form.pm }}</el-form-item>
  31. <el-form-item label="RD : " :label-width="formLabelWidth1">{{ form.rd }}</el-form-item>
  32. <el-form-item label="QA : " :label-width="formLabelWidth1">{{ form.qa }}</el-form-item>
  33. <el-form-item label="打回次数 : " :label-width="formLabelWidth1">{{ form.reopen }}</el-form-item>
  34. </el-form>
  35. <el-form style="flex:1;" label="right" size="mini" label-width="110px">
  36. <el-form-item label="业务线 : " :label-width="formLabelWidth1">{{ form.bizIdString }}</el-form-item>
  37. <el-form-item label="任务类型 : " :label-width="formLabelWidth1">{{ form.taskType }}</el-form-item>
  38. <el-form-item label="平台类型 : " :label-width="formLabelWidth1">{{ form.type }}</el-form-item>
  39. <el-form-item label="是否免测 : " :label-width="formLabelWidth1">{{ form.noTestString }}</el-form-item>
  40. <el-form-item v-if="business" label="业务模块 : " :label-width="formLabelWidth1">{{ form.clientType }}</el-form-item>
  41. <el-form-item v-if="osTypeShow" label="端类型 : " :label-width="formLabelWidth1">{{ form.osType }}</el-form-item>
  42. </el-form>
  43. </div>
  44. <el-form label="right" style="margin-left:130px;" size="mini" label-width="210px">
  45. <el-form-item label="需求文档 : " :label-width="formLabelWidth1" style="width:60vw;">{{ form.mrdUrl }}</el-form-item>
  46. <el-form-item label="技术文档 : " :label-width="formLabelWidth1" style="width:60vw;">{{ form.devUrl }}</el-form-item>
  47. <el-form-item label="描述 : " :label-width="formLabelWidth1" style="width:60vw;">{{ form.description }}</el-form-item>
  48. <el-form-item label="备注 : " :label-width="formLabelWidth1" style="width:60vw;">{{ form.remark }}</el-form-item>
  49. </el-form>
  50. <el-button type="primary" round size="mini" icon="el-icon-arrow-down" style="cursor: pointer;" @click="show2 = !show2">详细查看</el-button>
  51. <el-form label="right" size="mini" label-width="110px">
  52. <transition name="el-zoom-in-top">
  53. <div v-show="show2" style="display: flex;margin-left:90px; width:93%; padding-top:30px;">
  54. <div style="flex:1;">
  55. <el-form-item label="标签 : " :label-width="formLabelWidth1">{{ form.tag }}</el-form-item>
  56. <el-form-item label="需求评审时间 : " :label-width="formLabelWidth1">{{ form.mrdTime }}</el-form-item>
  57. <el-form-item label="计划开始开发时间 : " :label-width="formLabelWidth1">{{ form.startDevPlanTime }}</el-form-item>
  58. <el-form-item label="计划测试完成时间 : " :label-width="formLabelWidth1">{{ form.testFinishPlanTime }}</el-form-item>
  59. <el-form-item label="计划提测时间 : " :label-width="formLabelWidth1">{{ form.launchTestPlanTime }}</el-form-item>
  60. <el-form-item label="计划上线时间 : " :label-width="formLabelWidth1">{{ form.onlinePlanTime }}</el-form-item>
  61. </div>
  62. <div style="flex:1;">
  63. <el-form-item label="分组 : " :label-width="formLabelWidth1">{{ form.group }}</el-form-item>
  64. <el-form-item label="关注人 : " prop="focusPenson" :label-width="formLabelWidth1">{{ form.focusPenson }}</el-form-item>
  65. <el-form-item label="实际开始开发时间 : " :label-width="formLabelWidth1">{{ form.startDevRealTime }}</el-form-item>
  66. <el-form-item label="实际测试完成时间 : " :label-width="formLabelWidth1">{{ form.testFinishRealTime }}</el-form-item>
  67. <el-form-item label="冒烟测试完成时间 : " :label-width="formLabelWidth1">{{ form.smokeTestFinishTime }}</el-form-item>
  68. <el-form-item label="实际提测时间 : " :label-width="formLabelWidth1">{{ form.launchTestRealTime }}</el-form-item>
  69. <el-form-item label="实际上线时间 : " :label-width="formLabelWidth1">{{ form.onlineRealTime }}</el-form-item>
  70. </div>
  71. </div>
  72. </transition>
  73. </el-form>
  74. </el-form>
  75. <div style="margin-top:20px; width=100%">
  76. <el-tabs tab-position="top" style="height: 200px; width:100%;">
  77. <el-tab-pane label="提测报告">
  78. <el-table :data="listTaskDatas" style="width: 100%" max-height="390">
  79. <el-table-column label="ID" prop="id" align="center" min-width="60"><template slot-scope="scope">{{ scope.row.id }}</template></el-table-column>
  80. <el-table-column label="标题" prop="name" align="center" min-width="100"><template slot-scope="scope"><el-tag style="cursor: pointer;" @click="JumpDetection(scope.row)">{{ scope.row.name }}</el-tag></template></el-table-column>
  81. <el-table-column label="创建时间" prop="gmtCreate" align="center" min-width="150"><template slot-scope="scope">{{ scope.row.gmtCreate }}</template></el-table-column>
  82. <el-table-column label="状态" prop="statusString" align="center" min-width="80"><template slot-scope="scope">{{ scope.row.statusString }}</template></el-table-column>
  83. <el-table-column label="操作" align="center" min-width="150">
  84. <template slot-scope="scope">
  85. <el-button type="primary" size="small" disabled>查看</el-button>
  86. <el-button type="primary" size="small" @click="yesCallBack1(2,scope.row.id)">打回</el-button>
  87. <el-button type="primary" size="small" @click="yesCallBack(1,scope.row.id)">通过</el-button>
  88. </template>
  89. </el-table-column>
  90. </el-table>
  91. </el-tab-pane>
  92. <el-tab-pane label="日报报告">
  93. <el-table :data="dailyTestReports" max-height="390" style="width: 100%">
  94. <el-table-column label="ID" prop="id" align="center" min-width="60"><template slot-scope="scope">{{ scope.row.id }}</template></el-table-column>
  95. <el-table-column label="标题" prop="name" align="center" min-width="100"><template slot-scope="scope"><el-tag style="cursor: pointer;" @click="JumpDaily(scope.row)">{{ scope.row.reportName }}</el-tag></template></el-table-column>
  96. <el-table-column label="创建时间" prop="gmtCreate" align="center" min-width="150"><template slot-scope="scope">{{ scope.row.gmtCreate }}</template></el-table-column>
  97. </el-table>
  98. </el-tab-pane>
  99. <el-tab-pane label="准出报告">
  100. <el-table :data="projectTestReports" max-height="390" style="width: 100%">
  101. <el-table-column label="ID" prop="id" align="center" min-width="60"><template slot-scope="scope">{{ scope.row.id }}</template></el-table-column>
  102. <el-table-column label="标题" prop="name" align="center" min-width="100"><template slot-scope="scope"><el-tag style="cursor: pointer;" @click="JumpOut(scope.row)">{{ scope.row.reportName }}</el-tag></template></el-table-column>
  103. <el-table-column label="创建时间" prop="gmtCreate" align="center" min-width="150"><template slot-scope="scope">{{ scope.row.gmtCreate }}</template></el-table-column>
  104. <el-table-column label="状态" prop="status" align="center" min-width="80"><template slot-scope="scope">{{ scope.row.statusString }}</template></el-table-column>
  105. </el-table>
  106. </el-tab-pane>
  107. <el-tab-pane label="bug报告">
  108. <el-table :data="projectBug" max-height="390" style="width: 100%" @row-click="queryBugData">
  109. <el-table-column label="ID" align="center" min-width="60"><template slot-scope="scope">{{ scope.row.id }}</template></el-table-column>
  110. <el-table-column label="标题" align="center" min-width="100"><template slot-scope="scope">{{ scope.row.bugName }}</template></el-table-column>
  111. <el-table-column label="状态" align="center" min-width="80"><template slot-scope="scope">{{ scope.row.status }}</template></el-table-column>
  112. <el-table-column label="当前处理人" align="center" min-width="100"><template slot-scope="scope">{{ scope.row.currentHandler }}</template></el-table-column>
  113. <el-table-column label="创建时间" align="center" min-width="150"><template slot-scope="scope">{{ scope.row.gmtCreate }}</template></el-table-column>
  114. </el-table>
  115. </el-tab-pane>
  116. </el-tabs>
  117. <div style="height:5%; text-align:center;">
  118. <el-button type="primary" style="margin:15% 0 3% 0;" @click="clickOut">关 闭</el-button>
  119. </div>
  120. </div>
  121. </div>
  122. </div>
  123. <!--------------------------------- 编辑 ---------------------------------->
  124. <el-dialog title="任务信息" width="80%" :visible.sync="dialogFormTaskVisible" @close="Refresh">
  125. <el-form ref="fromCode" :model="fromCode" :rules="serviceDataRules">
  126. <el-form-item label="任务名称" prop="name" label-width="100px" style="width:93%;">
  127. <el-input v-model="fromCode.name" placeholder="任务名称" autocomplete="off" />
  128. </el-form-item>
  129. <div style="display: flex;">
  130. <div style="flex:1;">
  131. <el-form-item label="业务线" prop="bizId" label-width="100px">
  132. <el-select v-model="fromCode.bizId" placeholder="业务线" @change="bizId(fromCode.bizId)">
  133. <el-option v-for="item in bizIdEnumList" :key="item.code" :label="item.name" :value="item.code" />
  134. </el-select>
  135. </el-form-item>
  136. <el-form-item label="优先级" prop="priority" label-width="100px">
  137. <el-select v-model="fromCode.priority" placeholder="优先级">
  138. <el-option v-for="item in bugLevelStr" :key="item.code" :label="item.name" :value="item.code" />
  139. </el-select>
  140. </el-form-item>
  141. <el-form-item label="进展" prop="stage" label-width="100px">
  142. <el-select v-model="fromCode.stage" placeholder="进展">
  143. <el-option v-for="item in stageEnumList" :key="item.code" :label="item.name" :value="item.code" />
  144. </el-select>
  145. </el-form-item>
  146. </div>
  147. <div style="flex:1;">
  148. <el-form-item label="平台类型" prop="type" label-width="100px">
  149. <el-select v-model="fromCode.type" placeholder="平台类型" @change="changeType(fromCode.type)">
  150. <el-option v-for="item in typeString" :key="item.code" :label="item.name" :value="item.name" />
  151. </el-select>
  152. </el-form-item>
  153. <el-form-item label="状态" prop="status" label-width="100px">
  154. <el-select v-model="fromCode.status" placeholder="状态">
  155. <el-option v-for="item in processStatusEnumList" :key="item.code" :label="item.name" :value="item.code" />
  156. </el-select>
  157. </el-form-item>
  158. <el-form-item label="任务类型" prop="taskType" label-width="100px">
  159. <el-select v-model="fromCode.taskType" placeholder="任务类型">
  160. <el-option v-for="item in taskAndRoutineEnumList" :key="item.code" :label="item.name" :value="item.name" />
  161. </el-select>
  162. </el-form-item>
  163. </div>
  164. <div style="flex:1;">
  165. <el-form-item v-if="business" label="业务模块" prop="clientType" label-width="100px">
  166. <el-select v-model="fromCode.clientType" placeholder="业务模块" @change="clientType(fromCode.clientType)">
  167. <el-option v-for="item in businessTypeStr" :key="item.code" :label="item.name" :value="item.name" />
  168. </el-select>
  169. </el-form-item>
  170. <el-form-item label="是否免测" prop="notest" label-width="100px">
  171. <el-select v-model="fromCode.notest" placeholder="是否免测">
  172. <el-option v-for="item in noTestEnumList" :key="item.code" :label="item.name" :value="item.code" />
  173. </el-select>
  174. </el-form-item>
  175. <el-form-item v-if="osTypeShow" label="端类型" prop="osType" label-width="100px">
  176. <el-select v-model="fromCode.osType" placeholder="端类型">
  177. <el-option v-for="item in osTypeEnum" :key="item.code" :label="item.name" :value="item.name" />
  178. </el-select>
  179. </el-form-item>
  180. </div>
  181. </div>
  182. <el-form-item label="需求文档" style="width:72vw;" label-width="100px">
  183. <el-input v-model="fromCode.mrdUrl" autocomplete="off" />
  184. </el-form-item>
  185. <el-form-item label="技术文档" style="width:72vw;" label-width="100px">
  186. <el-input v-model="fromCode.devUrl" autocomplete="off" />
  187. </el-form-item>
  188. <el-button type="primary" round size="mini" icon="el-icon-arrow-down" style="cursor: pointer;" @click="show2 = !show2">详细添加</el-button>
  189. <transition name="el-zoom-in-top">
  190. <div v-show="show2" style="display: flex; width:93%; padding-top:30px;">
  191. <div style="flex:1;">
  192. <el-form-item label="标签" :label-width="formLabelWidth">
  193. <el-input v-model="fromCode.tag" style="width:220px;" autocomplete="off" />
  194. </el-form-item>
  195. <el-form-item label="RD" :label-width="formLabelWidth">
  196. <el-input v-model="fromCode.rd" style="width:220px;" autocomplete="off" />
  197. </el-form-item>
  198. <el-form-item label="QA" :label-width="formLabelWidth">
  199. <el-input v-model="fromCode.qa" style="width:220px;" autocomplete="off" />
  200. </el-form-item>
  201. <el-form-item label="需求评审时间" :label-width="formLabelWidth">
  202. <el-date-picker v-model="fromCode.mrdTime" type="datetime" placeholder="选择日期" />
  203. </el-form-item>
  204. <el-form-item label="计划开始开发时间" :label-width="formLabelWidth">
  205. <el-date-picker v-model="fromCode.startDevPlanTime" type="datetime" placeholder="选择日期" />
  206. </el-form-item>
  207. <el-form-item label="计划测试完成时间" :label-width="formLabelWidth">
  208. <el-date-picker v-model="fromCode.testFinishPlanTime" type="datetime" placeholder="选择日期" />
  209. </el-form-item>
  210. <el-form-item label="计划提测时间" :label-width="formLabelWidth">
  211. <el-date-picker v-model="fromCode.launchTestPlanTime" type="datetime" placeholder="选择日期" />
  212. </el-form-item>
  213. <el-form-item label="计划上线时间" :label-width="formLabelWidth">
  214. <el-date-picker v-model="fromCode.onlinePlanTime" type="datetime" placeholder="选择日期" />
  215. </el-form-item>
  216. </div>
  217. <div style="flex:1;">
  218. <el-form-item label="分组" :label-width="formLabelWidth">
  219. <el-input v-model="fromCode.group" style="width:220px;" autocomplete="off" />
  220. </el-form-item>
  221. <el-form-item label="PM" :label-width="formLabelWidth">
  222. <el-input v-model="fromCode.pm" style="width:220px;" autocomplete="off" />
  223. </el-form-item>
  224. <el-form-item label="关注人" prop="focusPenson" :label-width="formLabelWidth">
  225. <el-input v-model="fromCode.focusPenson" style="width:220px;" autocomplete="off" />
  226. </el-form-item>
  227. <el-form-item label="实际开始开发时间" :label-width="formLabelWidth">
  228. <el-date-picker v-model="fromCode.startDevRealTime" type="datetime" placeholder="选择日期" />
  229. </el-form-item>
  230. <el-form-item label="实际测试完成时间" :label-width="formLabelWidth">
  231. <el-date-picker v-model="fromCode.testFinishRealTime" type="datetime" placeholder="选择日期" />
  232. </el-form-item>
  233. <el-form-item label="冒烟测试完成时间" :label-width="formLabelWidth">
  234. <el-date-picker v-model="fromCode.smokeTestFinishTime" type="datetime" placeholder="选择日期" />
  235. </el-form-item>
  236. <el-form-item label="实际提测时间" :label-width="formLabelWidth">
  237. <el-date-picker v-model="fromCode.launchTestRealTime" type="datetime" placeholder="选择日期" />
  238. </el-form-item>
  239. <el-form-item label="实际上线时间" :label-width="formLabelWidth">
  240. <el-date-picker v-model="fromCode.onlineRealTime" type="datetime" placeholder="选择日期" />
  241. </el-form-item>
  242. </div>
  243. </div>
  244. </transition>
  245. <dir style="display:flex; width:93%;">
  246. <el-form-item label="备注" style="flex:1;" label-width="60px">
  247. <el-input v-model="fromCode.remark" type="textarea" :rows="4" placeholder="备注" />
  248. </el-form-item>
  249. <el-form-item label="描述" style="flex:1;" label-width="60px">
  250. <el-input v-model="fromCode.description" type="textarea" :rows="4" placeholder="请输入内容" />
  251. </el-form-item>
  252. </dir>
  253. </el-form>
  254. <div slot="footer" class="dialog-footer">
  255. <el-button @click="dialogFormTaskVisible = false">取 消</el-button>
  256. <el-button type="primary" @click="updateaddTaskData1(fromCode)">确 定</el-button>
  257. </div>
  258. </el-dialog>
  259. <!-- 打回 -->
  260. <el-dialog title="打回原因" :visible.sync="centerDialogVisible" width="30%" center>
  261. <el-input v-model="CallBackTheReason" type="textarea" :rows="2" />
  262. <span slot="footer" class="dialog-footer">
  263. <el-button @click="centerDialogVisible = false">取 消</el-button>
  264. <el-button type="primary" @click="yesCallBack(2, CallBackTheReason)">确 定</el-button>
  265. </span>
  266. </el-dialog>
  267. </div>
  268. </div>
  269. </template>
  270. <script>
  271. import { updateTaskList, getTaskData, launchTestUpdate, projectGetTypeMap } from '@/api/projectPage.js'
  272. import { bugGetEnum } from '@/api/defectManage' // 下拉菜单data
  273. export default {
  274. name: 'TaskQuery',
  275. data() {
  276. return {
  277. bugTypeStr: [],
  278. bugStatusStr: [],
  279. bugLevelStr: [],
  280. serviceDataRules: {
  281. notest: [{ required: true, message: '是否免测不能为空', trigger: 'change' }],
  282. type: [{ required: true, message: '平台类型不能为空', trigger: 'change' }],
  283. name: [{ required: true, message: '项目名称不能为空', trigger: 'change' }],
  284. bizId: [{ required: true, message: '业务线不能为空', trigger: 'change' }],
  285. status: [{ required: true, message: '状态不能为空', trigger: 'change' }],
  286. priority: [{ required: true, message: '优先级不能为空', trigger: 'change' }],
  287. stage: [{ required: true, message: '进展不能为空', trigger: 'change' }],
  288. pm: [{ required: true, message: 'pm不能为空', trigger: 'change' }],
  289. taskType: [{ required: true, message: '任务类型不能为空', trigger: 'change' }],
  290. clientType: [{ required: true, message: '业务模块不能为空', trigger: 'change' }],
  291. osType: [{ required: true, message: '端类型不能为空', trigger: 'change' }]
  292. },
  293. processStatusEnumList: [],
  294. reasonStr: [],
  295. platformTypeStr: [],
  296. stageStr: [],
  297. osTypeEnum: [],
  298. discoveryMethodStr: [],
  299. repairResultStr: [],
  300. bizIdEnumList: [],
  301. listTaskDatas: [],
  302. projectTestReports: [],
  303. dailyTestReports: [],
  304. taskTypeStr: [],
  305. noTestEnumList: [],
  306. projectBug: [],
  307. typeString: [],
  308. clientTypeEnumList: [],
  309. serviceTypeEnumList: [],
  310. businessTypeStr: [],
  311. stageEnumList: [],
  312. taskAndRoutineEnumList: [],
  313. userInformation: localStorage.getItem('username'),
  314. userNames: localStorage.getItem('realname'),
  315. bizJson: localStorage.getItem('key'),
  316. form: {},
  317. fromCode: {},
  318. dialogFormTaskVisible: false,
  319. centerDialogVisible: false,
  320. statusShow: false,
  321. repairShow: false,
  322. queryLay: true,
  323. reatedLay: false,
  324. osTypeShow: false,
  325. business: false,
  326. formLabelWidth1: '160px',
  327. formLabelWidth: '160px',
  328. formLabelWidths: '160px',
  329. formTask: {},
  330. CallBackTheReason: '',
  331. objData: '',
  332. userData: '',
  333. taskIdStr: '',
  334. url: '',
  335. arrurl: '',
  336. show2: false,
  337. cun: ''
  338. }
  339. },
  340. created() {
  341. this.bugListSelect()
  342. this.getList()
  343. },
  344. methods: {
  345. getList() {
  346. this.beforeCreate()
  347. this.url = window.location.href // 获取url中"?"符后的字串
  348. this.arrurl = this.url.split('?id=')
  349. getTaskData(this.arrurl[1]).then(res => {
  350. this.listTaskDatas = res.data.launchTestInfoList
  351. this.listTaskDatas.statusString = this.form.statusString
  352. this.projectTestReports = res.data.projectTestReports
  353. this.projectTestReports.statusString = this.form.statusString
  354. this.dailyTestReports = res.data.dailyTestReports
  355. this.projectBug = res.data.bugBaseInfoDOS
  356. this.form = res.data
  357. this.fromCode = res.data
  358. for (var s of this.bizIdEnumList) { // 获取bizId
  359. this.form.bizId === s.code ? this.typeString = s.child : ''
  360. }
  361. this.fromCode.osType === '' ? this.osTypeShow = false : this.osTypeShow = true
  362. this.form.clientType !== '' ? this.business = true : this.business = false
  363. this.business === false ? this.osTypeShow = false : ''
  364. })
  365. },
  366. // 编辑 提交
  367. updateaddTaskData1(vel) {
  368. this.$refs['fromCode'].validate((valid) => {
  369. if (valid) {
  370. this.fromCode = vel
  371. this.osTypeShow === false ? this.$set(this.fromCode, 'osType', '') : ''
  372. this.business === false ? this.$set(this.fromCode, 'clientType', '') : ''
  373. this.userData = { id: '', ename: this.userInformation, name: this.userNames }
  374. this.objData = { taskInfo: this.fromCode, user: this.userData }
  375. updateTaskList(this.objData).then(response => {
  376. if (response.code === 200) {
  377. this.getList()
  378. this.successFun(response.msg)
  379. this.dialogFormTaskVisible = false
  380. } else {
  381. this.errorFun(response.msg)
  382. }
  383. })
  384. }
  385. })
  386. },
  387. // change 业务线
  388. bizId(e) {
  389. for (var a of this.bizIdEnumList) {
  390. if (e === a.code) {
  391. this.typeString = a.child
  392. }
  393. }
  394. this.business = false
  395. this.osTypeShow = false
  396. this.$set(this.fromCode, 'type', '')
  397. },
  398. // chnage 平台类型
  399. changeType(e) {
  400. for (var b of this.typeString) {
  401. if (e === b.name) {
  402. this.businessTypeStr = b.child
  403. b.child !== null ? this.business = true : this.business = false
  404. }
  405. this.$set(this.fromCode, 'clientType', '')
  406. this.$set(this.fromCode, 'osType', '')
  407. this.osTypeShow = false
  408. }
  409. },
  410. // 业务模块
  411. clientType(e) {
  412. for (var a of this.businessTypeStr) {
  413. if (e === a.name) {
  414. this.osTypeEnum = a.child
  415. a.child !== null ? this.osTypeShow = true : this.osTypeShow = false
  416. }
  417. this.$set(this.fromCode, 'osType', '')
  418. }
  419. },
  420. // 任务编辑
  421. queryTaskData(ele) {
  422. this.dialogFormTaskVisible = true
  423. projectGetTypeMap().then(res => {
  424. this.bizIdEnumList = res.data
  425. ele.clientType !== '' ? this.business = true : this.business = false
  426. this.osTypeShow === false ? this.$set(this.fromCode, 'osType', '') : ''
  427. ele.osType !== '' ? this.osTypeShow = true : this.osTypeShow = false
  428. for (var b of this.bizIdEnumList) {
  429. ele.bizId === b.code ? this.typeString = b.child : ''
  430. }
  431. for (var s of this.typeString) {
  432. ele.type === s.name ? this.businessTypeStr = s.child : ''
  433. }
  434. for (var c of this.businessTypeStr) {
  435. ele.clientType === c.name ? this.osTypeEnum = c.child : ''
  436. }
  437. })
  438. },
  439. // 查看页面更改状态 优先级
  440. updateaddTaskData(vel) {
  441. this.formTask = vel
  442. this.userData = { id: '', ename: this.userInformation, name: this.userNames }
  443. this.objData = { taskInfo: this.formTask, user: this.userData }
  444. updateTaskList(this.objData).then(response => {
  445. if (response.code === 200) {
  446. this.getList()
  447. this.successFun(response.msg)
  448. } else {
  449. this.errorFun(response.msg)
  450. }
  451. })
  452. },
  453. // 通过
  454. yesCallBack(e, ele) {
  455. this.centerDialogVisible = false
  456. if (e === 1) {
  457. this.tt = { status: 1, id: ele }
  458. } else {
  459. this.tt = { status: 2, id: this.CallBackId, launchRepulseInfo: ele }
  460. }
  461. this.userData = { id: '', ename: this.userInformation, name: this.userNames }
  462. this.objData = { launchTestInfo: this.tt, user: this.userData }
  463. launchTestUpdate(this.objData).then(res => {
  464. res.code === 200 ? this.successFun() : this.errorFun(res.msg)
  465. })
  466. },
  467. // 打回
  468. yesCallBack1(e, ele) {
  469. this.centerDialogVisible = true
  470. this.CallBackStatus = e
  471. this.CallBackId = ele
  472. },
  473. // bug报告跳转
  474. queryBugData(ele) {
  475. this.$router.push({ path: '/Platform/presentation/defectManageQuery', query: { id: ele.id }})
  476. },
  477. // 创建日报 提测 准出报告跳转
  478. createReport(e, ele) {
  479. if (ele.typeString !== '服务端') {
  480. switch (e) {
  481. case 1:
  482. this.$router.push({ path: '/Platform/presentation/PresentReport', query: { task: ele }}) // 客户端提测
  483. break
  484. case 2:
  485. this.$router.push({ path: '/Platform/presentation/DailyNewsAdded', query: { task: ele }}) // 客户端日报
  486. break
  487. case 3:
  488. this.$router.push({ path: '/Platform/presentation/ClientAcceptance', query: { task: ele }}) // 客户端准出
  489. break
  490. case 4:
  491. <<<<<<< HEAD
  492. this.$router.push({ path: '/Platform/defectManagement', query: { id: ele.id, code: 4 }}) // 缺陷报告
  493. =======
  494. this.$router.push({ path: '/Platform/defectManagement/bugCreate', query: { id: ele.id }}) // 缺陷报告
  495. >>>>>>> test
  496. break
  497. }
  498. } else {
  499. switch (e) {
  500. case 1:
  501. this.$router.push({ path: '/Platform/presentation/presentationReport', query: { task: ele }}) // 服务端提测
  502. break
  503. case 2:
  504. this.$router.push({ path: '/Platform/presentation/DailyNewsAdded', query: { task: ele }}) // 服务端日报
  505. break
  506. case 3:
  507. this.$router.push({ path: '/Platform/presentation/Acceptance', query: { task: ele }}) // 服务端准出
  508. break
  509. case 4:
  510. <<<<<<< HEAD
  511. this.$router.push({ path: '/Platform/defectManagement', query: { id: ele.id, code: 4 }}) // 缺陷报告
  512. =======
  513. this.$router.push({ path: '/Platform/defectManagement/bugCreate', query: { id: ele.id }}) // 缺陷报告
  514. >>>>>>> test
  515. break
  516. }
  517. }
  518. },
  519. // 返回
  520. clickOut() {
  521. this.$router.push({ path: '/Platform/projectPage' })
  522. },
  523. successFun(e) {
  524. this.$notify({ title: 'Success', message: e, type: 'success', duration: 2000 })
  525. },
  526. errorFun(e) {
  527. this.$notify({ title: 'Failed', message: e, type: 'error', duration: 2000 })
  528. },
  529. beforeCreate() {
  530. projectGetTypeMap().then(res => {
  531. this.bizIdEnumList = res.data
  532. })
  533. document.querySelector('body').setAttribute('style', 'background-color:#fff')
  534. },
  535. // 提测预览跳转
  536. JumpDetection(val) {
  537. val.taskId = this.arrurl
  538. this.$router.push({ path: '/Platform/presentation/acceptTheReport', query: { data: val }})
  539. },
  540. // 日报预览跳转
  541. JumpDaily(val) {
  542. val.taskId = this.arrurl
  543. this.$router.push({ path: '/Platform/presentation/testPresenyL', query: { data: val }})
  544. },
  545. // 准出预览跳转
  546. JumpOut(val) {
  547. val.taskId = this.arrurl
  548. this.$router.push({ path: '/Platform/presentation/ResultPageyL', query: { data: val }})
  549. },
  550. // Dialog 关闭的回调
  551. Refresh() {
  552. this.fromCode.osType === '' ? this.$set(this.fromCode, 'osType', '') : ''
  553. this.getList()
  554. },
  555. // 所有下拉菜单数据
  556. bugListSelect() {
  557. bugGetEnum().then(res => {
  558. this.serviceTypeEnumList = res.data.serviceTypeEnumList
  559. this.clientTypeEnumList = res.data.clientTypeEnumList
  560. // this.bizIdEnumList = res.data.bizIdEnumList // 优先级
  561. this.bugStatusStr = res.data.bugEnumList
  562. this.stageStr = res.data.bugStageEnumList
  563. this.reasonStr = res.data.reasonEnumList
  564. this.platformTypeStr = res.data.platformTypeEnumList
  565. this.bugTypeStr = res.data.bugTypeEnumList
  566. this.bugLevelStr = res.data.priorityEnumList
  567. this.discoveryMethodStr = res.data.discoveryMethodEnumList
  568. this.repairResultStr = res.data.repairResultEnumList
  569. this.stageEnumList = res.data.stageEnumList
  570. this.taskAndRoutineEnumList = res.data.taskAndRoutineEnumList
  571. this.noTestEnumList = res.data.noTestEnumList
  572. this.processStatusEnumList = res.data.processStatusEnumList
  573. this.osTypeEnum = res.data.osTypeEnum
  574. })
  575. }
  576. }
  577. }
  578. </script>
  579. <style scoped>
  580. .eleStyle {
  581. width: 100%;
  582. height:100%;
  583. background:#F2F3F6;
  584. /* position:fixed; */
  585. display: inline-block;
  586. }
  587. .el-divider--horizontal {
  588. margin: 0px;
  589. background: #F2F3F6;
  590. }
  591. </style>