qinzhipeng_v 5 éve
szülő
commit
5c7f412513

+ 1 - 1
src/views/Platform/bugManage/bugQuery.vue

@@ -84,7 +84,7 @@
             </el-table-column>
             <el-table-column label="" min-width="300">
               <template slot-scope="scope">
-                <a :href="scope.row.url" style="color:blue;">{{ scope.row.url }}</a>
+                <a target="_blank" :href="scope.row.url" style="color:blue;">{{ scope.row.url }}</a>
               </template>
             </el-table-column>
           </el-table>

+ 27 - 19
src/views/Platform/presentation/testPage.vue

@@ -27,7 +27,7 @@
                   </el-dropdown>
                 </span>
               </el-tree>
-              <el-input v-if="Folder_Show" ref="input1" v-model="add_Folder" size="mini" placeholder="新建文件夹" @blur="hide_input(add_Folder)" />
+              <el-input v-if="Folder_Show" ref="input1" v-model="add_Folder.name" size="mini" placeholder="新建文件夹" @blur="hide_input(add_Folder.name)" />
             </div>
           </el-aside>
           <el-container>
@@ -175,6 +175,7 @@ export default {
       successNum: '',
       startKey: '',
       obj: '',
+      add_Folder: {},
       node_Name: {
         name: ''
       }
@@ -190,15 +191,22 @@ export default {
   methods: {
     AllQueryFolderData() {
       queryTestPlanTree({ bizId: localStorage.getItem('key') }).then(res => {
-        for (var a of res.data) {
-          var arr = []
-          for (var b of a.taskNameMapList) {
-            var num = {}
-            num.label = b.taskName
-            num.id = b.id
-            arr.push(num)
+        if (res.data === '') {
+          this.node_Data = false
+          this.dataShow = true
+          for (var a of res.data) {
+            var arr = []
+            for (var b of a.taskNameMapList) {
+              var num = {}
+              num.label = b.taskName
+              num.id = b.id
+              arr.push(num)
+            }
+            this.data1.push({ bizId: a.bizId, id: a.id, label: a.projectName, children: arr })
           }
-          this.data1.push({ bizId: a.bizId, id: a.id, label: a.projectName, children: arr })
+        } else {
+          this.node_Data = true
+          this.dataShow = false
         }
       })
     },
@@ -225,7 +233,7 @@ export default {
     // 新建文件夹
     createFolder() {
       this.Folder_Show = true
-      this.add_Folder = ''
+      this.$set(this.add_Folder, 'name', '')
       this.node_Data = false
       setTimeout(() => { this.$refs.input1.focus() }, 100)
     },
@@ -351,15 +359,15 @@ export default {
         modifier: this.userInformation
       }
       createFolderData(this.formData).then(res => {
-      //   if (res.code === 200) {
-      //     this.$message({ message: res.msg, type: 'success', duration: 1000, offset: 150 })
-      //     this.data1 = []
-      //     this.AllQueryFolderData(this.bizJson)
-      //     this.add_Folder = ''
-      //   } else {
-      //     this.$message({ message: res.msg, type: 'error', duration: 1000, offset: 150 })
-      //     this.add_Folder = ''
-      //   }
+        if (res.code === 200) {
+          this.$message({ message: res.msg, type: 'success', duration: 1000, offset: 150 })
+          this.data1 = []
+          this.AllQueryFolderData(this.bizJson)
+          this.$set(this.add_Folder, 'name', '')
+        } else {
+          this.$message({ message: res.msg, type: 'error', duration: 1000, offset: 150 })
+          this.$set(this.add_Folder, 'name', '')
+        }
       })
     },
 

+ 1 - 2
src/views/Platform/useCase/createUse.vue

@@ -29,11 +29,10 @@
               <el-form-item label="API" style="flex:1; margin-left: 2%;"><el-input v-model="caseData.api" clearable placeholder="请输入" /></el-form-item>
             </el-col>
           </el-row>
-          <!-- http://star.xiaojukeji.com/upload/img.node -->
           <el-row>
             <el-col :span="21" style="display:flex;" class="upload">
               <el-form-item label="附件" style="flex:1">
-                <el-upload v-model="caseData.accessory" class="upload-demo" drag action="https://jsonplaceholder.typicode.com/posts/" multiple :on-success="handleAvatarSuccess" :on-progress="DisableButton">
+                <el-upload v-model="caseData.accessory" class="upload-demo" drag action="http://star.xiaojukeji.com/upload/img.node" multiple :on-success="handleAvatarSuccess" :on-progress="DisableButton">
                   <i class="el-icon-plus avatar-uploader-icon"> 添加图片 </i>
                 </el-upload>
               </el-form-item>

+ 30 - 12
src/views/Platform/useCase/queryUse.vue

@@ -6,40 +6,56 @@
           <el-form-item label="用例优先级:">
             {{ formLabelAlign.casePriorityName }}
           </el-form-item>
+
           <el-form-item label="API:">
             {{ formLabelAlign.api }}
           </el-form-item>
+
           <el-form-item label="前置条件:">
             {{ formLabelAlign.caseCondition }}
           </el-form-item>
-          <el-form-item label="预期结果:">
-            {{ formLabelAlign.expectedResult }}
-          </el-form-item>
-          <el-form-item label="附件:" />
-          <el-table :data="uptataKey" fit border style="width: 70%; margin: 0% 0 2% 0;">
-            <el-table-column label="文件名" min-width="150">
-              <template slot-scope="scope">{{ scope.row.name }}</template>
-            </el-table-column>
-            <el-table-column label="URL" min-width="300">
-              <template slot-scope="scope"><a :href="scope.row.url" style="color:blue;">{{ scope.row.url }}</a></template>
-            </el-table-column>
-          </el-table>
+
           <el-form-item label="备注:">
             {{ formLabelAlign.remark }}
           </el-form-item>
+
           <el-form-item label="创建人:">
             {{ formLabelAlign.creator }}
           </el-form-item>
+
           <el-form-item label="操作人:">
             {{ formLabelAlign.modifier }}
           </el-form-item>
+
           <el-form-item label="创建时间:">
             {{ formLabelAlign.createTime }}
           </el-form-item>
+
           <el-form-item label="修改时间:">
             {{ formLabelAlign.modifyTime }}
           </el-form-item>
+
+          <el-form-item label="附件:" />
+          <el-table :data="uptataKey" size="mini" fit border style="width: 70%; margin: 0% 0 2% 0;">
+            <el-table-column label="文件名" min-width="150">
+              <template slot-scope="scope">{{ scope.row.name }}</template>
+            </el-table-column>
+            <el-table-column label="URL" min-width="300">
+              <template slot-scope="scope"><a :href="scope.row.url" style="color:blue;">{{ scope.row.url }}</a></template>
+            </el-table-column>
+          </el-table>
+
+          <el-form-item label="预期结果:" />
+          <el-table :data="uptata_Key" size="mini" fit border style="width: 70%; margin: 0% 0 2% 0;">
+            <el-table-column label="执行步骤" min-width="150">
+              <template slot-scope="scope">{{ scope.row.description }}</template>
+            </el-table-column>
+            <el-table-column label="预期结果" min-width="300">
+              <template slot-scope="scope">{{ scope.row.expectedResult }}</template>
+            </el-table-column>
+          </el-table>
         </el-form>
+
         <div align="center" style="margin: 5% 0;">
           <el-button @click="$router.go(-1)">返 回</el-button>
         </div>
@@ -56,6 +72,7 @@ export default {
       formLabelAlign: {},
       caseFolderId: '',
       id: '',
+      uptata_Key: [],
       uptataKey: [],
       url: ''
     }
@@ -72,6 +89,7 @@ export default {
       queryCase({ id: this.id[1], caseFolderId: this.caseFolderId[1] }).then(res => {
         for (var el of res.data.list) {
           el.id === Number(this.id[1]) ? this.formLabelAlign = el : ''
+          this.uptata_Key = JSON.parse(this.formLabelAlign.description.split('{}')[0])
           var obj = JSON.parse(this.formLabelAlign.accessory.split('{}')[0])
           for (var a of obj) {
             this.uptataKey.push(a)

+ 1 - 1
src/views/Platform/useCase/updateUse.vue

@@ -65,7 +65,7 @@
                 <template slot-scope="scope">{{ scope.row.name }}</template>
               </el-table-column>
               <el-table-column label="" min-width="300">
-                <template slot-scope="scope"><a :href="scope.row.url" style="color:blue;">{{ scope.row.url }}</a></template>
+                <template slot-scope="scope"><a target="_blank" :href="scope.row.url" style="color:blue;">{{ scope.row.url }}</a></template>
               </el-table-column>
               <el-table-column fixed="right" label="" width="50" align="center">
                 <template slot-scope="scope">

+ 83 - 24
src/views/Platform/useCasePage.vue

@@ -1,7 +1,7 @@
 <template>
   <div id="init-window" style="position:relative; min-height:95vh; background:#F2F3F6;">
     <router-view />
-    <div v-show="div1" style="position: absolute;width: 100%;">
+    <div style="position: absolute;width: 100%;">
       <div style="background:#F2F3F6;">
         <el-container>
           <el-aside width="17%" style=" background: #FFF;margin: 1% 0 1% 1%; border-radius:8px;">
@@ -83,9 +83,9 @@
               </el-row>
             </el-header>
             <el-main style="background:#ffffff; width:98%;margin:0% 1% 1% 1%; font-size:14px;border-radius:8px;">
-              <el-button type="primary" style="margin-left:1%;width:10%;" @click="uploadFile()">导入</el-button>
+              <el-button type="primary" style="margin-left:1%;" @click="uploadFile()">导入</el-button>
               <el-tooltip class="item" effect="light" content="导出勾选项,没有勾选将导出excel模版" placement="top">
-                <el-button style="margin-left:2%;width:10%;" @click="exportExcel">导出</el-button>
+                <el-button style="margin-left:2%;" @click="exportExcel">导出</el-button>
               </el-tooltip>
               <!-- 主页table -->
               <el-table :data="gridData" size="mini" :header-cell-style="{ background: '#F0F2F4', color: '#333B4A' }" style="width: 100%; font-size:13px;margin-top:1%;" border @select-all="clickAllData" @selection-change="handleSelectionChange">
@@ -134,10 +134,10 @@
 <script>
 import { createFolderData, queryAllFolderData, queryCasesData, deleteFolderData, deleteCaseData, updateFolderData, caseUpdateFolderName } from '@/api/caseProject.js'
 import { mockUrl } from '@/apiConfig/api'
-import FileSaver from 'file-saver'
+// import FileSaver from 'file-saver'
 import axios from 'axios'
-import XLSX from 'xlsx'
-import Utils from '../../util.js'
+// import XLSX from 'xlsx'
+// import Utils from '../../util.js'
 
 export default {
   name: 'UseCasePage',
@@ -145,7 +145,6 @@ export default {
     return {
       key_arr: [],
       fileList: [],
-      div1: true,
       id: '',
       label: '',
       node_Name: {},
@@ -184,10 +183,10 @@ export default {
     this.AllQueryFolderData(localStorage.getItem('key'))
   },
   mounted() {
-    var that = this
-    Utils.$on('demo', function(msg) {
-      that.AllQueryFolderData(msg)
-    })
+    // var that = this
+    // Utils.$on('demo', function(msg) {
+    //   that.AllQueryFolderData(msg)
+    // })
     this.imFile = document.getElementById('imFile')
     this.initWindow()
     // this.AllQueryFolderData(localStorage.getItem('key'))
@@ -279,9 +278,9 @@ export default {
         modifier: this.userInformation
       }
       createFolderData(this.formData).then(res => {
+        console.log(res.data)
         if (res.code === 200) {
-          var id = 1
-          const newChild = { id: id++, label: '新建子节点', children: [] }
+          const newChild = { id: res.data, label: '新建子节点', children: [] }
           if (!data.children) {
             this.$set(data, 'children', [])
           }
@@ -427,7 +426,6 @@ export default {
             this.$router.push({ path: '/Platform/useCasePage/queryUse', query: { id: ele.id, caseFolderId: ele.caseFolderId }})
             break
           case 2: // 编辑
-            // this.div1 = false
             this.$router.push({ path: '/Platform/useCasePage/createUse', query: { id: ele.id, caseFolderId: ele.caseFolderId }})
             break
           case 3: // 新增
@@ -437,7 +435,10 @@ export default {
       }
     },
     handleSelectionChange(val) {
-      this.tableData = val
+      this.tableData = []
+      for (var e of val) {
+        this.tableData.push(e.id)
+      }
     },
 
     // nav
@@ -550,15 +551,58 @@ export default {
 
     //  导出
     exportExcel() {
-      if (this.startId === '') {
-        this.$message({ message: '提示,👈请选择目录', type: 'success', duration: 1000, offset: 150 })
+      var case_from = {
+        accessory: '/Users/didi/Desktop',
+        caseFolderId: this.startId,
+        caseIds: this.tableData
+      }
+      axios({
+        method: 'post',
+        url: 'http://10.179.24.176:8980/case/downloadCase', // 请求地址
+        data: case_from, // 参数
+        responseType: 'blob' // 表明返回服务器返回的数据类型
+      })
+        .then((res) => {
+          const content = res
+          const blob = new Blob([content])
+          if ('download' in document.createElement('a')) { // 非IE下载
+            const elink = document.createElement('a')
+            elink.download = '导出信息.xls'
+            elink.style.display = 'none'
+            elink.href = URL.createObjectURL(blob)
+            document.body.appendChild(elink)
+            elink.click()
+            URL.revokeObjectURL(elink.href) // 释放URL 对象
+            document.body.removeChild(elink)
+          }
+        })
+      // if (this.startId === '') {
+      //   this.$message({ message: '提示,👈请选择目录', type: 'success', duration: 1000, offset: 150 })
+      // } else {
+      //   var wb = XLSX.utils.table_to_book(document.querySelector('#out-table'))
+      //   var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' })
+      //   try {
+      //     FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), 'sheetjs.xlsx')
+      //   } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) }
+      //   return wbout
+      // }
+    },
+    downLoadXls(data, filename) {
+      // var blob = new Blob([data], {type: 'application/vnd.ms-excel'})接收的是blob,若接收的是文件流,需要转化一下
+      if (typeof window.chrome !== 'undefined') {
+        // Chrome version
+        var link = document.createElement('a')
+        link.href = window.URL.createObjectURL(data)
+        link.download = filename
+        link.click()
+      } else if (typeof window.navigator.msSaveBlob !== 'undefined') {
+        // IE version
+        var blob = new Blob([data], { type: 'application/force-download' })
+        window.navigator.msSaveBlob(blob, filename)
       } else {
-        var wb = XLSX.utils.table_to_book(document.querySelector('#out-table'))
-        var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' })
-        try {
-          FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), 'sheetjs.xlsx')
-        } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) }
-        return wbout
+        // Firefox version
+        var file = new File([data], filename, { type: 'application/force-download' })
+        window.open(URL.createObjectURL(file))
       }
     },
 
@@ -623,8 +667,10 @@ export default {
 
     updateCaseListData() {
       this.createParticipation.caseFolderId = this.startId
+      this.createParticipation.pageSize = this.pageSize
+      this.createParticipation.curIndex = this.curIndex
       queryCasesData(this.createParticipation).then(res => {
-        this.gridData = [res.data]
+        this.gridData = res.data.list
         this.$message({ type: res.msg, message: res.msg, duration: 1000 })
       })
     }
@@ -654,4 +700,17 @@ export default {
     background: #F9F9FA !important;
     border-color: #F9F9FA !important;
   }
+   .nav_Input .el-tree-node__children .custom-tree-node{
+      color: #6F7C93;
+  }
+  .nav_Input .el-tree-node__content {
+    color: #333B4A;
+  }
+  .nav_Input .el-tree-node__content .el-tree-node__expand-icon{
+      color: #333B4A;
+  }
+  .nav_Input .el-tree-node__expand-icon.is-leaf{
+        color: transparent !important;
+        cursor: default !important
+  }
 </style>