|
@@ -6,13 +6,25 @@
|
|
|
<div style="background:#F2F3F6;">
|
|
|
<el-container>
|
|
|
<el-aside width="15%" style=" background: #FFF;margin: 1% 0 1% 1%; border-radius:8px;">
|
|
|
- <el-tree
|
|
|
- v-show="dataShow"
|
|
|
- :data="data1"
|
|
|
- node-key="id"
|
|
|
- @node-contextmenu="createUpdate"
|
|
|
- @node-click="clickFun"
|
|
|
- />
|
|
|
+ <div class="nav_Input" style="min-height:81vh;" @click="click_fa">
|
|
|
+ <br>
|
|
|
+ <p v-show="node_Data" style="color: #DCDFE6; margin: 100% 0;font-size:14px; text-align:center;">空空如也</p>
|
|
|
+ <el-tree
|
|
|
+ v-if="dataShow"
|
|
|
+ :data="data1"
|
|
|
+ :expand-on-click-node="true"
|
|
|
+ node-key="id"
|
|
|
+ @node-click="clickFun"
|
|
|
+ >
|
|
|
+ <span slot-scope="{ node, data }" style="width:100%;" class="custom-tree-node" @mouseenter="mouseenter(data)" @mouseleave="mouseleave(data)">
|
|
|
+ <span :title="data.label" class="span_el" @dblclick="dblclick(data)">{{ node.label }}</span>
|
|
|
+ <el-input v-if="data.que" ref="get_Input" v-model="node_Name.name" size="mini" @blur="queryNodeName(node_Name.name, data)">输入框</el-input>
|
|
|
+ <el-button v-show="data.del" type="text" size="mini" icon="el-icon-delete" @click="() => remove(node, data)" />
|
|
|
+ </span>
|
|
|
+ </el-tree>
|
|
|
+ <el-input v-if="Folder_Show" ref="input1" v-model="add_Folder" size="mini" placeholder="新建文件夹" @blur="hide_input(add_Folder)" />
|
|
|
+ </div>
|
|
|
+ <div style="padding: 0% 15% 15% 15%; text-align: center;"><el-button icon="el-icon-circle-plus" style="border:none;" @click="createFolder">新建文件夹</el-button></div>
|
|
|
</el-aside>
|
|
|
<el-container>
|
|
|
<el-header style="background:#ffffff; height: auto; width: 98%; margin: 1%; font-size: 14px; border-radius: 8px;">
|
|
@@ -40,7 +52,7 @@
|
|
|
</div>
|
|
|
<el-main style="background:#ffffff; width:98%;margin:0% 1% 1% 1%; font-size:14px;border-radius:8px;">
|
|
|
<!-- 主页table -->
|
|
|
- <el-table :data="gridData" :header-cell-style="{ background: '#F0F2F4', color: '#333B4A' }" border tooltip-effect="dark" style="width: 100%" @select-all="clickAllData">
|
|
|
+ <el-table :data="gridData" :header-cell-style="{ background: '#F0F2F4', color: '#333B4A' }" border tooltip-effect="dark" style="width: 100%">
|
|
|
<el-table-column prop="id" label="序列号" min-width="80px" align="center">
|
|
|
<template slot-scope="scope">{{ scope.row.id }}</template>
|
|
|
</el-table-column>
|
|
@@ -75,7 +87,7 @@
|
|
|
</el-table>
|
|
|
|
|
|
<div align="center"> <!--分页-->
|
|
|
- <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-pagination :current-page="curIndex" :page-sizes="[5, 10, 20]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="16" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
|
|
|
</div>
|
|
|
|
|
|
</el-main>
|
|
@@ -155,7 +167,7 @@
|
|
|
|
|
|
<script>
|
|
|
import { projectGetNameMap } from '@/api/testCaseProject.js'
|
|
|
-import { queryCasesData, createCaseData, updateCaseData, deleteCaseData, settingQueryModuleInfoListData } from '@/api/caseProject.js'
|
|
|
+import { queryCasesData, createCaseData, updateCaseData, deleteCaseData, settingQueryModuleInfoListData, caseUpdateFolderName, createFolderData, deleteFolderData } from '@/api/caseProject.js'
|
|
|
export default {
|
|
|
name: 'TestCaseProject',
|
|
|
data() {
|
|
@@ -165,6 +177,8 @@ export default {
|
|
|
dialogFormVisibleQuery: false,
|
|
|
moduleTypeShow: false,
|
|
|
dataShow: true,
|
|
|
+ Folder_Show: false,
|
|
|
+ node_Data: false,
|
|
|
titleName: '',
|
|
|
dialogFormVisibleUpdate: false,
|
|
|
priorityStrings: [{ name: 'p0', value: 0 }, { name: 'p1', value: 1 }, { name: 'p2', value: 2 }, { name: 'p3', value: 3 }],
|
|
@@ -173,33 +187,6 @@ export default {
|
|
|
userInformation: localStorage.getItem('username'),
|
|
|
userNames: localStorage.getItem('realname'),
|
|
|
bizJson: localStorage.getItem('key'),
|
|
|
- pickerOptions: {
|
|
|
- shortcuts: [{
|
|
|
- text: '最近一周',
|
|
|
- onClick(picker) {
|
|
|
- const end = new Date()
|
|
|
- const start = new Date()
|
|
|
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
|
|
- picker.$emit('pick', [start, end])
|
|
|
- }
|
|
|
- }, {
|
|
|
- text: '最近一个月',
|
|
|
- onClick(picker) {
|
|
|
- const end = new Date()
|
|
|
- const start = new Date()
|
|
|
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
|
|
- picker.$emit('pick', [start, end])
|
|
|
- }
|
|
|
- }, {
|
|
|
- text: '最近三个月',
|
|
|
- onClick(picker) {
|
|
|
- const end = new Date()
|
|
|
- const start = new Date()
|
|
|
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
|
|
- picker.$emit('pick', [start, end])
|
|
|
- }
|
|
|
- }]
|
|
|
- },
|
|
|
createTimeData: '',
|
|
|
userData: '',
|
|
|
pageSize: 5,
|
|
@@ -248,7 +235,7 @@ export default {
|
|
|
num.id = b.id
|
|
|
arr.push(num)
|
|
|
}
|
|
|
- // this.data1.push({ id: a.id, label: a.projectName, children: num })
|
|
|
+ this.data1.push({ id: a.id, label: a.projectName, children: num })
|
|
|
}
|
|
|
})
|
|
|
},
|
|
@@ -257,6 +244,132 @@ export default {
|
|
|
this.moduleTypeStr = res.data
|
|
|
})
|
|
|
},
|
|
|
+
|
|
|
+ dblclick(data) {
|
|
|
+ this.label = data.label// 当前选中的名称
|
|
|
+ this.id = data.id // 当前选中id
|
|
|
+ this.$set(data, 'label', '')
|
|
|
+ this.$set(data, 'que', true)
|
|
|
+ this.$set(data, 'del', false)
|
|
|
+ this.$set(this.node_Name, 'name', this.label)
|
|
|
+ setTimeout(() => { this.$refs.get_Input.focus() }, 100)
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.get_Input.focus()
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ // 新建文件夹
|
|
|
+ createFolder() {
|
|
|
+ this.Folder_Show = true
|
|
|
+ this.add_Folder = ''
|
|
|
+ this.node_Data = false
|
|
|
+ setTimeout(() => { this.$refs.input1.focus() }, 100)
|
|
|
+ },
|
|
|
+
|
|
|
+ // 显示隐藏删除图标
|
|
|
+ mouseenter(data) {
|
|
|
+ this.$set(data, 'del', true)
|
|
|
+ },
|
|
|
+ mouseleave(data) {
|
|
|
+ this.$set(data, 'del', false)
|
|
|
+ },
|
|
|
+
|
|
|
+ // 更新节点
|
|
|
+ queryNodeName(val, data) {
|
|
|
+ var mun = ''
|
|
|
+ for (var el of this.data1) { // 最外层id
|
|
|
+ if (data.id === el.id) { // 双击获取的ID和最外层的ID匹配
|
|
|
+ mun = '-1' // 有赋值为 -1
|
|
|
+ } else {
|
|
|
+ mun = '' // 没有赋值为点击的父元素
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (val === '') { // 判断用户是否有输入
|
|
|
+ val = this.label // 没有输入拿之前的label替代
|
|
|
+ this.end_Data = { parentFolderId: mun, folderName: val, xmindUrl: '', id: data.id, bizId: localStorage.getItem('key'), modifier: this.userInformation, creator: this.userInformation }
|
|
|
+ } else {
|
|
|
+ this.end_Data = { parentFolderId: mun, folderName: val, xmindUrl: '', id: data.id, bizId: localStorage.getItem('key'), modifier: this.userInformation, creator: this.userInformation }
|
|
|
+ }
|
|
|
+ this.$set(data, 'que', false) // 失去焦点隐藏input
|
|
|
+ this.$set(this.node_Name, 'name', '') // 清空input
|
|
|
+ caseUpdateFolderName(this.end_Data).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$message({ type: 'success', message: res.msg, duration: 1000 })
|
|
|
+ this.data1 = []
|
|
|
+ this.AllQueryFolderData(localStorage.getItem('key'))
|
|
|
+ } else {
|
|
|
+ this.$message({ type: 'error', message: res.msg, duration: 1000 })
|
|
|
+ this.data1 = []
|
|
|
+ this.AllQueryFolderData(localStorage.getItem('key'))
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ // 点击空白创建最外层nav
|
|
|
+ click_fa() {
|
|
|
+ this.created_id = '-1'
|
|
|
+ },
|
|
|
+
|
|
|
+ // input失去焦点新增(或取消)
|
|
|
+ hide_input(vel) {
|
|
|
+ if (vel !== '') {
|
|
|
+ this.created_id === '' ? this.created_id = '-1' : ''
|
|
|
+ this.formData = {
|
|
|
+ bizId: this.bizJson,
|
|
|
+ folderName: vel,
|
|
|
+ xmindUrl: '',
|
|
|
+ parentFolderId: this.created_id,
|
|
|
+ creator: this.userInformation,
|
|
|
+ modifier: this.userInformation
|
|
|
+ }
|
|
|
+ createFolderData(this.formData).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$message({ message: res.msg, type: 'success', duration: 1000, offset: 150 })
|
|
|
+ // this.createCaseCode = false
|
|
|
+ this.dataShow = true
|
|
|
+ this.node_Data = false
|
|
|
+ this.data1 = []
|
|
|
+ this.AllQueryFolderData(this.bizJson)
|
|
|
+ this.created_id = ''
|
|
|
+ } else {
|
|
|
+ this.$message({ message: res.msg, type: 'error', duration: 1000, offset: 150 })
|
|
|
+ this.created_id = ''
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.Folder_Show = false
|
|
|
+ } else {
|
|
|
+ this.$message({ message: '取消创建文件夹', type: 'success', duration: 1000, offset: 150 })
|
|
|
+ this.Folder_Show = false
|
|
|
+ this.node_Data = true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 删除
|
|
|
+ remove(node, data) {
|
|
|
+ this.$confirm('是否确认删除', '确认信息', {
|
|
|
+ distinguishCancelAndClose: true,
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消'
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.formData = {
|
|
|
+ id: node.data.id,
|
|
|
+ modifier: node.data.id
|
|
|
+ }
|
|
|
+ deleteFolderData(this.formData).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$message({ type: 'success', message: '已删除' })
|
|
|
+ this.data1 = []
|
|
|
+ this.AllQueryFolderData(localStorage.getItem('key'))
|
|
|
+ } else {
|
|
|
+ this.$message({ type: 'error', message: res.msg, duration: 1000 })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ .catch(action => {
|
|
|
+ this.$message({ type: 'success', message: '已取消' })
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
handleSizeChange(size) {
|
|
|
this.pageSize = size
|
|
|
this.pageIndex()
|