|
|
@@ -28,121 +28,129 @@
|
|
|
@click="onClose"
|
|
|
/>
|
|
|
</div>
|
|
|
- <div
|
|
|
- v-loading="loading"
|
|
|
- class="l-flex__fill l-flex--col"
|
|
|
- >
|
|
|
- <el-tabs
|
|
|
- v-model="active"
|
|
|
- class="c-tabs has-padding"
|
|
|
- stretch
|
|
|
- >
|
|
|
- <el-tab-pane
|
|
|
- class="c-sibling-item"
|
|
|
- label="账号设置"
|
|
|
- name="settings"
|
|
|
- />
|
|
|
- <el-tab-pane
|
|
|
- class="c-sibling-item far"
|
|
|
- label="密码重置"
|
|
|
- name="password"
|
|
|
- />
|
|
|
- </el-tabs>
|
|
|
- <warning
|
|
|
- v-if="error"
|
|
|
- class=" u-align-self--center"
|
|
|
- @click="getUserInfo"
|
|
|
- />
|
|
|
+ <template v-if="hasSupportFeature">
|
|
|
<div
|
|
|
- v-else
|
|
|
- class="l-flex__fill l-flex--col center has-padding u-overflow-y--auto"
|
|
|
+ v-loading="loading"
|
|
|
+ class="l-flex__fill l-flex--col"
|
|
|
>
|
|
|
- <template v-if="active === 'settings'">
|
|
|
- <user-info-item
|
|
|
- v-if="user && supportFeature.note"
|
|
|
- key="phone"
|
|
|
- class="c-sibling-item--v"
|
|
|
- type="phone"
|
|
|
- :initial="phone"
|
|
|
- @update="onChangePhone"
|
|
|
+ <el-tabs
|
|
|
+ v-model="active"
|
|
|
+ class="c-tabs has-padding"
|
|
|
+ stretch
|
|
|
+ >
|
|
|
+ <el-tab-pane
|
|
|
+ class="c-sibling-item"
|
|
|
+ label="账号设置"
|
|
|
+ name="settings"
|
|
|
/>
|
|
|
- <user-info-item
|
|
|
- v-if="user && supportFeature.email"
|
|
|
- key="email"
|
|
|
- class="c-sibling-item--v"
|
|
|
- type="email"
|
|
|
- :initial="email"
|
|
|
- @update="onChangeEmail"
|
|
|
+ <el-tab-pane
|
|
|
+ class="c-sibling-item far"
|
|
|
+ label="密码重置"
|
|
|
+ name="password"
|
|
|
/>
|
|
|
- <div
|
|
|
- v-if="supportFeature.wechat"
|
|
|
- class="l-flex--row center c-sibling-item--v farther"
|
|
|
- >
|
|
|
+ </el-tabs>
|
|
|
+ <warning
|
|
|
+ v-if="error"
|
|
|
+ class=" u-align-self--center"
|
|
|
+ @click="getUserInfo"
|
|
|
+ />
|
|
|
+ <div
|
|
|
+ v-else
|
|
|
+ class="l-flex__fill l-flex--col center has-padding u-overflow-y--auto"
|
|
|
+ >
|
|
|
+ <template v-if="active === 'settings'">
|
|
|
+ <user-info-item
|
|
|
+ v-if="user && supportFeature.note"
|
|
|
+ key="phone"
|
|
|
+ class="c-sibling-item--v"
|
|
|
+ type="phone"
|
|
|
+ :initial="phone"
|
|
|
+ @update="onChangePhone"
|
|
|
+ />
|
|
|
+ <user-info-item
|
|
|
+ v-if="user && supportFeature.email"
|
|
|
+ key="email"
|
|
|
+ class="c-sibling-item--v"
|
|
|
+ type="email"
|
|
|
+ :initial="email"
|
|
|
+ @update="onChangeEmail"
|
|
|
+ />
|
|
|
<div
|
|
|
- class="o-app has-active"
|
|
|
- @click="onClickWechat"
|
|
|
+ v-if="supportFeature.wechat"
|
|
|
+ class="l-flex--row center c-sibling-item--v farther"
|
|
|
>
|
|
|
- <i class="c-sibling-item--v o-icon md wechat" />
|
|
|
- <div class="l-flex--row c-sibling-item--v far">
|
|
|
- <template v-if="wechat">
|
|
|
- <div class="c-sibling-item u-color--info light">已绑定</div>
|
|
|
- <div class="c-sibling-item">解绑</div>
|
|
|
- </template>
|
|
|
- <div v-else>
|
|
|
- 绑定微信
|
|
|
+ <div
|
|
|
+ class="o-app has-active"
|
|
|
+ @click="onClickWechat"
|
|
|
+ >
|
|
|
+ <i class="c-sibling-item--v o-icon md wechat" />
|
|
|
+ <div class="l-flex--row c-sibling-item--v far">
|
|
|
+ <template v-if="wechat">
|
|
|
+ <div class="c-sibling-item u-color--info light">已绑定</div>
|
|
|
+ <div class="c-sibling-item">解绑</div>
|
|
|
+ </template>
|
|
|
+ <div v-else>
|
|
|
+ 绑定微信
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- class="o-app has-active"
|
|
|
- @click="onClickApplet"
|
|
|
- >
|
|
|
- <i class="c-sibling-item--v o-icon md applet" />
|
|
|
- <div class="l-flex--row c-sibling-item--v far">
|
|
|
- <template v-if="applet">
|
|
|
- <div class="c-sibling-item u-color--info light">已绑定</div>
|
|
|
- <div class="c-sibling-item">解绑</div>
|
|
|
- </template>
|
|
|
- <div v-else>
|
|
|
- 绑定小程序
|
|
|
+ <div
|
|
|
+ class="o-app has-active"
|
|
|
+ @click="onClickApplet"
|
|
|
+ >
|
|
|
+ <i class="c-sibling-item--v o-icon md applet" />
|
|
|
+ <div class="l-flex--row c-sibling-item--v far">
|
|
|
+ <template v-if="applet">
|
|
|
+ <div class="c-sibling-item u-color--info light">已绑定</div>
|
|
|
+ <div class="c-sibling-item">解绑</div>
|
|
|
+ </template>
|
|
|
+ <div v-else>
|
|
|
+ 绑定小程序
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <template v-if="active === 'password'">
|
|
|
- <reset-password />
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <el-dialog
|
|
|
- :visible.sync="showQr"
|
|
|
- custom-class="c-dialog--transparent"
|
|
|
- :close-on-click-modal="false"
|
|
|
- append-to-body
|
|
|
- >
|
|
|
- <div class="c-wechat has-padding">
|
|
|
- <div class="l-flex--row center c-sibling-item--v u-relative">
|
|
|
- <i class="c-sibling-item o-icon wechat" />
|
|
|
- <span class="c-sibling-item u-color--black u-bold">请使用微信扫一扫</span>
|
|
|
- <i
|
|
|
- class="c-wechat__close el-icon-close o-icon has-active u-bold"
|
|
|
- @click="onCloseQr"
|
|
|
- />
|
|
|
+ </template>
|
|
|
+ <template v-if="active === 'password'">
|
|
|
+ <reset-password />
|
|
|
+ </template>
|
|
|
</div>
|
|
|
- <div
|
|
|
- v-loading="qrOptions.loading"
|
|
|
- class="c-sibling-item--v far c-wechat__wrapper"
|
|
|
- :class="{ retry: qrOptions.retry }"
|
|
|
- @click="getQr"
|
|
|
- >
|
|
|
- <img
|
|
|
- class="c-wechat__qr"
|
|
|
- :src="qrOptions.qr"
|
|
|
+ </div>
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="showQr"
|
|
|
+ custom-class="c-dialog--transparent"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ append-to-body
|
|
|
+ >
|
|
|
+ <div class="c-wechat has-padding">
|
|
|
+ <div class="l-flex--row center c-sibling-item--v u-relative">
|
|
|
+ <i class="c-sibling-item o-icon wechat" />
|
|
|
+ <span class="c-sibling-item u-color--black u-bold">请使用微信扫一扫</span>
|
|
|
+ <i
|
|
|
+ class="c-wechat__close el-icon-close o-icon has-active u-bold"
|
|
|
+ @click="onCloseQr"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ v-loading="qrOptions.loading"
|
|
|
+ class="c-sibling-item--v far c-wechat__wrapper"
|
|
|
+ :class="{ retry: qrOptions.retry }"
|
|
|
+ @click="getQr"
|
|
|
>
|
|
|
+ <img
|
|
|
+ class="c-wechat__qr"
|
|
|
+ :src="qrOptions.qr"
|
|
|
+ >
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
+ </el-dialog>
|
|
|
+ </template>
|
|
|
+ <div
|
|
|
+ v-else
|
|
|
+ class="l-flex__fill l-flex--col center has-padding"
|
|
|
+ >
|
|
|
+ <reset-password />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
@@ -202,6 +210,9 @@ export default {
|
|
|
const avatar = this.avatar
|
|
|
return avatar ? { backgroundImage: `url("${avatar}")` } : null
|
|
|
},
|
|
|
+ hasSupportFeature () {
|
|
|
+ return SupportedAlarmStrategies.some(({ support }) => support)
|
|
|
+ },
|
|
|
supportFeature () {
|
|
|
const map = {}
|
|
|
SupportedAlarmStrategies.forEach(({ key, support }) => {
|
|
|
@@ -240,7 +251,9 @@ export default {
|
|
|
created () {
|
|
|
this.$timer = null
|
|
|
this.$checkTimer = null
|
|
|
- this.getUserInfo()
|
|
|
+ if (this.hasSupportFeature) {
|
|
|
+ this.getUserInfo()
|
|
|
+ }
|
|
|
},
|
|
|
beforeDestroy () {
|
|
|
clearTimeout(this.$timer)
|