Browse Source

修改密码

YY 2 years ago
parent
commit
e6a86894a2
1 changed files with 59 additions and 2 deletions
  1. 59 2
      src/components/account/updatepwd-1.vue

+ 59 - 2
src/components/account/updatepwd-1.vue

@@ -1,13 +1,70 @@
 <template>
   <div id="updatepwd-1">
     <el-row>
-      <el-col :span="24" class="main"> test </el-col>
+      <el-col :span="24" class="main">
+        <component :is="CForm" :span="24" :fields="fields" :form="form" :rules="rules" @save="toSave"> </component>
+      </el-col>
     </el-row>
   </div>
 </template>
 
 <script setup lang="ts">
+import store from '@/stores/counter';
+import CForm from '@common/src/components/frame/c-form.vue';
+import type { FormRules } from 'element-plus';
 import type { Ref } from 'vue';
-import { ref, toRefs } from 'vue';
+import { ref, reactive, onMounted } from 'vue';
+import { ElMessage } from 'element-plus';
+import { UsersStore } from '@common/src/stores/users/users';
+import { UnitStore } from '@common/src/stores/users/unit';
+import { AdminStore } from '@common/src/stores/users/admin';
+import type { IQueryResult } from '@/util/types.util';
+const unit = UnitStore();
+const admin = AdminStore();
+const users = UsersStore();
+let fields: Ref<any[]> = ref([
+  { label: '新密码', model: 'password', type: 'password' },
+  { label: '确认新密码', model: 'ispassword', type: 'password' },
+]);
+const rules = reactive<FormRules>({
+  password: [{ required: true, message: '请输入新密码' }],
+  ispassword: [
+    { required: true, message: '请输入确认新密码' },
+    {
+      trigger: 'blur',
+      validator: (rule, value, callback) => {
+        if (form.value.password !== value) {
+          callback(new Error('两次输入的密码不一致'));
+        } else {
+          callback();
+        }
+      },
+    },
+  ],
+});
+const form: Ref<{ password: string }> = ref({ password: '' });
+let role_type: Ref<string> = ref('');
+let user = store.state.user as { _id: string; role_type: string };
+onMounted(async () => {
+  await search();
+});
+// 查询
+const search = async () => {
+  if (user && user.role_type) role_type.value = user.role_type;
+};
+// 审核保存
+const toSave = async (data: { _id: string; password: string }) => {
+  let res: IQueryResult;
+
+  if (role_type.value == '0' || role_type.value == '1') res = await admin.rp(data.password);
+  else if (role_type.value == '2') res = await users.rp(data.password);
+  else if (role_type.value == '3') res = await unit.rp(data.password);
+  ElMessage({ type: 'success', message: '操作成功' });
+  logout();
+};
+const logout = () => {
+  localStorage.removeItem('token');
+  window.location.href = `${import.meta.env.VITE_APP_HOST}`;
+};
 </script>
 <style scoped></style>