|
@@ -111,17 +111,17 @@
|
|
|
<template v-if="activeName == 0">
|
|
<template v-if="activeName == 0">
|
|
|
<el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="auto">
|
|
<el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="auto">
|
|
|
<el-form-item :label="`${$t('personalCenter.gongdanleixing')}`" prop="issueCategory">
|
|
<el-form-item :label="`${$t('personalCenter.gongdanleixing')}`" prop="issueCategory">
|
|
|
- <el-select v-model="ruleForm.issueCategory" :placeholder="`${$t('common.qingxuanze')}`"
|
|
|
|
|
|
|
+ <el-select v-model="ruleForm.issueCategory" :placeholder="`${$t('personalCenter.gongdanleixing_placeholder')}`"
|
|
|
style="width: 100%">
|
|
style="width: 100%">
|
|
|
<el-option v-for="item in workTypeList" :key="item.value" :label="`${$t(item.label)}`"
|
|
<el-option v-for="item in workTypeList" :key="item.value" :label="`${$t(item.label)}`"
|
|
|
:value="item.value" />
|
|
:value="item.value" />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item :label="`${$t('personalCenter.gongdanbiaoti')}`" prop="issueTitle">
|
|
<el-form-item :label="`${$t('personalCenter.gongdanbiaoti')}`" prop="issueTitle">
|
|
|
- <el-input v-model="ruleForm.issueTitle" :placeholder="`${$t('common.placeholderInput')}`" />
|
|
|
|
|
|
|
+ <el-input v-model="ruleForm.issueTitle" :placeholder="`${$t('personalCenter.gongdanbiaoti_placeholder')}`" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item :label="`${$t('personalCenter.gongdanneirong')}`" prop="issueContent">
|
|
<el-form-item :label="`${$t('personalCenter.gongdanneirong')}`" prop="issueContent">
|
|
|
- <el-input v-model="ruleForm.issueContent" :placeholder="`${$t('common.placeholderInput')}`" :rows="2"
|
|
|
|
|
|
|
+ <el-input v-model="ruleForm.issueContent" :placeholder="`${$t('personalCenter.gongdanneirong_placeholder')}`" :rows="10"
|
|
|
type="textarea" />
|
|
type="textarea" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
@@ -163,12 +163,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- <el-dialog v-model="dialogVisible" title="编辑资料" width="784">
|
|
|
|
|
- <el-form :model="userInfo" label-width="auto" label-position="top">
|
|
|
|
|
-
|
|
|
|
|
|
|
+ <el-dialog v-model="dialogVisible" :title="$t('personalCenter.editProfile')" width="784">
|
|
|
|
|
+ <el-form ref="userFormRef" :model="userInfo" label-width="auto" label-position="top" :rules="rules">
|
|
|
<el-row :gutter="16">
|
|
<el-row :gutter="16">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="上传头像">
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.uploadAvatar')">
|
|
|
<!-- 图片类型 -->
|
|
<!-- 图片类型 -->
|
|
|
<FileUploader ref="fileUploader" accept="image/*" :multiple="false" :limit="1" :auto-upload="true"
|
|
<FileUploader ref="fileUploader" accept="image/*" :multiple="false" :limit="1" :auto-upload="true"
|
|
|
list-type="picture-card" :data="{ directory: 'workflow' }" buttonText="" v-model="coverImage" tip="" />
|
|
list-type="picture-card" :data="{ directory: 'workflow' }" buttonText="" v-model="coverImage" tip="" />
|
|
@@ -177,8 +176,8 @@
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="16">
|
|
<el-row :gutter="16">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="昵称">
|
|
|
|
|
- <el-input v-model="userInfo.nickName" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.nickName')" prop="nickName">
|
|
|
|
|
+ <el-input v-model="userInfo.nickName" :placeholder="$t('personalCenter.pinickName')" class="inputStyle"
|
|
|
:input-style="{
|
|
:input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
|
}" />
|
|
}" />
|
|
@@ -188,16 +187,16 @@
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="16">
|
|
<el-row :gutter="16">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="登录手机号">
|
|
|
|
|
- <el-input :disabled="userInfo.userPhone ? true : false" v-model="userInfo.userPhone"
|
|
|
|
|
- :placeholder="$t('common.placeholderInput')" class="inputStyle" :input-style="{
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.loginPhone')">
|
|
|
|
|
+ <el-input :disabled="appStore?.userInfo?.userPhone ? true : false" v-model="userInfo.userPhone"
|
|
|
|
|
+ :placeholder="$t('workflowTradeAdd.placeholderPhoneNumber')" class="inputStyle" :input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
|
}" />
|
|
}" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</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="验证码" prop="verifyCode">
|
|
|
|
|
- <el-input v-model="userInfo.verifyCode" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.phoneCode')" prop="verifyCode">
|
|
|
|
|
+ <el-input v-model="userInfo.verifyCode" :placeholder="$t('login.placeholderCaptcha')" class="inputStyle"
|
|
|
:input-style="{
|
|
:input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
|
}">
|
|
}">
|
|
@@ -213,17 +212,17 @@
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="16">
|
|
<el-row :gutter="16">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="登录邮箱">
|
|
|
|
|
- <el-input v-model="userInfo.email" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.loginEmail')">
|
|
|
|
|
+ <el-input v-model="userInfo.email" :placeholder="$t('workflowTradeAdd.placeholderEmail')" class="inputStyle"
|
|
|
:input-style="{
|
|
:input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
|
- }" />
|
|
|
|
|
|
|
+ }" :disabled="appStore?.userInfo?.email ? true : false" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
|
</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="验证码" prop="verifyCode">
|
|
|
|
|
- <el-input v-model="userInfo.verifyCode" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.emailCode')" prop="verifyCode">
|
|
|
|
|
+ <el-input v-model="userInfo.verifyCode" :placeholder="$t('login.placeholderCaptcha')" class="inputStyle"
|
|
|
:input-style="{
|
|
:input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
|
}">
|
|
}">
|
|
@@ -239,22 +238,21 @@
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="16">
|
|
<el-row :gutter="16">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="n8n账号">
|
|
|
|
|
- <el-input v-model="userInfo.name" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.n8nAccout')">
|
|
|
|
|
+ <el-input readonly v-model="userInfo.name" :placeholder="$t('personalCenter.createN8n')" class="inputStyle"
|
|
|
:input-style="{
|
|
:input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
|
}">
|
|
}">
|
|
|
- <template #append>
|
|
|
|
|
- <el-tooltip class="box-item" effect="dark" content="同步生成n8n账号" placement="top">
|
|
|
|
|
- <el-button :icon="Refresh" />
|
|
|
|
|
|
|
+ <template #append v-if="appStore?.userInfo?.email && !appStore?.userInfo?.name">
|
|
|
|
|
+ <el-tooltip class="box-item" effect="dark" :content="$t('personalCenter.ceraten8n')" placement="top">
|
|
|
|
|
+ <el-button @click="createAi('0')" :icon="Refresh" />
|
|
|
</el-tooltip>
|
|
</el-tooltip>
|
|
|
-
|
|
|
|
|
</template>
|
|
</template>
|
|
|
</el-input>
|
|
</el-input>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="n8n初始密码">
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.n8nPassword')">
|
|
|
<el-input v-model="userInfo.userPhone" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
<el-input v-model="userInfo.userPhone" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
|
:input-style="{
|
|
:input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
@@ -265,23 +263,23 @@
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="16">
|
|
<el-row :gutter="16">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="Coze账号">
|
|
|
|
|
- <el-input v-model="userInfo.name" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.cozeAccout')">
|
|
|
|
|
+ <el-input v-model="userInfo.name" :placeholder="$t('personalCenter.createCoze')" class="inputStyle"
|
|
|
:input-style="{
|
|
:input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
|
}">
|
|
}">
|
|
|
<template #append>
|
|
<template #append>
|
|
|
- <el-tooltip class="box-item" effect="dark" content="同步生成Coze账号" placement="top">
|
|
|
|
|
- <el-button :icon="Refresh" />
|
|
|
|
|
|
|
+ <el-tooltip class="box-item" effect="dark" :content="$t('personalCenter.ceratenCoze')"
|
|
|
|
|
+ placement="top">
|
|
|
|
|
+ <el-button @click="createAi('1')" :icon="Refresh" />
|
|
|
</el-tooltip>
|
|
</el-tooltip>
|
|
|
-
|
|
|
|
|
</template>
|
|
</template>
|
|
|
</el-input>
|
|
</el-input>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="Coze初始密码">
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.cozePassword')">
|
|
|
<el-input v-model="userInfo.name" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
<el-input v-model="userInfo.name" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
|
:input-style="{
|
|
:input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
@@ -291,22 +289,22 @@
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="16">
|
|
<el-row :gutter="16">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="Dify账号">
|
|
|
|
|
- <el-input v-model="userInfo.name" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.difyAccout')">
|
|
|
|
|
+ <el-input v-model="userInfo.name" :placeholder="$t('personalCenter.createDify')" class="inputStyle"
|
|
|
:input-style="{
|
|
:input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
|
}">
|
|
}">
|
|
|
<template #append>
|
|
<template #append>
|
|
|
- <el-tooltip class="box-item" effect="dark" content="同步生成Dify账号" placement="top">
|
|
|
|
|
- <el-button :icon="Refresh" />
|
|
|
|
|
|
|
+ <el-tooltip class="box-item" effect="dark" :content="$t('personalCenter.ceratenDify')"
|
|
|
|
|
+ placement="top">
|
|
|
|
|
+ <el-button @click="createAi('2')" :icon="Refresh" />
|
|
|
</el-tooltip>
|
|
</el-tooltip>
|
|
|
-
|
|
|
|
|
</template>
|
|
</template>
|
|
|
</el-input>
|
|
</el-input>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="Dify初始密码">
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.difyPassword')">
|
|
|
<el-input v-model="userInfo.name" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
<el-input v-model="userInfo.name" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
|
:input-style="{
|
|
:input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
@@ -317,14 +315,15 @@
|
|
|
<el-row :gutter="16">
|
|
<el-row :gutter="16">
|
|
|
|
|
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="FastGpt账号">
|
|
|
|
|
- <el-input v-model="userInfo.name" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.fastGptAccout')">
|
|
|
|
|
+ <el-input v-model="userInfo.name" :placeholder="$t('personalCenter.createFastGpt')" class="inputStyle"
|
|
|
:input-style="{
|
|
:input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
|
}">
|
|
}">
|
|
|
<template #append>
|
|
<template #append>
|
|
|
- <el-tooltip class="box-item" effect="dark" content="同步生成FastGpt账号" placement="top">
|
|
|
|
|
- <el-button :icon="Refresh" />
|
|
|
|
|
|
|
+ <el-tooltip class="box-item" effect="dark" :content="$t('personalCenter.ceratenFastGpt')"
|
|
|
|
|
+ placement="top">
|
|
|
|
|
+ <el-button @click="createAi('3')" :icon="Refresh" />
|
|
|
</el-tooltip>
|
|
</el-tooltip>
|
|
|
|
|
|
|
|
</template>
|
|
</template>
|
|
@@ -332,7 +331,7 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="FastGpt初始密码">
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.fastGptPassword')">
|
|
|
<el-input v-model="userInfo.name" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
<el-input v-model="userInfo.name" :placeholder="$t('common.placeholderInput')" class="inputStyle"
|
|
|
:input-style="{
|
|
:input-style="{
|
|
|
backgroundColor: 'transparent',
|
|
backgroundColor: 'transparent',
|
|
@@ -343,7 +342,7 @@
|
|
|
|
|
|
|
|
<el-row>
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="技能标签">
|
|
|
|
|
|
|
+ <el-form-item :label="$t('personalCenter.skillTag')">
|
|
|
<div class="flex tags flex_1">
|
|
<div class="flex tags flex_1">
|
|
|
<el-tag v-for="tag in dynamicTags" :key="tag" closable @close="handleClose(tag)">
|
|
<el-tag v-for="tag in dynamicTags" :key="tag" closable @close="handleClose(tag)">
|
|
|
{{ tag }}
|
|
{{ tag }}
|
|
@@ -354,7 +353,7 @@
|
|
|
<el-button :icon="Plus" />
|
|
<el-button :icon="Plus" />
|
|
|
</template></el-input>
|
|
</template></el-input>
|
|
|
<el-button v-else class="button-new-tag" size="small" @click="showInput">
|
|
<el-button v-else class="button-new-tag" size="small" @click="showInput">
|
|
|
- + {{ $t('common.addTags') }}
|
|
|
|
|
|
|
+ + {{ $t('login.addTags') }}
|
|
|
</el-button>
|
|
</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -364,7 +363,7 @@
|
|
|
<template #footer>
|
|
<template #footer>
|
|
|
<div class="dialog-footer flex-center">
|
|
<div class="dialog-footer flex-center">
|
|
|
<el-button @click="dialogVisible = false">{{ $t('common.cancel') }}</el-button>
|
|
<el-button @click="dialogVisible = false">{{ $t('common.cancel') }}</el-button>
|
|
|
- <el-button class="gradient" type="primary" @click="handleConfirm">
|
|
|
|
|
|
|
+ <el-button class="gradient" type="primary" @click="handleConfirm(userFormRef)">
|
|
|
{{ $t('common.confirm') }}
|
|
{{ $t('common.confirm') }}
|
|
|
</el-button>
|
|
</el-button>
|
|
|
</div>
|
|
</div>
|
|
@@ -386,9 +385,9 @@ import type { InputInstance } from 'element-plus'
|
|
|
|
|
|
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
|
|
|
|
|
|
-import { getUserInfo, updateUserInfo,getSmsCode,getEmailCode } from '@/api/auth.js'
|
|
|
|
|
|
|
+import { getUserInfo, updateUserInfo, getSmsCode, getEmailCode } from '@/api/auth.js'
|
|
|
|
|
|
|
|
-import { checkIn, queryCollectCount, issue, issueList, faqList, getfaq } from '@/api/my.js'
|
|
|
|
|
|
|
+import { checkIn, queryCollectCount, issue, issueList, faqList, getfaq, createAiAccount } from '@/api/my.js'
|
|
|
|
|
|
|
|
import DGTMessage from '@/utils/message'
|
|
import DGTMessage from '@/utils/message'
|
|
|
|
|
|
|
@@ -409,6 +408,8 @@ interface RuleForm {
|
|
|
|
|
|
|
|
const ruleFormRef = ref(null);
|
|
const ruleFormRef = ref(null);
|
|
|
|
|
|
|
|
|
|
+const userFormRef = ref();
|
|
|
|
|
+
|
|
|
const { t } = useI18n()
|
|
const { t } = useI18n()
|
|
|
|
|
|
|
|
const appStore = useAppStore();
|
|
const appStore = useAppStore();
|
|
@@ -537,15 +538,20 @@ const rules = ref<FormRules<RuleForm>>({
|
|
|
issueCategory: [
|
|
issueCategory: [
|
|
|
{
|
|
{
|
|
|
required: true,
|
|
required: true,
|
|
|
- message: '请选择工单类型',
|
|
|
|
|
|
|
+ message: t('personalCenter.gongdanleixing_placeholder'),
|
|
|
trigger: 'change',
|
|
trigger: 'change',
|
|
|
},
|
|
},
|
|
|
],
|
|
],
|
|
|
issueTitle: [
|
|
issueTitle: [
|
|
|
- { required: true, message: '请输入标题', trigger: 'blur' },
|
|
|
|
|
|
|
+ { required: true, message: t('personalCenter.gongdanbiaoti_placeholder'), trigger: 'blur' },
|
|
|
],
|
|
],
|
|
|
issueContent: [
|
|
issueContent: [
|
|
|
- { required: true, message: '请输入内容', trigger: 'blur' },
|
|
|
|
|
|
|
+ { required: true, message: t('personalCenter.gongdanneirong_placeholder'), trigger: 'blur' },
|
|
|
|
|
+ ],
|
|
|
|
|
+ nickName: [
|
|
|
|
|
+ {
|
|
|
|
|
+ required: true, message: t('personalCenter.pinickName'), trigger: 'blur'
|
|
|
|
|
+ }
|
|
|
]
|
|
]
|
|
|
})
|
|
})
|
|
|
|
|
|
|
@@ -604,17 +610,25 @@ const isPasswordEmail = computed(() => {
|
|
|
return EMAIL_REGEX.test(passwordForm.account);
|
|
return EMAIL_REGEX.test(passwordForm.account);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+// 创建ai相关账号
|
|
|
|
|
+const createAi = async (creatFlag) => {
|
|
|
|
|
+ let res = await createAiAccount({ creatFlag });
|
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
|
+ DGTMessage.success(`${t('common.success')}`)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// 发送短信验证码
|
|
// 发送短信验证码
|
|
|
const sendSmsCode = async () => {
|
|
const sendSmsCode = async () => {
|
|
|
- let account = appStore?.userInfo?.userPhone ? userInfo.value.email : userInfo.value.userPhone
|
|
|
|
|
|
|
+ let account = appStore?.userInfo?.userPhone ? userInfo.value.email : userInfo.value.userPhone
|
|
|
if (!account) {
|
|
if (!account) {
|
|
|
- DGTMessage.warning('请先输入手机号或邮箱')
|
|
|
|
|
|
|
+ DGTMessage.warning( appStore?.userInfo?.userPhone ? t('workflowTradeAdd.placeholderEmail') : t('workflowTradeAdd.placeholderPhoneNumber'))
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 验证手机号格式
|
|
// 验证手机号格式
|
|
|
if (!PHONE_REGEX.test(account) && !EMAIL_REGEX.test(account)) {
|
|
if (!PHONE_REGEX.test(account) && !EMAIL_REGEX.test(account)) {
|
|
|
- DGTMessage.warning('请输入正确的手机号或邮箱')
|
|
|
|
|
|
|
+ DGTMessage.warning( appStore?.userInfo?.userPhone ? t('common.pleaseInputRightEmail') : t('common.pleaseInputRightPhoneNumber'))
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -634,7 +648,7 @@ const sendSmsCode = async () => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 模拟发送验证码
|
|
// 模拟发送验证码
|
|
|
- DGTMessage.success('验证码发送成功')
|
|
|
|
|
|
|
+ ElMessage.success(t('login.captchaSendSuccess'))
|
|
|
|
|
|
|
|
// 开始倒计时
|
|
// 开始倒计时
|
|
|
smsCountdown.value = 60
|
|
smsCountdown.value = 60
|
|
@@ -688,25 +702,27 @@ const submitForm = async (formEl) => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 更新用户信息
|
|
// 更新用户信息
|
|
|
-const handleConfirm = async () => {
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- // bindType verifyCode
|
|
|
|
|
- if (!appStore.userInfo.userPhone || !appStore.userInfo.email) {
|
|
|
|
|
- userInfo.value.bindType = appStore.userInfo.userPhone ? 'email' : 'phone'
|
|
|
|
|
- }
|
|
|
|
|
- let obj = !appStore.userInfo.userPhone || !appStore.userInfo.email ? {email:userInfo.value.email,bindType:userInfo.value.bindType,userPhone: userInfo.value.userPhone} : {}
|
|
|
|
|
- let res = await updateUserInfo({
|
|
|
|
|
- nickName: userInfo.value.nickName,
|
|
|
|
|
- userAvatar: coverImage.value.map(item => item.url).join(';'),
|
|
|
|
|
- skillTags: dynamicTags.value.join(','),
|
|
|
|
|
- ...obj
|
|
|
|
|
|
|
+const handleConfirm = async (formEl) => {
|
|
|
|
|
+ if (!formEl) return
|
|
|
|
|
+ await formEl.validate(async (valid, fields) => {
|
|
|
|
|
+ if (valid) {
|
|
|
|
|
+ if (!appStore.userInfo.userPhone || !appStore.userInfo.email) {
|
|
|
|
|
+ userInfo.value.bindType = appStore.userInfo.userPhone ? 'email' : 'phone'
|
|
|
|
|
+ }
|
|
|
|
|
+ let obj = !appStore.userInfo.userPhone || !appStore.userInfo.email ? { email: userInfo.value.email, bindType: userInfo.value.bindType, userPhone: userInfo.value.userPhone, verifyCode: userInfo.value.verifyCode } : {}
|
|
|
|
|
+ let res = await updateUserInfo({
|
|
|
|
|
+ nickName: userInfo.value.nickName,
|
|
|
|
|
+ userAvatar: coverImage.value.map(item => item.url).join(';'),
|
|
|
|
|
+ skillTags: dynamicTags.value.join(','),
|
|
|
|
|
+ ...obj
|
|
|
|
|
+ })
|
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
|
+ appStore.USERINFO();
|
|
|
|
|
+ DGTMessage.success(`${t('common.modify')}${t('common.success')}`)
|
|
|
|
|
+ dialogVisible.value = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
})
|
|
})
|
|
|
- if (res.code === 200) {
|
|
|
|
|
- appStore.USERINFO();
|
|
|
|
|
- DGTMessage.success(`${t('common.modify')}${t('common.success')}`)
|
|
|
|
|
- dialogVisible.value = false;
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const toPath = (item: any, index: number) => {
|
|
const toPath = (item: any, index: number) => {
|
|
@@ -733,11 +749,10 @@ const getInfo = async () => {
|
|
|
}
|
|
}
|
|
|
userInfo.value = res.user;
|
|
userInfo.value = res.user;
|
|
|
navList.value.forEach(item => {
|
|
navList.value.forEach(item => {
|
|
|
- if (item.name === 'personalCenter.businessManagement' && res.user.isCompanyAuth == 1) {
|
|
|
|
|
|
|
+ if (item.name === 'personalCenter.businessManagement' && res?.user?.isCompanyAuth == 1) {
|
|
|
item.show = true;
|
|
item.show = true;
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
- // isCompanyAuth
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const collectCount = ref(0)
|
|
const collectCount = ref(0)
|