igi_orion_cignacmb
Version:
Censors words out of text
238 lines (230 loc) • 9.74 kB
JavaScript
var CentralWidget = require('./CentralWidget');
var CentralService = require('../service/CentralService');
var input = $.extend({}, CentralWidget, {
type: 'order_form', //组件的类别,用于service层动态对比配置进行实例化
effectiveDate: "",
startDate: "",
order: {},
form: {},
ownOrder: "",
userInfo: "",
urlParams: '',
orderToFormTransform: function () {
},
formToOrderTransform: function () {
},
setUpWidgetService: function (form, widgetConfig) {
var deferred = Deferred();
var that = this;
var index = 0;
//将配置自动化复制进组件
for (var x in widgetConfig) {
//取得组件实例 (创建一个独立的新对象)
widgetConfig[x].serieNo = index;
//这里是直接添加一个序号
index += 1;
var widget = $.extend({}, require('../widget/index')[widgetConfig[x].type]);
//将配置放进组件实例
for (var y in widgetConfig[x]) {
widget[y] = widgetConfig[x][y];
}
var value = form[x];
widget.setValue(value); //设置值的时候,组件会进行单位转换、拆解等操作
form[x] = widget
// avalon.log(widgetConfig[x].type, widget)
}
deferred.resolve(form);
// deferred.reject();
return deferred.promise;
},
converWidgetToData: function (object) { //统一对组件进行数据转换
var data = {}
for (var x in object) {
if (object[x] && typeof object[x] == 'object' && object[x].getValue) {
avalon.log(object[x] + '即将被转换')
object[x] = data[x] = object[x].getValue();
} else {
data[x] = object[x]
}
}
return data;
},
widgetFix: function (object) { //统一对组件进行自修复
var that = this;
var deferred = Deferred()
for (var x in object) {
if (object[x] && typeof object[x] == 'object' && object[x].fix) {
object[x].fix();
}
}
return deferred.promise
},
widgetValidate: function (object) { //统一对组件进行自修复
var errors = [];
var index = 0;
for (var y in object) {
for (var x in object) {
if (object[x] && typeof object[x] == 'object' && object[x].validate) {
if (object[x].serieNo == index) {
var error = object[x].validate();
errors = errors.concat(error)
index += 1;
break;
}
}
}
}
return errors;
},
hasCache: function (interfaceOrder) {
var that = this;
if (interfaceOrder) {
return true;
}
var cachePreFix = CentralService.getCacheNamePrefix(that.urlParams);
var cacheName = cachePreFix + 'order';
var orderString = window.newStorage.getItem(cacheName + '-' + 'names');
var orderString_ = window.newStorage.getItem('orion-order-names');
var orionLoginState = window.newStorage.getItem('orionLoginState');
console.log('cachePreFix',cachePreFix,window.newStorage.getItem('orion-order-product'),orderString_,orionLoginState)
if((window.newStorage.getItem('orion-order-product') && (window.newStorage.getItem('orion-order-product') != 'undefined')) && (cachePreFix != window.newStorage.getItem('orion-order-product'))){
try {
var all_order = window.newStorage.getItem('orion-order-names');
all_order = JSON.parse(all_order)
for (var i = 0; i < all_order.length; i++) {
window.newStorage.removeItem('orion-order-' + all_order[i]);
}
window.newStorage.removeItem('orion-order-names');
} catch (error) {
}
orionLoginState = 1;
}
if(orionLoginState != 1 && orderString_){
return true;
}
if (orderString) {
return true;
} else {
return false;
}
},
getOrderCache: function (interfaceOrder) {
var that = this;
if (interfaceOrder) {
return interfaceOrder;
} else {
var myBrowserType = CentralService.myBrowserType();
var cachePreFix = CentralService.getCacheNamePrefix(that.urlParams);
var cacheName = cachePreFix + 'order';
var orionLoginState = window.newStorage.getItem('orionLoginState');
if(orionLoginState != 1 && myBrowserType){
cacheName = 'orion-order';
}
var all_order = window.newStorage.getItem(cacheName + '-' + 'names');
all_order = JSON.parse(all_order)
var order = {};
for (var i = 0; i < all_order.length; i++) {
order[all_order[i]] = window.newStorage.getItem(cacheName + '-' + all_order[i]);
if (order[all_order[i]]) {
order[all_order[i]] = JSON.parse(order[all_order[i]]);
}
}
return order;
}
},
judgeOrionLoginState:function(){
var that = this;
var cacheName = 'orion-order';
var all_order = [];
for (var x in that.order) {
window.newStorage.setItem(cacheName + '-' + x, JSON.stringify(that.order[x]));
all_order.push(x)
}
var cachePreFix = CentralService.getCacheNamePrefix(that.urlParams);
window.newStorage.setItem(cacheName + '-product', cachePreFix);
window.newStorage.setItem(cacheName + '-' + 'names', JSON.stringify(all_order));
},
orderToCache: function () {
var that = this;
var myBrowserType = CentralService.myBrowserType();
var cachePreFix = CentralService.getCacheNamePrefix(that.urlParams);
var cacheName = cachePreFix + 'order';
if (myBrowserType) {
var orionLoginState = window.newStorage.getItem('orionLoginState');
if(orionLoginState != 1){
that.judgeOrionLoginState();
}else{
CentralService.setOpCache(that.urlParams, cacheName, JSON.stringify(that.order));
}
} else {
var all_order = []
for (var x in that.order) {
window.newStorage.setItem(cacheName + '-' + x, JSON.stringify(that.order[x]));
all_order.push(x)
}
window.newStorage.setItem(cacheName + '-' + 'names', JSON.stringify(all_order));
}
},
cacheToOrder: function (interfaceOrder) {
var that = this;
if (interfaceOrder) {
that.order = interfaceOrder;
console.log('从接口获取的数据')
return that.order;
} else {
console.log('从浏览器缓存获取的数据')
var myBrowserType = CentralService.myBrowserType();
var cachePreFix = CentralService.getCacheNamePrefix(that.urlParams);
var cacheName = cachePreFix + 'order';
var orionLoginState = window.newStorage.getItem('orionLoginState');
if(orionLoginState != 1 && myBrowserType){
cacheName = 'orion-order';
}
var all_order = window.newStorage.getItem(cacheName + '-' + 'names');
all_order = JSON.parse(all_order)
var order = {};
if(all_order){
for (var i = 0; i < all_order.length; i++) {
order[all_order[i]] = window.newStorage.getItem(cacheName + '-' + all_order[i]);
if (order[all_order[i]] && (order[all_order[i]] != 'undefined')) {
order[all_order[i]] = JSON.parse(order[all_order[i]]);
}
}
}
if (order) {
that.order = order;
}
if(window.location.href.indexOf('login.html?') != -1){
try {
for (var i = 0; i < all_order.length; i++) {
window.newStorage.removeItem('orion-order' + '-' + all_order[i]);
}
window.newStorage.removeItem('orion-order' + '-' + 'names');
} catch (error) {
}
CentralService.setOpCache(that.urlParams, cachePreFix + 'order', JSON.stringify(that.order));
}
return order;
}
},
removeCache: function () {
var that = this;
var myBrowserType = CentralService.myBrowserType();
var cachePreFix = CentralService.getCacheNamePrefix(that.urlParams);
var cacheName = cachePreFix + 'order';
if (myBrowserType) {
CentralService.setOpCache(that.urlParams, cacheName, null);
} else {
var all_order = window.newStorage.getItem(cacheName + '-' + 'names');
all_order = JSON.parse(all_order);
if (!all_order) {
return;
}
for (var i = 0; i < all_order.length; i++) {
window.newStorage.removeItem(cacheName + '-' + all_order[i]);
}
window.newStorage.removeItem(cacheName + '-' + 'names');
}
}
});
module.exports = input;