| 
					
				 | 
			
			
				@@ -0,0 +1,71 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     <Group> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form :model="formData" label-suffix=":" ref="formRef"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item :label="$t('oldPassword')"  prop="oldPassword" style="width: 360px;" :rules="[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { required: true, message: $t('enterOldPassword'), trigger: 'blur' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ]"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input v-model="formData.oldPassword" type="password" show-password :placeholder="$t('oldPasswordPlaceholder')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item :label="$t('newPassword')" prop="newPassword" style="width: 360px;" :rules="[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { required: true, message: $t('enterNewPassword'), trigger: 'blur' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { min: 6, max: 10, message: $t('passwordLength'), trigger: 'blur' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ]"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input v-model="formData.newPassword" type="password" show-password :placeholder="$t('newPasswordPlaceholder')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item :label="$t('verifyPassword')" prop="verifyPassword" style="width: 360px;" :rules="[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { required: true, message: $t('confirmNewPassword'), trigger: 'blur' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { validator: validateVerifyPassword, trigger: 'blur' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ]"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input v-model="formData.verifyPassword" type="password" show-password :placeholder="$t('verifyPasswordPlaceholder')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item label=""> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-button type="primary" size="samll" v-debounce:click="submit">{{$t('submit')}}</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     </Group> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script lang='ts' setup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {ref ,onMounted, reactive} from 'vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {md5Data} from '@/utils/index'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import request from '@/utils/request' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { ElMessage } from 'element-plus'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import i18n from '@/utils/i18n' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const formData = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  oldPassword:'', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  newPassword:'', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  verifyPassword:'' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const formRef = ref(null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const validateVerifyPassword =(rule, value, callback) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (value === '') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        callback(new Error(i18n.global.t('confirmNewPassword'))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else if (value !== formData.newPassword) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        callback(new Error(i18n.global.t('twoNewPassword'))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        callback(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const submit= async ()=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  formRef.value.validate(async (valid)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(valid){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const encryptedOldPassword = md5Data(formData.oldPassword) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const encryptedNewPassword = md5Data(formData.newPassword)  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const encryptedFormData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        oldPassword: encryptedOldPassword, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        password: encryptedNewPassword 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const res = await request('post', '/api/live/video/user/resetPassword', encryptedFormData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if(res.code === 200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ElMessage.success(i18n.global.t('passwordChangeSuccess')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ElMessage.error(i18n.global.t('passwordChangeFail')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style scoped lang="scss"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |