qinzhipeng_v 5 年之前
父節點
當前提交
6ea4c9e5e0

+ 9 - 0
src/api/caseProject.js

@@ -59,6 +59,15 @@ export function queryCasesData(data) {
   })
 }
 
+// 查询
+export function queryCase(data) {
+  return request({
+    url: mockUrl + '/case/queryCase',
+    method: 'post',
+    data
+  })
+}
+
 // 编辑用例
 export function updateCaseData(data) {
   return request({

+ 2 - 2
src/apiConfig/api.js

@@ -1,6 +1,6 @@
 /*eslint-disable*/   //规避eslint的检查,如没有eslint可不写
-// export const mockUrl = 'http://10.179.24.176:8980' // 线下
-export const mockUrl = 'http://10.179.24.123:8980' // 线上
+export const mockUrl = 'http://10.179.24.176:8980' // 线下
+// export const mockUrl = 'http://10.179.24.123:8980' // 线上
 
 // export const mockUrl = 'http://172.23.162.48:8980' // 美双姐本地
 

+ 2 - 2
src/apiConfig/mock.js

@@ -1,4 +1,4 @@
 /*eslint-disable*/   //规避eslint的检查,如没有eslint可不写
-// export const mockUrl = 'http://10.179.88.110:8089' // stable
-export const mockUrl = 'http://mock.Intra.xiaojukeji.com' // 线上
+export const mockUrl = 'http://10.179.88.110:8089' // stable
+// export const mockUrl = 'http://mock.Intra.xiaojukeji.com' // 线上
 // export const mockUrl = 'http://10.179.101.226:8089' // test

+ 27 - 13
src/router/index.js

@@ -92,10 +92,33 @@ export const constantRoutes = [
         meta: { title: '项目管理' }
       },
       {
-        path: 'useCasePage',
-        name: 'useCasePage',
+        path: '/Platform/useCasePage',
+        name: '用例管理',
         component: () => import('@/views/Platform/useCasePage'),
-        meta: { title: '用例管理' }
+        meta: { title: '用例管理' },
+        children: [
+          {
+            path: 'createUse',
+            name: '用例新增',
+            hidden: true,
+            component: () => import('@/views/Platform/useCase/createUse'),
+            meta: { title: '用例新增' }
+          },
+          {
+            path: 'queryUse',
+            name: '用例查看',
+            hidden: true,
+            component: () => import('@/views/Platform/useCase/queryUse'),
+            meta: { title: '用例查看' }
+          }
+          // {
+          //   path: 'bugUpdate',
+          //   name: '更新Bug',
+          //   hidden: true,
+          //   component: () => import('@/views/Platform/bugManage/bugUpdate'),
+          //   meta: { title: '更新Bug' }
+          // }
+        ]
       },
       {
         path: '/Platform/presentation',
@@ -106,7 +129,7 @@ export const constantRoutes = [
           {
             path: 'testPageData',
             name: '测试计划管理',
-            hidden: true,
+            // hidden: true,
             component: () => import('@/views/Platform/presentation/testPage.vue'),
             meta: { title: '测试计划管理' }
           },
@@ -230,14 +253,6 @@ export const constantRoutes = [
         ]
       },
       {
-<<<<<<< HEAD
-        path: 'teamPage',
-        name: 'teamPage',
-        hidden: true,
-        component: () => import('@/views/Platform/teamPage'),
-        meta: { title: '团队管理' }
-      }]
-=======
         path: '/Platform/setUp',
         // component: Layout,
         name: '设置',
@@ -287,7 +302,6 @@ export const constantRoutes = [
         ]
       }
     ]
->>>>>>> 35077813b17465e1ad88ec639629e669deba7849
   },
   {
     path: '/env-platform',

+ 305 - 0
src/views/Platform/useCase/createUse.vue

@@ -0,0 +1,305 @@
+<template>
+  <div id="window-judge" style="background:#F2F3F6;min-height:95vh;">
+    <el-container>
+      <el-header style="background:#ffffff;height:auto; width:94%;margin:3%; font-size:14px;border-radius:8px;">
+        <el-form ref="caseData" :model="caseData" label-width="90pt" style="margin:1%;" :rules="createFormData">
+          <el-row>
+            <el-col :span="20">
+              <el-form-item label="前置条件" label-width="80pt" prop="caseCondition">
+                <el-input v-model="caseData.caseCondition" placeholder="请输入内容" style="margin-left:1.3%;" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="20">
+              <div style="white-space:nowrap; display:flex;">
+                <el-form-item label="用例优先级" prop="casePriority" style="flex:1">
+                  <el-select v-model="caseData.casePriority" clearable placeholder="用例优先级" style="width: 100%">
+                    <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.value" />
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="API" prop="api" style="flex:1"><el-input v-model="caseData.api" clearable autocomplete="off" style="width: 100%; margin-left:3%;" /></el-form-item>
+              </div>
+            </el-col>
+          </el-row>
+        </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 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 ref="caseData" :model="caseData" label-width="90pt" :rules="createFormData">
+              <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 size="mini" type="primary" icon="el-icon-plus" style="margin-bottom: 6%;" @click="addform" />
+                    <el-button 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>
+        </div> -->
+        <div v-for="(item, key) in arr" ref="for" :key="key">
+          <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 ref="caseData" :model="caseData" label-width="90pt" :rules="createFormData">
+                <el-row>
+                  <el-col :span="20" style="margin:2% 0 0 0; white-space:nowrap;">
+                    <el-form-item label="执行步骤">
+                      <el-input v-model="caseData.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" />
+                      <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="caseData.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="caseData.remark" type="textarea" :rows="8" placeholder="请输入内容" />
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                </div>
+                <div align="center" class="cla">
+                  <el-table :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>
+        </div>
+        <el-row>
+          <el-col :span="22" style="text-align:right; ">
+            <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>
+      </el-main>
+    </el-container>
+
+  </div>
+</template>
+
+<script>
+import { createFolderData, createCaseData, updateCaseData, queryCasesData } from '@/api/caseProject.js'
+
+export default {
+  data() {
+    return {
+      startId: '',
+      caseFolderId: '',
+      caseData: {},
+      plus: true,
+      dis: false,
+      id: '',
+      titleName: '',
+      uptataKey: [],
+      createFormData: {
+        caseCondition: [{ required: true, message: '前置条件不能为空', trigger: 'change' }],
+        api: [{ required: true, message: '对应接口不能为空', trigger: 'change' }],
+        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" :rules="createFormData"><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>`]
+    }
+  },
+  created() {
+    this.initCode()
+  },
+  methods: {
+    initCode() {
+      if (this.$route.query.data) { // 新增
+        this.titleName = '新增'
+        this.startId = this.$route.query.data
+        if (this.$refs['caseData'] !== undefined) {
+          this.$refs['caseData'].resetFields()
+        }
+      }
+
+      if (this.$route.query.id) { // 编辑
+        this.titleName = '编辑'
+        this.startId = this.$route.query.id
+        this.plus = false
+        queryCasesData({ caseFolderId: this.startId }).then(res => {
+          for (var el of res.data.list) {
+            el.caseFolderId === this.startId ? this.caseData = el : ''
+            var obj = JSON.parse(this.caseData.accessory.split('{}')[0])
+            for (var a of obj) {
+              this.uptataKey.push(a)
+            }
+            console.log(this.uptataKey)
+            break
+          }
+        })
+      }
+    },
+    DisableButton() {
+      this.dis = true
+    },
+    getCreateUseData() {
+      if (this.$route.query.data) {
+        console.log(this.$route.query.data)
+        createFolderData(this.formData).then(res => {
+          if (res.code === 200) {
+            this.centerDialogVisible = false
+            this.$message({ type: 'success', message: res.msg, duration: 1000 })
+            this.createCaseCode = false
+            this.dataShow = true
+            this.data1 = []
+            this.AllQueryFolderData()
+          } else {
+            this.errorFun(res.msg)
+          }
+        })
+      }
+    },
+    // 图片上传成功的回调
+    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(e) {
+      this.arr.push(this.$refs.div1.innerHTML)
+    },
+    deleteData(e) {
+      this.arr.splice(e, 1)
+    },
+
+    deleteURL(vel) {
+      console.log(vel)
+      console.log(this.uptataKey)
+      for (var i = 0; i < this.uptataKey.length; i++) {
+        if (this.uptataKey[i].name === vel.name) {
+          this.uptataKey.splice(i, 1)
+        }
+      }
+      // this.uptataKey = this.uptataKey.filter((value) => value.url !== vel.url)
+    },
+
+    // 新建Data
+    caseCreateCase(vel, e) {
+      if (e === '编辑') {
+        this.caseData = vel
+        this.caseData.accessory = JSON.stringify(this.uptataKey)
+        updateCaseData(this.caseData).then(res => {
+          this.$message({ type: 'success', message: res.msg })
+          this.$router.go(-1)
+        })
+      }
+      if (e === '新增') {
+        this.$refs['caseData'].validate((valid) => {
+          if (valid) {
+            this.caseData = vel
+            this.caseData.creator = this.userInformation
+            this.caseData.creatorName = this.userNames
+            this.caseData.modifier = this.userInformation
+            this.caseData.pageSize = 5
+            this.caseData.curIndex = 0
+            this.caseData.caseFolderId = this.startId
+            this.caseData.bizId = this.bizJson
+            createCaseData(this.caseData).then(res => {
+              if (res.code === 200) {
+                this.gridData = res.data
+                this.$message({ type: 'success', message: res.msg, duration: 1000 })
+              } else {
+                this.$notify({ title: '提示', message: res.msg, duration: 1000 })
+              }
+            })
+          }
+        })
+      }
+    }
+  }
+}
+</script>
+
+<style>
+.cla .el-table td {
+  padding:0px;
+}
+.deleteSty {
+  cursor: pointer;
+  border: none;
+}
+.bgColorSz {
+    width: 100%;
+    height: 96vh;
+    background: #F2F3F6;
+    font-size: 0.9rem;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+  }
+  .avatar-uploader-icon {
+    font-size: 20px;
+    color: #8c939d;
+    width: 178px;
+    height: 178px;
+    line-height: 178px;
+    text-align: center;
+  }
+</style>

+ 92 - 0
src/views/Platform/useCase/queryUse.vue

@@ -0,0 +1,92 @@
+<template>
+  <div id="window-judge" style="background:#F2F3F6;min-height:95vh;">
+    <el-container>
+      <el-main style="background:#ffffff;height:auto; width:94%;margin:3%; font-size:14px;border-radius:8px;">
+        <el-form label-position="left" label-width="100px" :model="formLabelAlign">
+          <el-form-item label="用例优先级:">
+            {{ formLabelAlign.casePriority }}
+          </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="name" 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.creatorName }}
+          </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>
+        <div align="center" style="margin: 5% 0;">
+          <el-button @click="Return">返 回</el-button>
+        </div>
+      </el-main>
+    </el-container>
+  </div>
+</template>
+
+<script>
+import { queryCase } from '@/api/caseProject.js'
+export default {
+  data() {
+    return {
+      formLabelAlign: {},
+      caseFolderId: '',
+      id: '',
+      uptataKey: []
+    }
+  },
+  created() {
+    this.initCode()
+  },
+
+  methods: {
+    initCode() {
+      this.id = this.$route.query.data.id
+      this.caseFolderId = this.$route.query.data.caseFolderId
+      queryCase({ id: this.id, caseFolderId: this.caseFolderId }).then(res => {
+        for (var el of res.data.list) {
+          el.id === this.id ? this.formLabelAlign = el : ''
+          var obj = JSON.parse(this.formLabelAlign.accessory.split('{}')[0])
+          for (var a of obj) {
+            this.uptataKey.push(a)
+          }
+          console.log(this.uptataKey)
+          break
+        }
+      })
+    },
+
+    // 返回
+    Return() {
+      this.$router.go(-1)
+    }
+  }
+}
+</script>
+
+<style>
+</style>

+ 3 - 0
src/views/Platform/useCase/test.vue

@@ -0,0 +1,3 @@
+<template>
+  <router-view />
+</template>

+ 269 - 431
src/views/Platform/useCasePage.vue

@@ -1,348 +1,199 @@
 <template>
-  <div style="background:#F2F3F6">
-    <el-container>
-      <el-header style="background:#ffffff;height:25vh;; width:94%;margin:3%; font-size:14px;">
-        <el-row>
-          <el-col :span="20" style="white-space:nowrap;">
-            前置条件
-            <el-input v-model="value" placeholder="请输入内容" style="margin-top:1.3%;" />
-            <el-button class="headerStyle" style="margin-left:1%;" type="primary" @click="queryCaseData(createParticipation)">查询</el-button>
-            <el-button type="primary" @click="createGetShow">新增</el-button>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="20" style="white-space:nowrap;">
-            <div class="headerStyle" style="margin:1% 0;">
-              <span>优先级</span>
-              <el-select v-model="createParticipation.casePriority" style="width: 20%;margin-right:5px;" clearable placeholder="优先级">
-                <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.value" />
-              </el-select>
-              用例名
-              <el-input v-model="createParticipation.folderName" placeholder="用例名" clearable style="width: 20%;" class="filter-item" />
-              api接口 <el-input v-model="createParticipation.api" placeholder="api接口" clearable style="width: 50%;margin-right:5px;" class="filter-item" />
-
+  <div id="init-window" style="position:relative; min-height:95vh; background:#F2F3F6;">
+    <router-view />
+    <div style="position: absolute;width: 100%;">
+      <div style="background:#F2F3F6;">
+        <el-container>
+          <el-aside width="150pt" style="margin:2.5% 0 2.5% 2.5%; border-radius:8px;">
+            <el-dialog title="提示" :visible.sync="centerDialogVisible" width="30%" center>
+              <el-form :model="formData">
+                <el-form-item label="目录名称 :"><el-input v-model="formData.folderName" autocomplete="off" style="width: 280px" /></el-form-item>
+              </el-form>
+              <span slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="deleteCodeData(formData), centerDialogVisible = false">删除当前目录</el-button>
+                <el-button type="info" @click="createCase(formData)">新增</el-button>
+              </span>
+            </el-dialog>
+            <div v-show="createCaseCode" style="background: #E9EEF3; height:88vh; text-align:center; padding:50% 0;">
+              <p>请先创建任务,再继续·····</p>
+              <el-button type="primary" @click="changeStartId">新 增</el-button>
             </div>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="20" style="white-space:nowrap;">
