11wqe1 преди 1 месец
родител
ревизия
c73979a3cd
променени са 2 файла, в които са добавени 102 реда и са изтрити 3 реда
  1. 3 0
      src/api/user.js
  2. 99 3
      src/components/list.vue

+ 3 - 0
src/api/user.js

@@ -19,6 +19,9 @@ export function getUser(data) {
   return axios.get(`${baseApi}/selectUser`, data)
 }
 
+export function iniPassword(data) {
+  return axios.post(`${baseApi}iniPassword`, [data])
+}
 
 export function addUser(data) {
   return axios.post(`${baseApi}/batchRegistrationUser`, [data])

+ 99 - 3
src/components/list.vue

@@ -337,6 +337,30 @@
         <el-button type="primary" @click="roleConfirm">确认</el-button>
       </div>
     </el-dialog>
+    <!-- 修改密码弹窗 -->
+    <el-dialog title="修改密码" class="table" :visible.sync="set_psd_dialog" :before-close="close_set_psd" width="700px">
+      <div class="el_dialog_org_content" style="height: none;">
+        <form class="el-form">
+          <div class="el-form-item">
+            <label class="el-form-item__label" style="width: 100px">名称</label>
+            <div class="el-form-item__content" style="margin-left: 5px">
+              <el-input disabled :value="userPsd.name" placeholder="请输入内容"></el-input>
+            </div>
+          </div>
+          <div class="el-form-item">
+            <label class="el-form-item__label" style="width: 100px">密码</label>
+            <div class="el-form-item__content" style="margin-left: 5px">
+              <el-input v-model.trim="psd" placeholder="请输入内容"></el-input>
+            </div>
+          </div>
+        </form>
+      </div>
+      <!-- 按钮区域 -->
+      <div slot="footer" class="el-dialog__footer">
+        <el-button @click="close_set_psd">取 消</el-button>
+        <el-button type="primary" @click="psdConfirm">确认</el-button>
+      </div>
+    </el-dialog>
     <!-- 内容区域 -->
     <div class="content">
       <!-- 按钮区域 -->
@@ -374,11 +398,14 @@
               <div>{{ roleType(row) }}</div>
             </template>
           </el-table-column>
-          <el-table-column show-overflow-toolti label="操作" min-width="35" header-align="center" align="center">
+          <el-table-column show-overflow-toolti label="操作" min-width="55" header-align="center" align="center">
             <template slot-scope="{ row }">
               <el-button link type="text" size="small" @click="ajax__open_stop(row)"
                 v-if="row.state == 1">停用</el-button>
-              <el-button link type="text" size="small" @click="run(row)" v-if="row.state == 1">移动</el-button>
+              <el-button link type="text" size="small" @click="updatePsd(row)"
+                v-if="row.state == 1">修改密码</el-button>
+              <el-button link type="text" size="small" @click="run(row)"
+               v-if="row.state == 1">移动</el-button>
               <el-button link type="text" size="small" @click="ajax__open_stop(row)"
                 v-if="row.state == 0">启用</el-button>
 
@@ -407,13 +434,18 @@ import { API_CONFIG } from "@/common/apiConfig";
 import { addOp } from "@/api/user";
 import { mapGetters } from "vuex";
 import { debounce } from "lodash";
-import { addUser } from "@/api/user.js";
+import { addUser,iniPassword } from "@/api/user.js";
 
 export default {
   name: "HelloWorld",
   components: {},
   data() {
     return {
+      // 修改密码 
+      psd:'',
+      userPsd:{},
+      set_psd_dialog:false,
+
       // 新增账户默认后缀
       SuffixData: '',
       // 储存筛选完后的学校
@@ -563,6 +595,64 @@ export default {
     handleSelectionChange(selectedRows) {
       this.checkArray = selectedRows.map((row) => row.userid);
     },
+    // 修改密码 
+    updatePsd(row){
+        this.userPsd = row
+        this.set_psd_dialog = true;
+        console.log('this.userPsd',this.userPsd);
+        
+    },
+    // 确定修改密码
+    psdConfirm(){
+       this.$confirm(`确认修改?`, "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+            const reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d]{8,16}$/;
+            if (!reg.test(this.psd)) {
+              this.$message.error("密码长度为8-16位,且包含大小写字母");
+              return;
+            }
+
+            let params = {
+              uid:this.userPsd.userid,
+              pa:this.psd,
+            };
+            iniPassword(params)
+              .then(async (response) => {
+                if (response) {
+                  console.log(`修改了${this.userPsd.name} 密码为${this.psd}`);
+                  
+                  await addOp({
+                    uid: this.userid,
+                    cid: "",
+                    type: "user_op",
+                    content: `修改了${this.userPsd.name} 密码为${this.psd}`,
+                  });
+                  this.$message({
+                    type: "success",
+                    message: "操作成功",
+                  });
+                  this.close_set_psd()
+                  // this.SuffixData = '';
+                  // this.isTableUseVisible = false;
+                  // this.getData(); // 例如刷新表格数据
+                }
+              })
+              .catch((error) => {
+                console.error("请求失败,错误信息:", error);
+              });
+        })
+        .catch(() => {
+          // 取消操作后提示
+          this.$message({
+            type: "info",
+            message: '已取消',
+          });
+        });
+    },
     // 移动按钮,将isOrgFormVisible区域显示
     run(row) {
       this.opUser = row;
@@ -613,6 +703,12 @@ export default {
     close_set_role() {
       this.set_role_dialog = false;
     },
+    // 关闭修改密码
+    close_set_psd(){
+      this.set_psd_dialog = false;
+      this.userPsd = {}
+      this.psd = ''
+    },
     roleConfirm() {
       // 发送 AJAX 请求
       let params = [