无人机管理后台前端(已迁走)
张含笑
2025-06-05 0ab0d84955180a35d3bb42de612a046aba4e0bbe
feat:个人中心
3 files modified
50 ■■■■ changed files
src/option/user/info.js 15 ●●●●● patch | view | raw | blame | history
src/store/modules/user.js 2 ●●● patch | view | raw | blame | history
src/views/system/userinfo.vue 33 ●●●● patch | view | raw | blame | history
src/option/user/info.js
@@ -1,6 +1,10 @@
export default {
  tabs: true,
  tabsActive: 1,
  // 全局禁用自动填充
  formAttrs: {
    autocomplete: 'off'
  },
  group: [
    {
      label: '个人信息',
@@ -25,14 +29,25 @@
          span: 12,
          row: true,
          prop: 'realName',
          rules: [
            {
              required: true,
              message: '姓名不能为空',
              trigger: 'blur'
            }
          ],
          required: true
        },
        {
          label: '手机号',
          span: 12,
          row: true,
          prop: 'phone',
        },
        {
          slot: true,
          label: '邮箱',
          prop: 'email',
          span: 12,
src/store/modules/user.js
@@ -39,7 +39,7 @@
    token: getStore({ name: 'token' }) || '',
    refreshToken: getStore({ name: 'refreshToken' }) || '',
    parentDeptInfo: getStore({ name: 'parentDeptInfo' }) || '',
    defaultAva: defaultAva, // 将图片路径存入 state(可选)
  },
  actions: {
    //根据用户名登录
src/views/system/userinfo.vue
@@ -2,11 +2,27 @@
  <div>
    <basic-container>
      <avue-form
        ref="form"
        :option="option"
        v-model="form"
        @tab-click="handleTabClick"
        @submit="handleSubmit"
      ></avue-form>
      >
        <template #email="{ disabled, size }">
            <el-input
            id="adfsdafdsf"
              type="text"
              :disabled="disabled"
              :size="size"
              v-model="form.email"
              placeholder="请输入邮箱"
              :readonly="readonly"
              @focus="readonly = false"
            >
            </el-input>
        </template>
      </avue-form>
    </basic-container>
  </div>
</template>
@@ -17,13 +33,14 @@
import md5 from 'js-md5';
import func from '@/utils/func';
import { validatenull } from '@/utils/validate';
import defaultAva from '@/assets/images/defaultava.png';
export default {
  data() {
    return {
      index: 0,
      option: option,
      form: {},
      form: {  },
      readonly: true
    };
  },
  created() {
@@ -32,7 +49,9 @@
  methods: {
    handleSubmit(form, done) {
      if (this.index === 0) {
        form.name = form.realName
        form.name = form.realName;
        console.log('form, done', form, done);
        updateInfo(form).then(
          res => {
            if (res.data.success) {
@@ -80,17 +99,21 @@
      if (this.index === 0) {
        getUserInfo().then(res => {
          const user = res.data.data;
          this.form = {
            id: user.id,
            avatar: user.avatar,
            avatar: user.avatar ? user.avatar :defaultAva,
            name: user.name,
            realName: user.realName,
            phone: user.phone,
            email: user.email,
          };
          // console.log('用户信息',user);
        });
      }
    },
    handleTabClick(tabs) {
      if (validatenull(tabs.index)) {
        return;