longyvfengyun
2022-03-01 c5d9d4ae30de0a6a0a160c0659bc7a85034398b2
内容提交
8个文件已修改
182 ■■■■■ 已修改文件
src/assets/js/apis/login/index.js 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/const/const_operation.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/const/const_rules.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/PageHeader.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/PwdChange.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/login.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/userMager/addEdit.vue 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/userMager/userInfo.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/apis/login/index.js
@@ -25,14 +25,23 @@
     * 更新用户密码
     * @param pwd
     * @returns {AxiosPromise}
     * 备注:encodeURIComponent执行两次的原因是post过程中会自动恢复一层encodeURIComponent
     */
    updateUserPwd(pwd) {
        return axios({
            method: 'post',
            url: 'User_infAction!updatePassword',
            data: "uif.USnId="+ encodeURIComponent(AES.encrypt(pwd)),
            data: "uif.USnId="+ encodeURIComponent(encodeURIComponent(AES.encrypt(pwd))),
        });
    },
    /**
     * 重置密码
     * @param name
     * @param oldPwd
     * @param newPwd
     * @returns {AxiosPromise}
     * 备注:encodeURIComponent执行两次的原因是post过程中会自动恢复一层encodeURIComponent
     */
    updateUserPwd2(name, oldPwd, newPwd) {
        return axios({
            method: 'post',
@@ -41,7 +50,7 @@
                UName: name,
                Upassword: md5(oldPwd),
                UNote: md5(newPwd),
                USnId: encodeURIComponent(AES.encrypt(newPwd)),
                USnId: encodeURIComponent(encodeURIComponent(AES.encrypt(newPwd))),
            }),
        });
    },
