提交 162bc3d4 编写于 作者: Q q4speed

拖拽

上级 1f4e2e14
<template> <template>
<div class="request-container"> <div class="request-container">
<div class="request-item" v-for="(request, index) in requests" :key="index" @click="select(request)" <draggable :list="requests" group="Request" class="request-draggable" ghost-class="request-ghost">
:class="{'selected': isSelected(request)}"> <div class="request-item" v-for="(request, index) in requests" :key="index" @click="select(request)"
<el-row type="flex"> :class="{'selected': isSelected(request)}">
<div class="request-method"> <el-row type="flex">
{{request.method}} <div class="request-method">
</div> {{request.method}}
<div class="request-name"> </div>
{{request.name}} <div class="request-name">
</div> {{request.name}}
<div class="request-btn"> </div>
<el-dropdown trigger="click" @command="handleCommand"> <div class="request-btn">
<span class="el-dropdown-link el-icon-more"/> <el-dropdown trigger="click" @command="handleCommand">
<el-dropdown-menu slot="dropdown"> <span class="el-dropdown-link el-icon-more"/>
<el-dropdown-item :command="{type: 'copy', index: index}"> <el-dropdown-menu slot="dropdown">
{{$t('api_test.request.copy')}} <el-dropdown-item :command="{type: 'copy', index: index}">
</el-dropdown-item> {{$t('api_test.request.copy')}}
<el-dropdown-item :command="{type: 'delete', index: index}"> </el-dropdown-item>
{{$t('api_test.request.delete')}} <el-dropdown-item :command="{type: 'delete', index: index}">
</el-dropdown-item> {{$t('api_test.request.delete')}}
</el-dropdown-menu> </el-dropdown-item>
</el-dropdown> </el-dropdown-menu>
</div> </el-dropdown>
</el-row> </div>
</div> </el-row>
</div>
</draggable>
<el-button class="request-create" type="primary" size="mini" icon="el-icon-plus" plain @click="createRequest"/> <el-button class="request-create" type="primary" size="mini" icon="el-icon-plus" plain @click="createRequest"/>
</div> </div>
</template> </template>
<script> <script>
import {Request} from "../model/ScenarioModel"; import {Request} from "../model/ScenarioModel";
import draggable from 'vuedraggable';
export default { export default {
name: "MsApiRequestConfig", name: "MsApiRequestConfig",
components: {draggable},
props: { props: {
requests: Array, requests: Array,
open: Function open: Function
...@@ -136,4 +142,9 @@ ...@@ -136,4 +142,9 @@
.request-create { .request-create {
width: 100%; width: 100%;
} }
.request-ghost {
opacity: 0.5;
background-color: #909399;
}
</style> </style>
...@@ -3,29 +3,31 @@ ...@@ -3,29 +3,31 @@
<el-aside class="scenario-aside"> <el-aside class="scenario-aside">
<div class="scenario-list"> <div class="scenario-list">
<ms-api-collapse v-model="activeName" @change="handleChange" accordion> <ms-api-collapse v-model="activeName" @change="handleChange" accordion>
<ms-api-collapse-item v-for="(scenario, index) in scenarios" :key="index" <draggable :list="scenarios" group="Scenario" class="scenario-draggable" ghost-class="scenario-ghost">
:title="scenario.name" :name="index"> <ms-api-collapse-item v-for="(scenario, index) in scenarios" :key="index"
<template slot="title"> :title="scenario.name" :name="index">
<div class="scenario-name"> <template slot="title">
{{scenario.name}} <div class="scenario-name">
<span id="hint" v-if="!scenario.name"> {{scenario.name}}
<span id="hint" v-if="!scenario.name">
{{$t('api_test.scenario.config')}} {{$t('api_test.scenario.config')}}
</span> </span>
</div> </div>
<el-dropdown trigger="click" @command="handleCommand"> <el-dropdown trigger="click" @command="handleCommand">
<span class="el-dropdown-link el-icon-more scenario-btn"/> <span class="el-dropdown-link el-icon-more scenario-btn"/>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="{type: 'copy', index: index}"> <el-dropdown-item :command="{type: 'copy', index: index}">
{{$t('api_test.scenario.copy')}} {{$t('api_test.scenario.copy')}}
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item :command="{type:'delete', index:index}"> <el-dropdown-item :command="{type:'delete', index:index}">
{{$t('api_test.scenario.delete')}} {{$t('api_test.scenario.delete')}}
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</template> </template>
<ms-api-request-config :requests="scenario.requests" :open="select"/> <ms-api-request-config :requests="scenario.requests" :open="select"/>
</ms-api-collapse-item> </ms-api-collapse-item>
</draggable>
</ms-api-collapse> </ms-api-collapse>
</div> </div>
<el-button class="scenario-create" type="primary" size="mini" icon="el-icon-plus" plain @click="createScenario"/> <el-button class="scenario-create" type="primary" size="mini" icon="el-icon-plus" plain @click="createScenario"/>
...@@ -48,6 +50,7 @@ ...@@ -48,6 +50,7 @@
import MsApiRequestForm from "./ApiRequestForm"; import MsApiRequestForm from "./ApiRequestForm";
import MsApiScenarioForm from "./ApiScenarioForm"; import MsApiScenarioForm from "./ApiScenarioForm";
import {Scenario, Request} from "../model/ScenarioModel"; import {Scenario, Request} from "../model/ScenarioModel";
import draggable from 'vuedraggable';
export default { export default {
name: "MsApiScenarioConfig", name: "MsApiScenarioConfig",
...@@ -57,7 +60,8 @@ ...@@ -57,7 +60,8 @@
MsApiScenarioForm, MsApiScenarioForm,
MsApiRequestForm, MsApiRequestForm,
MsApiCollapse, MsApiCollapse,
MsApiCollapseItem MsApiCollapseItem,
draggable
}, },
props: { props: {
...@@ -183,4 +187,12 @@ ...@@ -183,4 +187,12 @@
right: 0; right: 0;
bottom: 0; bottom: 0;
} }
.scenario-ghost {
opacity: 0.5;
}
.scenario-draggable {
background-color: #909399;
}
</style> </style>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册