1 line
5.6 KiB
Plaintext
1 line
5.6 KiB
Plaintext
|
{"version":3,"file":"s-user-card.js","sources":["../../../../../../src/sheep/components/s-user-card/s-user-card.vue","../../../../../../uniComponent:/RDovQXBwL1dvcmsvYWRkci9hY2RyLXVpL3NyYy9zaGVlcC9jb21wb25lbnRzL3MtdXNlci1jYXJkL3MtdXNlci1jYXJkLnZ1ZQ"],"sourcesContent":["<!-- 装修用户组件:用户卡片 -->\r\n<template>\r\n <view class=\"ss-user-info-wrap ss-p-t-50\" :style=\"[bgStyle, { marginLeft: `${data.space}px` }]\">\r\n <view class=\"ss-flex ss-col-center ss-row-between ss-m-b-20\">\r\n <view class=\"left-box ss-flex ss-col-center ss-m-l-36\">\r\n <view class=\"avatar-box ss-m-r-24\">\r\n <image\r\n class=\"avatar-img\"\r\n :src=\"\r\n isLogin\r\n ? sheep.$url.cdn(userInfo.avatar)\r\n : sheep.$url.static('/static/img/shop/default_avatar.png')\r\n \"\r\n mode=\"aspectFill\"\r\n @tap=\"sheep.$router.go('/modules/mall/user/info')\"\r\n ></image>\r\n </view>\r\n <view>\r\n <view class=\"nickname-box ss-flex ss-col-center\">\r\n <view class=\"nick-name ss-m-r-20\">{{ userInfo?.nickname || nickname }}</view>\r\n </view>\r\n </view>\r\n </view>\r\n <view class=\"right-box ss-m-r-52\">\r\n <button class=\"ss-reset-button\" @tap=\"showShareModal\">\r\n <text class=\"sicon-qrcode\"></text>\r\n </button>\r\n </view>\r\n </view>\r\n\r\n <!-- 提示绑定手机号 先隐藏 yudao 需要再修改 -->\r\n <view\r\n class=\"bind-mobile-box ss-flex ss-row-between ss-col-center\"\r\n v-if=\"isLogin && !userInfo.mobile\"\r\n >\r\n <view class=\"ss-flex\">\r\n <text class=\"cicon-mobile-o\" />\r\n <view class=\"mobile-title ss-m-l-20\">点击绑定手机号确保账户安全</view>\r\n </view>\r\n <button class=\"ss-reset-button bind-btn\" @tap=\"onBind\">去绑定</button>\r\n </view>\r\n </view>\r\n</template>\r\n\r\n<script setup>\r\n/**\r\n * 用户卡片\r\n *\r\n * @property {Number} leftSpace \t\t\t\t\t\t\t\t\t- 容器左间距\r\n * @property {Number} rightSpace \t\t\t\t\t\t\t\t\t- 容器右间距\r\n *\r\n * @property {String} avatar \t\t\t\t\t- 头像\r\n * @property {String} nickname \t\t\t\t\t- 昵称\r\n * @property {String} vip\t\t \t\t\t\t- 等级\r\n * @property {String} collectNum \t\t\t\t- 收藏数\r\n * @property {String} likeNum \t\t\t\t\t- 点赞数\r\n *\r\n *\r\n */\r\nimport { computed, reactive } from 'vue'\r\nimport sheep from '@/sheep'\r\nimport { showShareModal, showAuthModal } from '@/sheep/hooks/useModal'\r\n\r\n// 用户信息\r\nconst userInfo = computed(() => sheep.$store('user').userInfo)\r\nconsole.log('用户信息', userInfo)\r\n\r\n// 是否登录\r\nconst isLogin = computed(() => sheep.$store('user').isLogin)\r\n// 接收参数\r\nconst props = defineProps({\r\n // 装修数据\r\n data: {\r\n type: Object,\r\n default: () => ({}),\r\n },\r\n // 装修样式\r\n styles: {\r\n type: Object,\r\n default: () => ({}),\r\n },\r\n // 头像\r\n avatar: {\r\n type: String,\r\n default: '',\r\n },\r\n nickname: {\r\n type: String,\r\n default: '请先登录',\r\n },\r\n vip: {\r\n type: [String, Number],\r\n default: '1',\r\n },\r\n collectNum: {\r\n type: [String, Number],\r\n default: '1',\r\n },\r\n likeNum: {\r\n type: [String, Number],\r\n default: '1',\r\n },\r\n})\r\n\r\n// 设置背景样式\r\nconst bgStyle = computed(() => {\r\n // 直接从 props.styles 解构\r\n const { bgType, bgImg, bgColor } = props.styles\r\n\r\n // 根据 bgType 返回相应的样式\r\n return {\r\n background: bgType === 'img' ? `url(${bgImg}) no-repeat top center / 100% 100%` : bgColor,\r\n }\r\n})\r\n// 绑定手机号\r\nfunction onBind() {\r\n showAuthModal('changeMobile')\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n \r\n.ss-user-info-wrap {\r\n box-sizing: border-box;\r\n\r\n .avatar-box {\r\n width: 100rpx;\r\n height: 100rpx;\r\n overflow: hi
|