UNPKG

zpw-vue-form

Version:

vue 表单系统

69 lines (68 loc) 1.82 kB
let deepAssign = require('deep-assign'); const storage = { data: JSON.parse(localStorage.getItem('app') || '{}'), set: function set(key, value) { try { this.remove(key); localStorage.setItem('app', this.create(this.data, key, value)); } catch (e) {} }, get: function get(key) { var keys = key.split('.'); var arguent = this.data; var flag = true; for (var i = 0; i < keys.length; i++) { if (arguent[keys[i]]) { arguent = arguent[keys[i]]; } else { flag = false; break; } } if (flag) { if (typeof arguent === 'string') { arguent = arguent.replace(/\"/gi, ''); } return arguent; } }, remove: function remove(key) { var keys = key.split('.'); var arguent = this.data; var flag = true; for (var i = 0; i < keys.length; i++) { if (flag) { if (i === keys.length - 1) { delete arguent[keys[i]]; flag = false; } else if (arguent[keys[i]]) { arguent = arguent[keys[i]]; } } } localStorage.setItem('app', JSON.stringify(this.data)); }, clear: function clear() { var store = this.data["store"]; this.data = {}; storage.set("store", store); }, create: function create(args, key, value) { var keys = key.split('.'); var arg1 = {}; var arg2 = {}; var newArg = {}; for (var i = 0; i < keys.length; i++) { if (i === keys.length - 1) { arg1[keys[i]] = value; } else { arg1[keys[i]] = {}; } arg1 = arg1[keys[i]]; arg2[keys[i]] = arg1; } newArg[keys[0]] = arg2[keys[0]]; return JSON.stringify(deepAssign(args, newArg)); } } export default storage