//Ext.js--常用函数方法
//自定义表单单据编辑页面初始化
function allReadyEdit() {
}
//系统表单单据编辑页面初始化
function AllReady() {
}
//自定义表单单据列表页面初始化
function allReadyList() {
}
//获取容器 获取表头容器并用对像mstform表示
var mstform = Ext.getCmp('p_form0000000007_m');
//列表界面查询模块容器获取
function AllReadyList() {//自定义表单单据列表页面初始化
var viewPort = Ext.getCmp('viewPort');
var print = curToolbar.get('print');
var list = viewPort.items.items[1];
//print.setText('打印/导出');
//获取查询容器内的字段
list.queryById('u_u_itjfbm_b').hide();
list.queryById('u_u_itjfbm_b').setValue(itjfbm);
list.queryById('u_u_itjfbm_b').setRawValue(itjfbm_name);
list.searchEvent(curGrid.store);
//刷新按钮点击事件
list.dockedItems.items[0].items.get('query').on('click', function () {
list.queryById('u_u_itjfbm_b').setValue(itjfbm);
list.queryById('u_u_itjfbm_b').setRawValue(itjfbm_name);
});
}
//获取菜单栏并用对像Toolbar表示
var Toolbar = Ext.getCmp('toolbar');
//单据引用按钮中表头和表体按钮的获取
Toolbar.get('imp') //单据引用按钮
Toolbar.get('impform') //表头引用按钮
Toolbar.get('impgrid') //表头引用按钮
{ //当单据引用带有表体和表头时需要改变按钮名字时用
//判断单据引用按钮是否存在
if (Toolbar.get('imp') != null) {
//判断表头表体按钮是否存在
if (Toolbar.get('impform') && Toolbar.get('impgrid')) {
Toolbar.get('imp').addListener('click', function() {
Toolbar.get('impform').textEl.dom.innerHTML = '引用合同';
Toolbar.get('impgrid').textEl.dom.innerHTML = '引用结算单';
});
}
}
}
//获取表体容器并用对像dgrid表示
var dgrid = Ext.getCmp('p_form0000000007_dgrid');
var dstore = dgrid.store;
{
//获取表体的列表名数据
dgrid.getColumn('u_phid_company_name');
//变改表体列表的原名称
dgrid.getColumn('u_phid_company_name').textEl.dom.innerText = '单位11';
}
{//获取列表界面容器和元素
//方法一:5.1版本自定义表单可用
var dgrid = Ext.getCmp('p_form0000000066_mgrid'); //获取当前整体列表
var data = dgrid.getSelectionModel().getSelection(); //获取当前选中行
data[0].get('sgjd'); //获取当前选中行某个字段值
data[0].set('sgjd', '11111'); //给当前选中行某个字段值赋值
//方法二:适用于5.1和5.2版本的系统表单和自定义表单
var listId = Ext.getCmp('viewPort').items.items[2].id;//找出列表容器的id,items[2]每个单据的索引不同
var dgrid = Ext.getCmp(listId); //获取当前整体列表
var data = dgrid.getSelectionModel().getSelection(); //获取当前选中行
data[0].get('sgjd'); //获取当前选中行某个字段值
data[0].set('sgjd', '11111'); //给当前选中行某个字段值赋值
}
var dgrid = Ext.getCmp('p_form0000000007_dgrid'); //获取当前表体
var data = dgrid.getSelectionModel().getSelection(); //获取当前选中行
data[0].get('sgjd'); //获取当前选中行某个字段值
data[0].set('sgjd', '111'); //给当前选中行某个字段值赋值
//循环遍历选中行的数据 并给批量置空数组的值
{
var dgrid = Ext.getCmp('p_form0000000007_dgrid'); //获取当前表体
var data = dgrid.getSelectionModel().getSelection(); //获取当前选中行
//获取到选中行的数据,并定义一个数组对象
var arrDatas = data[0].data;
//循环遍历并输出数组的key value
for (var key in arrDatas) {
console.log(key, arrDatas[key]);
//输出
//name programmer
//age 22
//height 180
}
//批量给数组对象置空或赋值
for (var key in arrDatas) {
arrDatas[key] = '1111';
arrDatas[key] = '';
}
console.log(arrDatas) //{name: "1111", age: "1111", height: "1111"} //{name: "", age: "", height: ""}
}
{
//获取当前选中行某个字段值
var data = dgrid.getSelectionModel().getSelection();
//获取表体序号
var xh = data[0].internalId;//方法1
var xh = data[0].index + 1;//方法2
}
//=================================================================================================
{ //获取系统数据
y.queryById('PhidYsfl').setValue(14);
}
{ //获取tab页容器--数据
var dgrid11 = Ext.getCmp('cntitemtab').items.items[0].items.items[0];
var dstore11 = dgrid11.store;
}
{
//多个tab页时,默认显示某一个
var tabPanel = Ext.getCmp('tabPanel');
tabPanel.setActiveTab(0);
}
{
var tabPanel = Ext.getCmp('tabPanel'); //获取当前所在tab页
var tab = tabPanel.getActiveTab(); //多个tab页时获取正在编辑状态的tab页
}
{
//tab页依次激活
var tabs = tabPanel.items.items;
for (var i = 1; i < tabs.length; i++) {
tabPanel.setActiveTab(i);
}
// 默认打开第一个tab页
tabPanel.setActiveTab(0);
}
{ //tab页的显示与隐藏
//隐藏tab页
var tabPanel = Ext.getCmp('tabPanel');
var tab1 = tabPanel.items.items[0];
tabPanel.remove(tab1); //方法1
tabPanel.hide(tab1); //方法2
//显示tab页
tabPanel.show(tab1); //方法2
//上面失效的话可能是如下方法
tab1.tab.onHide();//隐藏
tab1.tab.onShow();//显示
}
{//隐藏imp的统计项
var customfieldset = mstform.up('container').down('[itemId=customfieldset][xtype=fieldset]');
if (customfieldset) {
customfieldset.setVisible(false);
}
}
{ //数据加载完成触发
mstform.on('dataready', function() {
});
//单据引用加载后
mstform.on('impdataready', function() {
});
//页面数据加载定时器(自动调用并停止)
var cnt = 0;
var timer = setInterval(function() {
//加载内容start
//加载内容end
if (++cnt == 2) {
clearInterval(timer);
}
}, 500);
//页面数据加载定时器(每次只调用一次)
setTimeout(function() {
//加载内容start
//加载内容end
}, 1000);
//页面数据加载定时器(每隔一段时间调用一次)
setInterval(function() {
//加载内容start
//加载内容end
}, 1000);
}
//=================================================================================================
{ // 列表界面查询条件默认隐藏
function AllReadyList() {
//列表界面查询模块容器获取
var viewPort = Ext.getCmp('viewPort');
var list = viewPort.items.items[1];
var hidden_Query = curToolbar.get('hidden_Query');
list.setVisible(false);
hidden_Query.setText('显示');
hidden_Query.setIconCls('iconfont iconunfold');
//列表页grid加载前,增加过滤条件,合同页面类型为‘合同评审’
//列表加载前
liststore.on("beforeload", function (me, operation, eOpts) {
if (me.proxy.extraParams.hasOwnProperty("queryfilter")) {
var qeryObj = JSON.parse(me.proxy.extraParams.queryfilter);
console.log(qeryObj);
qeryObj["user_htymlx"] = '1';
me.proxy.extraParams.queryfilter = JSON.stringify(qeryObj);
}
else {
me.proxy.extraParams.queryfilter = JSON.stringfy({ "user_htymlx": '1' });
}
});
liststore.load();//重新加载
}
}
{ //页面数据加载框升级版
Ext.Msg.wait('数据加载中...', '提示信息', {
interval: 300, //进度条移动速度!循环定时间隔
duration: 1500, //总时长
increment: 5, //执行进度条的次数
text: '数据加载中...', //进度条的文字
scope: this,
width: 300, //宽 可调节
// height: 120, //高 可调节
animate: true, //进度条动画效果
buttons: Ext.Msg.YESNO, //按钮 YESNOCANCEL 显示Yes, No 和 Cancel 按钮的配置
icon: Ext.Msg.QUESTION, //提示标记 WARNING警告 QUESTION疑问 INFO提示 ERROR错误
fn: function() {
Ext.Msg.alert({
msg: '加载成功', //提示信息
width: 50, //宽 可调节
height: 20, //高 可调节
icon: Ext.Msg.INFO //提示标记 WARNING警告 QUESTION疑问 INFO提示 ERROR错误
});
//.5s后自动关闭提示框和加载框
setTimeout(function() {
//加载内容start
Ext.Msg.hide(); //进度弹窗加载后自动隐藏
//加载内容end
}, 500);
}
});
//提示框
Ext.Msg.alert('提示', '请先选择【工程项目】');
// 自定义弹窗/提示框
Ext.Msg.alert({
title: '提示', //标题
msg: '【整改明细】表体不能为空,请点击【单据引用】按钮,引入表体数据。', //提示信息
width: 490, //宽 可调节
height: 120, //高 可调节
buttons: Ext.Msg.OKCANCEL, //按钮 YESNOCANCEL 显示Yes, No 和 Cancel 按钮的配置
multiline: false,
icon: Ext.Msg.WARNING //提示标记 WARNING警告 QUESTION疑问 INFO提示 ERROR错误
});
//自定义提示框
Ext.Msg.show({
title: '标题',
msg: '提示内容',
width: 300, //宽 可调节
height: 120, //高 可调节
buttons: Ext.Msg.OKCANCEL, //按钮 YESNOCANCEL 显示Yes, No 和 Cancel 按钮的配置
multiline: false, //输入框 默认false不显示
icon: Ext.window.MessageBox.INFO //提示标记 WARNING警告 QUESTION疑问 INFO提示 ERROR错误
});
}
// =================================================================================================
//通过obj参数,带出通用帮助中的字段值
mstform.getItem('cght').addListener('helpselected', function(obj) {
mstform.getItem('jfdw').setValue(obj.data.phid_reccomp);; //甲方单位phid_reccomp
mstform.getItem('yfdw').setValue(obj.data.phid_sencomp);; //乙方单位phid_sencomp
//将ID转换成名称
BatchBindCombox([mstform.queryById('jfdw')]);
BatchBindCombox([mstform.queryById('yfdw')]);
});
//表头通用帮助过滤 (点击通用帮助1,通用过滤帮助2)
mstform.getItem('yxxmmc').addListener('helpselected', function() { //通用帮助1
var pc = mstform.getItem('yxxmmc').getValue();
var yxmmbh_val = '';
var jydw1 = '';
var jydw2 = '';
var jydw3 = '';
callServer('xmmc', [{
'pc': pc
}], function(res) {
mstform.getItem('yxmmbh').setValue(res.record[0].bill_no);
yxmmbh_val = res.record[0].bill_no;
});
// 获取出通用帮助2的主键
callServer('jydw', [{
'bll': yxmmbh_val
}], function(res) {
jydw1 = res.record[0].uj1;
jydw2 = res.record[0].uj2;
jydw3 = res.record[0].uj3;
});
// 通用帮助2 //phid字段是通用帮助中的字段
mstform.getItem('scdw').setClientSqlFilter('phid = \'' + jydw1 + '\' or phid = \'' + jydw2 + '\'or phid = \'' + jydw3 + '\'');
});
// 表体通用帮助过滤 表体帮助过滤
dgrid.getColumn('u_cbs_name').getEditor().addListener('beforetriggerclick', function() {
//获取表体当前选中行
var data = dgrid.getSelectionModel().getSelection();
var pc = mstform.getItem('u_gcxm').getValue();
// dgrid.getColumn('u_cbs_name').getEditor().setOutFilter({
// c_no: $appinfo.userID
// });
if (pc != '' || pc != null || data.length > 0) {
dgrid.getColumn('u_cbs_name').getEditor().setClientSqlFilter('pcid =' + pc);
//dgrid.getColumn('u_cbs_name').getEditor().setClientSqlFilter('bd_cbs.pcid =' + pc);
//dgrid.getColumn('u_cbs_name').getEditor().setClientSqlFilter('pcid in (142211118000091,142211118000092)');
}
});
//收付款节点根据合同过滤 通用帮助点击前过滤
mstform.queryById('user_fkjd').addListener('beforetriggerclick', function() {
var PhidCnt_val = mstform.queryById('PhidCnt').getValue();
if (PhidCnt_val == 0) {
NGMsg.Error('请先选择合同');
return false
} else {
mstform.queryById('user_fkjd').setOutFilter({
phid_cnt: PhidCnt_val //phid_cnt字段是通用帮助中的字段
});
}
});
//==================================================================================================
{ //单据状态为新增、修改或查看
if (otype == $Otype.ADD || otype == $Otype.EDIT || otype == $Otype.VIEW || otype == $Otype.COPY) {
}
if (otype === 'add' || otype === 'edit' || otype === 'view' || otype === 'copy') {
}
}
{ //表头帮助窗口选择后触发
mstform.getItem('pc').addListener('helpselected', function() {
});
}
{ //字段监听事件 表头焦点离开后触发
mstform.getItem('remarks').addListener('itemchanged', function() {
});
}
{ //表头值发生变化后立即触发
mstform.getItem('checkboxcol_1').addListener('change', function() {
});
}
{ // 表体数据插入
callServer('zyhd', [{
'pc': pc,
}], function(res) {
dstore.removeAll(); //清除单据体内所有数据
dstore.insert(dstore.getCount(), res.record); //将服务端获取的数组内容插入到单据体
});
// 表体数据插入(有通用帮助的情况 注意通用帮助的中文名称要联查通用帮助的数据库表)
mstform.getItem('u_gcxm').addListener('helpselected', function(obj) {
var gcxm_val = mstform.getItem('u_gcxm').getValue();
//收入清单
callServer('srboq', [{
'pc': gcxm_val
}], function(res) {
if (res.count > 0) {
var arr = new Array();
for (i = 0; i < res.record.length; i++) {
arr.push({
u_ysxbm: res.record[i].u_ysxbm,
u_ysxbt: res.record[i].u_ysxbt,
u_dwgc: res.record[i].u_dwgc,
u_dwgc_name: res.record[i].u_dwgc_name,
u_cbs: res.record[i].u_cbs,
u_cbs_name: res.record[i].u_cbs_name,
u_dw: res.record[i].u_dw,
u_dw_name: res.record[i].u_dw_name,
})
}
dstore.removeAll(); //清除单据体内所有数据
dstore.insert(dstore.getCount(), arr); //将服务端获取的数组内容插入到单据体
} else {
dstore1.removeAll(); //清除单据体内所有数据
}
});
});
}
{ //表体默认增行事件
if (otype == $Otype.ADD) {
// 表体默认新增四行
var arr = new Array();
for (var i = 0; i < 4; i++) {
arr.push({
jd: str,
tzzy: '',
jszy: '',
ts: '',
rq: '',
remarks: '',
})
}
dstore.removeAll(); //清除单据体内所有数据
dstore.insert(dstore.getCount(), arr); //将服务端获取的数组内容插入到单据体
}
}
{
// 方法1
//获取表体当前选中行
var data = dgrid.getSelectionModel().getSelection();
//获取当前选中行某个字段值
data[0].get('sgjd');
// 方法2
var dgrid = Ext.getCmp('CntPayDOld1');
dgrid.addListener('cellclick', function(editor, e) { //监听单据体编辑状态,edit-编辑,add-增行,remove-删行,cellclick-点击,update-值变化
//获取表体当前选中行
var data = dgrid.getSelectionModel().getSelection();
//获取当前选中行某个字段值
data[0].data.ItemNo;
});
}
{ //表体字段变化
dgrid.addListener('edit', function(editor, e) { //监听单据体编辑状态,edit-编辑,add-增行,remove-删行,cellclick-点击,update-值变化
if (e.originalValue == e.value) {
return;
} //判断原值与新值是否相同
if (e.field == 'qty' || e.field == 'prc') { //监听qty、prc字段变化
var record = e.record;
record.set('amt', Ext.Number.from(record.get('prc'), 0) * Ext.Number.from(record.get('qty'), 0)); //计算amt值
};
});
//表体字段变化后触发
dstore1.addListener('update', function(store, record, operation, modifiedFieldNames) {
if (operation !== Ext.data.Model.EDIT) {
return
};
if (modifiedFieldNames[0] == 'bywcjd') {
var bywcjd = "'" + record.get('bywcjd') + "'";
callServer('bywcjd', [{
'bywcjd': bywcjd
}], function(res) {
if (res.count > 0) {
record.set('qty', res.record[0].c_descript)
}
})
}
if (modifiedFieldNames[0] == 'bywcjd' || modifiedFieldNames[0] == 'amt' || modifiedFieldNames[0] == 'qty') {
var sumwccz = 0;
record.set('bywccz', Ext.Number.from(record.get('qty'), 0) * Ext.Number.from(record.get('amt'), 0));
for (i = 0; i < dstore1.getCount(); i++) {
sumwccz += Ext.Number.from(dstore1.getAt(i).get('bywccz'), 0)
}
mstform.getItem('bywccz').setValue(sumwccz)
}
})
}
{ //表体单行金额或数量字段累加计算(可根据业务需要进行加减乘除计算)
dgrid.addListener('edit', function(editor, e) { //监听单据体字段编辑状态 *edit 为编辑事件(据体汇总更新表头字段)
if (e.originalValue == e.value) {
return;
} //判断原值与新值是否相同,如果相同则返回
if (e.field == 'fs') { //监听表体amt字段变化
var sumamt = 0; //变量sumamt初始值为0
for (i = 0; i < dstore.getCount(); i++) { //for循坏 *dstore.getCount()表示单据体总行数
sumamt += Ext.Number.from(dstore.getAt(i).get('fs'), 0); //变量sumamt累加
mstform.getItem('zpzf').setValue(sumamt); //变量sumamt值赋值给表头 amt
} //for循环事件结束 }
}; //监听表体amt字段变化事件结束
});
//表体多行计算
// 表体导入或增加多行时自动计算表体数据(可根据业务需要进行加减乘除计算)
//页面数据加载定时器(每隔一段时间调用一次)
setInterval(function() {
//加载内容start
console.log("表体字段计算中...");
//获取表体的所有行的数据
var arr = dgrid.getStore().getRange(0, dstore.getCount() - 1); // 0代表第一行 getCount() - 1表示最后一行
for (i = 0; i < arr.length; i++) {
var dj = Ext.Number.from(arr[i].get('dj'), 0); //单价
var sl = Ext.Number.from(arr[i].get('sl'), 0); //数量
var sum = dj * sl; //合计
arr[i].set('amt', sum); //赋值表体数组arr第i行 amt字段的值
// arr[i].get('amt'); //获取表体数组arr第i行 amt字段的值
}
//加载内容end
}, 100);
}
{
// [新增] [修改] [复制] 添加按钮 方法调用
if (otype == $Otype.ADD || otype == $Otype.EDIT || otype == $Otype.COPY) {
AddNewToolbar('p_form_design_deliver_d');
}
// [增行] [删行] 按钮 方法定义
function AddNewToolbar(tablename) {
var tb = Ext.getCmp(tablename + '_bar');
tb.insert(1, {
xtype: 'button',
text: '增行',
iconCls: 'icon-AddRow',
handler: function () {
var Mstform = Ext.getCmp('p_form_wm_m');
if (Ext.isEmpty(Mstform.getItem('pc').getValue())) {
Ext.Msg.alert('提示', '请先选择项目名称!');
} else {
var dgrid = Ext.getCmp(tablename);
var data = dgrid.getSelectionModel();
dgrid.getStore().insert(dgrid.getStore().getCount(), data);
}
}
})
tb.insert(2, {
xtype: 'button',
text: '删行',
iconCls: 'icon-DeleteRow',
handler: function () {
var dgrid = Ext.getCmp(tablename);
var dstore = dgrid.getStore();
var data = dgrid.getSelectionModel().getSelection();
if (data.length > 0) {
var index = dstore.indexOf(data[0]);
Ext.Array.each(data, function (record) {
dstore.remove(record);
});
if (dstore.getCount() > 0) {
if (index >= dstore.getCount()) {
index--;
}
dgrid.getSelectionModel().select(index);
}
}
}
})
}
}
{ // 表体字段编辑事件触发
dgrid.on('beforeedit', function(editor, e, eOpts) {
var record = e.record;
if (e.field == '' || e.field == '') {
}
});
}
{ //表体增行删行事件
//表体增行事件触发
dstore.on('add', function(store, records, index, eOpts) {
});
//表体删行事件触发
dstore.on('remove', function(store, records, index, eOpts) {
});
}
{ //表体增行并给字段赋值
dstore.on('add', function(store, records, index, eOpts) {
for (i = 0; i < records.length; i++) {
records[i].set('Edt', '2022-01-06 13:18:55');
}
});
}
{ //菜单栏按钮单击事件
Toolbar.get('myadd').on('click', function() {
});
}
{ //虚拟点击事件
mstform.getItem('lyzj').addListener('change', function() {
dstore.removeAll(); //清除单据体内所有数据
Toolbar.get('impgrid').fireEvent('click'); //虚拟鼠标单击事件
});
}
{ //按钮置灰
Toolbar.get('imp').disable();
Toolbar.get('imp').enable();
//按钮隐藏
Toolbar.get('imp').hide();
}
{ //增加按钮
//在最后放按钮
var toolbar = Ext.getCmp('toolbar');
yoolbar.add({ itemId: "myadd", text: "新增", width: this.itemWidth, iconCls: "icon-New" });
//指定位置插入按钮
var toolbar = Ext.getCmp('toolbar');
toolbar.insert(3, { itemId: "myadd", text: "新增", width: this.itemWidth, iconCls: "icon-New" });
//增加按钮组
var buttomGroup = {
xtype: 'splitbutton',
text: '增行',
menu: [
{ itemId: "htxz", text: "引用合同", iconCls: 'icon-New' },
{ itemId: "addrow", text: "直接增行", iconCls: 'icon-AddRow' }
],
iconCls: 'icon-AddRow'
};
toolbar.insert(1, buttomGroup);
}
//==================================================================================================
{ //循环带出字段
callServer('get_xmxx', [{
'phid': pc_phid
}], function(res) {
for (var rskey in res.record[0]) {
if (rskey != 'project_name') {
mstform.getItem(rskey).setValue(res.record[0][rskey]);
BatchBindCombox([mstform.getItem(rskey)]);
}
}
});
}
{ //自定义表单SQL数据注册取值赋值
callServer('bbhtje', [{
'ccy': pc
}], function(res) {
mstform.getItem('jbr').setValue(res.record[0].jbr);
});
}
{ //系统表单SQL功能扩展取值赋值
execServer('bbhtje', {
'ccy': pc
}, function(res) {
mstform.getItem('jbr').setValue(res.data[0].jbr);
});
}
//==================================================================================================
{
//按钮监听 表头控件设为只读
mstform.getItem('textcol_1').userSetReadOnly(true); //true-只读 false-不只读
//字段控件设置 表头控件设为必输
mstform.getItem('textcol_1').userSetMustInput(true); // true-必输 false-不必输
//表头控件设为可见
mstform.getItem('textcol_1').setVisible(true); //true-可见 false-隐藏
//表头控件设为显示掩码
mstform.getItem('textcol_1').userSetMask();
}
{ //表体控件设为只读
dgrid.setReadOnlyCol('textcol_1', true); //帮助字段设置 字段名_name true-只读 false-不只读
//表体控件设为必输
dgrid.setMustInputCol('textcol_1', true); // 通用帮助加_name true-必输 false-不必输
//表体控件设为隐藏
dgrid.hideColumn('textcol_1', true); // 通用帮助加_name true-隐藏 false-可见
//表体控件设为显示掩码
dgrid.setMaskCol('textcol_1');
}
{ //通用帮助改为单击打开
//所有帮助选择字段,不可编辑
var fields = mstform.getForm().getFields().items;
for (var i = 0; i < fields.length; i++) {
var fld_xtype_val = fields[i].xtype;
var fld_key = fields[i].name;
if (fld_xtype_val.indexOf("Help") != -1) {
mstform.getItem(fld_key).setEditable(false);
}
}
}
{//自定义通用帮助
// 定义通用帮助
var help = Ext.create('Ext.ng.MultiRichHelp', {
helpid: 'sjjd_help', // 帮助ID
valueField: 'u_packet_segment', // 主键列
displayField: 'u_packet_segment_no', // 名称列
listFields: 'bams', // 输出列
ORMMode: false,
clientSqlFilter: 'pc = ' + Pc + ' AND type = ' + JDnr // 过滤条件
})
help.showHelp(); // 显示
help.on('helpselected', function (obj) {
var array = new Array();
for (var i = 0; i < obj.data.length; i++) {
var objItem = obj.data[i].data; // 选中数据插入数组
// 判断是否有相同数据
var isAdd = false;
Ext.Array.each(dgrid.getStore().data.items, function (record) {
if (record.get('u_bill_phid') == objItem.phid) {
isAdd = true;
}
})
if (dgrid.getStore().data.length <= 0 || !isAdd) {
array.push({
u_packet_segment_no: objItem.u_packet_segment_no, // 包案
u_packet_segment: objItem.u_packet_segment, // 包案名称PHI
u_packet_segment_name: objItem.bams, // 包案名称
u_monomer: objItem.u_monomer, // 建筑物PHID
u_monomer_name: objItem.jzw_name, // 建筑物
u_design_parameter: objItem.u_design_parameter, // 设计参
u_specification: objItem.u_specification, // 详细参数
u_bill_phid: objItem.phid // 引用单据PHID
})
}
}
// 提示已存在数据
if (array.length != obj.data.length) {
Ext.Msg.alert('提示', '已存在相同数据!');
}
dstore.insert(dstore.getCount(), array); // 数据插入
})
}
{ //隐藏容器
CntProjBalList1.hide(); //hide()为隐藏设置,可通用于字段、容器
}
//==================================================================================================
{ // 分组默认展开或折叠
mstform.items.items["0"].collapse(); //“基本信息”默认关
mstform.items.items["0"].expand(); //“基本信息”默认展开
}
// =================================================================================================
{ //容器控制设置
$appinfo.logid; //获取当前登录信息
$appinfo.logid //登录用户名;
$appinfo.ocode //登录组织编号;
$appinfo.orgID //登录组织phid;
$appinfo.userID //登录用户phid;
$appinfo.username //登录用户姓名;
}
{
if (otype == $Otype.ADD) {
mstform.getItem('yfdw').setValue($appinfo.orgID);
}
}
{ //获取值 获取当前登录用户phid
$appinfo.userID;
//获取当前登录用户姓名
$appinfo.username;
//获取当前登录组织编号
$appinfo.ocode;
//获取当前登录组织phid
$appinfo.orgID;
}
{ //获取表体的数据赋值给数组arr
var arr = dgrid.getStore().getRange(0, dstore.getCount() - 1); // 0代表第一行 getCount() - 1表示最后一行
arr[0].get('amt'); //获取表体数组arr第一行 amt 字段的值
arr[0].set('amt', 999); //给表体数组arr 第一行 amt 字段赋值
//获取表体总行数的数据(动态获取行数据以及赋值)
var arr = dgrid.getStore().getRange(0, dstore.getCount() - 1); // 0代表第一行 getCount() - 1表示最后一行
for (var i = 0; i < arr.length; i++) {
arr[0].get('amt'); //获取表体数组arr第i行 amt 字段的值
arr[0].set('amt', 999); //给表体数组arr 第i行 amt 字段赋值
}
}
{ //获取表头字段的值
mstform.getItem('pc').getValue(); //getValue()代表控件的值
}
{ //变量赋值
var a = 100; //变量 a 赋值 100
//表头字段赋值
mstform.getItem('jzmj_1').setValue('');
mstform.queryById('PhidYsfl').setValue('');
}
{ //表体字段赋值
record.set('amt', Ext.Number.from(record.get('prc'), 0));
}
{ //表体帮助字段赋值
record.set('jldw', 001);
record.set('jldw_name', 个); //赋值给字段名编码值,及字段名_name 名称值
}
{ //表头帮助字段代码转名称
BatchBindCombox([mstform.getItem('user_xmlx')]); //可同时转换多个帮助字段用,隔开
BatchBindCombox([mstform.getItem('user_xmlx'), mstform.getItem('user_xmmc')]); //可同时转换多个帮助字段用,隔开
}
{ //字段值转换 将值转换为数值型
Ext.Number.from(dstore.getAt(i).get('mbz_1'), 0);
}
{ //弹出选择框
Ext.MessageBox.confirm('提示', '是否删除单据体现有记录?', function(e) {
//if判断 如果选择是的选项则执行,否则弹出选择框事件结束
if (e == yes) {
} else {
}
});
}
{ //表头按钮触发超链接
mstform.getItem('dwgc').el.down('input').on('dblclick', function() {
var phid = mstform.getItem('dwgc').getValue();
if (phid) {
var url = C_ROOT + 'SUP/CustomIntegrate/CustomIntegrateEdit?otype=view&hastitle=1&id=' + phid + '&customBusCode=EFORM0000700240&Authorization=null&AppTitle=%E5%88%86%E5%8C%85%E6%9C%88%E6%8B%9B%E6%A0%87%E8%AE%A1%E5%88%92-%E6%9F%A5%E7%9C%8B';
$OpenTab('分包月招标计划', url);
} else {
Ext.Msg.alert('提示', '未找到对应单据!');
}
});
}
{
//超链接
dgrid.getColumn('u_xmbh').renderer = function (val, m) {
return "<a href='javascript:void(0)' onclick='getData(" + m.record.data.phid + ")'>" + val + "</a>"
}
function getData(id) {
var Mstform = Ext.getCmp('p_form_projectsetmanagement');
var dgrid = Ext.getCmp('p_form_projectguanli');
var dstore = dgrid.store;
if(!Ext.isEmpty(id)){
$OpenTab('项目详情-查看', C_ROOT + 'SUP/CustomPC/CustomPCEdit?otype=view&hastitle=1&issso=0&customBusCode=EFORM9000000043&id=' + id);
}
}
}
{ // 表体按钮触发超链接
//表体字段变化
var dgrid = Ext.getCmp('CntPayD1');
// 记录点击次数用 判断点击间隔
var st = 0;
var ed = 0;
var times = Array();
var num = 0;
// 判断是否点击同一行数据
var arr = new Array();
dgrid.addListener('cellclick', function(editor, e) { //监听单据体编辑状态,edit-编辑,add-增行,remove-删行,cellclick-点击,update-值变化
var record = e.record;
//获取表体当前选中行
var data = grid_f.getSelectionModel().getSelection();
//获取当前选中行某个字段值
var url = data[0].data.c_path;
var same = data[0].internalId;
// 获取当前时间戳
var ti = new Date().getTime()
times.push(ti);
for (let index = 0; index < times.length; index++) {
var te = times.length - 1;
var ed = times[te];
var st = times[te - 1];
var timer = ed - st;
}
// 把行号插入数组 用于比较两次点击是否一行
arr.push(same);
for (let index = 0; index < arr.length; index++) {
var le = arr.length - 1;
var isSame = arr[le];
var same = arr[le - 1];
}
num++;
// 双击跳转超链接
if (num % 2 == 0 && isSame == same && timer <= 500) {
window.open('https://www.baidu.com/?tn=sitehao123&H123Tmp=nunew11&ts=637948800284735803');
}
});
}
{ // 防止链接重复点击
var isClick = true;
$("button").on("click", function() {
if (isClick) {
isClick = false;
//事件
console.log('我被点击了');
//事件end
//定时器
setTimeout(function() {
isClick = true;
}, 1000); //一秒内不能重复点击
} else {
Ext.Msg.alert('提示', '请勿过快点击');
}
});
}
{ // 页面跳转
mstform.getItem('BillNo').el.down('input').on('dblclick', function() {
// 当前窗口打开
location.href = 'https://www.baidu.com/?tn=sitehao123&H123Tmp=nunew11&ts=637948800284735803';
// 新窗口打开
window.open('https://www.baidu.com/?tn=sitehao123&H123Tmp=nunew11&ts=637948800284735803');
});
}
{ //单选框/复选框操作
//单选框取值:
mstform.getItem('rbcol_1_code').getChecked()[0].inputValue;
//赋值:——i表示第几项
mstform.getItem('rbcol_1_code').items.get(i).setValue(true);
//单选/复选框隐藏(可见用show())
mstform.getItem('rbcol_1_code').hide();
}
//--------------------------------------------------------------
{ //隐藏tab页
var tabPanel = Ext.getCmp('tabPanel');
tabPanel.hide();
}
{ //tab切换触发
var tabPanel = Ext.getCmp('tabPanel'); //TAB页
//Tab页2
var changetab = tabPanel.getComponent('p_form0000700020_d1grid');
tabPanel.setActiveTab(changetab);
//切回Tab页1
var cntintab = tabPanel.getComponent('p_form0000700020_dgrid');
tabPanel.setActiveTab(cntintab);
tabPanel.on('tabchange', function(tabchange, newCard, oldCard, eOpts) {
if (newCard.id == 'cntpaydChgtab') {
var dgrid = Ext.getCmp('CntPayDChg7');
dgrid.addListener('edit', function(editor, e) {
if (e.originalValue == e.value) {
return;
}
if (e.field == 'AppAmtVatFc') {
var record = e.record;
record.set('user_spbbje', Ext.Number.from(record.get('AppAmtVatFc'), 0) * Ext.Number.from(record.get('ExchRate'), 0));
}
});
}
});
}
//-------------------------------------------------------------------
{ //打开帮助链接
var url = C_ROOT + 'SUP/NG0001pform0000000117Edit?otype=add&issso=' + IsSso;
url += '&treeorgid=' + Ext.getCmp('ocode').getValue();
url += '&treeprojid=' + Ext.getCmp('pc').getValue();
$OpenTab('开工报告-新增', url);
}
{ //保存前检测 系统表单可用
var startdt = mstform.queryById('StartDate').getValue();
var enddt = mstform.queryById('EndDate').getValue();
if (startdt == null || enddt == null) {
mstform.queryById('LimitTime').setValue(0);
return;
}
}
{ //时间转换
var sd = Date.parse(startdt);
var ed = Date.parse(enddt);
var date = (ed - sd) / 1000 / 3600 / 24;
date = date + 1;
}
{ //系统表单表体方案编写表体帮助字段监听
dgrid.getColumn('PhidCbs_EXName').getEditor().addListener('helpselected', function() {
});
}
{ //单据检测事件 单据编辑页面保存前检测
function beforeSaveEdit() {
var mstform = Ext.getCmp('表明');
var flag = mstform.getItem('asr_flg').getValue();
if (flag) {
return true;
} else {
NGMsg.Info('请先上传附件');
return false
}
}
}
{ //保存检测事件
function beforeSaveEdit() {}
}
{ //单据列表页面删除前检测
function beforeDeleteList() {}
}
{ //单据编辑页面审核前检测
function beforeVerifyEdit() {}
}
{ //单据列表页面审核前检测
function beforeVerifyList() {}
}
{ //单据编辑页面去审核前检测
function beforeUnVerifyEdit() {}
}
{ //单据列表页面去审核前检测
function beforeUnVerifyList() {}
}
{ //单据编辑页面保存更新数据
function getSaveDataEdit(type) {
if (type == 'Save') {}
}
}
{ //单据更新事件 单据编辑页面审核更新数据
function getSaveDataEdit(type) {
if (type == 'Verify') {}
}
}
{ //单据编辑页面去审核更新数据
function getSaveDataEdit(type) {
if (type == 'UnVerify') {}
}
}
{ //单据列表页面审核更新数据
function getSaveDataList(type) {
if (type == 'Verify') {}
}
}
{ //单据列表页面去审核更新数据
function getSaveDataList(type) {
if (type == 'UnVerify') {}
}
}
{ //工作流经过审批节点更新数据
function getSaveDataEdit(type) {
if (type == 'Approve') {}
}
}
{
// 百分数四舍五入后失去精度处理
function beforeSaveEdit() {
var mstform = Ext.getCmp('p_form0000700011_m');
var yqlrl = mstform.getItem('yqlrl').getValue();
var lrl = parseFloat(yqlrl);
mstform.getItem('yqlrl').setValue(lrl);
if (1 == 1) {
return true;
} else {
return false
}
}
//数据库里取数,出现四舍五入的处理
execServer('zbjbl', {
'htbm': phidcnt_val
}, function(res1) {
if (res1.count > 0) {
var bzjbl1 = parseFloat(res1.data[0].bp);
var bzjbl2 = (Math.round(bzjbl1 * 100) / 100).toFixed(2);
bzjbl += bzjbl2;
}
});
}
//-----------------------------------------------------------------------------------------------------------
//数字金额大写转换(可以处理整数,小数,负数)
//金额转大写
mstform.getItem('atm').addListener('change', function() {
var atm = mstform.getItem('atm').getValue();
mstform.getItem('at').setValue(dealBigMoney(atm));
});
function dealBigMoney(n) {
var fraction = ['角', '分'];
var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
var unit = [
['元', '万', '亿'],
['', '拾', '佰', '仟']
];
var head = n < 0 ? '欠' : '';
n = Math.abs(n);
var s = '';
for (var i = 0; i < fraction.length; i++) {
s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
}
s = s || '整';
n = Math.floor(n);
for (var i = 0; i < unit[0].length && n > 0; i++) {
var p = '';
for (var j = 0; j < unit[1].length && n > 0; j++) {
p = digit[n % 10] + unit[1][j] + p;
n = Math.floor(n / 10);
}
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
}
return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整');
}
//--------------------------------------------------------------------------------------------------------
format(e.value, 'yyyy-MM-dd') // 调用
// 转换时间格式
function format(time, format) {
var t = new Date(time);
var tf = function(i) {
return (i < 10 ? '0' : '') + i
};
return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a) {
switch (a) {
case 'yyyy':
return tf(t.getFullYear());
break;
case 'MM':
return tf(t.getMonth() + 1);
break;
case 'mm':
return tf(t.getMinutes());
break;
case 'dd':
return tf(t.getDate());
break;
case 'HH':
return tf(t.getHours());
break;
case 'ss':
return tf(t.getSeconds());
break;
}
})
}
//-----------------------------------------------------
//附件监听
function attachReturnExt(key, value) {
var Mstform = Ext.getCmp('p_form_pre_tb_m');
if (key == 'closeNG3Container') {
var res = Ext.decode(value);
var fj_flg = 0;
if (res.length > 0) {
for (i = 0; i < res.length; i++) {
if (res[i].asr_name.indexOf('TB报告') != -1) {
fj_flg = fj_flg + 1
}
};
}
//console.log(fj_flg);
Mstform.getItem('u_tb_report').setValue(fj_flg);
} else {
return;
}
}
//表体字段变色(改变具体某些字段)
function changeSomeGridColor(mstform, Toolbar, dgrid, colors, type) {//mstform表头,Toolbar菜单栏,dgrid表体, colors颜色, type改变字体还是背景textcolor字体 bgcolor背景
//颜色不生效可以试试RGB类型的颜色例如rgb(255, 190, 200)
var dstore = dgrid.store;
//数据加载完成触发
mstform.on('dataready', function () {
changeSomeColor(dgrid, colors, type);
//改变颜色,并解决点击通用帮助时颜色被清除
var statusArr = ['edit', 'add', 'remove', 'cellclick', 'update', 'change'];///定义监听单据体编辑状态数组
for (var j = 0; j < statusArr.length; j++) {
dgrid.addListener(statusArr[j], function (editor, e) { //监听单据体编辑状态,edit-编辑,add-增行,remove-删行,cellclick-点击,update-值变化
changeSomeColor(dgrid, colors, type);//dgrid表体, colors颜色, type改变字体还是背景
});
}
var statusArr_1 = ['add', 'remove'];///定义监听单据体编辑状态数组
for (var k = 0; k < statusArr_1.length; k++) {//监听单据体编辑状态add-增行,remove-删行
dstore.on(statusArr_1[k], function (store, records, index, eOpts) {
changeSomeColor(dgrid, colors, type);//dgrid表体, colors颜色, type改变字体还是背景
});
}
Toolbar.get('deleterow').on('click', function () {
changeSomeColor(dgrid, colors, type);//dgrid表体, colors颜色, type改变字体还是背景
});
});
function changeSomeColor(dgrid, colors, type) {
var gridCount = dgrid.getStore().getRange(0, dstore.getCount() - 1);
for (var i = 0; i < gridCount.length; i++) {
//判断变色条件(根据业务需求变更)
//var flg = gridCount[i].get('amt');
var flg = '1';
if (flg == '1') {
//旧方法已弃用
//var trs = document.getElementsByClassName('x-grid-data-row');
// for (var h = 0; h < aa; h++) {
// trs[i].children[13].children[0].style.backgroundColor = 'rgb(50, 205, 50)';
// trs[i].children[16].children[0].style.backgroundColor = 'rgb(255, 190, 200)';
// // trs[i].style.backgroundColor = "rgb(255, 190, 200)";
// }
//定义元素每行的字段元素
var corlorChange = document.getElementById(dgrid.view.el.id + '-record-' + dstore.data.items[i].internalId).getElementsByTagName("div");
if (type == 'textcolor') {
//改变字体颜色
corlorChange[3].style.color = colors;//具体第几个字段需要变色(根据需求进行变更)
corlorChange[7].style.color = colors;//具体第几个字段需要变色(根据需求进行变更)
} else if (type = 'bgcolor') {
//改变背景颜色
corlorChange[7].style.backgroundColor = colors;//具体第几个字段需要变色(根据需求进行变更)
corlorChange[10].style.backgroundColor = colors;//具体第几个字段需要变色(根据需求进行变更)
}
}
}
}
}
//表体字段变色(改变整行字段)------------st
function changeAllGridColor(mstform, Toolbar, dgrid, colors, type) {//mstform表头,Toolbar菜单栏,dgrid表体, colors颜色, type改变字体还是背景textcolor字体 bgcolor背景
//颜色不生效可以试试RGB类型的颜色例如rgb(255, 190, 200)
var dstore = dgrid.store;
//数据加载完成触发
mstform.on('dataready', function () {
changeAllColor(dgrid, colors, type);
//改变颜色,并解决点击通用帮助时颜色被清除
var statusArr = ['edit', 'add', 'remove', 'cellclick', 'update', 'change'];///定义监听单据体编辑状态数组
for (var j = 0; j < statusArr.length; j++) {
dgrid.addListener(statusArr[j], function (editor, e) { //监听单据体编辑状态,edit-编辑,add-增行,remove-删行,cellclick-点击,update-值变化
changeAllColor(dgrid, colors, type);//dgrid表体, colors颜色, type改变字体还是背景
});
}
var statusArr_1 = ['add', 'remove'];///定义监听单据体编辑状态数组
for (var k = 0; k < statusArr_1.length; k++) {//监听单据体编辑状态add-增行,remove-删行
dstore.on(statusArr_1[k], function (store, records, index, eOpts) {
changeAllColor(dgrid, colors, type);//dgrid表体, colors颜色, type改变字体还是背景
});
}
Toolbar.get('deleterow').on('click', function () {
changeAllColor(dgrid, colors, type);//dgrid表体, colors颜色, type改变字体还是背景
});
});
function changeAllColor(dgrid, colors, type) {
for (var i = 0; i < dstore.getCount(); i++) {
判断变色条件(根据业务需求变更)
//var flg = dstore.getAt(i).get('u_flg');
var flg = '1';
if (flg == '1') {
//定义元素每行的字段元素
var corlorChange = document.getElementById(dgrid.view.el.id + '-record-' + dstore.data.items[i].internalId).getElementsByTagName("div");
//定义每行有多少字段
var count = document.getElementById(dgrid.view.el.id + '-record-' + dstore.data.items[i].internalId).getElementsByTagName("div").length;
if (type == 'textcolor') {
//改变字体颜色
for (var h = 0; h < count; h++) {
corlorChange[h].style.color = colors;
}
} else if (type = 'bgcolor') {
//改变背景颜色
for (var h = 0; h < count; h++) {
corlorChange[h].style.backgroundColor = colors;
}
}
}
}
}
}
//表体字段变色(改变整行字段)------------end
//----------------
//java的url链接拆分
//String params = url.substring(url.indexOf("?") + 1);
//Map<String, String> split = Splitter.on("&").withKeyValueSeparator("=").split(params);
//String wfpiid = split.get("wfpiid");
//js批量生成json数据 参考网址https://blog.csdn.net/cdming/article/details/130051542
var YearSelect = {};
var Year = 2014;
var DateOption;
for (var i = Year; i < Year + 12; i++) {
DateOption = { 'Year': i, 'Month': i - Year + 1 };
//alert(DateOption.Year)
YearSelect[i] = DateOption;
}
//屏蔽元素的点击事件,使元素变为只读 参考网址:http://www.mufengzs.cn/post/24036.html
document.getElementById('webEditorPanel-body').style.pointerEvents = 'none';
//加减乘除方法 --浮点型字段类型数据计算后可能失真
function GcDiv(arg1, arg2) {
if (arg2 == 0) return arg2;
var t1 = 0,
t2 = 0,
r1,
r2;
try {
t1 = arg1.toString().split(".")[1].length;
} catch (e) {
}
try {
t2 = arg2.toString().split(".")[1].length;
} catch (e) {
}
// with (Math) {
r1 = Number(arg1 == null ? 0 : arg1.toString().replace(".", ""));
r2 = Number(arg2 == null ? 1 : arg2.toString().replace(".", ""));
return r1 / r2 * Math.pow(10, t2 - t1);
// }
}
function GcMul(arg1, arg2) {
var m = 0,
s1 = arg1 == null ? "0" : arg1.toString(),
s2 = arg2 == null ? "0" : arg2.toString();
try {
m += s1.split(".")[1].length;
} catch (e) {
}
try {
m += s2.split(".")[1].length;
} catch (e) {
}
return (
Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
);
}
/**
** 加法函数,用来得到精确的加法结果
** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
** 调用:GcAdd(arg1,arg2)
** 返回值:arg1加上arg2的精确结果
**/
function GcAdd(arg1, arg2) {
var r1, r2, m, c;
try {
r1 = arg1.toString().split(".")[1].length;
} catch (e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
} catch (e) {
r2 = 0;
}
c = Math.abs(r1 - r2);
m = Math.pow(10, Math.max(r1, r2));
if (c > 0) {
var cm = Math.pow(10, c);
if (r1 > r2) {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", "")) * cm;
} else {
arg1 = Number(arg1.toString().replace(".", "")) * cm;
arg2 = Number(arg2.toString().replace(".", ""));
}
} else {
arg1 = Number(arg1 == null ? 0 : arg1.toString().replace(".", ""));
arg2 = Number(arg2 == null ? 0 : arg2.toString().replace(".", ""));
}
return (arg1 + arg2) / m;
}
/**
** 减法函数,用来得到精确的减法结果
** 说明:javascript的减法结果会有误差,在两个浮点数相减的时候会比较明显。这个函数返回较为精确的减法结果。
** 调用:GcSub(arg1,arg2)
** 返回值:arg1减去arg2的精确结果
**/
function GcSub(arg1, arg2) {
var r1, r2, m, n;
try {
r1 = arg1.toString().split(".")[1].length;
} catch (e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
} catch (e) {
r2 = 0;
}
m = Math.pow(10, Math.max(r1, r2)); //动态控制精度长度
n = r1 >= r2 ? r1 : r2;
return Number((((arg1 == null ? 0 : arg1) * m - (arg2 == null ? 0 : arg2) * m) / m).toFixed(n));
}
Ext.js—常用函数方法
于 2022-07-15 11:59:08 首次发布