Просмотр исходного кода

Wesmiler 拾光销售 初始化

APPLE 3 лет назад
Родитель
Сommit
3083630cd8
38 измененных файлов с 7926 добавлено и 9203 удалено
  1. 1 1
      addons/admin/dist/index.html
  2. 117 0
      addons/admin/dist/static/js/0.js
  3. 25 82
      addons/admin/dist/static/js/1.js
  4. 25 59
      addons/admin/dist/static/js/10.js
  5. 15 27
      addons/admin/dist/static/js/11.js
  6. 70 25
      addons/admin/dist/static/js/12.js
  7. 70 25
      addons/admin/dist/static/js/13.js
  8. 40 51
      addons/admin/dist/static/js/14.js
  9. 5733 45
      addons/admin/dist/static/js/15.js
  10. 123 40
      addons/admin/dist/static/js/16.js
  11. 46 5734
      addons/admin/dist/static/js/17.js
  12. 40 250
      addons/admin/dist/static/js/18.js
  13. 40 123
      addons/admin/dist/static/js/19.js
  14. 975 23
      addons/admin/dist/static/js/2.js
  15. 10 93
      addons/admin/dist/static/js/20.js
  16. 10 82
      addons/admin/dist/static/js/21.js
  17. 10 82
      addons/admin/dist/static/js/22.js
  18. 10 82
      addons/admin/dist/static/js/23.js
  19. 10 10
      addons/admin/dist/static/js/24.js
  20. 10 10
      addons/admin/dist/static/js/25.js
  21. 10 10
      addons/admin/dist/static/js/26.js
  22. 10 10
      addons/admin/dist/static/js/27.js
  23. 0 25
      addons/admin/dist/static/js/28.js
  24. 0 25
      addons/admin/dist/static/js/29.js
  25. 234 731
      addons/admin/dist/static/js/3.js
  26. 0 25
      addons/admin/dist/static/js/30.js
  27. 0 25
      addons/admin/dist/static/js/31.js
  28. 85 428
      addons/admin/dist/static/js/4.js
  29. 51 117
      addons/admin/dist/static/js/5.js
  30. 40 52
      addons/admin/dist/static/js/6.js
  31. 40 40
      addons/admin/dist/static/js/7.js
  32. 40 40
      addons/admin/dist/static/js/8.js
  33. 31 53
      addons/admin/dist/static/js/9.js
  34. 3 3
      addons/admin/dist/static/js/app.js
  35. 2 25
      addons/admin/src/views/member/member/index.vue
  36. 0 171
      addons/admin/src/views/member/memberlevel/index.vue
  37. 0 359
      addons/admin/src/views/user/info.vue
  38. 0 220
      addons/admin/src/views/user/message.vue

Разница между файлами не показана из-за своего большого размера
+ 1 - 1
addons/admin/dist/index.html


Разница между файлами не показана из-за своего большого размера
+ 117 - 0
addons/admin/dist/static/js/0.js


Разница между файлами не показана из-за своего большого размера
+ 25 - 82
addons/admin/dist/static/js/1.js


Разница между файлами не показана из-за своего большого размера
+ 25 - 59
addons/admin/dist/static/js/10.js


Разница между файлами не показана из-за своего большого размера
+ 15 - 27
addons/admin/dist/static/js/11.js


Разница между файлами не показана из-за своего большого размера
+ 70 - 25
addons/admin/dist/static/js/12.js


Разница между файлами не показана из-за своего большого размера
+ 70 - 25
addons/admin/dist/static/js/13.js


Разница между файлами не показана из-за своего большого размера
+ 40 - 51
addons/admin/dist/static/js/14.js


Разница между файлами не показана из-за своего большого размера
+ 5733 - 45
addons/admin/dist/static/js/15.js


Разница между файлами не показана из-за своего большого размера
+ 123 - 40
addons/admin/dist/static/js/16.js


Разница между файлами не показана из-за своего большого размера
+ 46 - 5734
addons/admin/dist/static/js/17.js


Разница между файлами не показана из-за своего большого размера
+ 40 - 250
addons/admin/dist/static/js/18.js


Разница между файлами не показана из-за своего большого размера
+ 40 - 123
addons/admin/dist/static/js/19.js


Разница между файлами не показана из-за своего большого размера
+ 975 - 23
addons/admin/dist/static/js/2.js


Разница между файлами не показана из-за своего большого размера
+ 10 - 93
addons/admin/dist/static/js/20.js


Разница между файлами не показана из-за своего большого размера
+ 10 - 82
addons/admin/dist/static/js/21.js


Разница между файлами не показана из-за своего большого размера
+ 10 - 82
addons/admin/dist/static/js/22.js


Разница между файлами не показана из-за своего большого размера
+ 10 - 82
addons/admin/dist/static/js/23.js


Разница между файлами не показана из-за своего большого размера
+ 10 - 10
addons/admin/dist/static/js/24.js


Разница между файлами не показана из-за своего большого размера
+ 10 - 10
addons/admin/dist/static/js/25.js


Разница между файлами не показана из-за своего большого размера
+ 10 - 10
addons/admin/dist/static/js/26.js


Разница между файлами не показана из-за своего большого размера
+ 10 - 10
addons/admin/dist/static/js/27.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 25
addons/admin/dist/static/js/28.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 25
addons/admin/dist/static/js/29.js


Разница между файлами не показана из-за своего большого размера
+ 234 - 731
addons/admin/dist/static/js/3.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 25
addons/admin/dist/static/js/30.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 25
addons/admin/dist/static/js/31.js


Разница между файлами не показана из-за своего большого размера
+ 85 - 428
addons/admin/dist/static/js/4.js


Разница между файлами не показана из-за своего большого размера
+ 51 - 117
addons/admin/dist/static/js/5.js


Разница между файлами не показана из-за своего большого размера
+ 40 - 52
addons/admin/dist/static/js/6.js


Разница между файлами не показана из-за своего большого размера
+ 40 - 40
addons/admin/dist/static/js/7.js


Разница между файлами не показана из-за своего большого размера
+ 40 - 40
addons/admin/dist/static/js/8.js


Разница между файлами не показана из-за своего большого размера
+ 31 - 53
addons/admin/dist/static/js/9.js


Разница между файлами не показана из-за своего большого размера
+ 3 - 3
addons/admin/dist/static/js/app.js


+ 2 - 25
addons/admin/src/views/member/member/index.vue

@@ -86,18 +86,8 @@
                 format="yyyy-MM-dd">
               </el-date-picker>
             </el-form-item>
-            <el-form-item label="所在城市:" prop="city">
-              <el-cascader v-model="editForm.city" :options="cityData.cityData" clearable popper-class="ele-pop-wrap-higher"/>
-            </el-form-item>
           </el-col>
           <el-col :sm="12">
-            <el-form-item label="会员等级" prop="member_level" :rules="{
-                    required: true, message: '所属会员等级不能为空', trigger: 'change'
-                  }">
-              <el-select filterable clearable v-model="editForm.member_level" size="small" placeholder="-请选择会员等级-" class="ele-block">
-                <el-option v-for="item in memberLevelList" :key="item.id" :label="item.name" :value="item.id"/>
-              </el-select>
-            </el-form-item>
              <el-form-item label="会员昵称:" prop="nickname">
               <el-input v-model="editForm.nickname" placeholder="请输入会员昵称" clearable/>
             </el-form-item>
@@ -160,7 +150,7 @@ export default {
   },
   components: {uploadImage},
   mounted() {
-    this.getMemberLevelList(); // 查询职级列表
+
   },
   methods: {
     /* 显示编辑 */
@@ -244,20 +234,7 @@ export default {
         this.$message.error(e.message);
       });
     },
-    /**
-     * 获取职级列表
-     */
-    getMemberLevelList() {
-      this.$http.get('/memberlevel/getMemberLevelList').then(res => {
-        if (res.data.code === 0) {
-          this.memberLevelList = res.data.data;
-        } else {
-          this.$message.error(res.data.msg);
-        }
-      }).catch(e => {
-        this.$message.error(e.message);
-      });
-    },
+
   }
 }
 </script>

+ 0 - 171
addons/admin/src/views/member/memberlevel/index.vue

@@ -1,171 +0,0 @@
-<template>
-  <div class="ele-body">
-    <el-card shadow="never">
-      <!-- 搜索表单 -->
-      <el-form :model="table.where" label-width="77px" class="ele-form-search"
-               @keyup.enter.native="$refs.table.reload()" @submit.native.prevent>
-        <el-row :gutter="15">
-          <el-col :md="6" :sm="12">
-            <el-form-item label="等级名称:">
-              <el-input v-model="table.where.name" placeholder="请输入等级名称" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :md="6" :sm="12">
-            <div class="ele-form-actions">
-              <el-button type="primary" @click="$refs.table.reload()" icon="el-icon-search" class="ele-btn-icon">查询
-              </el-button>
-              <el-button @click="(table.where={})&&$refs.table.reload()">重置</el-button>
-            </div>
-          </el-col>
-        </el-row>
-      </el-form>
-      <!-- 操作按钮 -->
-      <div class="ele-table-tool ele-table-tool-default">
-        <el-button @click="showEdit=true" type="primary" icon="el-icon-plus" class="ele-btn-icon" size="small" v-if="permission.includes('sys:memberlevel:add')">添加
-        </el-button>
-        <el-button @click="remove()" type="danger" icon="el-icon-delete" class="ele-btn-icon" size="small" v-if="permission.includes('sys:memberlevel:dall')">批量删除
-        </el-button>
-      </div>
-      <!-- 数据表格 -->
-      <ele-data-table ref="table" :config="table" :choose.sync="choose" height="calc(100vh - 315px)" highlight-current-row>
-        <template slot-scope="{index}">
-          <el-table-column type="selection" width="45" align="center" fixed="left"/>
-          <el-table-column type="index" :index="index" label="编号" width="60" align="center" fixed="left" show-overflow-tooltip/>
-          <el-table-column prop="name" label="等级名称" sortable="custom" show-overflow-tooltip min-width="250"/>
-          <el-table-column prop="sort" label="排序" sortable="custom" show-overflow-tooltip/>
-          <el-table-column label="创建时间" sortable="custom" show-overflow-tooltip min-width="160">
-            <template slot-scope="{row}">{{ row.create_time | toDateString }}</template>
-          </el-table-column>
-          <el-table-column label="更新时间" sortable="custom" show-overflow-tooltip min-width="160">
-            <template slot-scope="{row}">{{ row.update_time | toDateString }}</template>
-          </el-table-column>
-          <el-table-column label="操作" width="130px" align="center" :resizable="false"  fixed="right">
-            <template slot-scope="{row}">
-              <el-link @click="edit(row)" icon="el-icon-edit" type="primary" :underline="false" v-if="permission.includes('sys:memberlevel:edit')">修改</el-link>
-              <el-popconfirm title="确定要删除此会员等级吗?" @confirm="remove(row)" class="ele-action">
-                <el-link slot="reference" icon="el-icon-delete" type="danger" :underline="false" v-if="permission.includes('sys:memberlevel:delete')">删除</el-link>
-              </el-popconfirm>
-            </template>
-          </el-table-column>
-        </template>
-      </ele-data-table>
-    </el-card>
-    <!-- 编辑弹窗 -->
-    <el-dialog :title="editForm.id?'修改等级':'修改等级'" :visible.sync="showEdit" width="400px"
-               @closed="editForm={}" :destroy-on-close="true" :lock-scroll="false">
-      <el-form :model="editForm" ref="editForm" :rules="editRules" label-width="82px">
-        <el-form-item label="等级名称:" prop="name">
-          <el-input v-model="editForm.name" placeholder="请输入等级名称" clearable/>
-        </el-form-item>
-        <el-form-item label="排序号:" prop="sort">
-          <el-input-number v-model="editForm.sort" controls-position="right" :min="0"
-                            placeholder="请输入排序号" class="ele-fluid ele-text-left"/>
-        </el-form-item>
-      </el-form>
-      <div slot="footer">
-        <el-button @click="showEdit=false">取消</el-button>
-        <el-button type="primary" @click="save">保存</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { mapGetters } from "vuex";
-export default {
-  name: "SysMemberLevel",
-  data() {
-    return {
-      table: {url: '/memberlevel/index', where: {}},  // 表格配置
-      choose: [],  // 表格选中数据
-      showEdit: false,  // 是否显示表单弹窗
-      editForm: {},  // 表单数据
-      editRules: {  // 表单验证规则
-        name: [
-          {required: true, message: '请输入等级名称', trigger: 'blur'}
-        ],
-        sort: [
-          {required: true, message: '请输入排序', trigger: 'blur'}
-        ],
-      },
-    }
-  },
-  computed: {
-    ...mapGetters(["permission"]),
-  },
-  mounted() {
-  },
-  methods: {
-    /* 显示编辑 */
-    edit(row) {
-      this.editForm = Object.assign({}, row);
-      this.showEdit = true;
-    },
-    /* 保存编辑 */
-    save() {
-      this.$refs['editForm'].validate((valid) => {
-        if (valid) {
-          const loading = this.$loading({lock: true});
-          this.$http.post('/memberlevel/edit', this.editForm).then(res => {
-            loading.close();
-            if (res.data.code === 0) {
-              this.showEdit = false;
-              this.$message({type: 'success', message: res.data.msg});
-              this.$refs.table.reload();
-            } else {
-              this.$message.error(res.data.msg);
-            }
-          }).catch(e => {
-            loading.close();
-            this.$message.error(e.message);
-          });
-        } else {
-          return false;
-        }
-      });
-    },
-    /* 删除 */
-    remove(row) {
-      if (!row) {  // 批量删除
-        if (this.choose.length === 0) return this.$message.error('请至少选择一条数据');
-        let ids = this.choose.map(d => d.id);
-        this.$confirm('确定要删除选中的等级吗?', '提示', {type: 'warning'}).then(() => {
-          const loading = this.$loading({lock: true});
-          this.$http.post('/memberlevel/delete', {id: ids}).then(res => {
-            loading.close();
-            if (res.data.code === 0) {
-              this.$message({type: 'success', message: res.data.msg});
-              this.$refs.table.reload();
-            } else {
-              this.$message.error(res.data.msg);
-            }
-          }).catch(e => {
-            loading.close();
-            this.$message.error(e.message);
-          });
-        }).catch(() => 0);
-      } else {  // 单个删除
-        const loading = this.$loading({lock: true});
-        this.$http.post('/memberlevel/delete', {id:row.id}).then(res => {
-          loading.close();
-          if (res.data.code === 0) {
-            this.$message({type: 'success', message: res.data.msg});
-            this.$refs.table.reload();
-          } else {
-            this.$message.error(res.data.msg);
-          }
-        }).catch(e => {
-          loading.close();
-          this.$message.error(e.message);
-        });
-      }
-    },
-  }
-}
-</script>
-
-<style scoped>
-.ele-block >>> .el-upload, .ele-block >>> .el-upload-dragger {
-  width: 100%;
-}
-</style>

+ 0 - 359
addons/admin/src/views/user/info.vue

@@ -1,359 +0,0 @@
-<template>
-  <div class="ele-body">
-    <el-row :gutter="15">
-      <el-col :md="6" :sm="8">
-        <el-card shadow="never" body-style="padding: 25px;">
-          <div class="user-info-card">
-            <div class="user-info-avatar-group" @click="showCropper=true">
-              <img class="user-info-avatar" :src="form.avatar" alt=""/>
-              <i class="el-icon-upload2"></i>
-            </div>
-            <h2 class="user-info-name">相约在冬季</h2>
-            <div class="user-info-desc">为梦想而创作,海纳百川,有容乃大!</div>
-          </div>
-          <div class="user-info-list">
-            <div class="user-info-item">
-              <i class="el-icon-user"></i><span>资深PHP架构师</span>
-            </div>
-            <div class="user-info-item">
-              <i class="el-icon-office-building"></i><span>RXThinkCMF研发中心 - 架构设计部 - 资深架构师</span>
-            </div>
-            <div class="user-info-item">
-              <i class="el-icon-location-information"></i><span>中国 • 江苏省 • 南京市</span>
-            </div>
-            <div class="user-info-item">
-              <i class="el-icon-_school"></i><span>Laravel8、JWT、Vue、ElementUI</span>
-            </div>
-          </div>
-          <div style="margin: 30px 0 20px 0;">
-            <el-divider class="ele-divider-dashed ele-divider-base"/>
-          </div>
-          <h6 class="ele-text" style="margin-bottom: 8px;">标签</h6>
-          <div class="user-info-tags">
-            <el-tag size="mini" type="info">中国硅谷</el-tag>
-            <el-tag size="mini" type="info">创业者</el-tag>
-            <el-tag size="mini" type="info">厚德载物</el-tag>
-            <el-tag size="mini" type="info">坚持</el-tag>
-            <el-tag size="mini" type="info">毅力</el-tag>
-            <el-tag size="mini" type="info">王者归来</el-tag>
-          </div>
-        </el-card>
-      </el-col>
-      <el-col :md="18" :sm="16">
-        <el-card shadow="never" body-style="padding-top: 5px;">
-          <el-tabs v-model="active" class="user-info-tabs">
-            <el-tab-pane label="基本信息" name="info">
-              <el-form ref="infoForm" :model="form" :rules="rules" label-width="90px"
-                       style="max-width: 450px;padding-top: 40px;" @keyup.enter.native="save"
-                       @submit.native.prevent>
-                <el-form-item label="真实姓名:" prop="realname">
-                  <el-input v-model="form.realname" placeholder="请输入真实姓名" clearable/>
-                </el-form-item>
-                <el-form-item label="昵称:" prop="nickname">
-                  <el-input v-model="form.nickname" placeholder="请输入昵称" clearable/>
-                </el-form-item>
-                <el-form-item label="性别:" prop="gender">
-                  <el-select v-model="form.gender" placeholder="请选择性别" class="ele-fluid" clearable>
-                    <el-option label="男" :value="1"/>
-                    <el-option label="女" :value="2"/>
-                    <el-option label="保密" :value="3"/>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="联系方式:" prop="mobile">
-                  <el-input v-model="form.mobile" placeholder="请输入联系方式" clearable/>
-                </el-form-item>
-                <el-form-item label="电子邮箱:" prop="email">
-                  <el-input v-model="form.email" placeholder="请输入电子邮箱" clearable/>
-                </el-form-item>
-                <el-form-item label="个人简介:">
-                  <el-input v-model="form.intro" placeholder="请输入个人简介" :rows="4" type="textarea"/>
-                </el-form-item>
-                <el-form-item>
-                  <el-button type="primary" @click="save" :loading="loading">保存更改</el-button>
-                </el-form-item>
-              </el-form>
-            </el-tab-pane>
-            <el-tab-pane label="账号绑定" name="account">
-              <div class="user-account-list">
-                <div class="user-account-item ele-cell">
-                  <div class="ele-cell-content">
-                    <div>密保手机</div>
-                    <div class="ele-text-secondary">已绑定手机:152****4151</div>
-                  </div>
-                  <el-link type="primary" :underline="false">去修改</el-link>
-                </div>
-                <el-divider/>
-                <div class="user-account-item ele-cell">
-                  <div class="ele-cell-content">
-                    <div>密保邮箱</div>
-                    <div class="ele-text-secondary">已绑定邮箱:laravel.qq.com</div>
-                  </div>
-                  <el-link type="primary" :underline="false">去修改</el-link>
-                </div>
-                <el-divider/>
-                <div class="user-account-item ele-cell">
-                  <div class="ele-cell-content">
-                    <div>密保问题</div>
-                    <div class="ele-text-secondary">未设置密保问题</div>
-                  </div>
-                  <el-link type="primary" :underline="false">去设置</el-link>
-                </div>
-                <el-divider/>
-                <div class="user-account-item ele-cell">
-                  <i class="user-account-icon el-icon-_qq"></i>
-                  <div class="ele-cell-content">
-                    <div>绑定QQ</div>
-                    <div class="ele-text-secondary">当前未绑定QQ账号</div>
-                  </div>
-                  <el-link type="primary" :underline="false">去绑定</el-link>
-                </div>
-                <el-divider/>
-                <div class="user-account-item ele-cell">
-                  <i class="user-account-icon el-icon-_wechat"></i>
-                  <div class="ele-cell-content">
-                    <div>绑定微信</div>
-                    <div class="ele-text-secondary">当前未绑定绑定微信账号</div>
-                  </div>
-                  <el-link type="primary" :underline="false">去绑定</el-link>
-                </div>
-                <el-divider/>
-                <div class="user-account-item ele-cell">
-                  <i class="user-account-icon el-icon-_alipay"></i>
-                  <div class="ele-cell-content">
-                    <div>绑定支付宝</div>
-                    <div class="ele-text-secondary">当前未绑定绑定支付宝账号</div>
-                  </div>
-                  <el-link type="primary" :underline="false">去绑定</el-link>
-                </div>
-              </div>
-            </el-tab-pane>
-          </el-tabs>
-        </el-card>
-      </el-col>
-    </el-row>
-    <!-- 头像裁剪弹窗 -->
-    <ele-cropper-dialog :show.sync="showCropper" @crop="onCrop" :src="form.avatar" :lock-scroll="false"/>
-  </div>
-</template>
-
-<script>
-import EleCropperDialog from '@/components/EleCropperDialog'  // 图片裁剪
-
-export default {
-  name: "UserInfo",
-  components: {EleCropperDialog},
-  data() {
-    return {
-      active: 'info',  // tab页选中
-      form: {}, // 表单数据
-      rules: {  // 表单验证规则
-        realname: [
-          {required: true, message: '请输入真实姓名', trigger: 'blur'}
-        ],
-        nickname: [
-          {required: true, message: '请输入昵称', trigger: 'blur'}
-        ],
-        gender: [
-          {required: true, message: '请选择性别', trigger: 'blur'}
-        ],
-        mobile: [
-          {required: true, message: '请输入联系方式', trigger: 'blur'}
-        ],
-        email: [
-          {required: true, message: '请输入电子邮箱', trigger: 'blur'}
-        ]
-      },
-      loading: false,  // 保存按钮loading
-      showCropper: false  // 是否显示裁剪弹窗
-    }
-  },
-  mounted() {
-    this.getUserInfo();
-  },
-  methods: {
-    /**
-     * 获取用户信息
-     */
-    getUserInfo() {
-      if (this.$setting.userUrl) {
-        this.$http.get(this.$setting.userUrl).then(res => {
-          if (res.data.code === 0) {
-            if (this.$setting.parseUser) {
-              res.data = this.$setting.parseUser(res.data);
-            }
-            this.form = JSON.parse(JSON.stringify(res.data.data))
-            let user = res.data.data;
-            this.$store.dispatch('user/setUser', user);
-            this.$store.dispatch('user/setRoles', user ? user.roles : null);
-            this.$store.dispatch('user/setAuthorities', user ? user.authorities : null);
-          } else {
-            this.$message.error(res.data.msg);
-          }
-        }).catch(e => {
-          this.$message.error(e.message);
-        });
-      }
-    },
-    /* 保存更改 */
-    save() {
-      this.$refs['infoForm'].validate((valid) => {
-        if (valid) {
-          this.loading = true;
-          this.$http.post('/index/updateUserInfo', this.form).then(res => {
-            this.loading = false;
-            if (res.data.code === 0) {
-              this.$message({type: 'success', message: '保存成功'});
-            } else {
-              this.$message.error(res.data.msg);
-            }
-          }).catch(e => {
-            this.loading = false;
-            this.$message.error(e.message);
-          });
-        } else {
-          return false;
-        }
-      });
-    },
-    /* 头像裁剪完成回调 */
-    onCrop(res) {
-      this.form.avatar = res;
-      this.showCropper = false;
-    }
-  }
-}
-</script>
-
-<style scoped>
-.ele-body {
-  padding-bottom: 0;
-}
-
-.el-card {
-  margin-bottom: 15px;
-}
-
-/* 用户资料卡片 */
-.user-info-card {
-  padding-top: 8px;
-  text-align: center;
-}
-
-.user-info-card .user-info-avatar-group {
-  position: relative;
-  cursor: pointer;
-  margin: 0 auto;
-  width: 110px;
-  height: 110px;
-  border-radius: 50%;
-  overflow: hidden;
-}
-
-.user-info-card .user-info-avatar {
-  width: 110px;
-  height: 110px;
-  border-radius: 50%;
-  object-fit: cover;
-}
-
-.user-info-card .user-info-avatar-group > i {
-  position: absolute;
-  top: 50%;
-  left: 50%;
-  transform: translate(-50%, -50%);
-  color: #FFF;
-  font-size: 30px;
-  display: none;
-  z-index: 2;
-}
-
-.user-info-card .user-info-avatar-group:hover > i {
-  display: block;
-}
-
-.user-info-card .user-info-avatar-group:hover:after {
-  content: "";
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 100%;
-  background-color: rgba(0, 0, 0, .3);
-}
-
-.user-info-card .user-info-name {
-  font-size: 24px;
-  margin-top: 20px;
-}
-
-.user-info-card .user-info-desc {
-  margin-top: 8px;
-}
-
-/* 用户信息列表 */
-.user-info-list {
-  margin-top: 30px;
-}
-
-.user-info-list .user-info-item {
-  margin-bottom: 10px;
-  display: flex;
-  align-items: baseline;
-}
-
-.user-info-item > i {
-  margin-right: 10px;
-  font-size: 16px;
-}
-
-.user-info-item > span {
-  flex: 1;
-  display: block;
-}
-
-/* 用户标签 */
-.user-info-tags .el-tag {
-  margin: 10px 10px 0 0;
-}
-
-/* 用户账号绑定列表 */
-.user-account-list {
-  margin-top: 10px;
-}
-
-.user-account-list .user-account-item {
-  padding: 15px;
-}
-
-.user-account-list .user-account-item .ele-text-secondary {
-  margin-top: 6px;
-}
-
-.user-account-list .user-account-item .user-account-icon {
-  width: 42px;
-  height: 42px;
-  line-height: 42px;
-  text-align: center;
-  color: #FFF;
-  font-size: 26px;
-  border-radius: 50%;
-  background-color: #3492ED;
-  box-sizing: border-box;
-}
-
-.user-account-list .user-account-item .user-account-icon.el-icon-_wechat {
-  background-color: #4DAF29;
-  font-size: 28px;
-}
-
-.user-account-list .user-account-item .user-account-icon.el-icon-_alipay {
-  background-color: #1476FE;
-  padding-left: 5px;
-  font-size: 32px;
-}
-
-/* tab页签 */
-.user-info-tabs >>> .el-tabs__nav-wrap {
-  padding-left: 20px;
-}
-</style>

