zoukankan      html  css  js  c++  java
  • vue 拖拽框架 draggable

    
    

    直接使用 

    npm i -S vuedraggable 

    页面使用

    <template>
      <div class="addProduct">
        <el-dialog title="流程" :visible.sync="addTemplate" width="900px">
          <div class="flex">
            <div class="addTemplate-left">
              <div @click="addType=false">完整三代</div>
              <div @click="addType=false">完整三代</div>
              <div @click="addType=false">完整三代</div>
              <div @click="addType=true">+新增流程</div>
            </div>
            <div class="flex addTemplate-content">
              <div class="addTemplate-content-left">
                <div class="addTemplate-content-left-title">完整三代流程</div>
                <div style="margin:0 15px 8px 15px;" v-if="addType">
                  <div style="padding:10px 0;">
                    <span class="colorRed">*</span>流程名称
                  </div>
                  <el-input placeholder="请输入流程名称" style="190px;"></el-input>
                </div>
                <draggable
                  v-model="fruit"
                  :options="dragOptions2"
                  :move="allow"
                  :clone="clone"
                  class="addTemplate-content-left-draggble"
                  :style="addType?'height:335px;':''"
                >
                  <div
                    v-for="(element,index) in fruit"
                    :key="index"
                    class="draggable-name flex-justify-between"
                  >
                    <div>
                      <span class="draggable-name-border">{{index+1}}</span>
                      {{element}}
                    </div>
                    <i class="el-icon-close" @click="draggChange('fruit',index)"></i>
                  </div>
                </draggable>
              </div>
              <div class="addTemplate-content-right">
                <draggable
                  v-model="girl"
                  :options="dragOptions1"
                  class="flex addTemplate-content-right-list"
                >
                  <div
                    v-for="(element,index) in girl"
                    :key="index"
                    class="draggable-name-right"
                  >{{element}}</div>
                </draggable>
                <div class="draggable-name-right">+新增流程</div>
              </div>
            </div>
          </div>
    
          <span slot="footer" class="dialog-footer">
            <el-button @click="addTemplate = false">取消</el-button>
            <el-button type="primary" @click="addTemplateChange">保存</el-button>
          </span>
        </el-dialog>
      </div>
    </template>
    
    <script>
    import draggable from "vuedraggable";
    export default {
      name: "addProduct",
      data() {
        return {
          fruit: [
            "我是一",
            "我是二",
            "我是三",
          ],
          girl: ["你是一", "你是二", "你是三", "你是死"],
          addTemplate: true,
          flowIndex: 0,
          dragOptions1: {
            animation: 0,
            group: {
              name: "description",
              pull: "clone",
              put: false
            },
            ghostClass: "ghost"
          },
          dragOptions2: {
            animation: 0,
            group: "description"
          }
        };
      },
      components: {
        draggable
      },
    
      methods: {
    
        clone(e) {
          console.log(e);
        },
        allow(evt) {
          // console.log(evt)
          // console.log(evt.relatedContext)
          // return (evt.draggedContext.element.name!== 'b')
        }
      }
    };
    </script>
    <style scoped lang="scss">
    @import "../../filters/css/all.css";
    .addProduct {
      .addTemplate-left {
         200px;
        border: 1px solid #d6d6d6;
        text-align: center;
        > div {
          padding: 10px 0;
        }
      }
      .addTemplate-content {
        .addTemplate-content-left {
           400px;
          height: 480px;
          background: #f4f4f4;
          .addTemplate-content-left-title {
            font-size: 16px;
            font-weight: 700;
            padding: 10px 15px;
          }
          .addTemplate-content-left-draggble {
            margin: auto;
             280px;
            height: 420px;
            overflow-x: visible;
            overflow-y: auto;
          }
          .addTemplate-content-left-draggble::-webkit-scrollbar {
            display: none;
          }
          .draggable-name {
            padding: 10px 10px;
            background: #fff;
            border: 1px dashed #d6d6d6;
             200px;
            border-radius: 5px;
            margin: 5px;
            margin-right: 30px;
            margin-left: 35px;
            position: relative;
            .draggable-name-border {
              position: absolute;
              left: -30px;
              top: 8px;
              color: rgb(0, 102, 255);
              background: #fff;
              z-index: 1002;
              border: 1px solid rgb(0, 102, 255);
              border-radius: 50%;
               20px;
              height: 20px;
              display: block;
              line-height: 20px;
              text-align: center;
            }
            .el-icon-close {
              position: absolute;
              right: -25px;
              top: 8px;
              z-index: 1002;
              border-radius: 50%;
               20px;
              height: 20px;
              display: block;
              line-height: 20px;
              text-align: center;
            }
          }
        }
        .addTemplate-content-right {
           265px;
          border: 1px solid #d6d6d6;
          .addTemplate-content-right-list {
            flex-wrap: wrap;
          }
          .draggable-name-right {
            border: 1px dashed #d6d6d6;
            padding: 10px 0;
             120px;
            text-align: center;
            margin: 5px;
            border-radius: 5px;
          }
        }
      }
    }
    </style>

      效果

    录制效果有点卡顿 
     
  • 相关阅读:
    Regexp:教程
    Regexp:目录
    笔记-C#:C# 方法、属性杂项-01
    Regexp:正则表达式应用——实例应用
    正则表达式:百科
    Regexp:template
    AngularJS:参考手册
    命令目录
    java实现连续数的公倍数
    java实现连续数的公倍数
  • 原文地址:https://www.cnblogs.com/wukongz/p/11900281.html
Copyright © 2011-2022 走看看