Jelajahi Sumber

improve: 后台组件替换

From-wh 2 tahun lalu
induk
melakukan
f9417ba5ec
100 mengubah file dengan 3280 tambahan dan 3343 penghapusan
  1. 115 0
      template/admin/src/components/Pagination/index.vue
  2. 7 7
      template/admin/src/components/cards/cards.vue
  3. 134 191
      template/admin/src/components/couponList/index.vue
  4. 114 143
      template/admin/src/components/customerInfo/index.vue
  5. 3 3
      template/admin/src/components/dateRadio/index.vue
  6. 4 4
      template/admin/src/components/diyComponents/c_bg_color.vue
  7. 3 3
      template/admin/src/components/diyComponents/c_hot_word.vue
  8. 10 10
      template/admin/src/components/diyComponents/c_input_list.vue
  9. 7 7
      template/admin/src/components/diyComponents/c_input_number.vue
  10. 4 4
      template/admin/src/components/diyComponents/c_is_show.vue
  11. 12 9
      template/admin/src/components/diyComponents/c_select.vue
  12. 4 4
      template/admin/src/components/diyComponents/c_tab.vue
  13. 10 10
      template/admin/src/components/diyComponents/c_tab_bar.vue
  14. 16 16
      template/admin/src/components/diyComponents/c_txt_list.vue
  15. 8 8
      template/admin/src/components/diyComponents/c_txt_tab.vue
  16. 4 4
      template/admin/src/components/diyComponents/c_upload_list.vue
  17. 16 16
      template/admin/src/components/freightTemplate/city.vue
  18. 170 299
      template/admin/src/components/freightTemplate/index.vue
  19. 5 5
      template/admin/src/components/from/from.vue
  20. 90 97
      template/admin/src/components/goodsList/index.vue
  21. 2 2
      template/admin/src/components/iconFrom/index.vue
  22. 2 2
      template/admin/src/components/labelList/index.vue
  23. 95 79
      template/admin/src/components/linkaddress/index.vue
  24. 2 2
      template/admin/src/components/mobileConfigDiy/c_home_service.vue
  25. 2 2
      template/admin/src/components/mobileConfigDiy/c_news_roll.vue
  26. 2 2
      template/admin/src/components/mobileConfigDiy/c_search_box.vue
  27. 2 2
      template/admin/src/components/mobileConfigDiy/pageFoot.vue
  28. 22 22
      template/admin/src/components/mobileConfigDiy/pageTitle.vue
  29. 4 4
      template/admin/src/components/mobileConfigRightDiy/c_bg_color.vue
  30. 5 5
      template/admin/src/components/mobileConfigRightDiy/c_cascader.vue
  31. 9 9
      template/admin/src/components/mobileConfigRightDiy/c_foot.vue
  32. 2 2
      template/admin/src/components/mobileConfigRightDiy/c_hot_imgs.vue
  33. 3 3
      template/admin/src/components/mobileConfigRightDiy/c_hot_word.vue
  34. 5 5
      template/admin/src/components/mobileConfigRightDiy/c_input_item.vue
  35. 8 8
      template/admin/src/components/mobileConfigRightDiy/c_input_number.vue
  36. 4 4
      template/admin/src/components/mobileConfigRightDiy/c_is_show.vue
  37. 5 5
      template/admin/src/components/mobileConfigRightDiy/c_menu_list.vue
  38. 1 1
      template/admin/src/components/mobileConfigRightDiy/c_pictrue.vue
  39. 6 6
      template/admin/src/components/mobileConfigRightDiy/c_product.vue
  40. 7 9
      template/admin/src/components/mobileConfigRightDiy/c_select.vue
  41. 4 4
      template/admin/src/components/mobileConfigRightDiy/c_set_up.vue
  42. 5 5
      template/admin/src/components/mobileConfigRightDiy/c_slider.vue
  43. 4 4
      template/admin/src/components/mobileConfigRightDiy/c_status.vue
  44. 4 4
      template/admin/src/components/mobileConfigRightDiy/c_tab.vue
  45. 8 8
      template/admin/src/components/mobileConfigRightDiy/c_txt_tab.vue
  46. 2 2
      template/admin/src/components/modelSure/modelSure.vue
  47. 22 22
      template/admin/src/components/newsCategory/index.vue
  48. 37 37
      template/admin/src/components/publicSearchFrom/index.vue
  49. 7 7
      template/admin/src/components/remark/index.vue
  50. 1 1
      template/admin/src/components/rightBtn/index.vue
  51. 1 1
      template/admin/src/components/rightConfig/index.vue
  52. 41 41
      template/admin/src/components/searchFrom/searchFrom.vue
  53. 32 18
      template/admin/src/components/sendCoupons/index.vue
  54. 39 26
      template/admin/src/components/sortList/index.vue
  55. 79 79
      template/admin/src/components/systemStore/index.vue
  56. 2 2
      template/admin/src/components/upGrade/index.vue
  57. 27 24
      template/admin/src/components/uploadPictures/index.vue
  58. 5 5
      template/admin/src/components/uploadVideo/index.vue
  59. 5 5
      template/admin/src/components/uploadVideo2/index.vue
  60. 2 2
      template/admin/src/components/userLabel.vue
  61. 1 1
      template/admin/src/components/wangEditor/index.vue
  62. 1 1
      template/admin/src/components/wangEditor/monaco.vue
  63. 8 4
      template/admin/src/layout/component/columnsAside.vue
  64. 6 3
      template/admin/src/layout/component/transverseAside.vue
  65. 16 18
      template/admin/src/layout/navBars/breadcrumb/setings.vue
  66. 3 3
      template/admin/src/layout/navBars/breadcrumb/user.vue
  67. 7 3
      template/admin/src/main.js
  68. 17 15
      template/admin/src/pages/account/login/index.vue
  69. 126 79
      template/admin/src/pages/agent/agentManage.vue
  70. 110 136
      template/admin/src/pages/agent/handle/promotersList.vue
  71. 7 7
      template/admin/src/pages/app/app/index.vue
  72. 9 9
      template/admin/src/pages/app/routine/download/index.vue
  73. 57 33
      template/admin/src/pages/app/version/index.vue
  74. 53 53
      template/admin/src/pages/app/wechat/menus/index.vue
  75. 45 45
      template/admin/src/pages/app/wechat/newsCategory/save.vue
  76. 48 48
      template/admin/src/pages/app/wechat/reply/follow.vue
  77. 1 1
      template/admin/src/pages/app/wechat/reply/index.vue
  78. 74 61
      template/admin/src/pages/app/wechat/reply/keyword.vue
  79. 85 103
      template/admin/src/pages/app/wechat/user/handle/sendOut.vue
  80. 74 83
      template/admin/src/pages/app/wechat/user/message.vue
  81. 30 36
      template/admin/src/pages/app/wechat/user/tag.vue
  82. 137 153
      template/admin/src/pages/app/wechat/user/user.vue
  83. 67 63
      template/admin/src/pages/cms/addArticle/index.vue
  84. 83 99
      template/admin/src/pages/cms/article/index.vue
  85. 31 27
      template/admin/src/pages/cms/article/relation.vue
  86. 40 46
      template/admin/src/pages/cms/articleCategory/index.vue
  87. 27 24
      template/admin/src/pages/crud/index.vue
  88. 9 9
      template/admin/src/pages/division/agent/agreement.vue
  89. 93 58
      template/admin/src/pages/division/agent/applyList.vue
  90. 130 109
      template/admin/src/pages/division/agent/index.vue
  91. 144 195
      template/admin/src/pages/division/list/index.vue
  92. 73 63
      template/admin/src/pages/finance/balance/index.vue
  93. 60 51
      template/admin/src/pages/finance/billingRecords/index.vue
  94. 30 44
      template/admin/src/pages/finance/billingRecords/orderDetall.vue
  95. 79 69
      template/admin/src/pages/finance/capitalFlow/index.vue
  96. 49 54
      template/admin/src/pages/finance/commission/handle/commissionDetails.vue
  97. 56 40
      template/admin/src/pages/finance/commission/index.vue
  98. 68 90
      template/admin/src/pages/finance/components/commissionDetails/index.vue
  99. 75 96
      template/admin/src/pages/finance/financialRecords/bill/index.vue
  100. 0 0
      template/admin/src/pages/finance/financialRecords/recharge/index.vue

+ 115 - 0
template/admin/src/components/Pagination/index.vue

