qinzhipeng_v 5 gadi atpakaļ
vecāks
revīzija
38280ad3ca

+ 84 - 78
src/views/Platform/useCase/createUse.vue

@@ -25,66 +25,69 @@
         </el-form>
       </el-header>
       <el-main style="background:#ffffff;height:auto; width:94%;margin: 0 3% 3% 3%; font-size:14px;border-radius:8px;">
-        <div v-for="(item, index) in arr" ref="for" :key="index">
-          <div ref="div1">
-            <div style="box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04); margin-bottom:2%;">
-              <el-form :model="caseInfos_List" label-width="90pt">
-                <el-row>
-                  <el-col :span="20" style="margin:2% 0 0 0; white-space:nowrap;">
-                    <el-form-item label="执行步骤">
-                      <el-input v-model="caseInfos_List.description" type="textarea" :rows="4" placeholder="请输入内容" />
-                      <el-button v-show="plus" size="mini" type="primary" icon="el-icon-plus" style="margin-bottom: 6%;" @click="addform(caseData, key)" />
-                      <el-button v-show="plus" size="mini" icon="el-icon-minus" @click="deleteData" />
-                    </el-form-item>
-                  </el-col>
-                </el-row>
-                <el-row>
-                  <el-col :span="22">
-                    <el-form-item label="预期结果">
-                      <el-input v-model="caseInfos_List.expectedResult" placeholder="请输入内容" />
-                    </el-form-item>
-                  </el-col>
-                </el-row>
-                <div style="display:flex;">
-                  <el-row style="flex:1;">
-                    <el-col :span="22">
-                      <el-form-item label="附件">
-                        <el-upload class="upload-demo" drag action="https://jsonplaceholder.typicode.com/posts/" multiple :on-success="handleAvatarSuccess" :on-progress="DisableButton">
-                          <i class="el-icon-plus avatar-uploader-icon"> 添加图片 </i>
-                        </el-upload>
-                      </el-form-item>
-                    </el-col>
-                  </el-row>
-                  <el-row style="flex:1;">
-                    <el-col :span="20">
-                      <el-form-item label="备注">
-                        <el-input v-model="caseInfos_List.remark" type="textarea" :rows="8" placeholder="请输入内容" />
-                      </el-form-item>
-                    </el-col>
-                  </el-row>
-                </div>
-                <div v-show="btn_show" align="center" class="cla">
-                  <el-table v-show="btn_show" :data="uptataKey" fit style="width: 90%;">
-                    <el-table-column label="" min-width="150">
-                      <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>
-                    </el-table-column>
-                    <el-table-column fixed="right" label="" width="50" align="center">
-                      <template slot-scope="scope">
-                        <el-button class="deleteSty" @click="deleteURL(scope.row)"> x </el-button>
-                      </template>
-                    </el-table-column>
-                  </el-table>
-                </div>
-              </el-form>
-            </div>
+        <!-- <div style="box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04); margin-bottom:2%;"> -->
+        <el-form v-for="(item,index) in data" :key="index" label-width="80px" :model="item" style="box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04); margin-bottom:2%;">
+          <el-row>
+            <el-col :span="20" style="margin:2% 0 0 0; white-space:nowrap;">
+              <el-form-item label="执行步骤">
+                <el-input v-model="item.description" type="textarea" :rows="4" placeholder="请输入内容" />
+                <el-button v-show="plus" size="mini" type="primary" icon="el-icon-plus" style="margin-bottom: 6%;" @click="add" />
+                <el-button v-show="plus" size="mini" icon="el-icon-minus" @click="deleteData(index)" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="22">
+              <el-form-item label="预期结果">
+                <el-input v-model="item.expectedResult" placeholder="请输入内容" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <div style="display:flex;">
+            <el-row style="flex:1;">
+              <!-- <el-col :span="22">
+                <el-form-item label="附件">
+                  <el-upload v-model="item.accessory" class="upload-demo" drag action="https://jsonplaceholder.typicode.com/posts/" multiple :on-success="handleAvatarSuccess" :on-progress="DisableButton">
+                    <i class="el-icon-plus avatar-uploader-icon"> 添加图片 </i>
+                  </el-upload>
+                </el-form-item>
+              </el-col> -->
+              <el-col :span="22">
+                <el-form-item label="附件">
+                  <el-upload v-model="item.accessory" class="upload-demo" drag action="https://jsonplaceholder.typicode.com/posts/" multiple :on-success="(response, file, fileList)=>{return constractSuccUpload(response, file, fileList,index)}" :on-progress="DisableButton">
+                    <i class="el-icon-plus avatar-uploader-icon"> 添加图片 </i>
+                  </el-upload>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row style="flex:1;">
+              <el-col :span="20">
+                <el-form-item label="备注">
+                  <el-input v-model="item.remark" type="textarea" :rows="8" placeholder="请输入内容" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <div v-show="btn_show" align="center" class="cla">
+            <el-table v-show="btn_show" :data="uptataKey" fit style="width: 90%;">
+              <el-table-column label="" min-width="150">
+                <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>
+              </el-table-column>
+              <el-table-column fixed="right" label="" width="50" align="center">
+                <template slot-scope="scope">
+                  <el-button class="deleteSty" @click="deleteURL(scope.row)"> x </el-button>
+                </template>
+              </el-table-column>
+            </el-table>
           </div>
