zdl 1 жил өмнө
parent
commit
22f1176863

+ 9 - 0
src/api/user.js

@@ -105,3 +105,12 @@ export function userText(data) {
     data: data
   })
 }
+
+// 删除管理员
+export function editPassword(data) {
+  return request({
+    url: '/user/editPassword ',
+    method: 'post',
+    data: data
+  })
+}

+ 73 - 0
src/views/user/list/components/PasswordDialog.vue

@@ -0,0 +1,73 @@
+<template>
+  <div>
+    <el-dialog
+      title="修改密码"
+      :visible.sync="data.bSwitch"
+      width="30%"
+    >
+      <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
+        <el-form-item label="新密码" prop="password">
+          <el-input v-model="ruleForm.password" placeholder="请输入" show-password />
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="data.bSwitch = false">取 消</el-button>
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { editPassword } from '@/api/user'
+export default {
+  props: {
+    data: {
+      type: Object,
+      default() {
+        return {
+          bSwitch: false,
+          row: {}
+        }
+      }
+    }
+  },
+  data() {
+    return {
+      ruleForm: {
+        password: '',
+        id: ''
+      },
+      rules: {
+        password: [
+          { required: true, message: '请输入', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created() {
+    const { id } = this.data.row
+    this.ruleForm.id = id
+  },
+  methods: {
+    submitForm() {
+      this.$refs['ruleForm'].validate((valid) => {
+        if (valid) {
+          editPassword(this.ruleForm).then(res => {
+            this.$message.success(res.m || '操作成功')
+            this.data.bSwitch = false
+          })
+        } else {
+          return false
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.demo-ruleForm {
+	width: 80%;
+}
+</style>

+ 24 - 2
src/views/user/list/index.vue

@@ -70,6 +70,14 @@
                   circle
                   @click="editAlert(scope.row)"
                 />
+                <el-button
+                  v-if="checkPermission(['admin/user/editUser'])"
+                  type="warning"
+                  icon="el-icon-key"
+                  size="mini"
+                  circle
+                  @click="onChangePassword(scope.row)"
+                />
                 <el-button
                   v-if="checkPermission(['admin/user/delUser'])"
                   slot="reference"
@@ -102,7 +110,7 @@
         <el-form-item label="工号">
           <el-input v-model="alertForm.name" placeholder="工号" />
         </el-form-item>
-        <el-form-item label="密码">
+        <el-form-item v-if="dialogStatus === 'create'" label="密码">
           <el-input v-model="alertForm.pwd" :type="passwordType" placeholder="密码">
             <i
               slot="suffix"
@@ -156,14 +164,20 @@
         <el-button v-else type="primary" @click="editSubmit">确 定</el-button>
       </span>
     </el-dialog>
+    <!-- 修改密码 -->
+    <PasswordDialogVue v-if="pwdData.bSwitch" :data="pwdData" />
   </div>
 </template>
 
 <script>
 import { addUser, userGroup, userList, delUser, editUser } from '@/api/user'
 import { getDeportmentList } from '@/api/admin'
+import PasswordDialogVue from './components/PasswordDialog.vue'
 
 export default {
+  components: {
+    PasswordDialogVue
+  },
   data() {
     return {
       listCount: 0,
@@ -212,7 +226,11 @@ export default {
       },
       count: 0,
       groupList: [],
-      deportments: []
+      deportments: [],
+      pwdData: {
+        bSwitch: false,
+        row: {}
+      }
     }
   },
   created() {
@@ -341,6 +359,10 @@ export default {
           this.getList()
         })
       })
+    },
+    onChangePassword(row) {
+      this.pwdData.row = row
+      this.pwdData.bSwitch = true
     }
   }
 }