zs 6 月之前
父节点
当前提交
9e65eee69d
共有 2 个文件被更改,包括 44 次插入3 次删除
  1. 43 1
      src/views/account/index.vue
  2. 1 2
      src/views/user/admin/index.vue

+ 43 - 1
src/views/account/index.vue

@@ -2,19 +2,61 @@
   <div id="index">
     <el-row>
       <el-col :span="24" class="main animate__animated animate__backInRight" v-loading="loading">
-        <el-col :span="24" class="one"> 修改密码 </el-col>
+        <el-col :span="24" class="one">
+          <custom-form v-model="form" :fields="fields" :rules="rules" @save="toSave"></custom-form>
+        </el-col>
       </el-col>
     </el-row>
   </div>
 </template>
 
 <script setup>
+import { UserStore } from '@/store/user'
+import { useTagsViewStore } from '@/store'
+import { LoginStore } from '@/store/api/login'
+const store = LoginStore()
+const userStore = UserStore()
+const tagsViewStore = useTagsViewStore()
+const user = computed(() => userStore.user)
+const router = useRouter()
+const $checkRes = inject('$checkRes')
 // 加载中
 const loading = ref(false)
+// 表单
+const form = ref({})
+const fields = ref([
+  { label: '新密码', model: 'password', type: 'password' },
+  { label: '确认新密码', model: 'ispassword', type: 'password' }
+])
+const rules = ref({
+  password: [{ required: true, message: '请输入新密码' }],
+  ispassword: [
+    { required: true, message: '请输入确认新密码' },
+    {
+      trigger: 'blur',
+      validator: (rule, value, callback) => {
+        if (form.value.password !== value) {
+          callback(new Error('两次输入的密码不一致'))
+        } else {
+          callback()
+        }
+      }
+    }
+  ]
+})
 // 请求
 onMounted(async () => {
   loading.value = true
   loading.value = false
 })
+// 提交保存
+const toSave = async (data) => {
+  let res = await store.rp({ id: user.id, password: data.password, type: user.role })
+  if ($checkRes(res, true)) {
+    userStore.logOut()
+    tagsViewStore.delAllViews()
+    router.push('/login')
+  }
+}
 </script>
 <style scoped lang="scss"></style>

+ 1 - 2
src/views/user/admin/index.vue

@@ -138,8 +138,7 @@ const formFieldsForUpdate = [
 ]
 const roleField = { label: '角色', model: 'role', type: 'select' }
 const toAdd = () => {
-  formFields.value = formFieldsForCreate
-  formFields.value.push(roleField)
+  formFields.value = [...formFieldsForCreate, roleField]
   form.value = cloneDeep(defaultForm)
   dialog.value = true
 }