lrf402788946 5 rokov pred
rodič
commit
b134813f3c

+ 21 - 3
layout/admin/data-table.vue

@@ -10,7 +10,13 @@
             <template v-for="(item, index) in opera">
               <template v-if="display(item, row)">
                 <el-tooltip :key="index" effect="dark" :content="item.label" placement="bottom">
-                  <el-button :key="index" type="text" :icon="item.icon || ''" size="mini" @click="handleOpera(row, item.method)"></el-button>
+                  <el-button
+                    :key="index"
+                    type="text"
+                    :icon="item.icon || ''"
+                    size="mini"
+                    @click="handleOpera(row, item.method, item.confirm, item.methodZh)"
+                  ></el-button>
                 </el-tooltip>
               </template>
             </template>
@@ -45,8 +51,20 @@ export default {
         } else return cellValue;
       }
     },
-    handleOpera(data, method) {
-      this.$emit(method, data);
+    handleOpera(data, method, confirm = false, methodZh = '操作') {
+      if (confirm) {
+        this.$confirm(`您确认${methodZh}该数据?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+          .then(() => {
+            this.$emit(method, data);
+          })
+          .catch(() => {});
+      } else {
+        this.$emit(method, data);
+      }
     },
     display(item, row) {
       let display = _.get(item, `display`, true);

+ 2 - 2
layout/admin/list-frame.vue

@@ -50,7 +50,7 @@
             <el-pagination
               background
               layout="total, prev, pager, next"
-              :total="totalRow"
+              :total="total"
               :page-size="limit"
               :current-page.sync="currentPage"
               @current-change="changePage"
@@ -70,7 +70,7 @@ export default {
   props: {
     title: { type: String },
     filter: { type: Array, default: () => [] },
-    totalRow: { type: Number, default: 0 },
+    total: { type: Number, default: 0 },
     needPag: { type: Boolean, default: true },
     returns: { type: null, default: null },
     needFilter: { type: Boolean, default: true },

+ 1 - 1
utils/axios-wrapper.js

@@ -91,7 +91,7 @@ export default class AxiosWrapper {
       }
       // unwrap data
       if (this.unwrap) {
-        res = _.omit(res, ['errcode', 'errmsg', 'details']);
+        // res = _.omit(res, ['errcode', 'errmsg', 'details']);
         const keys = Object.keys(res);
         if (keys.length === 1 && keys.includes('data')) {
           res = res.data;