| 1 |
- {"remainingRequest":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/src/views/member/member/index.vue?vue&type=script&lang=js&","dependencies":[{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/src/views/member/member/index.vue","mtime":1656100271000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBjaXR5RGF0YSBmcm9tICdAL3V0aWxzL2NpdHlEYXRhJwppbXBvcnQgdXBsb2FkSW1hZ2UgZnJvbSAnQC9jb21wb25lbnRzL3VwbG9hZEltYWdlJwppbXBvcnQgeyBtYXBHZXR0ZXJzIH0gZnJvbSAidnVleCI7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiU3lzTWVtYmVyIiwKICBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgLyogY2l0eVNlbGVjdCAqLwogICAgICBjaXR5RGF0YTogY2l0eURhdGEsICAvLyDnnIHluILljLrmlbDmja4KICAgICAgY2l0eTogW10sICAvLyDpgInkuK3nmoTnnIHluILljLoKICAgICAgcHJvdmluY2VDaXR5OiBbXSwgIC8vIOmAieS4reeahOecgeW4ggogICAgICBwcm92aW5jZTogW10sICAvLyDpgInkuK3nmoTnnIEKCiAgICAgIHRhYmxlOiB7dXJsOiAnL21lbWJlci9pbmRleCcsIHdoZXJlOiB7fX0sICAvLyDooajmoLzphY3nva4KICAgICAgY2hvb3NlOiBbXSwgIC8vIOihqOagvOmAieS4reaVsOaNrgogICAgICBzaG93RWRpdDogZmFsc2UsICAvLyDmmK/lkKbmmL7npLrooajljZXlvLnnqpcKICAgICAgZWRpdEZvcm06IHt9LCAgLy8g6KGo5Y2V5pWw5o2uCiAgICAgIGVkaXRSdWxlczogeyAgLy8g6KGo5Y2V6aqM6K+B6KeE5YiZCiAgICAgICAgcmVhbG5hbWU6IFsKICAgICAgICAgIHtyZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ+ivt+i+k+WFpeS8muWRmOWQjeensCcsIHRyaWdnZXI6ICdibHVyJ30KICAgICAgICBdLAogICAgICAgIHNvcnQ6IFsKICAgICAgICAgIHtyZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ+ivt+i+k+WFpeaOkuW6jycsIHRyaWdnZXI6ICdibHVyJ30KICAgICAgICBdLAogICAgICB9LAogICAgICBtZW1iZXJMZXZlbExpc3Q6IFtdLCAgLy8g5Lya5ZGY562J57qnCiAgICB9CiAgfSwKICBjb21wdXRlZDogewogICAgLi4ubWFwR2V0dGVycyhbInBlcm1pc3Npb24iXSksCiAgfSwKICBjb21wb25lbnRzOiB7dXBsb2FkSW1hZ2V9LAogIG1vdW50ZWQoKSB7CiAgICB0aGlzLmdldE1lbWJlckxldmVsTGlzdCgpOyAvLyDmn6Xor6LogYznuqfliJfooagKICB9LAogIG1ldGhvZHM6IHsKICAgIC8qIOaYvuekuue8lui+kSAqLwogICAgZWRpdChyb3cpIHsKICAgICAgdGhpcy5lZGl0Rm9ybSA9IE9iamVjdC5hc3NpZ24oe30sIHJvdyk7CiAgICAgIHRoaXMuc2hvd0VkaXQgPSB0cnVlOwogICAgfSwKICAgIC8qIOS/neWtmOe8lui+kSAqLwogICAgc2F2ZSgpIHsKICAgICAgdGhpcy4kcmVmc1snZWRpdEZvcm0nXS52YWxpZGF0ZSgodmFsaWQpID0+IHsKICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgIGNvbnN0IGxvYWRpbmcgPSB0aGlzLiRsb2FkaW5nKHtsb2NrOiB0cnVlfSk7CiAgICAgICAgICB0aGlzLiRodHRwLnBvc3QoJy9tZW1iZXIvZWRpdCcsIHRoaXMuZWRpdEZvcm0pLnRoZW4ocmVzID0+IHsKICAgICAgICAgICAgbG9hZGluZy5jbG9zZSgpOwogICAgICAgICAgICBpZiAocmVzLmRhdGEuY29kZSA9PT0gMCkgewogICAgICAgICAgICAgIHRoaXMuc2hvd0VkaXQgPSBmYWxzZTsKICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHt0eXBlOiAnc3VjY2VzcycsIG1lc3NhZ2U6IHJlcy5kYXRhLm1zZ30pOwogICAgICAgICAgICAgIHRoaXMuJHJlZnMudGFibGUucmVsb2FkKCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMuZGF0YS5tc2cpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KS5jYXRjaChlID0+IHsKICAgICAgICAgICAgbG9hZGluZy5jbG9zZSgpOwogICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKGUubWVzc2FnZSk7CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLyog5Yig6ZmkICovCiAgICByZW1vdmUocm93KSB7CiAgICAgIGlmICghcm93KSB7ICAvLyDmibnph4/liKDpmaQKICAgICAgICBpZiAodGhpcy5jaG9vc2UubGVuZ3RoID09PSAwKSByZXR1cm4gdGhpcy4kbWVzc2FnZS5lcnJvcign6K+36Iez5bCR6YCJ5oup5LiA5p2h5pWw5o2uJyk7CiAgICAgICAgbGV0IGlkcyA9IHRoaXMuY2hvb3NlLm1hcChkID0+IGQuaWQpOwogICAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuimgeWIoOmZpOmAieS4reeahOS8muWRmOWQlz8nLCAn5o+Q56S6Jywge3R5cGU6ICd3YXJuaW5nJ30pLnRoZW4oKCkgPT4gewogICAgICAgICAgY29uc3QgbG9hZGluZyA9IHRoaXMuJGxvYWRpbmcoe2xvY2s6IHRydWV9KTsKICAgICAgICAgIHRoaXMuJGh0dHAucG9zdCgnL21lbWJlci9kZWxldGUnLCB7aWQ6IGlkc30pLnRoZW4ocmVzID0+IHsKICAgICAgICAgICAgbG9hZGluZy5jbG9zZSgpOwogICAgICAgICAgICBpZiAocmVzLmRhdGEuY29kZSA9PT0gMCkgewogICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe3R5cGU6ICdzdWNjZXNzJywgbWVzc2FnZTogcmVzLmRhdGEubXNnfSk7CiAgICAgICAgICAgICAgdGhpcy4kcmVmcy50YWJsZS5yZWxvYWQoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5kYXRhLm1zZyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLmNhdGNoKGUgPT4gewogICAgICAgICAgICBsb2FkaW5nLmNsb3NlKCk7CiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoZS5tZXNzYWdlKTsKICAgICAgICAgIH0pOwogICAgICAgIH0pLmNhdGNoKCgpID0+IDApOwogICAgICB9IGVsc2UgeyAgLy8g5Y2V5Liq5Yig6ZmkCiAgICAgICAgY29uc3QgbG9hZGluZyA9IHRoaXMuJGxvYWRpbmcoe2xvY2s6IHRydWV9KTsKICAgICAgICB0aGlzLiRodHRwLnBvc3QoJy9tZW1iZXIvZGVsZXRlJywge2lkOnJvdy5pZH0pLnRoZW4ocmVzID0+IHsKICAgICAgICAgIGxvYWRpbmcuY2xvc2UoKTsKICAgICAgICAgIGlmIChyZXMuZGF0YS5jb2RlID09PSAwKSB7CiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe3R5cGU6ICdzdWNjZXNzJywgbWVzc2FnZTogcmVzLmRhdGEubXNnfSk7CiAgICAgICAgICAgIHRoaXMuJHJlZnMudGFibGUucmVsb2FkKCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5kYXRhLm1zZyk7CiAgICAgICAgICB9CiAgICAgICAgfSkuY2F0Y2goZSA9PiB7CiAgICAgICAgICBsb2FkaW5nLmNsb3NlKCk7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKGUubWVzc2FnZSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvKiDmm7TmlLnnirbmgIEgKi8KICAgIGVkaXRTdGF0dXMocm93KSB7CiAgICAgIGNvbnN0IGxvYWRpbmcgPSB0aGlzLiRsb2FkaW5nKHtsb2NrOiB0cnVlfSk7CiAgICAgIGxldCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCByb3cpOwogICAgICB0aGlzLiRodHRwLnBvc3QoJy9tZW1iZXIvc3RhdHVzJywgcGFyYW1zKS50aGVuKHJlcyA9PiB7CiAgICAgICAgbG9hZGluZy5jbG9zZSgpOwogICAgICAgIGlmIChyZXMuZGF0YS5jb2RlID09PSAwKSB7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHt0eXBlOiAnc3VjY2VzcycsIG1lc3NhZ2U6IHJlcy5kYXRhLm1zZ30pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByb3cuc3RhdHVzID0gIXJvdy5zdGF0dXMgPyAyIDogMTsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLmRhdGEubXNnKTsKICAgICAgICB9CiAgICAgIH0pLmNhdGNoKGUgPT4gewogICAgICAgIGxvYWRpbmcuY2xvc2UoKTsKICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKGUubWVzc2FnZSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8qKgogICAgICog6I635Y+W6IGM57qn5YiX6KGoCiAgICAgKi8KICAgIGdldE1lbWJlckxldmVsTGlzdCgpIHsKICAgICAgdGhpcy4kaHR0cC5nZXQoJy9tZW1iZXJsZXZlbC9nZXRNZW1iZXJMZXZlbExpc3QnKS50aGVuKHJlcyA9PiB7CiAgICAgICAgaWYgKHJlcy5kYXRhLmNvZGUgPT09IDApIHsKICAgICAgICAgIHRoaXMubWVtYmVyTGV2ZWxMaXN0ID0gcmVzLmRhdGEuZGF0YTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMuZGF0YS5tc2cpOwogICAgICAgIH0KICAgICAgfSkuY2F0Y2goZSA9PiB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihlLm1lc3NhZ2UpOwogICAgICB9KTsKICAgIH0sCiAgfQp9Cg=="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/member/member","sourcesContent":["<template>\n <div class=\"ele-body\">\n <el-card shadow=\"never\">\n <!-- 搜索表单 -->\n <el-form :model=\"table.where\" label-width=\"77px\" class=\"ele-form-search\"\n @keyup.enter.native=\"$refs.table.reload()\" @submit.native.prevent>\n <el-row :gutter=\"15\">\n <el-col :md=\"6\" :sm=\"12\">\n <el-form-item label=\"手机号:\">\n <el-input v-model=\"table.where.mobile\" placeholder=\"请输入会员手机号\" clearable/>\n </el-form-item>\n </el-col>\n <el-col :md=\"9\" :sm=\"12\">\n <div class=\"ele-form-actions\">\n <el-button type=\"primary\" @click=\"$refs.table.reload()\" icon=\"el-icon-search\" class=\"ele-btn-icon\">查询\n </el-button>\n <el-button @click=\"(table.where={})&&$refs.table.reload()\">重置</el-button>\n <el-button @click=\"showEdit=true\" type=\"primary\" icon=\"el-icon-plus\" class=\"ele-btn-icon\" v-if=\"permission.includes('sys:member:add')\">添加</el-button>\n <el-button @click=\"remove()\" type=\"danger\" icon=\"el-icon-delete\" class=\"ele-btn-icon\" v-if=\"permission.includes('sys:member:dall')\">批量删除</el-button>\n </div>\n </el-col>\n </el-row>\n </el-form>\n <!-- 数据表格 -->\n <ele-data-table ref=\"table\" :config=\"table\" :choose.sync=\"choose\" height=\"calc(100vh - 265px)\" highlight-current-row>\n <template slot-scope=\"{index}\">\n <el-table-column type=\"selection\" width=\"45\" align=\"center\" fixed=\"left\"/>\n <el-table-column type=\"index\" :index=\"index\" label=\"编号\" width=\"60\" align=\"center\" fixed=\"left\" show-overflow-tooltip/>\n <el-table-column prop=\"mobile\" label=\"手机号码\" sortable=\"custom\" show-overflow-tooltip min-width=\"130\"/>\n <el-table-column prop=\"nickname\" label=\"昵称\" sortable=\"custom\" show-overflow-tooltip min-width=\"120\"/>\n <el-table-column label=\"性别\" min-width=\"60\" align=\"center\">\n <template slot-scope=\"{row}\">\n <el-tag :type=\"['primary','success','warning'][row.gender-1]\" size=\"mini\">{{ ['男', '女', '保密'][row.gender-1] }}</el-tag>\n </template>\n </el-table-column>\n <el-table-column label=\"头像\" min-width=\"60\" align=\"center\">\n <template slot-scope=\"{row}\">\n <el-avatar shape=\"square\" :size=\"35\" :src=\"row.avatar\"/>\n </template>\n </el-table-column>\n <el-table-column prop=\"status\" label=\"会员状态\" sortable=\"custom\" :resizable=\"false\" min-width=\"120\">\n <template slot-scope=\"{row}\">\n <el-switch v-model=\"row.status\" @change=\"editStatus(row)\" :active-value=\"1\" :inactive-value=\"2\"/>\n </template>\n </el-table-column>\n <el-table-column label=\"注册时间\" sortable=\"custom\" show-overflow-tooltip align=\"center\" min-width=\"160\">\n <template slot-scope=\"{row}\">{{ row.create_time*1000 | toDateString }}</template>\n </el-table-column>\n <el-table-column label=\"最近登录时间\" sortable=\"custom\" show-overflow-tooltip align=\"center\" min-width=\"160\">\n <template slot-scope=\"{row}\">{{ row.login_time*1000 | toDateString }}</template>\n </el-table-column>\n <el-table-column prop=\"login_count\" label=\"登录次数\" show-overflow-tooltip align=\"center\" min-width=\"120\"/>\n <el-table-column label=\"操作\" width=\"130px\" align=\"center\" :resizable=\"false\" fixed=\"right\">\n <template slot-scope=\"{row}\">\n <el-link @click=\"edit(row)\" icon=\"el-icon-edit\" type=\"primary\" :underline=\"false\" v-if=\"permission.includes('sys:member:edit')\">修改</el-link>\n <el-popconfirm title=\"确定要删除此会员吗?\" @confirm=\"remove(row)\" class=\"ele-action\">\n <el-link slot=\"reference\" icon=\"el-icon-delete\" type=\"danger\" :underline=\"false\" v-if=\"permission.includes('sys:member:delete')\">删除</el-link>\n </el-popconfirm>\n </template>\n </el-table-column>\n </template>\n </ele-data-table>\n </el-card>\n <!-- 编辑弹窗 -->\n <el-dialog :title=\"editForm.id?'修改会员':'添加会员'\" :visible.sync=\"showEdit\" width=\"700px\"\n @closed=\"editForm={}\" :destroy-on-close=\"true\" custom-class=\"ele-dialog-form\" :lock-scroll=\"false\">\n <el-form :model=\"editForm\" ref=\"editForm\" :rules=\"editRules\" label-width=\"100px\">\n <el-form-item label=\"会员头像:\">\n <uploadImage :limit=\"1\" v-model=\"editForm.avatar\"></uploadImage>\n </el-form-item>\n <el-row :gutter=\"15\">\n <el-col :sm=\"12\">\n <el-form-item label=\"手机号码:\" prop=\"mobile\">\n <el-input v-model=\"editForm.mobile\" placeholder=\"请输入手机号码\" clearable/>\n </el-form-item>\n <el-form-item label=\"会员姓名:\" prop=\"realname\">\n <el-input v-model=\"editForm.realname\" placeholder=\"请输入会员姓名\" clearable/>\n </el-form-item>\n <el-form-item label=\"出生日期:\" prop=\"gender\">\n <el-date-picker\n v-model=\"editForm.birthday\"\n type=\"date\"\n placeholder=\"选择出生日期\"\n size=\"small\"\n value-format=\"yyyy-MM-dd\"\n format=\"yyyy-MM-dd\">\n </el-date-picker>\n </el-form-item>\n <el-form-item label=\"所在城市:\" prop=\"city\">\n <el-cascader v-model=\"editForm.city\" :options=\"cityData.cityData\" clearable popper-class=\"ele-pop-wrap-higher\"/>\n </el-form-item>\n </el-col>\n <el-col :sm=\"12\">\n <el-form-item label=\"会员等级\" prop=\"member_level\" :rules=\"{\n required: true, message: '所属会员等级不能为空', trigger: 'change'\n }\">\n <el-select filterable clearable v-model=\"editForm.member_level\" size=\"small\" placeholder=\"-请选择会员等级-\" class=\"ele-block\">\n <el-option v-for=\"item in memberLevelList\" :key=\"item.id\" :label=\"item.name\" :value=\"item.id\"/>\n </el-select>\n </el-form-item>\n <el-form-item label=\"会员昵称:\" prop=\"nickname\">\n <el-input v-model=\"editForm.nickname\" placeholder=\"请输入会员昵称\" clearable/>\n </el-form-item>\n <el-form-item label=\"性别:\" prop=\"gender\">\n <el-select v-model=\"editForm.gender\" placeholder=\"请选择性别\" class=\"ele-block\" clearable>\n <el-option label=\"男\" :value=\"1\"/>\n <el-option label=\"女\" :value=\"2\"/>\n </el-select>\n </el-form-item>\n <el-form-item label=\"会员状态:\" prop=\"status\">\n <el-select v-model=\"editForm.status\" placeholder=\"请选择会员状态\" class=\"ele-block\" clearable>\n <el-option label=\"正常\" :value=\"1\"/>\n <el-option label=\"禁用\" :value=\"2\"/>\n </el-select>\n </el-form-item>\n </el-col>\n </el-row>\n\n </el-form>\n <div slot=\"footer\">\n <el-button @click=\"showEdit=false\">取消</el-button>\n <el-button type=\"primary\" @click=\"save\">保存</el-button>\n </div>\n </el-dialog>\n\n </div>\n</template>\n\n<script>\nimport cityData from '@/utils/cityData'\nimport uploadImage from '@/components/uploadImage'\nimport { mapGetters } from \"vuex\";\nexport default {\n name: \"SysMember\",\n data() {\n return {\n /* citySelect */\n cityData: cityData, // 省市区数据\n city: [], // 选中的省市区\n provinceCity: [], // 选中的省市\n province: [], // 选中的省\n\n table: {url: '/member/index', where: {}}, // 表格配置\n choose: [], // 表格选中数据\n showEdit: false, // 是否显示表单弹窗\n editForm: {}, // 表单数据\n editRules: { // 表单验证规则\n realname: [\n {required: true, message: '请输入会员名称', trigger: 'blur'}\n ],\n sort: [\n {required: true, message: '请输入排序', trigger: 'blur'}\n ],\n },\n memberLevelList: [], // 会员等级\n }\n },\n computed: {\n ...mapGetters([\"permission\"]),\n },\n components: {uploadImage},\n mounted() {\n this.getMemberLevelList(); // 查询职级列表\n },\n methods: {\n /* 显示编辑 */\n edit(row) {\n this.editForm = Object.assign({}, row);\n this.showEdit = true;\n },\n /* 保存编辑 */\n save() {\n this.$refs['editForm'].validate((valid) => {\n if (valid) {\n const loading = this.$loading({lock: true});\n this.$http.post('/member/edit', this.editForm).then(res => {\n loading.close();\n if (res.data.code === 0) {\n this.showEdit = false;\n this.$message({type: 'success', message: res.data.msg});\n this.$refs.table.reload();\n } else {\n this.$message.error(res.data.msg);\n }\n }).catch(e => {\n loading.close();\n this.$message.error(e.message);\n });\n } else {\n return false;\n }\n });\n },\n /* 删除 */\n remove(row) {\n if (!row) { // 批量删除\n if (this.choose.length === 0) return this.$message.error('请至少选择一条数据');\n let ids = this.choose.map(d => d.id);\n this.$confirm('确定要删除选中的会员吗?', '提示', {type: 'warning'}).then(() => {\n const loading = this.$loading({lock: true});\n this.$http.post('/member/delete', {id: ids}).then(res => {\n loading.close();\n if (res.data.code === 0) {\n this.$message({type: 'success', message: res.data.msg});\n this.$refs.table.reload();\n } else {\n this.$message.error(res.data.msg);\n }\n }).catch(e => {\n loading.close();\n this.$message.error(e.message);\n });\n }).catch(() => 0);\n } else { // 单个删除\n const loading = this.$loading({lock: true});\n this.$http.post('/member/delete', {id:row.id}).then(res => {\n loading.close();\n if (res.data.code === 0) {\n this.$message({type: 'success', message: res.data.msg});\n this.$refs.table.reload();\n } else {\n this.$message.error(res.data.msg);\n }\n }).catch(e => {\n loading.close();\n this.$message.error(e.message);\n });\n }\n },\n /* 更改状态 */\n editStatus(row) {\n const loading = this.$loading({lock: true});\n let params = Object.assign({}, row);\n this.$http.post('/member/status', params).then(res => {\n loading.close();\n if (res.data.code === 0) {\n this.$message({type: 'success', message: res.data.msg});\n } else {\n row.status = !row.status ? 2 : 1;\n this.$message.error(res.data.msg);\n }\n }).catch(e => {\n loading.close();\n this.$message.error(e.message);\n });\n },\n /**\n * 获取职级列表\n */\n getMemberLevelList() {\n this.$http.get('/memberlevel/getMemberLevelList').then(res => {\n if (res.data.code === 0) {\n this.memberLevelList = res.data.data;\n } else {\n this.$message.error(res.data.msg);\n }\n }).catch(e => {\n this.$message.error(e.message);\n });\n },\n }\n}\n</script>\n\n<style scoped>\n.ele-block >>> .el-upload, .ele-block >>> .el-upload-dragger {\n width: 100%;\n}\n</style>\n"]}]}
|