002201 1 jaar geleden
bovenliggende
commit
f74dc52f30

+ 0 - 79
src/components/hide-table-column/index.vue

@@ -1,79 +0,0 @@
-<template>
-  <el-button v-bind="$attrs" v-on="$listeners" @click="onOpen">
-    隐藏列
-    <el-drawer size="20%" title="隐藏列" append-to-body :visible.sync="drawer">
-      <el-row :gutter="20" style="margin: 0">
-        <el-draggable
-          v-model="innerValue"
-          :group="{ item: 'key' }"
-          @start="onStart"
-          @end="onEnd"
-        >
-          <el-col
-            v-for="({ item, attr }, index) in innerValue"
-            :key="index"
-            :span="24"
-            style="
-              display: flex;
-              justify-content: space-between;
-              margin: 15px 0;
-            "
-          >
-            <span style="cursor: move">
-              <i class="el-icon-s-grid"></i>
-              {{ item.title }}
-            </span>
-            <el-switch v-model="attr.isHidden"> </el-switch>
-          </el-col>
-        </el-draggable>
-      </el-row>
-    </el-drawer>
-  </el-button>
-</template>
-
-<script>
-export default {
-  name: "HideTableColumn",
-  props: {
-    // v-model
-    value: {
-      type: [Array],
-      require: true,
-    },
-  },
-  components: {
-    ElDraggable: () => import("@/components/draggable/index.vue"),
-  },
-  data() {
-    return {
-      drawer: false,
-    };
-  },
-  computed: {
-    innerValue: {
-      get() {
-        return this.value;
-      },
-      set(value) {
-        this.$emit("input", value);
-      },
-    },
-  },
-  watch: {},
-  methods: {
-    onOpen() {
-      this.drawer = true;
-    },
-    onStart() {
-      console.log("开始拖拽事件", this.innerValue);
-    },
-    onEnd() {
-      console.log("拖拽结束事件", this.innerValue);
-    },
-  },
-  created() {},
-  mounted() {},
-  destroyed() {},
-};
-</script>
-<style scoped></style>

+ 32 - 6
src/components/super-table/index.vue

@@ -1,10 +1,10 @@
 <template>
-  <!-- v-if="innerValue.length" -->
   <el-table
     v-bind="$attrs"
     v-on="$listeners"
     :data="innerValue"
     border
+    ref="superTable"
     class="el-super-table"
   >
     <slot></slot>
@@ -64,7 +64,11 @@
           :visible.sync="drawer"
         >
           <el-row :gutter="20" style="margin: 0">
-            <el-draggable v-model="columns" :group="{ item: 'key' }">
+            <el-draggable
+              v-model="columns"
+              :group="{ item: 'key' }"
+              @change="changeColumns"
+            >
               <el-col
                 v-for="({ item }, index) in columns"
                 :key="index"
@@ -84,11 +88,16 @@
                     v-model="item.hidden"
                     :size="$attrs.size"
                     style="margin: 0 15px 0 0"
+                    @change="changeColumns"
                   >
                     <el-radio-button :label="true">显</el-radio-button>
                     <el-radio-button :label="false">隐</el-radio-button>
                   </el-radio-group>
-                  <el-radio-group v-model="item.fixed" :size="$attrs.size">
+                  <el-radio-group
+                    v-model="item.fixed"
+                    :size="$attrs.size"
+                    @change="changeColumns"
+                  >
                     <el-radio-button :label="false">不</el-radio-button>
                     <el-radio-button label="left">左</el-radio-button>
                     <el-radio-button label="right">右</el-radio-button>
@@ -135,7 +144,16 @@ export default {
     ElComputedInputV2: () => import("@/components/computed-input-v2/index.vue"),
   },
   data() {
-    return { drawer: false };
+    const loaclColumns = localStorage.getItem(
+      this.$parent.$parent.$options.name
+    );
+    const Columns = !!loaclColumns
+      ? JSON.parse(loaclColumns)
+      : this.$props.columns;
+    return {
+      drawer: false,
+      Columns: Columns,
+    };
   },
   computed: {
     innerValue: {
@@ -148,12 +166,20 @@ export default {
     },
     showColumns: {
       get() {
-        return this.columns.filter(({ item }) => item.hidden);
+        return this.Columns.filter(({ item }) => item.hidden);
       },
     },
   },
   watch: {},
-  methods: {},
+  methods: {
+    changeColumns() {
+      this.$refs.superTable.doLayout();
+      localStorage.setItem(
+        this.$parent.$parent.$options.name,
+        JSON.stringify(this.columns)
+      );
+    },
+  },
   created() {},
   mounted() {},
   destroyed() {},

+ 1 - 6
src/views/purchase/apply/index.vue

@@ -11,8 +11,7 @@ export default {
     EditModel: () => import("./edit/index.vue"),
     SubmitModel: () => import("./submit/index.vue"),
     DeleteModel: () => import("./delete/index.vue"),
-    ElHideTableColumnButton: () =>
-      import("@/components/hide-table-column/index.vue"),
+
     ElSuperTable: () => import("@/components/super-table/index.vue"),
     ElSuperSearch: () => import("@/components/super-search/index.vue"),
   },
@@ -215,10 +214,6 @@ export default {
       <div>
         <el-button :size="size" @click="useBatch"> 批 量 </el-button>
         <el-divider direction="vertical"></el-divider>
-        <el-hide-table-column-button
-          v-model="TableColumns"
-          :size="size"
-        ></el-hide-table-column-button>
       </div>
     </div>
     <el-super-table

+ 0 - 7
src/views/purchase/contract/index.vue

@@ -25,7 +25,6 @@ export default {
     return {
       size: "mini",
       loading: false,
-      batching: false,
       SearchColumns: SearchColumns,
       params: initParams(SearchColumns),
       tableData: [],
@@ -87,12 +86,6 @@ export default {
       const { open } = this.$refs.SeeButton;
       await open(id);
     },
-    // 归 档
-    async usePigeonhole(prop) {
-      const { open } = this.$refs.PigeButton;
-      const [{ id }] = prop;
-      await open(id);
-    },
     // 导 出
     async useExport(prop, page) {
       const { pageNum, pageSize } = page;

+ 1 - 6
src/views/purchase/purchase-order/index.vue

@@ -25,8 +25,7 @@ export default {
     SeeDrawer: () => import('./see/index.vue'),
     EditDrawer: () => import('./edit/index.vue'),
     PurchaseReturnDrawer: () => import('./purchaseReturn/index.vue'),
-    ElHideTableColumnButton: () =>
-      import("@/components/hide-table-column/index.vue"),
+
     ElSuperTable: () => import("@/components/super-table/index.vue"),
     ElSuperSearch: () => import("@/components/super-search/index.vue"),
     },
@@ -650,10 +649,6 @@ export default {
 
         </el-button-group>
 
-        <!-- <el-hide-table-column-button
-          v-model="tableColumns"
-          size="mini"
-        ></el-hide-table-column-button> -->
 
       </el-col>
     </el-row>