+ 0 - 220
addons/admin/src/views/user/message.vue

@@ -1,220 +0,0 @@
-<template>
-  <div class="ele-body">
-    <el-card shadow="never" body-style="padding:0;">
-      <div class="ele-cell ele-cell-align-top ele-user-message">
-        <el-menu :default-active="active" :mode="mode" @select="query">
-          <el-menu-item index="0">
-            <span>全部消息</span>
-            <el-badge v-if="allUnReadNum" :value="allUnReadNum" class="ele-badge-static"/>
-          </el-menu-item>
-          <el-menu-item index="1">
-            <span>系统通知</span>
-            <el-badge v-if="unReadNum1" :value="unReadNum1" class="ele-badge-static"/>
-          </el-menu-item>
-          <el-menu-item index="2">
-            <span>用户私信</span>
-            <el-badge v-if="unReadNum2" :value="unReadNum2" class="ele-badge-static"/>
-          </el-menu-item>
-          <el-menu-item index="3">
-            <span>代办事项</span>
-            <el-badge v-if="unReadNum3" :value="unReadNum3" class="ele-badge-static"/>
-          </el-menu-item>
-        </el-menu>
-        <div class="ele-cell-content">
-          <!-- 操作按钮 -->
-          <div class="ele-table-tool">
-            <el-button size="small" @click="read" type="primary" plain>标记已读</el-button>
-            <el-button size="small" @click="readAll" type="primary" plain>全部已读</el-button>
-            <el-button size="small" @click="remove()" type="danger" plain>删除消息</el-button>
-          </div>
-          <!-- 数据表格 -->
-          <ele-data-table ref="table" :data="data" :choose.sync="choose" height="calc(100vh - 265px)" :border="false">
-            <template slot-scope="{index}">
-              <el-table-column type="selection" width="45" align="center" fixed="left"/>
-              <el-table-column type="index" :index="index" width="45" align="center" fixed="left"
-                               show-overflow-tooltip/>
-              <el-table-column prop="title" label="标题内容" show-overflow-tooltip min-width="110"/>
-              <el-table-column prop="time" label="时间" show-overflow-tooltip width="140px" align="center"/>
-              <el-table-column label="状态" width="80px" align="center">
-                <template slot-scope="{row}">
-                  <span :class="['ele-text-danger','ele-text-info'][row.state]">{{ ['未读', '已读'][row.state] }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="操作" width="140px" align="center" :resizable="false" fixed="right">
-                <template slot-scope="{row}">
-                  <el-link @click="view(row)" icon="el-icon-view" type="primary" :underline="false">查看</el-link>
-                  <el-popconfirm title="确定要删除此消息吗?" @onConfirm="remove(row)" class="ele-action">
-                    <el-link slot="reference" icon="el-icon-delete" type="danger" :underline="false">删除</el-link>
-                  </el-popconfirm>
-                </template>
-              </el-table-column>
-            </template>
-          </ele-data-table>
-        </div>
-      </div>
-    </el-card>
-  </div>
-</template>
-
-<script>
-export default {
-  name: "UserMessage",
-  data() {
-    return {
-      active: '0',  // 导航选中
-      data: [],  // 列表显示数据
-      choose: [],  // 列表选中数据
-      allData: [  // 全部数据
-        {title: '你有两条任务待完成,不要忘了哦~', type: 3, time: '2020-07-24 11:35', state: 0},
-        {title: '你有两条任务待完成,不要忘了哦~', type: 3, time: '2020-07-24 11:35', state: 0},
-        {title: '你有两条任务待完成,不要忘了哦~', type: 3, time: '2020-07-24 11:35', state: 0},
-        {title: '你有两条任务待完成,不要忘了哦~', type: 3, time: '2020-07-24 11:35', state: 0},
-        {title: '你有两条任务待完成,不要忘了哦~', type: 3, time: '2020-07-24 11:35', state: 1},
-        {title: '你有两条任务待完成,不要忘了哦~', type: 3, time: '2020-07-24 11:35', state: 1},
-        {title: '你有两条任务待完成,不要忘了哦~', type: 3, time: '2020-07-24 11:35', state: 1},
-        {title: '你有两条任务待完成,不要忘了哦~', type: 3, time: '2020-07-24 11:35', state: 1},
-        {title: '你有两条任务待完成,不要忘了哦~', type: 3, time: '2020-07-24 11:35', state: 1},
-        {title: '你有两条任务待完成,不要忘了哦~', type: 3, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI给你发来了一条私信', type: 2, time: '2020-07-24 11:35', state: 0},
-        {title: 'Laravel8.x+Vue+ElementUI给你发来了一条私信', type: 2, time: '2020-07-24 11:35', state: 0},
-        {title: 'Laravel8.x+Vue+ElementUI给你发来了一条私信', type: 2, time: '2020-07-24 11:35', state: 0},
-        {title: 'Laravel8.x+Vue+ElementUI给你发来了一条私信', type: 2, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI给你发来了一条私信', type: 2, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI给你发来了一条私信', type: 2, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI给你发来了一条私信', type: 2, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI给你发来了一条私信', type: 2, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI给你发来了一条私信', type: 2, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI给你发来了一条私信', type: 2, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI新版本发布,欢迎体验', type: 1, time: '2020-07-24 11:35', state: 0},
-        {title: 'Laravel8.x+Vue+ElementUI新版本发布,欢迎体验', type: 1, time: '2020-07-24 11:35', state: 0},
-        {title: 'Laravel8.x+Vue+ElementUI新版本发布,欢迎体验', type: 1, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI新版本发布,欢迎体验', type: 1, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI新版本发布,欢迎体验', type: 1, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI新版本发布,欢迎体验', type: 1, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI新版本发布,欢迎体验', type: 1, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI新版本发布,欢迎体验', type: 1, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI新版本发布,欢迎体验', type: 1, time: '2020-07-24 11:35', state: 1},
-        {title: 'Laravel8.x+Vue+ElementUI新版本发布,欢迎体验', type: 1, time: '2020-07-24 11:35', state: 1}
-      ]
-    }
-  },
-  computed: {
-    /* 小屏幕水平导航 */
-    mode() {
-      return this.$store.state.theme.screenWidth < 768 ? 'horizontal' : 'vertical';
-    },
-    /* 全部未读数量 */
-    allUnReadNum() {
-      return this.allData.filter(d => d.state === 0).length;
-    },
-    /* 通知未读数量 */
-    unReadNum1() {
-      return this.allData.filter(d => d.state === 0 && d.type === 1).length;
-    },
-    /* 私信未读数量 */
-    unReadNum2() {
-      return this.allData.filter(d => d.state === 0 && d.type === 2).length;
-    },
-    /* 代办未读数量 */
-    unReadNum3() {
-      return this.allData.filter(d => d.state === 0 && d.type === 3).length;
-    }
-  },
-  mounted() {
-    this.query();
-  },
-  methods: {
-    /* 查询数据 */
-    query(index) {
-      this.active = index || '0';
-      if (this.active === '0') this.data = this.allData;
-      else this.data = this.allData.filter(d => String(d.type) === this.active);
-    },
-    /* 查看 */
-    view(row) {
-      console.log(row);
-      this.$message('点击了查看');
-    },
-    /* 删除 */
-    remove(row) {
-      if (row) {  // 单个删除
-        this.data.splice(this.data.indexOf(row), 1);
-        this.$message({type: 'success', message: '删除成功'});
-      } else {  // 批量删除
-        if (this.choose.length === 0) return this.$message.error('请至少选择一条数据');
-        this.$confirm('确定要删除选中的消息吗?', '提示', {type: 'warning'}).then(() => {
-          this.choose.forEach(d => {
-            this.data.splice(this.data.indexOf(d), 1);
-          });
-          this.$message({type: 'success', message: '删除成功'});
-        }).catch(() => 0);
-      }
-    },
-    /* 标记已读 */
-    read() {
-      if (this.choose.length === 0) return this.$message.error('请至少选择一条数据');
-      this.choose.forEach(d => {
-        this.data[this.data.indexOf(d)].state = 1;
-      });
-    },
-    /* 全部标记已读 */
-    readAll() {
-      this.data.forEach(d => {
-        d.state = 1;
-      });
-    }
-  }
-}
-</script>
-
-<style scoped>
-.ele-user-message >>> .el-menu {
-  flex-shrink: 0;
-}
-
-.ele-user-message .ele-cell-content {
-  padding: 20px 15px;
-  box-sizing: border-box;
-  overflow: auto;
-}
-
-.ele-user-message .ele-badge-static {
-  margin-left: 10px;
-}
-
-@media screen and (min-width: 768px) {
-  .ele-user-message >>> .el-menu-item {
-    min-width: 150px;
-    text-align: right;
-    border-right: 2px solid transparent;
-  }
-
-  .ele-user-message >>> .el-menu-item:first-child {
-    margin-top: 15px;
-  }
-}
-
-@media screen and (max-width: 768px) {
-  .ele-user-message {
-    display: block;
-  }
-
-  .ele-user-message >>> .el-menu-item {
-    height: 45px;
-    line-height: 45px;
-    padding: 0 5px;
-    display: inline-block;
-    float: none;
-  }
-
-  .ele-user-message >>> .el-menu {
-    text-align: center;
-    white-space: nowrap;
-    overflow: auto;
-  }
-
-  .ele-user-message .ele-badge-static {
-    margin-left: 3px;
-  }
-}
-</style>