|
@@ -12,7 +12,7 @@
|
|
|
<div class="personal-username">
|
|
<div class="personal-username">
|
|
|
<div class="">{{ appStore?.userInfo?.nickName }}</div>
|
|
<div class="">{{ appStore?.userInfo?.nickName }}</div>
|
|
|
<template v-if="['0', '1', '2'].includes(appStore?.userInfo?.memberType)"></template>
|
|
<template v-if="['0', '1', '2'].includes(appStore?.userInfo?.memberType)"></template>
|
|
|
- <img :src="`/src/assets/imgs/my/vip${appStore?.userInfo?.memberType}@2x.png`" alt="">
|
|
|
|
|
|
|
+ <img :src="`${ getImgUrl(`vip${appStore?.userInfo?.memberType}@2x.png`) }`" alt="">
|
|
|
<!-- memberType 会员类型memberType 会员类型分为企业会员(2)和个人会员(1)、免费会员(0) -->
|
|
<!-- memberType 会员类型memberType 会员类型分为企业会员(2)和个人会员(1)、免费会员(0) -->
|
|
|
</div>
|
|
</div>
|
|
|
<div class="personal-user-phone mt4">{{ $t('personalCenter.phoneNumber') }}:{{
|
|
<div class="personal-user-phone mt4">{{ $t('personalCenter.phoneNumber') }}:{{
|
|
@@ -133,9 +133,14 @@
|
|
|
v-for="(item, index) in workList" :key="index">
|
|
v-for="(item, index) in workList" :key="index">
|
|
|
<template #title>
|
|
<template #title>
|
|
|
<div class="work-head">
|
|
<div class="work-head">
|
|
|
- <img v-if="activeName == 2" src="/src/assets/imgs/my/Q@2x.png" alt="">
|
|
|
|
|
- <div class="">{{ `${activeName == 2 ? (index + 1) + '、' : ''}` }}{{ item.issueTitle ||
|
|
|
|
|
- item.question }}</div>
|
|
|
|
|
|
|
+ <div class="work-head-left">
|
|
|
|
|
+ <img v-if="activeName == 2" src="/src/assets/imgs/my/Q@2x.png" alt="">
|
|
|
|
|
+ <div class="">{{ `${activeName == 2 ? (index + 1) + '、' : ''}` }}{{ item.issueTitle ||
|
|
|
|
|
+ item.question }}</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <el-tag v-if="activeName == 1" :type="item.issueStatus == 2 ? 'success' : 'primary'">{{ item.issueStatus == 0 ?
|
|
|
|
|
+ $t('personalCenter.daijiejue') : item.issueStatus == 2 ? $t('personalCenter.yijiejue') : ''
|
|
|
|
|
+ }}</el-tag>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<div class="work-content">
|
|
<div class="work-content">
|
|
@@ -143,7 +148,7 @@
|
|
|
<img src="/src/assets/imgs/my/A@2x.png" alt="">
|
|
<img src="/src/assets/imgs/my/A@2x.png" alt="">
|
|
|
<div class="">{{ item.issueContent || item.answer }}</div>
|
|
<div class="">{{ item.issueContent || item.answer }}</div>
|
|
|
</template>
|
|
</template>
|
|
|
- <el-descriptions style="width: 100%;" class="margin-top" :column="2" border v-else label-width="auto">
|
|
|
|
|
|
|
+ <el-descriptions style="width: 100%;" class="margin-top" :column="2" border v-else :label-width="langStore.currentLang == 'en' ? 180 : 80">
|
|
|
<el-descriptions-item>
|
|
<el-descriptions-item>
|
|
|
<template #label>
|
|
<template #label>
|
|
|
<div class="cell-item">{{ $t('personalCenter.gongdanbianhao') }}</div>
|
|
<div class="cell-item">{{ $t('personalCenter.gongdanbianhao') }}</div>
|
|
@@ -154,8 +159,10 @@
|
|
|
<template #label>
|
|
<template #label>
|
|
|
<div class="cell-item">{{ $t('personalCenter.gongdanzhuangtai') }}</div>
|
|
<div class="cell-item">{{ $t('personalCenter.gongdanzhuangtai') }}</div>
|
|
|
</template>
|
|
</template>
|
|
|
-
|
|
|
|
|
- <el-tag :type="item.issueStatus == 2 ? 'success' : 'primary'">{{ item.issueStatus == 0 ? $t('personalCenter.daijiejue') : item.issueStatus == 2 ? $t('personalCenter.yijiejue') : '' }}</el-tag>
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <el-tag :type="item.issueStatus == 2 ? 'success' : 'primary'">{{ item.issueStatus == 0 ?
|
|
|
|
|
+ $t('personalCenter.daijiejue') : item.issueStatus == 2 ? $t('personalCenter.yijiejue') : ''
|
|
|
|
|
+ }}</el-tag>
|
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item>
|
|
<el-descriptions-item>
|
|
|
<template #label>
|
|
<template #label>
|
|
@@ -168,7 +175,7 @@
|
|
|
<div class="cell-item">{{ $t('personalCenter.gongdanbiaoti') }}</div>
|
|
<div class="cell-item">{{ $t('personalCenter.gongdanbiaoti') }}</div>
|
|
|
</template>
|
|
</template>
|
|
|
{{ item.issueTitle }}
|
|
{{ item.issueTitle }}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item :span="2">
|
|
<el-descriptions-item :span="2">
|
|
|
<template #label>
|
|
<template #label>
|
|
@@ -239,14 +246,12 @@
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12" v-if="!appStore?.userInfo?.userPhone">
|
|
<el-col :span="12" v-if="!appStore?.userInfo?.userPhone">
|
|
|
<el-form-item :label="$t('personalCenter.phoneCode')" prop="verifyCode">
|
|
<el-form-item :label="$t('personalCenter.phoneCode')" prop="verifyCode">
|
|
|
- <el-input v-model="userInfo.verifyCode"
|
|
|
|
|
- maxlength="6"
|
|
|
|
|
- :placeholder="$t('login.placeholderCaptcha')" class="inputStyle"
|
|
|
|
|
- :input-style="{
|
|
|
|
|
|
|
+ <el-input v-model="userInfo.verifyCode" maxlength="6" :placeholder="$t('login.placeholderCaptcha')"
|
|
|
|
|
+ class="inputStyle" :input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
|
}">
|
|
}">
|
|
|
<template #append>
|
|
<template #append>
|
|
|
- <el-button :disabled="smsCountdown > 0" @click="sendSmsCode" style="width:120px"
|
|
|
|
|
|
|
+ <el-button :disabled="smsCountdown > 0" @click="sendSmsCode" style="width:120px"
|
|
|
:class="{ 'countdown-btn': smsCountdown > 0 }" size="small">
|
|
:class="{ 'countdown-btn': smsCountdown > 0 }" size="small">
|
|
|
{{ smsCountdown > 0 ? `${smsCountdown}s` : $t('login.sendCaptcha') }}
|
|
{{ smsCountdown > 0 ? `${smsCountdown}s` : $t('login.sendCaptcha') }}
|
|
|
</el-button>
|
|
</el-button>
|
|
@@ -267,10 +272,8 @@
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12" v-if="!appStore?.userInfo?.email">
|
|
<el-col :span="12" v-if="!appStore?.userInfo?.email">
|
|
|
<el-form-item :label="$t('personalCenter.emailCode')" prop="verifyCode">
|
|
<el-form-item :label="$t('personalCenter.emailCode')" prop="verifyCode">
|
|
|
- <el-input v-model="userInfo.verifyCode"
|
|
|
|
|
- maxlength="6"
|
|
|
|
|
- :placeholder="$t('login.placeholderCaptcha')" class="inputStyle"
|
|
|
|
|
- :input-style="{
|
|
|
|
|
|
|
+ <el-input v-model="userInfo.verifyCode" maxlength="6" :placeholder="$t('login.placeholderCaptcha')"
|
|
|
|
|
+ class="inputStyle" :input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
|
}">
|
|
}">
|
|
|
<template #append>
|
|
<template #append>
|
|
@@ -409,7 +412,7 @@
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<template #footer>
|
|
<template #footer>
|
|
|
<div class="dialog-footer flex-center">
|
|
<div class="dialog-footer flex-center">
|
|
|
- <el-button @click="userInfo = {},dialogVisible = false">{{ $t('common.cancel') }}</el-button>
|
|
|
|
|
|
|
+ <el-button @click="userInfo = {}, dialogVisible = false">{{ $t('common.cancel') }}</el-button>
|
|
|
<el-button class="gradient" type="primary" @click="handleConfirm(userFormRef)">
|
|
<el-button class="gradient" type="primary" @click="handleConfirm(userFormRef)">
|
|
|
{{ $t('common.confirm') }}
|
|
{{ $t('common.confirm') }}
|
|
|
</el-button>
|
|
</el-button>
|
|
@@ -446,7 +449,8 @@ import Pagination from '@/components/Pagination.vue'
|
|
|
|
|
|
|
|
|
|
|
|
|
import type { FormInstance, FormRules } from 'element-plus'
|
|
import type { FormInstance, FormRules } from 'element-plus'
|
|
|
-
|
|
|
|
|
|
|
+import { useLangStore } from '@/pinia/langStore'
|
|
|
|
|
+const langStore = useLangStore();
|
|
|
interface RuleForm {
|
|
interface RuleForm {
|
|
|
issueCategory: string
|
|
issueCategory: string
|
|
|
issueTitle: string
|
|
issueTitle: string
|
|
@@ -465,61 +469,65 @@ const route = useRoute()
|
|
|
|
|
|
|
|
const router = useRouter()
|
|
const router = useRouter()
|
|
|
|
|
|
|
|
|
|
+const getImgUrl = (path) => {
|
|
|
|
|
+ return new URL(`/src/assets/imgs/my/${path}`, import.meta.url).href
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
const navList = ref([
|
|
const navList = ref([
|
|
|
{
|
|
{
|
|
|
name: 'personalCenter.myWallet',
|
|
name: 'personalCenter.myWallet',
|
|
|
path: '/personal-center/wallet',
|
|
path: '/personal-center/wallet',
|
|
|
- icon: '/src/assets/imgs/my/icon1@2x.png',
|
|
|
|
|
- iconActive: '/src/assets/imgs/my/icon1a@2x.png',
|
|
|
|
|
|
|
+ icon: getImgUrl('icon1@2x.png'),
|
|
|
|
|
+ iconActive: getImgUrl('icon1a@2x.png'),
|
|
|
show: true
|
|
show: true
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
name: 'personalCenter.membershipInfo',
|
|
name: 'personalCenter.membershipInfo',
|
|
|
path: '/personal-center/member-details',
|
|
path: '/personal-center/member-details',
|
|
|
- icon: '/src/assets/imgs/my/icon2@2x.png',
|
|
|
|
|
- iconActive: '/src/assets/imgs/my/icon2a@2x.png',
|
|
|
|
|
|
|
+ icon: getImgUrl('icon2@2x.png'),
|
|
|
|
|
+ iconActive: getImgUrl('icon2a@2x.png'),
|
|
|
show: true
|
|
show: true
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
name: 'personalCenter.myCollection',
|
|
name: 'personalCenter.myCollection',
|
|
|
path: '/personal-center/collection',
|
|
path: '/personal-center/collection',
|
|
|
- icon: '/src/assets/imgs/my/icon3@2x.png',
|
|
|
|
|
- iconActive: '/src/assets/imgs/my/icon3a@2x.png',
|
|
|
|
|
|
|
+ icon: getImgUrl('icon3@2x.png'),
|
|
|
|
|
+ iconActive: getImgUrl('icon3a@2x.png'),
|
|
|
show: true
|
|
show: true
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
name: 'personalCenter.myDemand',
|
|
name: 'personalCenter.myDemand',
|
|
|
path: '/personal-center/demand',
|
|
path: '/personal-center/demand',
|
|
|
- icon: '/src/assets/imgs/my/icon4@2x.png',
|
|
|
|
|
- iconActive: '/src/assets/imgs/my/icon4a@2x.png',
|
|
|
|
|
|
|
+ icon: getImgUrl('icon4@2x.png'),
|
|
|
|
|
+ iconActive: getImgUrl('icon4a@2x.png'),
|
|
|
show: true
|
|
show: true
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
name: 'personalCenter.myOrders',
|
|
name: 'personalCenter.myOrders',
|
|
|
path: '/personal-center/orders',
|
|
path: '/personal-center/orders',
|
|
|
- icon: '/src/assets/imgs/my/icon5@2x.png',
|
|
|
|
|
- iconActive: '/src/assets/imgs/my/icon5a@2x.png',
|
|
|
|
|
|
|
+ icon: getImgUrl('icon5@2x.png'),
|
|
|
|
|
+ iconActive: getImgUrl('icon5a@2x.png'),
|
|
|
show: true
|
|
show: true
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
name: 'personalCenter.myInvoice',
|
|
name: 'personalCenter.myInvoice',
|
|
|
path: '/personal-center/invoice',
|
|
path: '/personal-center/invoice',
|
|
|
- icon: '/src/assets/imgs/my/icon6@2x.png',
|
|
|
|
|
- iconActive: '/src/assets/imgs/my/icon6a@2x.png',
|
|
|
|
|
|
|
+ icon: getImgUrl('icon6@2x.png'),
|
|
|
|
|
+ iconActive: getImgUrl('icon6a@2x.png'),
|
|
|
show: true
|
|
show: true
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
name: 'personalCenter.myWorkflow',
|
|
name: 'personalCenter.myWorkflow',
|
|
|
path: '/personal-center/workflow',
|
|
path: '/personal-center/workflow',
|
|
|
- icon: '/src/assets/imgs/my/icon7@2x.png',
|
|
|
|
|
- iconActive: '/src/assets/imgs/my/icon7a@2x.png',
|
|
|
|
|
|
|
+ icon: getImgUrl('icon7@2x.png'),
|
|
|
|
|
+ iconActive: getImgUrl('icon7a@2x.png'),
|
|
|
show: true
|
|
show: true
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
name: 'personalCenter.businessManagement',
|
|
name: 'personalCenter.businessManagement',
|
|
|
path: '/personal-center/business-management',
|
|
path: '/personal-center/business-management',
|
|
|
- icon: '/src/assets/imgs/my/icon8@2x.png',
|
|
|
|
|
- iconActive: '/src/assets/imgs/my/icon8a@2x.png',
|
|
|
|
|
|
|
+ icon: getImgUrl('icon8@2x.png'),
|
|
|
|
|
+ iconActive: getImgUrl('icon8a@2x.png'),
|
|
|
show: false
|
|
show: false
|
|
|
},
|
|
},
|
|
|
// {
|
|
// {
|
|
@@ -575,9 +583,9 @@ const workTypeList = ref([
|
|
|
}
|
|
}
|
|
|
])
|
|
])
|
|
|
// 获取工单分类
|
|
// 获取工单分类
|
|
|
-const getName = (value) =>{
|
|
|
|
|
|
|
+const getName = (value) => {
|
|
|
let txt = ''
|
|
let txt = ''
|
|
|
- workTypeList.value.forEach(item=>{
|
|
|
|
|
|
|
+ workTypeList.value.forEach(item => {
|
|
|
if (item.value == value) {
|
|
if (item.value == value) {
|
|
|
txt = item.label
|
|
txt = item.label
|
|
|
}
|
|
}
|
|
@@ -851,7 +859,7 @@ const getCount = async () => {
|
|
|
|
|
|
|
|
|
|
|
|
|
const changeSHow = () => {
|
|
const changeSHow = () => {
|
|
|
- getInfo()
|
|
|
|
|
|
|
+ getInfo()
|
|
|
dialogVisible.value = true;
|
|
dialogVisible.value = true;
|
|
|
}
|
|
}
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
@@ -1109,6 +1117,12 @@ div {
|
|
|
font-size: 18px;
|
|
font-size: 18px;
|
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+
|
|
|
|
|
+ .work-head-left {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
img {
|
|
img {
|
|
|
width: 24px;
|
|
width: 24px;
|