1
jhzh
2025-06-16 1760942f9204e56032ca93ff1b720bbf966dd495
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<template>
  <view class="h-max d-flex flex-col">
    <view class="title p-md m-t-lg fn-center color-light">{{status?$t('safe.d7'):$t('safe.d8')}}{{name}}{{$t('safe.d9')}}</view>
    <view class="flex-fill">
      <view class="form-item border-b p-md" v-if="user.phone_status==1">
        <view class="label m-b-xs">{{$t('safe.c4')}}</view>
        <view class="input color-light">
          <v-input v-model="form.sms_code" :placeholder="$t('safe.a6')">
            <template #right>
              <v-code url="/user/getCode" :data="{type:1}" />
            </template>
          </v-input>
        </view>
      </view>
      <view class="form-item border-b p-md" v-if="user.email_status==1">
        <view class="label m-b-xs">{{$t('safe.a5')}}</view>
        <view class="input color-light">
          <v-input v-model="form.email_code" :placeholder="$t('safe.a6')">
            <template #right>
              <v-code url="/user/getCode" :data="{type:2}" />
            </template>
          </v-input>
        </view>
      </view>
      <view class="form-item border-b p-md" v-if="user.google_status==1">
        <view class="label m-b-xs">{{$t('safe.c5')}}</view>
        <view class="input color-light">
          <v-input v-model="form.google_code" :placeholder="$t('safe.a6')"></v-input>
        </view>
      </view>
    </view>
    <view class="p-md">
      <v-button class="w-max" block type="theme" @click="changeSwitch" ref="btn">{{status?$t('safe.d7'):$t('safe.d8')}}</v-button>
    </view>
    <van-toast id="van-toast" />
  </view>
</template>
<script>
import { mapState, mapActions } from "vuex";
import Setting from "@/api/setting";
export default {
  props: ["type"],
  data() {
    return {
      form: {
        sms_code: "",
        email_code: "",
        google_code: "",
        type: "",
      },
    };
  },
  computed: {
    ...mapState({
      user: "user",
    }),
    name() {
      let name = "";
      switch (this.type) {
        case 1:
          name = this.$t('safe.e0');
          break;
        case 2:
          name = this.$t('safe.a2');
          break;
        case 3:
          name = "Google";
          break;
      }
      return name;
    },
    status() {
      let open = true;
      switch (this.type) {
        case 1:
          open = this.user.phone_status == 1;
          break;
        case 2:
          open = this.user.email_status == 1;
          break;
        case 3:
          open = this.user.google_status == 1;
          break;
      }
      return open;
    },
  },
  methods: {
    ...mapActions({
      setUserInfo: "setUserInfo",
    }),
    changeSwitch() {
      let data = this.form;
      data.type = this.type;
 
      let enable = Setting.enableSmsEmailGoogle(data, { btn: this.$refs.btn });
      if (this.status)
        enable = Setting.disableSmsEmailGoogle(data, { btn: this.$refs.btn });
 
      enable
        .then(() => {
          this.$emit("close");
          this.$toast(this.status ? this.$t('safe.e1') : this.$t('safe.e2'));
          this.setUserInfo();
        })
        .catch(() => {});
    },
  },
  mounted() {},
};
</script>