duy 2 сар өмнө
parent
commit
df42ec6c8e

+ 2 - 1
src/renderer/src/api/modules/system/user.js

@@ -65,7 +65,7 @@ export const resetPassword = userIds => {
   })
 }
 
-export const updatePassword = (oldPassword, newPassword, newPassword1) => {
+export const updatePassword = (oldPassword, newPassword, newPassword1, userId) => {
   return HcApi({
     url: '/api/blade-system/user/update-password',
     method: 'post',
@@ -73,6 +73,7 @@ export const updatePassword = (oldPassword, newPassword, newPassword1) => {
       oldPassword,
       newPassword,
       newPassword1,
+      userId,
     },
   })
 }

+ 85 - 3
src/renderer/src/views/system/user.vue

@@ -32,6 +32,10 @@
                     <hc-icon name="edit" />
                     <span>编辑</span>
                 </el-link>
+                <el-link type="warning" @click="passwordEditClick(row)">
+                    <hc-icon name="edit" />
+                    <span>修改密码</span>
+                </el-link>
                 <el-link type="success" @click="rowDelClick(row)">
                     <hc-icon name="delete-bin-2" />
                     <span>删除</span>
@@ -52,7 +56,7 @@
                     <el-form-item label="登陆账户:" prop="account">
                         <el-input v-model="baseForm.account" clearable placeholder="请输入" />
                     </el-form-item>
-                    <el-form-item label="密码:" prop="passText">
+                    <el-form-item v-if="modalTitle === '新增'" label="密码:" prop="passText">
                         <el-input v-model="baseForm.passText" type="password" autocomplete="new-password" clearable placeholder="请输入" />
                     </el-form-item>
                 </div>
@@ -75,6 +79,27 @@
                 </div>
             </template>
         </hc-dialog>
+
+        <!-- 编辑密码 -->
+        <hc-dialog v-model="passWordModal" title="修改密码" widths="50rem" @close="passWordsaveClose">
+            <el-form ref="passWordFormRef" :model="passWordForm" :rules="passWordRules" label-width="auto">
+                <el-form-item label="旧密码:" prop="oldPassword">
+                    <el-input v-model="passWordForm.oldPassword" clearable placeholder="请输入" type="password" />
+                </el-form-item>
+                <el-form-item label="新密码:" prop="newPassword">
+                    <el-input v-model="passWordForm.newPassword" type="password" autocomplete="new-password" clearable placeholder="请输入" />
+                </el-form-item>
+                <el-form-item label="确认密码:" prop="newPassword1">
+                    <el-input v-model="passWordForm.newPassword1" type="password" autocomplete="new-newPassword1" clearable placeholder="请输入" />
+                </el-form-item>
+            </el-form>
+            <template #footer>
+                <div class="dialog-footer">
+                    <el-button @click="passWordsaveClose">取消</el-button>
+                    <el-button :loading="passModalCloseading" hc-btn type="primary" @click="passModalSave">提交</el-button>
+                </div>
+            </template>
+        </hc-dialog>
     </hc-card>
 </template>
 
@@ -82,7 +107,7 @@
 import { onMounted, ref } from 'vue'
 import { HcDelMsg } from 'hc-vue3-ui'
 import { arrToId, downloadBlob, formValidate, getArrValue, getObjValue } from 'js-fast-way'
-import { add, getExportExcel, getList, getUser, remove, resetPassword, update } from '~api/system/user.js'
+import { add, getExportExcel, getList, getUser, remove, resetPassword, update, updatePassword } from '~api/system/user.js'
 import { getRoleTree } from '~api/system/role.js'
 
 onMounted(() => {
@@ -92,7 +117,7 @@ const tableColumn = [
     { key: 'account', name: '登陆账户', align: 'center' },
     { key: 'realName', name: '用户名', align: 'center' },
     { key: 'roleName', name: '角色', align: 'center' },
-    { key: 'action', name: '操作', align: 'center', width: '140' },
+    { key: 'action', name: '操作', align: 'center', width: '180' },
 ]
 const tableData = ref([])
 const tableLoading = ref(false)
@@ -294,4 +319,61 @@ const getRoleOptions = async () => {
         roleOptions.value = []
     }
 }
+
+//修改密码
+const passWordModal = ref(false)
+const passWordsaveClose = () => {
+    passWordModal.value = false
+    passModalCloseading.value = false
+    passWordForm.value = {}
+}
+const passModalCloseading = ref(false)
+const passWordFormRef = ref(null)
+const passWordForm = ref({ oldPassword: '', newPassword: '', newPassword1: '', userId: '' })
+const passWordRules = {
+    oldPassword: {
+        required: true,
+        trigger: 'blur',
+        message: '请输入原密码',
+    },
+    newPassword: {
+        required: true,
+        trigger: 'blur',
+        message: '请输入新密码',
+    },
+    newPassword1: {
+        required: true,
+        trigger: 'blur',
+        message: '请输入确认密码',
+    },
+    
+}
+const passModalSave = async () => {
+    const isValidate = await formValidate(passWordFormRef.value)
+    if (!isValidate) return false
+         passModalCloseading.value = true
+        const { error, code, msg } = await updatePassword(
+            passWordForm.value.oldPassword,
+            passWordForm.value.newPassword,  
+            passWordForm.value.newPassword1,
+            passWordForm.value.userId,
+    )
+        //判断状态
+        passModalCloseading.value = false
+        if (!error && code === 200) {
+            window?.$message?.success(msg)
+            passWordsaveClose()
+            getTableData()
+        } else {
+            window.$message.error(msg ?? '操作失败')
+        }
+    
+}
+const passwordEditClick = async (row) => {
+    passWordModal.value = true
+    passWordForm.value.userId = row.id
+    passWordForm.value.oldPassword = row.passText
+    passWordForm.value.newPassword = ''
+    passWordForm.value.newPassword1 = '' 
+}
 </script>

+ 82 - 2
src/renderer/src/views/system2/user.vue

@@ -32,6 +32,10 @@
                     <hc-icon name="edit" />
                     <span>编辑</span>
                 </el-link>
+                <el-link type="warning" @click="passwordEditClick(row)">
+                    <hc-icon name="edit" />
+                    <span>修改密码</span>
+                </el-link>
                 <el-link type="success" @click="rowDelClick(row)">
                     <hc-icon name="delete-bin-2" />
                     <span>删除</span>
@@ -52,7 +56,7 @@
                     <el-form-item label="登陆账户:" prop="account">
                         <el-input v-model="baseForm.account" clearable placeholder="请输入" />
                     </el-form-item>
-                    <el-form-item label="密码:" prop="passText">
+                    <el-form-item v-if="modalTitle === '新增'" label="密码:" prop="passText">
                         <el-input v-model="baseForm.passText" type="password" autocomplete="new-password" clearable placeholder="请输入" />
                     </el-form-item>
                 </div>
@@ -75,6 +79,26 @@
                 </div>
             </template>
         </hc-dialog>
+        <!-- 编辑密码 -->
+        <hc-dialog v-model="passWordModal" title="修改密码" widths="50rem" @close="passWordsaveClose">
+            <el-form ref="passWordFormRef" :model="passWordForm" :rules="passWordRules" label-width="auto">
+                <el-form-item label="旧密码:" prop="oldPassword">
+                    <el-input v-model="passWordForm.oldPassword" clearable placeholder="请输入" type="password" />
+                </el-form-item>
+                <el-form-item label="新密码:" prop="newPassword">
+                    <el-input v-model="passWordForm.newPassword" type="password" autocomplete="new-password" clearable placeholder="请输入" />
+                </el-form-item>
+                <el-form-item label="确认密码:" prop="newPassword1">
+                    <el-input v-model="passWordForm.newPassword1" type="password" autocomplete="new-newPassword1" clearable placeholder="请输入" />
+                </el-form-item>
+            </el-form>
+            <template #footer>
+                <div class="dialog-footer">
+                    <el-button @click="passWordsaveClose">取消</el-button>
+                    <el-button :loading="passModalCloseading" hc-btn type="primary" @click="passModalSave">提交</el-button>
+                </div>
+            </template>
+        </hc-dialog>
     </hc-card>
 </template>
 
@@ -82,7 +106,7 @@
 import { onMounted, ref } from 'vue'
 import { HcDelMsg } from 'hc-vue3-ui'
 import { arrToId, downloadBlob, formValidate, getArrValue, getObjValue } from 'js-fast-way'
-import { add, getExportExcel, getList, getUser, remove, resetPassword, update } from '~api/system/user.js'
+import { add, getExportExcel, getList, getUser, remove, resetPassword, update, updatePassword } from '~api/system/user.js'
 import { getRoleTree } from '~api/system/role.js'
 
 onMounted(() => {
@@ -297,4 +321,60 @@ const getRoleOptions = async () => {
         roleOptions.value = []
     }
 }
+//修改密码
+const passWordModal = ref(false)
+const passWordsaveClose = () => {
+    passWordModal.value = false
+    passModalCloseading.value = false
+    passWordForm.value = {}
+}
+const passModalCloseading = ref(false)
+const passWordFormRef = ref(null)
+const passWordForm = ref({ oldPassword: '', newPassword: '', newPassword1: '', userId: '' })
+const passWordRules = {
+    oldPassword: {
+        required: true,
+        trigger: 'blur',
+        message: '请输入原密码',
+    },
+    newPassword: {
+        required: true,
+        trigger: 'blur',
+        message: '请输入新密码',
+    },
+    newPassword1: {
+        required: true,
+        trigger: 'blur',
+        message: '请输入确认密码',
+    },
+    
+}
+const passModalSave = async () => {
+    const isValidate = await formValidate(passWordFormRef.value)
+    if (!isValidate) return false
+         passModalCloseading.value = true
+        const { error, code, msg } = await updatePassword(
+            passWordForm.value.oldPassword,
+            passWordForm.value.newPassword,  
+            passWordForm.value.newPassword1,
+            passWordForm.value.userId,
+    )
+        //判断状态
+        passModalCloseading.value = false
+        if (!error && code === 200) {
+            window?.$message?.success(msg)
+            passWordsaveClose()
+            getTableData()
+        } else {
+            window.$message.error(msg ?? '操作失败')
+        }
+    
+}
+const passwordEditClick = async (row) => {
+    passWordModal.value = true
+    passWordForm.value.userId = row.id
+    passWordForm.value.oldPassword = row.passText
+    passWordForm.value.newPassword = ''
+    passWordForm.value.newPassword1 = '' 
+}
 </script>