浏览代码

代码生成列支持拖动排序

RuoYi 5 年之前
父节点
当前提交
ed04c24eb3
共有 3 个文件被更改,包括 22 次插入1 次删除
  1. 1 0
      ruoyi-ui/package.json
  2. 7 0
      ruoyi-ui/src/assets/styles/ruoyi.scss
  3. 14 1
      ruoyi-ui/src/views/tool/gen/editTable.vue

+ 1 - 0
ruoyi-ui/package.json

@@ -54,6 +54,7 @@
     "nprogress": "0.2.0",
     "path-to-regexp": "2.4.0",
     "screenfull": "4.2.0",
+    "sortablejs": "1.8.4",
     "vue": "2.6.10",
     "vue-count-to": "1.0.13",
     "vue-quill-editor": "3.0.6",

+ 7 - 0
ruoyi-ui/src/assets/styles/ruoyi.scss

@@ -187,4 +187,11 @@
 	border-radius: 50%;
 	box-shadow: 0 0 4px #ccc;
 	overflow: hidden;
+}
+
+/* 拖拽列样式 */
+.sortable-ghost{
+	opacity: .8;
+	color: #fff!important;
+	background: #42b983!important;
 }

+ 14 - 1
ruoyi-ui/src/views/tool/gen/editTable.vue

@@ -5,7 +5,7 @@
         <basic-info-form ref="basicInfo" :info="info" />
       </el-tab-pane>
       <el-tab-pane label="字段信息" name="cloum">
-        <el-table :data="cloumns" :max-height="tableHeight">
+        <el-table ref="dragTable" :data="cloumns" row-key="columnId" :max-height="tableHeight">
           <el-table-column label="序号" type="index" min-width="5%" />
           <el-table-column
             label="字段列名"
@@ -126,6 +126,7 @@ import { getGenTable, updateGenTable } from "@/api/tool/gen";
 import { optionselect as getDictOptionselect } from "@/api/system/dict/type";
 import basicInfoForm from "./basicInfoForm";
 import genInfoForm from "./genInfoForm";
+import Sortable from 'sortablejs'
 export default {
   name: "GenEdit",
   components: {
@@ -198,6 +199,18 @@ export default {
       this.$store.dispatch("tagsView/delView", this.$route);
       this.$router.push({ path: "/tool/gen", query: { t: Date.now()}})
     }
+  },
+  mounted() {
+    const el = this.$refs.dragTable.$el.querySelectorAll(".el-table__body-wrapper > table > tbody")[0];
+    const sortable = Sortable.create(el, {
+      onEnd: evt => {
+        const targetRow = this.cloumns.splice(evt.oldIndex, 1)[0];
+        this.cloumns.splice(evt.newIndex, 0, targetRow);
+        for (let index in this.cloumns) {
+          this.cloumns[index].sort = parseInt(index) + 1;
+        }
+      }
+    });
   }
 };
 </script>