-            <div class="demonstration headerStyle">创建时间
-              <el-date-picker v-model="createParticipation.createTime" style="width:20%;margin-right:5px;" type="datetime" placeholder="开始日期" /> -
-              <el-date-picker v-model="createParticipation.modifyTime" style="width:20%;margin-right:5px;" type="datetime" placeholder="结束日期" />
-              创建人 <el-input v-model="createParticipation.creator" placeholder="创建人" clearable style="width: 50%;" class="filter-item" />
-              <input id="imFile" ref="imFile" type="file" style="display: none" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" @change="importFile(this)">
+            <el-tree
+              v-show="dataShow"
+              style="background: #fff; height:88vh; padding:15%;"
+              :data="data1"
+              node-key="id"
+              draggable
+              :allow-drop="allowDrop"
+              :allow-drag="allowDrag"
+              @node-drag-start="handleDragStart"
+              @node-drag-enter="handleDragEnter"
+              @node-drag-leave="handleDragLeave"
+              @node-drag-over="handleDragOver"
+              @node-drag-end="handleDragEnd"
+              @node-drop="handleDrop"
+              @node-contextmenu="createUpdate"
+              @node-click="clickFun"
+            />
+            <div style="background: #fff; padding:15%; text-align: center;" icon="el-icon-circle-plus">新建文件夹</div>
+          </el-aside>
+          <el-container>
+            <el-header style="background:#ffffff;height:auto; width:94%;margin:3%; font-size:14px;border-radius:8px;">
+              <el-row>
+                <el-col style="white-space:nowrap; display: flex; justify-content: center; align-items: center;margin-top:1.3%;">
+                  前置条件
+                  <el-input v-model="createParticipation.caseCondition" clearable placeholder="请输入内容" style="margin-left:1%;" />
+                  <el-button style="margin-left:1%;" type="primary" @click="queryCaseData(createParticipation)">查询</el-button>
+                  <el-button @click="createGetShow">新增</el-button>
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col style="white-space:nowrap; display: flex; justify-content: center; align-items: center;margin:1.3% 0;">
+                  <div style="width:50%;white-space:nowrap; display: flex; justify-content: center; align-items: center;">
+                    序 列 号 &nbsp;<el-input v-model="createParticipation.id" placeholder="用例名" clearable style="width: 40%;margin: 0 2.5% 0 2%;" class="filter-item" />
+                    优先级
+                    <el-select v-model="createParticipation.casePriority" style="width: 40%;margin: 0 3% 0 3%;" clearable placeholder="优先级">
+                      <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.value" />
+                    </el-select>
+                  </div>
+                  api接口<el-input v-model="createParticipation.api" placeholder="api接口" clearable style="width: 50%;margin-left:2.5%;" class="filter-item" />
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col style="white-space:nowrap; display: flex; justify-content: center; align-items: center;margin-bottom:1%;">
+                  <div style="width:50%;white-space:nowrap; display: flex; justify-content: center; align-items: center;">
+                    创建时间
+                    <el-date-picker v-model="createParticipation.createTime" style="width:40%;margin: 0 4.5% 0 2%;" type="datetime" placeholder="开始日期" /><span style="margin: 0 1% 0 1% ;"> 一 </span>
+                    <el-date-picker v-model="createParticipation.modifyTime" style="width:40%;margin: 0 3.5% 0 4.5%;" type="datetime" placeholder="结束日期" />
+                  </div>
+                  操作人 <el-input v-model="createParticipation.modifier" placeholder="创建人" clearable style="width: 50%;margin-left:2.5%;" class="filter-item" />
+                  <input id="imFile" ref="imFile" type="file" style="display: none" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" @change="importFile(this)">
+                </el-col>
+              </el-row>
+            </el-header>
+            <el-main style="background:#ffffff; width:94%;margin:0% 3% 3% 3%; font-size:14px;border-radius:8px;">
+              <el-button type="primary" style="margin-left:1%;width:15%;" @click="uploadFile()">导入Excel/Xmind</el-button>
+              <el-button style="margin-left:2%;width:15%;" @click="exportExcel">导出Excel/Xmind</el-button>
+              <el-button style="margin-left:2%;width:15%;" @click="exportExcel">导出Excel模版</el-button>
+              <!-- 主页table -->
+              <el-table :data="gridData" style="width: 100%" @select-all="clickAllData" @selection-change="handleSelectionChange">
+                <el-table-column type="selection" min-width="55" align="center" @change="clickAllData(gridData)" />
+                <el-table-column prop="id" label="序列号" min-width="80px" align="center">
+                  <template slot-scope="scope">{{ scope.row.id }}</template>
+                </el-table-column>
+                <el-table-column prop="caseCondition" :show-overflow-tooltip="true" label="前置条件" min-width="150" align="center">
+                  <template slot-scope="scope">{{ scope.row.caseCondition }}</template>
+                </el-table-column>
+                <el-table-column prop="api" :show-overflow-tooltip="true" label="API" min-width="150" align="center">
+                  <template slot-scope="scope">{{ scope.row.api }}</template>
+                </el-table-column>
+                <el-table-column prop="description" :show-overflow-tooltip="true" label="执行步骤" min-width="150" align="center">
+                  <template slot-scope="scope">{{ scope.row.description }}</template>
+                </el-table-column>
+                <el-table-column prop="casePriority" label="优先级" min-width="60" align="center">
+                  <template slot-scope="scope">{{ scope.row.casePriority }}</template>
+                </el-table-column>
+                <el-table-column prop="creatorName" label="操作人" min-width="100" align="center">
+                  <template slot-scope="scope">{{ scope.row.modifier }}</template>
+                </el-table-column>
+                <el-table-column label="操作" min-width="220px" align="center" fixed="right">
+                  <template slot-scope="scope">
+                    <el-button size="mini" type="primary" @click="queryGetShow(scope.row)">查看</el-button>
+                    <el-button size="mini" type="primary" @click="updateGetShow(scope.row)">编辑</el-button>
+                    <el-button size="mini" type="primary" @click="deleteCaseData(scope.row.id)">删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <!-- 导出文件内容 -->
+              <el-table v-show="false" id="out-table" :data="tableData" tooltip-effect="dark" style="width: 100%">
+                <el-table-column prop="id" label="序号" width="50" />
+                <el-table-column prop="caseCondition" label="前置条件" />
+                <el-table-column prop="description" label="测试步骤" />
+                <el-table-column prop="expectedResult" label="期望结果" />
+                <el-table-column prop="api" label="对应api" />
+                <el-table-column prop="accessory" label="附件" />
+                <el-table-column prop="casePriority" label="用例优先级" />
+                <el-table-column prop="remark" label="备注" />
+              </el-table>
+              <el-pagination :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" />
+            </el-main>
+          </el-container>
+        </el-container>
 