@@ -67,5 +76,16 @@
            url: 'Server_stateAction_action_getTimestamp',
            data: null,
        });
    }
    },
    /**
     * 关闭浏览器,清除session
     * @returns {AxiosPromise}
     */
    closeBrowser() {
        return axios({
            method: 'post',
            url: 'LoginAction_closeBrowser',
            data: null,
        });
    },
}
src/assets/js/const/const_operation.js
@@ -28,6 +28,30 @@
                    label: '删除',
                    value: 5
                },
                {
                    label: "越权访问",
                    value: 20,
                },
                {
                    label: "调用异常",
                    value: 21,
                },
                {
                    label: "登录失败",
                    value: 31,
                },
                {
                    label: "配置更改",
                    value: 32,
                },
                {
                    label: "密码修改",
                    value: 33,
                },
                {
                    label: "超时登录",
                    value: 34,
                },
            ]
        },
        {
src/assets/js/const/const_rules.js
@@ -8,5 +8,10 @@
    pattern: /^[^`~!@$%&*?<>/\\|=+^{}\[\]\'\"【】‘’¥——、,。;:?《》!]*$/i,
    regVal: false,
    msg: "存在特殊字符"
  },
  isWhiteIp: {
    pattern:/^((\*,)*(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?),)*(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}((2[0-4]\d|25[0-5]|[01]?\d\d?)|(\*)),)*(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){2}((\*\.)(\*)),)*(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.)(\*\.){2}(\*),)*)*((\*)|(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))|(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}((2[0-4]\d|25[0-5]|[01]?\d\d?)|(\*)))|(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){2}((\*\.)(\*)))|(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.)(\*\.){2}(\*)))$/,
    regVal: false,
    msg: "请输入正确的IP地址例如:*或192.168.10.7,192.168.10.8"
  }
}
src/components/PageHeader.vue
@@ -414,6 +414,13 @@
    };
  },
  methods: {
    closeBrowser() {
      this.$apis.login.closeBrowser().then(res=>{
        console.log(res);
      }).catch(error => {
        console.log(error);
      });
    },
    alarmAlert() {
      this.alarmAlertStatus = !this.alarmAlertStatus;
    },
@@ -1085,7 +1092,6 @@
        .getLicenseResTime()
        .then((res) => {
          let rs = JSON.parse(res.data.result);
          console.log(rs);
          if (rs.code == 1) {
            this.termDateShow = true;
            this.termDate = rs.data;
@@ -1307,6 +1313,19 @@
    this.changeSkin();
  },
  mounted() {
    let _beforeUnload_time = 0;
    let _unload_time = 0;
    // 监控浏览器关闭
    window.addEventListener('beforeunload', e=>{
      _beforeUnload_time = new Date().getTime();
    });
    window.addEventListener("unload", e=>{
      _unload_time = new Date().getTime();
      if(_unload_time-_beforeUnload_time<=1) {
        this.closeBrowser();
      }
    });
    // 启动请求
    this.startSearch();
    this.startLogUseCount();
src/components/PwdChange.vue
@@ -55,6 +55,7 @@
            }
        };
        return {
            loading: "",
            params: {
                oldPwd: "",
                newPwd: "",
@@ -86,6 +87,9 @@
            this.$refs.ruleForm.validate((valid) => {
                // 校验通过
                if (valid) {
                    // 开启等待框
                    this.loading = this.$layer.loading();
                    if(this.firstChange) {
                      this.updateUserPwd2(this.name, this.params.oldPwd, this.params.newPwd);
                    }else {
@@ -107,22 +111,30 @@
                        this.confirmChangeUserPwd(this.params.newPwd);
                    }else {
                        // 关闭等待框
                        this.$layer.close(loading);
                        this.$layer.close(this.loading);
                        this.$layer.msg("新密码和确认密码不一致");
                    }
                }else {
                    // 关闭等待框
                    this.$layer.close(this.loading);
                    this.$layer.msg("原始密码错误!");
                }
            }).catch(error=>{
                console.log(error);
                // 关闭等待框
                this.$layer.close(this.loading);
            });
        },
        // 确认修改用户密码
        confirmChangeUserPwd(pwd) {
            // 关闭等待框
            this.$layer.close(this.loading);
            this.$confirm("确认修改用户密码", '系统提示', {
                type: 'warning',
            }).then(()=>{
                // 开启等待框
                this.loading = this.$layer.loading();
                this.updateUserPwd(pwd);
            }).catch(()=>{});
        },
@@ -135,10 +147,12 @@
                }else {
                    this.$layer.msg("密码更新失败");
                }
                // 关闭等待框
                this.$layer.close(this.loading);
            }).catch(error=>{
                console.log(error);
                // 关闭等待框
                this.$layer.close(loading);
                this.$layer.close(this.loading);
            });
        },
        updateUserPwd2(name, oldPwd, newPwd) {
@@ -150,8 +164,12 @@
            }else {
              this.$layer.msg(rs.msg);
            }
            // 关闭等待框
            this.$layer.close(this.loading);
          }).catch(error=>{
            this.$layer.msg("网络请求异常,密码更新失败");
            // 关闭等待框
            this.$layer.close(this.loading);
          });
        },
        close() {
src/pages/login.vue
@@ -660,6 +660,13 @@
        console.log(error);
      });
    },
    closeBrowser() {
      this.$apis.login.closeBrowser().then(res=>{
        console.log(res);
      }).catch(error => {
        console.log(error);
      });
    },
  },
  computed: {
    uKeyState() {
@@ -756,11 +763,10 @@
        this.init();
      }
    });
    //console.log(AES.encrypt("123456"));
    // console.log(encodeURIComponent("B17jjjYoBkbfZChw/fHzcA=="));
    // console.log(decodeURIComponent("B17jjjYoBkbfZChw%2FfHzcA%3D%3D"))
    //console.log(AES.decrypt("BAaiESc qt58gWNITRtXWw=="));
    console.log(AES.decrypt("BAaiESc qt58gWNITRtXWw=="));
    // console.log(md5("a123456"));
    // console.log(JSON.stringify("5OUaEnC33sVNY+jeXlx3Qg=="));
  },
src/pages/userMager/addEdit.vue
@@ -138,6 +138,29 @@
                placeholder="选择日期时间">
            </el-date-picker>
          </el-form-item>
          <el-form-item label="访问控制时间:" class="table-cell" prop="visitTime" v-if="isSysAdmin">
            <el-time-picker
                popper-class="white-bg"
                is-range
                size="mini"
                arrow-control
                v-model="rangeTime"
                range-separator="至"
                start-placeholder="开始时间"
                end-placeholder="结束时间"
                placeholder="选择时间范围"
                @change="timeChange">
            </el-time-picker>
          </el-form-item>
          <el-form-item label="IP白名单:" prop="visitIp" v-if="isSysAdmin">
            <el-input
                type="textarea"
                :rows="6"
                placeholder="请输入内容"
                resize="none"
                v-model="formData.visitIp">
            </el-input>
          </el-form-item>
        </div>
        <!-- <div class="clear" v-if="status == 'edit'"></div> -->
        <!-- <el-form-item label="身份证号:" class="table-cell">
@@ -228,12 +251,19 @@
import AES from "@/common/AES";
import validateRules from "@/assets/js/tools/validateRules";
import extend from "@/assets/js/tools/extend";
import const_rules from "@/assets/js/const/const_rules";
import {
  testVal
} from '../../assets/js/tools'
export default {
  // name:'addEdit',
  props: ["status", "opt", "index", "seft"],
  data() {
    let userId = sessionStorage.getItem("userId");
    let constRules = const_rules;
    return {
      userId: userId,
      dialog: false,
      UDepartmentList: [],
      UJobGroupList: [],
@@ -269,6 +299,9 @@
        type: 1,
        status: 1,
        expirationTime: null,
        permitGroupId: 0,                // 用户所在权限组
        visitTime: "00:00:01~23:59:59",   // 默认值 全天
        visitIp: "*"                      // 允许访问的IP * 代表全部
      },
      rules: {
        UName: [
@@ -320,8 +353,25 @@
            trigger: "blur",
          },
        ],
        visitIp: [
          {
            validator(rule, value, callback) {
              testVal(rule, value, callback, constRules.isWhiteIp)
            },
            trigger: 'change'
          },
        ]
      },
      rangeTime: [
        "2016-10-1 00:00:01",
        "2016-10-1 23:59:59",
      ],
    };
  },
  computed: {
    isSysAdmin() {
      return this.userId==1?true:false;
    }
  },
  mounted() {
    this.queryWhq(); //维护区
@@ -330,6 +380,13 @@
      this.formData.uRole = 2;
    } else {
      this.formData.uRole = this.opt.uRole;
      this.formData.visitTime = this.opt.visitTime;
      this.formData.visitIp = this.opt.visitIp;
      let times = this.opt.visitTime.split("~");
      this.rangeTime = [
          new Date("2016-10-1 "+times[0]),
        new Date("2016-10-1 "+times[1]),
      ];
    }
  },
  methods: {
@@ -485,6 +542,11 @@
        }
      );
    },
    timeChange(time) {
      let time1 = time[0].format("hh:mm:ss");
      let time2 = time[1].format("hh:mm:ss");
      this.formData.visitTime = time1+"~"+time2;
    }
  },
};
</script>
src/pages/userMager/userInfo.vue
@@ -40,7 +40,8 @@
                    <el-tag type="danger" size="mini" v-else>{{ scope.row.statusText }}</el-tag>
                  </template>
                </el-table-column>
                <!-- <el-table-column prop="UNote" width="90px" align="center"  label="备注"></el-table-column> -->
                <el-table-column prop="visitTime" width="160" align="center"  label="访问时间控制"></el-table-column>
                <el-table-column :show-overflow-tooltip="true" prop="visitIp" width="160" align="center"  label="IP白名单"></el-table-column>
                <!--<el-table-column prop="UId" align="center" label="权限组"></el-table-column>-->
                <el-table-column prop="cztime" fixed="right" width="180px" align="center" label="操作">
                    <template slot-scope="scope">
@@ -67,7 +68,7 @@
            </div>
        </div>
        <Dialog :title="dialogTitle" :visible.sync="centerDialogVisible" top='0' :close-on-click-modal="false"
            class="dialog-center" width="700px" center>
            class="dialog-center" width="760px" center>
            <!-- addEdit -->
            <add-edit v-if="reFresh" :seft="this" @success="success" @onClose="onClose" :status="status"
                :index="thisIndex" :opt="opt"></add-edit>
@@ -115,7 +116,6 @@
                status: '',
                thisIndex: '',
                opt: {},
                reFresh: true
            }
        },
@@ -245,6 +245,8 @@
                    }).filter(item=>{
                      return item.UId>100
                    });
                    console.log(this.userList);
                }).catch(error => {
                    console.log(error);
                });