54818987341872ac71f29fba142ab604.json 12 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\kefu\\mobile\\user\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\kefu\\mobile\\user\\index.vue","mtime":1761614939024},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQppbXBvcnQgdXNlckxhYmVscyBmcm9tICcuL3VzZXJMYWJlbCc7DQppbXBvcnQgeyB1c2VySW5mbywgdXNlckdyb3VwQXBpLCBwdXRHcm91cEFwaSwgdXNlckxhYmVsIH0gZnJvbSAnQC9hcGkva2VmdSc7DQppbXBvcnQgdnVlUGlja2VycyBmcm9tICd2dWUtcGlja2Vycyc7DQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICdpbmRleCcsDQogIGNvbXBvbmVudHM6IHsNCiAgICB1c2VyTGFiZWxzLA0KICAgIHZ1ZVBpY2tlcnMsDQogIH0sDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIGNoYW5nZTogZmFsc2UsIC8v5qih5oCB5qGG5pi+56S66ZqQ6JePDQogICAgICBhY3RpdmVVc2VySW5mbzogJycsDQogICAgICBwaWNrZXJWaXNpYmxlOiBmYWxzZSwgLy/liIbnu4TpgInmi6kNCiAgICAgIGdyb3VwTGlzdDogW10sIC8v5YiG57uEDQogICAgICBsYWJlbExpc3Q6IFtdLCAvL+agh+etvg0KICAgIH07DQogIH0sDQogIG1vdW50ZWQoKSB7DQogICAgdGhpcy5nZXRHcm91cCgpOw0KICAgIHRoaXMuZ2V0VXNlckluZm8oKTsNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIC8v6I635Y+W55So5oi35qCH562+DQogICAgZ2V0TGlzdCgpIHsNCiAgICAgIHVzZXJMYWJlbCh0aGlzLiRyb3V0ZS5wYXJhbXMudWlkKQ0KICAgICAgICAudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy5sYWJlbExpc3QgPSByZXMuZGF0YSB8fCBbXTsNCiAgICAgICAgICBpZiAodGhpcy5sYWJlbExpc3QubGVuZ3RoKSB7DQogICAgICAgICAgICB0aGlzLmNoYW5nZSA9IHRydWU7DQogICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIHRoaXMuJGRpYWxvZy5lcnJvcign5pqC5peg5qCH562+Jyk7DQogICAgICAgICAgfQ0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKGVycikgPT4gew0KICAgICAgICAgIHRoaXMuJGRpYWxvZy5lcnJvcihlcnIubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICAvL+iOt+WPlueUqOaIt+ivpuaDhQ0KICAgIGdldFVzZXJJbmZvKCkgew0KICAgICAgdXNlckluZm8odGhpcy4kcm91dGUucGFyYW1zLnVpZCkNCiAgICAgICAgLnRoZW4oKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuYWN0aXZlVXNlckluZm8gPSByZXMuZGF0YTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChlcnIpID0+IHsNCiAgICAgICAgICB0aGlzLiRkaWFsb2cuZXJyb3IoZXJyLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgLy/ojrflj5bnlKjmiLfliIbnu4QNCiAgICBnZXRHcm91cCgpIHsNCiAgICAgIGxldCBvYmogPSB7DQogICAgICAgIGlkOiAwLA0KICAgICAgICBncm91cF9uYW1lOiAn5pegJywNCiAgICAgIH07DQogICAgICB1c2VyR3JvdXBBcGkoKQ0KICAgICAgICAudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgcmVzLmRhdGEudW5zaGlmdChvYmopOw0KICAgICAgICAgIGxldCB0ZGF0YSA9IFtdOw0KICAgICAgICAgIHJlcy5kYXRhLm1hcCgoaXRlbSkgPT4gew0KICAgICAgICAgICAgdGRhdGEucHVzaCh7DQogICAgICAgICAgICAgIGxhYmVsOiBpdGVtLmdyb3VwX25hbWUsDQogICAgICAgICAgICAgIHZhbHVlOiBpdGVtLmlkLA0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgfSk7DQogICAgICAgICAgdGhpcy5ncm91cExpc3QgPSBbdGRhdGFdOw0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKGVycikgPT4gew0KICAgICAgICAgIHRoaXMuJGRpYWxvZy5lcnJvcihlcnIubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICBlZGl0TGFiZWwoKSB7DQogICAgICB0aGlzLmNoYW5nZSA9IGZhbHNlOw0KICAgICAgdGhpcy5nZXRVc2VySW5mbygpOw0KICAgIH0sDQogICAgb25TaG93TGFiZWwoKSB7DQogICAgICB0aGlzLmdldExpc3QoKTsNCiAgICB9LA0KICAgIHNob3dOYW1lKCkgew0KICAgICAgdGhpcy5waWNrZXJWaXNpYmxlID0gdHJ1ZTsNCiAgICB9LA0KICAgIGNhbmNlbCgpIHt9LA0KICAgIC8vIOmAieaLqeWIhue7hA0KICAgIGNvbmZpcm0ocmVzKSB7DQogICAgICBwdXRHcm91cEFwaSh0aGlzLiRyb3V0ZS5wYXJhbXMudWlkLCByZXNbMF0udmFsdWUpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7DQogICAgICAgICAgdGhpcy5nZXRVc2VySW5mbygpOw0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKGVycikgPT4gew0KICAgICAgICAgIHRoaXMuJGRpYWxvZy5lcnJvcihlcnIubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICBjbG9zZUNoYW5nZShtc2cpIHsNCiAgICAgIHRoaXMuY2hhbmdlID0gbXNnOw0KICAgIH0sDQogIH0sDQp9Ow0K"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AAgFA;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/pages/kefu/mobile/user","sourcesContent":["<template>\r\n <div class=\"userBox\" v-if=\"activeUserInfo\">\r\n <div class=\"user-header acea-row row-middle\">\r\n <div class=\"user-header-img mr20\">\r\n <img v-lazy=\"activeUserInfo.avatar\" />\r\n </div>\r\n <div class=\"user-header-name\">\r\n <span class=\"sp1 mr10\" v-text=\"activeUserInfo.nickname\"></span>\r\n <span class=\"sp2\">{{ $route.params.type | sourceType }}</span>\r\n </div>\r\n </div>\r\n <div class=\"user-list\">\r\n <div class=\"acea-row item bgt\">\r\n <span class=\"sp1\">用户标签</span>\r\n <div class=\"labelBox\" v-if=\"activeUserInfo.labelNames.length\">\r\n <span class=\"label\" v-for=\"(item, index) in activeUserInfo.labelNames\" :key=\"index\">{{ item }}</span>\r\n </div>\r\n <span v-else class=\"labelBox\">无</span>\r\n <span class=\"iconfontYI icon-up\" v-db-click @click=\"onShowLabel\"></span>\r\n </div>\r\n <div class=\"acea-row item bgt\">\r\n <span class=\"sp1\">手机号</span>\r\n <span class=\"sp2\" v-text=\"activeUserInfo.phone || '无'\"></span>\r\n </div>\r\n <div class=\"acea-row item\">\r\n <span class=\"sp1\">分组</span>\r\n <span\r\n class=\"checkName\"\r\n v-if=\"activeUserInfo.group_name\"\r\n v-text=\"activeUserInfo.group_name\"\r\n v-db-click\r\n @click=\"showName\"\r\n ></span>\r\n <span v-else v-db-click @click=\"showName\">无</span>\r\n <vue-pickers\r\n :data=\"groupList\"\r\n v-if=\"groupList.length\"\r\n :showToolbar=\"true\"\r\n :maskClick=\"true\"\r\n @confirm=\"confirm\"\r\n :defaultIndex=\"0\"\r\n :visible.sync=\"pickerVisible\"\r\n ></vue-pickers>\r\n </div>\r\n </div>\r\n <div class=\"user-list\">\r\n <div class=\"acea-row item bgt\">\r\n <span class=\"sp1\">用户等级</span>\r\n <span class=\"sp2\" v-text=\"activeUserInfo.level_name ? activeUserInfo.level_name : '无'\"></span>\r\n </div>\r\n <div class=\"acea-row item bgt\">\r\n <span class=\"sp1\">用户类型</span>\r\n <span class=\"sp2\">{{ activeUserInfo.user_type | userType }}</span>\r\n </div>\r\n <div class=\"acea-row item bgt\">\r\n <span class=\"sp1\">余额</span>\r\n <span class=\"sp2\" v-text=\"activeUserInfo.now_money || '无'\"></span>\r\n </div>\r\n <div class=\"acea-row item bgt\">\r\n <span class=\"sp1\">推广员</span>\r\n <span class=\"sp2\" v-text=\"activeUserInfo.is_promoter === 1 ? '是' : '否'\"></span>\r\n </div>\r\n <div class=\"acea-row item\">\r\n <span class=\"sp1\">生日</span>\r\n <span class=\"sp2\" v-text=\"activeUserInfo.birthday || '无'\"></span>\r\n </div>\r\n </div>\r\n <user-labels\r\n v-if=\"change\"\r\n :change=\"change\"\r\n @cancel=\"cancel\"\r\n :labelList=\"labelList\"\r\n :uid=\"Number($route.params.uid)\"\r\n @editLabel=\"editLabel\"\r\n @closeChange=\"closeChange\"\r\n ></user-labels>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport userLabels from './userLabel';\r\nimport { userInfo, userGroupApi, putGroupApi, userLabel } from '@/api/kefu';\r\nimport vuePickers from 'vue-pickers';\r\nexport default {\r\n name: 'index',\r\n components: {\r\n userLabels,\r\n vuePickers,\r\n },\r\n data() {\r\n return {\r\n change: false, //模态框显示隐藏\r\n activeUserInfo: '',\r\n pickerVisible: false, //分组选择\r\n groupList: [], //分组\r\n labelList: [], //标签\r\n };\r\n },\r\n mounted() {\r\n this.getGroup();\r\n this.getUserInfo();\r\n },\r\n methods: {\r\n //获取用户标签\r\n getList() {\r\n userLabel(this.$route.params.uid)\r\n .then((res) => {\r\n this.labelList = res.data || [];\r\n if (this.labelList.length) {\r\n this.change = true;\r\n } else {\r\n this.$dialog.error('暂无标签');\r\n }\r\n })\r\n .catch((err) => {\r\n this.$dialog.error(err.msg);\r\n });\r\n },\r\n //获取用户详情\r\n getUserInfo() {\r\n userInfo(this.$route.params.uid)\r\n .then((res) => {\r\n this.activeUserInfo = res.data;\r\n })\r\n .catch((err) => {\r\n this.$dialog.error(err.msg);\r\n });\r\n },\r\n //获取用户分组\r\n getGroup() {\r\n let obj = {\r\n id: 0,\r\n group_name: '无',\r\n };\r\n userGroupApi()\r\n .then((res) => {\r\n res.data.unshift(obj);\r\n let tdata = [];\r\n res.data.map((item) => {\r\n tdata.push({\r\n label: item.group_name,\r\n value: item.id,\r\n });\r\n });\r\n this.groupList = [tdata];\r\n })\r\n .catch((err) => {\r\n this.$dialog.error(err.msg);\r\n });\r\n },\r\n editLabel() {\r\n this.change = false;\r\n this.getUserInfo();\r\n },\r\n onShowLabel() {\r\n this.getList();\r\n },\r\n showName() {\r\n this.pickerVisible = true;\r\n },\r\n cancel() {},\r\n // 选择分组\r\n confirm(res) {\r\n putGroupApi(this.$route.params.uid, res[0].value)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getUserInfo();\r\n })\r\n .catch((err) => {\r\n this.$dialog.error(err.msg);\r\n });\r\n },\r\n closeChange(msg) {\r\n this.change = msg;\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.userBox {\r\n background: #f0f1f2;\r\n}\r\n.bgt {\r\n border-bottom: 1px solid #f0f2f7;\r\n}\r\n.user {\r\n &-header {\r\n padding: 0 0.3rem;\r\n background: #fff;\r\n margin-bottom: 0.15rem;\r\n width: 100%;\r\n height: 1.5rem;\r\n line-height: 1.5rem;\r\n &-img {\r\n width: 1.1rem;\r\n height: 1.1rem;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n }\r\n &-name {\r\n .sp1 {\r\n color: #282828;\r\n font-size: 0.32rem;\r\n font-weight: bold;\r\n }\r\n .sp2 {\r\n background: rgba(56, 117, 234, 0.14);\r\n color: #3875ea;\r\n font-size: 0.18rem;\r\n padding: 0.1rem;\r\n border-radius: 4px;\r\n }\r\n }\r\n }\r\n &-list {\r\n padding: 0 0.2rem;\r\n background: #fff;\r\n margin-bottom: 0.15rem;\r\n .item {\r\n width: 100%;\r\n padding: 0.2rem 0;\r\n .sp1 {\r\n color: #686868;\r\n font-size: 0.28rem;\r\n width: 1.6rem;\r\n }\r\n .sp2 {\r\n color: #282828;\r\n font-size: 0.28rem;\r\n }\r\n }\r\n .labelBox {\r\n display: flex;\r\n flex-wrap: wrap;\r\n width: 4.8rem;\r\n }\r\n .label {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 0.5rem;\r\n border: 1px solid #3875ea;\r\n opacity: 1;\r\n border-radius: 16px;\r\n padding: 0 0.15rem;\r\n text-align: center;\r\n color: #3875ea;\r\n font-size: 0.2rem;\r\n margin: 0.07rem 0.15rem 0.07rem 0;\r\n }\r\n }\r\n}\r\n</style>\r\n"]}]}