-            </div>
-          </el-col>
-        </el-row>
-      </el-header>
-      <el-container>
-        <el-aside width="150pt">
-          <el-dialog title="提示" :visible.sync="centerDialogVisible" width="30%" center>
-            <el-form :model="formData">
-              <el-form-item label="目录名称 :"><el-input v-model="formData.folderName" autocomplete="off" style="width: 280px" /></el-form-item>
-            </el-form>
-            <span slot="footer" class="dialog-footer">
-              <el-button type="primary" @click="deleteCodeData(formData), centerDialogVisible = false">删除当前目录</el-button>
-              <el-button type="primary" @click="createCase(formData)">新 增</el-button>
-            </span>
-          </el-dialog>
-          <div v-show="createCaseCode" style="background: #E9EEF3; height:93vh; text-align:center; padding:50% 0;">
-            <p>请先创建任务,再继续·····</p>
-            <el-button type="primary" @click="changeStartId">新 增</el-button>
-          </div>
-          <el-tree
-            v-show="dataShow"
-            style="background: #fff; height:93vh; padding:15%;"
-            :data="data1"
-            node-key="id"
-            draggable
-            :allow-drop="allowDrop"
-            :allow-drag="allowDrag"
-            @node-drag-start="handleDragStart"
-            @node-drag-enter="handleDragEnter"
-            @node-drag-leave="handleDragLeave"
-            @node-drag-over="handleDragOver"
-            @node-drag-end="handleDragEnd"
-            @node-drop="handleDrop"
-            @node-contextmenu="createUpdate"
-            @node-click="clickFun"
-          />
-        </el-aside>
-        <el-main>
-          <el-button type="primary" style="margin-left:6%;" @click="uploadFile()">导入</el-button>
-          <el-button class="headerStyle" style="margin-left:6%;" type="primary" @click="exportExcel">导出</el-button>
-          <!-- 主页table -->
-          <el-table :data="gridData" fit height="570vh" tooltip-effect="dark" style="width: 100%" @select-all="clickAllData" @selection-change="handleSelectionChange">
-            <el-table-column type="selection" width="55" align="center" @change="clickAllData(gridData)" />
-            <el-table-column prop="id" label="ID" width="60px" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.id }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="caseName" label="用例名" width="150" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.caseName }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="expectedResult" label="期望结果" width="150" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.expectedResult }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="casePriorityName" label="优先级" width="80" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.casePriorityName }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="creatorName" label="创建人" width="100" align="center">
-              <template slot-scope="scope">
-                <el-tag type="success">{{ scope.row.creatorName }}</el-tag>
-                <!-- <span>{{ scope.row.creatorName }}</span> -->
-              </template>
-            </el-table-column>
-            <el-table-column prop="modifierName" label="修改人" width="100" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.modifierName }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="createTime" label="创建时间" width="200" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.createTime }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column label="操作" min-width="220px" align="center" fixed="right">
-              <template slot-scope="scope">
-                <el-button size="mini" type="primary" @click="queryGetShow(gridData)">查看</el-button>
-                <el-button size="mini" type="primary" @click="updateGetShow(scope.row)">编辑</el-button>
-                <el-button size="mini" type="primary" @click="deleteCaseData(scope.row.id)">删除</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-          <!-- 导出文件内容 -->
-          <el-table v-show="false" id="out-table" :data="tableData" fit height="570vh" tooltip-effect="dark" style="width: 100%">
-            <el-table-column type="index" prop="ids" label="序号" width="50" />
-            <!-- <el-table-column prop="ids" label="序号" /> -->
-            <el-table-column prop="caseName" label="用例名" />
-            <el-table-column prop="description" label="用例描述" />
-            <el-table-column prop="expectedResult" label="期望结果" />
-            <el-table-column prop="api" label="对应api" />
-            <el-table-column prop="projectTypeName" label="项目类型" />
-            <el-table-column prop="taskTypeName" label="平台类型" />
-            <el-table-column prop="casePriorityName" label="用例优先级" />
-            <el-table-column prop="moduleTypeName" label="模块名" />
-            <el-table-column prop="creatorName" label="创建人" />
-            <el-table-column prop="modifierName" label="修改人" />
-            <el-table-column prop="remark" label="备注" />
-            <el-table-column prop="createTime" label="创建时间" />
-          </el-table>
-          <el-pagination :current-page="curIndex" :page-sizes="[5, 10, 20]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="100" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
-        </el-main>
-      </el-container>
-    </el-container>
-    <el-container>
-      <el-aside width="150pt">
-        <el-dialog title="提示" :visible.sync="centerDialogVisible" width="30%" center>
-          <el-form :model="formData">
-            <el-form-item label="目录名称 :"><el-input v-model="formData.folderName" autocomplete="off" style="width: 280px" /></el-form-item>
-          </el-form>
-          <span slot="footer" class="dialog-footer">
-            <el-button type="primary" @click="deleteCodeData(formData), centerDialogVisible = false">删除当前目录</el-button>
-            <el-button type="primary" @click="createCase(formData)">新 增</el-button>
-          </span>
-        </el-dialog>
-        <div v-show="createCaseCode" style="background: #E9EEF3; height:93vh; text-align:center; padding:50% 0;">
-          <p>请先创建任务,再继续·····</p>
-          <el-button type="primary" @click="changeStartId">新 增</el-button>
-        </div>
-        <el-tree
-          v-show="dataShow"
-          style="background: #E9EEF3; height:93vh; padding:15%;"
-          :data="data1"
-          node-key="id"
-          draggable
-          :allow-drop="allowDrop"
-          :allow-drag="allowDrag"
-          @node-drag-start="handleDragStart"
-          @node-drag-enter="handleDragEnter"
-          @node-drag-leave="handleDragLeave"
-          @node-drag-over="handleDragOver"
-          @node-drag-end="handleDragEnd"
-          @node-drop="handleDrop"
-          @node-contextmenu="createUpdate"
-          @node-click="clickFun"
-        />
-      </el-aside>
-      <el-container>
-        <el-header style="height: auto; width:100%; font-size:14px; text-align:right">
-          <el-row>
-            <el-col :span="23" style="white-space:nowrap;">
-              <div class="headerStyle">api接口 <el-input v-model="createParticipation.api" placeholder="api接口" clearable style="width: 16.3%;margin-right:5px;" class="filter-item" />
-                优先级
-                <el-select v-model="createParticipation.casePriority" style="width: 20%;margin-right:5px;" clearable placeholder="优先级">
-                  <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.value" />
-                </el-select>
-                用例名
-                <el-input v-model="createParticipation.folderName" placeholder="用例名" clearable style="width: 20%;" class="filter-item" />
-                <el-button class="headerStyle" style="margin-left:6%;" type="primary" @click="exportExcel">导出</el-button>
-                <el-button class="headerStyle" type="primary" @click="queryCaseData(createParticipation)">查询</el-button>
+        <!-- 新增-编辑 -->
+        <!-- <el-dialog :title="titleName" :visible.sync="dialogFormVisibleUpdate" width="80%">
+          <el-form ref="caseData" :model="caseData" label-width="90pt" :rules="createFormData">
+            <div style="display:flex;">
+              <div style="flex:1;">
+                <el-form-item label="用例名" prop="caseName"><el-input v-model="caseData.caseName" clearable autocomplete="off" style="width: 200px" /></el-form-item>
+                <el-form-item label="期望结果" prop="expectedResult"><el-input v-model="caseData.expectedResult" clearable autocomplete="off" style="width: 200px" /></el-form-item>
+                <el-form-item label="对应api" prop="api"><el-input v-model="caseData.api" clearable autocomplete="off" style="width: 200px" /></el-form-item>
               </div>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="23" style="white-space:nowrap;">
