defectManagement.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508
  1. <template>
  2. <div style="width: 100%;">
  3. <div style="margin: 2% 0;">
  4. <el-form :model="queryCode">
  5. <el-select v-model="queryCode.taskId" clearable placeholder="任务" style="width:10%;margin:0 5px;">
  6. <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
  7. </el-select>
  8. <el-select v-model="queryCode.status" clearable placeholder="bug状态" style="width:10%;margin-right:5px;">
  9. <el-option v-for="item in bugStatusStr" :key="item.code" :label="item.name" :value="item.code" />
  10. </el-select>
  11. <el-input v-model="queryCode.currentHandler" clearable filterable placeholder="处理人" style="width:12%;margin-right:5px;" />
  12. <el-input v-model="queryCode.creator" clearable filterable placeholder="创建人" style="width:12%;margin-right:5px;" />
  13. <!-- <el-date-picker v-model="queryCode.gmtCreateBegin" style="width:12%;margin-right:5px;" type="datetime" placeholder="创建时间" /> -->
  14. <!-- <el-date-picker v-model="queryCode.gmtCreateEnd" style="width:12%;margin-right:5px;" type="datetime" placeholder="截止时间" /> -->
  15. <el-input v-model="queryCode.bugName" clearable filterable placeholder="主题" style="width:12%;margin-right:5px;" />
  16. <el-select v-model="queryCode.priority" clearable placeholder="级别" style="width:10%;margin-right:5px;">
  17. <el-option v-for="item in bugStatusPriority" :key="item.code" :label="item.name" :value="item.code" />
  18. </el-select>
  19. <el-button type="primary" @click="dataQuery(queryCode)">查询</el-button>
  20. <el-button type="primary" style="margin: 1% 5px;" @click="createdCode()">新建bug</el-button>
  21. </el-form>
  22. </div>
  23. <el-table :data="tableData" fit>
  24. <el-table-column label="ID" min-width="120" align="center">
  25. <template slot-scope="scope">{{ scope.row.id }}</template>
  26. </el-table-column>
  27. <el-table-column label="主题" min-width="230" align="center">
  28. <template slot-scope="scope"><a href="javascript:void(0)" style="color:#20a0ff" @click="toReportView(scope.row.id)">{{ scope.row.bugName }}</a></template>
  29. </el-table-column>
  30. <el-table-column label="处理人" min-width="150" align="center">
  31. <template slot-scope="scope">{{ scope.row.currentHandler }}</template>
  32. </el-table-column>
  33. <el-table-column label="创建日期" min-width="250" align="center">
  34. <template slot-scope="scope">{{ scope.row.gmtCreate }}</template>
  35. </el-table-column>
  36. <el-table-column label="级别" width="150" align="center">
  37. <template slot-scope="scope"><span>{{ scope.row.priorityName }}</span></template>
  38. </el-table-column>
  39. <el-table-column label="状态" width="150" align="center">
  40. <template slot-scope="scope"><span>{{ scope.row.bugStatusName }}</span></template>
  41. </el-table-column>
  42. <el-table-column fixed="right" label="操作" width="225" align="center">
  43. <template slot-scope="scope">
  44. <el-button size="mini" type="primary" @click="queryPresentation(scope.row)">更新</el-button>
  45. <el-button size="mini" type="primary" @click="delePresentation(scope.row.id)">删除</el-button>
  46. <el-button size="mini" type="primary" @click="copyArrange(scope.row.id)">复制</el-button>
  47. </template>
  48. </el-table-column>
  49. </el-table>
  50. <el-pagination style="margin-top:30px;" align="center" :current-page="curIndex" :page-sizes="[5, 10, 20]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
  51. <el-dialog class="adjustHeight" :title="titName" :visible.sync="dialogFormVisible" width="70%">
  52. <el-form ref="form" :model="form" :rules="serviceDataRules">
  53. <div class="set-background">
  54. <el-form-item label="标题" :label-width="formLabelWidth"><el-input v-model="form.bugName" autocomplete="off" placeholder="普惠质量产品工具平台..." style="width:77.2%;" /></el-form-item>
  55. <div style="display:flex;">
  56. <el-form-item style="flex-grow:1" prop="bizId" label="业务线" :label-width="formLabelWidth1">
  57. <el-select v-model="form.bizId" placeholder="业务线" style="width:54.5%;">
  58. <el-option v-for="item in bizOptions" :key="item.value" :label="item.name" :value="item.value" />
  59. </el-select>
  60. </el-form-item>
  61. <el-form-item style="flex-grow:1" label="业务模块" prop="businessType" :label-width="formLabelWidth1">
  62. <el-select v-model="form.businessType" placeholder="业务模块" style="width:54.5%;">
  63. <el-option v-for="item in businessTypeStr" :key="item.name" :label="item.name" :value="item.name" />
  64. </el-select>
  65. </el-form-item>
  66. </div>
  67. <div style="display:flex;">
  68. <el-form-item style="flex-grow:1" prop="taskId" label="任务" :label-width="formLabelWidth1">
  69. <el-select v-model="form.taskId" placeholder="任务" style="width:54.5%;">
  70. <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
  71. </el-select>
  72. </el-form-item>
  73. <el-form-item style="flex-grow:1" label="平台类型" prop="platformType" :label-width="formLabelWidth1">
  74. <el-select v-model="form.platformType" placeholder="平台类型" style="width:54.5%;" @change="clickChangeType(form.platformType)">
  75. <el-option v-for="item in platformTypeStr" :key="item.name" :label="item.name" :value="item.name" />
  76. </el-select>
  77. </el-form-item>
  78. </div>
  79. <div style="display:flex;">
  80. <el-form-item style="flex-grow:1" label="类型" prop="bugType" :label-width="formLabelWidth1">
  81. <el-select v-model="form.bugType" style="width:54.5%;" placeholder="类型">
  82. <el-option v-for="item in bugTypeStr" :key="item.name" :label="item.name" :value="item.name" />
  83. </el-select>
  84. </el-form-item>
  85. <el-form-item style="flex-grow:1" label="发现方式" prop="discoveryMethod" :label-width="formLabelWidth1">
  86. <el-select v-model="form.discoveryMethod" style="width:54.5%;" placeholder="发现方式">
  87. <el-option v-for="item in discoveryMethodStr" :key="item.name" :label="item.name" :value="item.name" />
  88. </el-select>
  89. </el-form-item>
  90. </div>
  91. <div style="display:flex;">
  92. <el-form-item style="flex-grow:1" label="级别" prop="priority" :label-width="formLabelWidth1">
  93. <el-select v-model="form.priority" style="width:54.5%;" placeholder="级别">
  94. <el-option v-for="item in bugLevelStr" :key="item.name" :label="item.name" :value="item.name" />
  95. </el-select>
  96. </el-form-item>
  97. <el-form-item style="flex-grow:1" label="问题原因" prop="reason" :label-width="formLabelWidth1">
  98. <el-select v-model="form.reason" style="width:54.5%;" placeholder="问题原因">
  99. <el-option v-for="item in reasonStr" :key="item.name" :label="item.name" :value="item.name" />
  100. </el-select>
  101. </el-form-item>
  102. </div>
  103. <div style="display:flex;">
  104. <el-form-item style="flex-grow:1" label="状态" prop="status" :label-width="formLabelWidth1">
  105. <el-select v-model="form.status" placeholder="状态" style="width:54.5%;" @change="buildShow(form.status)">
  106. <el-option v-for="item in bugStatusStr" :key="item.name" :label="item.name" :value="item.name" />
  107. </el-select>
  108. </el-form-item>
  109. <el-form-item style="flex-grow:1" label="所处阶段" prop="stage" :label-width="formLabelWidth1">
  110. <el-select v-model="form.stage" placeholder="所处阶段" style="width:54.5%;">
  111. <el-option v-for="item in stageStr" :key="item.name" :label="item.name" :value="item.name" />
  112. </el-select>
  113. </el-form-item>
  114. </div>
  115. <el-form-item label="bug描述" prop="bugDescribe" :label-width="formLabelWidth"><el-input v-model="form.bugDescribe" type="textarea" placeholder="bug描述" rows="2" style="width:77.2%;" /></el-form-item>
  116. </div>
  117. <div style="display:flex;">
  118. <el-form-item label="创建人" :label-width="formLabelWidth"><el-input v-model="form.creator" autocomplete="off" style="width:67%;" /></el-form-item>
  119. <el-form-item label="bug责任人" prop="assigner" :label-width="formLabelWidth"><el-input v-model="form.assigner" autocomplete="off" style="width:67%;" /></el-form-item>
  120. </div>
  121. <div style="flex:1">
  122. <el-form-item v-show="statusShow" label="问题原因和修复方法" :label-width="formLabelWidth"><el-input v-model="form.reasonsAndSolutionForTheProblem" type="textarea" placeholder="问题原因和修复方法" rows="4" style="width:77.2%;" /></el-form-item>
  123. </div>
  124. <div style="flex:1">
  125. <el-form-item label="bug处理人" prop="currentHandler" :label-width="formLabelWidth"><el-input v-model="form.currentHandler" autocomplete="off" style="width:67%;" /></el-form-item>
  126. <el-form-item label="app版本号" :label-width="formLabelWidth"><el-input v-model="form.appVersion" autocomplete="off" style="width:67%;" /></el-form-item>
  127. <el-form-item label="地图类型" :label-width="formLabelWidth"><el-input v-model="form.mapType" autocomplete="off" style="width:67%;" /></el-form-item>
  128. <el-form-item label="地图版本号" :label-width="formLabelWidth"><el-input v-model="form.mapVersion" autocomplete="off" style="width:67%;" /></el-form-item>
  129. <el-form-item label="SDK版本" :label-width="formLabelWidth"><el-input v-model="form.sdkVersion" autocomplete="off" style="width:67%;" /></el-form-item>
  130. <el-form-item v-show="repairShow" label="修复结果" :label-width="formLabelWidth">
  131. <el-select v-model="form.repairResult" placeholder="发现方法">
  132. <el-option v-for="item in repairResultStr" :key="item.name" :label="item.name" :value="item.name" />
  133. </el-select>
  134. </el-form-item>
  135. </div>
  136. <el-form-item label="附件" :label-width="formLabelWidth">
  137. <el-upload
  138. class="upload-demo"
  139. multiple
  140. capture
  141. accept="image/jpeg, image/png, image/gif, audio/mp4, video/mp4, audio/mpeg, application/vnd.ms-excel"
  142. :on-change="handleChange"
  143. :file-list="fileList"
  144. action="http://page-daily.kuaidadi.com/upload/img.node"
  145. >
  146. <!-- action="http://page-daily.kuaidadi.com/upload/img.node" 线下 -->
  147. <!-- action="http://star.xiaojukeji.com/upload/img.node" 线上 -->
  148. <!-- action="https://jsonplaceholder.typicode.com/posts/" 原始地址-->
  149. <el-button size="small" type="primary">点击上传</el-button>
  150. </el-upload>
  151. </el-form-item>
  152. {{ form.accessory }}
  153. <!-- <el-form-item label="逻辑删" :label-width="formLabelWidth">
  154. <el-select v-model="form.isDelete" placeholder="发现方法">
  155. <el-option v-for="item in isDeleteStr" :key="item.value" :label="item.name" :value="item.value" />
  156. </el-select>
  157. </el-form-item> -->
  158. <!-- <el-form-item label="reopen的次数" :label-width="formLabelWidth"> <el-input v-model="form.reopenTimes" autocomplete="off" /></el-form-item> -->
  159. <!-- <el-form-item label="业务线" prop="bizId" :label-width="formLabelWidth"><el-input v-model="form.bizId" autocomplete="off" /></el-form-item> -->
  160. <!-- <el-form-item label="模块" :label-width="formLabelWidth"><el-input v-model="form.moduleId" autocomplete="off" /></el-form-item> -->
  161. <!-- <el-form-item label="项目名" :label-width="formLabelWidth"><el-input v-model="form.projectName" autocomplete="off" /></el-form-item> -->
  162. <!-- <el-form-item label="项目ID" :label-width="formLabelWidth"><el-input v-model="form.projectId" autocomplete="off" /></el-form-item> -->
  163. <!-- <el-form-item label="测试计划ID" prop="planId" :label-width="formLabelWidth"><el-input v-model="form.planId" autocomplete="off" /></el-form-item> -->
  164. <!-- <el-form-item label="caseID" :label-width="formLabelWidth"><el-input v-model="form.caseId" autocomplete="off" /></el-form-item> -->
  165. <!-- <el-form-item label="bug创建人" :label-width="formLabelWidth"> <el-input v-model="form.creator" autocomplete="off" /></el-form-item> -->
  166. <!-- <el-form-item label="开始开发时间" :label-width="formLabelWidth"><el-input v-model="form.startDevTime" autocomplete="off" /></el-form-item> -->
  167. <!-- <el-form-item label="开始等待测试时间" :label-width="formLabelWidth"><el-input v-model="form.waitTestTime" autocomplete="off" /></el-form-item> -->
  168. <!-- <el-form-item label="创建时间" :label-width="formLabelWidth"><el-input v-model="form.gmtCreate" autocomplete="off" /></el-form-item> -->
  169. <!-- <el-form-item label="修改时间" :label-width="formLabelWidth"><el-input v-model="form.gmtModify" autocomplete="off" /></el-form-item> -->
  170. </el-form>
  171. <div slot="footer" class="dialog-footer">
  172. <el-button @click="dialogFormVisible = false">取 消</el-button>
  173. <el-button type="primary" @click="titName === '新建' ? createFormData(form) : queryFormData(form)">确 定</el-button>
  174. </div>
  175. </el-dialog>
  176. <el-dialog :visible.sync="dialogFormQuery" width="70%">
  177. <el-form :model="form" size="mini">
  178. <el-form-item :label-width="formLabelWidth" style="margin-bottom:-10px;"><span style="font-weight:bold;font-size:20px;margin-left:-60px;">主题 : </span>{{ form.bugName }}</el-form-item><hr>
  179. <div style="display:flex;">
  180. <div style="flex:1">
  181. <el-form-item label="任务 : " class="styline" :label-width="formLabelWidth1">{{ form.projectName }}</el-form-item>
  182. <el-form-item label="级别 : " :label-width="formLabelWidth1">{{ form.priority }}</el-form-item>
  183. <el-form-item label="reopen的次数 : " :label-width="formLabelWidth1">{{ form.reopenTimes }}</el-form-item>
  184. <el-form-item label="bug状态 : " :label-width="formLabelWidth1">{{ form.status }}</el-form-item>
  185. <el-form-item label="bug类型 : " :label-width="formLabelWidth1">{{ form.bugType }}</el-form-item>
  186. <el-form-item label="bug描述 : " :label-width="formLabelWidth1">{{ form.bugDescribe }}</el-form-item>
  187. <el-form-item v-show="statusShow" label="问题原因和修复方法" :label-width="formLabelWidth">{{ form.reasonsAndSolutionForTheProblem }}</el-form-item>
  188. <el-form-item label="问题原因 : " :label-width="formLabelWidth1">{{ form.reason }}</el-form-item>
  189. <el-form-item label="平台类型 : " :label-width="formLabelWidth1">{{ form.platformType }}</el-form-item>
  190. <el-form-item label="业务模块 : " :label-width="formLabelWidth1">{{ form.businessType }}</el-form-item>
  191. <el-form-item label="所处阶段 : " :label-width="formLabelWidth1">{{ form.stage }}</el-form-item>
  192. <el-form-item label="发现方法 : " :label-width="formLabelWidth1">{{ form.discoveryMethod }}</el-form-item>
  193. <el-form-item v-show="repairShow" label="修复结果 : " :label-width="formLabelWidth1">{{ form.repairResult }}</el-form-item>
  194. <el-form-item label="os类型 : " :label-width="formLabelWidth1">{{ form.osType }}</el-form-item>
  195. <el-form-item label="机型 : " :label-width="formLabelWidth1">{{ form.model }}</el-form-item>
  196. <el-form-item label="网络类型 : " :label-width="formLabelWidth1">{{ form.networkType }}</el-form-item>
  197. <el-form-item label="SDK版本 : " :label-width="formLabelWidth1">{{ form.sdkVersion }}</el-form-item>
  198. <el-form-item label="app版本号 : " :label-width="formLabelWidth1">{{ form.appVersion }}</el-form-item>
  199. <el-form-item label="地图类型 : " :label-width="formLabelWidth1">{{ form.mapType }}</el-form-item>
  200. <el-form-item label="地图版本号 : " :label-width="formLabelWidth1">{{ form.mapVersion }}</el-form-item>
  201. <el-form-item label="附件 : " :label-width="formLabelWidth1">{{ form.accessory }}</el-form-item>
  202. </div>
  203. <div style="flex:1; margin-left:30px;">
  204. <el-form-item label="业务线 : " :label-width="formLabelWidth1">{{ form.bizId }}</el-form-item>
  205. <el-form-item label="bug责任人 : " :label-width="formLabelWidth1">{{ form.assigner }}</el-form-item>
  206. <el-form-item label="bug创建人 : " :label-width="formLabelWidth1">{{ form.creator }}</el-form-item>
  207. <el-form-item label="bug处理人 : " :label-width="formLabelWidth1">{{ form.currentHandler }}</el-form-item>
  208. <el-form-item label="开始开发时间 : " :label-width="formLabelWidth1">{{ form.startDevTime }}</el-form-item>
  209. <el-form-item label="开始等待测试时间 : " :label-width="formLabelWidth1">{{ form.waitTestTime }}</el-form-item>
  210. <el-form-item label="创建时间 : " :label-width="formLabelWidth1">{{ form.gmtCreate }}</el-form-item>
  211. </div>
  212. </div>
  213. <!-- <el-form-item label="caseID" :label-width="formLabelWidth">{{ form.caseId }}</el-form-item> -->
  214. <!-- <el-form-item label="项目名" :label-width="formLabelWidth">{{ form.projectName }}</el-form-item> -->
  215. <!-- <el-form-item label="项目ID" :label-width="formLabelWidth">{{ form.projectId }}</el-form-item> -->
  216. <!-- <el-form-item label="测试计划ID" :label-width="formLabelWidth">{{ form.planId }}</el-form-item> -->
  217. <!-- <el-form-item label="逻辑删" :label-width="formLabelWidth">{{ form.isDelete }}</el-form-item> -->
  218. <!-- <el-form-item label="业务线" :label-width="formLabelWidth">{{ form.bizId }}</el-form-item> -->
  219. <!-- <el-form-item label="模块ID" :label-width="formLabelWidth">{{ form.moduleId }}</el-form-item> -->
  220. <!-- <el-form-item label="修改时间" :label-width="formLabelWidth">{{ form.gmtModify }}</el-form-item> -->
  221. </el-form>
  222. <div slot="footer" class="dialog-footer">
  223. <el-button type="primary" @click="dialogFormQuery = false">关 闭</el-button>
  224. </div>
  225. </el-dialog>
  226. </div>
  227. </template>
  228. <script>
  229. import { bugList, bugGet, bugDelete, bugUpdate, bugCreate, bugCopy, taskListCreate, bugGetEnum } from '@/api/defectManage'
  230. export default {
  231. name: 'DefectManagement',
  232. data() {
  233. return {
  234. bugTypeStr: [],
  235. bugStatusStr: [],
  236. bizOptions: [{ name: '万象', value: 101 }, { name: '企业级', value: 100 }, { name: '滴滴代驾', value: 261 }, { name: 'prado', value: 330 }, { name: 'carbo', value: 331 }, { name: '海马', value: 309 }],
  237. bugLevelStr: [{ name: 'p0', value: 0 }, { name: 'p1', value: 1 }, { name: 'p2', value: 2 }, { name: 'p3', value: 3 }],
  238. reasonStr: [],
  239. platformTypeStr: [],
  240. stageStr: [],
  241. discoveryMethodStr: [],
  242. businessTypeStr: [],
  243. bugStatusPriority: [],
  244. repairResultStr: [],
  245. isDeleteStr: [{ name: '保留', value: 0 }, { name: '删除', value: 1 }],
  246. serviceDataRules: {
  247. bizId: [{ required: true, message: '业务线不能为空', trigger: 'change' }],
  248. // bugName: [{ required: true, message: '主题不能为空', trigger: 'change' }],
  249. taskId: [{ required: true, message: '任务不能为空', trigger: 'change' }],
  250. // projectId: [{ required: true, message: '项目ID不能为空', trigger: 'change' }],
  251. bugType: [{ required: true, message: 'bug类型不能为空', trigger: 'change' }],
  252. discoveryMethod: [{ required: true, message: '发现方式不能为空', trigger: 'change' }],
  253. reason: [{ required: true, message: '问题原因不能为空', trigger: 'change' }],
  254. priority: [{ required: true, message: '级别不能为空', trigger: 'change' }],
  255. status: [{ required: true, message: '状态不能为空', trigger: 'change' }],
  256. platformType: [{ required: true, message: '平台类型不能为空', trigger: 'change' }],
  257. stage: [{ required: true, message: '所处阶段不能为空', trigger: 'change' }],
  258. assigner: [{ required: true, message: 'bug责任人不能为空', trigger: 'change' }],
  259. currentHandler: [{ required: true, message: 'bug处理人不能为空', trigger: 'change' }],
  260. bugDescribe: [{ required: true, message: 'bug描述不能为空', trigger: 'change' }],
  261. businessType: [{ required: true, message: '业务模块不能为空', trigger: 'change' }]
  262. },
  263. userInformation: localStorage.getItem('username'),
  264. userNames: localStorage.getItem('realname'),
  265. bizJson: localStorage.getItem('key'),
  266. pageSize: 20,
  267. curIndex: 0,
  268. total: 0,
  269. show2: '',
  270. form: {
  271. id: ''
  272. },
  273. tableData: [],
  274. queryCode: {},
  275. statusShow: false,
  276. repairShow: false,
  277. dialogFormVisible: false,
  278. dialogFormQuery: false,
  279. formLabelWidth: '11%',
  280. formLabelWidth1: '22%',
  281. serviceTypeEnumList: [],
  282. clientTypeEnumList: [],
  283. bizIdEnumList: [],
  284. objData: '',
  285. userData: '',
  286. titName: '',
  287. taskIdStr: '',
  288. fileList: [],
  289. fileDbList: []
  290. }
  291. },
  292. created() {
  293. this.getList()
  294. this.bugListSelect()
  295. },
  296. mounted() {
  297. this.getQueryData()
  298. },
  299. methods: {
  300. getList() {
  301. this.bizJson = localStorage.getItem('key')
  302. this.indexPage = {
  303. bizId: this.bizJson,
  304. pageSize: this.pageSize,
  305. curIndex: this.curIndex
  306. }
  307. bugList(this.indexPage).then(res => {
  308. this.tableData = res.data
  309. this.total = res.total
  310. })
  311. },
  312. bugListSelect() {
  313. bugGetEnum().then(res => {
  314. this.bugStatusStr = res.data.bugEnumList
  315. this.bugStatusPriority = res.data.priorityEnumList
  316. this.stageStr = res.data.bugStageEnumList
  317. this.reasonStr = res.data.reasonEnumList
  318. this.platformTypeStr = res.data.platformTypeEnumList
  319. this.bugTypeStr = res.data.bugTypeEnumList
  320. this.bugLevelStr = res.data.priorityEnumList
  321. this.discoveryMethodStr = res.data.discoveryMethodEnumList
  322. this.repairResultStr = res.data.repairResultEnumList
  323. this.clientTypeEnumList = res.data.clientTypeEnumList
  324. this.serviceTypeEnumList = res.data.serviceTypeEnumList
  325. this.bizIdEnumList = res.data.bizIdEnumList
  326. })
  327. },
  328. clickChangeType(e) {
  329. // console.log(this.form.businessType)
  330. // this.form.businessType = ''
  331. if (e === '服务端') {
  332. this.businessTypeStr = this.serviceTypeEnumList
  333. } else {
  334. this.businessTypeStr = this.clientTypeEnumList
  335. }
  336. },
  337. dataQuery(e) {
  338. this.bizJson = localStorage.getItem('key')
  339. this.indexPage = e
  340. this.curIndex = 0
  341. this.indexPage.bizId = this.bizJson
  342. this.indexPage.pageSize = this.pageSize
  343. this.indexPage.curIndex = this.curIndex
  344. bugList(this.indexPage).then(res => {
  345. this.tableData = res.data
  346. this.total = res.total
  347. })
  348. },
  349. dataQueryInSearch(e) {
  350. this.bizJson = localStorage.getItem('key')
  351. this.indexPage = e
  352. this.indexPage.bizId = this.bizJson
  353. this.indexPage.pageSize = this.pageSize
  354. this.indexPage.curIndex = this.curIndex
  355. bugList(this.indexPage).then(res => {
  356. this.tableData = res.data
  357. this.total = res.total
  358. })
  359. },
  360. // // 删除报告
  361. delePresentation(e) {
  362. this.$confirm('是否确认删除', '确认信息', {
  363. distinguishCancelAndClose: true,
  364. confirmButtonText: '确定',
  365. cancelButtonText: '取消'
  366. })
  367. .then(() => {
  368. this.userData = { id: '', ename: this.userInformation, name: this.userNames }
  369. bugDelete(this.userData, e).then(res => {
  370. this.getList()
  371. })
  372. this.$message({ type: 'success', message: '已删除' })
  373. })
  374. .catch(action => {
  375. this.$message({ type: 'success', message: '已取消' })
  376. })
  377. },
  378. copyArrange(e) {
  379. this.userData = { id: e, ename: this.userInformation, name: this.userNames }
  380. bugCopy(this.userData, e).then(res => {
  381. this.getList()
  382. this.successFun()
  383. })
  384. },
  385. queryPresentation(ele) {
  386. this.titName = '编辑'
  387. this.form = ele
  388. for (var a of this.bizOptions) {
  389. if (ele.bizId === a.value) {
  390. this.bizId = a.name
  391. }
  392. }
  393. // this.bizId = ele.bizId
  394. this.form.taskId = ele.taskId
  395. this.buildShow(ele)
  396. this.$router.push({ name: '更新Bug', params: { formData: this.form }, query: { id: this.form.id }})
  397. // this.dialogFormVisible = true
  398. },
  399. buildShow(ele) {
  400. if (ele.status === '待回归' || ele === 2) {
  401. this.statusShow = true
  402. }
  403. if (ele.repairResult === '已修复' || ele === 3) {
  404. this.repairShow = true
  405. }
  406. },
  407. queryFormData(form) {
  408. this.userData = { id: '', ename: this.userInformation, name: this.userNames }
  409. this.objData = { bugBaseInfo: this.form, user: this.userData }
  410. bugUpdate(this.objData).then(res => {
  411. res.code === 200 ? this.successFun() : this.errorFun()
  412. this.dialogFormVisible = false
  413. this.getList()
  414. })
  415. },
  416. getQueryData() {
  417. this.$route.query.code === 4 ? this.queryCode.taskId = this.$route.query.id : ''
  418. this.bizJson = localStorage.getItem('key')
  419. taskListCreate({ bizId: this.bizJson }).then(res => {
  420. this.taskIdStr = res.data
  421. })
  422. },
  423. handleSizeChange(size) {
  424. this.pageSize = size
  425. this.dataQueryInSearch(this.queryCode)
  426. },
  427. handleCurrentChange(curIndex) {
  428. this.curIndex = curIndex
  429. this.dataQueryInSearch(this.queryCode)
  430. },
  431. createdCode() {
  432. // this.titName = '新建'
  433. // this.dialogFormVisible = true
  434. this.form = {}
  435. // this.$route.query.code === 4 ? this.form.taskId = this.$route.query.id : ''
  436. // if (this.$refs['form'] !== undefined) {
  437. // this.$refs['form'].resetFields()
  438. // }
  439. this.$router.push({ name: '新建Bug' })
  440. },
  441. createFormData(form) {
  442. this.$refs['form'].validate((valid) => {
  443. if (valid) {
  444. // form.bizId = this.bizJson
  445. this.userData = { id: '', ename: this.userInformation, name: this.userNames }
  446. this.objData = { bugBaseInfo: form, user: this.userData }
  447. bugCreate(this.objData).then(res => {
  448. this.dialogFormVisible = false
  449. this.getList()
  450. res.code === 200 ? this.successFun() : this.errorFun()
  451. })
  452. }
  453. })
  454. },
  455. toReportView(e) {
  456. // this.dialogFormQuery = true
  457. // this.buildShow(e)
  458. bugGet(e).then(res => {
  459. this.form = res.data
  460. for (var a of this.bizIdEnumList) {
  461. res.data.bizId === a.code ? this.form.bizId = a.name : ''
  462. }
  463. this.$router.push({ name: '查看Bug', query: { id: this.form.id }})
  464. })
  465. },
  466. handleChange(file, fileList) {
  467. this.fileDbList = []
  468. this.fileList = fileList.slice(-3)
  469. for (var a of this.fileList) {
  470. this.fileDbList.push({ name: a.name, url: 'http' + a.response.url })
  471. }
  472. var arr = []
  473. for (var el of this.fileDbList) {
  474. arr.push({ 'name': el.name, 'url': el.response.url })
  475. }
  476. },
  477. successFun() {
  478. this.$notify({ title: 'Success', message: 'Created Successfully', type: 'success', duration: 2000 })
  479. },
  480. errorFun() {
  481. this.$notify({ title: 'Failed', message: 'Created Failed', type: 'error', duration: 2000 })
  482. }
  483. }
  484. }
  485. </script>
  486. <style lang="stylus" scoped>
  487. .adjustHeight >>> .el-dialog
  488. background-color white
  489. margin-top 5vh !important
  490. .adjustHeight >>> .el-dialog__body
  491. padding 30px 30px
  492. .set-background
  493. background-color white
  494. border-radius 10px
  495. .set-background >>> .el-form-item__content
  496. margin-left 0px !important
  497. </style>