-        </div>
+        </el-form>
+        <!-- </div> -->
         <el-row>
           <el-col :span="22" style="text-align:right; ">
-            <el-button :disabled="dis" type="primary" @click="caseCreateCase(caseData, titleName, caseInfos_List)">保 存</el-button>
+            <el-button :disabled="dis" type="primary" @click="caseCreateCase(caseData, titleName)">保 存</el-button>
             <el-button style="margin:9% 0 0 4%;" @click="Return">取 消</el-button>
           </el-col>
         </el-row>
@@ -100,15 +103,15 @@ import { createFolderData, createCaseData, updateCaseData, queryCasesData } from
 export default {
   data() {
     return {
+      data: [{ description: '', expectedResult: '', remark: '', accessory: '' }],
       startId: '',
       caseFolderId: '',
       caseData: {},
-      add_obj: {},
-      caseInfos_List: {},
       btn_show: true,
       plus: true,
       dis: false,
       id: '',
+      tableList: [],
       titleName: '',
       uptataKey: [],
       createFormData: {
@@ -117,8 +120,7 @@ export default {
         casePriority: [{ required: true, message: '用例优先级不能为空', trigger: 'change' }]
       },
       textarea: '',
-      priorityStrings: [{ name: 'p0', value: 0 }, { name: 'p1', value: 1 }, { name: 'p2', value: 2 }, { name: 'p3', value: 3 }],
-      arr: [`<div style="box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04); margin-bottom:2%;"><el-form ref="caseData" :model="caseData" label-width="90pt"><el-row><el-col :span="20" style="margin:2% 0 0 0; white-space:nowrap;"><el-form-item label="执行步骤"><el-input v-model="textarea" type="textarea" :rows="4" placeholder="请输入内容" /><el-button id="addData" size="mini" type="primary" icon="el-icon-plus" style="margin-bottom: 6%;" @click="addform" /><el-button id="deleteData" size="mini" icon="el-icon-minus" @click="deleteData" /></el-form-item></el-col></el-row><el-row><el-col :span="22"><el-form-item label="预期结果"><el-input v-model="textarea" placeholder="请输入内容" /></el-form-item></el-col></el-row><div style="display:flex;"><el-row style="flex:1;"><el-col :span="22"><el-form-item label="附件"><el-upload class="upload-demo" drag action="https://jsonplaceholder.typicode.com/posts/" multiple><i class="el-icon-plus avatar-uploader-icon"> 添加图片 </i></el-upload></el-form-item></el-col></el-row><el-row style="flex:1;"><el-col :span="20"><el-form-item label="备注"><el-input v-model="textarea" type="textarea" :rows="8" placeholder="请输入内容" /></el-form-item></el-col></el-row></div></el-form></div>`]
+      priorityStrings: [{ name: 'p0', value: 0 }, { name: 'p1', value: 1 }, { name: 'p2', value: 2 }, { name: 'p3', value: 3 }]
     }
   },
   created() {
@@ -152,6 +154,7 @@ export default {
         })
       }
     },
+
     DisableButton() {
       this.dis = true
     },
@@ -172,28 +175,31 @@ export default {
         })
       }
     },