-              <div class="demonstration headerStyle">创建时间
-                <el-date-picker v-model="createParticipation.createTime" style="width:20%;margin-right:5px;" type="datetime" placeholder="开始日期" />-
-                <el-date-picker v-model="createParticipation.modifyTime" style="width:20%;margin-right:5px;" type="datetime" placeholder="结束日期" />
-                创建人 <el-input v-model="createParticipation.creator" placeholder="创建人" clearable style="width: 20%;" class="filter-item" />
-                <input id="imFile" ref="imFile" type="file" style="display: none" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" @change="importFile(this)">
-                <el-button type="primary" style="margin-left:6%;" @click="uploadFile()">导入</el-button>
-                <el-button type="primary" @click="createGetShow">新增</el-button>
+              <div style="flex:1;">
+                <el-form-item label="项目类型" prop="projectType">
+                  <el-select v-model="caseData.projectType" clearable placeholder="项目类型" style="width: 200px">
+                    <el-option v-for="item in projectTypeStrings" :key="item.value" :label="item.name" :value="item.value" />
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="平台类型" prop="taskType">
+                  <el-select v-model="caseData.taskType" clearable placeholder="任务类型" style="width: 200px" @change="taskTypeChange(caseData.taskType)">
+                    <el-option v-for="item in taskTypeStrings" :key="item.value" :label="item.name" :value="item.value" />
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="用例优先级" prop="casePriority">
+                  <el-select v-model="caseData.casePriority" clearable placeholder="用例优先级" style="width: 200px">
+                    <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.value" />
+                  </el-select>
+                </el-form-item>
               </div>
-            </el-col>
-          </el-row>
-        </el-header>
-        <el-main>
-          <!-- 主页table -->
-          <el-table :data="gridData" fit height="570vh" tooltip-effect="dark" style="width: 100%" @select-all="clickAllData" @selection-change="handleSelectionChange">
-            <el-table-column type="selection" width="55" align="center" @change="clickAllData(gridData)" />
-            <el-table-column prop="id" label="ID" width="60px" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.id }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="caseName" label="用例名" width="150" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.caseName }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="expectedResult" label="期望结果" width="150" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.expectedResult }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="casePriorityName" label="优先级" width="80" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.casePriorityName }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="creatorName" label="创建人" width="100" align="center">
-              <template slot-scope="scope">
-                <el-tag type="success">{{ scope.row.creatorName }}</el-tag>
-                <!-- <span>{{ scope.row.creatorName }}</span> -->
-              </template>
-            </el-table-column>
-            <el-table-column prop="modifierName" label="修改人" width="100" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.modifierName }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="createTime" label="创建时间" width="200" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.createTime }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column label="操作" min-width="220px" align="center" fixed="right">
-              <template slot-scope="scope">
-                <el-button size="mini" type="primary" @click="queryGetShow(gridData)">查看</el-button>
-                <el-button size="mini" type="primary" @click="updateGetShow(scope.row)">编辑</el-button>
-                <el-button size="mini" type="primary" @click="deleteCaseData(scope.row.id)">删除</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-          <!-- 导出文件内容 -->
-          <el-table v-show="false" id="out-table" :data="tableData" fit height="570vh" tooltip-effect="dark" style="width: 100%">
-            <el-table-column type="index" prop="ids" label="序号" width="50" />
-            <!-- <el-table-column prop="ids" label="序号" /> -->
-            <el-table-column prop="caseName" label="用例名" />
-            <el-table-column prop="description" label="用例描述" />
-            <el-table-column prop="expectedResult" label="期望结果" />
-            <el-table-column prop="api" label="对应api" />
-            <el-table-column prop="projectTypeName" label="项目类型" />
-            <el-table-column prop="taskTypeName" label="平台类型" />
-            <el-table-column prop="casePriorityName" label="用例优先级" />
-            <el-table-column prop="moduleTypeName" label="模块名" />
-            <el-table-column prop="creatorName" label="创建人" />
-            <el-table-column prop="modifierName" label="修改人" />
-            <el-table-column prop="remark" label="备注" />
-            <el-table-column prop="createTime" label="创建时间" />
-          </el-table>
-          <el-pagination :current-page="curIndex" :page-sizes="[5, 10, 20]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="100" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
-        </el-main>
-      </el-container>
-    </el-container>
-    <!-- 新增-编辑 -->
-    <el-dialog :title="titleName" :visible.sync="dialogFormVisibleUpdate" width="80%">
-      <el-form ref="caseData" :model="caseData" label-width="90pt" :rules="createFormData">
-        <div style="display:flex;">
-          <div style="flex:1;">
-            <el-form-item label="用例名" prop="caseName"><el-input v-model="caseData.caseName" clearable autocomplete="off" style="width: 200px" /></el-form-item>
-            <el-form-item label="期望结果" prop="expectedResult"><el-input v-model="caseData.expectedResult" clearable autocomplete="off" style="width: 200px" /></el-form-item>
-            <el-form-item label="对应api" prop="api"><el-input v-model="caseData.api" clearable autocomplete="off" style="width: 200px" /></el-form-item>
-          </div>
-          <div style="flex:1;">
-            <el-form-item label="项目类型" prop="projectType">
-              <el-select v-model="caseData.projectType" clearable placeholder="项目类型" style="width: 200px">
-                <el-option v-for="item in projectTypeStrings" :key="item.value" :label="item.name" :value="item.value" />
-              </el-select>
-            </el-form-item>
-            <el-form-item label="平台类型" prop="taskType">
-              <el-select v-model="caseData.taskType" clearable placeholder="任务类型" style="width: 200px" @change="taskTypeChange(caseData.taskType)">
-                <el-option v-for="item in taskTypeStrings" :key="item.value" :label="item.name" :value="item.value" />
-              </el-select>
-            </el-form-item>
-            <el-form-item label="用例优先级" prop="casePriority">
-              <el-select v-model="caseData.casePriority" clearable placeholder="用例优先级" style="width: 200px">
-                <el-option v-for="item in priorityStrings" :key="item.value" :label="item.name" :value="item.value" />
-              </el-select>
-            </el-form-item>
-          </div>
-          <div style="flex:1;">
-            <el-form-item v-show="moduleTypeShow" label="模块名" prop="casePriority">
-              <el-select v-model="caseData.moduleType" clearable placeholder="模块类型" style="width: 200px">
-                <el-option v-for="item in moduleTypeStr" :key="item.id" :label="item.moduleName" :value="item.id" />
-              </el-select>
-            </el-form-item>
+              <div style="flex:1;">
+                <el-form-item v-show="moduleTypeShow" label="模块名" prop="casePriority">
+                  <el-select v-model="caseData.moduleType" clearable placeholder="模块类型" style="width: 200px">
+                    <el-option v-for="item in moduleTypeStr" :key="item.id" :label="item.moduleName" :value="item.id" />
+                  </el-select>
+                </el-form-item>
+              </div>
+            </div>
+            <el-form-item label="用例描述" prop="description"><el-input v-model="caseData.description" clearable type="textarea" style="width: 95%" :rows="5" placeholder="请输入内容" /></el-form-item>
+            <el-form-item label="备注"><el-input v-model="caseData.remark" clearable type="textarea" style="width: 95%" :rows="5" placeholder="请输入内容" /></el-form-item>
+          </el-form>
+          <div slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="dialogFormVisibleUpdate = false">关 闭</el-button>
+            <el-button type="primary" @click="caseCreateCase(caseData, titleName)">确 定</el-button>
           </div>
-        </div>
-        <el-form-item label="用例描述" prop="description"><el-input v-model="caseData.description" clearable type="textarea" style="width: 95%" :rows="5" placeholder="请输入内容" /></el-form-item>
-        <el-form-item label="备注"><el-input v-model="caseData.remark" clearable type="textarea" style="width: 95%" :rows="5" placeholder="请输入内容" /></el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="dialogFormVisibleUpdate = false">关 闭</el-button>
-        <el-button type="primary" @click="caseCreateCase(caseData, titleName)">确 定</el-button>
-      </div>
-    </el-dialog>
+        </el-dialog> -->
 
-    <el-dialog title="查看" :visible.sync="dialogFormVisibleQuery" width="80%">
-      <el-form ref="caseData" :model="caseData" label-width="90pt">
-        <div style="display:flex;">
-          <div style="flex:1;">
-            <el-form-item label="用例名 :">{{ caseData.caseName }}</el-form-item>
-            <el-form-item label="期望结果 :">{{ caseData.expectedResult }}</el-form-item>
-            <el-form-item label="对应接口 :">{{ caseData.api }}</el-form-item>
-          </div>
-          <div style="flex:1;">
-            <el-form-item label="项目类型 :">{{ caseData.projectTypeName }}</el-form-item>
-            <el-form-item label="任务类型 :">{{ caseData.taskTypeName }}</el-form-item>
-            <el-form-item label="用例优先级 :">{{ caseData.casePriorityName }}</el-form-item>
-          </div>
-          <div style="flex:1;">
-            <el-form-item v-show="moduleTypeShow" label="模块类型 :">{{ caseData.moduleTypeName }}</el-form-item>
+        <!-- <el-dialog title="查看" :visible.sync="dialogFormVisibleQuery" width="80%">
+          <el-form ref="caseData" :model="caseData" label-width="90pt">
+            <div style="display:flex;">
+              <div style="flex:1;">
+                <el-form-item label="用例名 :">{{ caseData.caseName }}</el-form-item>
+                <el-form-item label="期望结果 :">{{ caseData.expectedResult }}</el-form-item>
+                <el-form-item label="对应接口 :">{{ caseData.api }}</el-form-item>
+              </div>
+              <div style="flex:1;">
+                <el-form-item label="项目类型 :">{{ caseData.projectTypeName }}</el-form-item>
+                <el-form-item label="任务类型 :">{{ caseData.taskTypeName }}</el-form-item>
+                <el-form-item label="用例优先级 :">{{ caseData.casePriorityName }}</el-form-item>
+              </div>
+              <div style="flex:1;">
+                <el-form-item v-show="moduleTypeShow" label="模块类型 :">{{ caseData.moduleTypeName }}</el-form-item>
+              </div>
+            </div>
+            <el-form-item label="用例描述 :">{{ caseData.description }}</el-form-item>
+            <el-form-item label="备注 :">{{ caseData.remark }}</el-form-item>
+          </el-form>
+          <div slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="dialogFormVisibleQuery = false">关 闭</el-button>
           </div>
