defectManagement.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487
  1. <template>
  2. <div id="init-window" style="position:relative">
  3. <router-view />
  4. <!--缺陷管理-->
  5. <div style="position: absolute;width: 100%;">
  6. <div style="margin: 2% 0;">
  7. <el-form :model="queryCode">
  8. <el-select v-model="queryCode.taskId" clearable placeholder="任务" style="width:10%;margin:0 5px;">
  9. <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
  10. </el-select>
  11. <el-select v-model="queryCode.status" clearable placeholder="bug状态" style="width:10%;margin-right:5px;">
  12. <el-option v-for="item in bugStatusStr" :key="item.code" :label="item.name" :value="item.code" />
  13. </el-select>
  14. <el-input v-model="queryCode.currentHandler" clearable filterable placeholder="经办人" style="width:12%;margin-right:5px;" />
  15. <el-input v-model="queryCode.creator" clearable filterable placeholder="创建人" style="width:12%;margin-right:5px;" />
  16. <el-date-picker v-model="queryCode.gmtCreateBegin" style="width:12%;margin-right:5px;" type="datetime" placeholder="创建时间" /> -
  17. <el-date-picker v-model="queryCode.gmtCreateEnd" style="width:12%;margin-right:5px;" type="datetime" placeholder="截止时间" />
  18. <el-input v-model="queryCode.bugName" clearable filterable placeholder="主题" style="width:12%;margin-right:5px;" />
  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 style="width: 950%">
  24. <el-table-column label="ID" width="120" align="center">
  25. <template slot-scope="scope"><span>{{ scope.row.id }}</span></template>
  26. </el-table-column>
  27. <el-table-column label="主题" 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="处理人" width="150" align="center">
  31. <template slot-scope="scope"><span>{{ scope.row.currentHandler }}</span></template>
  32. </el-table-column>
  33. <el-table-column label="创建日期" width="250" align="center">
  34. <template slot-scope="scope">
  35. <span>{{ scope.row.gmtCreate }}</span>
  36. </template>
  37. </el-table-column>
  38. <el-table-column label="级别" width="150" align="center">
  39. <template slot-scope="scope"><span>{{ scope.row.priority }}</span></template>
  40. </el-table-column>
  41. <el-table-column label="状态" width="150" align="center">
  42. <template slot-scope="scope"><span>{{ scope.row.status }}</span></template>
  43. </el-table-column>
  44. <el-table-column fixed="right" label="操作" width="150" align="center">
  45. <template slot-scope="scope">
  46. <el-button size="mini" type="primary" @click="queryPresentation(scope.row)">更新</el-button>
  47. <el-button size="mini" type="primary" @click="delePresentation(scope.row.id)">删除</el-button>
  48. </template>
  49. </el-table-column>
  50. </el-table>
  51. <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" />
  52. <el-dialog class="adjustHeight" :title="titName" :visible.sync="dialogFormVisible" width="70%">
  53. <el-form ref="form" :model="form" :rules="serviceDataRules">
  54. <div class="set-background">
  55. <el-form-item label="标题" :label-width="formLabelWidth"><el-input v-model="form.bugName" autocomplete="off" placeholder="普惠质量产品工具平台..." style="width:77.2%;" /></el-form-item>
  56. <div style="display:flex;">
  57. <el-form-item style="flex-grow:1" prop="bizId" label="业务线" :label-width="formLabelWidth1">
  58. <el-select v-model="form.bizId" placeholder="业务线" style="width:54.5%;">
  59. <el-option v-for="item in bizOptions" :key="item.value" :label="item.name" :value="item.value" />
  60. </el-select>
  61. </el-form-item>
  62. <el-form-item style="flex-grow:1" label="业务模块" prop="businessType" :label-width="formLabelWidth1">
  63. <el-select v-model="form.businessType" placeholder="业务模块" style="width:54.5%;">
  64. <el-option v-for="item in businessTypeStr" :key="item.name" :label="item.name" :value="item.name" />
  65. </el-select>
  66. </el-form-item>
  67. </div>
  68. <div style="display:flex;">
  69. <el-form-item style="flex-grow:1" prop="taskId" label="任务" :label-width="formLabelWidth1">
  70. <el-select v-model="form.taskId" placeholder="任务" style="width:54.5%;">
  71. <el-option v-for="item in taskIdStr" :key="item.id" :label="item.name" :value="item.id" />
  72. </el-select>
  73. </el-form-item>
  74. <el-form-item style="flex-grow:1" label="平台类型" prop="platformType" :label-width="formLabelWidth1">
  75. <el-select v-model="form.platformType" placeholder="平台类型" style="width:54.5%;" @change="clickChangeType(form.platformType)">
  76. <el-option v-for="item in platformTypeStr" :key="item.name" :label="item.name" :value="item.name" />
  77. </el-select>
  78. </el-form-item>
  79. </div>
  80. <div style="display:flex;">
  81. <el-form-item style="flex-grow:1" label="类型" prop="bugType" :label-width="formLabelWidth1">
  82. <el-select v-model="form.bugType" style="width:54.5%;" placeholder="类型">
  83. <el-option v-for="item in bugTypeStr" :key="item.name" :label="item.name" :value="item.name" />
  84. </el-select>
  85. </el-form-item>
  86. <el-form-item style="flex-grow:1" label="发现方式" prop="discoveryMethod" :label-width="formLabelWidth1">
  87. <el-select v-model="form.discoveryMethod" style="width:54.5%;" placeholder="发现方式">
  88. <el-option v-for="item in discoveryMethodStr" :key="item.name" :label="item.name" :value="item.name" />
  89. </el-select>
  90. </el-form-item>
  91. </div>
  92. <div style="display:flex;">
  93. <el-form-item style="flex-grow:1" label="级别" prop="priority" :label-width="formLabelWidth1">
  94. <el-select v-model="form.priority" style="width:54.5%;" placeholder="级别">
  95. <el-option v-for="item in bugLevelStr" :key="item.name" :label="item.name" :value="item.name" />
  96. </el-select>
  97. </el-form-item>
  98. <el-form-item style="flex-grow:1" label="问题原因" prop="reason" :label-width="formLabelWidth1">
  99. <el-select v-model="form.reason" style="width:54.5%;" placeholder="问题原因">
  100. <el-option v-for="item in reasonStr" :key="item.name" :label="item.name" :value="item.name" />
  101. </el-select>
  102. </el-form-item>
  103. </div>
  104. <div style="display:flex;">
  105. <el-form-item style="flex-grow:1" label="状态" prop="status" :label-width="formLabelWidth1">
  106. <el-select v-model="form.status" placeholder="状态" style="width:54.5%;" @change="buildShow(form.status)">
  107. <el-option v-for="item in bugStatusStr" :key="item.name" :label="item.name" :value="item.name" />
  108. </el-select>
  109. </el-form-item>
  110. <el-form-item style="flex-grow:1" label="所处阶段" prop="stage" :label-width="formLabelWidth1">
  111. <el-select v-model="form.stage" placeholder="所处阶段" style="width:54.5%;">
  112. <el-option v-for="item in stageStr" :key="item.name" :label="item.name" :value="item.name" />
  113. </el-select>
  114. </el-form-item>
  115. </div>
  116. <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>
  117. </div>
  118. <div style="display:flex;">
  119. <el-form-item label="创建人" :label-width="formLabelWidth"><el-input v-model="form.creator" autocomplete="off" style="width:67%;" /></el-form-item>
  120. <el-form-item label="bug责任人" prop="assigner" :label-width="formLabelWidth"><el-input v-model="form.assigner" autocomplete="off" style="width:67%;" /></el-form-item>
  121. </div>
  122. <div style="flex:1">
  123. <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>
  124. </div>
  125. <div style="flex:1">
  126. <el-form-item label="bug处理人" prop="currentHandler" :label-width="formLabelWidth"><el-input v-model="form.currentHandler" autocomplete="off" style="width:67%;" /></el-form-item>
  127. <el-form-item label="app版本号" :label-width="formLabelWidth"><el-input v-model="form.appVersion" autocomplete="off" style="width:67%;" /></el-form-item>
  128. <el-form-item label="地图类型" :label-width="formLabelWidth"><el-input v-model="form.mapType" autocomplete="off" style="width:67%;" /></el-form-item>
  129. <el-form-item label="地图版本号" :label-width="formLabelWidth"><el-input v-model="form.mapVersion" autocomplete="off" style="width:67%;" /></el-form-item>
  130. <el-form-item label="SDK版本" :label-width="formLabelWidth"><el-input v-model="form.sdkVersion" autocomplete="off" style="width:67%;" /></el-form-item>
  131. <el-form-item v-show="repairShow" label="修复结果" :label-width="formLabelWidth">
  132. <el-select v-model="form.repairResult" placeholder="发现方法">
  133. <el-option v-for="item in repairResultStr" :key="item.name" :label="item.name" :value="item.name" />
  134. </el-select>
  135. </el-form-item>
  136. </div>
  137. <el-form-item label="附件" :label-width="formLabelWidth">
  138. <el-upload
  139. class="upload-demo"
  140. multiple
  141. capture
  142. accept="image/jpeg, image/png, image/gif, audio/mp4, video/mp4, audio/mpeg, application/vnd.ms-excel"
  143. :on-change="handleChange"
  144. :file-list="fileList"
  145. action="http://page-daily.kuaidadi.com/upload/img.node"
  146. >
  147. <!-- action="http://page-daily.kuaidadi.com/upload/img.node" 线下 -->
  148. <!-- action="http://star.xiaojukeji.com/upload/img.node" 线上 -->
  149. <!-- action="https://jsonplaceholder.typicode.com/posts/" 原始地址-->
  150. <el-button size="small" type="primary">点击上传</el-button>
  151. </el-upload>
  152. </el-form-item>
  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. </div>
  228. </template>
  229. <script>
  230. import { bugList, bugGet, bugDelete, bugUpdate, bugCreate, taskListCreate, bugGetEnum } from '@/api/defectManage'
  231. export default {
  232. name: 'DefectManagement',
  233. data() {
  234. return {
  235. bugTypeStr: [],
  236. bugStatusStr: [],
  237. bizOptions: [{ name: '万象', value: 101 }, { name: '企业级', value: 100 }, { name: '滴滴代驾', value: 261 }, { name: 'prado', value: 330 }, { name: 'carbo', value: 331 }, { name: '海马', value: 309 }],
  238. bugLevelStr: [{ name: 'p0', value: 0 }, { name: 'p1', value: 1 }, { name: 'p2', value: 2 }, { name: 'p3', value: 3 }],
  239. reasonStr: [],
  240. platformTypeStr: [],
  241. stageStr: [],
  242. discoveryMethodStr: [],
  243. businessTypeStr: [],
  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: 5,
  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. }
  290. },
  291. created() {
  292. this.getList()
  293. this.bugListSelect()
  294. },
  295. mounted() {
  296. this.getQueryData()
  297. this.initWindow()
  298. },
  299. methods: {
  300. initWindow() {
  301. if (!document.getElementById('window-judge')) {
  302. document.getElementById('init-window').parentNode.style.overflow = 'auto'
  303. } else {
  304. document.getElementById('init-window').parentNode.style.overflow = 'hidden'
  305. }
  306. },
  307. getList() {
  308. this.bizJson = localStorage.getItem('key')
  309. this.indexPage = {
  310. bizId: this.bizJson,
  311. pageSize: this.pageSize,
  312. curIndex: this.curIndex
  313. }
  314. bugList(this.indexPage).then(res => {
  315. this.tableData = res.data
  316. this.total = res.total
  317. })
  318. },
  319. bugListSelect() {
  320. bugGetEnum().then(res => {
  321. this.bugStatusStr = res.data.bugEnumList
  322. this.stageStr = res.data.bugStageEnumList
  323. this.reasonStr = res.data.reasonEnumList
  324. this.platformTypeStr = res.data.platformTypeEnumList
  325. this.bugTypeStr = res.data.bugTypeEnumList
  326. this.bugLevelStr = res.data.priorityEnumList
  327. this.discoveryMethodStr = res.data.discoveryMethodEnumList
  328. this.repairResultStr = res.data.repairResultEnumList
  329. this.clientTypeEnumList = res.data.clientTypeEnumList
  330. this.serviceTypeEnumList = res.data.serviceTypeEnumList
  331. this.bizIdEnumList = res.data.bizIdEnumList
  332. })
  333. },
  334. clickChangeType(e) {
  335. // console.log(this.form.businessType)
  336. // this.form.businessType = ''
  337. if (e === '服务端') {
  338. this.businessTypeStr = this.serviceTypeEnumList
  339. } else {
  340. this.businessTypeStr = this.clientTypeEnumList
  341. }
  342. },
  343. dataQuery(e) {
  344. this.bizJson = localStorage.getItem('key')
  345. this.indexPage = e
  346. this.indexPage.bizId = this.bizJson
  347. this.indexPage.pageSize = this.pageSize
  348. this.indexPage.curIndex = this.curIndex
  349. bugList(this.indexPage).then(res => {
  350. this.tableData = res.data
  351. })
  352. },
  353. // // 删除报告
  354. delePresentation(e) {
  355. this.$confirm('是否确认删除', '确认信息', {
  356. distinguishCancelAndClose: true,
  357. confirmButtonText: '确定',
  358. cancelButtonText: '取消'
  359. })
  360. .then(() => {
  361. this.userData = { id: '', ename: this.userInformation, name: this.userNames }
  362. bugDelete(this.userData, e).then(res => {
  363. this.getList()
  364. })
  365. this.$message({ type: 'success', message: '已删除' })
  366. })
  367. .catch(action => {
  368. this.$message({ type: 'success', message: '已取消' })
  369. })
  370. },
  371. queryPresentation(ele) {
  372. this.titName = '编辑'
  373. this.form = ele
  374. for (var a of this.bizOptions) {
  375. if (ele.bizId === a.value) {
  376. this.bizId = a.name
  377. }
  378. }
  379. // this.bizId = ele.bizId
  380. this.form.taskId = ele.taskId
  381. this.buildShow(ele)
  382. this.$router.push({ name: '更新Bug', params: { formData: this.form }, query: { id: this.form.id }})
  383. // this.dialogFormVisible = true
  384. },
  385. buildShow(ele) {
  386. if (ele.status === '待回归' || ele === 2) {
  387. this.statusShow = true
  388. }
  389. if (ele.repairResult === '已修复' || ele === 3) {
  390. this.repairShow = true
  391. }
  392. },
  393. queryFormData(form) {
  394. this.userData = { id: '', ename: this.userInformation, name: this.userNames }
  395. this.objData = { bugBaseInfo: this.form, user: this.userData }
  396. bugUpdate(this.objData).then(res => {
  397. res.code === 200 ? this.successFun() : this.errorFun()
  398. this.dialogFormVisible = false
  399. this.getList()
  400. })
  401. },
  402. getQueryData() {
  403. this.$route.query.code === 4 ? this.queryCode.taskId = this.$route.query.id : ''
  404. this.bizJson = localStorage.getItem('key')
  405. taskListCreate({ bizId: this.bizJson }).then(res => {
  406. this.taskIdStr = res.data
  407. })
  408. },
  409. handleSizeChange(size) {
  410. this.pageSize = size
  411. this.getList()
  412. },
  413. handleCurrentChange(curIndex) {
  414. this.curIndex = curIndex
  415. this.getList()
  416. },
  417. createdCode() {
  418. // this.titName = '新建'
  419. // this.dialogFormVisible = true
  420. this.form = {}
  421. // this.$route.query.code === 4 ? this.form.taskId = this.$route.query.id : ''
  422. // if (this.$refs['form'] !== undefined) {
  423. // this.$refs['form'].resetFields()
  424. // }
  425. this.$router.push({ name: '新建Bug' })
  426. },
  427. createFormData(form) {
  428. this.$refs['form'].validate((valid) => {
  429. if (valid) {
  430. // form.bizId = this.bizJson
  431. this.userData = { id: '', ename: this.userInformation, name: this.userNames }
  432. this.objData = { bugBaseInfo: form, user: this.userData }
  433. bugCreate(this.objData).then(res => {
  434. this.dialogFormVisible = false
  435. this.getList()
  436. res.code === 200 ? this.successFun() : this.errorFun()
  437. })
  438. }
  439. })
  440. },
  441. toReportView(e) {
  442. // this.dialogFormQuery = true
  443. // this.buildShow(e)
  444. bugGet(e).then(res => {
  445. this.form = res.data
  446. for (var a of this.bizIdEnumList) {
  447. res.data.bizId === a.code ? this.form.bizId = a.name : ''
  448. }
  449. this.$router.push({ name: '查看Bug', query: { id: this.form.id }})
  450. })
  451. },
  452. handleChange(file, fileList) {
  453. this.fileList = fileList.slice(-3)
  454. console.log(this.fileList)
  455. },
  456. successFun() {
  457. this.$notify({ title: 'Success', message: 'Created Successfully', type: 'success', duration: 2000 })
  458. },
  459. errorFun() {
  460. this.$notify({ title: 'Failed', message: 'Created Failed', type: 'error', duration: 2000 })
  461. }
  462. }
  463. }
  464. </script>
  465. <style lang="stylus" scoped>
  466. .adjustHeight >>> .el-dialog
  467. background-color white
  468. margin-top 5vh !important
  469. .adjustHeight >>> .el-dialog__body
  470. padding 30px 30px
  471. .set-background
  472. background-color white
  473. border-radius 10px
  474. .set-background >>> .el-form-item__content
  475. margin-left 0px !important
  476. </style>