123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480 |
- <template>
- <div class="userPage flex-col">
- <div class="userPageBox">
- <s-header :name="sys ? sys.title : $t('user.personalCenter')" :noback="true" :isFixed="false"></s-header>
- <div class="userBaseBox">
- <!-- 基本信息 -->
- <div class="baseRow flex-row justify-between">
- <div class="group2 flex-col"></div>
- <span class="baseText">{{ $t("user.essentialInformation") }}</span>
- </div>
- <div class="userMessage flex-row justify-between">
- <!-- 初始份额 stockNum -->
- <div class="userId">
- <!-- <p class="userText">{{ accountDetail.stockNum }}</p> -->
- <p class="userText">{{ stockShares }}</p>
- <p class="userText">剩余份额</p>
- </div>
- <!-- 竖线 -->
- <div class="userLine"></div>
- <!-- 会员等级 level -->
- <div class="userId">
- <van-image v-for="(icon, index) in icons" :key="index" :src="icon" round width="0.4rem" height="0.4rem"
- @click="showTop = true"></van-image>
- <van-popup v-model:show="showTop" round position="top"
- :style="{ height: '10%' }"><br />一个⭐代表1贡献值<br />一个🌙代表5贡献值</van-popup>
- <p class="userText">奋斗贡献值</p>
- </div>
- <div class="userLine"></div>
- <!-- 用户名 userName -->
- <div class="userId">
- <p class="userText">{{ accountDetail.userName }}</p>
- <!-- <p class="userText">test</p> -->
- <p class="userText">用户名</p>
- </div>
- </div>
- <div class="userInfoBox">
- <!-- 手机号码 -->
- <div v-if="!phoneNumberShow" class="userInfo l-flex-between">
- <span class="userInfoLeft">{{ $t("user.phoneNumber") }}: </span>
- <div>
- <van-field class="relationClass" v-model="cofficentForm.phone" :placeholder="$t('user.phoneNumberPlace')">
- <template #button>
- <van-button type="primary" @click="mailboxChg(cofficentForm.phone, 1)" size="small">确定
- </van-button>
- </template>
- </van-field>
- </div>
- <van-icon name="close" class="editIcon" @click="editClk(1)" />
- </div>
- <div v-else class="userInfo l-flex-between">
- <span class="userInfoLeft">{{ $t("user.phoneNumber") }}: </span>
- <span>{{ accountDetail.phone }}</span>
- <van-icon name="edit" class="editIcon" @click="editClk(1)" />
- </div>
- <!-- 邮箱 -->
- <div v-if="!mailboxShow" class="userInfo l-flex-between">
- <span class="userInfoLeft">{{ $t("user.mailbox") }}: </span>
- <div>
- <van-field class="relationClass" v-model="cofficentForm.mailBox" :placeholder="$t('user.mailboxPlace')">
- <!-- 邮箱修改按钮 -->
- <template #button>
- <van-button type="primary" @click="mailboxChg(cofficentForm.mailBox, 2)" size="small">{{
- $t("user.confirmLog") }}
- </van-button>
- </template>
- </van-field>
- </div>
- <van-icon name="close" class="editIcon" @click="editClk(2)" />
- </div>
- <div v-else class="userInfo l-flex-between">
- <span class="userInfoLeft">{{ $t("user.mailbox") }}: </span>
- <span>{{ accountDetail.email }}</span>
- <!-- 编辑按钮 -->
- <!-- <van-icon name="edit" class="editIcon" @click="editClk(2)" /> -->
- </div>
- <!-- 支付宝账号 payeeCode -->
- <div class="userInfo l-flex-between">
- <span class="userInfoLeft">支付宝账号: </span>
- <span>{{ accountDetail.payeeCode }}</span>
- </div>
- <!-- 银行卡号 cardNo -->
- <div class="userInfo l-flex-between">
- <span class="userInfoLeft">银行卡号: </span>
- <span>{{ eyeOpen ? cardNo : hiddenCardNo }}</span>
- <van-icon class="l-eye" :name="eyeOpen ? 'eye-o' : 'closed-eye'" size="20" @click="clickEye" />
- </div>
- </div>
- </div>
- <div class="lineBox"></div>
- <div class="commonOperBox">
- <!-- 常用操作 -->
- <div class="baseRow flex-row justify-between">
- <div class="group2 flex-col"></div>
- <span class="baseText">{{ $t("user.commonOperations") }}</span>
- </div>
- <div class="operListBox">
- <!-- 系统管理 -->
- <div v-if="isAdmin" class="taskListRow flex-col" @click="pushPageList('/taskMessage')">
- <div class="taskIcon sysManageIcon"></div>
- <div class="taskRight">
- <div class="taskTitle">系统管理</div>
- </div>
- </div>
- <!-- 买家确认付款 -->
- <div v-if="!isAdmin" class="taskListRow flex-col" @click="pushPageList('/buyConfList')">
- <div class="taskIcon buyConfIcon"></div>
- <div class="taskRight">
- <div class="taskTitle">
- 买入付款确认
- </div>
- </div>
- </div>
- <!-- 卖家收款确认 -->
- <div v-if="!isAdmin" class="taskListRow flex-col" @click="pushPageList('/sellConfList')">
- <div class="taskIcon sellConfIcon"></div>
- <div class="taskRight">
- <div class="taskTitle">
- 卖家收款确认
- </div>
- </div>
- </div>
- <!-- 首页通知 -->
- <div v-if="isAdmin" class="taskListRow flex-col" @click="pushPageList('/announcement')">
- <div class="taskIcon announcementIcon"></div>
- <div class="taskRight">
- <div class="taskTitle">
- 首页通知
- </div>
- </div>
- </div>
- <!-- 异议反馈 -->
- <div class="taskListRow flex-col" @click="pushPageList('/objectionFeedback')">
- <div class="taskIcon feedbackIcon"></div>
- <div class="taskRight">
- <div class="taskTitle">
- 异议反馈
- </div>
- </div>
- </div>
- <!-- 修改密码 -->
- <div class="taskListRow flex-col" @click="pushPageList('/changepassword')">
- <div class="taskIcon changePasswordIcon"></div>
- <div class="taskRight">
- <div class="taskTitle">{{ $t("user.changePassword") }}</div>
- </div>
- </div>
- <!-- 退出登录 -->
- <div class="taskListRow flex-col" @click="onperExitSys()">
- <div class="taskIcon logoutIcon"></div>
- <div class="taskRight">
- <div class="taskTitle">{{ $t("user.logOut") }}</div>
- </div>
- </div>
- <div style="height: 100px;"></div>
- </div>
- </div>
- </div>
- <!-- <nav-bar></nav-bar> -->
- <!-- 退出登录弹窗 -->
- <kDialog :dialogTitle="$t('user.logOutTips')" :cancelBtnTxt="$t('user.cancelLog')"
- :confirmBtnTxt="$t('user.confirmLog')" ref="kDialogRef" :dialogContent="$t('user.logOutContent')"
- @confirmclk="confirmClk">
- </kDialog>
- </div>
- </template>
- <script>
- // 导入接口
- import { getLoginInfo } from "@/service/merchantManage";
- import { updateAdmin } from "@/service/merchantManage";
- // 引入弹窗
- import kDialog from "@/components/commom/kDialog/index.vue";
- import { onMounted, reactive, ref, computed } from "vue";
- import sHeader from "@/components/SimpleHeader";
- import {
- getLoginUser,
- $M_EmailAvailable,
- $M_PhoneTest,
- } from "@/common/js/utils";
- import { useRouter } from "vue-router";
- import { showToast } from 'vant';
- import { useI18n } from "vue-i18n";
- import { styleUrl } from "@/common/js/utils";
- import { queryAllowNum } from "@/service/user.js";
- export default {
- components: { sHeader, kDialog },
- setup() {
- // 引入语言
- const { t } = useI18n();
- // 账户信息
- const accountDetail = ref({});
- // 控制手机显示隐藏
- const phoneNumberShow = ref(true);
- // 控制邮箱显示隐藏
- const mailboxShow = ref(true);
- const isAdmin = ref()
- const adminId = ref('')
- console.log("adminId", adminId);
- const checkIsAdmin = async () => {
- if (user.phone === "12345678901") {
- isAdmin.value = true
- }
- }
- const diyPassword = ref("");
- const sunzeePay = ref(false);
- const sevencloudPay = ref(false);
- const user = getLoginUser();
- const router = useRouter();
- const relationAdminName = ref("");
- const level = ref('');
- level.value = user.level;
- const cardNo = ref('');
- cardNo.value = user.cardNo;
- const starsCount = ref(Math.floor(level.value % 5));
- const moonsCount = ref(Math.floor(level.value / 5));
- const icons = computed(() => {
- const iconsArray = [];
- for (let i = 0; i < moonsCount.value; i++) {
- iconsArray.push(require('@/assets/user/moon.png'));
- }
- for (let i = 0; i < starsCount.value; i++) {
- iconsArray.push(require('@/assets/user/star.png'));
- }
- return iconsArray;
- });
- const showTop = ref(false);
- const sys = ref(null);
- // 修改的个人信息
- const cofficentForm = reactive({
- associateParent: relationAdminName.value,
- mailBox: accountDetail.value.email,
- phone: accountDetail.value.phone,
- area: "",
- currencySymbol: accountDetail.value.currencySymbol,
- });
- //
- const params = reactive({
- id: '', // 用户ID
- });
- // 点击修改图标
- const editClk = (idx) => {
- switch (idx) {
- case 1:
- cofficentForm.phone = accountDetail.value.phone;
- phoneNumberShow.value = !phoneNumberShow.value;
- mailboxShow.value = true;
- break;
- case 2:
- cofficentForm.mailBox = accountDetail.value.email;
- phoneNumberShow.value = true;
- mailboxShow.value = !mailboxShow.value;
- break;
- }
- };
- // 点击邮箱的确定按钮
- const mailboxChg = async (e, idx) => {
- switch (idx) {
- case 1:
- if (!e) {
- showToast(t("user.phoneNumberPlace"));
- } else if (!$M_PhoneTest(e)) {
- showToast(t("user.corrPhonePlace"));
- } else {
- const params = {
- userId: user.id,
- phone: e,
- };
- const { data } = await updateAdmin(params);
- phoneNumberShow.value = true;
- if (data.code === "00000") {
- showToast(data.message);
- setTimeout(() => {
- getAcccountDetail();
- }, 500);
- }
- }
- break;
- case 2:
- if (!e) {
- showToast(t("user.mailboxPlace"));
- } else if (!$M_EmailAvailable(e)) {
- showToast(t("user.corrEmailPlace"));
- } else {
- const params = {
- userId: user.id,
- email: e,
- };
- const { data } = await updateAdmin(params);
- mailboxShow.value = true;
- if (data.code === "00000") {
- showToast(data.message);
- setTimeout(() => {
- getAcccountDetail();
- }, 500);
- }
- }
- break;
- }
- };
- const hiddenCardNo = ref('');
- if (user.cardNo) {
- hiddenCardNo.value = user.cardNo.replace(/^(\d{4}).*?(\d{4})$/, "$1********$2");
- }
- const eyeOpen = ref(false);
- const clickEye = () => {
- eyeOpen.value = !eyeOpen.value;
- }
- // 获取账户详情
- const getAcccountDetail = () => {
- getLoginInfo().then((res) => {
- accountDetail.value = res.data.data;
- });
- };
- // 退出登录弹窗
- const kDialogRef = ref(null);
- // 点击右侧按钮
- const confirmClk = () => {
- // 获取缓存的语言
- const savedCredentials = localStorage.getItem('savedCredentials');
- const curLang = localStorage.getItem("curLang");
- // 清空缓存
- localStorage.clear();
- localStorage.setItem("curLang", curLang);
- if (savedCredentials) {
- localStorage.setItem('savedCredentials', savedCredentials);
- }
- if (sys.value) {
- setTimeout(() => {
- router.push({
- path: "login",
- query: { relation_admin_id: sys.value.relationAdminId },
- });
- }, 200);
- } else {
- setTimeout(() => {
- router.push({ path: "login" });
- }, 200);
- }
- };
- // 剩余份额-allowSellNum 允许售卖的数量
- const stockShares = ref(0)
- async function getStockShares() {
- const { data } = await queryAllowNum()
- if (data.code === '00000') {
- stockShares.value = data.data.allowSellNum;
- }
- }
- // 初始化页面获取列表
- onMounted(async () => {
- // 加载样式
- styleUrl('user');
- // if (localStorage.getItem("loginSys")) {
- // const loginSysString = localStorage.getItem("loginSys");
- // sys.value = JSON.parse(loginSysString);
- // }
- // 获取账户
- getAcccountDetail()
- checkIsAdmin()
- getStockShares()
- });
- const onperExitSys = () => {
- kDialogRef.value.openDialog();
- };
- const pushPageList = (url) => {
- router.push({ path: url });
- };
- // 选择地区完成
- const areaPopFinish = async (e) => {
- console.log("e", e);
- accountDetail.value.areaId = e.selectId;
- const params = {
- userId: user.id,
- areaId: e.selectId,
- };
- const { data } = await updateAdmin(params);
- // areaShow.value = true;
- if (data.code === "00000") {
- showToast(data.message);
- setTimeout(() => {
- getAcccountDetail();
- }, 500);
- }
- };
- const isInWeChat = ref(false);
- // 是否有上级账号
- const haveRelation = ref(false);
- const haveRelationCheck = () => {
- if (user.relationAdminId !== null) {
- haveRelation.value = true;
- }
- }
- onMounted(() => {
- haveRelationCheck();
- })
- return {
- user,
- onperExitSys,
- relationAdminName,
- pushPageList,
- sys,
- kDialogRef,
- confirmClk,
- mailboxChg,
- editClk,
- cofficentForm,
- params,
- accountDetail,
- areaPopFinish,
- isInWeChat,
- haveRelation,
- diyPassword,
- sunzeePay,
- sevencloudPay,
- level,
- icons,
- showTop,
- hiddenCardNo,
- phoneNumberShow,
- mailboxShow,
- clickEye,
- eyeOpen,
- cardNo,
- isAdmin,
- stockShares
- };
- }
- };
- </script>
- <style lang="less" scoped>
- @import "../../common/style/mixin.less";
- @import "../../styles/user/index.less";
- </style>
|