保存读取账户密码

(function (global,doc) {
  /*
account:账户【dom => input】
password:密码【dom => input】
iStorage:记住【dom => input】
setRun:1||2||3:存|取|忘 【存和取都是记住状态,删一定是false】
queryState:fn 查询
remove: fn 删除
add: 添加
update: 更新密码
init: 初始化
*/
  const vf = function (dataPack) {
    //0.入参
    this.opt = Object.assign({},dataPack);
    const Account = this.opt.account;
    const Password = this.opt.password;
    const iStorage = this.opt.iStorage;
    //1.查询
    this.queryState = function () {
      const user = JSON.parse(localStorage.getItem("QSLOGINLIST2018")) || false;
      if (user) {
        return user;
      }else {
        return false;
      }
    };
    //2.添加
    this.add = function (user,password,iStorage) {
      const _this = this;
      let dataArr = JSON.parse(localStorage.getItem('QSLOGINLIST2018'));
      if (dataArr) {
        const index = dataArr.findIndex(item => item.account === user);
        if (index === -1){
          dataArr.unshift({
            account:user,
            password:password,
            iStorage:iStorage
          });
          localStorage.setItem("QSLOGINLIST2018",JSON.stringify(dataArr));
        }else {
          _this.update(dataArr,index,password,iStorage);
        }
      }else {
        localStorage.setItem('QSLOGINLIST2018',JSON.stringify([
          {
            account:user,
            password:password,
            iStorage:iStorage
          }
        ]));
      }

    };
    //3.更新
    this.update = function (dataArr,index,pwd,iStorage) {
      const dataItem = dataArr[index];
      dataItem.password = pwd;
      dataItem.iStorage = iStorage;
      dataArr.splice(index,1);
      dataArr.unshift(dataItem);
      localStorage.setItem("QSLOGINLIST2018",JSON.stringify(dataArr));
    };
    //4.删除
    this.remove = function (dataArr,user,iStorage) {
      const index = dataArr.findIndex(item => item.account === user);
      if (index !== -1){
        dataArr[index].password = '';
        dataArr[index].iStorage = iStorage;
        localStorage.setItem("QSLOGINLIST2018",JSON.stringify(dataArr));
      }
    };
    //5.初始
    this.init = function () {
      const _this = this;
      switch (_this.opt.setRun ){
        //存|取|删//
        case 1:
          const user = Account.val();
          const pwd = Password.val();
          user !=='' && pwd !==''?
            _this.add(user,pwd,iStorage):alert("账户密码不许为空!");
          break;
        case 2:
          const data = _this.queryState();
          if (data !== false) {
            Account.val(data[0].account);
            Password.val(data[0].password);
            iStorage.prop('checked',data[0].iStorage);
            Account.on("keyup",{data:data},_this.switch);
          }else {
            return console.warn("没有存储任何数据")
          }
          break;
        case 3:
          const data_ = _this.queryState();
          if (data_ !== false) {
            if (Account.val() !== '' && Password.val() !== ''){
              _this.remove(data_,Account.val(),iStorage);
            }   else {
              return  alert("账户密码不许为空!");
            }
          }
          break;
      }
    };
    //6.切换用户
    this.switch = function (e) {
      const dataForm = e.data.data;
      const query = function (d) {
        Password.val('');
        const index = dataForm.findIndex(item => item.account === d);
        index !== -1 ? Password.val(dataForm[index].password):'';
      };
      query(this.value);
    };
    //自初始
    this.init();
    return this;
  };
  //兼容CommonJs规范
  if (typeof module !== 'undefined' && module.exports) {
    module.exports = FormTest;
  }
  //兼容AMD/CMD规范
  if (typeof define === 'function') define(function () {
    return vf;
  });
  doc.addEventListener('drop', function(e) {
    e.stopPropagation();
    e.preventDefault();
  }, false);
  //注册全局变量,兼容直接使用script标签引入插件
  global.FormTest = vf;
})(window,document);

  

猜你喜欢

转载自www.cnblogs.com/webSong/p/9316408.html