-    // 图片上传成功的回调
-    handleAvatarSuccess(res, file) {
+    constractSuccUpload(response, file, fileList, index) {
       this.dis = false
-      this.uptataKey.push({ name: file.name, url: file.response.id })
-      console.log(this.uptataKey)
-      // this.imageUrl = URL.createObjectURL(file.raw)
+      const fileUrl = { name: file.name, url: file.response.id }
+      console.log(fileUrl)
+      this.uptataKey[index]
     },
+    // 图片上传成功的回调
+    // handleAvatarSuccess(res, file) {
+    //   this.dis = false
+    //   this.uptataKey.push({ name: file.name, url: file.response.id })
+    //   console.log(this.uptataKey)
+    //   // this.imageUrl = URL.createObjectURL(file.raw)
+    // },
 
     // 返回
     Return() {
       this.$router.go(-1)
     },
-
     // 添加事件
-    addform(vel, e) {
-      this.arr.push(this.$refs.div1.innerHTML)
-      console.log(this.arr)
-      console.log(this.$refs.div1)
+    add() {
+      this.data.push({ description: '', expectedResult: '', remark: '', accessory: '' })
+      console.log(this.data)
     },
-
     deleteData(e) {
-      this.arr.splice(e, 1)
+      this.data.splice(e, 1)
     },
 
     deleteURL(vel) {
@@ -208,12 +214,12 @@ export default {
     },
 
     // 新建Data
-    caseCreateCase(vel, e, ele) {
+    caseCreateCase(vel, e) {
       if (e === '编辑') {
         this.caseData = vel
-        this.caseData.remark = ele.remark
-        this.caseData.expectedResult = ele.expectedResult
-        this.caseData.description = ele.description
+        // this.caseData.remark = ele.remark
+        // this.caseData.expectedResult = ele.expectedResult
+        // this.caseData.description = ele.description
         this.caseData.accessory = JSON.stringify(this.uptataKey)
         updateCaseData(this.caseData).then(res => {
           this.$message({ type: 'success', message: res.msg })
@@ -226,7 +232,7 @@ export default {
         this.$refs['caseData'].validate((valid) => {
           if (valid) {
             this.caseData = vel
-            // this.caseData.caseInfos =
+            this.caseData.caseInfos = JSON.stringify(this.data)
             this.caseData.accessory = JSON.stringify(this.uptataKey)
             this.caseData.creator = this.userInformation
             this.caseData.creatorName = this.userNames

+ 15 - 4
src/views/Platform/useCasePage.vue

@@ -18,7 +18,7 @@
               <p>请先创建文件夹 ·····</p>
               <el-button type="primary" @click="changeStartId">新</el-button>
             </div>
-            <div style="background: #fff; height:73vh; padding:15%;">
+            <div style="background: #fff; height:73vh; padding:15% 0;">
               <el-tree
                 v-show="dataShow"
                 :data="data1"
@@ -248,6 +248,15 @@ export default {
                   var as = {}
                   as.id = v.id
                   as.label = v.folderName
+                  as.children = []
+                  if (v.subCaseFolderInfos != null) {
+                    for (var a of v.subCaseFolderInfos) {
+                      var add4 = {}
+                      add4.id = a.id
+                      add4.label = a.folderName
+                      as.children.push(add4)
+                    }
+                  }
                   add.children.push(as)
                 }
               }
@@ -419,15 +428,17 @@ export default {
     handleDrop(draggingNode, dropNode, dropType, ev) {
       console.log('拖拽成功完成时触发的事件', dropNode.key, dropType)
       this.endKey = dropNode.key
-      var startEnd = { xmindUrl: '', id: this.startKey, bizId: this.bizJson, modifier: this.userInformation, folderName: dropNode.label, parentFolderId: this.endKey, creator: this.userInformation }
+      var startEnd = { xmindUrl: '', id: this.startKey, bizId: this.bizJson, modifier: this.userInformation, parentFolderId: this.endKey, creator: this.userInformation }
       console.log(startEnd)
       updateFolderData(startEnd).then(res => {
         if (res.code === 200) {
-          this.successFun()
+          this.$message({ type: 'success', message: res.msg, duration: 1000 })
           this.data1 = []
           this.AllQueryFolderData()
         } else {
-          this.errorFun(res.msg)
+          this.$message({ type: 'error', message: res.msg, duration: 1000 })
+          this.data1 = []
+          this.AllQueryFolderData()
         }
       })
     },