赞
踩
- //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));
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。