@@ -0,0 +1,115 @@
+<template>
+  <div :class="{ hidden: hidden }" class="pagination-container">
+    <el-pagination
+      :background="background"
+      :current-page.sync="currentPage"
+      :page-size.sync="pageSize"
+      :layout="layout"
+      :page-sizes="pageSizes"
+      :total="total"
+      v-bind="$attrs"
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+    ></el-pagination>
+    <!-- <el-pagination
+        @size-change="limitChange"
+        @current-change="pageChange"
+        :current-page="4"
+        :page-sizes="[10, 15, 20, 30]"
+        :page-size="page.limit"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="page.total"
+      >
+      </el-pagination> -->
+  </div>
+</template>
+
+<script>
+import { scrollTo } from '@/utils/scroll-to.js';
+
+export default {
+  name: 'Pagination',
+  props: {
+    total: {
+      required: true,
+      type: Number,
+    },
+    page: {
+      type: Number,
+      default: 1,
+    },
+    limit: {
+      type: Number,
+      default: 20,
+    },
+    pageSizes: {
+      type: Array,
+      default() {
+        return [10, 20, 30, 50];
+      },
+    },
+    layout: {
+      type: String,
+      default: 'total, sizes, prev, pager, next, jumper',
+    },
+    background: {
+      type: Boolean,
+      default: true,
+    },
+    autoScroll: {
+      type: Boolean,
+      default: true,
+    },
+    hidden: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  computed: {
+    currentPage: {
+      get() {
+        console.log(this.page);
+        return this.page;
+      },
+      set(val) {
+        this.$emit('update:page', val);
+      },
+    },
+    pageSize: {
+      get() {
+        return this.limit;
+      },
+      set(val) {
+        this.$emit('update:limit', val);
+      },
+    },
+  },
+  methods: {
+    handleSizeChange(val) {
+      console.log(val);
+      this.$emit('pagination');
+      if (this.autoScroll) {
+        scrollTo(0, 800);
+      }
+    },
+    handleCurrentChange(val) {
+      console.log(val);
+
+      this.$emit('pagination');
+      if (this.autoScroll) {
+        scrollTo(0, 800);
+      }
+    },
+  },
+};
+</script>
+
+<style scoped>
+.pagination-container {
+  background: #fff;
+  padding: 32px 16px;
+}
+.pagination-container.hidden {
+  display: none;
+}
+</style>

+ 7 - 7
template/admin/src/components/cards/cards.vue

@@ -1,8 +1,8 @@
 <template>
   <div>
     <!--v-if="item.count && item.count!='0.00'"-->
-    <Row type="flex" align="middle" :gutter="10" class="ivu-mt">
-      <Col
+    <el-row  align="middle" :gutter="10" class="ivu-mt">
+      <el-col
         :xl="item.col"
         :lg="6"
         :md="12"
@@ -12,7 +12,7 @@
         v-for="(item, index) in cardLists"
         :key="index"
       >
-        <Card shadow :padding="0" class="card_cent">
+        <el-card shadow="never" class="card_cent">
           <div class="card_box">
             <div
               class="card_box_cir"
@@ -42,9 +42,9 @@
               <span class="sp2" v-text="item.name"></span>
             </div>
           </div>
-        </Card>
-      </Col>
-    </Row>
+        </el-card>
+      </el-col>
+    </el-row>
   </div>
 </template>
 
@@ -95,7 +95,7 @@ export default {
     display flex
     align-items: center
     /*justify-content: center*/
-    padding: 25px
+    // padding: 25px
     box-sizing: border-box
     border-radius: 4px
     .card_box_cir

+ 134 - 191
template/admin/src/components/couponList/index.vue

@@ -1,45 +1,86 @@
 <template>
   <div>
     <Modal v-model="isTemplate" title="优惠券列表" width="60%" @on-ok="ok" @on-cancel="cancel">
-      <Table
-        :columns="columns"
+      <el-table
         :data="couponList"
         ref="table"
         class="mt25"
-        :loading="loading"
-        highlight-row
-        @on-select="handleSelectRow"
-        @on-select-cancel="handleCancelRow"
-        @on-select-all="handleSelectAll"
-        @on-select-all-cancel="handleSelectAll"
+        v-loading="loading"
+        highlight-current-row
+        :row-key="getRowKey"
         no-userFrom-text="暂无数据"
         no-filtered-userFrom-text="暂无筛选结果"
+        @selection-change="changeCheckbox"
       >
-        <template slot-scope="{ row, index }" slot="count">
-          <span v-if="row.is_permanent">不限量</span>
-          <div v-else>
-            <span class="fa">发布:{{ row.total_count }}</span>
-            <span class="sheng">剩余:{{ row.remain_count }}</span>
-          </div>
-        </template>
-        <template slot-scope="{ row, index }" slot="start_time">
-          <div v-if="row.start_time">{{ row.start_time | formatDate }} - {{ row.end_time | formatDate }}</div>
-          <span v-else>不限时</span>
-        </template>
-        <template slot-scope="{ row }" slot="type">
-          <span v-if="row.type === 1">品类券</span>
-          <span v-else-if="row.type === 2">商品券</span>
-          <span v-else-if="row.type === 3">会员券</span>
-          <span v-else>通用券</span>
-        </template>
-        <template slot-scope="{ row, index }" slot="status">
-          <Tag color="blue" v-show="row.status === 1">正常</Tag>
-          <Tag color="gold" v-show="row.status === 0">未开启</Tag>
-          <Tag color="red" v-show="row.status === -1">已失效</Tag>
-        </template>
-      </Table>
+        <el-table-column v-if="!luckDraw" type="selection" width="55" :reserve-selection="true"> </el-table-column>
+        <el-table-column v-else width="50">
+          <template slot-scope="scope">
+            <el-radio v-model="templateRadio" :label="scope.row.id" @change.native="getTemplateRow(scope.row)"
+              >&nbsp;</el-radio
+            >
+          </template>
+        </el-table-column>
+        <el-table-column label="ID" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.id }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="优惠券名称" min-width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.title }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="优惠券类型" min-width="100">
+          <template slot-scope="scope">
+            <span v-if="scope.row.type === 1">品类券</span>
+            <span v-else-if="scope.row.type === 2">商品券</span>
+            <span v-else-if="scope.row.type === 3">会员券</span>
+            <span v-else>通用券</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="面值" min-width="100">
+          <template slot-scope="scope">
+            <span>{{ scope.row.coupon_price }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="最低消费额" min-width="100">
+          <template slot-scope="scope">
+            <span>{{ scope.row.use_min_price }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="发布数量" min-width="100">
+          <template slot-scope="scope">
+            <span v-if="scope.row.is_permanent">不限量</span>
+            <div v-else>
+              <span class="fa">发布:{{ scope.row.total_count }}</span>
+              <span class="sheng">剩余:{{ scope.row.remain_count }}</span>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="有效期限" min-width="100">
+          <template slot-scope="scope">
+            <div v-if="scope.row.start_time">
+              {{ scope.row.start_time | formatDate }} - {{ scope.row.end_time | formatDate }}
+            </div>
+            <span v-else>不限时</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="状态" min-width="100">
+          <template slot-scope="scope">
+            <Tag color="blue" v-show="scope.row.status === 1">正常</Tag>
+            <Tag color="gold" v-show="scope.row.status === 0">未开启</Tag>
+            <Tag color="red" v-show="scope.row.status === -1">已失效</Tag>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page :total="total" show-elevator show-total @on-change="receivePageChange" :page-size="tableFrom.limit" />
+        <pagination
+          v-if="total"
+          :total="total"
+          :page.sync="tableFrom.page"
+          :limit.sync="tableFrom.limit"
+          @pagination="tableList"
+        />
       </div>
     </Modal>
   </div>
@@ -76,6 +117,8 @@ export default {
   },
   data() {
     return {
+      templateRadio: 0,
+
       currentid: 0,
       productRow: {},
       isTemplate: false,
@@ -83,183 +126,63 @@ export default {
       tableFrom: {
         receive_type: 3,
         page: 1,
-        limit: 10,
+        limit: 5,
       },
       total: 0,
       ids: [],
       texts: [],
-      columns: [
-        {
-          title: 'ID',
-          key: 'id',
-          width: 60,
-        },
-        {
-          title: '优惠券名称',
-          key: 'title',
-          minWidth: 150,
-        },
-        {
-          title: '优惠券类型',
-          slot: 'type',
-          minWidth: 80,
-        },
-        {
-          title: '面值',
-          key: 'coupon_price',
-          minWidth: 100,
-        },
-        {
-          title: '最低消费额',
-          key: 'use_min_price',
-          minWidth: 100,
-        },
-        {
-          title: '发布数量',
-          slot: 'count',
-          minWidth: 120,
-        },
-        {
-          title: '有效期限',
-          slot: 'start_time',
-          minWidth: 120,
-        },
-        {
-          title: '状态',
-          slot: 'status',
-          minWidth: 80,
-        },
-      ],
       couponList: [],
-      selectedIds: new Set(),
-      selectedNames: new Set(),
+      selectedIds: [],
+      selectedNames: [],
+      multipleSelection: [],
     };
   },
   mounted() {},
   watch: {
     updateIds: function (newVal) {
-      this.selectedIds = new Set(newVal);
+      this.selectedIds = newVal;
     },
     updateName: function (newVal) {
-      this.selectedNames = new Set(newVal);
+      this.selectedNames = newVal;
+      this.multipleSelection = newVal;
     },
   },
-  created() {
-    let radio = {
-      width: 60,
-      align: 'center',
-      render: (h, params) => {
-        let id = params.row.id;
-        let flag = false;
-        if (this.currentid === id) {
-          flag = true;
-        } else {
-          flag = false;
-        }
-        let self = this;
-        return h('div', [
-          h('Radio', {
-            props: {
-              value: flag,
-            },
-            on: {
-              'on-change': () => {
-                self.currentid = id;
-                this.productRow = params.row;
-              },
-            },
-          }),
-        ]);
-      },
-    };
-
-    let checkbox = {
-      type: 'selection',
-      width: 60,
-      align: 'center',
-    };
-    if (this.luckDraw) {
-      this.columns.unshift(radio);
-    } else {
-      this.columns.unshift(checkbox);
-    }
-  },
+  created() {},
   methods: {
+    getRowKey(row) {
+      return row.id;
+    },
+    getTemplateRow(row) {
+      this.currentid = row.id;
+      this.productRow = row;
+    },
     //对象数组去重;
     unique(arr) {
       const res = new Map();
       return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1));
     },
-    handleSelectAll(selection) {
-      // 取消全选 数组为空
-      if (selection.length === 0) {
-        // cy 若取消全选,删除保存在selectedIds里和当前table数据的id一致的数据,达到,当前页取消全选的效果
-        // 当前页的table数据
-        let that = this;
-        let data = that.$refs.table.data;
-        data.forEach((item) => {
-          if (that.selectedIds.has(item.id)) {
-            that.selectedIds.delete(item.id);
-            let nameList = that.unique(Array.from(that.selectedNames));
-            that.unique(Array.from(that.selectedNames)).forEach((j, index) => {
-              if (j.id === item.id) {
-                nameList.splice(index, 1);
-              }
-            });
-            that.selectedNames = new Set(nameList);
-            // this.selectedNames.clear();
-          }
-        });
-      } else {
-        selection.forEach((item) => {
-          this.selectedIds.add(item.id);
-          this.selectedNames.add({ id: item.id, title: item.title });
-        });
-      }
-      this.$nextTick(() => {
-        //确保dom加载完毕
-        this.setChecked();
-      });
-    },
-
-    //  选中某一行
-    handleSelectRow(selection, row) {
-      this.selectedIds.add(row.id);
-      this.selectedNames.add({ id: row.id, title: row.title });
-      this.$nextTick(() => {
-        //确保dom加载完毕
-        this.setChecked();
-      });
-    },
-    //  取消某一行
-    handleCancelRow(selection, row) {
-      let that = this;
-      that.selectedIds.delete(row.id);
-      let nameList = Array.from(that.selectedNames);
-      Array.from(that.selectedNames).forEach((item, index) => {
-        if (item.id === row.id) {
-          nameList.splice(index, 1);
-        }
-      });
-      that.selectedNames = new Set(nameList);
-      this.$nextTick(() => {
-        //确保dom加载完毕
-        this.setChecked();
-      });
-    },
-    setChecked() {
-      this.ids = [...this.selectedIds];
-      this.texts = [...this.selectedNames];
-      // 找到绑定的table的ref对应的dom,找到table的objData对象,objData保存的是当前页的数据
-      let objData = this.$refs.table.objData;
-      for (let index in objData) {
-        if (this.selectedIds.has(objData[index].id)) {
-          // cy 弊端 每次切换select都会触发table的on-select事件
-          // this.$refs.purchaseTable.toggleSelect(index) // 在保存选中的ids的set合集里找与当前页数据id一样的行,使用toggleSelect(index),将这一行选中
-          // cy 改进
-          objData[index]._isChecked = true;
+    changeCheckbox(selection) {
+      console.log(selection);
+      let uniqueArr = [];
+      let cups = [];
+      let ids = [];
+      let arr = this.unique(selection);
+      for (let i = 0; i < arr.length; i++) {
+        const item = arr[i];
+        if (!ids.includes(item.id)) {
+          let obj = {
+            id: item.id,
+            title: item.title,
+          };
+          cups.push(obj);
+          ids.push(item.id);
+          uniqueArr.push(item);
         }
       }
+      console.log(cups);
+      this.selectedIds = ids;
+      this.selectedNames = cups;
+      this.multipleSelection = uniqueArr;
     },
     cancel() {
       this.isTemplate = false;
@@ -272,11 +195,12 @@ export default {
       releasedListApi(this.tableFrom).then((res) => {
         let data = res.data;
         this.couponList = data.list;
+        this.total = data.count;
         this.$nextTick(() => {
           //确保dom加载完毕
-          this.setChecked();
+          // this.setChecked();
+          this.showSelectData();
         });
-        this.total = data.count;
         this.loading = false;
       });
     },
@@ -285,13 +209,32 @@ export default {
         this.$emit('getCouponId', this.productRow);
         this.currentid = 0;
       } else {
-        this.$emit('nameId', this.ids, this.texts);
+        this.$emit('nameId', this.selectedIds, this.selectedNames);
       }
     },
-    receivePageChange(index) {
+    pageChange(index) {
       this.tableFrom.page = index;
       this.tableList();
     },
+    limitChange(limit) {
+      this.tableFrom.limit = limit;
+      this.tableList();
+    },
+    showSelectData() {
+      console.log(this.multipleSelection);
+      if (this.multipleSelection.length > 0) {
+        // 判断是否存在勾选过的数据
+        this.couponList.forEach((row) => {
+          // 获取数据列表接口请求到的数据
+          this.multipleSelection.forEach((item) => {
+            // 勾选到的数据
+            if (row.id === item.id) {
+              // this.$refs.table.toggleRowSelection(item, true); // 若有重合,则回显该条数据
+            }
+          });
+        });
+      }
+    },
   },
 };
 </script>

+ 114 - 143
template/admin/src/components/customerInfo/index.vue

@@ -1,20 +1,22 @@
 <template>
   <div class="customer">
-    <Form ref="formValidate" :model="formValidate" :label-width="100" @submit.native.prevent>
-      <Row :gutter="24" type="flex">
-        <Col span="24" class="ivu-text-left">
-          <FormItem label="搜索日期:">
-            <RadioGroup
+    <el-form ref="formValidate" :model="formValidate" label-width="100px" @submit.native.prevent>
+      <el-row :gutter="24">
+        <el-col :span="24" class="ivu-text-left">
+          <el-form-item label="搜索日期:">
+            <el-radio-group
               v-model="formValidate.data"
               type="button"
-              @on-change="selectChange(formValidate.data)"
+              @change="selectChange(formValidate.data)"
               class="mr"
             >
-              <Radio :label="item.val" v-for="(item, i) in fromList.fromTxt" :key="i">{{ item.text }}</Radio>
-            </RadioGroup>
+              <el-radio-button :label="item.val" v-for="(item, i) in fromList.fromTxt" :key="i">{{
+                item.text
+              }}</el-radio-button>
+            </el-radio-group>
             <DatePicker
               :editable="false"
-              @on-change="onchangeTime"
+              @change="onchangeTime"
               :value="timeVal"
               format="yyyy/MM/dd"
               type="daterange"
@@ -22,63 +24,99 @@
               placeholder="请选择时间"
               style="width: 200px"
             ></DatePicker>
-          </FormItem>
-        </Col>
-        <Col span="12" class="ivu-text-left">
-          <FormItem label="用户名称:">
-            <Input
+          </el-form-item>
+        </el-col>
+        <el-col :span="12" class="ivu-text-left">
+          <el-form-item label="用户名称:">
+            <el-input
               search
               enter-button
               placeholder="请输入用户名称"
               v-model="formValidate.nickname"
               style="width: 90%"
               @on-search="userSearchs"
-            ></Input>
-          </FormItem>
-        </Col>
-      </Row>
-    </Form>
-    <Table
-      :loading="loading2"
-      highlight-row
+            ></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <el-table
+      v-loading="loading2"
+      highlight-current-row
       no-userFrom-text="暂无数据"
       no-filtered-userFrom-text="暂无筛选结果"
       ref="selection"
-      :columns="columns4"
       :data="tableList2"
     >
-      <template slot-scope="{ row, index }" slot="nickname">
-        <div>{{ row.nickname }}</div>
-        <div style="color: red">{{ row.is_del ? '用户已注销' : '' }}</div>
-      </template>
-      <template slot-scope="{ row, index }" slot="headimgurl">
-        <div class="tabBox_img" v-viewer>
-          <img v-lazy="row.headimgurl" />
-        </div>
-      </template>
-      <template slot-scope="{ row, index }" slot="user_type">
-        <span v-if="row.user_type === 'wechat'">公众号</span>
-        <span v-else-if="row.user_type === 'routine'">小程序</span>
-        <span v-else-if="row.user_type === 'h5'">H5</span>
-        <span v-else-if="row.user_type === 'pc'">PC</span>
-        <span v-else>--</span>
-      </template>
-      <template slot-scope="{ row, index }" slot="sex">
-        <span v-show="row.sex === 1">男</span>
-        <span v-show="row.sex === 2">女</span>
-        <span v-show="row.sex === 0">保密</span>
-        <span v-show="row.sex === null">--</span>
-      </template>
-      <template slot-scope="{ row, index }" slot="country">
-        <span v-if="row.country || row.province || row.city">{{ row.country + row.province + row.city }}</span>
-        <span v-else>--</span>
-      </template>
-      <template slot-scope="{ row, index }" slot="subscribe">
-        <span v-text="row.subscribe === 1 ? '关注' : '未关注'"></span>
-      </template>
-    </Table>
+      <el-table-column width="50">
+        <template slot-scope="scope">
+          <el-radio
+            v-model="currentid"
+            :disabled="!!scope.row.is_del"
+            :label="scope.row.uid"
+            @input="() => currentidRadio(scope.row)"
+            >&nbsp;</el-radio
+          >
+        </template>
+      </el-table-column>
+      <el-table-column label="ID" width="80">
+        <template slot-scope="scope">
+          <span>{{ scope.row.uid }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="微信用户名称" min-width="180">
+        <template slot-scope="scope">
+          <div>{{ scope.row.nickname }}</div>
+          <div style="color: red">{{ scope.row.is_del ? '用户已注销' : '' }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column label="客服头像" min-width="90">
+        <template slot-scope="scope">
+          <div class="tabBox_img" v-viewer>
+            <img v-lazy="scope.row.headimgurl" />
+          </div>
+        </template>
+      </el-table-column>
+
+      <el-table-column label="用户类型" min-width="130">
+        <template slot-scope="scope">
+          <span v-if="scope.row.user_type === 'wechat'">公众号</span>
+          <span v-else-if="scope.row.user_type === 'routine'">小程序</span>
+          <span v-else-if="scope.row.user_type === 'h5'">H5</span>
+          <span v-else-if="scope.row.user_type === 'pc'">PC</span>
+          <span v-else>--</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="性别" min-width="130">
+        <template slot-scope="scope">
+          <span v-show="scope.row.sex === 1">男</span>
+          <span v-show="scope.row.sex === 2">女</span>
+          <span v-show="scope.row.sex === 0">保密</span>
+          <span v-show="scope.row.sex === null">--</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="地区" min-width="130">
+        <template slot-scope="scope">
+          <span v-if="scope.row.country || scope.row.province || scope.row.city">{{
+            scope.row.country + scope.row.province + scope.row.city
+          }}</span>
+          <span v-else>--</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="是否关注公众号" min-width="130">
+        <template slot-scope="scope">
+          <span v-text="scope.row.subscribe === 1 ? '关注' : '未关注'"></span>
+        </template>
+      </el-table-column>
+    </el-table>
     <div class="acea-row row-right page">
-      <Page :total="total2" show-elevator show-total @on-change="pageChange2" :page-size="formValidate.limit" />
+      <pagination
+        v-if="total2"
+        :total="total2"
+        :page.sync="formValidate.page"
+        :limit.sync="formValidate.limit"
+        @pagination="getListService"
+      />
     </div>
   </div>
 </template>
@@ -111,91 +149,6 @@ export default {
       },
       currentid: 0,
       productRow: {},
-      columns4: [
-        {
-          title: '选择',
-          key: 'chose',
-          width: 60,
-          align: 'center',
-          render: (h, params) => {
-            let uid = params.row.uid;
-            let flag = false;
-            if (this.currentid === uid) {
-              flag = true;
-            } else {
-              flag = false;
-            }
-            let self = this;
-            return h('div', [
-              h('Radio', {
-                props: {
-                  value: flag,
-                  disabled: !!params.row.is_del,
-                },
-                on: {
-                  'on-change': () => {
-                    self.currentid = uid;
-                    this.productRow = params.row;
-                    if (this.productRow.uid) {
-                      if (this.$route.query.fodder === 'image') {
-                        /* eslint-disable */
-                        let imageObject = {
-                          image: this.productRow.headimgurl,
-                          uid: this.productRow.uid,
-                        };
-                        form_create_helper.set('image', imageObject);
-                        form_create_helper.close('image');
-                      } else {
-                        this.$emit('imageObject', {
-                          image: this.productRow.headimgurl,
-                          uid: this.productRow.uid,
-                        });
-                      }
-                    } else {
-                      this.$Message.warning('请先选择商品');
-                    }
-                  },
-                },
-              }),
-            ]);
-          },
-        },
-        {
-          title: 'ID',
-          key: 'uid',
-          width: 80,
-        },
-        {
-          title: '微信用户名称',
-          slot: 'nickname',
-          minWidth: 180,
-        },
-        {
-          title: '客服头像',
-          slot: 'headimgurl',
-          minWidth: 60,
-        },
-        {
-          title: '用户类型',
-          slot: 'user_type',
-          minWidth: 100,
-        },
-        {
-          title: '性别',
-          slot: 'sex',
-          minWidth: 60,
-        },
-        {
-          title: '地区',
-          slot: 'country',
-          minWidth: 120,
-        },
-        {
-          title: '是否关注公众号',
-          slot: 'subscribe',
-          minWidth: 120,
-        },
-      ],
       loading2: false,
       total2: 0,
     };
@@ -235,15 +188,33 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange2(pageIndex) {
-      this.formValidate.page = pageIndex;
-      this.getListService();
-    },
     // 搜索
     userSearchs() {
       this.formValidate.page = 1;
       this.getListService();
     },
+    currentidRadio(row) {
+      self.currentid = row.uid;
+      this.productRow = row;
+      if (this.productRow.uid) {
+        if (this.$route.query.fodder === 'image') {
+          /* eslint-disable */
+          let imageObject = {
+            image: this.productRow.headimgurl,
+            uid: this.productRow.uid,
+          };
+          form_create_helper.set('image', imageObject);
+          form_create_helper.close('image');
+        } else {
+          this.$emit('imageObject', {
+            image: this.productRow.headimgurl,
+            uid: this.productRow.uid,
+          });
+        }
+      } else {
+        this.$Message.warning('请先选择商品');
+      }
+    },
   },
 };
 </script>

+ 3 - 3
template/admin/src/components/dateRadio/index.vue

@@ -1,7 +1,7 @@
 <template>
-  <RadioGroup v-model="selectIndexTime" type="button" @on-change="onSelectTime">
-    <Radio :label="index" v-for="(item, index) in options.shortcuts" :key="index">{{ item.text }}</Radio>
-  </RadioGroup>
+  <el-radio-group v-model="selectIndexTime" type="button" @change="onSelectTime">
+    <el-radio-button :label="index" v-for="(item, index) in options.shortcuts" :key="index">{{ item.text }}</el-radio-button>
+  </el-radio-group>
 </template>
 
 <script>

+ 4 - 4
template/admin/src/components/diyComponents/c_bg_color.vue

@@ -1,13 +1,13 @@
 <template>
   <div>
     <div class="c_row-item" v-if="configData[this.configNum]">
-      <Col span="8" class="c_label">{{ configData[this.configNum][name].title }}</Col>
-      <Col span="14" class="color-box">
+      <el-col :span="8" class="c_label">{{ configData[this.configNum][name].title }}</el-col>
+      <el-col span="14" class="color-box">
         <div class="color-item" v-for="(color, key) in configData[this.configNum][name].color" :key="key">
-          <ColorPicker v-model="color.item" @on-change="changeColor($event, color)" alpha></ColorPicker
+          <ColorPicker v-model="color.item" @change="changeColor($event, color)" alpha></ColorPicker
           ><span @click="resetBgA(color, index, key)">重置</span>
         </div>
-      </Col>
+      </el-col>
     </div>
   </div>
 </template>

+ 3 - 3
template/admin/src/components/diyComponents/c_hot_word.vue

@@ -8,15 +8,15 @@
       <draggable class="dragArea list-group" :list="datas[name].list" group="peoples" handle=".icon">
         <div class="input-item" v-for="(item, index) in datas[name].list" :key="index">
           <div class="icon"><Icon type="ios-keypad" size="20" /></div>
-          <Input v-model="item.val" placeholder="选填,不超过十个字" :maxlength="item.maxlength || 10" />
+          <el-input v-model="item.val" placeholder="选填,不超过十个字" :maxlength="item.maxlength || 10" />
           <div class="close" @click="close(index)">
             <Icon type="md-close" size="20" style="color: #d8d8d8" />
           </div>
         </div>
       </draggable>
       <div class="add-btn" @click="addHotTxt">
-        <Button type="primary" ghost style="width: 100%; height: 40px; border-color: #1890ff; color: #1890ff"
-          >添加热词</Button
+        <el-button type="primary" ghost style="width: 100%; height: 40px; border-color: #1890ff; color: #1890ff"
+          >添加热词</el-button
         >
       </div>
     </div>

+ 10 - 10
template/admin/src/components/diyComponents/c_input_list.vue

@@ -2,22 +2,22 @@
   <div class="numbox" v-if="datas[name]">
     <div class="c_row-item" v-for="(item, index) in datas[name].list" :key="index">
       <div class="dif" v-if="item.title === '链接'">
-        <Col class="label" span="4">
+        <el-col class="label" :span="4">
           <span>{{ item.title }}</span>
-        </Col>
-        <Col span="19" class="slider-box">
+        </el-col>
+        <el-col span="19" class="slider-box">
           <div class="input-box" @click="getLink(index)">
-            <Input v-model="item.val" :placeholder="item.pla" :maxlength="item.max" icon="ios-arrow-forward" readonly />
+            <el-input v-model="item.val" :placeholder="item.pla" :maxlength="item.max" icon="ios-arrow-forward" readonly />
           </div>
-        </Col>
+        </el-col>
       </div>
       <div class="dif" v-else>
-        <Col class="label" span="4">
+        <el-col class="label" :span="4">
           <span>{{ item.title }}</span>
-        </Col>
-        <Col span="19" class="slider-box">
-          <Input v-model="item.val" :placeholder="item.pla" :maxlength="item.max" style="text-align: right" />
-        </Col>
+        </el-col>
+        <el-col span="19" class="slider-box">
+          <el-input v-model="item.val" :placeholder="item.pla" :maxlength="item.max" style="text-align: right" />
+        </el-col>
       </div>
     </div>
     <linkaddress ref="linkaddres" @linkUrl="linkUrl"></linkaddress>

+ 7 - 7
template/admin/src/components/diyComponents/c_input_number.vue

@@ -1,20 +1,20 @@
 <template>
   <div class="numbox" v-if="datas[name]">
     <div class="c_row-item">
-      <Col class="label" span="4">
+      <el-col class="label" :span="4">
         <span v-if="datas[name].show">{{ datas[name].title }}</span>
         <span v-else>数量</span>
-      </Col>
-      <Col span="19" class="slider-box">
-        <Input
+      </el-col>
+      <el-col span="19" class="slider-box">
+        <el-input
           v-model="datas[name].val"
           type="number"
           placeholder="请输入数量"
           style="text-align: right; width: 350px"
-          @on-blur="numberVal(datas[name].val)"
-          @on-change="maxNum(datas[name].val)"
+          @blur="numberVal(datas[name].val)"
+          @change="maxNum(datas[name].val)"
         />
-      </Col>
+      </el-col>
     </div>
   </div>
 </template>

+ 4 - 4
template/admin/src/components/diyComponents/c_is_show.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="c_row-item">
-    <Col class="label" span="4"> 是否显示 </Col>
-    <Col span="19">
-      <i-switch v-model="datas[name].val" />
-    </Col>
+    <el-col class="label" :span="4"> 是否显示 </el-col>
+    <el-col span="19">
+      <el-switch :active-value="1"  :inactive-value="0" v-model="datas[name].val" />
+    </el-col>
   </div>
 </template>
 

+ 12 - 9
template/admin/src/components/diyComponents/c_select.vue

@@ -1,16 +1,19 @@
 <template>
   <div class="slider-box">
     <div class="c_row-item">
-      <Col class="label" span="4" v-if="datas[name].title">
+      <el-col class="label" :span="4" v-if="datas[name].title">
         {{ datas[name].title }}
-      </Col>
-      <Col span="19" class="slider-box">
-        <Select v-model="datas[name].activeValue" clearable style="width: 350px" @on-change="sliderChange">
-          <Option v-for="(item, index) in datas[name].list" :value="item.activeValue" :key="index">{{
-            item.title
-          }}</Option>
-        </Select>
-      </Col>
+      </el-col>
+      <el-col span="19" class="slider-box">
+        <el-select v-model="datas[name].activeValue" clearable style="width: 350px" @change="sliderChange">
+          <el-option
+            v-for="(item, index) in datas[name].list"
+            :value="item.activeValue"
+            :key="index"
+            :label="item.title"
+          ></el-option>
+        </el-select>
+      </el-col>
     </div>
   </div>
 </template>

+ 4 - 4
template/admin/src/components/diyComponents/c_tab.vue

@@ -4,12 +4,12 @@
       <span>选择模板</span>{{ datas[name].tabList[datas[name].tabVal].name }}
     </div>
     <div class="radio-box" :class="{ on: datas[name].type == 1 }">
-      <RadioGroup v-model="datas[name].tabVal" type="button" size="large" @on-change="radioChange($event)">
-        <Radio :label="index" v-for="(item, index) in datas[name].tabList" :key="index">
+      <el-radio-group v-model="datas[name].tabVal" type="button" size="large" @change="radioChange($event)">
+        <el-radio-button :label="index" v-for="(item, index) in datas[name].tabList" :key="index">
           <span class="iconfont" :class="item.icon" v-if="item.icon"></span>
           <span v-else>{{ item.name }}</span>
-        </Radio>
-      </RadioGroup>
+        </el-radio-button>
+      </el-radio-group>
     </div>
   </div>
 </template>

+ 10 - 10
template/admin/src/components/diyComponents/c_tab_bar.vue

@@ -18,16 +18,16 @@
             </div>
           </div>
           <div class="c_row-item">
-            <Col class="label" span="4"> 名称 </Col>
-            <Col span="19" class="slider-box">
-              <Input v-model="item.name" placeholder="选填不超过10个字" />
-            </Col>
+            <el-col class="label" :span="4"> 名称 </el-col>
+            <el-col span="19" class="slider-box">
+              <el-input v-model="item.name" placeholder="选填不超过10个字" />
+            </el-col>
           </div>
           <div class="c_row-item">
-            <Col class="label" span="4"> 链接 </Col>
-            <Col span="19" class="slider-box">
-              <Input v-model="item.link" placeholder="选填不超过10个字" />
-            </Col>
+            <el-col class="label" :span="4"> 链接 </el-col>
+            <el-col span="19" class="slider-box">
+              <el-input v-model="item.link" placeholder="选填不超过10个字" />
+            </el-col>
           </div>
         </div>
         <div class="del-box" @click="deleteMenu(index)">
@@ -36,13 +36,13 @@
       </div>
     </draggable>
     <div class="add-btn" v-if="datas[name].list.length < 5">
-      <Button
+      <el-button
         type="primary"
         ghost
         style="width: 100%; height: 40px; border-color: #1890ff; color: #1890ff"
         @click="addMenu"
         >添加图文导航
-      </Button>
+      </el-button>
     </div>
     <div>
       <Modal

+ 16 - 16
template/admin/src/components/diyComponents/c_txt_list.vue

@@ -10,12 +10,12 @@
           <div class="content">
             <div class="con-item" v-for="(list, key) in item.chiild" :key="key">
               <div class="dif" v-if="list.title === '链接'">
-                <Col class="label">
+                <el-col class="label">
                   <span>{{ list.title }}</span>
-                </Col>
-                <Col class="slider-box">
+                </el-col>
+                <el-col class="slider-box">
                   <div class="input-box" @click="getLink(index, key)">
-                    <Input
+                    <el-input
                       v-model="list.val"
                       :placeholder="list.pla"
                       :maxlength="list.max"
@@ -23,18 +23,18 @@
                       readonly
                     />
                   </div>
-                </Col>
+                </el-col>
               </div>
               <div class="dif" v-else>
-                <Col class="label">
+                <el-col class="label">
                   <span>{{ list.title }}</span>
-                </Col>
-                <Col span="19" class="slider-box">
-                  <Input v-model="list.val" :placeholder="list.pla" :maxlength="list.max" style="text-align: right" />
-                </Col>
+                </el-col>
+                <el-col span="19" class="slider-box">
+                  <el-input v-model="list.val" :placeholder="list.pla" :maxlength="list.max" style="text-align: right" />
+                </el-col>
               </div>
               <!-- <span>{{ list.title }}</span>
-              <Input
+              <el-input
                 v-model="list.val"
                 :placeholder="list.pla"
                 :maxlength="list.max"
@@ -42,9 +42,9 @@
             </div>
             <div class="con-item" v-if="item.link">
               <span>{{ item.link.title }}</span>
-              <Select v-model="item.link.activeVal" style="">
-                <Option v-for="(item, j) in item.link.optiops" :value="item.value" :key="j">{{ item.label }} </Option>
-              </Select>
+              <el-select v-model="item.link.activeVal" style="">
+                <el-option v-for="(item, j) in item.link.optiops" :value="item.value" :key="j" :label="item.label"></el-option>
+              </el-select>
             </div>
           </div>
           <div class="delete" @click.stop="bindDelete(index)" v-if="datas[name].max > 1">
@@ -55,8 +55,8 @@
     </div>
     <div v-if="datas[name]">
       <div class="add-btn" @click="addHotTxt" v-if="datas[name].list.length < datas[name].max">
-        <Button type="primary" ghost style="width: 100%; height: 40px; border-color: #1890ff; color: #1890ff"
-          >添加模块</Button
+        <el-button type="primary" ghost style="width: 100%; height: 40px; border-color: #1890ff; color: #1890ff"
+          >添加模块</el-button
         >
       </div>
     </div>

+ 8 - 8
template/admin/src/components/diyComponents/c_txt_tab.vue

@@ -1,18 +1,18 @@
 <template>
   <div class="txt_tab" v-if="datas[name]">
     <div class="c_row-item">
-      <Col class="c_label">
+      <el-col class="c_label">
         {{ datas[name].title }}
         <span>{{ datas[name].list[datas[name].type].val }}</span>
-      </Col>
-      <Col class="color-box">
-        <RadioGroup v-model="datas[name].type" type="button" @on-change="radioChange($event)">
-          <Radio :label="key" v-for="(radio, key) in datas[name].list" :key="key">
+      </el-col>
+      <el-col class="color-box">
+        <el-radio-group v-model="datas[name].type" type="button" @change="radioChange($event)">
+          <el-radio-button :label="key" v-for="(radio, key) in datas[name].list" :key="key">
             <span class="iconfont" :class="radio.icon" v-if="radio.icon"></span>
             <span v-else>{{ radio.val }}</span>
-          </Radio>
-        </RadioGroup>
-      </Col>
+          </el-radio-button>
+        </el-radio-group>
+      </el-col>
     </div>
   </div>
 </template>

+ 4 - 4
template/admin/src/components/diyComponents/c_upload_list.vue

@@ -23,7 +23,7 @@
               <div class="info-item" v-if="infos.title === '链接'">
                 <span>{{ infos.title }}</span>
                 <div class="input-box" @click="getLink(index, key)">
-                  <Input
+                  <el-input
                     v-model="infos.value"
                     :placeholder="infos.tips"
                     :maxlength="infos.maxlength"
@@ -35,7 +35,7 @@
               <div v-else class="info-item">
                 <span>{{ infos.title }}</span>
                 <div class="input-box">
-                  <Input v-model="infos.value" :placeholder="infos.tips" :maxlength="infos.maxlength" width="250px" />
+                  <el-input v-model="infos.value" :placeholder="infos.tips" :maxlength="infos.maxlength" width="250px" />
                 </div>
               </div>
             </div>
@@ -65,13 +65,13 @@
     </div>
     <template v-if="datas[name]">
       <div class="add-btn" v-if="datas[name].list.length < datas[name].max || datas[name].max == ''">
-        <Button
+        <el-button
           type="primary"
           ghost
           style="width: 100%; height: 40px; border-color: #1890ff; color: #1890ff"
           @click="addBox"
           >添加图片
-        </Button>
+        </el-button>
       </div>
     </template>
     <linkaddress ref="linkaddres" @linkUrl="linkUrl"></linkaddress>

+ 16 - 16
template/admin/src/components/freightTemplate/city.vue

@@ -1,16 +1,16 @@
 <template>
   <div>
     <Modal v-model="addressModal" title="选择可配送区域" width="50%" class="modal" :mask="true">
-      <Row :gutter="24" type="flex">
-        <Col :xl="24" :lg="24" :md="24" :sm="24" :xs="24" class="item">
+      <el-row :gutter="24" >
+        <el-col :xl="24" :lg="24" :md="24" :sm="24" :xs="24" class="item">
           <div class="acea-row row-right row-middle">
-            <Checkbox v-model="iSselect" @on-change="allCheckbox">全选</Checkbox>
+            <el-checkbox v-model="iSselect" @change="allCheckbox">全选</el-checkbox>
             <div class="empty" @click="empty">清空</div>
           </div>
-        </Col>
-      </Row>
-      <Row :gutter="24" type="flex" :loading="loading">
-        <Col
+        </el-col>
+      </el-row>
+      <el-row :gutter="24"  :loading="loading">
+        <el-col
           :xl="6"
           :lg="6"
           :md="6"
@@ -22,33 +22,33 @@
           v-if="item.isShow"
         >
           <div @mouseenter="enter(index)" @mouseleave="leave()">
-            <Checkbox v-model="item.checked" :label="item.name" @on-change="checkedClick(index)">{{
+            <el-checkbox v-model="item.checked" :label="item.name" @change="checkedClick(index)">{{
               item.name
-            }}</Checkbox
+            }}</el-checkbox
             ><span class="red">({{ (item.count || 0) + '/' + item.childNum }})</span>
             <div class="city" v-show="activeCity === index">
               <div class="checkBox">
                 <div class="arrow"></div>
                 <div>
-                  <Checkbox
+                  <el-checkbox
                     v-model="city.checked"
                     :label="city.name"
-                    @on-change="primary(index, indexn)"
+                    @change="primary(index, indexn)"
                     class="itemn"
                     v-for="(city, indexn) in item.children"
                     :key="indexn"
                     v-show="city.isShow"
-                    >{{ city.name }}</Checkbox
+                    >{{ city.name }}</el-checkbox
                   >
                 </div>
               </div>
             </div>
           </div>
-        </Col>
-      </Row>
+        </el-col>
+      </el-row>
       <div slot="footer">
-        <Button @click="close">取消</Button>
-        <Button type="primary" @click="confirm">确定</Button>
+        <el-button @click="close">取消</el-button>
+        <el-button type="primary" @click="confirm">确定</el-button>
       </div>
       <Spin size="large" fix v-if="loading"></Spin>
     </Modal>

+ 170 - 299
template/admin/src/components/freightTemplate/index.vue

@@ -9,119 +9,187 @@
       @on-visible-change="close"
     >
       <div class="Modals">
-        <Form class="form" ref="formData" :label-width="120" label-position="right">
-          <Row :gutter="24" type="flex">
-            <Col :xl="18" :lg="18" :md="18" :sm="24" :xs="24">
-              <FormItem label="模板名称:" prop="name">
-                <Input type="text" placeholder="请输入模板名称" :maxlength="20" v-model="formData.name" />
-              </FormItem>
-            </Col>
-          </Row>
-          <Row :gutter="24" type="flex">
-            <Col :xl="18" :lg="18" :md="18" :sm="24" :xs="24">
-              <FormItem label="计费方式:" props="state" label-for="state">
-                <RadioGroup class="radio" v-model="formData.type" @on-change="changeRadio" element-id="state">
-                  <Radio :label="1">按件数</Radio>
-                  <Radio :label="2">按重量</Radio>
-                  <Radio :label="3">按体积</Radio>
-                </RadioGroup>
-              </FormItem>
-            </Col>
-          </Row>
-          <Row :gutter="24" type="flex">
-            <Col :xl="24" :lg="24" :md="24" :sm="24" :xs="24">
-              <FormItem class="label" label="配送区域及运费:" props="state" label-for="state">
-                <Table
+        <el-form class="form" ref="formData" label-width="120px" label-position="right">
+          <el-row :gutter="24">
+            <el-col :xl="18" :lg="18" :md="18" :sm="24" :xs="24">
+              <el-form-item label="模板名称:" prop="name">
+                <el-input type="text" placeholder="请输入模板名称" :maxlength="20" v-model="formData.name" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col :xl="18" :lg="18" :md="18" :sm="24" :xs="24">
+              <el-form-item label="计费方式:" props="state" label-for="state">
+                <el-radio-group class="radio" v-model="formData.type" @change="changeRadio" element-id="state">
+                  <el-radio :label="1">按件数</el-radio>
+                  <el-radio :label="2">按重量</el-radio>
+                  <el-radio :label="3">按体积</el-radio>
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col :xl="24" :lg="24" :md="24" :sm="24" :xs="24">
+              <el-form-item class="label" label="配送区域及运费:" props="state" label-for="state">
+                <el-table ref="table" :data="templateList" class="ivu-mt" empty-text="暂无数据" border>
+                  <el-table-column label="可配送区域" minWidth="100">
+                    <template slot-scope="scope">
+                      <el-input v-model="templateList[scope.$index].regionName" />
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    :label="formData.type === 2 ? '首件重量(KG)' : formData.type === 3 ? '首件体积(m³)' : '首件'"
+                    minWidth="100"
+                  >
+                    <template slot-scope="scope">
+                      <el-input type="number" v-model="templateList[scope.$index].first" />
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="运费(元)" minWidth="100">
+                    <template slot-scope="scope">
+                      <el-input type="number" v-model="templateList[scope.$index].price" />
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    :label="formData.type === 2 ? '续件重量(KG)' : formData.type === 3 ? '续件体积(m³)' : '续件'"
+                    minWidth="100"
+                  >
+                    <template slot-scope="scope">
+                      <el-input type="number" v-model="templateList[scope.$index].continue" />
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="续费(元)" minWidth="100">
+                    <template slot-scope="scope">
+                      <el-input type="number" v-model="templateList[scope.$index].continue_price" />
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="操作" fixed="right" width="100">
+                    <template slot-scope="scope">
+                      <a
+                        v-if="scope.row.regionName !== '默认全国'"
+                        @click="delCity(scope.row, '配送区域', scope.$index, 1)"
+                        >删除</a
+                      >
+                    </template>
+                  </el-table-column>
+                </el-table>
+                <el-row class="addTop">
+                  <el-col>
+                    <el-button type="primary" icon="md-add" @click="addCity(1)">单独添加配送区域</el-button>
+                  </el-col>
+                </el-row>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col :xl="24" :lg="24" :md="24" :sm="24" :xs="24">
+              <el-form-item label="指定包邮:" prop="store_name" label-for="store_name">
+                <el-radio-group class="radio" v-model="formData.appoint_check">
+                  <el-radio :label="1">开启</el-radio>
+                  <el-radio :label="0">关闭</el-radio>
+                </el-radio-group>
+                <el-table
                   ref="table"
-                  :columns="columns"
-                  :data="templateList"
-                  class="ivu-mt"
-                  no-data-text="暂无数据"
-                  border
-                >
-                  <template slot-scope="{ row, index }" slot="action">
-                    <a v-if="row.regionName !== '默认全国'" @click="delCity(row, '配送区域', index, 1)">删除</a>
-                  </template>
-                </Table>
-                <Row type="flex" class="addTop">
-                  <Col>
-                    <Button type="primary" icon="md-add" @click="addCity(1)">单独添加配送区域</Button>
-                  </Col>
-                </Row>
-              </FormItem>
-            </Col>
-          </Row>
-          <Row :gutter="24" type="flex">
-            <Col :xl="24" :lg="24" :md="24" :sm="24" :xs="24">
-              <FormItem label="指定包邮:" prop="store_name" label-for="store_name">
-                <Radio-group class="radio" v-model="formData.appoint_check">
-                  <Radio :label="1">开启</Radio>
-                  <Radio :label="0">关闭</Radio>
-                </Radio-group>
-                <Table
-                  ref="table"
-                  :columns="columns2"
                   :data="appointList"
                   class="addTop ivu-mt"
-                  no-data-text="暂无数据"
+                  empty-text="暂无数据"
                   border
                   v-if="formData.appoint_check === 1"
                 >
-                  <template slot-scope="{ row, index }" slot="action">
-                    <a v-if="row.regionName !== '默认全国'" @click="delCity(row, '配送区域', index, 2)">删除</a>
-                  </template>
-                </Table>
-                <Row type="flex" class="addTop" v-if="formData.appoint_check === 1">
-                  <Col>
-                    <Button type="primary" icon="md-add" @click="addCity(2)">单独指定包邮</Button>
-                  </Col>
-                </Row>
-              </FormItem>
-            </Col>
-          </Row>
-          <Row :gutter="24" type="flex">
-            <Col :xl="24" :lg="24" :md="24" :sm="24" :xs="24">
-              <FormItem label="指定不送达:" prop="store_name" label-for="store_name">
-                <Radio-group class="radio" v-model="formData.no_delivery_check">
-                  <Radio :label="1">开启</Radio>
-                  <Radio :label="0">关闭</Radio>
-                </Radio-group>
-                <Table
+                  <el-table-column label="选择地区" minWidth="100">
+                    <template slot-scope="scope">
+                      <el-input v-model="appointList[scope.$index].placeName" />
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    :label="formData.type === 2 ? '包邮重量' : formData.type === 3 ? '包邮体积(m³)' : '包邮件数'"
+                    minWidth="100"
+                  >
+                    <template slot-scope="scope">
+                      <el-input type="number" v-model="appointList[scope.$index].a_num" />
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="包邮金额(元)" minWidth="100">
+                    <template slot-scope="scope">
+                      <el-input type="number" v-model="appointList[scope.$index].a_price" />
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="操作" fixed="right" width="100">
+                    <template slot-scope="scope">
+                      <a
+                        v-if="scope.row.regionName !== '默认全国'"
+                        @click="delCity(scope.row, '配送区域', scope.$index, 2)"
+                        >删除</a
+                      >
+                    </template>
+                  </el-table-column>
+                </el-table>
+                <el-row class="addTop" v-if="formData.appoint_check === 1">
+                  <el-col>
+                    <el-button type="primary" icon="md-add" @click="addCity(2)">单独指定包邮</el-button>
+                  </el-col>
+                </el-row>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col :xl="24" :lg="24" :md="24" :sm="24" :xs="24">
+              <el-form-item label="指定不送达:" prop="store_name" label-for="store_name">
+                <el-radio-group class="radio" v-model="formData.no_delivery_check">
+                  <el-radio :label="1">开启</el-radio>
+                  <el-radio :label="0">关闭</el-radio>
+                </el-radio-group>
+                <el-table
                   ref="table"
-                  :columns="columns3"
                   :data="noDeliveryList"
                   class="addTop ivu-mt"
-                  no-data-text="暂无数据"
+                  empty-text="暂无数据"
                   border
                   v-if="formData.no_delivery_check === 1"
                 >
-                  <template slot-scope="{ row, index }" slot="action">
-                    <a v-if="row.regionName !== '默认全国'" @click="delCity(row, '配送区域', index, 3)">删除</a>
-                  </template>
-                </Table>
-                <Row type="flex" class="addTop" v-if="formData.no_delivery_check === 1">
-                  <Col>
-                    <Button type="primary" icon="md-add" @click="addCity(3)">单独指定不送达</Button>
-                  </Col>
-                </Row>
-              </FormItem>
-            </Col>
-          </Row>
-          <Row :gutter="24" type="flex">
-            <Col :xl="18" :lg="18" :md="18" :sm="24" :xs="24">
-              <FormItem label="排序:" prop="store_name" label-for="store_name">
-                <InputNumber :min="0" placeholder="输入值越大越靠前" v-model="formData.sort"></InputNumber>
-              </FormItem>
-            </Col>
-          </Row>
-          <Row :gutter="24" type="flex">
-            <Col>
-              <FormItem prop="store_name" label-for="store_name">
-                <Button type="primary" @click="handleSubmit">{{ id ? '立即修改' : '立即提交' }}</Button>
-              </FormItem>
-            </Col>
-          </Row>
-        </Form>
+                  <el-table-column label="选择地区" minWidth="100">
+                    <template slot-scope="scope">
+                      <el-input v-model="noDeliveryList[scope.$index].placeName" />
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="操作" fixed="right" width="100">
+                    <template slot-scope="scope">
+                      <a
+                        v-if="scope.row.regionName !== '默认全国'"
+                        @click="delCity(scope.row, '配送区域', scope.$index, 3)"
+                        >删除</a
+                      >
+                    </template>
+                  </el-table-column>
+                </el-table>
+                <el-row class="addTop" v-if="formData.no_delivery_check === 1">
+                  <el-col>
+                    <el-button type="primary" icon="md-add" @click="addCity(3)">单独指定不送达</el-button>
+                  </el-col>
+                </el-row>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col :xl="18" :lg="18" :md="18" :sm="24" :xs="24">
+              <el-form-item label="排序:" prop="store_name" label-for="store_name">
+                <el-input-number
+                  controls-position="right"
+                  :min="0"
+                  placeholder="输入值越大越靠前"
+                  v-model="formData.sort"
+                ></el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col>
+              <el-form-item prop="store_name" label-for="store_name">
+                <el-button type="primary" @click="handleSubmit">{{ id ? '立即修改' : '立即提交' }}</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
       </div>
       <div slot="footer"></div>
     </Modal>
@@ -141,186 +209,6 @@ export default {
     let that = this;
     return {
       isTemplate: false,
-      columns: [
-        {
-          title: '可配送区域',
-          key: 'regionName',
-          minWidth: 100,
-          render: (h, params) => {
-            return h('Input', {
-              props: {
-                type: 'text',
-                readonly: true,
-                size: 'small',
-                value: that.templateList[params.index].regionName,
-              },
-            });
-          },
-        },
-        {
-          title: '首件',
-          key: 'first',
-          minWidth: 70,
-          render: (h, params) => {
-            return h('Input', {
-              props: {
-                type: 'number',
-                size: 'small',
-                value: that.templateList[params.index].first, // 此处如何让数据双向绑定
-              },
-              on: {
-                'on-change': (event) => {
-                  that.templateList[params.index].first = event.target.value;
-                },
-              },
-            });
-          },
-        },
-        {
-          title: '运费(元)',
-          key: 'price',
-          minWidth: 70,
-          render: (h, params) => {
-            return h('Input', {
-              props: {
-                type: 'number',
-                size: 'small',
-                value: that.templateList[params.index].price, // 此处如何让数据双向绑定
-              },
-              on: {
-                'on-change': (event) => {
-                  that.templateList[params.index].price = event.target.value;
-                },
-              },
-            });
-          },
-        },
-        {
-          title: '续件',
-          key: 'continue',
-          minWidth: 70,
-          render: (h, params) => {
-            return h('Input', {
-              props: {
-                type: 'number',
-                size: 'small',
-                value: that.templateList[params.index].continue, // 此处如何让数据双向绑定
-              },
-              on: {
-                'on-change': (event) => {
-                  that.templateList[params.index].continue = event.target.value;
-                },
-              },
-            });
-          },
-        },
-        {
-          title: '续费(元)',
-          key: 'continue_price',
-          minWidth: 70,
-          render: (h, params) => {
-            return h('Input', {
-              props: {
-                type: 'number',
-                size: 'small',
-                value: that.templateList[params.index].continue_price, // 此处如何让数据双向绑定
-              },
-              on: {
-                'on-change': (event) => {
-                  that.templateList[params.index].continue_price = event.target.value;
-                },
-              },
-            });
-          },
-        },
-        {
-          title: '操作',
-          slot: 'action',
-          minWidth: 70,
-        },
-      ],
-      columns2: [
-        {
-          title: '选择地区',
-          key: 'placeName',
-          minWidth: 250,
-          render: (h, params) => {
-            return h('Input', {
-              props: {
-                type: 'text',
-                readonly: true,
-                size: 'small',
-                value: that.appointList[params.index].placeName,
-              },
-            });
-          },
-        },
-        {
-          title: '包邮件数',
-          key: 'a_num',
-          minWidth: 100,
-          render: (h, params) => {
-            return h('Input', {
-              props: {
-                type: 'number',
-                size: 'small',
-                value: that.appointList[params.index].a_num, // 此处如何让数据双向绑定
-              },
-              on: {
-                'on-change': (event) => {
-                  that.appointList[params.index].a_num = event.target.value;
-                },
-              },
-            });
-          },
-        },
-        {
-          title: '包邮金额(元)',
-          key: 'a_price',
-          minWidth: 100,
-          render: (h, params) => {
-            return h('Input', {
-              props: {
-                type: 'number',
-                size: 'small',
-                value: that.appointList[params.index].a_price, // 此处如何让数据双向绑定
-              },
-              on: {
-                'on-change': (event) => {
-                  that.appointList[params.index].a_price = event.target.value;
-                },
-              },
-            });
-          },
-        },
-        {
-          title: '操作',
-          slot: 'action',
-          minWidth: 100,
-        },
-      ],
-      columns3: [
-        {
-          title: '选择地区',
-          key: 'placeName',
-          minWidth: 250,
-          render: (h, params) => {
-            return h('Input', {
-              props: {
-                type: 'text',
-                readonly: true,
-                size: 'small',
-                value: that.noDeliveryList[params.index].placeName,
-              },
-            });
-          },
-        },
-        {
-          title: '操作',
-          slot: 'action',
-          minWidth: 100,
-        },
-      ],
       templateList: [
         {
           region: [
@@ -384,7 +272,7 @@ export default {
           appoint_check: formData.appoint_check,
           no_delivery_check: formData.no_delivery_check,
         };
-        this.headerType();
+        // this.headerType();
       });
     },
     selectCity: function (data, type) {
@@ -431,23 +319,6 @@ export default {
       this.$refs.city.addressModal = true;
     },
     changeRadio() {
-      this.headerType();
-    },
-    headerType() {
-      let that = this;
-      if (this.formData.type === 2) {
-        that.columns[1].title = '首件重量(KG)';
-        that.columns[3].title = '续件重量(KG)';
-        that.columns2[1].title = '包邮重量(KG)';
-      } else if (this.formData.type === 3) {
-        that.columns[1].title = '首件体积(m³)';
-        that.columns[3].title = '续件体积(m³)';
-        that.columns2[1].title = '包邮体积(m³)';
-      } else {
-        that.columns[1].title = '首件';
-        that.columns[3].title = '续件';
-        that.columns2[1].title = '包邮件数';
-      }
     },
     // 提交
     handleSubmit: function () {

+ 5 - 5
template/admin/src/components/from/from.vue

@@ -13,11 +13,11 @@
       <template>
         <div class="radio acea-row row-middle" v-if="FromData.action === '/marketing/coupon/save.html'">
           <div class="name ivu-form-item-content">优惠券类型</div>
-          <Radio-group v-model="type" @on-change="couponsType">
-            <Radio :label="0">通用券</Radio>
-            <Radio :label="1">品类券</Radio>
-            <Radio :label="2">商品券</Radio>
-          </Radio-group>
+          <el-radio-group v-model="type" @change="couponsType">
+            <el-radio :label="0">通用券</el-radio>
+            <el-radio :label="1">品类券</el-radio>
+            <el-radio :label="2">商品券</el-radio>
+          </el-radio-group>
         </div>
       </template>
       <form-create

+ 90 - 97
template/admin/src/components/goodsList/index.vue

@@ -1,14 +1,14 @@
 <template>
   <div class="goodList">
-    <Form ref="formValidate" :model="formValidate" :label-width="120" label-position="right" class="tabform">
-      <Row type="flex" :gutter="24">
-        <Col v-bind="grid" v-if="!liveStatus">
-          <FormItem label="商品分类:" label-for="pid">
-            <!-- <Select v-model="formValidate.cate_id" style="width: 200px" clearable @on-change="userSearchs">
-              <Option v-for="item in treeSelect" :value="item.id" :key="item.id"
+    <el-form ref="formValidate" :model="formValidate" label-width="120px" label-position="right" class="tabform">
+      <el-row :gutter="24">
+        <el-col v-bind="grid" v-if="!liveStatus">
+          <el-form-item label="商品分类:" label-for="pid">
+            <!-- <el-select v-model="formValidate.cate_id" style="width: 200px" clearable @change="userSearchs">
+              <el-option v-for="item in treeSelect" :value="item.id" :key="item.id"
                 >{{ item.html + item.cate_name }}
-              </Option>
-            </Select> -->
+              </el-option>
+            </el-select> -->
             <el-cascader
               v-model="formValidate.cate_id"
               size="small"
@@ -16,20 +16,19 @@
               :props="{ emitPath: false }"
               clearable
             ></el-cascader>
-          </FormItem>
-        </Col>
-        <Col v-bind="grid" v-if="!type && diy">
-          <FormItem label="商品类型:" label-for="pid">
-            <Select v-model="goodType" style="width: 200px" clearable @on-change="userSearchs">
-              <Option v-for="item in goodList" :value="item.activeValue" :key="item.activeValue"
-                >{{ item.title }}
-              </Option>
-            </Select>
-          </FormItem>
-        </Col>
-        <Col v-bind="grid">
-          <FormItem label="商品搜索:" label-for="store_name">
-            <Input
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="grid" v-if="!type && diy">
+          <el-form-item label="商品类型:" label-for="pid">
+            <el-select v-model="goodType" style="width: 200px" clearable @change="userSearchs">
+              <el-option v-for="item in goodList" :value="item.activeValue" :key="item.activeValue" :label="item.title">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="grid">
+          <el-form-item label="商品搜索:" label-for="store_name">
+            <el-input
               search
               enter-button
               placeholder="请输入商品名称/关键字/编号"
@@ -37,31 +36,63 @@
               style="width: 250px"
               @on-search="userSearchs"
             />
-          </FormItem>
-        </Col>
-      </Row>
-    </Form>
-    <Table
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <el-table
       ref="table"
-      no-data-text="暂无数据"
-      @on-selection-change="changeCheckbox"
-      no-filtered-data-text="暂无筛选结果"
+      empty-text="暂无数据"
       max-height="400"
-      :columns="liveStatus == false ? columns4 : columns5"
+      :highlight-current-row="many !== 'many'"
       :data="tableList"
-      :loading="loading"
+      v-loading="loading"
+      @select="changeCheckbox"
+      @select-all="changeCheckbox"
     >
-      <template slot-scope="{ row, index }" slot="image">
-        <div class="tabBox_img" v-viewer>
-          <img v-lazy="row.image" />
-        </div>
-      </template>
-    </Table>
+      <el-table-column v-if="many == 'many'" type="selection" width="55"> </el-table-column>
+      <el-table-column v-else width="50">
+        <template slot-scope="scope">
+          <el-radio v-model="templateRadio" :label="scope.row.id" @change.native="getTemplateRow(scope.row)"
+            >&nbsp;</el-radio
+          >
+        </template>
+      </el-table-column>
+
+      <el-table-column label="商品ID" width="80">
+        <template slot-scope="scope">
+          <span>{{ scope.row.id }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="图片" width="80">
+        <template slot-scope="scope">
+          <div class="tabBox_img" v-viewer>
+            <img v-lazy="scope.row.image" />
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column label="商品名称" min-width="250">
+        <template slot-scope="scope">
+          <span>{{ scope.row.store_name }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="商品分类" min-width="150" v-if="liveStatus">
+        <template slot-scope="scope">
+          <span>{{ scope.row.cate_name }}</span>
+        </template>
+      </el-table-column>
+    </el-table>
     <div class="acea-row row-right page">
-      <Page :total="total" show-elevator show-total @on-change="pageChange" :page-size="formValidate.limit" />
+      <pagination
+        v-if="total"
+        :total="total"
+        :page.sync="formValidate.page"
+        :limit.sync="formValidate.limit"
+        @pagination="pageChange"
+      />
     </div>
     <div class="footer" slot="footer" v-if="many === 'many' && !diy">
-      <Button type="primary" size="large" :loading="modal_loading" long @click="ok">提交</Button>
+      <el-button type="primary" size="large" :loading="modal_loading" long @click="ok">提交</el-button>
     </div>
   </div>
 </template>
@@ -117,6 +148,8 @@ export default {
   },
   data() {
     return {
+      templateRadio: 0,
+
       modal_loading: false,
       treeSelect: [],
       formValidate: {
@@ -203,53 +236,6 @@ export default {
   },
   computed: {},
   created() {
-    let radio = {
-      width: 60,
-      align: 'center',
-      render: (h, params) => {
-        let id = params.row.id;
-        let flag = false;
-        if (this.currentid === id) {
-          flag = true;
-        } else {
-          flag = false;
-        }
-        let self = this;
-        return h('div', [
-          h('Radio', {
-            props: {
-              value: flag,
-            },
-            on: {
-              'on-change': () => {
-                self.currentid = id;
-                this.productRow = params.row;
-                this.$emit('getProductId', this.productRow);
-                if (this.productRow.id) {
-                  if (this.$route.query.fodder === 'image') {
-                    /* eslint-disable */
-                    let imageObject = {
-                      image: this.productRow.image,
-                      product_id: this.productRow.id,
-                    };
-                    form_create_helper.set('image', imageObject);
-                    form_create_helper.close('image');
-                  }
-                } else {
-                  this.$Message.warning('请先选择商品');
-                }
-              },
-            },
-          }),
-        ]);
-      },
-    };
-
-    let checkbox = {
-      type: 'selection',
-      width: 60,
-      align: 'center',
-    };
     let many = '';
     if (this.ischeckbox) {
       many = 'many';
@@ -257,13 +243,6 @@ export default {
       many = this.$route.query.type;
     }
     this.many = many;
-    if (many === 'many') {
-      this.columns4.unshift(checkbox);
-      this.columns5.unshift(checkbox);
-    } else {
-      this.columns4.unshift(radio);
-      this.columns5.unshift(radio);
-    }
   },
   mounted() {
     this.goodsCategory();
@@ -295,6 +274,21 @@ export default {
           this.$Message.error(res.msg);
         });
     },
+    getTemplateRow(row) {
+      console.log('111');
+      let images = [];
+      let imageObject = {
+        image: row.image,
+        product_id: row.id,
+        store_name: row.store_name,
+        temp_id: row.temp_id,
+      };
+      images.push(imageObject);
+      this.images = images;
+      this.diyVal = row;
+      this.$emit('getProductId', row);
+    },
+    changeRadio(row) {},
     changeCheckbox(selection) {
       let images = [];
       selection.forEach(function (item) {
@@ -308,7 +302,7 @@ export default {
       });
       this.images = images;
       this.diyVal = selection;
-      this.$emit('getProductDiy', selection);
+      this.$emit('getProductId', selection);
     },
     // 商品分类;
     goodsCategory() {
@@ -320,8 +314,7 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
+    pageChange() {
       if (this.diy) {
         this.productList();
       } else {

+ 2 - 2
template/admin/src/components/iconFrom/index.vue

@@ -1,11 +1,11 @@
 <template>
   <div class="iconBox">
-    <Input
+    <el-input
       v-model="iconVal"
       placeholder="输入关键词搜索,注意全是英文"
       clearable
       style="width: 300px"
-      @on-change="upIcon(iconVal)"
+      @change="upIcon(iconVal)"
       ref="search"
     />
     <div class="trees-coadd">

+ 2 - 2
template/admin/src/components/labelList/index.vue

@@ -18,8 +18,8 @@
       <div v-if="!isUser">暂无标签</div>
     </div>
     <div class="footer">
-      <Button type="primary" class="btns" @click="subBtn">确定</Button>
-      <Button type="primary" class="btns" ghost @click="cancel">取消</Button>
+      <el-button type="primary" class="btns" @click="subBtn">确定</el-button>
+      <el-button type="primary" class="btns" ghost @click="cancel">取消</el-button>
     </div>
   </div>
 </template>

+ 95 - 79
template/admin/src/components/linkaddress/index.vue

@@ -149,20 +149,24 @@
             currenType == 'integral'
           "
         >
-          <Form ref="formValidate" :model="formValidate" class="tabform" v-if="currenType == 'product'">
-            <Row type="flex" :gutter="24">
-              <Col>
-                <FormItem label="" label-for="pid">
-                  <Select v-model="formValidate.cate_id" style="width: 230px" clearable @on-change="userSearchs">
-                    <Option v-for="item in treeSelect" :value="item.id" :key="item.id"
-                      >{{ item.html + item.cate_name }}
-                    </Option>
-                  </Select>
-                </FormItem>
-              </Col>
-              <Col>
-                <FormItem label="" label-for="store_name">
-                  <Input
+          <el-form ref="formValidate" :model="formValidate" class="tabform" v-if="currenType == 'product'">
+            <el-row :gutter="24">
+              <el-col>
+                <el-form-item label="" label-for="pid">
+                  <el-select v-model="formValidate.cate_id" style="width: 230px" clearable @change="userSearchs">
+                    <el-option
+                      v-for="item in treeSelect"
+                      :value="item.id"
+                      :key="item.id"
+                      :label="item.html + item.cate_name"
+                    >
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col>
+                <el-form-item label="" label-for="store_name">
+                  <el-input
                     search
                     enter-button
                     placeholder="请输入商品名称,关键字,编号"
@@ -170,31 +174,16 @@
                     style="width: 250px"
                     @on-search="userSearchs"
                   />
-                </FormItem>
-              </Col>
-            </Row>
-          </Form>
-          <Table
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+          <el-table
             row-key="id"
             ref="table"
-            no-data-text="暂无数据"
-            no-filtered-data-text="暂无筛选结果"
-            :columns="
-              currenType == 'special'
-                ? columns
-                : currenType == 'product_category'
-                ? columns7
-                : currenType == 'bargain' ||
-                  currenType == 'combination' ||
-                  currenType == 'advance' ||
-                  currenType == 'integral'
-                ? bargain
-                : currenType == 'news'
-                ? news
-                : columns8
-            "
+            empty-text="暂无数据"
             :data="tableList"
-            :loading="loading"
+            v-loading="loading"
             :max-height="
               currenType == 'product_category'
                 ? '410'
@@ -209,28 +198,53 @@
                 : ''
             "
           >
-            <template slot-scope="{ row, index }" slot="pic" v-if="row.hasOwnProperty('pic')">
-              <viewer>
-                <div class="tabBox_img">
-                  <img v-lazy="row.pic" />
-                </div>
-              </viewer>
-            </template>
-            <template slot-scope="{ row, index }" slot="image" v-if="row.hasOwnProperty('image')">
-              <viewer>
-                <div class="tabBox_img">
-                  <img v-lazy="row.image" />
-                </div>
-              </viewer>
-            </template>
-            <template slot-scope="{ row, index }" slot="image_input" v-if="row.hasOwnProperty('image_input')">
-              <viewer>
-                <div class="tabBox_img">
-                  <img v-lazy="row.image_input[0]" />
-                </div>
-              </viewer>
-            </template>
-          </Table>
+            <el-table-column
+              :label="item.title"
+              :min-width="item.minWidth"
+              v-for="(item, index) in currenType == 'special'
+                ? columns
+                : currenType == 'product_category'
+                ? columns7
+                : currenType == 'bargain' ||
+                  currenType == 'combination' ||
+                  currenType == 'advance' ||
+                  currenType == 'integral'
+                ? bargain
+                : currenType == 'news'
+                ? news
+                : columns8"
+              :key="index"
+            >
+              <template slot-scope="scope">
+                <template v-if="item.key">
+                  <div>
+                    <span>{{ scope.row[item.key] }}</span>
+                  </div>
+                </template>
+                <template v-else-if="item.slot === 'pic' && scope.row.hasOwnProperty('pic')">
+                  <viewer>
+                    <div class="tabBox_img">
+                      <img v-lazy="scope.row.pic" />
+                    </div>
+                  </viewer>
+                </template>
+                <template v-else-if="item.slot === 'image' && scope.row.hasOwnProperty('image')">
+                  <viewer>
+                    <div class="tabBox_img">
+                      <img v-lazy="scope.row.image" />
+                    </div>
+                  </viewer>
+                </template>
+                <template v-else-if="item.slot === 'image_input' && scope.row.hasOwnProperty('image_input')">
+                  <viewer>
+                    <div class="tabBox_img">
+                      <img v-lazy="scope.row.image_input[0]" />
+                    </div>
+                  </viewer>
+                </template>
+              </template>
+            </el-table-column>
+          </el-table>
           <div
             class="acea-row row-right page"
             v-if="
@@ -243,25 +257,31 @@
               currenType == 'integral'
             "
           >
-            <Page :total="total" show-elevator show-total @on-change="pageChange" :page-size="formValidate.limit" />
+            <pagination
+              v-if="total"
+              :total="total"
+              :page.sync="formValidate.page"
+              :limit.sync="formValidate.limit"
+              @pagination="getList"
+            />
           </div>
         </div>
         <div class="right_box" v-if="currenType == 'custom'">
           <!--<div v-if="!tableList.length || customNum==2">-->
-          <!--<Button type="primary" @click="customList" v-if="tableList.length">自定义列表</Button>-->
+          <!--<el-button type="primary" @click="customList" v-if="tableList.length">自定义列表</el-button>-->
           <div style="width: 340px; margin: 150px 100px 0 120px">
-            <Form ref="customdate" :model="customdate" :rules="ruleValidate" :label-width="88">
-              <!--<FormItem label="链接名称:" prop="name">-->
-              <!--<Input v-model="customdate.name" placeholder="会员中心"></Input>-->
-              <!--</FormItem>-->
-              <FormItem label="跳转路径:" prop="url">
-                <Input v-model="customdate.url" placeholder="请输入跳转路径"></Input>
-              </FormItem>
-            </Form>
+            <el-form ref="customdate" :model="customdate" :rules="ruleValidate" :label-width="88">
+              <!--<el-form-item label="链接名称:" prop="name">-->
+              <!--<el-input v-model="customdate.name" placeholder="会员中心"></el-input>-->
+              <!--</el-form-item>-->
+              <el-form-item label="跳转路径:" prop="url">
+                <el-input v-model="customdate.url" placeholder="请输入跳转路径"></el-input>
+              </el-form-item>
+            </el-form>
           </div>
           <!--</div>-->
           <!--<div v-else>-->
-          <!--<Button type="primary" @click="customLink">自定义链接</Button>-->
+          <!--<el-button type="primary" @click="customLink">自定义链接</el-button>-->
           <!--<div class="Box">-->
           <!--<div v-for="(item,index) in tableList" :key="index" class="item">-->
           <!--<div class="cont_box" :class="currenId==item.id?'on':''" @click="getUrl(item)">{{item.name}}</div>-->
@@ -272,13 +292,13 @@
         </div>
       </div>
       <!--<div slot="footer" v-if="categoryId==9&&customNum==2">-->
-      <!--<Button @click="handleReset('customdate')">重置</Button>-->
-      <!--<Button type="primary" @click="handleSubmit('customdate')">确定</Button>-->
+      <!--<el-button @click="handleReset('customdate')">重置</el-button>-->
+      <!--<el-button type="primary" @click="handleSubmit('customdate')">确定</el-button>-->
       <!--</div>-->
       <div slot="footer">
-        <Button @click="cancel">取消</Button>
-        <Button type="primary" @click="handleSubmit('customdate')" v-if="currenType == 'custom'">确定</Button>
-        <Button type="primary" @click="ok" v-else>确定</Button>
+        <el-button @click="cancel">取消</el-button>
+        <el-button type="primary" @click="handleSubmit('customdate')" v-if="currenType == 'custom'">确定</el-button>
+        <el-button type="primary" @click="ok" v-else>确定</el-button>
       </div>
     </Modal>
   </div>
@@ -430,7 +450,7 @@ export default {
         }
         let self = this;
         return h('div', [
-          h('Radio', {
+          h('el-radio', {
             props: {
               value: flag,
             },
@@ -513,10 +533,6 @@ export default {
     handleReset(name) {
       this.$refs[name].resetFields();
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
     // 商品分类;
     goodsCategory() {
       treeListApi(1)

+ 2 - 2
template/admin/src/components/mobileConfigDiy/c_home_service.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="mobile-config">
-    <Form ref="formInline">
+    <el-form ref="formInline">
       <div v-for="(item, key) in rCom" :key="key">
         <component
           :is="item.components.name"
@@ -14,7 +14,7 @@
         ></component>
       </div>
       <rightBtn :activeIndex="activeIndex" :configObj="configObj"></rightBtn>
-    </Form>
+    </el-form>
   </div>
 </template>
 

+ 2 - 2
template/admin/src/components/mobileConfigDiy/c_news_roll.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="mobile-config">
-    <Form ref="formInline">
+    <el-form ref="formInline">
       <div v-for="(item, key) in rCom" :key="key">
         <component
           :is="item.components.name"
@@ -14,7 +14,7 @@
         ></component>
       </div>
       <rightBtn :activeIndex="activeIndex" :configObj="configObj"></rightBtn>
-    </Form>
+    </el-form>
   </div>
 </template>
 

+ 2 - 2
template/admin/src/components/mobileConfigDiy/c_search_box.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="mobile-config">
-    <Form ref="formInline">
+    <el-form ref="formInline">
       <div v-for="(item, key) in rCom" :key="key">
         <component
           :is="item.components.name"
@@ -13,7 +13,7 @@
         ></component>
       </div>
       <rightBtn :activeIndex="activeIndex" :configObj="configObj"></rightBtn>
-    </Form>
+    </el-form>
   </div>
 </template>
 

+ 2 - 2
template/admin/src/components/mobileConfigDiy/pageFoot.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="mobile-config">
-    <Form ref="formInline">
+    <el-form ref="formInline">
       <div v-for="(item, key) in rCom" :key="key">
         <component
           :is="item.components.name"
@@ -9,7 +9,7 @@
           :configNme="item.configNme"
         ></component>
       </div>
-    </Form>
+    </el-form>
   </div>
 </template>
 

+ 22 - 22
template/admin/src/components/mobileConfigDiy/pageTitle.vue

@@ -1,37 +1,37 @@
 <template>
   <div class="box">
     <div class="c_row-item" v-if="this.$route.query.type !== 2">
-      <Col class="label" span="4"> 模板名称 </Col>
-      <Col span="19" class="slider-box">
-        <Input v-model="name" placeholder="选填不超过15个字" maxlength="15" @on-change="changName" />
-      </Col>
+      <el-col class="label" :span="4"> 模板名称 </el-col>
+      <el-col span="19" class="slider-box">
+        <el-input v-model="name" placeholder="选填不超过15个字" maxlength="15" @change="changName" />
+      </el-col>
     </div>
     <div class="c_row-item">
-      <Col class="label" span="4"> 页面标题 </Col>
-      <Col span="19" class="slider-box">
-        <Input v-model="value" placeholder="选填不超过30个字" maxlength="30" @on-change="changVal" />
-      </Col>
+      <el-col class="label" :span="4"> 页面标题 </el-col>
+      <el-col span="19" class="slider-box">
+        <el-input v-model="value" placeholder="选填不超过30个字" maxlength="30" @change="changVal" />
+      </el-col>
     </div>
     <div class="c_row-item">
-      <Col class="label" span="4"> 页面状态 </Col>
-      <Col span="19" class="slider-box">
-        <i-switch v-model="isShow" @on-change="changeState" />
-      </Col>
+      <el-col class="label" :span="4"> 页面状态 </el-col>
+      <el-col span="19" class="slider-box">
+        <el-switch :active-value="1"  :inactive-value="0" v-model="isShow" @change="changeState" />
+      </el-col>
     </div>
     <div class="c_row-item acea-row row-top">
-      <Col class="label" span="4"> 背景设置 </Col>
-      <Col span="19" class="slider-box">
+      <el-col class="label" :span="4"> 背景设置 </el-col>
+      <el-col span="19" class="slider-box">
         <div class="acea-row row-between row-top color">
-          <Checkbox v-model="bgColor" @on-change="bgColorTap">背景色</Checkbox>
-          <ColorPicker v-model="colorPicker" @on-change="colorPickerTap(colorPicker)" />
+          <el-checkbox v-model="bgColor" @change="bgColorTap">背景色</el-checkbox>
+          <ColorPicker v-model="colorPicker" @change="colorPickerTap(colorPicker)" />
         </div>
         <div class="acea-row row-between row-top color">
-          <Checkbox v-model="bgPic" @on-change="bgPicTap">背景图</Checkbox>
-          <RadioGroup v-model="tabVal" type="button" @on-change="radioTap">
-            <Radio :label="index" v-for="(item, index) in picList" :key="index">
+          <el-checkbox v-model="bgPic" @change="bgPicTap">背景图</el-checkbox>
+          <el-radio-group v-model="tabVal" type="button" @change="radioTap">
+            <el-radio-button :label="index" v-for="(item, index) in picList" :key="index">
               <span class="iconfont-diy" :class="item"></span>
-            </Radio>
-          </RadioGroup>
+            </el-radio-button>
+          </el-radio-group>
         </div>
         <div v-if="bgPic">
           <div class="title">建议尺寸:690 * 240px</div>
@@ -44,7 +44,7 @@
             <!--<span class="iconfont-diy icondel_1" @click.stop="bindDelete" v-if="bgPicUrl"></span>-->
           </div>
         </div>
-      </Col>
+      </el-col>
     </div>
     <div>
       <Modal

+ 4 - 4
template/admin/src/components/mobileConfigRightDiy/c_bg_color.vue

@@ -1,13 +1,13 @@
 <template>
   <div>
     <div class="c_row-item" v-if="configData">
-      <Col span="8" class="c_label">{{ configData.title }}</Col>
-      <Col span="14" class="color-box">
+      <el-col :span="8" class="c_label">{{ configData.title }}</el-col>
+      <el-col span="14" class="color-box">
         <div class="color-item" v-for="(color, key) in configData.color" :key="key">
-          <ColorPicker v-model="color.item" @on-change="changeColor($event, color)" alpha></ColorPicker
+          <ColorPicker v-model="color.item" @change="changeColor($event, color)" alpha></ColorPicker
           ><span @click="resetBgA(color, index, key)">重置</span>
         </div>
-      </Col>
+      </el-col>
     </div>
   </div>
 </template>

+ 5 - 5
template/admin/src/components/mobileConfigRightDiy/c_cascader.vue

@@ -1,19 +1,19 @@
 <template>
   <div class="slider-box">
     <div class="c_row-item">
-      <Col class="label" span="4" v-if="configData.title">
+      <el-col class="label" :span="4" v-if="configData.title">
         {{ configData.title }}
-      </Col>
-      <Col span="19" class="slider-box">
+      </el-col>
+      <el-col span="19" class="slider-box">
         <Cascader
           :data="configData.list"
           placeholder="请选择商品分类"
           change-on-select
           v-model="configData.activeValue"
           filterable
-          @on-change="sliderChange"
+          @change="sliderChange"
         ></Cascader>
-      </Col>
+      </el-col>
     </div>
   </div>
 </template>

+ 9 - 9
template/admin/src/components/mobileConfigRightDiy/c_foot.vue

@@ -18,18 +18,18 @@
             </div>
           </div>
           <div class="c_row-item">
-            <Col class="label" span="4"> 名称 </Col>
-            <Col span="19" class="slider-box">
-              <Input v-model="item.name" placeholder="选填不超过10个字" />
-            </Col>
+            <el-col class="label" :span="4"> 名称 </el-col>
+            <el-col span="19" class="slider-box">
+              <el-input v-model="item.name" placeholder="选填不超过10个字" />
+            </el-col>
           </div>
           <div class="c_row-item">
-            <Col class="label" span="4"> 链接 </Col>
-            <Col span="19" class="slider-box">
+            <el-col class="label" :span="4"> 链接 </el-col>
+            <el-col span="19" class="slider-box">
               <div @click="getLink(index)">
-                <Input icon="ios-arrow-forward" v-model="item.link" readonly placeholder="选填不超过10个字" />
+                <el-input icon="ios-arrow-forward" v-model="item.link" readonly placeholder="选填不超过10个字" />
               </div>
-            </Col>
+            </el-col>
           </div>
         </div>
         <div class="del-box" @click="deleteMenu(index)">
@@ -37,7 +37,7 @@
         </div>
       </div>
     </draggable>
-    <Button class="add-btn" type="info" ghost @click="addMenu" v-if="footConfig.length < 5">添加图文导航</Button>
+    <el-button class="add-btn" type="info" ghost @click="addMenu" v-if="footConfig.length < 5">添加图文导航</el-button>
     <div>
       <Modal
         v-model="modalPic"

+ 2 - 2
template/admin/src/components/mobileConfigRightDiy/c_hot_imgs.vue

@@ -35,7 +35,7 @@
             <div class="info-item" v-for="(infos, key) in item.info" :key="key">
               <span>{{ infos.title }}</span>
               <div class="input-box">
-                <Input v-model="infos.value" :placeholder="infos.tips" :maxlength="infos.max" />
+                <el-input v-model="infos.value" :placeholder="infos.tips" :maxlength="infos.max" />
               </div>
             </div>
           </div>
@@ -43,7 +43,7 @@
       </draggable>
     </div>
     <div class="add-btn" v-if="defaults.menu.length < 4">
-      <Button style="width: 100%; height: 40px" @click="addBox">添加板块</Button>
+      <el-button style="width: 100%; height: 40px" @click="addBox">添加板块</el-button>
     </div>
   </div>
 </template>

+ 3 - 3
template/admin/src/components/mobileConfigRightDiy/c_hot_word.vue

@@ -10,15 +10,15 @@
           <div class="icon">
             <Icon type="ios-keypad" size="20" />
           </div>
-          <Input v-model="item.val" maxlength="10" placeholder="选填,不超过十个字" />
+          <el-input v-model="item.val" maxlength="10" placeholder="选填,不超过十个字" />
           <div class="delete" @click.stop="bindDelete(index)">
             <Icon type="ios-close-circle" size="20" />
           </div>
         </div>
       </draggable>
       <div class="add-btn" @click="addHotTxt" v-if="configData.list.length < 20">
-        <Button type="primary" ghost style="width: 100%; height: 40px; border-color: #1890ff; color: #1890ff"
-          >添加热词</Button
+        <el-button type="primary" ghost style="width: 100%; height: 40px; border-color: #1890ff; color: #1890ff"
+          >添加热词</el-button
         >
       </div>
     </div>

+ 5 - 5
template/admin/src/components/mobileConfigRightDiy/c_input_item.vue

@@ -1,12 +1,12 @@
 <template>
   <div class="box" v-if="configData">
     <div class="c_row-item">
-      <Col class="label" span="4">
+      <el-col class="label" :span="4">
         {{ configData.title }}
-      </Col>
-      <Col span="19" class="slider-box">
+      </el-col>
+      <el-col span="19" class="slider-box">
         <div @click="getLink(configData.title)">
-          <Input
+          <el-input
             :icon="configData.title == '链接' ? 'ios-arrow-forward' : ''"
             :readonly="configData.title == '链接' ? true : false"
             v-model="configData.value"
@@ -14,7 +14,7 @@
             :maxlength="configData.max"
           />
         </div>
-      </Col>
+      </el-col>
     </div>
     <linkaddress ref="linkaddres" @linkUrl="linkUrl"></linkaddress>
   </div>

+ 8 - 8
template/admin/src/components/mobileConfigRightDiy/c_input_number.vue

@@ -1,21 +1,21 @@
 <template>
   <div class="numbox" v-if="configData">
     <div class="c_row-item">
-      <Col class="label" span="4">
+      <el-col class="label" :span="4">
         <span>{{ configData.title || '商品数量' }}</span>
-      </Col>
-      <Col span="19" class="slider-box">
-        <!--<Input v-model="configData.val" type="number" placeholder="请输入数量" @on-change="bindChange" style="text-align: right;"/>-->
-        <InputNumber
+      </el-col>
+      <el-col span="19" class="slider-box">
+        <!--<el-input v-model="configData.val" type="number" placeholder="请输入数量" @change="bindChange" style="text-align: right;"/>-->
+        <el-input-number controls-position="right"
           v-model="configData.val"
           placeholder="请输入数量"
           :step="1"
           :max="100"
           :min="1"
-          @on-change="bindChange"
+          @change="bindChange"
           style="text-align: right"
-        ></InputNumber>
-      </Col>
+        ></el-input-number>
+      </el-col>
     </div>
   </div>
 </template>

+ 4 - 4
template/admin/src/components/mobileConfigRightDiy/c_is_show.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="c_row-item">
-    <Col class="c_label">{{ configData.title }}</Col>
-    <Col>
-      <i-switch v-model="configData.val" />
-    </Col>
+    <el-col class="c_label">{{ configData.title }}</el-col>
+    <el-col>
+      <el-switch :active-value="1"  :inactive-value="0" v-model="configData.val" />
+    </el-col>
   </div>
 </template>
 

+ 5 - 5
template/admin/src/components/mobileConfigRightDiy/c_menu_list.vue

@@ -20,16 +20,16 @@
             <div class="info-item" v-for="(infos, key) in item.info" :key="key">
               <span>{{ infos.title }}</span>
               <div class="input-box" @click="getLink(index, key, item.info)">
-                <Input
+                <el-input
                   :icon="key == item.info.length - 1 ? 'ios-arrow-forward' : ''"
                   v-model="infos.value"
                   :readonly="key == item.info.length - 1 ? true : false"
                   :placeholder="infos.tips"
                   :maxlength="infos.max"
                   v-if="configData.isCube"
-                  @on-blur="onBlur"
+                  @blur="onBlur"
                 />
-                <Input
+                <el-input
                   :icon="key == item.info.length - 1 ? 'ios-arrow-forward' : ''"
                   v-model="infos.value"
                   :readonly="key == item.info.length - 1 ? true : false"
@@ -65,12 +65,12 @@
     </div>
     <template v-if="configData.list">
       <div class="add-btn" v-if="configData.list.length < configData.maxList">
-        <Button
+        <el-button
           type="primary"
           ghost
           style="width: 100%; height: 40px; border-color: #1890ff; color: #1890ff"
           @click="addBox"
-          >添加板块</Button
+          >添加板块</el-button
         >
       </div>
     </template>

+ 1 - 1
template/admin/src/components/mobileConfigRightDiy/c_pictrue.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="mobile-page">
     <div v-if="isUpdate">
-      <Divider />
+      <el-divider direction="vertical" />
       <div class="title">布局</div>
       <div class="tip">选定布局区域,在下方添加图片,建议添加比例一致的图片</div>
       <div class="advert">

+ 6 - 6
template/admin/src/components/mobileConfigRightDiy/c_product.vue

@@ -17,7 +17,7 @@
             <div class="con-item" v-for="(list, key) in item.chiild" :key="key">
               <span>{{ list.title }}</span>
               <div style="width: 100%" @click="getLink(index, key, item)">
-                <Input
+                <el-input
                   :icon="key && !item.link ? 'ios-arrow-forward' : ''"
                   :readonly="key && !item.link ? true : false"
                   v-model="list.val"
@@ -28,9 +28,9 @@
             </div>
             <div class="con-item" v-if="item.link">
               <span>{{ item.link.title }}</span>
-              <Select v-model="item.link.activeVal" style="" @on-change="sliderChange(index)">
-                <Option v-for="(item, j) in item.link.optiops" :value="item.value" :key="j">{{ item.label }} </Option>
-              </Select>
+              <el-select v-model="item.link.activeVal" style="" @change="sliderChange(index)">
+                <el-option v-for="(item, j) in item.link.optiops" :value="item.value" :key="j" :label="item.label"></el-option>
+              </el-select>
             </div>
           </div>
           <div class="delete" @click.stop="bindDelete(index)">
@@ -41,8 +41,8 @@
     </div>
     <div v-if="configData.list">
       <div class="add-btn" @click="addHotTxt" v-if="configData.list.length < configData.max">
-        <Button type="primary" ghost style="width: 100%; height: 40px; border-color: #1890ff; color: #1890ff"
-          >添加模块</Button
+        <el-button type="primary" ghost style="width: 100%; height: 40px; border-color: #1890ff; color: #1890ff"
+          >添加模块</el-button
         >
       </div>
     </div>

+ 7 - 9
template/admin/src/components/mobileConfigRightDiy/c_select.vue

@@ -1,16 +1,14 @@
 <template>
   <div class="slider-box">
     <div class="c_row-item">
-      <Col class="label" span="4" v-if="configData.title">
+      <el-col class="label" :span="4" v-if="configData.title">
         {{ configData.title }}
-      </Col>
-      <Col span="19" class="slider-box">
-        <Select v-model="configData.activeValue" @on-change="sliderChange">
-          <Option v-for="(item, index) in configData.list" :value="item.activeValue" :key="index">{{
-            item.title
-          }}</Option>
-        </Select>
-      </Col>
+      </el-col>
+      <el-col span="19" class="slider-box">
+        <el-select v-model="configData.activeValue" @change="sliderChange">
+          <el-option v-for="(item, index) in configData.list" :value="item.activeValue" :key="index" :label="item.title"></el-option>
+        </el-select>
+      </el-col>
     </div>
   </div>
 </template>

+ 4 - 4
template/admin/src/components/mobileConfigRightDiy/c_set_up.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="setUp">
     <template>
-      <Tabs v-model="configData.tabVal">
-        <TabPane label="内容设置" />
-        <TabPane label="样式设置" />
-      </Tabs>
+      <el-tabs v-model="configData.tabVal">
+        <el-tab-pane label="内容设置" />
+        <el-tab-pane label="样式设置" />
+      </el-tabs>
     </template>
   </div>
 </template>

+ 5 - 5
template/admin/src/components/mobileConfigRightDiy/c_slider.vue

@@ -1,12 +1,12 @@
 <template>
   <div class="slider-box">
     <div class="c_row-item">
-      <Col class="label" span="4" v-if="configData.title">
+      <el-col class="label" :span="4" v-if="configData.title">
         {{ configData.title }}
-      </Col>
-      <Col span="18" class="slider-box">
-        <Slider v-model="configData.val" show-input @on-change="sliderChange($event)" :min="configData.min"></Slider>
-      </Col>
+      </el-col>
+      <el-col span="18" class="slider-box">
+        <Slider v-model="configData.val" show-input @change="sliderChange($event)" :min="configData.min"></Slider>
+      </el-col>
     </div>
   </div>
 </template>

+ 4 - 4
template/admin/src/components/mobileConfigRightDiy/c_status.vue

@@ -1,10 +1,10 @@
 <template>
   <div>
     <div class="c_row-item" v-if="configData">
-      <Col span="8" class="c_label">{{ configData.title }}</Col>
-      <Col span="14" class="color-box">
-        <i-switch :true-value="true" :false-value="false" v-model="configData.status" @on-change="change" />
-      </Col>
+      <el-col :span="8" class="c_label">{{ configData.title }}</el-col>
+      <el-col span="14" class="color-box">
+        <el-switch :active-value="true"  :inactive-value="false" v-model="configData.status" @change="change" />
+      </el-col>
     </div>
   </div>
 </template>

+ 4 - 4
template/admin/src/components/mobileConfigRightDiy/c_tab.vue

@@ -5,12 +5,12 @@
       >{{ configData.tabList[configData.tabVal].name }}
     </div>
     <div class="radio-box" :class="{ on: configData.type == 1 }">
-      <RadioGroup v-model="configData.tabVal" type="button" size="large" @on-change="radioChange($event)">
-        <Radio :label="index" v-for="(item, index) in configData.tabList" :key="index">
+      <el-radio-group v-model="configData.tabVal" type="button" size="large" @change="radioChange($event)">
+        <el-radio-button :label="index" v-for="(item, index) in configData.tabList" :key="index">
           <span class="iconfont-diy" :class="item.icon" v-if="item.icon"></span>
           <span v-else>{{ item.name }}</span>
-        </Radio>
-      </RadioGroup>
+        </el-radio-button>
+      </el-radio-group>
     </div>
   </div>
 </template>

+ 8 - 8
template/admin/src/components/mobileConfigRightDiy/c_txt_tab.vue

@@ -1,18 +1,18 @@
 <template>
   <div class="txt_tab" v-if="configData">
     <div class="c_row-item">
-      <Col class="c_label">
+      <el-col class="c_label">
         {{ configData.title }}
         <span>{{ configData.list[configData.type].val }}</span>
-      </Col>
-      <Col class="color-box">
-        <RadioGroup v-model="configData.type" type="button" @on-change="radioChange($event)">
-          <Radio :label="key" v-for="(radio, key) in configData.list" :key="key">
+      </el-col>
+      <el-col class="color-box">
+        <el-radio-group v-model="configData.type" type="button" @change="radioChange($event)">
+          <el-radio-button :label="key" v-for="(radio, key) in configData.list" :key="key">
             <span class="iconfont-diy" :class="radio.icon" v-if="radio.icon"></span>
             <span v-else>{{ radio.val }}</span>
-          </Radio>
-        </RadioGroup>
-      </Col>
+          </el-radio-button>
+        </el-radio-group>
+      </el-col>
     </div>
   </div>
 </template>

+ 2 - 2
template/admin/src/components/modelSure/modelSure.vue

@@ -9,8 +9,8 @@
       <p v-if="delfromData.info !== undefined">{{ `${delfromData.info}` }}</p>
     </div>
     <div slot="footer" class="acea-row row-right">
-      <Button type="warning" :loading="modal_loading" @click="ok">确定</Button>
-      <Button type="primary" @click="cancel">取消</Button>
+      <el-button type="warning" :loading="modal_loading" @click="ok">确定</el-button>
+      <el-button type="primary" @click="cancel">取消</el-button>
     </div>
   </Modal>
 </template>

+ 22 - 22
template/admin/src/components/newsCategory/index.vue

@@ -1,12 +1,12 @@
 <template>
   <div :style="{ height: scrollerHeight + 'px' || '' }">
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Form ref="formValidate" :model="formValidate" :label-width="80" label-position="left" class="tabform">
-        <Row :gutter="24" type="flex" justify="end">
-          <Col span="24">
-            <Col v-bind="grid" class="mr">
-              <FormItem label="图文搜索:" prop="cate_name" label-for="cate_name">
-                <Input
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-form ref="formValidate" :model="formValidate" label-width="85px" label-position="left" class="tabform">
+        <el-row :gutter="24"  justify="end">
+          <el-col :span="24">
+            <el-col v-bind="grid" class="mr">
+              <el-form-item label="图文搜索:" prop="cate_name" label-for="cate_name">
+                <el-input
                   search
                   enter-button
                   placeholder="请输入"
@@ -14,17 +14,17 @@
                   v-model="formValidate.cate_name"
                   @on-search="userSearchs"
                 />
-              </FormItem>
-            </Col>
-          </Col>
-        </Row>
-        <Row type="flex" v-show="$route.path === routePre + '/app/wechat/news_category/index'">
+              </el-form-item>
+            </el-col>
+          </el-col>
+        </el-row>
+        <el-row  v-show="$route.path === routePre + '/app/wechat/news_category/index'">
           <router-link :to="routePre + '/app/wechat/news_category/save/0'">
-            <Button type="primary" class="bnt" icon="md-add">添加图文消息</Button>
+            <el-button type="primary" class="bnt" icon="md-add">添加图文消息</el-button>
           </router-link>
-        </Row>
-      </Form>
-    </Card>
+        </el-row>
+      </el-form>
+    </el-card>
     <div class="contentBox">
       <div id="content" :style="{ top: contentTop + 'px' || '', width: contentWidth }" ref="content">
         <vue-waterfall-easy
@@ -48,28 +48,28 @@
                   @mouseenter="mouseenterOut(j)"
                   @mouseleave="mouseenterOver(j)"
                 >
-                  <Button
+                  <el-button
                     type="success"
                     shape="circle"
                     icon="md-create"
                     v-show="props.value.new[i].isDel && isShow"
                     @click="clkk(props.value)"
-                  ></Button>
-                  <Button
+                  ></el-button>
+                  <el-button
                     type="error"
                     shape="circle"
                     icon="md-trash"
                     v-show="props.value.new[i].isDel && isShow"
                     @click="del(props.value, '删除图文', i)"
                     style="margin-top: 5px"
-                  ></Button>
-                  <Button
+                  ></el-button>
+                  <el-button
                     type="primary"
                     icon="md-paper-plane"
                     v-show="props.value.new[i].isDel && isShowSend"
                     shape="circle"
                     @click="send(props.value, '发送', i)"
-                    >推送</Button
+                    >推送</el-button
                   >
                 </div>
                 <span class="news_sp">{{ j.title }}</span>

+ 37 - 37
template/admin/src/components/publicSearchFrom/index.vue

@@ -1,18 +1,18 @@
 <template>
   <div>
-    <Form ref="orderData" :label-width="80" label-position="right" class="tabform">
-      <Row :gutter="24" type="flex" v-for="(item, index) in fromList" :key="index">
-        <Col :xl="8" :lg="8" :md="8" :sm="24" :xs="24">
-          <FormItem :label="item.title + ':'">
-            <RadioGroup type="button" v-model="date">
-              <Radio :label="itemn.text" v-for="(itemn, indexn) in item.fromTxt" :key="indexn"
-                >{{ itemn.text }}{{ item.num }}</Radio
+    <el-form ref="orderData" label-width="85px" label-position="right" class="tabform">
+      <el-row :gutter="24"  v-for="(item, index) in fromList" :key="index">
+        <el-col :xl="8" :lg="8" :md="8" :sm="24" :xs="24">
+          <el-form-item :label="item.title + ':'">
+            <el-radio-group type="button" v-model="date">
+              <el-radio-button :label="itemn.text" v-for="(itemn, indexn) in item.fromTxt" :key="indexn"
+                >{{ itemn.text }}{{ item.num }}</el-radio-button
               >
-            </RadioGroup>
-          </FormItem>
-        </Col>
-        <Col v-if="item.custom">
-          <FormItem class="tab_data">
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+        <el-col v-if="item.custom">
+          <el-form-item class="tab_data">
             <DatePicker
               :editable="false"
               format="yyyy/MM/dd"
@@ -21,32 +21,32 @@
               placeholder="请选择时间"
               style="width: 200px"
             ></DatePicker>
-          </FormItem>
-        </Col>
-      </Row>
-      <Row :gutter="24" type="flex" v-if="isExist.existOne">
-        <Col span="10" class="mr">
-          <FormItem :label="searchFrom.title + ':'" prop="real_name" label-for="real_name">
-            <Input search enter-button :placeholder="searchFrom.place" element-id="name" />
-          </FormItem>
-        </Col>
-        <Col>
-          <Button class="mr">导出</Button>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="24"  v-if="isExist.existOne">
+        <el-col span="10" class="mr">
+          <el-form-item :label="searchFrom.title + ':'" prop="real_name" label-for="real_name">
+            <el-input search enter-button :placeholder="searchFrom.place" element-id="name" />
+          </el-form-item>
+        </el-col>
+        <el-col>
+          <el-button class="mr">导出</el-button>
           <span class="Refresh">刷新</span><Icon type="ios-refresh" />
-        </Col>
-      </Row>
-      <Row :gutter="24" type="flex" class="withdrawal" v-if="isExist.existTwo">
-        <Col span="2.5" class="item">
-          <TreeSelect v-model="withdrawalTxt" :data="treeData.withdrawal" class="perW160" @on-change="changeTree" />
-        </Col>
-        <Col span="2.5" class="item">
-          <TreeSelect v-model="paymentTxt" :data="treeData.payment" class="perW160" @on-change="changeTree" />
-        </Col>
-        <Col span="6" class="item">
-          <Input search enter-button placeholder="微信名称、姓名、支付宝账号、银行卡号" element-id="name" />
-        </Col>
-      </Row>
-    </Form>
+        </el-col>
+      </el-row>
+      <el-row :gutter="24"  class="withdrawal" v-if="isExist.existTwo">
+        <el-col span="2.5" class="item">
+          <TreeSelect v-model="withdrawalTxt" :data="treeData.withdrawal" class="perW160" @change="changeTree" />
+        </el-col>
+        <el-col span="2.5" class="item">
+          <TreeSelect v-model="paymentTxt" :data="treeData.payment" class="perW160" @change="changeTree" />
+        </el-col>
+        <el-col :span="6" class="item">
+          <el-input search enter-button placeholder="微信名称、姓名、支付宝账号、银行卡号" element-id="name" />
+        </el-col>
+      </el-row>
+    </el-form>
   </div>
 </template>
 <style scoped lang="stylus">

+ 7 - 7
template/admin/src/components/remark/index.vue

@@ -1,8 +1,8 @@
 <template>
   <Modal v-model="modals" scrollable title="备注" class="order_box" :closable="false">
-    <Form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80" @submit.native.prevent>
-      <FormItem label="备注:" prop="remark">
-        <Input
+    <el-form ref="formValidate" :model="formValidate" :rules="ruleValidate" label-width="85px" @submit.native.prevent>
+      <el-form-item label="备注:" prop="remark">
+        <el-input
           v-model="formValidate.remark"
           :maxlength="200"
           show-word-limit
@@ -10,11 +10,11 @@
           placeholder="请输入备注信息"
           style="width: 100%"
         />
-      </FormItem>
-    </Form>
+      </el-form-item>
+    </el-form>
     <div slot="footer">
-      <Button type="primary" @click="putRemark('formValidate')">提交</Button>
-      <Button @click="cancel('formValidate')">取消</Button>
+      <el-button type="primary" @click="putRemark('formValidate')">提交</el-button>
+      <el-button @click="cancel('formValidate')">取消</el-button>
     </div>
   </Modal>
 </template>

+ 1 - 1
template/admin/src/components/rightBtn/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="btn-box" style="display: none">
-    <Button type="primary" @click="handleSubmit('formInline')" style="text-align: center; width: 60%">确定</Button>
+    <el-button type="primary" @click="handleSubmit('formInline')" style="text-align: center; width: 60%">确定</el-button>
   </div>
 </template>
 

+ 1 - 1
template/admin/src/components/rightConfig/index.vue

@@ -12,7 +12,7 @@
         ></component>
       </div>
       <div style="text-align: center" v-if="rCom.length">
-        <Button type="primary" style="width: 100%; margin: 0 auto; height: 40px" @click="saveConfig">保存</Button>
+        <el-button type="primary" style="width: 100%; margin: 0 auto; height: 40px" @click="saveConfig">保存</el-button>
       </div>
     </div>
   </div>

+ 41 - 41
template/admin/src/components/searchFrom/searchFrom.vue

@@ -1,61 +1,61 @@
 <template>
   <div class="table_box">
-    <Form
+    <el-form
       ref="DataList"
       :model="DataList"
       :rules="rules"
-      :label-width="80"
+      label-width="85px"
       :label-position="labelPosition"
       class="tabform"
     >
-      <Row :gutter="24" type="flex" justify="end">
-        <Col span="24" class="ivu-text-left">
-          <FormItem label="订单状态:">
-            <RadioGroup v-model="DataList.status" type="button" @on-change="selectChange(DataList.status)">
-              <Radio :label="item.label" v-for="(item, i) in typeName" :key="i">{{
+      <el-row :gutter="24"  justify="end">
+        <el-col :span="24" class="ivu-text-left">
+          <el-form-item label="订单状态:">
+            <el-radio-group v-model="DataList.status" type="button" @change="selectChange(DataList.status)">
+              <el-radio-button :label="item.label" v-for="(item, i) in typeName" :key="i">{{
                 item.name + '(' + item.num + ')'
-              }}</Radio>
-            </RadioGroup>
-          </FormItem>
-        </Col>
-        <Col span="24" class="ivu-text-left">
-          <Col v-bind="grid">
-            <FormItem label="创建时间:">
-              <RadioGroup v-model="DataList.data" type="button" @on-change="timeChange(DataList.data)">
-                <Radio label="today">今天</Radio>
-                <Radio label="yesterday">昨天</Radio>
-                <Radio label="lately7">最近7天</Radio>
-                <Radio label="lately30">最近30天</Radio>
-              </RadioGroup>
-            </FormItem>
-          </Col>
-          <Col v-bind="grid">
-            <FormItem class="tab_data">
+              }}</el-radio-button>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+        <el-col :span="24" class="ivu-text-left">
+          <el-col v-bind="grid">
+            <el-form-item label="创建时间:">
+              <el-radio-group v-model="DataList.data" type="button" @change="timeChange(DataList.data)">
+                <el-radio-button label="today">今天</el-radio-button>
+                <el-radio-button label="yesterday">昨天</el-radio-button>
+                <el-radio-button label="lately7">最近7天</el-radio-button>
+                <el-radio-button label="lately30">最近30天</el-radio-button>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col v-bind="grid">
+            <el-form-item class="tab_data">
               <DatePicker
                 :editable="false"
                 :value="value2"
                 format="yyyy/MM/dd"
                 type="daterange"
                 placement="bottom-end"
-                placeholder="Select date"
+                placeholder="el-select date"
                 style="width: 200px"
               ></DatePicker>
-            </FormItem>
-          </Col>
-        </Col>
-        <Col span="24" class="ivu-text-left" v-if="$route.path === routePro + '/echarts/trade/order'">
-          <FormItem label="订单类型:">
-            <RadioGroup v-model="currentTab" type="button" @on-change="onClickTab(currentTab)">
-              <Radio label="">全部</Radio>
-              <Radio label="1">普通</Radio>
-              <Radio label="2">拼团</Radio>
-              <Radio label="3">砍价</Radio>
-              <Radio label="4">秒杀</Radio>
-            </RadioGroup>
-          </FormItem>
-        </Col>
-      </Row>
-    </Form>
+            </el-form-item>
+          </el-col>
+        </el-col>
+        <el-col :span="24" class="ivu-text-left" v-if="$route.path === routePro + '/echarts/trade/order'">
+          <el-form-item label="订单类型:">
+            <el-radio-group v-model="currentTab" type="button" @change="onClickTab(currentTab)">
+              <el-radio-button label="">全部</el-radio-button>
+              <el-radio-button label="1">普通</el-radio-button>
+              <el-radio-button label="2">拼团</el-radio-button>
+              <el-radio-button label="3">砍价</el-radio-button>
+              <el-radio-button label="4">秒杀</el-radio-button>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
   </div>
 </template>
 

+ 32 - 18
template/admin/src/components/sendCoupons/index.vue

@@ -12,7 +12,7 @@
     >
       <div class="acea-row">
         <span class="sp">优惠券名称:</span
-        ><Input
+        ><el-input
           v-model="page.coupon_title"
           search
           enter-button
@@ -21,26 +21,44 @@
           @on-search="userSearchs"
         />
       </div>
-      <Table
-        :columns="columns"
+      <el-table
         :data="couponList"
         ref="table"
         class="mt25"
-        :loading="loading"
-        highlight-row
+        v-loading="loading"
+        highlight-current-row
         no-userFrom-text="暂无数据"
         no-filtered-userFrom-text="暂无筛选结果"
       >
-        <template slot-scope="{ row, index }" slot="coupon_time">
-          <div v-if="row.coupon_time">{{ row.coupon_time }}</div>
-          <div v-else>{{ row.use_time }}</div>
-        </template>
-        <template slot-scope="{ row, index }" slot="action">
-          <a @click="sendGrant(row, '发送优惠券', index)">发送</a>
-        </template>
-      </Table>
+        <el-table-column label="优惠券名称" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.title }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="优惠券面值" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.coupon_price }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="优惠券最低消费" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.use_min_price }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="优惠券有效期限" min-width="130">
+          <template slot-scope="scope">
+            <div v-if="scope.row.coupon_time">{{ scope.row.coupon_time }}</div>
+            <div v-else>{{ scope.row.use_time }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right" width="90">
+          <template slot-scope="scope">
+            <a @click="sendGrant(scope.row, '发送优惠券', index)">发送</a>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page :total="total" show-elevator show-total @on-change="pageChange" :page-size="page.limit" />
+        <pagination v-if="total" :total="total" :page.sync="page.page" :limit.sync="page.limit" @pagination="getList" />
       </div>
     </Modal>
   </div>
@@ -127,10 +145,6 @@ export default {
     userSearchs() {
       this.getList();
     },
-    pageChange(index) {
-      this.page.page = index;
-      this.getList();
-    },
     // 发送
     sendGrant(row, tit, num) {
       let delfromData = {

+ 39 - 26
template/admin/src/components/sortList/index.vue

@@ -1,17 +1,17 @@
 <template>
   <div class="goodList">
-    <Form ref="formValidate" :model="formValidate" :label-width="120" label-position="right" class="tabform">
-      <Row type="flex" :gutter="24">
-        <Col v-bind="grid">
-          <FormItem label="商品分类:" label-for="pid">
-            <Select v-model="formValidate.pid" style="width: 230px" clearable @on-change="userSearchs">
-              <Option v-for="item in treeSelect" :value="item.id" :key="item.id">{{ item.cate_name }} </Option>
-            </Select>
-          </FormItem>
-        </Col>
-        <Col v-bind="grid">
-          <FormItem label="商品搜索:" label-for="store_name">
-            <Input
+    <el-form ref="formValidate" :model="formValidate" label-width="120px" label-position="right" class="tabform">
+      <el-row :gutter="24">
+        <el-col v-bind="grid">
+          <el-form-item label="商品分类:" label-for="pid">
+            <el-select v-model="formValidate.pid" style="width: 230px" clearable @change="userSearchs">
+              <el-option v-for="item in treeSelect" :value="item.id" :key="item.id" :label="item.cate_name"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="grid">
+          <el-form-item label="商品搜索:" label-for="store_name">
+            <el-input
               search
               enter-button
               placeholder="请输入商品分类,id"
@@ -19,26 +19,39 @@
               style="width: 80%"
               @on-search="userSearchs"
             />
-          </FormItem>
-        </Col>
-      </Row>
-    </Form>
-    <Table
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <el-table
       ref="table"
-      no-data-text="暂无数据"
-      no-filtered-data-text="暂无筛选结果"
+      empty-text="暂无数据"
+      
       max-height="400"
       :columns="columns"
       :data="tableList"
       :loading="loading"
-      @on-selection-change="selectionGood"
+      @select="selectionGood"
     >
-      <template slot-scope="{ row, index }" slot="image">
-        <div class="tabBox_img" v-viewer>
-          <img v-lazy="row.pic" />
-        </div>
-      </template>
-    </Table>
+      <el-table-column type="selection" width="55"> </el-table-column>
+      <el-table-column label="商品ID" width="80">
+        <template slot-scope="scope">
+          <span>{{ scope.row.id }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="图片" min-width="90">
+        <template slot-scope="scope">
+          <div class="tabBox_img" v-viewer>
+            <img v-lazy="scope.row.pic" />
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column label="商品分类" min-width="130">
+        <template slot-scope="scope">
+          <span>{{ scope.row.cate_name }}</span>
+        </template>
+      </el-table-column>
+    </el-table>
   </div>
 </template>
 

+ 79 - 79
template/admin/src/components/systemStore/index.vue

@@ -10,81 +10,81 @@
       @on-cancel="cancel"
     >
       <div class="article-manager">
-        <Card :bordered="false" dis-hover class="ivu-mt">
-          <Form
+        <el-card :bordered="false" shadow="never" class="ivu-mt">
+          <el-form
             ref="formItem"
             :model="formItem"
-            :label-width="120"
+            label-width="120px"
             label-position="right"
             :rules="ruleValidate"
             @submit.native.prevent
           >
-            <Row type="flex" :gutter="24">
-              <Col span="24">
-                <Col v-bind="grid">
-                  <FormItem label="提货点名称:" prop="name" label-for="name">
-                    <Input v-model="formItem.name" placeholder="请输入提货点名称" />
-                  </FormItem>
-                </Col>
-              </Col>
-              <Col span="24">
-                <Col v-bind="grid">
-                  <FormItem label="提货点简介:" label-for="introduction">
-                    <Input v-model="formItem.introduction" placeholder="请输入提货点简介" />
-                  </FormItem>
-                </Col>
-              </Col>
-              <Col span="24">
-                <Col v-bind="grid">
-                  <FormItem label="提货点手机号:" label-for="phone" prop="phone">
-                    <Input v-model="formItem.phone" placeholder="请输入提货点手机号" />
-                  </FormItem>
-                </Col>
-              </Col>
-              <Col span="24">
-                <Col v-bind="grid">
-                  <FormItem label="提货点地址:" label-for="address" prop="address">
+            <el-row  :gutter="24">
+              <el-col :span="24">
+                <el-col v-bind="grid">
+                  <el-form-item label="提货点名称:" prop="name" label-for="name">
+                    <el-input v-model="formItem.name" placeholder="请输入提货点名称" />
+                  </el-form-item>
+                </el-col>
+              </el-col>
+              <el-col :span="24">
+                <el-col v-bind="grid">
+                  <el-form-item label="提货点简介:" label-for="introduction">
+                    <el-input v-model="formItem.introduction" placeholder="请输入提货点简介" />
+                  </el-form-item>
+                </el-col>
+              </el-col>
+              <el-col :span="24">
+                <el-col v-bind="grid">
+                  <el-form-item label="提货点手机号:" label-for="phone" prop="phone">
+                    <el-input v-model="formItem.phone" placeholder="请输入提货点手机号" />
+                  </el-form-item>
+                </el-col>
+              </el-col>
+              <el-col :span="24">
+                <el-col v-bind="grid">
+                  <el-form-item label="提货点地址:" label-for="address" prop="address">
                     <Cascader
                       :data="addresData"
                       :value="formItem.address"
                       v-model="formItem.address"
-                      @on-change="handleChange"
+                      @change="handleChange"
                     ></Cascader>
-                  </FormItem>
-                </Col>
-              </Col>
-              <Col span="24">
-                <Col v-bind="grid">
-                  <FormItem label="详细地址:" label-for="detailed_address" prop="detailed_address">
-                    <Input v-model="formItem.detailed_address" placeholder="请输入详细地址" />
-                  </FormItem>
-                </Col>
-              </Col>
-              <!--<Col span="24">-->
-              <!--<Col v-bind="grid">-->
-              <!--<FormItem label="核销时效:" label-for="valid_time">-->
-              <!--<DatePicker @on-change="onchangeDate" :value="formItem.valid_time" v-model="formItem.valid_time" format="yyyy/MM/dd" type="daterange" split-panels placeholder="请选择核销时效" ></DatePicker>-->
-              <!--</FormItem>-->
-              <!--</Col>-->
-              <!--</Col>-->
-              <Col span="24">
-                <Col v-bind="grid">
-                  <FormItem label="提货点营业:" label-for="day_time" prop="day_time">
+                  </el-form-item>
+                </el-col>
+              </el-col>
+              <el-col :span="24">
+                <el-col v-bind="grid">
+                  <el-form-item label="详细地址:" label-for="detailed_address" prop="detailed_address">
+                    <el-input v-model="formItem.detailed_address" placeholder="请输入详细地址" />
+                  </el-form-item>
+                </el-col>
+              </el-col>
+              <!--<el-col :span="24">-->
+              <!--<el-col v-bind="grid">-->
+              <!--<el-form-item label="核销时效:" label-for="valid_time">-->
+              <!--<DatePicker @change="onchangeDate" :value="formItem.valid_time" v-model="formItem.valid_time" format="yyyy/MM/dd" type="daterange" split-panels placeholder="请选择核销时效" ></DatePicker>-->
+              <!--</el-form-item>-->
+              <!--</el-col>-->
+              <!--</el-col>-->
+              <el-col :span="24">
+                <el-col v-bind="grid">
+                  <el-form-item label="提货点营业:" label-for="day_time" prop="day_time">
                     <TimePicker
                       type="timerange"
-                      @on-change="onchangeTime"
+                      @change="onchangeTime"
                       v-model="formItem.day_time"
                       format="HH:mm:ss"
                       :value="formItem.day_time"
                       placement="bottom-end"
                       placeholder="请选择营业时间"
                     ></TimePicker>
-                  </FormItem>
-                </Col>
-              </Col>
-              <Col span="24">
-                <Col v-bind="grid">
-                  <FormItem label="提货点logo:" prop="image">
+                  </el-form-item>
+                </el-col>
+              </el-col>
+              <el-col :span="24">
+                <el-col v-bind="grid">
+                  <el-form-item label="提货点logo:" prop="image">
                     <div class="picBox" @click="modalPicTap('单选', 'logo')">
                       <div class="pictrue" v-if="formItem.image">
                         <img v-lazy="formItem.image" />
@@ -93,12 +93,12 @@
                         <Icon type="ios-camera-outline" size="26" />
                       </div>
                     </div>
-                  </FormItem>
-                </Col>
-              </Col>
-              <Col span="24">
-                <Col v-bind="grid">
-                  <FormItem label="提货点大图:" prop="oblong_image">
+                  </el-form-item>
+                </el-col>
+              </el-col>
+              <el-col :span="24">
+                <el-col v-bind="grid">
+                  <el-form-item label="提货点大图:" prop="oblong_image">
                     <div class="picBox" @click="modalPicTap('单选', 'oblong')">
                       <div class="pictrue" v-if="formItem.oblong_image">
                         <img v-lazy="formItem.oblong_image" />
@@ -107,14 +107,14 @@
                         <Icon type="ios-camera-outline" size="26" />
                       </div>
                     </div>
-                  </FormItem>
-                </Col>
-              </Col>
-              <Col span="24">
-                <Col v-bind="grid">
-                  <FormItem label="经纬度:" label-for="status2" prop="latlng">
+                  </el-form-item>
+                </el-col>
+              </el-col>
+              <el-col :span="24">
+                <el-col v-bind="grid">
+                  <el-form-item label="经纬度:" label-for="status2" prop="latlng">
                     <Tooltip>
-                      <Input
+                      <el-input
                         search
                         enter-button="查找位置"
                         v-model="formItem.latlng"
@@ -124,20 +124,20 @@
                       />
                       <div slot="content">请点击查找位置选择位置</div>
                     </Tooltip>
-                  </FormItem>
-                </Col>
-              </Col>
-            </Row>
-            <Row type="flex">
+                  </el-form-item>
+                </el-col>
+              </el-col>
+            </el-row>
+            <el-row >
               <div class="btn">
-                <Button type="primary" long @click="handleSubmit('formItem')">{{
+                <el-button type="primary" long @click="handleSubmit('formItem')">{{
                   formItem.id ? '修改' : '提交'
-                }}</Button>
+                }}</el-button>
               </div>
-            </Row>
+            </el-row>
             <Spin size="large" fix v-if="spinShow"></Spin>
-          </Form>
-        </Card>
+          </el-form>
+        </el-card>
 
         <Modal
           v-model="modalPic"

+ 2 - 2
template/admin/src/components/upGrade/index.vue

@@ -17,8 +17,8 @@
         <p>更多惊喜内容等你来探索,快来看看吧~</p>
       </div>
       <div slot="footer" class="footer">
-        <Button class="cancel" shape="circle" @click="upgrade = false">暂不升级</Button>
-        <Button shape="circle" type="primary" @click="upgradeNow()">立即升级</Button>
+        <el-button class="cancel" shape="circle" @click="upgrade = false">暂不升级</el-button>
+        <el-button shape="circle" type="primary" @click="upgradeNow()">立即升级</el-button>
       </div>
     </Modal>
   </div>

+ 27 - 24
template/admin/src/components/uploadPictures/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="Modal">
-    <Row class="colLeft">
-      <Col :xl="6" :lg="6" :md="6" :sm="6" :xs="24" class="colLeft">
+    <el-row class="colLeft">
+      <el-col :xl="6" :lg="6" :md="6" :sm="6" :xs="24" class="colLeft">
         <div class="Nav">
           <div class="input">
-            <Input
+            <el-input
               search
               enter-button
               placeholder="请输入分类名称"
@@ -21,18 +21,18 @@
             </div>
           </div>
         </div>
-      </Col>
-      <Col :xl="18" :lg="18" :md="18" :sm="18" :xs="24" class="colLeft">
+      </el-col>
+      <el-col :xl="18" :lg="18" :md="18" :sm="18" :xs="24" class="colLeft">
         <div class="conter">
           <div class="bnt acea-row row-middle">
-            <Col span="24">
-              <Button
+            <el-col :span="24">
+              <el-button
                 type="primary"
                 :disabled="checkPicList.length === 0"
                 @click="checkPics"
                 class="mr10"
                 v-if="isShow !== 0"
-                >使用选中图片</Button
+                >使用选中图片</el-button
               >
               <Upload
                 :show-upload-list="false"
@@ -46,11 +46,15 @@
                 :on-success="handleSuccess"
                 style="margin-top: 1px; display: inline-block"
               >
-                <Button type="primary">上传图片</Button>
+                <el-button type="primary">上传图片</el-button>
               </Upload>
-              <!--<Button type="success" @click.stop="add" class="mr10">添加分类</Button>-->
-              <Button type="error" class="mr10" :disabled="checkPicList.length === 0" @click.stop="editPicList('图片')"
-                >删除图片</Button
+              <!--<el-button type="success" @click.stop="add" class="mr10">添加分类</el-button>-->
+              <el-button
+                type="error"
+                class="mr10"
+                :disabled="checkPicList.length === 0"
+                @click.stop="editPicList('图片')"
+                >删除图片</el-button
               >
               <i-select :value="pids" placeholder="图片移动至" style="width: 250px" class="treeSel">
                 <i-option v-for="(item, index) of list" :value="item.value" :key="index" style="display: none">
@@ -64,10 +68,10 @@
                   class="treeBox"
                 ></Tree>
               </i-select>
-            </Col>
+            </el-col>
           </div>
           <div class="pictrueList acea-row">
-            <Row :gutter="24" class="conter">
+            <el-row :gutter="24" class="conter">
               <div v-show="isShowPic" class="imagesNo">
                 <Icon type="ios-images" size="60" color="#dbdbdb" />
                 <span class="imagesNo_sp">图片库为空</span>
@@ -98,13 +102,13 @@
                     <p style="width: 80%" v-if="!item.isEdit">
                       {{ item.editName }}
                     </p>
-                    <Input
+                    <el-input
                       size="small"
                       style="width: 80%"
                       type="text"
                       v-model="item.real_name"
                       v-else
-                      @on-blur="bindTxt(item)"
+                      @blur="bindTxt(item)"
                     />
                     <span
                       class="iconfont iconbianji1"
@@ -117,21 +121,21 @@
                   </div>
                 </div>
               </div>
-              <!--<Col class="mb20" v-bind="gridPic"-->
+              <!--<el-col class="mb20" v-bind="gridPic"-->
               <!--v-for="(item, index) in pictrueList" :key="index" >-->
               <!--<div class="pictrueList_pic">-->
               <!--<img :class="item.isSelect ? 'on': '' " v-lazy="item.satt_dir"-->
               <!--@click.stop="changImage(item, index, pictrueList)"/>-->
               <!--</div>-->
-              <!--</Col>-->
-            </Row>
+              <!--</el-col>-->
+            </el-row>
           </div>
           <div class="footer acea-row row-right">
-            <Page :total="total" show-elevator show-total @on-change="pageChange" :page-size="fileData.limit" />
+            <pagination v-if="total" :total="total" :page.sync="fileData.page" :limit.sync="fileData.limit" @pagination="pageChange" />
           </div>
         </div>
-      </Col>
-    </Row>
+      </el-col>
+    </el-row>
   </div>
 </template>
 
@@ -648,8 +652,7 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.fileData.page = index;
+    pageChange() {
       this.getFileList();
       this.checkPicList = [];
     },

+ 5 - 5
template/admin/src/components/uploadVideo/index.vue

@@ -1,15 +1,15 @@
 <template>
   <div>
     <div class="mt20 ml20">
-      <Input class="perW35" v-model="videoLink" placeholder="请输入视频链接" />
+      <el-input class="perW35" v-model="videoLink" placeholder="请输入视频链接" />
       <input type="file" ref="refid" style="display: none" @change="zh_uploadFile_change" />
-      <Button
+      <el-button
         v-if="upload_type !== '1' || videoLink"
         type="primary"
         icon="ios-cloud-upload-outline"
         class="ml10"
         @click="zh_uploadFile"
-        >{{ videoLink ? '确认添加' : '上传视频' }}</Button
+        >{{ videoLink ? '确认添加' : '上传视频' }}</el-button
       >
       <Upload
         v-if="upload_type === '1' && !videoLink"
@@ -22,7 +22,7 @@
         :multiple="true"
         style="display: inline-block"
       >
-        <Button type="primary" icon="ios-cloud-upload-outline">上传视频</Button>
+        <el-button type="primary" icon="ios-cloud-upload-outline">上传视频</el-button>
       </Upload>
       <Progress :percent="progress" :stroke-width="5" v-if="upload.videoIng" />
       <div class="iview-video-style" v-if="formValidate.video_link">
@@ -38,7 +38,7 @@
       </div>
     </div>
     <div class="mt50 ml20">
-      <Button type="primary" @click="uploads">确认</Button>
+      <el-button type="primary" @click="uploads">确认</el-button>
     </div>
   </div>
 </template>

+ 5 - 5
template/admin/src/components/uploadVideo2/index.vue

@@ -1,15 +1,15 @@
 <template>
   <div>
     <div class="mt20 ml20">
-      <Input class="perW35" v-model="videoLink" placeholder="请输入视频链接" />
+      <el-input class="perW35" v-model="videoLink" placeholder="请输入视频链接" />
       <input type="file" ref="refid" style="display: none" @change="zh_uploadFile_change" />
-      <Button
+      <el-button
         v-if="upload_type !== '1' || videoLink"
         type="primary"
         icon="ios-cloud-upload-outline"
         class="ml10"
         @click="zh_uploadFile"
-        >{{ videoLink ? '确认添加' : '上传视频' }}</Button
+        >{{ videoLink ? '确认添加' : '上传视频' }}</el-button
       >
       <Upload
         v-if="upload_type === '1' && !videoLink"
@@ -22,7 +22,7 @@
         :multiple="true"
         style="display: inline-block"
       >
-        <Button type="primary" icon="ios-cloud-upload-outline">上传视频</Button>
+        <el-button type="primary" icon="ios-cloud-upload-outline">上传视频</el-button>
       </Upload>
       <Progress :percent="progress" :stroke-width="5" v-if="upload.videoIng" />
       <div class="iview-video-style" v-if="formValidate.video_link">
@@ -38,7 +38,7 @@
       </div>
     </div>
     <div class="mt50 ml20">
-      <Button type="primary" @click="uploads">确认</Button>
+      <el-button type="primary" @click="uploads">确认</el-button>
     </div>
   </div>
 </template>

+ 2 - 2
template/admin/src/components/userLabel.vue

@@ -17,8 +17,8 @@
     </div>
 
     <div class="footer">
-      <Button type="primary" class="btns" @click="subBtn">确定</Button>
-      <Button type="primary" class="btns" ghost @click="cancel">取消</Button>
+      <el-button type="primary" class="btns" @click="subBtn">确定</el-button>
+      <el-button type="primary" class="btns" ghost @click="cancel">取消</el-button>
     </div>
   </div>
 </template>

+ 1 - 1
template/admin/src/components/wangEditor/index.vue

@@ -4,7 +4,7 @@
       <div ref="wang-editor" class="wang-editor" />
     </div>
     <div v-if="monacoBox">
-      <Button type="primary" class="bottom" @click="getHtmlint">可视化界面</Button>
+      <el-button type="primary" class="bottom" @click="getHtmlint">可视化界面</el-button>
       <monaco @change="changeValue" :value="newHtml" />
     </div>
 

+ 1 - 1
template/admin/src/components/wangEditor/monaco.vue

@@ -1,6 +1,6 @@
 <template>
   <div ref="code_box" class="text">
-    <Input v-model="content" type="textarea" placeholder="" @on-change="changeContent" />
+    <el-input v-model="content" type="textarea" placeholder="" @change="changeContent" />
   </div>
 </template>
 

+ 8 - 4
template/admin/src/layout/component/columnsAside.vue

@@ -42,8 +42,9 @@
 </template>
 
 <script>
-import { getMenuSider, getHeaderName } from '@/libs/system';
+import { getMenuSider, getHeaderName, findFirstNonNullChildren } from '@/libs/system';
 import Logo from '@/layout/logo/index.vue';
+import { mapState } from 'vuex';
 
 export default {
   name: 'layoutColumnsAside',
@@ -54,7 +55,6 @@ export default {
       liIndex: 0,
       difference: 0,
       routeSplit: [],
-      activePath: '',
     };
   },
   computed: {
@@ -72,6 +72,7 @@ export default {
     routesList() {
       this.$store.state.routesList.routesList;
     },
+    ...mapState('menu', ['activePath']),
   },
   beforeDestroy() {
     this.bus.$off('routesListChange');
@@ -93,8 +94,11 @@ export default {
     // 菜单高亮点击事件
     onColumnsAsideMenuClick(v) {
       let { path, redirect } = v;
-      if (path) this.$router.push(path);
-      else this.$router.push(path);
+      if (v.children) {
+        this.$router.push(findFirstNonNullChildren(v.children).path);
+      } else {
+        this.$router.push(path);
+      }
       // 一个路由设置自动收起菜单
       if (!v.children || v.children.length <= 1) this.$store.state.themeConfig.themeConfig.isCollapse = true;
       else if (v.children.length > 1) this.$store.state.themeConfig.themeConfig.isCollapse = false;

+ 6 - 3
template/admin/src/layout/component/transverseAside.vue

@@ -41,7 +41,7 @@
 </template>
 
 <script>
-import { getMenuSider, getHeaderName } from '@/libs/system';
+import { getMenuSider, getHeaderName, findFirstNonNullChildren } from '@/libs/system';
 import Logo from '@/layout/logo/index.vue';
 
 export default {
@@ -109,8 +109,11 @@ export default {
     // 菜单高亮点击事件
     onColumnsAsideMenuClick(v) {
       let { path, redirect } = v;
-      if (path) this.$router.push(path);
-      else this.$router.push(path);
+      if (v.children) {
+        this.$router.push(findFirstNonNullChildren(v.children).path);
+      } else {
+        this.$router.push(path);
+      }
       // 一个路由设置自动收起菜单
       if (!v.children || v.children.length <= 1) this.$store.state.themeConfig.themeConfig.isCollapse = true;
       else if (v.children.length > 1) this.$store.state.themeConfig.themeConfig.isCollapse = false;

+ 16 - 18
template/admin/src/layout/navBars/breadcrumb/setings.vue

@@ -116,7 +116,7 @@
         <div class="layout-breadcrumb-seting-bar-flex mt15">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.fourIsDark') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
-            <el-switch v-model="getThemeConfig.isIsDark" :width="35" @change="onAddDarkChange"></el-switch>
+            <el-switch  v-model="getThemeConfig.isIsDark" :width="35" @change="onAddDarkChange"> </el-switch>
           </div>
         </div> -->
 
@@ -147,19 +147,19 @@
         <div class="layout-breadcrumb-seting-bar-flex">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.threeIsCollapse') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
-            <el-switch v-model="getThemeConfig.isCollapse" :width="35" @change="setLocalThemeConfig"></el-switch>
+            <el-switch v-model="getThemeConfig.isCollapse" :width="35" @change="setLocalThemeConfig"> </el-switch>
           </div>
         </div>
         <div class="layout-breadcrumb-seting-bar-flex mt15">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.threeIsUniqueOpened') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
-            <el-switch v-model="getThemeConfig.isUniqueOpened" :width="35" @change="setLocalThemeConfig"></el-switch>
+            <el-switch v-model="getThemeConfig.isUniqueOpened" :width="35" @change="setLocalThemeConfig"> </el-switch>
           </div>
         </div>
         <div class="layout-breadcrumb-seting-bar-flex mt15">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.threeIsFixedHeader') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
-            <el-switch v-model="getThemeConfig.isFixedHeader" :width="35" @change="setLocalThemeConfig"></el-switch>
+            <el-switch v-model="getThemeConfig.isFixedHeader" :width="35" @change="setLocalThemeConfig"> </el-switch>
           </div>
         </div>
 
@@ -168,7 +168,7 @@
         <div class="layout-breadcrumb-seting-bar-flex">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.fourIsShowLogo') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
-            <el-switch v-model="getThemeConfig.isShowLogo" :width="35" @change="setLocalThemeConfig"></el-switch>
+            <el-switch v-model="getThemeConfig.isShowLogo" :width="35" @change="setLocalThemeConfig"> </el-switch>
           </div>
         </div>
         <div
@@ -182,58 +182,56 @@
               :disabled="getThemeConfig.layout === 'classic' || getThemeConfig.layout === 'transverse'"
               :width="35"
               @change="setLocalThemeConfig"
-            ></el-switch>
+            >
+            </el-switch>
           </div>
         </div>
         <div class="layout-breadcrumb-seting-bar-flex mt15">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.fourIsBreadcrumbIcon') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
-            <el-switch v-model="getThemeConfig.isBreadcrumbIcon" :width="35" @change="setLocalThemeConfig"></el-switch>
+            <el-switch v-model="getThemeConfig.isBreadcrumbIcon" :width="35" @change="setLocalThemeConfig"> </el-switch>
           </div>
         </div>
         <div class="layout-breadcrumb-seting-bar-flex mt15">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.fourIsTagsview') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
-            <el-switch v-model="getThemeConfig.isTagsview" :width="35" @change="setLocalThemeConfig"></el-switch>
+            <el-switch v-model="getThemeConfig.isTagsview" :width="35" @change="setLocalThemeConfig"> </el-switch>
           </div>
         </div>
         <!-- <div class="layout-breadcrumb-seting-bar-flex mt15">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.fourIsTagsviewIcon') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
-            <el-switch
+            <el-switch 
               v-model="getThemeConfig.isTagsviewIcon"
               :disabled="!getThemeConfig.isTagsview"
               :width="35"
               @change="setLocalThemeConfig"
-            ></el-switch>
+            > </el-switch>
           </div>
         </div> -->
         <!-- <div class="layout-breadcrumb-seting-bar-flex mt15">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.fourIsCacheTagsView') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
-            <el-switch v-model="getThemeConfig.isCacheTagsView" :width="35" @change="setLocalThemeConfig"></el-switch>
+            <el-switch  v-model="getThemeConfig.isCacheTagsView" :width="35" @change="setLocalThemeConfig"> </el-switch>
           </div>
         </div> -->
         <div class="layout-breadcrumb-seting-bar-flex mt15">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.fourIsFooter') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
-            <el-switch v-model="getThemeConfig.isFooter" :width="35" @change="setLocalThemeConfig"></el-switch>
+            <el-switch v-model="getThemeConfig.isFooter" :width="35" @change="setLocalThemeConfig"> </el-switch>
           </div>
         </div>
         <div class="layout-breadcrumb-seting-bar-flex mt15">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.fourIsGrayscale') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
-            <el-switch
-              v-model="getThemeConfig.isGrayscale"
-              :width="35"
-              @change="onAddFilterChange('grayscale')"
-            ></el-switch>
+            <el-switch v-model="getThemeConfig.isGrayscale" :width="35" @change="onAddFilterChange('grayscale')">
+            </el-switch>
           </div>
         </div>
         <div class="layout-breadcrumb-seting-bar-flex mt15">
           <div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.fourIsInvert') }}</div>
           <div class="layout-breadcrumb-seting-bar-flex-value">
-            <el-switch v-model="getThemeConfig.isInvert" :width="35" @change="onAddFilterChange('invert')"></el-switch>
+            <el-switch v-model="getThemeConfig.isInvert" :width="35" @change="onAddFilterChange('invert')"> </el-switch>
           </div>
         </div>
 

+ 3 - 3
template/admin/src/layout/navBars/breadcrumb/user.vue

@@ -8,12 +8,12 @@
     </div>
 
     <div class="layout-navbars-breadcrumb-user-icon">
-      <el-popover
+      <el-tooltip effect="light"
         placement="bottom"
         trigger="click"
         v-model="isShowUserNewsPopover"
         :width="300"
-        popper-class="el-popover-pupop-user-news"
+        popper-class="el-tooltip-pupop-user-news"
       >
         <el-badge :is-dot="isDot" @click.stop="openNews" slot="reference">
           <i class="el-icon-bell" :title="$t('message.user.title4')"></i>
@@ -21,7 +21,7 @@
         <transition name="el-zoom-in-top">
           <UserNews v-show="isShowUserNewsPopover" @haveNews="initIsDot" />
         </transition>
-      </el-popover>
+      </el-tooltip>
     </div>
     <div class="layout-navbars-breadcrumb-user-icon mr10" @click="onScreenfullClick">
       <i

+ 7 - 3
template/admin/src/main.js

@@ -53,7 +53,7 @@ import 'vue-happy-scroll/docs/happy-scroll.css';
 import VueAwesomeSwiper from 'vue-awesome-swiper';
 // 懒加载
 import VueLazyload from 'vue-lazyload';
-import VXETable from 'vxe-table';
+import VXETable, { t } from 'vxe-table';
 import Viewer from 'v-viewer';
 import VueDND from 'awe-dnd';
 import formCreate from '@form-create/iview';
@@ -70,7 +70,9 @@ import timeOptions from '@/libs/timeOptions';
 import scroll from '@/libs/loading';
 import * as tools from '@/libs/tools';
 import VueTreeList from 'vue-tree-list';
-
+import Pagination from "@/components/Pagination";
+// 全局组件挂载
+Vue.component('Pagination', Pagination)
 // 复制到粘贴板插件
 import VueClipboard from 'vue-clipboard2';
 
@@ -187,7 +189,9 @@ new Vue({
   watch: {
     // 监听路由 控制侧边栏显示 标记当前顶栏菜单(如需要)
     $route(to, from) {
-      const onRoutes = to.meta.activeMenu ? to.meta.activeMenu : '';
+      console.log(to);
+      const onRoutes = to.meta.activeMenu ? to.meta.activeMenu : to.meta.path;
+      console.log(onRoutes);
       this.$store.commit('menu/setActivePath', onRoutes);
       if (to.name == 'crud_crud') {
         this.$store.state.menus.oneLvRoutes.map((e) => {

+ 17 - 15
template/admin/src/pages/account/login/index.vue

@@ -13,28 +13,29 @@
             <img :src="login_logo" alt="logo" style="width: 100%; height: 74px" />
           </div>
         </div>
-        <Form ref="formInline" :model="formInline" :rules="ruleInline" @keyup.enter="handleSubmit('formInline')">
-          <FormItem prop="username">
-            <Input
+        <el-form ref="formInline" :model="formInline" :rules="ruleInline" @keyup.enter="handleSubmit('formInline')">
+          <el-form-item prop="username">
+            <el-input
               type="text"
               v-model="formInline.username"
               prefix="ios-contact-outline"
               placeholder="请输入用户名"
               size="large"
             />
-          </FormItem>
-          <FormItem prop="password">
-            <Input
+          </el-form-item>
+          <el-form-item prop="password">
+            <el-input
               type="password"
               v-model="formInline.password"
               prefix="ios-lock-outline"
               placeholder="请输入密码"
               size="large"
+              show-password
             />
-          </FormItem>
-          <!-- <FormItem prop="code">
+          </el-form-item>
+          <!-- <el-form-item prop="code">
             <div class="code">
-              <Input
+              <el-input
                 type="text"
                 v-model="formInline.code"
                 prefix="ios-keypad-outline"
@@ -43,13 +44,13 @@
               />
               <img :src="imgcode" class="pictrue" @click="captchas" />
             </div>
-          </FormItem> -->
-          <FormItem class="pt10">
-            <Button type="primary" long :loading="loading" size="large" @click="handleSubmit('formInline')" class="btn"
-              >登录</Button
+          </el-form-item> -->
+          <el-form-item class="pt10">
+            <el-button type="primary" :loading="loading" size="large" @click="handleSubmit('formInline')" class="btn"
+              >登录</el-button
             >
-          </FormItem>
-        </Form>
+          </el-form-item>
+        </el-form>
       </div>
     </div>
 
@@ -422,6 +423,7 @@ export default {
 }
 
 .btn {
+  width: 100%;
   background: linear-gradient(90deg, rgba(25, 180, 241, 1) 0%, rgba(14, 115, 232, 1) 100%) !important;
 }
 

+ 126 - 79
template/admin/src/pages/agent/agentManage.vue

@@ -1,28 +1,30 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mb-16">
-      <Form
+    <el-card :bordered="false" shadow="never" class="ivu-mb-16">
+      <el-form
         ref="formValidate"
         :model="formValidate"
         :label-width="labelWidth"
         :label-position="labelPosition"
         @submit.native.prevent
       >
-        <Row type="flex" :gutter="24">
-          <Col span="24">
-            <FormItem label="时间选择:">
-              <RadioGroup
+        <el-row :gutter="24">
+          <el-col :span="24">
+            <el-form-item label="时间选择:">
+              <el-radio-group
                 v-model="formValidate.data"
                 type="button"
-                @on-change="selectChange(formValidate.data)"
+                @change="selectChange(formValidate.data)"
                 class="mr"
               >
-                <Radio :label="item.val" v-for="(item, i) in fromList.fromTxt" :key="i">{{ item.text }}</Radio>
-              </RadioGroup>
+                <el-radio-button :label="item.val" v-for="(item, i) in fromList.fromTxt" :key="i">{{
+                  item.text
+                }}</el-radio-button>
+              </el-radio-group>
               <DatePicker
                 :editable="true"
                 :clearable="true"
-                @on-change="onchangeTime"
+                @change="onchangeTime"
                 :value="timeVal"
                 format="yyyy/MM/dd"
                 type="daterange"
@@ -30,79 +32,128 @@
                 placeholder="请选择时间"
                 style="width: 200px"
               ></DatePicker>
-            </FormItem>
-          </Col>
-          <Col v-bind="grid">
-            <FormItem label="搜索:" label-for="status">
-              <Input
+            </el-form-item>
+          </el-col>
+          <el-col v-bind="grid">
+            <el-form-item label="搜索:" label-for="status">
+              <el-input
                 search
                 enter-button
                 placeholder="请输入姓名、电话、UID"
                 v-model="formValidate.nickname"
                 @on-search="userSearchs"
               />
-            </FormItem>
-          </Col>
-          <Col v-bind="grid">
-            <Button v-auth="['export-userAgent']" class="export" icon="ios-share-outline" @click="exports">导出</Button>
-          </Col>
-        </Row>
-      </Form>
-    </Card>
+            </el-form-item>
+          </el-col>
+          <el-col v-bind="grid">
+            <el-button v-auth="['export-userAgent']" class="export" icon="ios-share-outline" @click="exports"
+              >导出</el-button
+            >
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-card>
     <cards-data :cardLists="cardLists" v-if="cardLists.length >= 0"></cards-data>
-    <Card :bordered="false" dis-hover>
-      <Table
+    <el-card :bordered="false" shadow="never">
+      <el-table
         ref="selection"
         :columns="columns"
         :data="tableList"
         class="ivu-mt"
-        :loading="loading"
-        no-data-text="暂无数据"
-        highlight-row
-        no-filtered-data-text="暂无筛选结果"
+        v-loading="loading"
+        empty-text="暂无数据"
+        highlight-current-row
       >
-        <template slot-scope="{ row }" slot="nickname">
-          <div class="name">
-            <div class="item">昵称:{{ row.nickname }}</div>
-            <div class="item">姓名:{{ row.real_name }}</div>
-            <div class="item">电话:{{ row.phone }}</div>
-          </div>
-        </template>
-        <template slot-scope="{ row }" slot="agentLevel">
-          <div>{{ row.agentLevel ? row.agentLevel.name : '--' }}</div>
-        </template>
-        <template slot-scope="{ row, index }" slot="right">
-          <a @click="promoters(row, 'man')">推广人</a>
-          <Divider type="vertical" />
-          <template>
-            <Dropdown @on-click="changeMenu(row, $event, index)" :transfer="true">
-              <a href="javascript:void(0)">
-                更多
-                <Icon type="ios-arrow-down"></Icon>
-              </a>
-              <DropdownMenu slot="list">
-                <DropdownItem name="1">推广订单</DropdownItem>
-                <DropdownItem name="2">推广二维码</DropdownItem>
-                <DropdownItem name="3">修改上级推广人</DropdownItem>
-                <DropdownItem name="4" v-if="row.spread_uid">清除上级推广人</DropdownItem>
-                <DropdownItem name="5">取消推广资格</DropdownItem>
-                <DropdownItem name="6">修改分销等级</DropdownItem>
-              </DropdownMenu>
-            </Dropdown>
+        <el-table-column label="ID" width="80">
+          <template slot-scope="scope">
+            <span>{{ scope.row.uid }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="商品图片" min-width="90">
+          <template slot-scope="scope">
+            <div class="tabBox_img" v-viewer>
+              <img v-lazy="scope.row.headimgurl ? scope.row.headimgurl : require('../../assets/images/moren.jpg')" />
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="用户信息" min-width="120">
+          <template slot-scope="scope">
+            <div class="name">
+              <div class="item">昵称:{{ scope.row.nickname }}</div>
+              <div class="item">姓名:{{ scope.row.real_name }}</div>
+              <div class="item">电话:{{ scope.row.phone }}</div>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="推广用户数量" min-width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.spread_count }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="分销等级" min-width="120">
+          <template slot-scope="scope">
+            <div>{{ scope.row.agentLevel ? scope.row.agentLevel.name : '--' }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="订单数量" min-width="120">
+          <template slot-scope="scope">
+            <div>{{ scope.row.order_count }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="订单金额" min-width="120">
+          <template slot-scope="scope">
+            <div>{{ scope.row.order_price }}</div>
           </template>
-        </template>
-      </Table>
+        </el-table-column>
+        <el-table-column label="佣金总金额" min-width="120">
+          <template slot-scope="scope">
+            <div>{{ scope.row.brokerage_money }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="已提现金额" min-width="120">
+          <template slot-scope="scope">
+            <div>{{ scope.row.extract_count_price }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="提现次数" min-width="120">
+          <template slot-scope="scope">
+            <div>{{ scope.row.extract_count_num }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="未提现金额" min-width="120">
+          <template slot-scope="scope">
+            <div>{{ scope.row.new_money }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="上级推广人" min-width="120">
+          <template slot-scope="scope">
+            <div>{{ scope.row.spread_name }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right" width="170">
+          <template slot-scope="scope">
+            <a @click="promoters(scope.row, 'man')">推广人</a>
+            <el-divider direction="vertical"></el-divider>
+            <template>
+              <el-dropdown size="small" @command="changeMenu(scope.row, $event, index)" :transfer="true">
+                <span class="el-dropdown-link">更多<i class="el-icon-arrow-down el-icon--right"></i> </span>
+                <el-dropdown-menu slot="dropdown">
+                  <el-dropdown-item command="1">推广订单</el-dropdown-item>
+                  <el-dropdown-item command="2">推广二维码</el-dropdown-item>
+                  <el-dropdown-item command="3">修改上级推广人</el-dropdown-item>
+                  <el-dropdown-item command="4" v-if="scope.row.spread_uid">清除上级推广人</el-dropdown-item>
+                  <el-dropdown-item command="5">取消推广资格</el-dropdown-item>
+                  <el-dropdown-item command="6">修改分销等级</el-dropdown-item>
+                </el-dropdown-menu>
+              </el-dropdown>
+            </template>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page
-          :total="total"
-          :current="formValidate.page"
-          show-elevator
-          show-total
-          @on-change="pageChange"
-          :page-size="formValidate.limit"
-        />
+        <pagination v-if="total" :total="total" :page.sync="formValidate.page" :limit.sync="formValidate.limit" @pagination="getList" />
       </div>
-    </Card>
+    </el-card>
     <!-- 推广人列表-->
     <promoters-list ref="promotersLists"></promoters-list>
     <!-- 推广二维码-->
@@ -125,8 +176,8 @@
     </Modal>
     <!--修改推广人-->
     <Modal v-model="promoterShow" scrollable title="修改推广人" class="order_box" :closable="false">
-      <Form ref="formInline" :model="formInline" :label-width="100" @submit.native.prevent>
-        <FormItem label="用户头像:" prop="image">
+      <el-form ref="formInline" :model="formInline" label-width="100px" @submit.native.prevent>
+        <el-form-item label="用户头像:" prop="image">
           <div class="picBox" @click="customer">
             <div class="pictrue" v-if="formInline.image">
               <img v-lazy="formInline.image" />
@@ -135,11 +186,11 @@
               <Icon type="ios-camera-outline" size="26" />
             </div>
           </div>
-        </FormItem>
-      </Form>
+        </el-form-item>
+      </el-form>
       <div slot="footer">
-        <Button type="primary" @click="putSend('formInline')">提交</Button>
-        <Button @click="cancel('formInline')">取消</Button>
+        <el-button type="primary" @click="putSend('formInline')">提交</el-button>
+        <el-button @click="cancel('formInline')">取消</el-button>
       </div>
     </Modal>
     <Modal v-model="customerShow" scrollable title="请选择商城用户" :closable="false" width="50%">
@@ -318,7 +369,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 80;
+      return this.isMobile ? undefined : '85px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';
@@ -499,10 +550,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
     // 表格搜索
     userSearchs() {
       this.formValidate.page = 1;

+ 110 - 136
template/admin/src/pages/agent/handle/promotersList.vue

@@ -11,7 +11,7 @@
       @on-cancel="onCancel"
     >
       <div class="table_box">
-        <Form
+        <el-form
           ref="formValidate"
           :model="formValidate"
           :label-width="labelWidth"
@@ -19,20 +19,22 @@
           class="tabform"
           @submit.native.prevent
         >
-          <Row :gutter="24" type="flex" justify="end">
-            <Col span="24" class="ivu-text-left">
-              <FormItem label="时间选择:">
-                <RadioGroup
+          <el-row :gutter="24" justify="end">
+            <el-col :span="24" class="ivu-text-left">
+              <el-form-item label="时间选择:">
+                <el-radio-group
                   v-model="formValidate.data"
                   type="button"
-                  @on-change="selectChange(formValidate.data)"
+                  @change="selectChange(formValidate.data)"
                   class="mr"
                 >
-                  <Radio :label="item.val" v-for="(item, i) in fromList.fromTxt" :key="i">{{ item.text }}</Radio>
-                </RadioGroup>
+                  <el-radio-button :label="item.val" v-for="(item, i) in fromList.fromTxt" :key="i">{{
+                    item.text
+                  }}</el-radio-button>
+                </el-radio-group>
                 <DatePicker
                   :editable="false"
-                  @on-change="onchangeTime"
+                  @change="onchangeTime"
                   :value="timeVal"
                   format="yyyy/MM/dd"
                   type="daterange"
@@ -40,66 +42,129 @@
                   placeholder="请选择时间"
                   style="width: 200px"
                 ></DatePicker>
-              </FormItem>
-            </Col>
-            <Col span="24" class="ivu-text-left">
-              <Col :xl="15" :lg="15" :md="20" :sm="24" :xs="24">
-                <FormItem label="用户类型:">
-                  <RadioGroup v-model="formValidate.type" type="button" @on-change="userSearchs" class="mr">
-                    <Radio
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" class="ivu-text-left">
+              <el-col :xl="15" :lg="15" :md="20" :sm="24" :xs="24">
+                <el-form-item label="用户类型:">
+                  <el-radio-group v-model="formValidate.type" type="button" @change="userSearchs" class="mr">
+                    <el-radio-button
                       :label="item.val"
                       v-for="(item, i) in listTitle === 'man' ? fromList.fromTxt2 : fromList.fromTxt3"
                       :key="i"
                     >
                       {{ item.text }}
-                    </Radio>
-                  </RadioGroup>
-                </FormItem>
-              </Col>
-              <Col :xl="15" :lg="15" :md="20" :sm="24" :xs="24" v-if="listTitle === 'man'">
-                <FormItem label="搜索:">
-                  <Input
+                    </el-radio-button>
+                  </el-radio-group>
+                </el-form-item>
+              </el-col>
+              <el-col :xl="15" :lg="15" :md="20" :sm="24" :xs="24" v-if="listTitle === 'man'">
+                <el-form-item label="搜索:">
+                  <el-input
                     search
                     enter-button
                     placeholder="请输入请姓名、电话、UID"
                     v-model="formValidate.nickname"
                     style="width: 90%"
                     @on-search="userSearchs"
-                  ></Input>
-                </FormItem>
-              </Col>
-              <Col :xl="15" :lg="15" :md="20" :sm="24" :xs="24" v-if="listTitle === 'order'">
-                <FormItem label="订单号:">
-                  <Input
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :xl="15" :lg="15" :md="20" :sm="24" :xs="24" v-if="listTitle === 'order'">
+                <el-form-item label="订单号:">
+                  <el-input
                     search
                     enter-button
                     placeholder="请输入请订单号"
                     v-model="formValidate.order_id"
                     style="width: 90%"
                     @on-search="userSearchs"
-                  ></Input>
-                </FormItem>
-              </Col>
-            </Col>
-          </Row>
-        </Form>
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+            </el-col>
+          </el-row>
+        </el-form>
       </div>
-      <Table
+      <el-table
         ref="selection"
         :columns="columns4"
         :data="tabList"
         :loading="loading"
-        no-data-text="暂无数据"
-        highlight-row
+        empty-text="暂无数据"
+        highlight-current-row
         max-height="400"
-        no-filtered-data-text="暂无筛选结果"
       >
-        <template slot-scope="{ row, index }" slot="add_time">
-          <div>{{ row.spread_time | formatDate }}</div>
+        <template v-if="listTitle === 'man'">
+          <el-table-column label="UID" width="80">
+            <template slot-scope="scope">
+              <span>{{ scope.row.uid }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="头像" min-width="90">
+            <template slot-scope="scope">
+              <div class="tabBox_img" v-viewer>
+                <img v-lazy="scope.row.avatar ? scope.row.avatar : require('../../../assets/images/moren.jpg')" />
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="用户信息" min-width="130">
+            <template slot-scope="scope">
+              <span>{{ scope.row.nickname }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="是否推广员" min-width="130">
+            <template slot-scope="scope">
+              <span>{{ scope.row.promoter_name }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="推广人数" min-width="130">
+            <template slot-scope="scope">
+              <span>{{ scope.row.spread_count }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="订单数" min-width="130">
+            <template slot-scope="scope">
+              <span>{{ scope.row.order_count }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="绑定时间" min-width="130">
+            <template slot-scope="scope">
+              <span>{{ scope.row.spread_time | formatDate }}</span>
+            </template>
+          </el-table-column>
         </template>
-      </Table>
+        <template v-else>
+          <el-table-column label="订单ID" min-width="130">
+            <template slot-scope="scope">
+              <span>{{ scope.row.order_id }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="用户信息" min-width="130">
+            <template slot-scope="scope">
+              <span>{{ scope.row.user_info }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="时间" min-width="130">
+            <template slot-scope="scope">
+              <span>{{ scope.row._add_time }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="返佣金额" min-width="130">
+            <template slot-scope="scope">
+              <span>{{ scope.row.brokerage_price || 0 }}</span>
+            </template>
+          </el-table-column>
+        </template>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page :total="total" show-elevator show-total @on-change="pageChange" :page-size="formValidate.limit" />
+        <pagination
+          v-if="total"
+          :total="total"
+          :page.sync="formValidate.page"
+          :limit.sync="formValidate.limit"
+          @pagination="pageChange"
+        />
       </div>
     </Modal>
   </div>
@@ -171,7 +236,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 100;
+      return this.isMobile ? undefined : '100px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';
@@ -218,96 +283,6 @@ export default {
           let data = res.data;
           this.tabList = data.list;
           this.total = data.count;
-          if (this.listTitle === 'man') {
-            this.columns4 = [
-              {
-                title: 'UID',
-                minWidth: 80,
-                key: 'uid',
-              },
-              {
-                title: '头像',
-                key: 'avatar',
-                minWidth: 80,
-                render: (h, params) => {
-                  return h('viewer', [
-                    h(
-                      'div',
-                      {
-                        style: {
-                          width: '36px',
-                          height: '36px',
-                          borderRadius: '4px',
-                          cursor: 'pointer',
-                        },
-                      },
-                      [
-                        h('img', {
-                          attrs: {
-                            src: params.row.avatar ? params.row.avatar : require('../../../assets/images/moren.jpg'),
-                          },
-                          style: {
-                            width: '100%',
-                            height: '100%',
-                          },
-                        }),
-                      ],
-                    ),
-                  ]);
-                },
-              },
-              {
-                title: '用户信息',
-                key: 'nickname',
-                minWidth: 120,
-              },
-              {
-                title: '是否推广员',
-                key: 'promoter_name',
-                minWidth: 100,
-              },
-              {
-                title: '推广人数',
-                key: 'spread_count',
-                sortable: true,
-                minWidth: 90,
-              },
-              {
-                title: '订单数',
-                key: 'order_count',
-                sortable: true,
-                minWidth: 90,
-              },
-              {
-                title: '绑定时间',
-                slot: 'add_time',
-                sortable: true,
-                minWidth: 130,
-              },
-            ];
-          } else {
-            this.columns4 = [
-              {
-                title: '订单ID',
-                key: 'order_id',
-              },
-              {
-                title: '用户信息',
-                key: 'user_info',
-              },
-              {
-                title: '时间',
-                key: '_add_time',
-              },
-              {
-                title: '返佣金额',
-                key: 'brokerage_price',
-                render: (h, params) => {
-                  return h('viewer', [h('span', params.row.brokerage_price || 0)]);
-                },
-              },
-            ];
-          }
           this.loading = false;
         })
         .catch((res) => {
@@ -316,8 +291,7 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
+    pageChange() {
       this.getList(this.rowsList, this.listTitle);
     },
     // 搜索

+ 7 - 7
template/admin/src/pages/app/app/index.vue

@@ -3,7 +3,7 @@
     <div class="i-layout-page-header header-title">
       <span class="ivu-page-header-title mr20">{{ $route.meta.title }}</span>
       <div style="float: right">
-        <Button class="bnt" type="primary" @click="onsubmit('formValidate')">保存</Button>
+        <el-button class="bnt" type="primary" @click="onsubmit('formValidate')">保存</el-button>
       </div>
     </div>
     <div class="box-wrapper">
@@ -22,13 +22,13 @@
       </div>
       <div style="margin-left: 40px">
         <div class="table_box">
-          <div type="flex">
+          <div >
             <div v-bind="grid">
               <div class="title">隐私权限页面展示:</div>
             </div>
           </div>
           <div>
-            <Form
+            <el-form
               class="form"
               ref="formValidate"
               :model="formValidate"
@@ -37,14 +37,14 @@
               @submit.native.prevent
             >
               <div class="goodsTitle acea-row"></div>
-              <FormItem label="" style="margin: 0px">
+              <el-form-item label="" style="margin: 0px">
                 <WangEditor
                   style="width: 90%"
                   :content="formValidate.content"
                   @editorContent="getEditorContent"
                 ></WangEditor>
-              </FormItem>
-            </Form>
+              </el-form-item>
+            </el-form>
           </div>
         </div>
       </div>
@@ -94,7 +94,7 @@ export default {
       };
     },
     labelWidth() {
-      return this.isMobile ? undefined : 120;
+      return this.isMobile ? undefined : '120px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';

+ 9 - 9
template/admin/src/pages/app/routine/download/index.vue

@@ -3,7 +3,7 @@
     <div class="i-layout-page-header header-title">
       <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
     </div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
       <div class="flex-wrapper">
         <!-- :src="iframeUrl" -->
         <div>
@@ -31,17 +31,17 @@
             <div class="content-box">
               <div class="left">小程序码:</div>
               <div class="right">
-                <Button type="primary" @click="downLoadCode(pageData.code)">下载小程序码</Button>
+                <el-button type="primary" @click="downLoadCode(pageData.code)">下载小程序码</el-button>
               </div>
             </div>
             <div class="content-box">
               <div class="left">小程序包:</div>
               <div class="right">
                 <span>是否已开通小程序直播</span>
-                <RadioGroup class="rad" size="large" v-model="is_live">
-                  <Radio :label="0">未开通</Radio>
-                  <Radio :label="1">已开通</Radio>
-                </RadioGroup>
+                <el-radio-group class="rad" size="large" v-model="is_live">
+                  <el-radio :label="0">未开通</el-radio>
+                  <el-radio :label="1">已开通</el-radio>
+                </el-radio-group>
               </div>
             </div>
             <div class="content-box last">
@@ -53,13 +53,13 @@
                   查看如何开通直播功能
                 </div>
 
-                <Button class="mt10" type="primary" @click="downLoad()">下载小程序包</Button>
+                <el-button class="mt10" type="primary" @click="downLoad()">下载小程序包</el-button>
               </div>
             </div>
           </div>
         </div>
       </div>
-    </Card>
+    </el-card>
   </div>
 </template>
 
@@ -107,7 +107,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 80;
+      return this.isMobile ? undefined : '85px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'left';

+ 57 - 33
template/admin/src/pages/app/version/index.vue

@@ -1,42 +1,66 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Row type="flex" class="mb20">
-        <Col span="24">
-          <Button type="primary" icon="md-add" @click="add" class="mr10">发布版本</Button>
-        </Col>
-      </Row>
-      <Table
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-row class="mb20">
+        <el-col :span="24">
+          <el-button type="primary" icon="md-add" @click="add" class="mr10">发布版本</el-button>
+        </el-col>
+      </el-row>
+      <el-table
         :columns="columns1"
         :data="tableList"
-        :loading="loading"
-        highlight-row
+        v-loading="loading"
+        highlight-current-row
         no-userFrom-text="暂无数据"
         no-filtered-userFrom-text="暂无筛选结果"
       >
-        <template slot-scope="{ row }" slot="version">
-          <Poptip v-if="row.is_new" trigger="hover" placement="top-start" content="当前为最新线上版本!">
-            <Icon size="16" type="ios-bookmark" color="red" style="margin-right: 10px" />
-          </Poptip>
-          <Icon v-else size="16" type="ios-bookmark" color="white" style="margin-right: 10px" />
-          <span>{{ row.version }} </span>
-        </template>
-        <template slot-scope="{ row }" slot="platform">
-          <span>{{ row.platform === 1 ? '安卓' : '苹果' }}</span>
-        </template>
-        <template slot-scope="{ row }" slot="is_force">
-          <span>{{ row.is_force === 1 ? '强制' : '非强制' }}</span>
-        </template>
-        <template slot-scope="{ row, index }" slot="action">
-          <a @click="edit(row)">编辑</a>
-          <!-- <Divider type="vertical" /> -->
-          <!-- <a @click="del(row, '删除版本', index)">删除</a> -->
-        </template>
-      </Table>
-      <div class="acea-row row-right page">
-        <Page :total="total" show-elevator show-total @on-change="pageChange" :page-size="tableFrom.limit" />
-      </div>
-    </Card>
+        <el-table-column label="版本号" width="80">
+          <template slot-scope="scope">
+            <el-tooltip
+              effect="light"
+              v-if="scope.row.is_new"
+              trigger="hover"
+              placement="top-start"
+              content="当前为最新线上版本!"
+            >
+              <Icon size="16" type="ios-bookmark" color="red" style="margin-right: 10px" />
+            </el-tooltip>
+          </template>
+        </el-table-column>
+        <el-table-column label="平台类型" min-width="90">
+          <template slot-scope="scope">
+            <div class="tabBox_img" v-viewer>
+              <span>{{ scope.row.platform === 1 ? '安卓' : '苹果' }}</span>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="升级信息" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.info }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="是否强制" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.is_force === 1 ? '强制' : '非强制' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="发布日期" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.add_time }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="下载地址" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.url }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right" width="60">
+          <template slot-scope="scope">
+            <a @click="edit(scope.row)">编辑</a>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
   </div>
 </template>
 
@@ -49,7 +73,7 @@ export default {
     ...mapState('media', ['isMobile']),
     ...mapState('userLevel', ['categoryId']),
     labelWidth() {
-      return this.isMobile ? undefined : 80;
+      return this.isMobile ? undefined : '85px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'left';

+ 53 - 53
template/admin/src/pages/app/wechat/menus/index.vue

@@ -3,13 +3,13 @@
     <div class="i-layout-page-header header-title">
       <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
     </div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
       <!-- 公众号设置 -->
-      <Row :gutter="24" type="flex">
-        <Col span="24" class="ml40">
+      <el-row :gutter="24" >
+        <el-col :span="24" class="ml40">
           <!-- 预览功能 -->
-          <Col :span="24">
-            <Col :xl="7" :lg="7" :md="22" :sm="22" :xs="22" class="left mb15">
+          <el-col ::span="24">
+            <el-col :xl="7" :lg="7" :md="22" :sm="22" :xs="22" class="left mb15">
               <img class="top" src="../../../../assets/images/mobilehead.png" />
               <img class="bottom" src="@/assets/images/mobilefoot.png" />
               <div style="background: #f4f5f9; min-height: 438px; position: absolute; top: 63px; width: 320px"></div>
@@ -38,71 +38,71 @@
                   <div class="text" @click="addtext"><Icon type="ios-add" /></div>
                 </div>
               </div>
-            </Col>
-            <Col :xl="11" :lg="12" :md="22" :sm="22" :xs="22">
-              <Tabs value="name1" v-if="checkedMenuId !== null">
-                <TabPane label="菜单信息" name="name1">
-                  <Col span="24" class="userAlert">
+            </el-col>
+            <el-col :xl="11" :lg="12" :md="22" :sm="22" :xs="22">
+              <el-tabs value="name1" v-if="checkedMenuId !== null">
+                <el-tab-pane label="菜单信息" name="name1">
+                  <el-col :span="24" class="userAlert">
                     <div class="box-card right">
                       <Alert show-icon closable class="spwidth"> 已添加子菜单,仅可设置菜单名称</Alert>
-                      <Form
+                      <el-form
                         ref="formValidate"
                         :model="formValidate"
                         :rules="ruleValidate"
-                        :label-width="100"
+                        label-width="100px"
                         class="mt20"
                       >
-                        <FormItem label="菜单名称" prop="name">
-                          <Input v-model="formValidate.name" placeholder="请填写菜单名称" class="spwidth"></Input>
-                        </FormItem>
-                        <FormItem label="规则状态" prop="type">
-                          <Select v-model="formValidate.type" placeholder="请选择规则状态" class="spwidth">
-                            <Option value="click">关键字</Option>
-                            <Option value="view">跳转网页</Option>
-                            <Option value="miniprogram">小程序</Option>
-                          </Select>
-                        </FormItem>
+                        <el-form-item label="菜单名称" prop="name">
+                          <el-input v-model="formValidate.name" placeholder="请填写菜单名称" class="spwidth"></el-input>
+                        </el-form-item>
+                        <el-form-item label="规则状态" prop="type">
+                          <el-select v-model="formValidate.type" placeholder="请选择规则状态" class="spwidth">
+                            <el-option value="click" label="关键字"></el-option>
+                            <el-option value="view" label="跳转网页"></el-option>
+                            <el-option value="miniprogram" label="小程序"></el-option>
+                          </el-select>
+                        </el-form-item>
                         <div v-if="formValidate.type === 'click'">
-                          <FormItem label="关键字" prop="key">
-                            <Input v-model="formValidate.key" placeholder="请填写关键字" class="spwidth"></Input>
-                          </FormItem>
+                          <el-form-item label="关键字" prop="key">
+                            <el-input v-model="formValidate.key" placeholder="请填写关键字" class="spwidth"></el-input>
+                          </el-form-item>
                         </div>
                         <div v-if="formValidate.type === 'miniprogram'">
-                          <FormItem label="appid" prop="appid">
-                            <Input v-model="formValidate.appid" placeholder="请填写appid" class="spwidth"></Input>
-                          </FormItem>
-                          <FormItem label="小程序路径" prop="pagepath">
-                            <Input
+                          <el-form-item label="appid" prop="appid">
+                            <el-input v-model="formValidate.appid" placeholder="请填写appid" class="spwidth"></el-input>
+                          </el-form-item>
+                          <el-form-item label="小程序路径" prop="pagepath">
+                            <el-input
                               v-model="formValidate.pagepath"
                               placeholder="请填写小程序路径"
                               class="spwidth"
-                            ></Input>
-                          </FormItem>
-                          <FormItem label="备用网页" prop="url">
-                            <Input v-model="formValidate.url" placeholder="请填写备用网页" class="spwidth"></Input>
-                          </FormItem>
+                            ></el-input>
+                          </el-form-item>
+                          <el-form-item label="备用网页" prop="url">
+                            <el-input v-model="formValidate.url" placeholder="请填写备用网页" class="spwidth"></el-input>
+                          </el-form-item>
                         </div>
                         <div v-if="formValidate.type === 'view'">
-                          <FormItem label="跳转地址" prop="url">
-                            <Input v-model="formValidate.url" placeholder="请填写跳转地址" class="spwidth"></Input>
-                          </FormItem>
+                          <el-form-item label="跳转地址" prop="url">
+                            <el-input v-model="formValidate.url" placeholder="请填写跳转地址" class="spwidth"></el-input>
+                          </el-form-item>
                         </div>
-                      </Form>
+                      </el-form>
                     </div>
-                  </Col>
-                </TabPane>
-                <Button size="small" type="error" slot="extra" @click="deltMenus">删除</Button>
-              </Tabs>
-              <Col :span="24" v-if="isTrue">
-                <Button type="primary" style="display: block; margin: 10px auto" @click="submenus('formValidate')"
-                  >保存并发布</Button
+                  </el-col>
+                </el-tab-pane>
+                <el-button size="small" type="error" slot="extra" @click="deltMenus">删除</el-button>
+              </el-tabs>
+              <el-col ::span="24" v-if="isTrue">
+                <el-button type="primary" style="display: block; margin: 10px auto" @click="submenus('formValidate')"
+                  >保存并发布</el-button
                 >
-              </Col>
-            </Col>
-          </Col>
-        </Col>
-      </Row>
-    </Card>
+              </el-col>
+            </el-col>
+          </el-col>
+        </el-col>
+      </el-row>
+    </el-card>
 
     <Modal v-model="modal2" width="360">
       <p slot="header" style="color: #f60; text-align: center">
@@ -113,7 +113,7 @@
         <p>确定删除吗?</p>
       </div>
       <div slot="footer">
-        <Button type="error" size="large" long @click="del">确定</Button>
+        <el-button type="error" size="large" long @click="del">确定</el-button>
       </div>
     </Modal>
   </div>

+ 45 - 45
template/admin/src/pages/app/wechat/newsCategory/save.vue

@@ -3,15 +3,15 @@
     <div class="i-layout-page-header header-title">
       <div class="fl_header">
         <router-link :to="{ path: $routeProStr + '/app/wechat/news_category/index' }"
-          ><Button icon="ios-arrow-back" size="small" type="text" v-show="$route.params.id">返回</Button></router-link
+          ><el-button icon="ios-arrow-back" size="small" type="text" v-show="$route.params.id">返回</el-button></router-link
         >
-        <Divider type="vertical" />
+        <el-divider direction="vertical"></el-divider>
         <span class="ivu-page-header-title mr20" style="padding: 0" v-text="$route.meta.title"></span>
       </div>
     </div>
-    <Card :bordered="false" dis-hover class="save_from ivu-mt">
-      <Row type="flex" :gutter="24">
-        <Col :xl="6" :lg="6" :md="12" :sm="24" :xs="24">
+    <el-card :bordered="false" shadow="never" class="save_from ivu-mt">
+      <el-row  :gutter="24">
+        <el-col :xl="6" :lg="6" :md="12" :sm="24" :xs="24">
           <!--                    v-if="list.length!=0"-->
           <div v-for="(item, i) in list" :key="i">
             <div
@@ -28,7 +28,7 @@
                   backgroundSize: '100% 100%',
                 }"
               >
-                <Button type="error" shape="circle" icon="md-trash" @click="del(i)" v-show="isDel"></Button>
+                <el-button type="error" shape="circle" icon="md-trash" @click="del(i)" v-show="isDel"></el-button>
               </div>
               <span class="news_sp">{{ item.title }}</span>
             </div>
@@ -37,21 +37,21 @@
               <div class="news_cent_img ivu-mr-8">
                 <img :src="item.image_input ? item.image_input : baseImg" />
               </div>
-              <Button type="error" shape="circle" icon="md-trash" @click="del(i)"></Button>
+              <el-button type="error" shape="circle" icon="md-trash" @click="del(i)"></el-button>
             </div>
           </div>
           <!-- <div class="acea-row row-center-wrapper">
-            <Button
+            <el-button
               icon="ios-download-outline"
               class="mt20"
               type="primary"
               @click="handleAdd"
-              >添加图文</Button
+              >添加图文</el-button
             >
           </div> -->
-        </Col>
-        <Col :xl="18" :lg="18" :md="12" :sm="24" :xs="24">
-          <Form
+        </el-col>
+        <el-col :xl="18" :lg="18" :md="12" :sm="24" :xs="24">
+          <el-form
             class="saveForm"
             ref="saveForm"
             :model="saveForm"
@@ -60,24 +60,24 @@
             :label-position="labelPosition"
             @submit.native.prevent
           >
-            <Row :gutter="24" type="flex">
-              <Col span="24" class="ml40">
-                <FormItem label="标题:" prop="title">
-                  <Input style="width: 60%" v-model="saveForm.title" type="text" placeholder="请输入文章标题" />
-                </FormItem>
-              </Col>
-              <Col span="24" class="ml40">
-                <FormItem label="作者:" prop="author">
-                  <Input style="width: 60%" v-model="saveForm.author" type="text" placeholder="请输入作者名称" />
-                </FormItem>
-              </Col>
-              <Col span="24" class="ml40">
-                <FormItem label="摘要:" prop="synopsis">
-                  <Input style="width: 60%" v-model="saveForm.synopsis" type="textarea" placeholder="请输入摘要" />
-                </FormItem>
-              </Col>
-              <Col span="24" class="ml40">
-                <FormItem label="图文封面:" prop="image_input">
+            <el-row :gutter="24" >
+              <el-col :span="24" class="ml40">
+                <el-form-item label="标题:" prop="title">
+                  <el-input style="width: 60%" v-model="saveForm.title" type="text" placeholder="请输入文章标题" />
+                </el-form-item>
+              </el-col>
+              <el-col :span="24" class="ml40">
+                <el-form-item label="作者:" prop="author">
+                  <el-input style="width: 60%" v-model="saveForm.author" type="text" placeholder="请输入作者名称" />
+                </el-form-item>
+              </el-col>
+              <el-col :span="24" class="ml40">
+                <el-form-item label="摘要:" prop="synopsis">
+                  <el-input style="width: 60%" v-model="saveForm.synopsis" type="textarea" placeholder="请输入摘要" />
+                </el-form-item>
+              </el-col>
+              <el-col :span="24" class="ml40">
+                <el-form-item label="图文封面:" prop="image_input">
                   <div class="picBox" @click="modalPicTap('单选')">
                     <div class="pictrue" v-if="saveForm.image_input">
                       <img :src="saveForm.image_input" />
@@ -86,16 +86,16 @@
                       <Icon type="ios-camera-outline" size="26" />
                     </div>
                   </div>
-                </FormItem>
-                <FormItem label="正文:" prop="content">
+                </el-form-item>
+                <el-form-item label="正文:" prop="content">
                   <WangEditor style="width: 90%" :content="content" @editorContent="getEditorContent"></WangEditor>
-                </FormItem>
-              </Col>
-              <Col span="24" class="ml40">
-                <FormItem>
-                  <Button type="primary" class="submission" @click="subFrom('saveForm')">提交</Button>
-                </FormItem>
-              </Col>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24" class="ml40">
+                <el-form-item>
+                  <el-button type="primary" class="submission" @click="subFrom('saveForm')">提交</el-button>
+                </el-form-item>
+              </el-col>
               <Modal
                 v-model="modalPic"
                 width="950px"
@@ -114,11 +114,11 @@
                   v-if="modalPic"
                 ></uploadPictures>
               </Modal>
-            </Row>
-          </Form>
-        </Col>
-      </Row>
-    </Card>
+            </el-row>
+          </el-form>
+        </el-col>
+      </el-row>
+    </el-card>
   </div>
 </template>
 
@@ -219,7 +219,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 120;
+      return this.isMobile ? undefined : '120px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';

+ 48 - 48
template/admin/src/pages/app/wechat/reply/follow.vue

@@ -3,13 +3,13 @@
     <div class="i-layout-page-header header-title">
       <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
     </div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
       <!-- 公众号设置 -->
-      <Row :gutter="24" type="flex">
-        <Col span="24" class="ml40">
+      <el-row :gutter="24" >
+        <el-col :span="24" class="ml40">
           <!-- 预览功能 -->
-          <Col :span="24">
-            <Col :xl="7" :lg="7" :md="22" :sm="22" :xs="22" class="left mb15">
+          <el-col ::span="24">
+            <el-col :xl="7" :lg="7" :md="22" :sm="22" :xs="22" class="left mb15">
               <img class="top" src="../../../../assets/images/mobilehead.png" />
               <img class="bottom" src="../../../../assets/images/mobilefoot.png" />
               <div class="centent">
@@ -39,19 +39,19 @@
                   </div>
                 </div>
               </div>
-            </Col>
-            <Col :xl="11" :lg="12" :md="22" :sm="22" :xs="22">
-              <Col span="24" class="userAlert">
+            </el-col>
+            <el-col :xl="11" :lg="12" :md="22" :sm="22" :xs="22">
+              <el-col :span="24" class="userAlert">
                 <div class="box-card right">
-                  <Form
+                  <el-form
                     ref="formValidate"
                     :model="formValidate"
                     :rules="ruleValidate"
-                    :label-width="100"
+                    label-width="100px"
                     class="mt20"
                     @submit.native.prevent
                   >
-                    <FormItem label="关键字:" prop="val" v-if="$route.params.id">
+                    <el-form-item label="关键字:" prop="val" v-if="$route.params.id">
                       <div class="arrbox">
                         <!--:closable="$route.params.id==='0'? true : false"-->
                         <Tag
@@ -71,45 +71,45 @@
                           @keyup.enter="addlabel"
                         />
                       </div>
-                    </FormItem>
-                    <FormItem label="消息状态:">
-                      <RadioGroup v-model="formValidate.status">
-                        <Radio :label="1">启用</Radio>
-                        <Radio :label="0">禁用</Radio>
-                      </RadioGroup>
-                    </FormItem>
-                    <FormItem label="消息类型:" prop="type">
-                      <Select
+                    </el-form-item>
+                    <el-form-item label="消息状态:">
+                      <el-radio-group v-model="formValidate.status">
+                        <el-radio :label="1">启用</el-radio>
+                        <el-radio :label="0">禁用</el-radio>
+                      </el-radio-group>
+                    </el-form-item>
+                    <el-form-item label="消息类型:" prop="type">
+                      <el-select
                         v-model="formValidate.type"
                         placeholder="请选择规则状态"
                         style="width: 90%"
-                        @on-change="RuleFactor(formValidate.type)"
+                        @change="RuleFactor(formValidate.type)"
                       >
-                        <Option value="text">文字消息</Option>
-                        <Option value="image">图片消息</Option>
-                        <Option value="news">图文消息</Option>
-                        <Option value="voice">声音消息</Option>
-                      </Select>
-                    </FormItem>
-                    <FormItem label="消息内容:" prop="content" v-if="formValidate.type === 'text'">
-                      <Input
+                        <el-option value="text" label="文字消息"></el-option>
+                        <el-option value="image" label="图片消息"></el-option>
+                        <el-option value="news" label="图文消息"></el-option>
+                        <el-option value="voice" label="声音消息"></el-option>
+                      </el-select>
+                    </el-form-item>
+                    <el-form-item label="消息内容:" prop="content" v-if="formValidate.type === 'text'">
+                      <el-input
                         v-model="formValidate.data.content"
                         placeholder="请填写消息内容"
                         style="width: 90%"
                         type="textarea"
                         :rows="4"
-                      ></Input>
-                    </FormItem>
-                    <FormItem label="选取图文:" v-if="formValidate.type === 'news'">
-                      <Button type="info" @click="changePic">选择图文消息</Button>
-                    </FormItem>
-                    <FormItem
+                      ></el-input>
+                    </el-form-item>
+                    <el-form-item label="选取图文:" v-if="formValidate.type === 'news'">
+                      <el-button type="info" @click="changePic">选择图文消息</el-button>
+                    </el-form-item>
+                    <el-form-item
                       :label="formValidate.type === 'image' ? '图片地址:' : '语音地址:'"
                       prop="src"
                       v-if="formValidate.type === 'image' || formValidate.type === 'voice'"
                     >
                       <div class="acea-row row-middle">
-                        <Input
+                        <el-input
                           readonly="readonly"
                           placeholder="default size"
                           style="width: 75%"
@@ -128,25 +128,25 @@
                           class="mr20"
                           style="margin-top: 1px"
                         >
-                          <Button type="primary">上传</Button>
+                          <el-button type="primary">上传</el-button>
                         </Upload>
                       </div>
                       <span v-show="formValidate.type === 'image'">文件最大2Mb,支持bmp/png/jpeg/jpg/gif格式</span>
                       <span v-show="formValidate.type === 'voice'">文件最大2Mb,支持mp3格式,播放长度不超过60s</span>
-                    </FormItem>
-                  </Form>
+                    </el-form-item>
+                  </el-form>
                 </div>
-              </Col>
-              <Col :span="24">
+              </el-col>
+              <el-col ::span="24">
                 <div class="acea-row row-center">
-                  <Button type="primary" class="mr20" @click="submenus('formValidate')">保存并发布 </Button>
+                  <el-button type="primary" class="mr20" @click="submenus('formValidate')">保存并发布 </el-button>
                 </div>
-              </Col>
-            </Col>
-          </Col>
-        </Col>
-      </Row>
-    </Card>
+              </el-col>
+            </el-col>
+          </el-col>
+        </el-col>
+      </el-row>
+    </el-card>
 
     <!--图文消息 -->
     <Modal v-model="modals" scrollable title="发送消息" width="1200" height="800" footer-hide class="modelBox">

+ 1 - 1
template/admin/src/pages/app/wechat/reply/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt"></Card>
+    <el-card :bordered="false" shadow="never" class="ivu-mt"></el-card>
   </div>
 </template>
 

+ 74 - 61
template/admin/src/pages/app/wechat/reply/keyword.vue

@@ -1,90 +1,107 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Form
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-form
         ref="levelFrom"
         :model="formValidate"
         :label-width="labelWidth"
         :label-position="labelPosition"
         @submit.native.prevent
       >
-        <Row type="flex" :gutter="24">
-          <Col v-bind="grid">
-            <FormItem label="回复类型:" prop="type" label-for="type">
-              <Select
+        <el-row :gutter="24">
+          <el-col v-bind="grid">
+            <el-form-item label="回复类型:" prop="type" label-for="type">
+              <el-select
                 v-model="formValidate.type"
                 placeholder="请选择"
                 element-id="type"
                 clearable
-                @on-change="userSearchs"
+                @change="userSearchs"
               >
-                <Option value="text">文字消息</Option>
-                <Option value="image">图片消息</Option>
-                <Option value="news">图文消息</Option>
-                <Option value="voice">声音消息</Option>
-              </Select>
-            </FormItem>
-          </Col>
-          <Col v-bind="grid">
-            <FormItem label="关键字:" prop="key" label-for="key">
-              <Input
+                <el-option value="text" label="文字消息"></el-option>
+                <el-option value="image" label="图片消息"></el-option>
+                <el-option value="news" label="图文消息"></el-option>
+                <el-option value="voice" label="声音消息"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col v-bind="grid">
+            <el-form-item label="关键字:" prop="key" label-for="key">
+              <el-input
                 search
                 enter-button
                 v-model="formValidate.key"
                 placeholder="请输入关键字"
                 @on-search="userSearchs"
               />
-            </FormItem>
-          </Col>
-        </Row>
-        <Row type="flex">
-          <Col v-bind="grid">
-            <Button type="primary" icon="md-add" @click="add">添加关键字</Button>
-          </Col>
-        </Row>
-      </Form>
-      <Table
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col v-bind="grid">
+            <el-button type="primary" icon="md-add" @click="add">添加关键字</el-button>
+          </el-col>
+        </el-row>
+      </el-form>
+      <el-table
         :columns="columns1"
         :data="tabList"
         ref="table"
         class="mt25"
         :loading="loading"
-        highlight-row
+        highlight-current-row
         no-userFrom-text="暂无数据"
         no-filtered-userFrom-text="暂无筛选结果"
       >
-        <template slot-scope="{ row, index }" slot="status">
-          <i-switch
-            v-model="row.status"
-            :value="row.status"
-            :true-value="1"
-            :false-value="0"
-            @on-change="onchangeIsShow(row)"
-            size="large"
-          >
-            <span slot="open">显示</span>
-            <span slot="close">隐藏</span>
-          </i-switch>
-        </template>
-        <template slot-scope="{ row, index }" slot="action">
-          <a @click="edit(row)">编辑</a>
-          <!--<Divider type="vertical" />-->
-          <!--<a @click="download(row)">下载二维码</a>-->
-          <Divider type="vertical" />
-          <a @click="del(row, '关键字回复', index)">删除</a>
-        </template>
-      </Table>
+        <el-table-column label="ID" width="80">
+          <template slot-scope="scope">
+            <span>{{ scope.row.id }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="关键字" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.key }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="回复类型" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.type }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="是否显示" min-width="130">
+          <template slot-scope="scope">
+            <el-switch
+              class="defineSwitch"
+              :active-value="1"
+              :inactive-value="0"
+              v-model="scope.row.status"
+              :value="scope.row.status"
+              @change="onchangeIsShow(scope.row)"
+              size="large"
+              active-text="显示"
+              inactive-text="隐藏"
+            >
+            </el-switch>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right" width="170">
+          <template slot-scope="scope">
+            <a @click="edit(scope.row)">编辑</a>
+            <el-divider direction="vertical"></el-divider>
+            <a @click="del(scope.row, '关键字回复', index)">删除</a>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page
+        <pagination
+          v-if="total"
           :total="total"
-          :current="formValidate.page"
-          show-elevator
-          show-total
-          @on-change="pageChange"
-          :page-size="formValidate.limit"
+          :page.sync="formValidate.page"
+          :limit.sync="formValidate.limit"
+          @pagination="getList"
         />
       </div>
-    </Card>
+    </el-card>
     <Modal v-model="modal" title="二维码" footer-hide>
       <div class="acea-row row-around">
         <div class="acea-row row-column-around row-between-wrapper">
@@ -158,7 +175,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 75;
+      return this.isMobile ? undefined : '75px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';
@@ -180,10 +197,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
     // 修改是否显示
     onchangeIsShow(row) {
       let data = {

+ 85 - 103
template/admin/src/pages/app/wechat/user/handle/sendOut.vue

@@ -10,17 +10,17 @@
     width="950"
     @on-cancel="handleReset"
   >
-    <Form
+    <el-form
       ref="levelFrom"
       :model="levelFrom"
       :label-width="labelWidth"
       :label-position="labelPosition"
       @submit.native.prevent
     >
-      <Row type="flex" :gutter="24">
-        <Col v-bind="grid">
-          <FormItem label="优惠券名称:" prop="status2" label-for="status2">
-            <Input
+      <el-row :gutter="24">
+        <el-col v-bind="grid">
+          <el-form-item label="优惠券名称:" prop="status2" label-for="status2">
+            <el-input
               search
               enter-button
               v-model="levelFrom.name"
@@ -28,61 +28,91 @@
               @on-search="userSearchs"
               style="width: 100%"
             />
-          </FormItem>
-        </Col>
-      </Row>
-    </Form>
-    <Divider dashed />
-    <Row type="flex">
-      <Col v-bind="grid" class="mb15">
-        <Button type="primary" icon="md-add" @click="add">添加等级任务</Button>
-      </Col>
-      <Col span="24" class="userAlert">
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <el-divider direction="vertical" dashed />
+    <el-row>
+      <el-col v-bind="grid" class="mb15">
+        <el-button type="primary" icon="md-add" @click="add">添加等级任务</el-button>
+      </el-col>
+      <el-col :span="24" class="userAlert">
         <Alert show-icon closable>添加等级任务,任务类型中的{$num}会自动替换成限定数量+系统预设的单位生成任务名</Alert>
-      </Col>
-    </Row>
-    <Divider dashed />
-    <Table
-      :columns="columns1"
+      </el-col>
+    </el-row>
+    <el-divider direction="vertical" dashed />
+    <el-table
       :data="levelLists"
       ref="table"
-      :loading="loading"
+      v-loading="loading"
       no-userFrom-text="暂无数据"
       no-filtered-userFrom-text="暂无筛选结果"
     >
-      <template slot-scope="{ row, index }" slot="is_shows">
-        <i-switch
-          v-model="row.is_show"
-          :value="row.is_show"
-          :true-value="1"
-          :false-value="0"
-          size="large"
-          @on-change="onchangeIsShow(row)"
-        >
-          <span slot="open">显示</span>
-          <span slot="close">隐藏</span>
-        </i-switch>
-      </template>
-      <template slot-scope="{ row, index }" slot="is_musts">
-        <i-switch
-          v-model="row.is_must"
-          :value="row.is_must"
-          :true-value="1"
-          :false-value="0"
-          size="large"
-          @on-change="onchangeIsMust(row)"
-        >
-          <span slot="open">全部完成</span>
-          <span slot="close">达成其一</span>
-        </i-switch>
-      </template>
-      <template slot-scope="{ row, index }" slot="action">
-        <a @click="edit(row)">编辑 | </a>
-        <a @click="del(row, '删除等级任务', index)"> 删除</a>
-      </template>
-    </Table>
+      <el-table-column label="ID" width="80">
+        <template slot-scope="scope">
+          <span>{{ scope.row.id }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="等级名称" min-width="100">
+        <template slot-scope="scope">
+          <span>{{ scope.row.level_name }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="任务名称" min-width="100">
+        <template slot-scope="scope">
+          <span>{{ scope.row.name }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="是否显示" min-width="100">
+        <template slot-scope="scope">
+          <el-switch
+            :active-value="1"
+            :inactive-value="0"
+            v-model="scope.row.is_show"
+            :value="scope.row.is_show"
+            size="large"
+            @change="onchangeIsShow(scope.row)"
+          >
+          </el-switch>
+        </template>
+      </el-table-column>
+      <el-table-column label="务必达成" min-width="100">
+        <template slot-scope="scope">
+          <el-switch
+            :active-value="1"
+            :inactive-value="0"
+            v-model="scope.row.is_must"
+            :value="scope.row.is_must"
+            size="large"
+            @change="onchangeIsMust(scope.row)"
+            active-text="全部"
+            inactive-text="其一"
+          >
+          </el-switch>
+        </template>
+      </el-table-column>
+      <el-table-column label="任务说明" min-width="130">
+        <template slot-scope="scope">
+          <span>{{ scope.row.illustrate }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" fixed="right" width="170">
+        <template slot-scope="scope">
+          <a @click="edit(scope.row)">编辑 | </a>
+          <el-divider direction="vertical"></el-divider>
+          <a @click="del(scope.row, '删除等级任务', index)"> 删除</a>
+        </template>
+      </el-table-column>
+    </el-table>
     <div class="acea-row row-right page">
-      <Page :total="total" show-elevator show-total @on-change="pageChange" :page-size="levelFrom.limit" />
+      <pagination
+        v-if="total"
+        :total="total"
+        :page.sync="levelFrom.page"
+        :limit.sync="levelFrom.limit"
+        @pagination="getList"
+      />
     </div>
     <!-- 新建 编辑表单-->
     <edit-from ref="edits" :FromData="FromData" @submitFail="submitFail" :titleType="titleType"></edit-from>
@@ -116,51 +146,7 @@ export default {
       total: 0,
       levelLists: [],
       loading: false,
-      columns1: [
-        {
-          title: 'ID',
-          key: 'id',
-          sortable: true,
-          width: 80,
-        },
-        {
-          title: '等级名称',
-          key: 'level_name',
-          minWidth: 100,
-        },
-        {
-          title: '任务名称',
-          key: 'name',
-          minWidth: 120,
-        },
-        {
-          title: '排序',
-          sort: 'grade',
-          sortable: true,
-          minWidth: 100,
-        },
-        {
-          title: '是否显示',
-          slot: 'is_shows',
-          minWidth: 110,
-        },
-        {
-          title: '务必达成',
-          slot: 'is_musts',
-          minWidth: 135,
-        },
-        {
-          title: '任务说明',
-          key: 'illustrate',
-          minWidth: 120,
-        },
-        {
-          title: '操作',
-          slot: 'action',
-          fixed: 'right',
-          minWidth: 120,
-        },
-      ],
+
       FromData: null,
       ids: 0,
       modalTitleSs: '',
@@ -171,7 +157,7 @@ export default {
     ...mapState('media', ['isMobile']),
     ...mapState('userLevel', ['levelId']),
     labelWidth() {
-      return this.isMobile ? undefined : 75;
+      return this.isMobile ? undefined : '75px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';
@@ -229,10 +215,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.levelFrom.page = index;
-      this.getList();
-    },
     // 修改显示隐藏
     onchangeIsShow(row) {
       let data = {

+ 74 - 83
template/admin/src/pages/app/wechat/user/message.vue

@@ -1,8 +1,8 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
       <div class="table_box">
-        <Form
+        <el-form
           ref="formValidate"
           :model="formValidate"
           :label-width="labelWidth"
@@ -10,20 +10,22 @@
           class="tabform"
           @submit.native.prevent
         >
-          <Row :gutter="24" type="flex" justify="end">
-            <Col span="24" class="ivu-text-left">
-              <FormItem label="时间选择:">
-                <RadioGroup
+          <el-row :gutter="24" justify="end">
+            <el-col :span="24" class="ivu-text-left">
+              <el-form-item label="时间选择:">
+                <el-radio-group
                   v-model="formValidate.data"
                   type="button"
-                  @on-change="selectChange(formValidate.data)"
+                  @change="selectChange(formValidate.data)"
                   class="mr"
                 >
-                  <Radio :label="item.val" v-for="(item, i) in fromList.fromTxt" :key="i">{{ item.text }}</Radio>
-                </RadioGroup>
+                  <el-radio-button :label="item.val" v-for="(item, i) in fromList.fromTxt" :key="i">{{
+                    item.text
+                  }}</el-radio-button>
+                </el-radio-group>
                 <DatePicker
                   :editable="false"
-                  @on-change="onchangeTime"
+                  @change="onchangeTime"
                   :value="timeVal"
                   format="yyyy/MM/dd"
                   type="daterange"
@@ -31,51 +33,71 @@
                   placeholder="请选择时间"
                   style="width: 200px"
                 ></DatePicker>
-              </FormItem>
-            </Col>
-            <Col span="24" class="ivu-text-left">
-              <Col :xl="7" :lg="10" :md="12" :sm="24" :xs="24">
-                <FormItem label="操作名称:">
-                  <Select v-model="formValidate.type" style="width: 90%" clearable>
-                    <Option :value="1">男</Option>
-                    <Option :value="2">女</Option>
-                    <Option :value="0">保密</Option>
-                  </Select>
-                </FormItem>
-              </Col>
-              <Col :xl="7" :lg="10" :md="12" :sm="24" :xs="24">
-                <FormItem label="操作用户:">
-                  <Input placeholder="请输入用户名称" v-model="formValidate.nickname" style="width: 90%"></Input>
-                </FormItem>
-              </Col>
-              <Col :xl="3" :lg="4" :md="12" :sm="24" :xs="24" class="btn_box">
-                <FormItem>
-                  <Button type="primary" icon="ios-search" label="default" class="userSearch" @click="userSearchs"
-                    >搜索</Button
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" class="ivu-text-left">
+              <el-col :xl="7" :lg="10" :md="12" :sm="24" :xs="24">
+                <el-form-item label="操作名称:">
+                  <el-select v-model="formValidate.type" style="width: 90%" clearable>
+                    <el-option :value="1" label="男"></el-option>
+                    <el-option :value="2" label="女"></el-option>
+                    <el-option :value="0" label="保密"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :xl="7" :lg="10" :md="12" :sm="24" :xs="24">
+                <el-form-item label="操作用户:">
+                  <el-input placeholder="请输入用户名称" v-model="formValidate.nickname" style="width: 90%"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :xl="3" :lg="4" :md="12" :sm="24" :xs="24" class="btn_box">
+                <el-form-item>
+                  <el-button type="primary" icon="ios-search" label="default" class="userSearch" @click="userSearchs"
+                    >搜索</el-button
                   >
-                </FormItem>
-              </Col>
-            </Col>
-          </Row>
-        </Form>
+                </el-form-item>
+              </el-col>
+            </el-col>
+          </el-row>
+        </el-form>
       </div>
-      <Table
-        ref="selection"
-        :columns="columns4"
-        :data="tabList"
-        :loading="loading"
-        no-data-text="暂无数据"
-        highlight-row
-        no-filtered-data-text="暂无筛选结果"
-      >
-        <template slot-scope="{ row, index }" slot="add_time">
-          <span> {{ row.add_time ? row.add_time : '' | formatDate }}</span>
-        </template>
-      </Table>
+      <el-table ref="selection" :data="tabList" :loading="loading" empty-text="暂无数据" highlight-current-row>
+        <el-table-column label="ID" width="80">
+          <template slot-scope="scope">
+            <span>{{ scope.row.id }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作用户" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.nickname }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作名称" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.type_name }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="关联内容" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.headimgurl }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作时间" min-width="130">
+          <template slot-scope="scope">
+            <span> {{ scope.row.add_time ? scope.row.add_time : '' | formatDate }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page :total="total" show-elevator show-total @on-change="pageChange" :page-size="formValidate.limit" />
+        <pagination
+          v-if="total"
+          :total="total"
+          :page.sync="formValidate.page"
+          :limit.sync="formValidate.limit"
+          @pagination="getList"
+        />
       </div>
-    </Card>
+    </el-card>
   </div>
 </template>
 
@@ -119,40 +141,13 @@ export default {
       loading: false,
       tabList: [],
       total: 0,
-      columns4: [
-        {
-          title: 'ID',
-          width: 80,
-          key: 'id',
-        },
-        {
-          title: '操作用户',
-          key: 'nickname',
-          minWidth: 120,
-        },
-        {
-          title: '操作名称',
-          key: 'type_name',
-          minWidth: 120,
-        },
-        {
-          title: '关联内容',
-          key: 'headimgurl',
-          minWidth: 150,
-        },
-        {
-          title: '操作时间',
-          slot: 'add_time',
-          minWidth: 150,
-        },
-      ],
     };
   },
   computed: {
     ...mapState('media', ['isMobile']),
     ...mapState('order', ['orderChartType']),
     labelWidth() {
-      return this.isMobile ? undefined : 80;
+      return this.isMobile ? undefined : '85px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';
@@ -190,10 +185,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
     // 搜索
     userSearchs() {
       this.getList();

+ 30 - 36
template/admin/src/pages/app/wechat/user/tag.vue

@@ -1,24 +1,40 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="save_from ivu-mt">
-      <Button type="primary" icon="md-add" @click="add">{{ '添加' + $route.meta.title }}</Button>
-      <Table
-        :columns="columns1"
+    <el-card :bordered="false" shadow="never" class="save_from ivu-mt">
+      <el-button type="primary" icon="md-add" @click="add">{{ '添加' + $route.meta.title }}</el-button>
+      <el-table
         :data="tabList"
         ref="table"
         class="mt25"
-        :loading="loading"
-        highlight-row
+        v-loading="loading"
+        highlight-current-row
         no-userFrom-text="暂无数据"
         no-filtered-userFrom-text="暂无筛选结果"
       >
-        <template slot-scope="{ row, index }" slot="action">
-          <a @click="edit(row)">编辑</a>
-          <Divider type="vertical" />
-          <a @click="del(row, '删除标签', index)">删除</a>
-        </template>
-      </Table>
-    </Card>
+        <el-table-column label="ID" width="80">
+          <template slot-scope="scope">
+            <span>{{ scope.row.id }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="标签名" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.name }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="人数" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.count }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right" width="170">
+          <template slot-scope="scope">
+            <a @click="edit(scope.row)">编辑</a>
+            <el-divider direction="vertical"></el-divider>
+            <a @click="del(scope.row, '删除标签', index)">删除</a>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
   </div>
 </template>
 
@@ -40,29 +56,7 @@ export default {
       FromData: null,
       loading: false,
       tabList: [],
-      columns1: [
-        {
-          title: 'ID',
-          key: 'id',
-          width: 80,
-        },
-        {
-          title: '标签名',
-          key: 'name',
-          minWidth: 200,
-        },
-        {
-          title: '人数',
-          key: 'count',
-          minWidth: 120,
-        },
-        {
-          title: '操作',
-          slot: 'action',
-          fixed: 'right',
-          minWidth: 150,
-        },
-      ],
+     
     };
   },
   watch: {

+ 137 - 153
template/admin/src/pages/app/wechat/user/user.vue

@@ -3,9 +3,9 @@
     <div class="i-layout-page-header header-title">
       <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
     </div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
       <div class="table_box">
-        <Form
+        <el-form
           ref="formValidate"
           :model="formValidate"
           :label-width="labelWidth"
@@ -13,22 +13,22 @@
           class="tabform"
           @submit.native.prevent
         >
-          <Row :gutter="24" type="flex" justify="end">
-            <Col span="24" class="ivu-text-left">
-              <FormItem :label="fromList.title + ':'">
-                <RadioGroup
+          <el-row :gutter="24" justify="end">
+            <el-col :span="24" class="ivu-text-left">
+              <el-form-item :label="fromList.title + ':'">
+                <el-radio-group
                   type="button"
                   v-model="formValidate.data"
                   class="mr15"
-                  @on-change="selectChange(formValidate.data)"
+                  @change="selectChange(formValidate.data)"
                 >
-                  <Radio :label="itemn.val" v-for="(itemn, indexn) in fromList.fromTxt" :key="indexn">
+                  <el-radio-button :label="itemn.val" v-for="(itemn, indexn) in fromList.fromTxt" :key="indexn">
                     {{ itemn.text }}
-                  </Radio>
-                </RadioGroup>
+                  </el-radio-button>
+                </el-radio-group>
                 <DatePicker
                   :editable="false"
-                  @on-change="onchangeTime"
+                  @change="onchangeTime"
                   :value="timeVal"
                   format="yyyy/MM/dd"
                   type="daterange"
@@ -36,115 +36,148 @@
                   placeholder="请选择时间"
                   style="width: 200px"
                 ></DatePicker>
-              </FormItem>
-            </Col>
-            <Col span="24" class="ivu-text-left">
-              <FormItem label="用户分组:">
-                <RadioGroup type="button" v-model="formValidate.groupid">
-                  <Radio :label="item.id" v-for="(item, index) in groupList" :key="index">{{ item.name }}</Radio>
-                </RadioGroup>
-              </FormItem>
-            </Col>
-            <Col span="24" class="ivu-text-left">
-              <FormItem label="用户标签:">
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" class="ivu-text-left">
+              <el-form-item label="用户分组:">
+                <el-radio-group type="button" v-model="formValidate.groupid">
+                  <el-radio-button :label="item.id" v-for="(item, index) in groupList" :key="index">{{
+                    item.name
+                  }}</el-radio-button>
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" class="ivu-text-left">
+              <el-form-item label="用户标签:">
                 <TagSelect v-model="tagidList">
                   <TagSelectOption :name="item.id" v-for="(item, index) in tagList" :key="index">{{
                     item.name
                   }}</TagSelectOption>
                 </TagSelect>
-              </FormItem>
-            </Col>
-            <Col span="24" class="ivu-text-left">
-              <Col :xl="7" :lg="12" :md="12" :sm="24" :xs="24">
-                <FormItem label="用户名称:">
-                  <Input placeholder="请输入用户名称" v-model="formValidate.nickname" class="perW90"></Input>
-                </FormItem>
-              </Col>
-              <Col :xl="7" :lg="12" :md="12" :sm="24" :xs="24" class="sex_box">
-                <FormItem label="性别:">
-                  <Select v-model="formValidate.sex" style="width: 90%" clearable>
-                    <Option value="1">男</Option>
-                    <Option value="2">女</Option>
-                    <Option value="0">保密</Option>
-                  </Select>
-                </FormItem>
-              </Col>
-              <Col :xl="7" :lg="12" :md="12" :sm="24" :xs="24" class="subscribe_box">
-                <FormItem label="是否关注公众号:">
-                  <Select v-model="formValidate.subscribe" style="width: 90%" clearable>
-                    <Option value="1">是</Option>
-                    <Option value="0">否</Option>
-                  </Select>
-                </FormItem>
-              </Col>
-              <Col :xl="3" :lg="3" :md="3" :sm="24" :xs="24" class="btn_box">
-                <FormItem>
-                  <Button type="primary" icon="ios-search" label="default" class="userSearch" @click="userSearchs"
-                    >搜索</Button
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" class="ivu-text-left">
+              <el-col :xl="7" :lg="12" :md="12" :sm="24" :xs="24">
+                <el-form-item label="用户名称:">
+                  <el-input placeholder="请输入用户名称" v-model="formValidate.nickname" class="perW90"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :xl="7" :lg="12" :md="12" :sm="24" :xs="24" class="sex_box">
+                <el-form-item label="性别:">
+                  <el-select v-model="formValidate.sex" style="width: 90%" clearable>
+                    <el-option :value="1" label="男"></el-option>
+                    <el-option :value="2" label="女"></el-option>
+                    <el-option :value="0" label="保密"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :xl="7" :lg="12" :md="12" :sm="24" :xs="24" class="subscribe_box">
+                <el-form-item label="是否关注公众号:">
+                  <el-select v-model="formValidate.subscribe" style="width: 90%" clearable>
+                    <el-option value="1" label="是"></el-option>
+                    <el-option value="0" label="否"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :xl="3" :lg="3" :md="3" :sm="24" :xs="24" class="btn_box">
+                <el-form-item>
+                  <el-button type="primary" icon="ios-search" label="default" class="userSearch" @click="userSearchs"
+                    >搜索</el-button
                   >
-                </FormItem>
-              </Col>
-            </Col>
-            <Divider dashed />
-            <Col span="24">
-              <Button type="primary" class="mr20" @click="onSend">发送优惠券</Button>
-              <Button class="greens mr20" size="default" @click="onSendPic">
+                </el-form-item>
+              </el-col>
+            </el-col>
+            <el-divider direction="vertical" dashed />
+            <el-col :span="24">
+              <el-button type="primary" class="mr20" @click="onSend">发送优惠券</el-button>
+              <el-button class="greens mr20" size="default" @click="onSendPic">
                 <Icon type="md-list"></Icon>
                 发送图文消息
-              </Button>
-            </Col>
-          </Row>
-        </Form>
+              </el-button>
+            </el-col>
+          </el-row>
+        </el-form>
       </div>
-      <Table
+      <el-table
         ref="selection"
-        :columns="columns4"
         :data="tabList"
         :loading="loading"
-        no-data-text="暂无数据"
-        highlight-row
+        empty-text="暂无数据"
+        highlight-current-row
         class="mt25"
-        no-filtered-data-text="暂无筛选结果"
-        @on-selection-change="onSelectTab"
+        @select="onSelectTab"
+        @select-all="onSelectTab"
       >
-        <template slot-scope="{ row, index }" slot="headimgurl">
-          <div class="tabBox_img" v-viewer>
-            <img v-lazy="row.headimgurl" />
-          </div>
-        </template>
-        <template slot-scope="{ row }" slot="sex">
-          <span v-show="row.sex === 1">男</span>
-          <span v-show="row.sex === 2">女</span>
-          <span v-show="row.sex === 0">保密</span>
-        </template>
-        <template slot-scope="{ row }" slot="country">
-          <span>{{ row.country + row.province + row.city }}</span>
-        </template>
-        <template slot-scope="{ row }" slot="subscribe">
-          <span v-show="row.subscribe === 1">关注</span>
-          <span v-show="row.subscribe === 0">未关注</span>
-        </template>
-        <template slot-scope="{ row }" slot="createModalFrame">
-          <template>
-            <Dropdown @on-click="changeMenu(row, $event)">
-              <a href="javascript:void(0)"
-                >操作
-                <Icon type="ios-arrow-down"></Icon>
-              </a>
-              <DropdownMenu slot="list">
-                <DropdownItem name="1" v-show="row.subscribe">修改分组</DropdownItem>
-                <DropdownItem name="2" v-show="row.subscribe">修改标签</DropdownItem>
-                <DropdownItem name="3" v-show="row.subscribe">同步标签</DropdownItem>
-                <DropdownItem v-show="!row.subscribe">无法操作</DropdownItem>
-              </DropdownMenu>
-            </Dropdown>
+        <el-table-column type="selection" width="55"> </el-table-column>
+        <el-table-column label="ID" width="80">
+          <template slot-scope="scope">
+            <span>{{ scope.row.uid }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="微信用户名称" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.nickname }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="头像" min-width="130">
+          <template slot-scope="scope">
+            <div class="tabBox_img" v-viewer>
+              <img v-lazy="scope.row.headimgurl" />
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="性别" min-width="130">
+          <template slot-scope="scope">
+            <span v-show="scope.row.sex === 1">男</span>
+            <span v-show="scope.row.sex === 2">女</span>
+            <span v-show="scope.row.sex === 0">保密</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="地区" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.country + scope.row.province + scope.row.city }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="是否关注公众号" min-width="130">
+          <template slot-scope="scope">
+            <span v-show="scope.row.subscribe === 1">关注</span>
+            <span v-show="scope.row.subscribe === 0">未关注</span>
           </template>
-        </template>
-      </Table>
+        </el-table-column>
+        <el-table-column label="用户分组" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.groupid }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="用户标签" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.tagid_list }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right" width="170">
+          <template slot-scope="scope">
+            <el-dropdown size="small" @command="changeMenu(scope.row, $event)">
+              <span class="el-dropdown-link">操作<i class="el-icon-arrow-down el-icon--right"></i> </span>
+              <el-dropdown-menu slot="dropdown">
+                <el-dropdown-item command="1" v-show="scope.row.subscribe">修改分组</el-dropdown-item>
+                <el-dropdown-item command="2" v-show="scope.row.subscribe">修改标签</el-dropdown-item>
+                <el-dropdown-item command="3" v-show="scope.row.subscribe">同步标签</el-dropdown-item>
+                <el-dropdown-item v-show="!scope.row.subscribe">无法操作</el-dropdown-item>
+              </el-dropdown-menu>
+            </el-dropdown>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page :total="total" show-elevator show-total @on-change="pageChange" :page-size="formValidate.limit" />
+        <pagination
+          v-if="total"
+          :total="total"
+          :page.sync="formValidate.page"
+          :limit.sync="formValidate.limit"
+          @pagination="getList"
+        />
       </div>
-    </Card>
+    </el-card>
     <!-- 用户分组和标签编辑-->
     <edit-from ref="edits" :FromData="FromData" @submitFail="submitFail"></edit-from>
     <!-- 发送优惠券-->
@@ -231,51 +264,6 @@ export default {
         sm: 24,
         xs: 24,
       },
-      columns4: [
-        {
-          type: 'selection',
-          min: 60,
-          align: 'center',
-        },
-        {
-          title: 'ID',
-          key: 'uid',
-        },
-        {
-          title: '微信用户名称',
-          key: 'nickname',
-        },
-        {
-          title: '头像',
-          slot: 'headimgurl',
-        },
-        {
-          title: '性别',
-          slot: 'sex',
-        },
-        {
-          title: '地区',
-          slot: 'country',
-        },
-        {
-          title: '是否关注公众号',
-          slot: 'subscribe',
-        },
-        {
-          title: '用户分组',
-          key: 'groupid',
-        },
-        {
-          title: '用户标签',
-          key: 'tagid_list',
-        },
-        {
-          title: '操作',
-          slot: 'createModalFrame',
-          fixed: 'right',
-          width: 100,
-        },
-      ],
       tagList: [],
       groupList: [],
       FromData: null,
@@ -286,7 +274,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 80;
+      return this.isMobile ? undefined : '85px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';
@@ -416,10 +404,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
     // 搜索
     userSearchs() {
       this.getList();

+ 67 - 63
template/admin/src/pages/cms/addArticle/index.vue

@@ -3,14 +3,14 @@
     <div class="i-layout-page-header header-title">
       <div class="fl_header">
         <span>
-          <Button icon="ios-arrow-back" size="small" type="text" @click="$router.go(-1)">返回</Button>
+          <el-button icon="ios-arrow-back" size="small" type="text" @click="$router.go(-1)">返回</el-button>
         </span>
-        <Divider type="vertical" />
+        <el-divider direction="vertical"></el-divider>
         <span class="ivu-page-header-title">{{ $route.params.id ? '编辑文章' : '添加文章' }}</span>
       </div>
     </div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Form
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-form
         class="form"
         ref="formValidate"
         :model="formValidate"
@@ -22,35 +22,39 @@
         <div class="goodsTitle acea-row">
           <div class="title">文章信息</div>
         </div>
-        <Row :gutter="24" type="flex">
-          <Col v-bind="grid" class="mr50">
-            <FormItem label="标题:" prop="title" label-for="title">
-              <Input v-model="formValidate.title" placeholder="请输入" element-id="title" style="width: 90%" />
-            </FormItem>
-          </Col>
-          <Col v-bind="grid" class="mr50">
-            <FormItem label="作者:" prop="author" label-for="author">
-              <Input v-model="formValidate.author" placeholder="请输入" element-id="author" style="width: 90%" />
-            </FormItem>
-          </Col>
-          <Col v-bind="grid" class="mr50">
-            <FormItem label="文章分类:" label-for="cid" prop="cid">
+        <el-row :gutter="24" >
+          <el-col v-bind="grid" class="mr50">
+            <el-form-item label="标题:" prop="title" label-for="title">
+              <el-input v-model="formValidate.title" placeholder="请输入" element-id="title" style="width: 90%" />
+            </el-form-item>
+          </el-col>
+          <el-col v-bind="grid" class="mr50">
+            <el-form-item label="作者:" prop="author" label-for="author">
+              <el-input v-model="formValidate.author" placeholder="请输入" element-id="author" style="width: 90%" />
+            </el-form-item>
+          </el-col>
+          <el-col v-bind="grid" class="mr50">
+            <el-form-item label="文章分类:" label-for="cid" prop="cid">
               <div class="perW90">
-                <Select v-model="formValidate.cid">
-                  <Option v-for="item in treeData" :value="item.id" :disabled="item.disabled" :key="item.id">{{
-                    item.html + item.title
-                  }}</Option>
-                </Select>
+                <el-select v-model="formValidate.cid">
+                  <el-option
+                    v-for="item in treeData"
+                    :value="item.id"
+                    :disabled="item.disabled"
+                    :key="item.id"
+                    :label="item.html + item.title"
+                  ></el-option>
+                </el-select>
               </div>
-            </FormItem>
-          </Col>
-          <Col v-bind="grid" class="mr50">
-            <FormItem label="文章简介:" prop="synopsis" label-for="synopsis">
-              <Input v-model="formValidate.synopsis" type="textarea" placeholder="请输入" style="width: 90%" />
-            </FormItem>
-          </Col>
-          <Col v-bind="grid" class="mr50">
-            <FormItem label="图文封面:" prop="image_input">
+            </el-form-item>
+          </el-col>
+          <el-col v-bind="grid" class="mr50">
+            <el-form-item label="文章简介:" prop="synopsis" label-for="synopsis">
+              <el-input v-model="formValidate.synopsis" type="textarea" placeholder="请输入" style="width: 90%" />
+            </el-form-item>
+          </el-col>
+          <el-col v-bind="grid" class="mr50">
+            <el-form-item label="图文封面:" prop="image_input">
               <div class="picBox" @click="modalPicTap('单选')">
                 <div class="pictrue" v-if="formValidate.image_input">
                   <img :src="formValidate.image_input" />
@@ -60,43 +64,43 @@
                 </div>
               </div>
               <div class="tip">建议尺寸:500 x 312 px</div>
-            </FormItem>
-          </Col>
-        </Row>
+            </el-form-item>
+          </el-col>
+        </el-row>
         <div class="goodsTitle acea-row">
           <div class="title">文章内容</div>
         </div>
-        <FormItem label="文章内容:" prop="content">
+        <el-form-item label="文章内容:" prop="content">
           <WangEditor style="width: 90%" :content="formValidate.content" @editorContent="getEditorContent"></WangEditor>
-        </FormItem>
+        </el-form-item>
         <div class="goodsTitle acea-row">
           <div class="title">其他设置</div>
         </div>
-        <Row :gutter="24" type="flex">
-          <!--                    <Col span="24">-->
-          <!--                        <FormItem label="原文链接:">-->
-          <!--                            <Input v-model="formValidate.url" placeholder="请输入" element-id="url" style="width: 60%"/>-->
-          <!--                        </FormItem>-->
-          <!--                    </Col>-->
-          <Col span="24">
-            <FormItem label="banner显示:" label-for="is_banner">
-              <RadioGroup v-model="formValidate.is_banner" element-id="is_banner">
-                <Radio :label="1" class="radio">显示</Radio>
-                <Radio :label="0">不显示</Radio>
-              </RadioGroup>
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="热门文章:" label-for="is_hot">
-              <RadioGroup v-model="formValidate.is_hot" element-id="is_hot">
-                <Radio :label="1" class="radio">显示</Radio>
-                <Radio :label="0">不显示</Radio>
-              </RadioGroup>
-            </FormItem>
-          </Col>
-        </Row>
-        <Button type="primary" class="submission" @click="onsubmit('formValidate')">提交</Button>
-      </Form>
+        <el-row :gutter="24" >
+          <!--                    <el-col :span="24">-->
+          <!--                        <el-form-item label="原文链接:">-->
+          <!--                            <el-input v-model="formValidate.url" placeholder="请输入" element-id="url" style="width: 60%"/>-->
+          <!--                        </el-form-item>-->
+          <!--                    </el-col>-->
+          <el-col :span="24">
+            <el-form-item label="banner显示:" label-for="is_banner">
+              <el-radio-group v-model="formValidate.is_banner" element-id="is_banner">
+                <el-radio :label="1" class="radio">显示</el-radio>
+                <el-radio :label="0">不显示</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="热门文章:" label-for="is_hot">
+              <el-radio-group v-model="formValidate.is_hot" element-id="is_hot">
+                <el-radio :label="1" class="radio">显示</el-radio>
+                <el-radio :label="0">不显示</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-button type="primary" class="submission" @click="onsubmit('formValidate')">提交</el-button>
+      </el-form>
       <Modal
         v-model="modalPic"
         width="950px"
@@ -115,7 +119,7 @@
           v-if="modalPic"
         ></uploadPictures>
       </Modal>
-    </Card>
+    </el-card>
   </div>
 </template>
 
@@ -213,7 +217,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 120;
+      return this.isMobile ? undefined : '120px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';

+ 83 - 99
template/admin/src/pages/cms/article/index.vue

@@ -1,27 +1,27 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Form
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-form
         ref="artFrom"
         :model="artFrom"
         :label-width="labelWidth"
         :label-position="labelPosition"
         @submit.native.prevent
       >
-        <Row type="flex" :gutter="24">
-          <Col v-bind="grid">
-            <FormItem label="文章分类:" label-for="pid">
+        <el-row :gutter="24">
+          <el-col v-bind="grid">
+            <el-form-item label="文章分类:" label-for="pid">
               <i-select :value="artFrom.pid" placeholder="请选择" style="width: 80%" class="treeSel">
                 <i-option v-for="(item, index) of list" :value="item.value" :key="index" style="display: none">
                   {{ item.title }}
                 </i-option>
                 <Tree :data="treeData" @on-select-change="handleCheckChange"></Tree>
               </i-select>
-            </FormItem>
-          </Col>
-          <Col v-bind="grid">
-            <FormItem label="文章搜索:" label-for="title">
-              <Input
+            </el-form-item>
+          </el-col>
+          <el-col v-bind="grid">
+            <el-form-item label="文章搜索:" label-for="title">
+              <el-input
                 search
                 enter-button
                 placeholder="请输入"
@@ -29,56 +29,82 @@
                 style="width: 80%"
                 @on-search="userSearchs"
               />
-            </FormItem>
-          </Col>
-        </Row>
-        <Row type="flex">
-          <Col v-bind="grid">
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col v-bind="grid">
             <router-link :to="$routeProStr + '/cms/article/add_article'" v-auth="['cms-article-creat']"
-              ><Button type="primary" class="bnt" icon="md-add">添加文章</Button></router-link
+              ><el-button type="primary" class="bnt" icon="md-add">添加文章</el-button></router-link
             >
-          </Col>
-        </Row>
-      </Form>
-      <Table
-        :columns="columns1"
+          </el-col>
+        </el-row>
+      </el-form>
+      <el-table
         :data="cmsList"
         ref="table"
         class="mt25"
-        :loading="loading"
-        highlight-row
+        v-loading="loading"
+        highlight-current-row
         no-userFrom-text="暂无数据"
         no-filtered-userFrom-text="暂无筛选结果"
       >
-        <template slot-scope="{ row, index }" slot="titles">
-          <span>{{ ' [ ' + row.catename + ' ] ' + row.title }}</span>
-        </template>
-        <template slot-scope="{ row, index }" slot="image_inputs">
-          <div v-if="row.image_input.length !== 0" v-viewer>
-            <div class="tabBox_img" v-for="(item, index) in row.image_input" :key="index">
-              <img v-lazy="item" />
+        <el-table-column label="ID" width="80">
+          <template slot-scope="scope">
+            <span>{{ scope.row.id }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="文章图片" min-width="90">
+          <template slot-scope="scope">
+            <div v-if="scope.row.image_input.length !== 0" v-viewer>
+              <div class="tabBox_img" v-for="(item, index) in scope.row.image_input" :key="index">
+                <img v-lazy="item" />
+              </div>
             </div>
-          </div>
-        </template>
-        <template slot-scope="{ row, index }" slot="action">
-          <a @click="edit(row)">编辑</a>
-          <Divider type="vertical" />
-          <a @click="artRelation(row, '取消关联', index)">{{ row.product_id === 0 ? '关联' : '取消关联' }}</a>
-          <Divider type="vertical" />
-          <a @click="del(row, '删除文章', index)">删除</a>
-        </template>
-      </Table>
+          </template>
+        </el-table-column>
+        <el-table-column label="文章名称" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ ' [ ' + scope.row.catename + ' ] ' + scope.row.title }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="关联商品" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.store_name }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="浏览量" min-width="80">
+          <template slot-scope="scope">
+            <span>{{ scope.row.visit }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="时间" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.add_time | formatDate }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right" width="170">
+          <template slot-scope="scope">
+            <a @click="edit(scope.row)">编辑</a>
+            <el-divider direction="vertical"></el-divider>
+            <a @click="artRelation(scope.row, '取消关联', index)">{{
+              scope.row.product_id === 0 ? '关联' : '取消关联'
+            }}</a>
+            <el-divider direction="vertical"></el-divider>
+            <a @click="del(scope.row, '删除文章', index)">删除</a>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page
+        <pagination
+          v-if="total"
           :total="total"
-          :current="artFrom.page"
-          show-elevator
-          show-total
-          @on-change="pageChange"
-          :page-size="artFrom.limit"
+          :page.sync="artFrom.page"
+          :limit.sync="artFrom.limit"
+          @pagination="getList"
         />
       </div>
-    </Card>
+    </el-card>
     <!--关联-->
     <Modal
       v-model="modals"
@@ -121,53 +147,7 @@ export default {
         limit: 20,
       },
       total: 0,
-      columns1: [
-        {
-          title: 'ID',
-          key: 'id',
-          width: 80,
-        },
-        {
-          title: '文章图片',
-          slot: 'image_inputs',
-          minWidth: 90,
-        },
-        {
-          title: '文章名称',
-          slot: 'titles',
-          minWidth: 130,
-        },
-        {
-          title: '关联商品',
-          key: 'store_name',
-          minWidth: 130,
-        },
-        // {
-        //     title: '排序',
-        //     key: 'sort',
-        //     minWidth: 60
-        // },
-        {
-          title: '浏览量',
-          key: 'visit',
-          minWidth: 80,
-        },
-        {
-          title: '时间',
-          key: 'add_time',
-          sortable: true,
-          render: (h, params) => {
-            return h('div', formatDate(new Date(Number(params.row.add_time) * 1000), 'yyyy-MM-dd hh:mm'));
-          },
-          minWidth: 120,
-        },
-        {
-          title: '操作',
-          slot: 'action',
-          fixed: 'right',
-          minWidth: 150,
-        },
-      ],
+
       cmsList: [],
       treeData: [],
       list: [],
@@ -188,12 +168,20 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 75;
+      return this.isMobile ? undefined : '75px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';
     },
   },
+  filters: {
+    formatDate(time) {
+      if (time !== 0) {
+        let date = new Date(time * 1000);
+        return formatDate(date, 'yyyy-MM-dd hh:mm');
+      }
+    },
+  },
   created() {},
   activated() {
     this.artFrom.pid = this.$route.query.id ? this.$route.query.id : 0;
@@ -256,10 +244,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.artFrom.page = index;
-      this.getList();
-    },
     // 下拉树
     handleCheckChange(data) {
       let value = '';

+ 31 - 27
template/admin/src/pages/cms/article/relation.vue

@@ -9,17 +9,17 @@
     width="950"
     @on-cancel="handleReset"
   >
-    <Form
+    <el-form
       ref="levelFrom"
       :model="levelFrom"
       :label-width="labelWidth"
       :label-position="labelPosition"
       @submit.native.prevent
     >
-      <Row type="flex" :gutter="24">
-        <Col v-bind="grid">
-          <FormItem label="商品名称:" prop="status2" label-for="status2">
-            <Input
+      <el-row :gutter="24">
+        <el-col v-bind="grid">
+          <el-form-item label="商品名称:" prop="status2" label-for="status2">
+            <el-input
               search
               enter-button
               v-model="levelFrom.name"
@@ -27,12 +27,12 @@
               @on-search="userSearchs"
               style="width: 100%"
             />
-          </FormItem>
-        </Col>
-      </Row>
-    </Form>
-    <Divider dashed />
-    <Table
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <el-divider direction="vertical" dashed />
+    <el-table
       :columns="columns1"
       :data="levelLists"
       ref="table"
@@ -41,38 +41,42 @@
       no-filtered-userFrom-text="暂无筛选结果"
     >
       <template slot-scope="{ row, index }" slot="is_shows">
-        <i-switch
+        <el-switch
+          :active-value="1"
+          :inactive-value="0"
           v-model="row.is_show"
           :value="row.is_show"
-          :true-value="1"
-          :false-value="0"
           size="large"
-          @on-change="onchangeIsShow(row)"
+          @change="onchangeIsShow(row)"
         >
-          <span slot="open">显示</span>
-          <span slot="close">隐藏</span>
-        </i-switch>
+        </el-switch>
       </template>
       <template slot-scope="{ row, index }" slot="is_musts">
-        <i-switch
+        <el-switch
+          :active-value="1"
+          :inactive-value="0"
           v-model="row.is_must"
           :value="row.is_must"
-          :true-value="1"
-          :false-value="0"
           size="large"
-          @on-change="onchangeIsMust(row)"
+          @change="onchangeIsMust(row)"
+          active-text="全部完成"
+          inactive-text="达成其一"
         >
-          <span slot="open">全部完成</span>
-          <span slot="close">达成其一</span>
-        </i-switch>
+        </el-switch>
       </template>
       <template slot-scope="{ row, index }" slot="action">
         <a @click="edit(row)">编辑 | </a>
         <a @click="del(row, '删除任务')"> 删除</a>
       </template>
-    </Table>
+    </el-table>
     <div class="acea-row row-right page">
-      <Page :total="total" show-elevator show-total @on-change="pageChange" :page-size="levelFrom.limit" />
+      <pagination
+        v-if="total"
+        :total="total"
+        :page.sync="levelFrom.page"
+        :limit.sync="levelFrom.limit"
+        @pagination="getList"
+      />
     </div>
     <!-- 新建 编辑表单-->
     <edit-from ref="edits" :FromData="FromData" @submitFail="submitFail" :titleType="titleType"></edit-from>

+ 40 - 46
template/admin/src/pages/cms/articleCategory/index.vue

@@ -1,42 +1,43 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Form
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-form
         ref="formValidate"
         :model="formValidate"
         :label-width="labelWidth"
         :label-position="labelPosition"
         @submit.native.prevent
       >
-        <Row type="flex" :gutter="24">
-          <Col v-bind="grid">
-            <FormItem label="是否显示:" label-for="status">
-              <Select v-model="status" placeholder="请选择" element-id="status" clearable @on-change="userSearchs">
-                <Option value="all">全部</Option>
-                <Option value="1">显示</Option>
-                <Option value="0">不显示</Option>
-              </Select>
-            </FormItem>
-          </Col>
-          <Col v-bind="grid">
-            <FormItem label="分类昵称:" prop="title" label-for="status2">
-              <Input
+        <el-row :gutter="24">
+          <el-col v-bind="grid">
+            <el-form-item label="是否显示:" label-for="status">
+              <el-select v-model="status" placeholder="请选择" element-id="status" clearable @change="userSearchs">
+                <el-option value="all" label="全部"></el-option>
+                <el-option value="1" label="显示"></el-option>
+                <el-option value="0" label="不显示"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col v-bind="grid">
+            <el-form-item label="分类昵称:" prop="title" label-for="status2">
+              <el-input
                 search
                 enter-button
                 placeholder="请输入分类昵称"
                 v-model="formValidate.title"
                 @on-search="userSearchs"
               />
-            </FormItem>
-          </Col>
-        </Row>
-        <Row type="flex">
-          <Col v-bind="grid">
-            <Button v-auth="['cms-category-create']" type="primary" icon="md-add" @click="add">添加文章分类</Button>
-          </Col>
-        </Row>
-      </Form>
-      <!-- <Divider dashed /> -->
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col v-bind="grid">
+            <el-button v-auth="['cms-category-create']" type="primary" icon="md-add" @click="add"
+              >添加文章分类</el-button
+            >
+          </el-col>
+        </el-row>
+      </el-form>
       <vxe-table
         class="vxeTable mt25"
         highlight-hover-row
@@ -56,40 +57,37 @@
         </vxe-table-column>
         <vxe-table-column field="status" title="状态" min-width="120">
           <template v-slot="{ row }">
-            <i-switch
+            <el-switch
+              :active-value="1"
+              :inactive-value="0"
               v-model="row.status"
               :value="row.status"
-              :true-value="1"
-              :false-value="0"
-              @on-change="onchangeIsShow(row)"
+              @change="onchangeIsShow(row)"
               size="large"
             >
-              <span slot="open">显示</span>
-              <span slot="close">隐藏</span>
-            </i-switch>
+            </el-switch>
           </template>
         </vxe-table-column>
         <vxe-table-column field="date" title="操作" align="center" width="250" fixed="right">
           <template v-slot="{ row }">
             <a @click="edit(row)">编辑</a>
-            <Divider type="vertical" />
+            <el-divider direction="vertical"></el-divider>
             <a @click="del(row, '删除文章分类')">删除</a>
-            <Divider type="vertical" />
+            <el-divider direction="vertical"></el-divider>
             <a @click="lookUp(row)">查看文章</a>
           </template>
         </vxe-table-column>
       </vxe-table>
       <div class="acea-row row-right page">
-        <Page
+        <pagination
+          v-if="total"
           :total="total"
-          :current="formValidate.page"
-          show-elevator
-          show-total
-          @on-change="pageChange"
-          :page-size="formValidate.limit"
+          :page.sync="formValidate.page"
+          :limit.sync="formValidate.limit"
+          @pagination="getList"
         />
       </div>
-    </Card>
+    </el-card>
   </div>
 </template>
 <script>
@@ -152,7 +150,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 75;
+      return this.isMobile ? undefined : '75px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';
@@ -217,10 +215,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
     // 表格搜索
     userSearchs() {
       this.formValidate.page = 1;

+ 27 - 24
template/admin/src/pages/crud/index.vue

@@ -1,31 +1,39 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Row type="flex">
-        <Col v-bind="grid">
-          <Button type="primary" icon="md-add" @click="add">添加</Button>
-        </Col>
-      </Row>
-      <Table
-        :columns="columns"
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-row>
+        <el-col v-bind="grid">
+          <el-button type="primary" icon="md-add" @click="add">添加</el-button>
+        </el-col>
+      </el-row>
+      <el-table
         :data="dataList"
         ref="table"
         class="mt25"
-        :loading="loading"
-        highlight-row
+        v-loading="loading"
+        highlight-current-row
         no-userFrom-text="暂无数据"
         no-filtered-userFrom-text="暂无筛选结果"
       >
-        <template slot-scope="{ row, index }" slot="action">
-          <a @click="edit(row)">修改</a>
-          <Divider type="vertical" />
-          <a @click="del(row, '删除', index)">删除</a>
-        </template>
-      </Table>
+        <el-table-column :label="item.title" :min-width="item.minWidth" v-for="(item, index) in columns" :key="index">
+          <template slot-scope="scope">
+            <template v-if="item.key">
+              <div>
+                <span>{{ scope.row[item.key] }}</span>
+              </div>
+            </template>
+            <template v-else-if="item.slot === 'action'">
+              <a @click="edit(scope.row)">修改</a>
+              <el-divider direction="vertical"></el-divider>
+              <a @click="del(scope.row, '删除', index)">删除</a>
+            </template>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page :total="total" show-elevator show-total @on-change="pageChange" :page-size="from.limit" />
+        <pagination v-if="total" :total="total" :page.sync="from.page" :limit.sync="from.limit" @pagination="getList" />
       </div>
-    </Card>
+    </el-card>
   </div>
 </template>
 
@@ -59,7 +67,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 75;
+      return this.isMobile ? undefined : '75px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'left';
@@ -166,11 +174,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    //分页
-    pageChange(index) {
-      this.from.page = index;
-      this.getList();
-    },
     // 修改
     edit(row) {
       let url = this.methodApi.edit.replace('<id>', row[this.curdKey]);

+ 9 - 9
template/admin/src/pages/division/agent/agreement.vue

@@ -3,17 +3,17 @@
     <div class="i-layout-page-header header-title">
       <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
     </div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Form :label-width="80" @submit.native.prevent>
-        <FormItem label="协议内容:">
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-form label-width="85px" @submit.native.prevent>
+        <el-form-item label="协议内容:">
           <WangEditor :content="agreement.content" @editorContent="getEditorContent"></WangEditor>
-        </FormItem>
-        <FormItem>
-          <Button type="primary" @click="memberAgreementSave">保存</Button>
-        </FormItem>
-      </Form>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="memberAgreementSave">保存</el-button>
+        </el-form-item>
+      </el-form>
       <Spin fix v-if="spinShow"></Spin>
-    </Card>
+    </el-card>
   </div>
 </template>
 

+ 93 - 58
template/admin/src/pages/division/agent/applyList.vue

@@ -1,34 +1,37 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt mb10">
-      <Form
+    <el-card :bordered="false" shadow="never" class="ivu-mt mb10">
+      <el-form
         ref="formValidate"
         :model="formValidate"
         :label-width="labelWidth"
         :label-position="labelPosition"
         @submit.native.prevent
       >
-        <Row type="flex" :gutter="24" align="middle">
-          <Col>
-            <FormItem label="状态:">
-              <Select
+        <el-row :gutter="24" align="middle">
+          <el-col>
+            <el-form-item label="状态:">
+              <el-select
                 style="width: 200px"
                 v-model="formValidate.status"
                 placeholder="请选择状态"
                 element-id="group_id"
                 clearable
-                @on-change="userSearchs"
+                @change="userSearchs"
               >
-                <Option value="all">全部</Option>
-                <Option :value="item.id" v-for="(item, index) in statusList" :key="index">{{
-                  item.status_name
-                }}</Option>
-              </Select>
-            </FormItem>
-          </Col>
-          <Col>
-            <FormItem label="搜索:">
-              <Input
+                <el-option value="all" label="全部"></el-option>
+                <el-option
+                  :value="item.id"
+                  v-for="(item, index) in statusList"
+                  :key="index"
+                  :label="item.status_name"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col>
+            <el-form-item label="搜索:">
+              <el-input
                 style="width: 250px"
                 search
                 enter-button
@@ -36,57 +39,89 @@
                 v-model="formValidate.keyword"
                 @on-search="userSearchs"
               />
-            </FormItem>
-          </Col>
-        </Row>
-      </Form>
-    </Card>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Row class="ivu-mt box-wrapper">
-        <Col :xs="24" :sm="24" ref="rightBox">
-          <Table
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-card>
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-row class="ivu-mt box-wrapper">
+        <el-col :xs="24" :sm="24" ref="rightBox">
+          <el-table
             :columns="columns"
             :data="userLists"
             ref="table"
-            :loading="loading"
-            highlight-row
+            v-loading="loading"
+            highlight-current-row
             no-formValidate-text="暂无数据"
             no-filtered-formValidate-text="暂无筛选结果"
           >
-            <template slot-scope="{ row, index }" slot="images">
-              <div class="pictrue-box" v-if="row.images.length">
-                <div v-viewer v-for="(item, index) in row.images || []" :key="index">
-                  <img class="pictrue mr10" v-lazy="item" :src="item" />
+            <el-table-column label="用户UID" width="80">
+              <template slot-scope="scope">
+                <span>{{ scope.row.uid }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="代理商名称" min-width="150">
+              <template slot-scope="scope">
+                <span>{{ scope.row.agent_name }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="代理商电话" min-width="150">
+              <template slot-scope="scope">
+                <span>{{ scope.row.phone }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="事业部ID" min-width="150">
+              <template slot-scope="scope">
+                <span>{{ scope.row.division_id }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="申请图片" min-width="150">
+              <template slot-scope="scope">
+                <div class="pictrue-box" v-if="scope.row.images.length">
+                  <div v-viewer v-for="(item, index) in scope.row.images || []" :key="index">
+                    <img class="pictrue mr10" v-lazy="item" :src="item" />
+                  </div>
                 </div>
-              </div>
-            </template>
-            <template slot-scope="{ row, index }" slot="status">
-              <Tag>{{ row.status == 0 ? '申请中' : row.status == 1 ? '已同意' : '已拒绝' }}</Tag>
-            </template>
-            <template slot-scope="{ row, index }" slot="division_end_time">
-              <span> {{ row.division_end_time }}</span>
-            </template>
-            <template slot-scope="{ row, index }" slot="action">
-              <a v-if="row.status == 0" @click="groupAdd(row.id, 1)">同意</a>
-              <Divider v-if="row.status == 0" type="vertical" />
-              <a v-if="row.status == 0" @click="groupAdd(row.id, 0)">拒绝</a>
-              <Divider type="vertical" v-if="row.status == 0" />
-              <a @click="del(row, '删除申请', index)">删除</a>
-            </template>
-          </Table>
+              </template>
+            </el-table-column>
+            <el-table-column label="申请时间" min-width="150">
+              <template slot-scope="scope">
+                <span>{{ scope.row.add_time }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="申请状态" min-width="150">
+              <template slot-scope="scope">
+                <Tag>{{ scope.row.status == 0 ? '申请中' : scope.row.status == 1 ? '已同意' : '已拒绝' }}</Tag>
+              </template>
+            </el-table-column>
+            <el-table-column label="邀请码" min-width="150">
+              <template slot-scope="scope">
+                <Tag>{{ scope.row.division_invite }}</Tag>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" fixed="right" width="170">
+              <template slot-scope="scope">
+                <a v-if="scope.row.status == 0" @click="groupAdd(scope.row.id, 1)">同意</a>
+                <el-divider v-if="scope.row.status == 0" direction="vertical" />
+                <a v-if="scope.row.status == 0" @click="groupAdd(scope.row.id, 0)">拒绝</a>
+                <el-divider direction="vertical" v-if="scope.row.status == 0" />
+                <a @click="del(scope.row, '删除申请', index)">删除</a>
+              </template>
+            </el-table-column>
+          </el-table>
           <div class="acea-row row-right page">
-            <Page
+            <pagination
+              v-if="total"
               :total="total"
-              :current="formValidate.page"
-              show-elevator
-              show-total
-              @on-change="pageChange"
-              :page-size="formValidate.limit"
+              :page.sync="formValidate.page"
+              :limit.sync="formValidate.limit"
+              @pagination="getList"
             />
           </div>
-        </Col>
-      </Row>
-    </Card>
+        </el-col>
+      </el-row>
+    </el-card>
   </div>
 </template>
 
@@ -204,7 +239,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 75;
+      return this.isMobile ? undefined : '75px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';

+ 130 - 109
template/admin/src/pages/division/agent/index.vue

@@ -1,17 +1,17 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Form
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-form
         ref="formValidate"
         :model="formValidate"
         :label-width="labelWidth"
         :label-position="labelPosition"
         @submit.native.prevent
       >
-        <Row type="flex" :gutter="24" align="middle">
-          <Col v-bind="grid">
-            <FormItem label="搜索:" label-for="status">
-              <Input
+        <el-row :gutter="24" align="middle">
+          <el-col v-bind="grid">
+            <el-form-item label="搜索:" label-for="status">
+              <el-input
                 style="width: 300px"
                 search
                 enter-button
@@ -19,121 +19,150 @@
                 v-model="formValidate.keyword"
                 @on-search="userSearchs"
               />
-            </FormItem>
-          </Col>
-        </Row>
-      </Form>
-    </Card>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Row class="ivu-mt box-wrapper">
-        <Col :xs="24" :sm="24" ref="rightBox">
-          <Row type="flex">
-            <Col v-bind="grid">
-              <Button type="primary" @click="groupAdd('0')" class="mr20">添加代理商</Button>
-            </Col>
-          </Row>
-          <Table
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-card>
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-row class="ivu-mt box-wrapper">
+        <el-col :xs="24" :sm="24" ref="rightBox">
+          <el-row>
+            <el-col v-bind="grid">
+              <el-button type="primary" @click="groupAdd('0')" class="mr20">添加代理商</el-button>
+            </el-col>
+          </el-row>
+          <el-table
             :columns="columns"
             :data="userLists"
             ref="table"
             class="mt25"
-            :loading="loading"
-            highlight-row
+            v-loading="loading"
+            highlight-current-row
             no-formValidate-text="暂无数据"
             no-filtered-formValidate-text="暂无筛选结果"
           >
-            <template slot-scope="{ row, index }" slot="avatars">
-              <div class="tabBox_img" v-viewer>
-                <img v-lazy="row.avatar" />
-              </div>
-            </template>
-            <template slot-scope="{ row, index }" slot="nickname">
-              <div class="acea-row">
-                <Icon type="md-male" v-show="row.sex === '男'" color="#2db7f5" size="15" class="mr5" />
-                <Icon type="md-female" v-show="row.sex === '女'" color="#ed4014" size="15" class="mr5" />
-                <div v-text="row.nickname"></div>
-              </div>
-              <!--                    <div v-show="row.vip_name" class="vipName">{{row.vip_name}}</div>-->
-            </template>
-            <template slot-scope="{ row, index }" slot="status">
-              <i-switch
-                v-model="row.division_status"
-                :value="row.division_status"
-                :true-value="1"
-                :false-value="0"
-                @on-change="onchangeIsShow(row)"
-                size="large"
-              >
-                <span slot="open">显示</span>
-                <span slot="close">隐藏</span>
-              </i-switch>
-            </template>
-            <template slot-scope="{ row, index }" slot="division_end_time">
-              <span> {{ row.division_end_time }}</span>
-            </template>
-            <template slot-scope="{ row, index }" slot="division_percent">
-              <span> {{ row.division_percent }}%</span>
-            </template>
-            <template slot-scope="{ row, index }" slot="action">
-              <a @click="jump(row.uid)">查看员工</a>
-              <Divider type="vertical" />
-              <a @click="groupAdd(row.uid)">编辑</a>
-              <Divider type="vertical" />
-              <a @click="del(row, '删除代理商', index)">删除</a>
-            </template>
-          </Table>
+            <el-table-column label="用户UID" width="80">
+              <template slot-scope="scope">
+                <span>{{ scope.row.uid }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="头像" min-width="90">
+              <template slot-scope="scope">
+                <div class="tabBox_img" v-viewer>
+                  <img v-lazy="scope.row.avatar" />
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="姓名" min-width="130">
+              <template slot-scope="scope">
+                <div class="acea-row">
+                  <Icon type="md-male" v-show="scope.row.sex === '男'" color="#2db7f5" size="15" class="mr5" />
+                  <Icon type="md-female" v-show="scope.row.sex === '女'" color="#ed4014" size="15" class="mr5" />
+                  <div v-text="scope.row.nickname"></div>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="分销比例" min-width="130">
+              <template slot-scope="scope">
+                <span> {{ scope.row.division_percent }}%</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="代理商数量" min-width="130">
+              <template slot-scope="scope">
+                <span>{{ scope.row.agent_count }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="订单数量" min-width="130">
+              <template slot-scope="scope">
+                <span>{{ scope.row.order_count }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="截止时间" min-width="130">
+              <template slot-scope="scope">
+                <span>{{ scope.row.division_end_time }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="状态" min-width="130">
+              <template slot-scope="scope">
+                <el-switch
+                  :active-value="1"
+                  :inactive-value="0"
+                  v-model="scope.row.division_status"
+                  :value="scope.row.division_status"
+                  @change="onchangeIsShow(scope.row)"
+                  size="large"
+                >
+                </el-switch>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" fixed="right" width="170">
+              <template slot-scope="scope">
+                <a @click="jump(scope.row.uid)">查看员工</a>
+                <el-divider direction="vertical"></el-divider>
+                <a @click="groupAdd(scope.row.uid)">编辑</a>
+                <el-divider direction="vertical"></el-divider>
+                <a @click="del(scope.row, '删除代理商', index)">删除</a>
+              </template>
+            </el-table-column>
+          </el-table>
           <div class="acea-row row-right page">
-            <Page
+            <pagination
+              v-if="total"
               :total="total"
-              :current="formValidate.page"
-              show-elevator
-              show-total
-              @on-change="pageChange"
-              :page-size="formValidate.limit"
+              :page.sync="formValidate.page"
+              :limit.sync="formValidate.limit"
+              @pagination="getList"
             />
           </div>
-        </Col>
-      </Row>
-    </Card>
+        </el-col>
+      </el-row>
+    </el-card>
     <Modal v-model="staffModal" scrollable title="员工列表" class="order_box" width="800" footer-hide>
-      <Table
+      <el-table
         :columns="columns2"
         :data="clerkLists"
         ref="table"
         class="mt25"
-        :loading="loading"
-        highlight-row
+        v-loading="loading"
+        highlight-current-row
         no-formValidate-text="暂无数据"
         no-filtered-formValidate-text="暂无筛选结果"
       >
-        <template slot-scope="{ row, index }" slot="avatars">
-          <div class="tabBox_img" v-viewer>
-            <img v-lazy="row.avatar" />
-          </div>
-        </template>
-        <template slot-scope="{ row, index }" slot="nickname">
-          <div class="acea-row">
-            <Icon type="md-male" v-show="row.sex === '男'" color="#2db7f5" size="15" class="mr5" />
-            <Icon type="md-female" v-show="row.sex === '女'" color="#ed4014" size="15" class="mr5" />
-            <div v-text="row.nickname"></div>
-          </div>
-          <!--                    <div v-show="row.vip_name" class="vipName">{{row.vip_name}}</div>-->
-        </template>
-        <template slot-scope="{ row, index }" slot="agent_end_time">
-          <span> {{ row.agent_end_time | formatDate }}</span>
-        </template>
-        <template slot-scope="{ row, index }" slot="division_percent">
-          <span> {{ row.division_percent }}%</span>
-        </template>
-      </Table>
+        <el-table-column label="用户UID" width="80">
+          <template slot-scope="scope">
+            <span>{{ scope.row.uid }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="头像" min-width="90">
+          <template slot-scope="scope">
+            <div class="tabBox_img" v-viewer>
+              <img v-lazy="scope.row.avatar" />
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="姓名" min-width="130">
+          <template slot-scope="scope">
+            <div class="acea-row">
+              <Icon type="md-male" v-show="scope.row.sex === '男'" color="#2db7f5" size="15" class="mr5" />
+              <Icon type="md-female" v-show="scope.row.sex === '女'" color="#ed4014" size="15" class="mr5" />
+              <div v-text="scope.row.nickname"></div>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="分销比例" min-width="130">
+          <template slot-scope="scope">
+            <span> {{ scope.row.division_percent }}%</span>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page
+        <pagination
+          v-if="total2"
           :total="total2"
-          :current="clerkReqData.page"
-          show-elevator
-          show-total
-          @on-change="clerkPageChange"
-          :page-size="clerkReqData.limit"
+          :page.sync="clerkReqData.page"
+          :limit.sync="clerkReqData.limit"
+          @pagination="getClerkList"
         />
       </div>
     </Modal>
@@ -261,7 +290,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 75;
+      return this.isMobile ? undefined : '75px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';
@@ -303,14 +332,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
-    clerkPageChange() {
-      this.clerkReqData.page = index;
-      this.getClerkList();
-    },
     // 添加表单
     groupAdd(id) {
       this.$modalForm(agentFrom(id))

+ 144 - 195
template/admin/src/pages/division/list/index.vue

@@ -1,17 +1,17 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Form
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-form
         ref="formValidate"
         :model="formValidate"
         :label-width="labelWidth"
         :label-position="labelPosition"
         @submit.native.prevent
       >
-        <Row type="flex" :gutter="24" align="middle">
-          <Col v-bind="grid">
-            <FormItem label="搜索:" label-for="status">
-              <Input
+        <el-row :gutter="24" align="middle">
+          <el-col v-bind="grid">
+            <el-form-item label="搜索:" label-for="status">
+              <el-input
                 style="width: 300px"
                 search
                 enter-button
@@ -19,121 +19,163 @@
                 v-model="formValidate.keyword"
                 @on-search="userSearchs"
               />
-            </FormItem>
-          </Col>
-        </Row>
-      </Form>
-    </Card>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Row class="ivu-mt box-wrapper">
-        <Col :xs="24" :sm="24" ref="rightBox">
-          <Row type="flex">
-            <Col v-bind="grid">
-              <Button type="primary" @click="groupAdd('0')" class="mr20">添加事业部</Button>
-            </Col>
-          </Row>
-          <Table
-            :columns="columns"
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-card>
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-row class="ivu-mt box-wrapper">
+        <el-col :xs="24" :sm="24" ref="rightBox">
+          <el-row>
+            <el-col v-bind="grid">
+              <el-button type="primary" @click="groupAdd('0')" class="mr20">添加事业部</el-button>
+            </el-col>
+          </el-row>
+          <el-table
             :data="userLists"
             ref="table"
             class="mt25"
             :loading="loading"
-            highlight-row
+            highlight-current-row
             no-formValidate-text="暂无数据"
             no-filtered-formValidate-text="暂无筛选结果"
           >
-            <template slot-scope="{ row, index }" slot="avatars">
-              <div class="tabBox_img" v-viewer>
-                <img v-lazy="row.avatar" />
-              </div>
-            </template>
-            <template slot-scope="{ row, index }" slot="nickname">
-              <div class="acea-row">
-                <Icon type="md-male" v-show="row.sex === '男'" color="#2db7f5" size="15" class="mr5" />
-                <Icon type="md-female" v-show="row.sex === '女'" color="#ed4014" size="15" class="mr5" />
-                <div v-text="row.nickname"></div>
-              </div>
-              <!--                    <div v-show="row.vip_name" class="vipName">{{row.vip_name}}</div>-->
-            </template>
-            <template slot-scope="{ row, index }" slot="status">
-              <i-switch
-                v-model="row.division_status"
-                :value="row.division_status"
-                :true-value="1"
-                :false-value="0"
-                @on-change="onchangeIsShow(row)"
-                size="large"
-              >
-                <span slot="open">显示</span>
-                <span slot="close">隐藏</span>
-              </i-switch>
-            </template>
-            <template slot-scope="{ row, index }" slot="division_end_time">
-              <span> {{ row.division_end_time }}</span>
-            </template>
-            <template slot-scope="{ row, index }" slot="division_percent">
-              <span> {{ row.division_percent }}%</span>
-            </template>
-            <template slot-scope="{ row, index }" slot="action">
-              <a @click="jump(row.uid)">查看代理商</a>
-              <Divider type="vertical" />
-              <a @click="groupAdd(row.uid)">编辑</a>
-              <Divider type="vertical" />
-              <a @click="del(row, '删除员工', index)">删除</a>
-            </template>
-          </Table>
+            <el-table-column label="用户UID" width="80">
+              <template slot-scope="scope">
+                <span>{{ scope.row.uid }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="头像" min-width="90">
+              <template slot-scope="scope">
+                <div class="tabBox_img" v-viewer>
+                  <img v-lazy="scope.row.avatar" />
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="姓名" min-width="130">
+              <template slot-scope="scope">
+                <div class="acea-row">
+                  <Icon type="md-male" v-show="scope.row.sex === '男'" color="#2db7f5" size="15" class="mr5" />
+                  <Icon type="md-female" v-show="scope.row.sex === '女'" color="#ed4014" size="15" class="mr5" />
+                  <div v-text="scope.row.nickname"></div>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="邀请码" min-width="130">
+              <template slot-scope="scope">
+                <span>{{ scope.row.division_invite }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="分销比例" min-width="130">
+              <template slot-scope="scope">
+                <span> {{ scope.row.division_percent }}%</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="代理商数量" min-width="130">
+              <template slot-scope="scope">
+                <span>{{ scope.row.agent_count }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="订单数量" min-width="130">
+              <template slot-scope="scope">
+                <span>{{ scope.row.order_count }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="截止时间" min-width="130">
+              <template slot-scope="scope">
+                <span>{{ scope.row.division_end_time }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="状态" min-width="130">
+              <template slot-scope="scope">
+                <el-switch
+                  :active-value="1"
+                  :inactive-value="0"
+                  v-model="scope.row.division_status"
+                  :value="scope.row.division_status"
+                  @change="onchangeIsShow(scope.row)"
+                  size="large"
+                >
+                </el-switch>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" fixed="right" width="170">
+              <template slot-scope="scope">
+                <a @click="jump(scope.row.uid)">查看代理商</a>
+                <el-divider direction="vertical"></el-divider>
+                <a @click="groupAdd(scope.row.uid)">编辑</a>
+                <el-divider direction="vertical"></el-divider>
+                <a @click="del(scope.row, '删除员工', index)">删除</a>
+              </template>
+            </el-table-column>
+          </el-table>
           <div class="acea-row row-right page">
-            <Page
+            <pagination
+              v-if="total"
               :total="total"
-              :current="formValidate.page"
-              show-elevator
-              show-total
-              @on-change="pageChange"
-              :page-size="formValidate.limit"
+              :page.sync="formValidate.page"
+              :limit.sync="formValidate.limit"
+              @pagination="getList"
             />
           </div>
-        </Col>
-      </Row>
-    </Card>
+        </el-col>
+      </el-row>
+    </el-card>
     <Modal v-model="staffModal" scrollable title="代理商列表" class="order_box" width="800" footer-hide>
-      <Table
-        :columns="columns2"
+      <el-table
         :data="clerkLists"
         ref="table"
         class="mt25"
-        :loading="loading"
-        highlight-row
+        v-loading="loading"
+        highlight-current-row
         no-formValidate-text="暂无数据"
         no-filtered-formValidate-text="暂无筛选结果"
       >
-        <template slot-scope="{ row, index }" slot="avatars">
-          <div class="tabBox_img" v-viewer>
-            <img v-lazy="row.avatar" />
-          </div>
-        </template>
-        <template slot-scope="{ row, index }" slot="nickname">
-          <div class="acea-row">
-            <Icon type="md-male" v-show="row.sex === '男'" color="#2db7f5" size="15" class="mr5" />
-            <Icon type="md-female" v-show="row.sex === '女'" color="#ed4014" size="15" class="mr5" />
-            <div v-text="row.nickname"></div>
-          </div>
-          <!--                    <div v-show="row.vip_name" class="vipName">{{row.vip_name}}</div>-->
-        </template>
-        <template slot-scope="{ row, index }" slot="agent_end_time">
-          <span> {{ row.agent_end_time | formatDate }}</span>
-        </template>
-        <template slot-scope="{ row, index }" slot="division_percent">
-          <span> {{ row.division_percent }}%</span>
-        </template>
-      </Table>
+        <el-table-column label="用户UID" width="80">
+          <template slot-scope="scope">
+            <span>{{ scope.row.uid }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="头像" min-width="90">
+          <template slot-scope="scope">
+            <div class="tabBox_img" v-viewer>
+              <img v-lazy="scope.row.avatar" />
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="姓名" min-width="130">
+          <template slot-scope="scope">
+            <div class="acea-row">
+              <Icon type="md-male" v-show="scope.row.sex === '男'" color="#2db7f5" size="15" class="mr5" />
+              <Icon type="md-female" v-show="scope.row.sex === '女'" color="#ed4014" size="15" class="mr5" />
+              <div v-text="scope.row.nickname"></div>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="分销比例" min-width="130">
+          <template slot-scope="scope">
+            <span> {{ scope.row.division_percent }}%</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="到期时间" min-width="130">
+          <template slot-scope="scope">
+            <span> {{ scope.row.division_end_time | formatDate }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="员工数量" min-width="130">
+          <template slot-scope="scope">
+            <span> {{ scope.row.agent_count }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page
+         <pagination
+          v-if="total2"
           :total="total2"
-          :current="clerkReqData.page"
-          show-elevator
-          show-total
-          @on-change="clerkPageChange"
-          :page-size="clerkReqData.limit"
+          :page.sync="clerkReqData.page"
+          :limit.sync="clerkReqData.limit"
+          @pagination="getClerkList"
         />
       </div>
     </Modal>
@@ -163,91 +205,6 @@ export default {
         proportion: 0,
         image: '',
       },
-      columns2: [
-        {
-          title: '用户UID',
-          key: 'uid',
-          width: 80,
-        },
-        {
-          title: '头像',
-          slot: 'avatars',
-          minWidth: 60,
-        },
-        {
-          title: '姓名',
-          slot: 'nickname',
-          minWidth: 150,
-        },
-        {
-          title: '分销比例',
-          slot: 'division_percent',
-          minWidth: 100,
-        },
-        {
-          title: '到期时间',
-          key: 'division_end_time',
-          minWidth: 150,
-        },
-        {
-          title: '员工数量',
-          key: 'agent_count',
-          minWidth: 100,
-        },
-      ],
-      columns: [
-        {
-          title: '用户UID',
-          key: 'uid',
-          width: 80,
-        },
-        {
-          title: '头像',
-          slot: 'avatars',
-          minWidth: 60,
-        },
-        {
-          title: '姓名',
-          slot: 'nickname',
-          minWidth: 150,
-        },
-        {
-          title: '邀请码',
-          key: 'division_invite',
-          minWidth: 150,
-        },
-        {
-          title: '分销比例',
-          slot: 'division_percent',
-          minWidth: 100,
-        },
-        {
-          title: '代理商数量',
-          key: 'agent_count',
-          minWidth: 100,
-        },
-        {
-          title: '订单数量',
-          key: 'order_count',
-          minWidth: 100,
-        },
-        {
-          title: '截止时间',
-          slot: 'division_end_time',
-          minWidth: 100,
-        },
-        {
-          title: '状态',
-          slot: 'status',
-          minWidth: 100,
-        },
-        {
-          title: '操作',
-          slot: 'action',
-          fixed: 'right',
-          minWidth: 120,
-        },
-      ],
       FromData: null,
       loading: false,
       current: 0,
@@ -276,7 +233,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 75;
+      return this.isMobile ? undefined : '75px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';
@@ -319,14 +276,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
-    clerkPageChange() {
-      this.clerkReqData.page = index;
-      this.getClerkList();
-    },
     // 添加表单
     groupAdd(id) {
       this.$modalForm(regionFrom(id))

+ 73 - 63
template/admin/src/pages/finance/balance/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt mb10">
-      <Form
+    <el-card :bordered="false" shadow="never" class="ivu-mt mb10">
+      <el-form
         ref="formValidate"
         :model="formValidate"
         :label-width="labelWidth"
@@ -9,14 +9,14 @@
         class="tabform"
         @submit.native.prevent
       >
-        <Row :gutter="24" type="flex">
-          <Col span="24">
-            <FormItem label="订单时间:">
+        <el-row :gutter="24">
+          <el-col :span="24">
+            <el-form-item label="订单时间:">
               <dateRadio @selectDate="onSelectDate"></dateRadio>
               <DatePicker
                 :editable="false"
                 :clearable="false"
-                @on-change="onchangeTime"
+                @change="onchangeTime"
                 :value="timeVal"
                 format="yyyy/MM/dd"
                 type="daterange"
@@ -26,74 +26,88 @@
                 :options="options"
                 class="mr20"
               ></DatePicker>
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="交易类型:">
-              <Select
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="交易类型:">
+              <el-select
                 type="button"
                 v-model="formValidate.trading_type"
                 class="mr15"
-                @on-change="selChange"
+                @change="selChange"
                 style="width: 30%"
               >
-                <Option
+                <el-option
                   :label="item"
                   :value="Object.keys(withdrawal)[index]"
                   v-for="(item, index) in Object.values(withdrawal)"
                   :key="index"
-                  >{{ item }}</Option
-                >
-              </Select>
-            </FormItem>
-          </Col>
-        </Row>
-      </Form>
-    </Card>
-    <Card :bordered="false" dis-hover>
-      <Table
-        ref="table"
-        :columns="columns"
-        :data="tabList"
-        :loading="loading"
-        no-data-text="暂无数据"
-        no-filtered-data-text="暂无筛选结果"
-      >
-        <template slot-scope="{ row }" slot="extract_price">
-          <div>{{ row.extract_price }}</div>
-        </template>
-        <template slot-scope="{ row }" slot="pay_type">
-          <div v-for="item in payment" :key="item.value">
-            <span v-if="row.pay_type == item.value"> {{ item.title }} </span>
-          </div>
-        </template>
-        <template slot-scope="{ row }" slot="number">
-          <div v-if="row.pm" class="z-price">+ {{ row.number }}</div>
-          <div v-else class="f-price">- {{ row.number }}</div>
-        </template>
-        <template slot-scope="{ row }" slot="add_time">
-          <span> {{ row.add_time | formatDate }}</span>
-        </template>
-        <template slot-scope="{ row }" slot="set">
-          <Button size="small" type="primary" class="item" @click="setMark(row)">备注</Button>
-        </template>
-      </Table>
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-card>
+    <el-card :bordered="false" shadow="never">
+      <el-table ref="table" :columns="columns" :data="tabList" :loading="loading" empty-text="暂无数据">
+        <el-table-column label="ID" width="50">
+          <template slot-scope="scope">
+            <span>{{ scope.row.id }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="关联订单" min-width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.relation }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="交易时间" min-width="100">
+          <template slot-scope="scope">
+            <span>{{ scope.row.add_time }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="交易金额" min-width="100">
+          <template slot-scope="scope">
+            <div v-if="scope.row.pm" class="z-price">+ {{ scope.row.number }}</div>
+            <div v-else class="f-price">- {{ scope.row.number }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="用户" min-width="100">
+          <template slot-scope="scope">
+            <span>{{ scope.row.nickname }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="交易类型" min-width="100">
+          <template slot-scope="scope">
+            <span>{{ scope.row.type_name }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="备注" min-width="100">
+          <template slot-scope="scope">
+            <span>{{ scope.row.mark }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right" width="70">
+          <template slot-scope="scope">
+            <a @click="setMark(scope.row)">备注</a>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page
+        <pagination
+          v-if="total"
           :total="total"
-          :current="formValidate.page"
-          show-elevator
-          show-total
-          @on-change="pageChange"
-          :page-size="formValidate.limit"
+          :page.sync="formValidate.page"
+          :limit.sync="formValidate.limit"
+          @pagination="getList"
         />
       </div>
-    </Card>
+    </el-card>
     <!-- 拒绝通过-->
     <Modal v-model="modals" scrollable closable title="备注" :mask-closable="false">
-      <Input v-model="mark_msg.mark" type="textarea" :rows="4" placeholder="请输入备注" />
+      <el-input v-model="mark_msg.mark" type="textarea" :rows="4" placeholder="请输入备注" />
       <div slot="footer">
-        <Button type="primary" size="large" long :loading="modal_loading" @click="oks">确定</Button>
+        <el-button type="primary" size="large" long :loading="modal_loading" @click="oks">确定</el-button>
       </div>
     </Modal>
   </div>
@@ -209,7 +223,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 80;
+      return this.isMobile ? undefined : '85px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'left';
@@ -279,10 +293,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
     // 编辑提交成功
     submitFail() {
       this.getList();

+ 60 - 51
template/admin/src/pages/finance/billingRecords/index.vue

@@ -1,24 +1,24 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
       <div class="ivu-mt tabbox">
-        <Tabs @on-click="onClickTab" class="mb20">
-          <TabPane label="日账单" name="day" />
-          <TabPane label="周账单" name="week" />
-          <TabPane label="月账单" name="month" />
-        </Tabs>
-        <Form
+        <el-tabs v-model="tab" @tab-click="onClickTab" class="mb20">
+          <el-tab-pane label="日账单" name="day" />
+          <el-tab-pane label="周账单" name="week" />
+          <el-tab-pane label="月账单" name="month" />
+        </el-tabs>
+        <el-form
           ref="formValidate"
           :model="formValidate"
           :label-width="labelWidth"
           :label-position="labelPosition"
           @submit.native.prevent
         >
-          <FormItem label="创建时间:">
+          <el-form-item label="创建时间:">
             <DatePicker
               :editable="false"
               :clearable="false"
-              @on-change="onchangeTime"
+              @change="onchangeTime"
               :value="timeVal"
               format="yyyy/MM/dd"
               type="daterange"
@@ -28,47 +28,69 @@
               :options="options"
               class="mr20"
             ></DatePicker>
-          </FormItem>
-        </Form>
+          </el-form-item>
+        </el-form>
       </div>
       <div class="table">
-        <Table
+        <el-table
           :columns="columns"
           :data="orderList"
           ref="table"
           class="mt25"
-          :loading="loading"
-          highlight-row
+          v-loading="loading"
+          highlight-current-row
           no-userFrom-text="暂无数据"
           no-filtered-userFrom-text="暂无筛选结果"
         >
-          <template slot-scope="{ row }" slot="income_price">
-            <span style="color: #f5222d">¥{{ row.income_price }}</span>
-          </template>
-          <template slot-scope="{ row }" slot="exp_price">
-            <span style="color: #00c050">¥{{ row.exp_price }}</span>
-          </template>
-          <template slot-scope="{ row }" slot="entry_price">
-            <span>¥{{ row.entry_price }}</span>
-          </template>
-          <template slot-scope="{ row }" slot="action">
-            <a @click="Info(row)">账单详情</a>
-            <Divider type="vertical" />
-            <a @click="download(row)">下载</a>
-          </template>
-        </Table>
+          <el-table-column label="ID" width="80">
+            <template slot-scope="scope">
+              <span>{{ scope.row.id }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="标题" min-width="130">
+            <template slot-scope="scope">
+              <span>{{ scope.row.title }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="日期" min-width="130">
+            <template slot-scope="scope">
+              <span>{{ scope.row.add_time }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="收入金额" min-width="130">
+            <template slot-scope="scope">
+              <span style="color: #f5222d">¥{{ scope.row.income_price }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="支出金额" min-width="130">
+            <template slot-scope="scope">
+              <span style="color: #00c050">¥{{ scope.row.exp_price }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="入账金额" min-width="130">
+            <template slot-scope="scope">
+              <span>¥{{ scope.row.entry_price }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" fixed="right" width="170">
+            <template slot-scope="scope">
+              <a @click="Info(scope.row)">账单详情</a>
+              <el-divider direction="vertical"></el-divider>
+              <a @click="download(scope.row)">下载</a>
+            </template>
+          </el-table-column>
+        </el-table>
         <div class="acea-row row-right page">
-          <Page
+          <pagination
+            v-if="total"
             :total="total"
-            :current="formValidate.page"
-            show-elevator
-            show-total
-            @on-change="pageChange"
-            :page-size="formValidate.limit"
+            :page.sync="formValidate.page"
+            :limit.sync="formValidate.limit"
+            @pagination="getList"
           />
         </div>
       </div>
-    </Card>
+    </el-card>
     <Modal
       v-model="modals"
       scrollable
@@ -110,7 +132,6 @@ export default {
       total: 0,
       loading: false,
       tab: 'day',
-      staff: [],
       columns: [
         {
           title: 'ID',
@@ -184,7 +205,7 @@ export default {
   },
   computed: {
     labelWidth() {
-      return this.isMobile ? undefined : 80;
+      return this.isMobile ? undefined : '85px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'left';
@@ -192,16 +213,9 @@ export default {
   },
   mounted() {
     this.onClickTab(this.tab);
-    this.staffApi();
   },
   methods: {
-    staffApi() {
-      staffListInfo().then((res) => {
-        this.staff = res.data;
-      });
-    },
-    onClickTab(e) {
-      this.tab = e;
+    onClickTab() {
       this.getList();
     },
     search() {
@@ -236,11 +250,6 @@ export default {
       this.formValidate.page = 1;
       this.getList();
     },
-    //分页
-    pageChange(status) {
-      this.formValidate.page = status;
-      this.getList();
-    },
     // 账单详情
     Info(row) {
       this.ids = row.ids || '';

+ 30 - 44
template/admin/src/pages/finance/billingRecords/orderDetall.vue

@@ -51,26 +51,36 @@
       </div>
     </div>
     <div class="goods-box">
-      <Table :columns="columns1" :data="orderList">
-        <template slot-scope="{ row, index }" slot="id">
-          {{ row.productInfo.id }}
-        </template>
-        <template slot-scope="{ row, index }" slot="name">
-          <div class="product_info">
-            <img :src="row.productInfo.image" alt="" />
-            <p>{{ row.productInfo.store_name }}</p>
-          </div>
-        </template>
-        <template slot-scope="{ row, index }" slot="className">
-          {{ row.class_name }}
-        </template>
-        <template slot-scope="{ row, index }" slot="price">
-          {{ row.productInfo.price }}
-        </template>
-        <template slot-scope="{ row, index }" slot="total_num">
-          {{ row.cart_num }}
-        </template>
-      </Table>
+      <el-table  :data="orderList">
+        <el-table-column label="商品ID" width="80">
+          <template slot-scope="scope">
+            <span>{{ scope.row.productInfo.id }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="商品名称" min-width="160">
+          <template slot-scope="scope">
+            <div class="product_info">
+              <img :src="scope.row.productInfo.image" alt="" />
+              <p>{{ scope.row.productInfo.store_name }}</p>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="商品分类" min-width="160">
+          <template slot-scope="scope">
+            <div>{{ scope.row.class_name }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="商品售价" min-width="160">
+          <template slot-scope="scope">
+            <div>{{ scope.row.productInfo.price }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="商品数量" min-width="160">
+          <template slot-scope="scope">
+            <div>{{ scope.row.cart_num }}</div>
+          </template>
+        </el-table-column>
+      </el-table>
     </div>
     <Spin fix v-if="spinShow"></Spin>
   </div>
@@ -90,30 +100,6 @@ export default {
     return {
       orderDetail: {},
       orderList: [],
-      columns1: [
-        {
-          title: '商品ID',
-          slot: 'id',
-          maxWidth: 80,
-        },
-        {
-          title: '商品名称',
-          slot: 'name',
-          minWidth: 160,
-        },
-        {
-          title: '商品分类',
-          slot: 'className',
-        },
-        {
-          title: '商品售价',
-          slot: 'price',
-        },
-        {
-          title: '商品数量',
-          slot: 'total_num',
-        },
-      ],
       spinShow: false,
     };
   },

+ 79 - 69
template/admin/src/pages/finance/capitalFlow/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt mb10">
-      <Form
+    <el-card :bordered="false" shadow="never" class="ivu-mt mb10">
+      <el-form
         ref="formValidate"
         :model="formValidate"
         :label-width="labelWidth"
@@ -9,13 +9,13 @@
         class="tabform"
         @submit.native.prevent
       >
-        <Row :gutter="24" type="flex">
-          <Col span="24">
-            <FormItem label="订单时间:">
+        <el-row :gutter="24">
+          <el-col :span="24">
+            <el-form-item label="订单时间:">
               <DatePicker
                 :editable="false"
                 :clearable="false"
-                @on-change="onchangeTime"
+                @change="onchangeTime"
                 :value="timeVal"
                 format="yyyy/MM/dd"
                 type="daterange"
@@ -25,27 +25,25 @@
                 :options="options"
                 class="mr20"
               ></DatePicker>
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="交易类型:">
-              <Select
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="交易类型:">
+              <el-select
                 type="button"
                 v-model="formValidate.status"
                 class="mr15"
-                @on-change="selChange"
+                @change="selChange"
                 style="width: 30%"
               >
-                <Option :label="item" :value="index" v-for="(item, index) in withdrawal" :key="index">{{
-                  item
-                }}</Option>
-              </Select>
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="流水搜索:">
+                <el-option :label="item" :value="index" v-for="(item, index) in withdrawal" :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="流水搜索:">
               <div class="acea-row row-middle">
-                <Input
+                <el-input
                   search
                   enter-button
                   @on-search="getList"
@@ -55,56 +53,72 @@
                   style="width: 30%"
                 />
               </div>
-            </FormItem>
-          </Col>
-        </Row>
-      </Form>
-    </Card>
-    <Card :bordered="false" dis-hover>
-      <Table
-        ref="table"
-        :columns="columns"
-        :data="tabList"
-        class="ivu-mt"
-        :loading="loading"
-        no-data-text="暂无数据"
-        no-filtered-data-text="暂无筛选结果"
-      >
-        <template slot-scope="{ row }" slot="extract_price">
-          <div>{{ row.extract_price }}</div>
-        </template>
-        <template slot-scope="{ row }" slot="pay_type">
-          <div v-for="item in payment" :key="item.value">
-            <span v-if="row.pay_type == item.value"> {{ item.title }} </span>
-          </div>
-        </template>
-        <template slot-scope="{ row }" slot="price">
-          <div v-if="row.price >= 0" class="z-price">+{{ row.price }}</div>
-          <div v-if="row.price < 0" class="f-price">{{ row.price }}</div>
-        </template>
-        <template slot-scope="{ row }" slot="add_time">
-          <span> {{ row.add_time | formatDate }}</span>
-        </template>
-        <template slot-scope="{ row }" slot="set">
-          <Button size="small" type="primary" class="item" @click="setMark(row)">备注</Button>
-        </template>
-      </Table>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-card>
+    <el-card :bordered="false" shadow="never">
+      <el-table ref="table" :data="tabList" class="ivu-mt" v-loading="loading" empty-text="暂无数据">
+        <el-table-column label="交易单号" width="180">
+          <template slot-scope="scope">
+            <span>{{ scope.row.flow_id }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="关联订单" min-width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.order_id }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="交易时间" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.add_time }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="交易金额" min-width="90">
+          <template slot-scope="scope">
+            <div v-if="scope.row.price >= 0" class="z-price">+{{ scope.row.price }}</div>
+            <div v-if="scope.row.price < 0" class="f-price">{{ scope.row.price }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="交易用户" min-width="90">
+          <template slot-scope="scope">
+            <span>{{ scope.row.nickname }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="支付方式" min-width="90">
+          <template slot-scope="scope">
+            <div v-for="item in payment" :key="item.value">
+              <span v-if="scope.row.pay_type == item.value"> {{ item.title }} </span>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="备注" min-width="90">
+          <template slot-scope="scope">
+            <span>{{ scope.row.mark }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right" width="170">
+          <template slot-scope="scope">
+            <a @click="setMark(scope.row)">备注</a>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page
+        <pagination
+          v-if="total"
           :total="total"
-          :current="formValidate.page"
-          show-elevator
-          show-total
-          @on-change="pageChange"
-          :page-size="formValidate.limit"
+          :page.sync="formValidate.page"
+          :limit.sync="formValidate.limit"
+          @pagination="getList"
         />
       </div>
-    </Card>
+    </el-card>
     <!-- 拒绝通过-->
     <Modal v-model="modals" scrollable closable title="备注" :mask-closable="false">
-      <Input v-model="mark_msg.mark" type="textarea" :rows="4" placeholder="请输入备注" />
+      <el-input v-model="mark_msg.mark" type="textarea" :rows="4" placeholder="请输入备注" />
       <div slot="footer">
-        <Button type="primary" size="large" long :loading="modal_loading" @click.prevent="oks">确定</Button>
+        <el-button type="primary" size="large" long :loading="modal_loading" @click.prevent="oks">确定</el-button>
       </div>
     </Modal>
   </div>
@@ -225,7 +239,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 80;
+      return this.isMobile ? undefined : '85px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'left';
@@ -285,10 +299,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
     // 编辑提交成功
     submitFail() {
       this.getList();

+ 49 - 54
template/admin/src/pages/finance/commission/handle/commissionDetails.vue

@@ -15,50 +15,70 @@
           </div>
         </div>
       </div>
-      <Divider dashed />
-      <Form ref="formValidate" :label-width="75" :label-position="labelPosition" class="tabform" @submit.native.prevent>
-        <Row :gutter="24" type="flex">
-          <!--                    <Col span="8">-->
-          <!--                        <FormItem label="订单号/昵称:">-->
-          <!--                            <Input enter-button placeholder="请输入" element-id="name" v-model="formValidate.nickname"-->
+      <el-divider direction="vertical" dashed />
+      <el-form
+        ref="formValidate"
+        label-width="75px"
+        :label-position="labelPosition"
+        class="tabform"
+        @submit.native.prevent
+      >
+        <el-row :gutter="24">
+          <!--                    <el-col :span="8">-->
+          <!--                        <el-form-item label="订单号/昵称:">-->
+          <!--                            <el-input enter-button placeholder="请输入" element-id="name" v-model="formValidate.nickname"-->
           <!--                                   clearable/>-->
-          <!--                        </FormItem>-->
-          <!--                    </Col>-->
-          <Col span="12">
-            <FormItem label="时间范围:" class="tab_data">
+          <!--                        </el-form-item>-->
+          <!--                    </el-col>-->
+          <el-col :span="12">
+            <el-form-item label="时间范围:" class="tab_data">
               <DatePicker
                 :editable="false"
                 style="width: 100%"
-                @on-change="onchangeTime"
+                @change="onchangeTime"
                 format="yyyy-MM-dd"
                 type="daterange"
                 placement="bottom-end"
                 placeholder="请选择时间范围"
               ></DatePicker>
-            </FormItem>
-          </Col>
-          <Col span="4">
-            <Button type="primary" icon="ios-search" @click="userSearchs">搜索</Button>
-          </Col>
-        </Row>
-      </Form>
-      <Table
-        :columns="columns"
+            </el-form-item>
+          </el-col>
+          <el-col :span="4">
+            <el-button type="primary" icon="ios-search" @click="userSearchs">搜索</el-button>
+          </el-col>
+        </el-row>
+      </el-form>
+      <el-table
         :data="tabList"
         ref="table"
-        :loading="loading"
+        v-loading="loading"
         no-userFrom-text="暂无数据"
         no-filtered-userFrom-text="暂无筛选结果"
         class="table"
-      ></Table>
+      >
+        <el-table-column label="佣金金额" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.number }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="获得时间" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row._add_time }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="备注" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.mark }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page
+        <pagination
+          v-if="total"
           :total="total"
-          :current="formValidate.page"
-          show-elevator
-          show-total
-          @on-change="pageChange"
-          :page-size="formValidate.limit"
+          :page.sync="formValidate.page"
+          :limit.sync="formValidate.limit"
+          @pagination="getList"
         />
       </div>
     </Modal>
@@ -85,34 +105,13 @@ export default {
         limit: 20, // 每页显示条数
       },
       total: 0,
-      columns: [
-        // {
-        //     title:'昵称',
-        //     key:'nickname'
-        // },
-        {
-          title: '佣金金额',
-          key: 'number',
-          minWidth: 80,
-        },
-        {
-          title: '获得时间',
-          key: '_add_time',
-          minWidth: 150,
-        },
-        {
-          title: '备注',
-          key: 'mark',
-          minWidth: 330,
-        },
-      ],
       tabList: [],
     };
   },
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 100;
+      return this.isMobile ? undefined : '100px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'left';
@@ -164,10 +163,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
     // 搜索
     userSearchs() {
       this.formValidate.page = 1;

+ 56 - 40
template/admin/src/pages/finance/commission/index.vue

@@ -1,28 +1,28 @@
 <template>
   <div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Form
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-form
         ref="formValidate"
         :label-width="labelWidth"
         :label-position="labelPosition"
         class="tabform"
         @submit.native.prevent
       >
-        <Row :gutter="24" type="flex">
-          <Col :xl="5" :lg="8" :md="10" :sm="11" :xs="24" class="mr10">
-            <FormItem label="昵称/ID:">
-              <Input
+        <el-row :gutter="24">
+          <el-col :xl="5" :lg="8" :md="10" :sm="11" :xs="24" class="mr10">
+            <el-form-item label="昵称/ID:">
+              <el-input
                 enter-button
                 placeholder="请输入"
                 element-id="nickname"
                 v-model="formValidate.nickname"
                 clearable
               />
-            </FormItem>
-          </Col>
-          <Col :xl="6" :lg="12" :md="13" :sm="12" :xs="24">
-            <FormItem label="佣金范围:" class="tab_data">
-              <Input-number
+            </el-form-item>
+          </el-col>
+          <el-col :xl="6" :lg="12" :md="13" :sm="12" :xs="24">
+            <el-form-item label="佣金范围:" class="tab_data">
+              <el-input-number
                 type="number"
                 :min="0"
                 enter-button
@@ -32,7 +32,7 @@
                 v-model="formValidate.price_min"
               />
               <span class="mr10">一</span>
-              <Input-number
+              <el-input-number
                 type="number"
                 :min="0"
                 enter-button
@@ -40,40 +40,60 @@
                 element-id="price_max"
                 v-model="formValidate.price_max"
               />
-            </FormItem>
-          </Col>
-          <Col>
-            <Button type="primary" icon="ios-search" @click="userSearchs">搜索</Button>
-            <Button v-auth="['export-userCommission']" class="export" icon="ios-share-outline" @click="exports"
+            </el-form-item>
+          </el-col>
+          <el-col>
+            <el-button type="primary" icon="ios-search" @click="userSearchs">搜索</el-button>
+            <el-button v-auth="['export-userCommission']" class="export" icon="ios-share-outline" @click="exports"
               >导出
-            </Button>
-          </Col>
-        </Row>
-      </Form>
-      <Table
+            </el-button>
+          </el-col>
+        </el-row>
+      </el-form>
+      <el-table
         ref="table"
         :columns="columns"
         :data="tabList"
         :loading="loading"
-        no-data-text="暂无数据"
-        no-filtered-data-text="暂无筛选结果"
+        empty-text="暂无数据"
         @on-sort-change="sortChanged"
       >
-        <!-- <template slot-scope="{ row, index }" slot="action">
-          <a @click="Info(row)">详情</a>
-        </template> -->
-      </Table>
+        <el-table-column label="用户信息" min-width="100">
+          <template slot-scope="scope">
+            <span>{{ scope.row.nickname }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="总佣金金额" min-width="100">
+          <template slot-scope="scope">
+            <span>{{ scope.row.sum_number }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="账户余额" min-width="100">
+          <template slot-scope="scope">
+            <span>{{ scope.row.now_money }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="账户佣金" min-width="100">
+          <template slot-scope="scope">
+            <span>{{ scope.row.brokerage_price }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="提现到账佣金" min-width="100">
+          <template slot-scope="scope">
+            <span>{{ scope.row.extract_price }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page
+        <pagination
+          v-if="total"
           :total="total"
-          :current="formValidate.page"
-          show-elevator
-          show-total
-          :page-size="formValidate.limit"
-          @on-change="pageChange"
+          :page.sync="formValidate.page"
+          :limit.sync="formValidate.limit"
+          @pagination="getList"
         />
       </div>
-    </Card>
+    </el-card>
     <commission-details ref="commission"></commission-details>
   </div>
 </template>
@@ -138,7 +158,7 @@ export default {
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 80;
+      return this.isMobile ? undefined : '85px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'left';
@@ -163,10 +183,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
     // 搜索
     userSearchs() {
       this.formValidate.page = 1;

+ 68 - 90
template/admin/src/pages/finance/components/commissionDetails/index.vue

@@ -1,58 +1,83 @@
 <template>
   <div>
-    <Form
+    <el-form
       ref="formValidate"
       :label-width="labelWidth"
       :label-position="labelPosition"
       class="tabform"
       @submit.native.prevent
     >
-      <Row type="flex" :gutter="24">
-        <Col v-bind="grid">
-          <FormItem label="订单搜索:" label-for="status1">
-            <Input v-model="formValidate.keywords" placeholder="请输入交易单号/交易人" class="input"></Input>
-          </FormItem>
-        </Col>
-        <Col>
+      <el-row :gutter="24">
+        <el-col v-bind="grid">
+          <el-form-item label="订单搜索:" label-for="status1">
+            <el-input v-model="formValidate.keywords" placeholder="请输入交易单号/交易人" class="input"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col>
           <div class="search" @click="searchs">搜索</div>
-        </Col>
-        <Col>
+        </el-col>
+        <el-col>
           <div class="reset" @click="reset">重置</div>
-        </Col>
-      </Row>
-    </Form>
-    <!-- <Divider dashed/> -->
-    <Table
-      :columns="columns"
+        </el-col>
+      </el-row>
+    </el-form>
+    <el-table
       :data="tabList"
       ref="table"
-      :loading="loading"
+      v-loading="loading"
       no-userFrom-text="暂无数据"
       no-filtered-userFrom-text="暂无筛选结果"
       class="table"
     >
-      <template slot-scope="{ row }" slot="extract_price">
-        <div>{{ row.extract_price }}</div>
-      </template>
-      <template slot-scope="{ row }" slot="pay_type">
-        <span> {{ row.pay_type_name }} </span>
-      </template>
-      <template slot-scope="{ row }" slot="price">
-        <div v-if="row.price >= 0" class="z-price">+{{ row.price }}</div>
-        <div v-if="row.price < 0" class="f-price">{{ row.price }}</div>
-      </template>
-      <template slot-scope="{ row }" slot="add_time">
-        <span> {{ row.add_time | formatDate }}</span>
-      </template>
-    </Table>
+      <el-table-column label="交易单号" width="180">
+        <template slot-scope="scope">
+          <span>{{ scope.row.flow_id }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="关联订单" min-width="130">
+        <template slot-scope="scope">
+          <span>{{ scope.row.order_id }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="交易时间" min-width="130">
+        <template slot-scope="scope">
+          <span>{{ scope.row.add_time }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="交易金额" min-width="130">
+        <template slot-scope="scope">
+          <div v-if="scope.row.price >= 0" class="z-price">+{{ scope.row.price }}</div>
+          <div v-if="scope.row.price < 0" class="f-price">{{ scope.row.price }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column label="交易用户" min-width="130">
+        <template slot-scope="scope">
+          <span>{{ scope.row.nickname }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="交易类型" min-width="130">
+        <template slot-scope="scope">
+          <span>{{ scope.row.pay_type_name }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="支付方式" min-width="130">
+        <template slot-scope="scope">
+          <span>{{ scope.row.order_id }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="备注" min-width="130">
+        <template slot-scope="scope">
+          <span>{{ scope.row.mark }}</span>
+        </template>
+      </el-table-column>
+    </el-table>
     <div class="acea-row row-right page">
-      <Page
+      <pagination
+        v-if="total"
         :total="total"
-        :current="formValidate.page"
-        show-elevator
-        show-total
-        @on-change="pageChange"
-        :page-size="formValidate.limit"
+        :page.sync="formValidate.page"
+        :limit.sync="formValidate.limit"
+        @pagination="getList"
       />
     </div>
   </div>
@@ -85,48 +110,6 @@ export default {
         limit: 20,
       },
       total: 0,
-      columns: [
-        {
-          title: '交易单号',
-          key: 'flow_id',
-          width: 180,
-        },
-        {
-          title: '关联订单',
-          key: 'order_id',
-          minWidth: 180,
-        },
-        {
-          title: '交易时间',
-          key: 'add_time',
-          minWidth: 120,
-        },
-        {
-          title: '交易金额',
-          slot: 'price',
-          minWidth: 80,
-        },
-        {
-          title: '交易用户',
-          key: 'nickname',
-          minWidth: 80,
-        },
-        {
-          title: '交易类型',
-          key: 'trading_type',
-          minWidth: 80,
-        },
-        {
-          title: '支付方式',
-          slot: 'pay_type',
-          minWidth: 100,
-        },
-        {
-          title: '备注',
-          key: 'mark',
-          minWidth: 100,
-        },
-      ],
       tabList: [],
       payment: [
         {
@@ -165,14 +148,14 @@ export default {
   computed: {
     ...mapState('admin/layout', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 80;
+      return this.isMobile ? undefined : '85px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'left';
     },
   },
   mounted() {
-    this.getList(this.ids);
+    this.getList();
   },
   methods: {
     staffApi() {
@@ -182,7 +165,7 @@ export default {
     },
     searchs() {
       this.formValidate.page = 1;
-      this.getList(this.ids);
+      this.getList();
     },
     // 时间
     onchangeTime(e) {
@@ -190,9 +173,8 @@ export default {
       this.formValidate.end_time = e[1];
     },
     // 列表
-    getList(id) {
-      this.ids = id;
-      this.formValidate.ids = id;
+    getList() {
+      this.formValidate.ids = this.ids;
       this.loading = true;
       getFlowList(this.formValidate)
         .then(async (res) => {
@@ -206,10 +188,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList(this.ids);
-    },
     reset() {
       this.formValidate = {
         ids: this.ids,
@@ -219,7 +197,7 @@ export default {
         page: 1,
         limit: 10,
       };
-      this.getList(this.ids);
+      this.getList();
     },
     // 关闭按钮
     cancel() {

+ 75 - 96
template/admin/src/pages/finance/financialRecords/bill/index.vue

@@ -3,8 +3,8 @@
     <div class="i-layout-page-header header-title">
       <span class="ivu-page-header-title">{{ $route.meta.title }}</span>
     </div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <Form
+    <el-card :bordered="false" shadow="never" class="ivu-mt">
+      <el-form
         ref="formValidate"
         :model="formValidate"
         :label-width="labelWidth"
@@ -12,68 +12,91 @@
         class="tabform"
         @submit.native.prevent
       >
-        <Row :gutter="24" type="flex">
-          <Col :xl="6" :lg="12" :md="13" :sm="12" :xs="24">
-            <FormItem label="关键字:">
-              <Input enter-button placeholder="请输入" element-id="name" v-model="formValidate.nickname" />
-            </FormItem>
-          </Col>
-          <Col :xl="6" :lg="12" :md="13" :sm="12" :xs="24">
-            <FormItem label="时间范围:" class="tab_data">
+        <el-row :gutter="24">
+          <el-col :xl="6" :lg="12" :md="13" :sm="12" :xs="24">
+            <el-form-item label="关键字:">
+              <el-input enter-button placeholder="请输入" element-id="name" v-model="formValidate.nickname" />
+            </el-form-item>
+          </el-col>
+          <el-col :xl="6" :lg="12" :md="13" :sm="12" :xs="24">
+            <el-form-item label="时间范围:" class="tab_data">
               <DatePicker
                 :editable="false"
                 style="width: 80%"
-                @on-change="onchangeTime"
+                @change="onchangeTime"
                 format="yyyy/MM/dd"
                 type="daterange"
                 placement="bottom-end"
                 placeholder="请选择时间"
               ></DatePicker>
-            </FormItem>
-          </Col>
-          <Col :xl="6" :lg="12" :md="13" :sm="12" :xs="24">
-            <FormItem label="筛选类型:" class="tab_data">
-              <Select v-model="formValidate.type" style="width: 200px; height: 32px" clearable>
-                <Option v-for="(item, index) in billList" :key="index" :value="item.type">{{ item.title }}</Option>
-              </Select>
-            </FormItem>
-          </Col>
-          <Col span="6">
-            <FormItem>
-              <Button type="primary" icon="ios-search" @click="userSearchs">搜索</Button>
-              <Button v-auth="['export-userFinance']" class="export" icon="ios-share-outline" @click="exports"
+            </el-form-item>
+          </el-col>
+          <el-col :xl="6" :lg="12" :md="13" :sm="12" :xs="24">
+            <el-form-item label="筛选类型:" class="tab_data">
+              <el-select v-model="formValidate.type" style="width: 200px; height: 32px" clearable>
+                <el-option
+                  v-for="(item, index) in billList"
+                  :key="index"
+                  :value="item.type"
+                  :label="item.title"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item>
+              <el-button type="primary" icon="ios-search" @click="userSearchs">搜索</el-button>
+              <el-button v-auth="['export-userFinance']" class="export" icon="ios-share-outline" @click="exports"
                 >导出
-              </Button>
-            </FormItem>
-          </Col>
-        </Row>
-      </Form>
-      <Table
-        ref="table"
-        highlight-row
-        :columns="columns"
-        :data="tabList"
-        :loading="loading"
-        no-data-text="暂无数据"
-        no-filtered-data-text="暂无筛选结果"
-      >
-        <template slot-scope="{ row }" slot="number">
-          <div :class="[row.pm === 1 ? 'green' : 'red']">
-            {{ row.pm === 1 ? row.number : '-' + row.number }}
-          </div>
-        </template>
-      </Table>
+              </el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <el-table ref="table" highlight-current-row :data="tabList" v-loading="loading" empty-text="暂无数据">
+        <el-table-column label="用户ID" width="80">
+          <template slot-scope="scope">
+            <span>{{ scope.row.uid }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="昵称" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.nickname }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="金额" min-width="130">
+          <template slot-scope="scope">
+            <div :class="[scope.row.pm === 1 ? 'green' : 'red']">
+              {{ scope.row.pm === 1 ? scope.row.number : '-' + scope.row.number }}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="类型" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.title }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="备注" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.mark }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="创建时间" min-width="130">
+          <template slot-scope="scope">
+            <span>{{ scope.row.add_time }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
       <div class="acea-row row-right page">
-        <Page
+        <pagination
+          v-if="total"
           :total="total"
-          :current="formValidate.page"
-          show-elevator
-          show-total
-          :page-size="formValidate.limit"
-          @on-change="pageChange"
+          :page.sync="formValidate.page"
+          :limit.sync="formValidate.limit"
+          @pagination="getList"
         />
       </div>
-    </Card>
+    </el-card>
   </div>
 </template>
 
@@ -97,52 +120,12 @@ export default {
       loading: false,
       tabList: [],
       total: 0,
-      columns: [
-        {
-          title: '用户ID',
-          key: 'uid',
-          sortable: true,
-          width: 80,
-        },
-        {
-          title: '昵称',
-          key: 'nickname',
-          minWidth: 150,
-        },
-        {
-          title: '金额',
-          minWidth: 150,
-          slot: 'number',
-          // render: (h, params) => {
-          //     return h('div', {
-          //         style: {
-          //             color: '#FF5722'
-          //         }
-          //     })
-          // }
-        },
-        {
-          title: '类型',
-          key: 'title',
-          minWidth: 100,
-        },
-        {
-          title: '备注',
-          key: 'mark',
-          minWidth: 150,
-        },
-        {
-          title: '创建时间',
-          key: 'add_time',
-          minWidth: 200,
-        },
-      ],
     };
   },
   computed: {
     ...mapState('media', ['isMobile']),
     labelWidth() {
-      return this.isMobile ? undefined : 80;
+      return this.isMobile ? undefined : '85px';
     },
     labelPosition() {
       return this.isMobile ? 'top' : 'right';
@@ -183,10 +166,6 @@ export default {
           this.$Message.error(res.msg);
         });
     },
-    pageChange(index) {
-      this.formValidate.page = index;
-      this.getList();
-    },
     // 搜索
     userSearchs() {
       this.formValidate.page = 1;

+ 0 - 0
template/admin/src/pages/finance/financialRecords/recharge/index.vue


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini