service.detailtable_wev8.js
3.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
define("mService/detailtable", ["mUtil","i18n"], function(mUtil,i18n) {
var pageLoader = function($page, cfg){
var $pageScroller = $(".page-scroller", $page),
$pageFooter = $(".page-footer", $page);
var isDataLoad = false;
var formid = cfg.formid;
var render = function(){
var compsHtml = cfg.props.reduce(function (prev, comp) {
return prev + "<abbr id='" + comp.detailtable.mecid + "' data-type='" + comp.detailtable.mectype + "'></abbr>";
}, "<abbr id='" + cfg.formmec.detailtable.mecid + "' data-type='" + cfg.formmec.detailtable.mectype + "'></abbr>");
$pageScroller.html(compsHtml);
pageInit();
pageEventInit();
};
var pageInit = function(){
var components = [];
$pageScroller.children("abbr[data-type]").each(function(){
var $abbr = $(this);
$abbr.data("loaded", false).find("*").remove();
if($abbr.data("lazyload") == true){
return;
}
var id = this.id;
var type = $abbr.attr("data-type");
var priority = $abbr.attr("data-priority") || Math.pow(2, 53) - 1;
var mecparam = { el: id, type: type, container: cfg.container, priority: priority};
if(cfg.formmec.detailtable.mecid == id){
var formmecprop = cfg.formmec;
if(cfg.optype == "edit"){
formmecprop.detailtable.datas = cfg.datamap || {};//明细表行数据编辑
}
mecparam.option = formmecprop;
}else{
for(var i in cfg.props){
var prop = cfg.props[i];
if(prop.detailtable.mecid == id){
var option = $.extend(true, {}, prop);
if(type != "Form"){//字段值
option.form = formid;
if(cfg.optype == "edit"){
var datamap = cfg.datamap || {}, fieldname = prop.field.name.toLowerCase();
prop.detailtable.mectype == "FFile" && (option.field.filevalue = datamap[fieldname + "_filevalue"] || {});
}else if(cfg.optype == "add"){
option.detailtable.add = true;
}
option.detailtable.isA = true;
}
mecparam.option = option;
}
}
}
components.push(mecparam);
});
var pageid = mUtil.getCurrentPageId();
if(cfg.optype == "edit"){ //如果是编辑明细数据,这条明细数据全部加载后更新isDataLoad状态
var dataloads = components.map(function(com) {
var done = $.Deferred();
if(com.type =="Form"){
done.resolve();
}else{
mUtil.pluginLoad(pageid, com.el, function () {
done.resolve();
}, true);
}
return done;
});
$.when.apply($, dataloads).then(function () {
isDataLoad = true;
});
}else{
isDataLoad = true;
}
require("Component").load(components, function() {
mUtil.trigger('load');
}, function (com) {
mUtil.trigger('load', pageid, com.id);
});
};
var pageEventInit = function(){
$(".wev-btn.reset").on("click", function(){
Mobile_NS.formReset(formid);
});
$(".wev-btn.submit").on("click", function(){
if (!isDataLoad) return Mobile_NS.msg(i18n.LOADING_DATA, 3);
if (!Mobile_NS.checkFieldIsReadyForSubmit(formid)) {return;}
var errorMsg = Mobile_NS.checkRequired(formid);
if (errorMsg) return Mobile_NS.msg("" + errorMsg, 3);
if(cfg.prefilter && mUtil.eval(cfg.prefilter) !== false){
var formData = Mobile_NS.getFormData(formid);
var formShowDataMap = Mobile_NS.getFormShowData(formid);
cfg.success && cfg.success(formData, formShowDataMap);
}
});
};
render();
};
return {
mounted: function($page, cfg){
pageLoader($page, cfg);
}
};
});