-        </div>
-        <el-form-item label="用例描述 :">{{ caseData.description }}</el-form-item>
-        <el-form-item label="备注 :">{{ caseData.remark }}</el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="dialogFormVisibleQuery = false">关 闭</el-button>
+        </el-dialog> -->
       </div>
-    </el-dialog>
+    </div>
   </div>
 </template>
 
 <script>
-import { createFolderData, queryAllFolderData, queryCasesData, createCaseData, updateCaseData, deleteFolderData, deleteCaseData, settingQueryModuleInfoListData, updateFolderData } from '@/api/caseProject.js'
+import { createFolderData, queryAllFolderData, queryCasesData, deleteFolderData, deleteCaseData, settingQueryModuleInfoListData, updateFolderData } from '@/api/caseProject.js'
 import { mockUrl } from '@/apiConfig/api'
 import FileSaver from 'file-saver'
 import axios from 'axios'
@@ -354,12 +205,12 @@ export default {
     return {
       value: '',
       centerDialogVisible: false,
-      dialogFormVisibleQuery: false,
+      // dialogFormVisibleQuery: false,
       moduleTypeShow: false,
       dataShow: true,
       titleName: '',
       createCaseCode: false,
-      dialogFormVisibleUpdate: false,
+      // dialogFormVisibleUpdate: false,
       priorityStrings: [{ name: 'p0', value: 0 }, { name: 'p1', value: 1 }, { name: 'p2', value: 2 }, { name: 'p3', value: 3 }],
       projectTypeStrings: [{ name: 'B端', value: 1 }, { name: 'C端', value: 2 }],
       taskTypeStrings: [{ name: '客户端', value: 1 }, { name: '服务端', value: 2 }],
@@ -395,22 +246,24 @@ export default {
       },
       createTimeData: '',
       userData: '',
+      caseInfo: '',
       pageSize: 5,
       curIndex: 0,
       startId: '',
+      total: 0,
       createParticipation: {},
       moduleTypeStr: [],
       gridData: [],
       caseData: {},
-      createFormData: {
-        caseName: [{ required: true, message: '用例名不能为空', trigger: 'change' }],
-        description: [{ required: true, message: '用例描述不能为空', trigger: 'change' }],
-        expectedResult: [{ required: true, message: '期望结果不能为空', trigger: 'change' }],
-        api: [{ required: true, message: '对应接口不能为空', trigger: 'change' }],
-        projectType: [{ required: true, message: '项目类型不能为空', trigger: 'change' }],
-        taskType: [{ required: true, message: '任务类型不能为空', trigger: 'change' }],
-        casePriority: [{ required: true, message: '用例优先级不能为空', trigger: 'change' }]
-      },
+      // createFormData: {
+      //   caseName: [{ required: true, message: '用例名不能为空', trigger: 'change' }],
+      //   description: [{ required: true, message: '用例描述不能为空', trigger: 'change' }],
+      //   expectedResult: [{ required: true, message: '期望结果不能为空', trigger: 'change' }],
+      //   api: [{ required: true, message: '对应接口不能为空', trigger: 'change' }],
+      //   projectType: [{ required: true, message: '项目类型不能为空', trigger: 'change' }],
+      //   taskType: [{ required: true, message: '任务类型不能为空', trigger: 'change' }],
+      //   casePriority: [{ required: true, message: '用例优先级不能为空', trigger: 'change' }]
+      // },
       dialogTableVisible: false,
       formData: {},
       formLabelWidth: '120px',
@@ -430,8 +283,16 @@ export default {
   },
   mounted() {
     this.imFile = document.getElementById('imFile')
+    this.initWindow()
   },
   methods: {
+    initWindow() {
+      if (!document.getElementById('window-judge')) {
+        document.getElementById('init-window').parentNode.style.overflow = 'auto'
+      } else {
+        document.getElementById('init-window').parentNode.style.overflow = 'hidden'
+      }
+    },
     AllQueryFolderData() {
       this.formData = { bizId: this.bizJson }
       queryAllFolderData(this.formData).then(res => {
@@ -459,7 +320,6 @@ export default {
           }
           this.data1.push(arr)
         }
-        console.log(this.data1)
         if (this.data1.length === 0) {
           this.createCaseCode = true
           this.dataShow = false
@@ -485,19 +345,12 @@ export default {
         curIndex: this.curIndex,
         caseFolderId: this.startId
       }
+
       queryCasesData(this.formData).then(res => {
-        this.gridData = res.data
+        this.gridData = res.data.list
       })
     },
     clickAllData(rows) {
-      // if (rows) {
-      //   rows.forEach(row => {
-      //     this.$refs.multipleTable.toggleRowSelection(row)
-      //   })
-      // } else {
-      //   this.$refs.multipleTable.clearSelection()
-      // }
-
       this.formData = {
         caseFolderId: this.startId
       }
@@ -505,99 +358,81 @@ export default {
         this.tableData = res.data
       })
     },
-    taskTypeChange(ele) {
-      if (ele === 2) {
-        this.moduleTypeShow = true
-      } else {
-        this.moduleTypeShow = false
-      }
-    },
+    // taskTypeChange(ele) {
+    //   if (ele === 2) {
+    //     this.moduleTypeShow = true
+    //   } else {
+    //     this.moduleTypeShow = false
+    //   }
+    // },
     // 新增
-    caseCreateCase(vel, e) {
-      if (e === '编辑') {
-        updateCaseData(this.caseData).then(res => {
-          this.successFun()
-          this.dialogFormVisibleUpdate = false
-        })
-      }
-      if (vel !== '' && e === '新增') {
-        this.$refs['caseData'].validate((valid) => {
-          if (valid) {
-            this.caseData = vel
-            this.caseData.creator = this.userInformation
-            this.caseData.creatorName = this.userNames
-            this.caseData.modifier = this.userInformation
-            this.caseData.pageSize = 5
-            this.caseData.curIndex = 0
-            this.caseData.caseFolderId = this.startId
-            this.caseData.bizId = this.bizJson
-            createCaseData(this.caseData).then(res => {
-              if (res.code === 200) {
-                this.gridData = res.data
-                this.successFun()
-                this.dialogFormVisibleUpdate = false
-              } else {
-                this.$notify({ title: '提示', message: res.msg, duration: 2000 })
-              }
-            })
-          }
-        })
-      }
-    },
+    // caseCreateCase(vel, e) {
+    //   if (e === '编辑') {
+    //     updateCaseData(this.caseData).then(res => {
+    //       this.successFun()
+    //       // this.dialogFormVisibleUpdate = false
+    //     })
+    //   }
+    //   if (vel !== '' && e === '新增') {
+    //     this.$refs['caseData'].validate((valid) => {
+    //       if (valid) {
+    //         this.caseData = vel
+    //         this.caseData.creator = this.userInformation
+    //         this.caseData.creatorName = this.userNames
+    //         this.caseData.modifier = this.userInformation
+    //         this.caseData.pageSize = 5
+    //         this.caseData.curIndex = 0
+    //         this.caseData.caseFolderId = this.startId
+    //         this.caseData.bizId = this.bizJson
+    //         createCaseData(this.caseData).then(res => {
+    //           if (res.code === 200) {
+    //             this.gridData = res.data
+    //             this.successFun()
+    //             // this.dialogFormVisibleUpdate = false
+    //           } else {
+    //             this.$message({ message: '提示, 请选择目录', type: 'success', duration: 1000, offset: 150 })
+    //           }
+    //         })
+    //       }
+    //     })
+    //   }
+    // },
     // 查询
     queryCaseData(ele) {
       if (this.createParticipation.caseName === '') return false
       if (this.startId === '') {
-        this.$notify({ title: '提示', message: '请选择目录', duration: 2000 })
+        this.$message({ message: '提示, 👈请选择目录', type: 'success', duration: 1000, offset: 150 })
       } else {
         this.createParticipation = ele
         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
         })
       }
     },
     // 查看
     queryGetShow(ele) {
-      if (this.startId === '') {
-        this.$notify({ title: '提示', message: '请选择目录', duration: 2000 })
-      } else {
-        for (var vel of ele) {
-          var obj = vel
-        }
-        if (obj.taskType === 2) { this.moduleTypeShow = true }
-        this.dialogFormVisibleQuery = true
-        this.caseData = {}
-        this.caseData = obj
+      var data = {
+        id: ele.id,
+        caseFolderId: ele.caseFolderId
       }
+      this.$router.push({ path: '/Platform/useCasePage/queryUse', query: { data: data }})
     },
     // 编辑
     updateGetShow(ele) {
-      this.titleName = '编辑'
-      this.caseData = ele
       if (this.startId === '') {
-        this.$notify({ title: '提示', message: '请选择目录', duration: 2000 })
+        this.$message({ message: '提示, 👈请选择目录', type: 'success', duration: 1000, offset: 150 })
       } else {
-        if (ele.taskType === 2) { this.moduleTypeShow = true }
-        this.dialogFormVisibleUpdate = true
+        this.$router.push({ path: '/Platform/useCasePage/createUse', query: { id: this.startId }})
       }
     },
 
     // 新增
     createGetShow() {
-      this.titleName = '新增'
       if (this.startId === '') {
-        this.$notify({ title: '提示', message: '请选择目录', duration: 2000 })
+        this.$message({ message: '提示, 👈请选择目录', type: 'success', duration: 1000, offset: 150 })
       } else {
-        this.dialogFormVisibleUpdate = true
-        // this.caseData = {}
-        this.moduleTypeShow = false
-        // this.$refs['caseData'].resetFields()
-        if (this.$refs['caseData'] !== undefined) {
-          this.$refs['caseData'].resetFields()
-        }
+        this.$router.push({ path: '/Platform/useCasePage/createUse', query: { data: this.startId }})
       }
     },
     // 文件夹新增
@@ -610,6 +445,7 @@ export default {
           creator: this.userInformation,
           modifier: this.userInformation
         }
+
         createFolderData(this.formData).then(res => {
           if (res.code === 200) {
             this.centerDialogVisible = false
@@ -688,7 +524,8 @@ export default {
         caseFolderId: e.id
       }
       queryCasesData(this.formData).then(res => {
-        this.gridData = res.data
+        this.gridData = res.data.list
+        this.total = res.data.total
       })
     },
     deleteCodeData(vel) {
@@ -722,7 +559,7 @@ export default {
     },
     deleteCaseData(e) {
       if (this.startId === '') {
-        this.$notify({ title: '提示', message: '请选择目录', duration: 2000 })
+        this.$message({ message: '提示, 👈请选择目录', type: 'success', duration: 1000, offset: 150 })
       } else {
         this.$confirm('是否确认删除', '确认信息', {
           distinguishCancelAndClose: true,
@@ -730,15 +567,19 @@ export default {
           cancelButtonText: '取消'
         })
           .then(() => {
-            this.formData = { id: e, modifier: this.userInformation }
-            deleteCaseData(this.formData).then(res => {
+            this.caseInfo = { id: e, modifier: this.userInformation }
+            deleteCaseData(this.caseInfo).then(res => {
               if (res.code === 200) {
-                this.$message({ type: 'success', message: '已删除' })
                 this.data1 = []
                 this.AllQueryFolderData()
-                this.createParticipation.caseFolderId = this.startId
-                queryCasesData(this.createParticipation).then(res => {
-                  this.gridData = res.data
+                var data = {
+                  pageSize: this.pageSize,
+                  curIndex: this.curIndex,
+                  caseFolderId: this.startId
+                }
+                queryCasesData(data).then(res => {
+                  this.gridData = res.data.list
+                  this.$message({ type: 'success', message: '已删除' })
                 })
               } else {
                 this.errorFun(res.msg)
@@ -756,7 +597,7 @@ export default {
     },
     exportExcel() {
       if (this.startId === '') {
-        this.$notify({ title: '提示', message: '请选择目录', duration: 2000 })
+        this.$message({ message: '提示,👈请选择目录', type: 'success', duration: 1000, offset: 150 })
       } else {
       /* generate workbook object from table */
         var wb = XLSX.utils.table_to_book(document.querySelector('#out-table'))
@@ -834,7 +675,4 @@ export default {
 </script>
 
 <style>
-.headerStyle {
-  margin:5px 0;
-  }
 </style>

+ 3 - 2
src/views/home/index.vue

@@ -104,7 +104,7 @@
         <br>
         <span>© 2019. All Rights Reserved</span>
       </div>
-      <div class="div-footer2" style="width: 500px;margin-top: 45pt;margin-left: 550pt;">
+      <div class="div-footer2" style="width: 510px;margin-top: 45pt;margin-left: 550pt;">
         <div style="visibility: hidden;">质惠综合测试平台</div>
         <span style="margin-top: 18pt">Mock服务-赵福贵</span>
         <span>数据中心-王丽莎</span>
@@ -115,7 +115,8 @@
         <span>产品设计-郑莉</span>
         <br>
         <span>自动化-陈雅琪</span>
-        <span style="width: 200px">流程管控-郑美双/罗舒宁</span>
+        <span>流程管控-郑美双/罗舒宁</span>
+        <span>UI设计师-汝瑞</span>
         <br>
       </div>
     </div>