Ext.define("vapp.view.DFormForm", {
extend: 'Ext.form.Panel',
defaultType: "textfield",
xtype:"DFormForm",
params: {},
waitMsgTarget: true, // 默认使用Ext.MessageBox.wait作为等待消息的显示。
itemId: "editform",
defaults: {
columnWidth: .5,
margin: "5",
msgTarget: "side"
},
initComponent: function () {
var me = this;
Ext.apply(me,
{
items: [{
xtype: "hidden",
value: newGuid(),
itemId: "FormID",
name: "FormID"
}, {
fieldLabel: "表单名称",
anchor: '100%',
name: "FormName"
},
{
fieldLabel: "备注",
anchor: '100%',
name: "Description"
},
{
fieldLabel: "表单模板",
columnWidth: 1,
xtype: 'htmleditor', // 提供一个轻量的HTML编辑器组件
value: '<br>', //设置默认值,解决视图编辑模式下内容为空时,自动添加 ? 问题
anchor: '100% -70',
fontFamilies: ['宋体', '隶书', '黑体', '楷体'], // 字体列表 fontFamilies 可用字体数组
name: "ContentText",
getDocMarkup: function () { //当编辑器用HTML内容初始化iframe时调用。
var me = this,
h = me.iframeEl.getHeight() - me.iframePad * 2,
oldIE = Ext.isIE8m;
return Ext.String.format(
(oldIE ? '' : '<!DOCTYPE html>')
+ '<html><head><style type="text/css">'
+ (Ext.isOpera ? 'p{margin:0}' : '')
+ 'body{border:0;margin:0;padding:{0}px;direction:' + (me.rtl ? 'rtl;' : 'ltr;')
+ (oldIE ? Ext.emptyString : 'min-')
+ 'height:{1}px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;cursor:text;background-color:white;'
+ (Ext.isIE ? '' : 'font-size:12px;font-family:{2}')
+ '}</style>'
+ '<link href="/Content/css/docTrace.css" rel="stylesheet" type="text/css" />'
+ '</head><body></body></html>'
, me.iframePad, h, me.defaultFont);
}
}]
});
me.callParent(arguments);
},
//保存
doSubmit: function (successFun,failureFun) {
var me = this;
var form = me.getForm();
if (!form.isValid()) {
return;
}
var editor = me.down("htmleditor");
var els = Ext.query("*[fldtype]",true, editor.iframeEl.dom.contentDocument); //对编辑器内部的dom进行组件查询,
var fields = [];
//将最新版本的值付给表单元素。
for (j = 0; j < els.length; j++) {
// for (k = 0; k < fields.length; j++) {
for (k = 0; k < fields.length; k++)
{
if (fields[k].FieldName == els[j].getAttribute("name") && els[j].getAttribute("name") != "")
{
ShowMsg('系统提示','['+fields[k].FieldName+ ']表单项重名,保存失败!');
return;
}
}
fields.push({
FieldName: els[j].getAttribute("name"), fldtype: els[j].getAttribute("fldtype"),
TagName: els[j].tagName,
IsKeyField: els[j].attributes["iskeyfield"]== null ? "N" : els[j].attributes["iskeyfield"].value
});
}
form.submit({
waitMsg: "保存中...",
clientValidation: false, //决定是否在提交之前调用isValid对Form的表单项进行校验。 在Form的提交选项中传递false可以阻止此操作。
url: getAjaxUrl("update_CORE_WorkForm", {}),
params: {
Category: me.Category,
fields: Ext.JSON.encode(fields)
},
success: function (form, action) {
form.reset();
if (successFun) successFun();
},
failure: function (form, action) {
ShowMsg('系统提示', '数据保存失败!');
if (failureFun) failureFun();
}
});
}
});