当前位置:   article > 正文

Ext.js—常用函数方法

ext.js
  1. //Ext.js--常用函数方法
  2. //自定义表单单据编辑页面初始化
  3. function allReadyEdit() {
  4. }
  5. //系统表单单据编辑页面初始化
  6. function AllReady() {
  7. }
  8. //自定义表单单据列表页面初始化
  9. function allReadyList() {
  10. }
  11. //获取容器 获取表头容器并用对像mstform表示
  12. var mstform = Ext.getCmp('p_form0000000007_m');
  13. //列表界面查询模块容器获取
  14. function AllReadyList() {//自定义表单单据列表页面初始化
  15. var viewPort = Ext.getCmp('viewPort');
  16. var print = curToolbar.get('print');
  17. var list = viewPort.items.items[1];
  18. //print.setText('打印/导出');
  19. //获取查询容器内的字段
  20. list.queryById('u_u_itjfbm_b').hide();
  21. list.queryById('u_u_itjfbm_b').setValue(itjfbm);
  22. list.queryById('u_u_itjfbm_b').setRawValue(itjfbm_name);
  23. list.searchEvent(curGrid.store);
  24. //刷新按钮点击事件
  25. list.dockedItems.items[0].items.get('query').on('click', function () {
  26. list.queryById('u_u_itjfbm_b').setValue(itjfbm);
  27. list.queryById('u_u_itjfbm_b').setRawValue(itjfbm_name);
  28. });
  29. }
  30. //获取菜单栏并用对像Toolbar表示
  31. var Toolbar = Ext.getCmp('toolbar');
  32. //单据引用按钮中表头和表体按钮的获取
  33. Toolbar.get('imp') //单据引用按钮
  34. Toolbar.get('impform') //表头引用按钮
  35. Toolbar.get('impgrid') //表头引用按钮
  36. { //当单据引用带有表体和表头时需要改变按钮名字时用
  37. //判断单据引用按钮是否存在
  38. if (Toolbar.get('imp') != null) {
  39. //判断表头表体按钮是否存在
  40. if (Toolbar.get('impform') && Toolbar.get('impgrid')) {
  41. Toolbar.get('imp').addListener('click', function() {
  42. Toolbar.get('impform').textEl.dom.innerHTML = '引用合同';
  43. Toolbar.get('impgrid').textEl.dom.innerHTML = '引用结算单';
  44. });
  45. }
  46. }
  47. }
  48. //获取表体容器并用对像dgrid表示
  49. var dgrid = Ext.getCmp('p_form0000000007_dgrid');
  50. var dstore = dgrid.store;
  51. {
  52. //获取表体的列表名数据
  53. dgrid.getColumn('u_phid_company_name');
  54. //变改表体列表的原名称
  55. dgrid.getColumn('u_phid_company_name').textEl.dom.innerText = '单位11';
  56. }
  57. {//获取列表界面容器和元素
  58. //方法一:5.1版本自定义表单可用
  59. var dgrid = Ext.getCmp('p_form0000000066_mgrid'); //获取当前整体列表
  60. var data = dgrid.getSelectionModel().getSelection(); //获取当前选中行
  61. data[0].get('sgjd'); //获取当前选中行某个字段值
  62. data[0].set('sgjd', '11111'); //给当前选中行某个字段值赋值
  63. //方法二:适用于5.1和5.2版本的系统表单和自定义表单
  64. var listId = Ext.getCmp('viewPort').items.items[2].id;//找出列表容器的id,items[2]每个单据的索引不同
  65. var dgrid = Ext.getCmp(listId); //获取当前整体列表
  66. var data = dgrid.getSelectionModel().getSelection(); //获取当前选中行
  67. data[0].get('sgjd'); //获取当前选中行某个字段值
  68. data[0].set('sgjd', '11111'); //给当前选中行某个字段值赋值
  69. }
  70. var dgrid = Ext.getCmp('p_form0000000007_dgrid'); //获取当前表体
  71. var data = dgrid.getSelectionModel().getSelection(); //获取当前选中行
  72. data[0].get('sgjd'); //获取当前选中行某个字段值
  73. data[0].set('sgjd', '111'); //给当前选中行某个字段值赋值
  74. //循环遍历选中行的数据 并给批量置空数组的值
  75. {
  76. var dgrid = Ext.getCmp('p_form0000000007_dgrid'); //获取当前表体
  77. var data = dgrid.getSelectionModel().getSelection(); //获取当前选中行
  78. //获取到选中行的数据,并定义一个数组对象
  79. var arrDatas = data[0].data;
  80. //循环遍历并输出数组的key value
  81. for (var key in arrDatas) {
  82. console.log(key, arrDatas[key]);
  83. //输出
  84. //name programmer
  85. //age 22
  86. //height 180
  87. }
  88. //批量给数组对象置空或赋值
  89. for (var key in arrDatas) {
  90. arrDatas[key] = '1111';
  91. arrDatas[key] = '';
  92. }
  93. console.log(arrDatas) //{name: "1111", age: "1111", height: "1111"} //{name: "", age: "", height: ""}
  94. }
  95. {
  96. //获取当前选中行某个字段值
  97. var data = dgrid.getSelectionModel().getSelection();
  98. //获取表体序号
  99. var xh = data[0].internalId;//方法1
  100. var xh = data[0].index + 1;//方法2
  101. }
  102. //=================================================================================================
  103. { //获取系统数据
  104. y.queryById('PhidYsfl').setValue(14);
  105. }
  106. { //获取tab页容器--数据
  107. var dgrid11 = Ext.getCmp('cntitemtab').items.items[0].items.items[0];
  108. var dstore11 = dgrid11.store;
  109. }
  110. {
  111. //多个tab页时,默认显示某一个
  112. var tabPanel = Ext.getCmp('tabPanel');
  113. tabPanel.setActiveTab(0);
  114. }
  115. {
  116. var tabPanel = Ext.getCmp('tabPanel'); //获取当前所在tab页
  117. var tab = tabPanel.getActiveTab(); //多个tab页时获取正在编辑状态的tab页
  118. }
  119. {
  120. //tab页依次激活
  121. var tabs = tabPanel.items.items;
  122. for (var i = 1; i < tabs.length; i++) {
  123. tabPanel.setActiveTab(i);
  124. }
  125. // 默认打开第一个tab页
  126. tabPanel.setActiveTab(0);
  127. }
  128. { //tab页的显示与隐藏
  129. //隐藏tab页
  130. var tabPanel = Ext.getCmp('tabPanel');
  131. var tab1 = tabPanel.items.items[0];
  132. tabPanel.remove(tab1); //方法1
  133. tabPanel.hide(tab1); //方法2
  134. //显示tab页
  135. tabPanel.show(tab1); //方法2
  136. //上面失效的话可能是如下方法
  137. tab1.tab.onHide();//隐藏
  138. tab1.tab.onShow();//显示
  139. }
  140. {//隐藏imp的统计项
  141. var customfieldset = mstform.up('container').down('[itemId=customfieldset][xtype=fieldset]');
  142. if (customfieldset) {
  143. customfieldset.setVisible(false);
  144. }
  145. }
  146. { //数据加载完成触发
  147. mstform.on('dataready', function() {
  148. });
  149. //单据引用加载后
  150. mstform.on('impdataready', function() {
  151. });
  152. //页面数据加载定时器(自动调用并停止)
  153. var cnt = 0;
  154. var timer = setInterval(function() {
  155. //加载内容start
  156. //加载内容end
  157. if (++cnt == 2) {
  158. clearInterval(timer);
  159. }
  160. }, 500);
  161. //页面数据加载定时器(每次只调用一次)
  162. setTimeout(function() {
  163. //加载内容start
  164. //加载内容end
  165. }, 1000);
  166. //页面数据加载定时器(每隔一段时间调用一次)
  167. setInterval(function() {
  168. //加载内容start
  169. //加载内容end
  170. }, 1000);
  171. }
  172. //=================================================================================================
  173. { // 列表界面查询条件默认隐藏
  174. function AllReadyList() {
  175. //列表界面查询模块容器获取
  176. var viewPort = Ext.getCmp('viewPort');
  177. var list = viewPort.items.items[1];
  178. var hidden_Query = curToolbar.get('hidden_Query');
  179. list.setVisible(false);
  180. hidden_Query.setText('显示');
  181. hidden_Query.setIconCls('iconfont iconunfold');
  182. //列表页grid加载前,增加过滤条件,合同页面类型为‘合同评审’
  183. //列表加载前
  184. liststore.on("beforeload", function (me, operation, eOpts) {
  185. if (me.proxy.extraParams.hasOwnProperty("queryfilter")) {
  186. var qeryObj = JSON.parse(me.proxy.extraParams.queryfilter);
  187. console.log(qeryObj);
  188. qeryObj["user_htymlx"] = '1';
  189. me.proxy.extraParams.queryfilter = JSON.stringify(qeryObj);
  190. }
  191. else {
  192. me.proxy.extraParams.queryfilter = JSON.stringfy({ "user_htymlx": '1' });
  193. }
  194. });
  195. liststore.load();//重新加载
  196. }
  197. }
  198. { //页面数据加载框升级版
  199. Ext.Msg.wait('数据加载中...', '提示信息', {
  200. interval: 300, //进度条移动速度!循环定时间隔
  201. duration: 1500, //总时长
  202. increment: 5, //执行进度条的次数
  203. text: '数据加载中...', //进度条的文字
  204. scope: this,
  205. width: 300, //宽 可调节
  206. // height: 120, //高 可调节
  207. animate: true, //进度条动画效果
  208. buttons: Ext.Msg.YESNO, //按钮 YESNOCANCEL 显示Yes, No 和 Cancel 按钮的配置
  209. icon: Ext.Msg.QUESTION, //提示标记 WARNING警告 QUESTION疑问 INFO提示 ERROR错误
  210. fn: function() {
  211. Ext.Msg.alert({
  212. msg: '加载成功', //提示信息
  213. width: 50, //宽 可调节
  214. height: 20, //高 可调节
  215. icon: Ext.Msg.INFO //提示标记 WARNING警告 QUESTION疑问 INFO提示 ERROR错误
  216. });
  217. //.5s后自动关闭提示框和加载框
  218. setTimeout(function() {
  219. //加载内容start
  220. Ext.Msg.hide(); //进度弹窗加载后自动隐藏
  221. //加载内容end
  222. }, 500);
  223. }
  224. });
  225. //提示框
  226. Ext.Msg.alert('提示', '请先选择【工程项目】');
  227. // 自定义弹窗/提示框
  228. Ext.Msg.alert({
  229. title: '提示', //标题
  230. msg: '【整改明细】表体不能为空,请点击【单据引用】按钮,引入表体数据。', //提示信息
  231. width: 490, //宽 可调节
  232. height: 120, //高 可调节
  233. buttons: Ext.Msg.OKCANCEL, //按钮 YESNOCANCEL 显示Yes, No 和 Cancel 按钮的配置
  234. multiline: false,
  235. icon: Ext.Msg.WARNING //提示标记 WARNING警告 QUESTION疑问 INFO提示 ERROR错误
  236. });
  237. //自定义提示框
  238. Ext.Msg.show({
  239. title: '标题',
  240. msg: '提示内容',
  241. width: 300, //宽 可调节
  242. height: 120, //高 可调节
  243. buttons: Ext.Msg.OKCANCEL, //按钮 YESNOCANCEL 显示Yes, No 和 Cancel 按钮的配置
  244. multiline: false, //输入框 默认false不显示
  245. icon: Ext.window.MessageBox.INFO //提示标记 WARNING警告 QUESTION疑问 INFO提示 ERROR错误
  246. });
  247. }
  248. // =================================================================================================
  249. //通过obj参数,带出通用帮助中的字段值
  250. mstform.getItem('cght').addListener('helpselected', function(obj) {
  251. mstform.getItem('jfdw').setValue(obj.data.phid_reccomp);; //甲方单位phid_reccomp
  252. mstform.getItem('yfdw').setValue(obj.data.phid_sencomp);; //乙方单位phid_sencomp
  253. //将ID转换成名称
  254. BatchBindCombox([mstform.queryById('jfdw')]);
  255. BatchBindCombox([mstform.queryById('yfdw')]);
  256. });
  257. //表头通用帮助过滤 (点击通用帮助1,通用过滤帮助2)
  258. mstform.getItem('yxxmmc').addListener('helpselected', function() { //通用帮助1
  259. var pc = mstform.getItem('yxxmmc').getValue();
  260. var yxmmbh_val = '';
  261. var jydw1 = '';
  262. var jydw2 = '';
  263. var jydw3 = '';
  264. callServer('xmmc', [{
  265. 'pc': pc
  266. }], function(res) {
  267. mstform.getItem('yxmmbh').setValue(res.record[0].bill_no);
  268. yxmmbh_val = res.record[0].bill_no;
  269. });
  270. // 获取出通用帮助2的主键
  271. callServer('jydw', [{
  272. 'bll': yxmmbh_val
  273. }], function(res) {
  274. jydw1 = res.record[0].uj1;
  275. jydw2 = res.record[0].uj2;
  276. jydw3 = res.record[0].uj3;
  277. });
  278. // 通用帮助2 //phid字段是通用帮助中的字段
  279. mstform.getItem('scdw').setClientSqlFilter('phid = \'' + jydw1 + '\' or phid = \'' + jydw2 + '\'or phid = \'' + jydw3 + '\'');
  280. });
  281. // 表体通用帮助过滤 表体帮助过滤
  282. dgrid.getColumn('u_cbs_name').getEditor().addListener('beforetriggerclick', function() {
  283. //获取表体当前选中行
  284. var data = dgrid.getSelectionModel().getSelection();
  285. var pc = mstform.getItem('u_gcxm').getValue();
  286. // dgrid.getColumn('u_cbs_name').getEditor().setOutFilter({
  287. // c_no: $appinfo.userID
  288. // });
  289. if (pc != '' || pc != null || data.length > 0) {
  290. dgrid.getColumn('u_cbs_name').getEditor().setClientSqlFilter('pcid =' + pc);
  291. //dgrid.getColumn('u_cbs_name').getEditor().setClientSqlFilter('bd_cbs.pcid =' + pc);
  292. //dgrid.getColumn('u_cbs_name').getEditor().setClientSqlFilter('pcid in (142211118000091,142211118000092)');
  293. }
  294. });
  295. //收付款节点根据合同过滤 通用帮助点击前过滤
  296. mstform.queryById('user_fkjd').addListener('beforetriggerclick', function() {
  297. var PhidCnt_val = mstform.queryById('PhidCnt').getValue();
  298. if (PhidCnt_val == 0) {
  299. NGMsg.Error('请先选择合同');
  300. return false
  301. } else {
  302. mstform.queryById('user_fkjd').setOutFilter({
  303. phid_cnt: PhidCnt_val //phid_cnt字段是通用帮助中的字段
  304. });
  305. }
  306. });
  307. //==================================================================================================
  308. { //单据状态为新增、修改或查看
  309. if (otype == $Otype.ADD || otype == $Otype.EDIT || otype == $Otype.VIEW || otype == $Otype.COPY) {
  310. }
  311. if (otype === 'add' || otype === 'edit' || otype === 'view' || otype === 'copy') {
  312. }
  313. }
  314. { //表头帮助窗口选择后触发
  315. mstform.getItem('pc').addListener('helpselected', function() {
  316. });
  317. }
  318. { //字段监听事件 表头焦点离开后触发
  319. mstform.getItem('remarks').addListener('itemchanged', function() {
  320. });
  321. }
  322. { //表头值发生变化后立即触发
  323. mstform.getItem('checkboxcol_1').addListener('change', function() {
  324. });
  325. }
  326. { // 表体数据插入
  327. callServer('zyhd', [{
  328. 'pc': pc,
  329. }], function(res) {
  330. dstore.removeAll(); //清除单据体内所有数据
  331. dstore.insert(dstore.getCount(), res.record); //将服务端获取的数组内容插入到单据体
  332. });
  333. // 表体数据插入(有通用帮助的情况 注意通用帮助的中文名称要联查通用帮助的数据库表)
  334. mstform.getItem('u_gcxm').addListener('helpselected', function(obj) {
  335. var gcxm_val = mstform.getItem('u_gcxm').getValue();
  336. //收入清单
  337. callServer('srboq', [{
  338. 'pc': gcxm_val
  339. }], function(res) {
  340. if (res.count > 0) {
  341. var arr = new Array();
  342. for (i = 0; i < res.record.length; i++) {
  343. arr.push({
  344. u_ysxbm: res.record[i].u_ysxbm,
  345. u_ysxbt: res.record[i].u_ysxbt,
  346. u_dwgc: res.record[i].u_dwgc,
  347. u_dwgc_name: res.record[i].u_dwgc_name,
  348. u_cbs: res.record[i].u_cbs,
  349. u_cbs_name: res.record[i].u_cbs_name,
  350. u_dw: res.record[i].u_dw,
  351. u_dw_name: res.record[i].u_dw_name,
  352. })
  353. }
  354. dstore.removeAll(); //清除单据体内所有数据
  355. dstore.insert(dstore.getCount(), arr); //将服务端获取的数组内容插入到单据体
  356. } else {
  357. dstore1.removeAll(); //清除单据体内所有数据
  358. }
  359. });
  360. });
  361. }
  362. { //表体默认增行事件
  363. if (otype == $Otype.ADD) {
  364. // 表体默认新增四行
  365. var arr = new Array();
  366. for (var i = 0; i < 4; i++) {
  367. arr.push({
  368. jd: str,
  369. tzzy: '',
  370. jszy: '',
  371. ts: '',
  372. rq: '',
  373. remarks: '',
  374. })
  375. }
  376. dstore.removeAll(); //清除单据体内所有数据
  377. dstore.insert(dstore.getCount(), arr); //将服务端获取的数组内容插入到单据体
  378. }
  379. }
  380. {
  381. // 方法1
  382. //获取表体当前选中行
  383. var data = dgrid.getSelectionModel().getSelection();
  384. //获取当前选中行某个字段值
  385. data[0].get('sgjd');
  386. // 方法2
  387. var dgrid = Ext.getCmp('CntPayDOld1');
  388. dgrid.addListener('cellclick', function(editor, e) { //监听单据体编辑状态,edit-编辑,add-增行,remove-删行,cellclick-点击,update-值变化
  389. //获取表体当前选中行
  390. var data = dgrid.getSelectionModel().getSelection();
  391. //获取当前选中行某个字段值
  392. data[0].data.ItemNo;
  393. });
  394. }
  395. { //表体字段变化
  396. dgrid.addListener('edit', function(editor, e) { //监听单据体编辑状态,edit-编辑,add-增行,remove-删行,cellclick-点击,update-值变化
  397. if (e.originalValue == e.value) {
  398. return;
  399. } //判断原值与新值是否相同
  400. if (e.field == 'qty' || e.field == 'prc') { //监听qty、prc字段变化
  401. var record = e.record;
  402. record.set('amt', Ext.Number.from(record.get('prc'), 0) * Ext.Number.from(record.get('qty'), 0)); //计算amt值
  403. };
  404. });
  405. //表体字段变化后触发
  406. dstore1.addListener('update', function(store, record, operation, modifiedFieldNames) {
  407. if (operation !== Ext.data.Model.EDIT) {
  408. return
  409. };
  410. if (modifiedFieldNames[0] == 'bywcjd') {
  411. var bywcjd = "'" + record.get('bywcjd') + "'";
  412. callServer('bywcjd', [{
  413. 'bywcjd': bywcjd
  414. }], function(res) {
  415. if (res.count > 0) {
  416. record.set('qty', res.record[0].c_descript)
  417. }
  418. })
  419. }
  420. if (modifiedFieldNames[0] == 'bywcjd' || modifiedFieldNames[0] == 'amt' || modifiedFieldNames[0] == 'qty') {
  421. var sumwccz = 0;
  422. record.set('bywccz', Ext.Number.from(record.get('qty'), 0) * Ext.Number.from(record.get('amt'), 0));
  423. for (i = 0; i < dstore1.getCount(); i++) {
  424. sumwccz += Ext.Number.from(dstore1.getAt(i).get('bywccz'), 0)
  425. }
  426. mstform.getItem('bywccz').setValue(sumwccz)
  427. }
  428. })
  429. }
  430. { //表体单行金额或数量字段累加计算(可根据业务需要进行加减乘除计算)
  431. dgrid.addListener('edit', function(editor, e) { //监听单据体字段编辑状态 *edit 为编辑事件(据体汇总更新表头字段)
  432. if (e.originalValue == e.value) {
  433. return;
  434. } //判断原值与新值是否相同,如果相同则返回
  435. if (e.field == 'fs') { //监听表体amt字段变化
  436. var sumamt = 0; //变量sumamt初始值为0
  437. for (i = 0; i < dstore.getCount(); i++) { //for循坏 *dstore.getCount()表示单据体总行数
  438. sumamt += Ext.Number.from(dstore.getAt(i).get('fs'), 0); //变量sumamt累加
  439. mstform.getItem('zpzf').setValue(sumamt); //变量sumamt值赋值给表头 amt
  440. } //for循环事件结束 }
  441. }; //监听表体amt字段变化事件结束
  442. });
  443. //表体多行计算
  444. // 表体导入或增加多行时自动计算表体数据(可根据业务需要进行加减乘除计算)
  445. //页面数据加载定时器(每隔一段时间调用一次)
  446. setInterval(function() {
  447. //加载内容start
  448. console.log("表体字段计算中...");
  449. //获取表体的所有行的数据
  450. var arr = dgrid.getStore().getRange(0, dstore.getCount() - 1); // 0代表第一行 getCount() - 1表示最后一行
  451. for (i = 0; i < arr.length; i++) {
  452. var dj = Ext.Number.from(arr[i].get('dj'), 0); //单价
  453. var sl = Ext.Number.from(arr[i].get('sl'), 0); //数量
  454. var sum = dj * sl; //合计
  455. arr[i].set('amt', sum); //赋值表体数组arr第i行 amt字段的值
  456. // arr[i].get('amt'); //获取表体数组arr第i行 amt字段的值
  457. }
  458. //加载内容end
  459. }, 100);
  460. }
  461. {
  462. // [新增] [修改] [复制] 添加按钮 方法调用
  463. if (otype == $Otype.ADD || otype == $Otype.EDIT || otype == $Otype.COPY) {
  464. AddNewToolbar('p_form_design_deliver_d');
  465. }
  466. // [增行] [删行] 按钮 方法定义
  467. function AddNewToolbar(tablename) {
  468. var tb = Ext.getCmp(tablename + '_bar');
  469. tb.insert(1, {
  470. xtype: 'button',
  471. text: '增行',
  472. iconCls: 'icon-AddRow',
  473. handler: function () {
  474. var Mstform = Ext.getCmp('p_form_wm_m');
  475. if (Ext.isEmpty(Mstform.getItem('pc').getValue())) {
  476. Ext.Msg.alert('提示', '请先选择项目名称!');
  477. } else {
  478. var dgrid = Ext.getCmp(tablename);
  479. var data = dgrid.getSelectionModel();
  480. dgrid.getStore().insert(dgrid.getStore().getCount(), data);
  481. }
  482. }
  483. })
  484. tb.insert(2, {
  485. xtype: 'button',
  486. text: '删行',
  487. iconCls: 'icon-DeleteRow',
  488. handler: function () {
  489. var dgrid = Ext.getCmp(tablename);
  490. var dstore = dgrid.getStore();
  491. var data = dgrid.getSelectionModel().getSelection();
  492. if (data.length > 0) {
  493. var index = dstore.indexOf(data[0]);
  494. Ext.Array.each(data, function (record) {
  495. dstore.remove(record);
  496. });
  497. if (dstore.getCount() > 0) {
  498. if (index >= dstore.getCount()) {
  499. index--;
  500. }
  501. dgrid.getSelectionModel().select(index);
  502. }
  503. }
  504. }
  505. })
  506. }
  507. }
  508. { // 表体字段编辑事件触发
  509. dgrid.on('beforeedit', function(editor, e, eOpts) {
  510. var record = e.record;
  511. if (e.field == '' || e.field == '') {
  512. }
  513. });
  514. }
  515. { //表体增行删行事件
  516. //表体增行事件触发
  517. dstore.on('add', function(store, records, index, eOpts) {
  518. });
  519. //表体删行事件触发
  520. dstore.on('remove', function(store, records, index, eOpts) {
  521. });
  522. }
  523. { //表体增行并给字段赋值
  524. dstore.on('add', function(store, records, index, eOpts) {
  525. for (i = 0; i < records.length; i++) {
  526. records[i].set('Edt', '2022-01-06 13:18:55');
  527. }
  528. });
  529. }
  530. { //菜单栏按钮单击事件
  531. Toolbar.get('myadd').on('click', function() {
  532. });
  533. }
  534. { //虚拟点击事件
  535. mstform.getItem('lyzj').addListener('change', function() {
  536. dstore.removeAll(); //清除单据体内所有数据
  537. Toolbar.get('impgrid').fireEvent('click'); //虚拟鼠标单击事件
  538. });
  539. }
  540. { //按钮置灰
  541. Toolbar.get('imp').disable();
  542. Toolbar.get('imp').enable();
  543. //按钮隐藏
  544. Toolbar.get('imp').hide();
  545. }
  546. { //增加按钮
  547. //在最后放按钮
  548. var toolbar = Ext.getCmp('toolbar');
  549. yoolbar.add({ itemId: "myadd", text: "新增", width: this.itemWidth, iconCls: "icon-New" });
  550. //指定位置插入按钮
  551. var toolbar = Ext.getCmp('toolbar');
  552. toolbar.insert(3, { itemId: "myadd", text: "新增", width: this.itemWidth, iconCls: "icon-New" });
  553. //增加按钮组
  554. var buttomGroup = {
  555. xtype: 'splitbutton',
  556. text: '增行',
  557. menu: [
  558. { itemId: "htxz", text: "引用合同", iconCls: 'icon-New' },
  559. { itemId: "addrow", text: "直接增行", iconCls: 'icon-AddRow' }
  560. ],
  561. iconCls: 'icon-AddRow'
  562. };
  563. toolbar.insert(1, buttomGroup);
  564. }
  565. //==================================================================================================
  566. { //循环带出字段
  567. callServer('get_xmxx', [{
  568. 'phid': pc_phid
  569. }], function(res) {
  570. for (var rskey in res.record[0]) {
  571. if (rskey != 'project_name') {
  572. mstform.getItem(rskey).setValue(res.record[0][rskey]);
  573. BatchBindCombox([mstform.getItem(rskey)]);
  574. }
  575. }
  576. });
  577. }
  578. { //自定义表单SQL数据注册取值赋值
  579. callServer('bbhtje', [{
  580. 'ccy': pc
  581. }], function(res) {
  582. mstform.getItem('jbr').setValue(res.record[0].jbr);
  583. });
  584. }
  585. { //系统表单SQL功能扩展取值赋值
  586. execServer('bbhtje', {
  587. 'ccy': pc
  588. }, function(res) {
  589. mstform.getItem('jbr').setValue(res.data[0].jbr);
  590. });
  591. }
  592. //==================================================================================================
  593. {
  594. //按钮监听 表头控件设为只读
  595. mstform.getItem('textcol_1').userSetReadOnly(true); //true-只读 false-不只读
  596. //字段控件设置 表头控件设为必输
  597. mstform.getItem('textcol_1').userSetMustInput(true); // true-必输 false-不必输
  598. //表头控件设为可见
  599. mstform.getItem('textcol_1').setVisible(true); //true-可见 false-隐藏
  600. //表头控件设为显示掩码
  601. mstform.getItem('textcol_1').userSetMask();
  602. }
  603. { //表体控件设为只读
  604. dgrid.setReadOnlyCol('textcol_1', true); //帮助字段设置 字段名_name true-只读 false-不只读
  605. //表体控件设为必输
  606. dgrid.setMustInputCol('textcol_1', true); // 通用帮助加_name true-必输 false-不必输
  607. //表体控件设为隐藏
  608. dgrid.hideColumn('textcol_1', true); // 通用帮助加_name true-隐藏 false-可见
  609. //表体控件设为显示掩码
  610. dgrid.setMaskCol('textcol_1');
  611. }
  612. { //通用帮助改为单击打开
  613. //所有帮助选择字段,不可编辑
  614. var fields = mstform.getForm().getFields().items;
  615. for (var i = 0; i < fields.length; i++) {
  616. var fld_xtype_val = fields[i].xtype;
  617. var fld_key = fields[i].name;
  618. if (fld_xtype_val.indexOf("Help") != -1) {
  619. mstform.getItem(fld_key).setEditable(false);
  620. }
  621. }
  622. }
  623. {//自定义通用帮助
  624. // 定义通用帮助
  625. var help = Ext.create('Ext.ng.MultiRichHelp', {
  626. helpid: 'sjjd_help', // 帮助ID
  627. valueField: 'u_packet_segment', // 主键列
  628. displayField: 'u_packet_segment_no', // 名称列
  629. listFields: 'bams', // 输出列
  630. ORMMode: false,
  631. clientSqlFilter: 'pc = ' + Pc + ' AND type = ' + JDnr // 过滤条件
  632. })
  633. help.showHelp(); // 显示
  634. help.on('helpselected', function (obj) {
  635. var array = new Array();
  636. for (var i = 0; i < obj.data.length; i++) {
  637. var objItem = obj.data[i].data; // 选中数据插入数组
  638. // 判断是否有相同数据
  639. var isAdd = false;
  640. Ext.Array.each(dgrid.getStore().data.items, function (record) {
  641. if (record.get('u_bill_phid') == objItem.phid) {
  642. isAdd = true;
  643. }
  644. })
  645. if (dgrid.getStore().data.length <= 0 || !isAdd) {
  646. array.push({
  647. u_packet_segment_no: objItem.u_packet_segment_no, // 包案
  648. u_packet_segment: objItem.u_packet_segment, // 包案名称PHI
  649. u_packet_segment_name: objItem.bams, // 包案名称
  650. u_monomer: objItem.u_monomer, // 建筑物PHID
  651. u_monomer_name: objItem.jzw_name, // 建筑物
  652. u_design_parameter: objItem.u_design_parameter, // 设计参
  653. u_specification: objItem.u_specification, // 详细参数
  654. u_bill_phid: objItem.phid // 引用单据PHID
  655. })
  656. }
  657. }
  658. // 提示已存在数据
  659. if (array.length != obj.data.length) {
  660. Ext.Msg.alert('提示', '已存在相同数据!');
  661. }
  662. dstore.insert(dstore.getCount(), array); // 数据插入
  663. })
  664. }
  665. { //隐藏容器
  666. CntProjBalList1.hide(); //hide()为隐藏设置,可通用于字段、容器
  667. }
  668. //==================================================================================================
  669. { // 分组默认展开或折叠
  670. mstform.items.items["0"].collapse(); //“基本信息”默认关
  671. mstform.items.items["0"].expand(); //“基本信息”默认展开
  672. }
  673. // =================================================================================================
  674. { //容器控制设置
  675. $appinfo.logid; //获取当前登录信息
  676. $appinfo.logid //登录用户名;
  677. $appinfo.ocode //登录组织编号;
  678. $appinfo.orgID //登录组织phid;
  679. $appinfo.userID //登录用户phid;
  680. $appinfo.username //登录用户姓名;
  681. }
  682. {
  683. if (otype == $Otype.ADD) {
  684. mstform.getItem('yfdw').setValue($appinfo.orgID);
  685. }
  686. }
  687. { //获取值 获取当前登录用户phid
  688. $appinfo.userID;
  689. //获取当前登录用户姓名
  690. $appinfo.username;
  691. //获取当前登录组织编号
  692. $appinfo.ocode;
  693. //获取当前登录组织phid
  694. $appinfo.orgID;
  695. }
  696. { //获取表体的数据赋值给数组arr
  697. var arr = dgrid.getStore().getRange(0, dstore.getCount() - 1); // 0代表第一行 getCount() - 1表示最后一行
  698. arr[0].get('amt'); //获取表体数组arr第一行 amt 字段的值
  699. arr[0].set('amt', 999); //给表体数组arr 第一行 amt 字段赋值
  700. //获取表体总行数的数据(动态获取行数据以及赋值)
  701. var arr = dgrid.getStore().getRange(0, dstore.getCount() - 1); // 0代表第一行 getCount() - 1表示最后一行
  702. for (var i = 0; i < arr.length; i++) {
  703. arr[0].get('amt'); //获取表体数组arr第i行 amt 字段的值
  704. arr[0].set('amt', 999); //给表体数组arr 第i行 amt 字段赋值
  705. }
  706. }
  707. { //获取表头字段的值
  708. mstform.getItem('pc').getValue(); //getValue()代表控件的值
  709. }
  710. { //变量赋值
  711. var a = 100; //变量 a 赋值 100
  712. //表头字段赋值
  713. mstform.getItem('jzmj_1').setValue('');
  714. mstform.queryById('PhidYsfl').setValue('');
  715. }
  716. { //表体字段赋值
  717. record.set('amt', Ext.Number.from(record.get('prc'), 0));
  718. }
  719. { //表体帮助字段赋值
  720. record.set('jldw', 001);
  721. record.set('jldw_name', 个); //赋值给字段名编码值,及字段名_name 名称值
  722. }
  723. { //表头帮助字段代码转名称
  724. BatchBindCombox([mstform.getItem('user_xmlx')]); //可同时转换多个帮助字段用,隔开
  725. BatchBindCombox([mstform.getItem('user_xmlx'), mstform.getItem('user_xmmc')]); //可同时转换多个帮助字段用,隔开
  726. }
  727. { //字段值转换 将值转换为数值型
  728. Ext.Number.from(dstore.getAt(i).get('mbz_1'), 0);
  729. }
  730. { //弹出选择框
  731. Ext.MessageBox.confirm('提示', '是否删除单据体现有记录?', function(e) {
  732. //if判断 如果选择是的选项则执行,否则弹出选择框事件结束
  733. if (e == yes) {
  734. } else {
  735. }
  736. });
  737. }
  738. { //表头按钮触发超链接
  739. mstform.getItem('dwgc').el.down('input').on('dblclick', function() {
  740. var phid = mstform.getItem('dwgc').getValue();
  741. if (phid) {
  742. 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';
  743. $OpenTab('分包月招标计划', url);
  744. } else {
  745. Ext.Msg.alert('提示', '未找到对应单据!');
  746. }
  747. });
  748. }
  749. {
  750. //超链接
  751. dgrid.getColumn('u_xmbh').renderer = function (val, m) {
  752. return "<a href='javascript:void(0)' onclick='getData(" + m.record.data.phid + ")'>" + val + "</a>"
  753. }
  754. function getData(id) {
  755. var Mstform = Ext.getCmp('p_form_projectsetmanagement');
  756. var dgrid = Ext.getCmp('p_form_projectguanli');
  757. var dstore = dgrid.store;
  758. if(!Ext.isEmpty(id)){
  759. $OpenTab('项目详情-查看', C_ROOT + 'SUP/CustomPC/CustomPCEdit?otype=view&hastitle=1&issso=0&customBusCode=EFORM9000000043&id=' + id);
  760. }
  761. }
  762. }
  763. { // 表体按钮触发超链接
  764. //表体字段变化
  765. var dgrid = Ext.getCmp('CntPayD1');
  766. // 记录点击次数用 判断点击间隔
  767. var st = 0;
  768. var ed = 0;
  769. var times = Array();
  770. var num = 0;
  771. // 判断是否点击同一行数据
  772. var arr = new Array();
  773. dgrid.addListener('cellclick', function(editor, e) { //监听单据体编辑状态,edit-编辑,add-增行,remove-删行,cellclick-点击,update-值变化
  774. var record = e.record;
  775. //获取表体当前选中行
  776. var data = grid_f.getSelectionModel().getSelection();
  777. //获取当前选中行某个字段值
  778. var url = data[0].data.c_path;
  779. var same = data[0].internalId;
  780. // 获取当前时间戳
  781. var ti = new Date().getTime()
  782. times.push(ti);
  783. for (let index = 0; index < times.length; index++) {
  784. var te = times.length - 1;
  785. var ed = times[te];
  786. var st = times[te - 1];
  787. var timer = ed - st;
  788. }
  789. // 把行号插入数组 用于比较两次点击是否一行
  790. arr.push(same);
  791. for (let index = 0; index < arr.length; index++) {
  792. var le = arr.length - 1;
  793. var isSame = arr[le];
  794. var same = arr[le - 1];
  795. }
  796. num++;
  797. // 双击跳转超链接
  798. if (num % 2 == 0 && isSame == same && timer <= 500) {
  799. window.open('https://www.baidu.com/?tn=sitehao123&H123Tmp=nunew11&ts=637948800284735803');
  800. }
  801. });
  802. }
  803. { // 防止链接重复点击
  804. var isClick = true;
  805. $("button").on("click", function() {
  806. if (isClick) {
  807. isClick = false;
  808. //事件
  809. console.log('我被点击了');
  810. //事件end
  811. //定时器
  812. setTimeout(function() {
  813. isClick = true;
  814. }, 1000); //一秒内不能重复点击
  815. } else {
  816. Ext.Msg.alert('提示', '请勿过快点击');
  817. }
  818. });
  819. }
  820. { // 页面跳转
  821. mstform.getItem('BillNo').el.down('input').on('dblclick', function() {
  822. // 当前窗口打开
  823. location.href = 'https://www.baidu.com/?tn=sitehao123&H123Tmp=nunew11&ts=637948800284735803';
  824. // 新窗口打开
  825. window.open('https://www.baidu.com/?tn=sitehao123&H123Tmp=nunew11&ts=637948800284735803');
  826. });
  827. }
  828. { //单选框/复选框操作
  829. //单选框取值:
  830. mstform.getItem('rbcol_1_code').getChecked()[0].inputValue;
  831. //赋值:——i表示第几项
  832. mstform.getItem('rbcol_1_code').items.get(i).setValue(true);
  833. //单选/复选框隐藏(可见用show())
  834. mstform.getItem('rbcol_1_code').hide();
  835. }
  836. //--------------------------------------------------------------
  837. { //隐藏tab页
  838. var tabPanel = Ext.getCmp('tabPanel');
  839. tabPanel.hide();
  840. }
  841. { //tab切换触发
  842. var tabPanel = Ext.getCmp('tabPanel'); //TAB页
  843. //Tab页2
  844. var changetab = tabPanel.getComponent('p_form0000700020_d1grid');
  845. tabPanel.setActiveTab(changetab);
  846. //切回Tab页1
  847. var cntintab = tabPanel.getComponent('p_form0000700020_dgrid');
  848. tabPanel.setActiveTab(cntintab);
  849. tabPanel.on('tabchange', function(tabchange, newCard, oldCard, eOpts) {
  850. if (newCard.id == 'cntpaydChgtab') {
  851. var dgrid = Ext.getCmp('CntPayDChg7');
  852. dgrid.addListener('edit', function(editor, e) {
  853. if (e.originalValue == e.value) {
  854. return;
  855. }
  856. if (e.field == 'AppAmtVatFc') {
  857. var record = e.record;
  858. record.set('user_spbbje', Ext.Number.from(record.get('AppAmtVatFc'), 0) * Ext.Number.from(record.get('ExchRate'), 0));
  859. }
  860. });
  861. }
  862. });
  863. }
  864. //-------------------------------------------------------------------
  865. { //打开帮助链接
  866. var url = C_ROOT + 'SUP/NG0001pform0000000117Edit?otype=add&issso=' + IsSso;
  867. url += '&treeorgid=' + Ext.getCmp('ocode').getValue();
  868. url += '&treeprojid=' + Ext.getCmp('pc').getValue();
  869. $OpenTab('开工报告-新增', url);
  870. }
  871. { //保存前检测 系统表单可用
  872. var startdt = mstform.queryById('StartDate').getValue();
  873. var enddt = mstform.queryById('EndDate').getValue();
  874. if (startdt == null || enddt == null) {
  875. mstform.queryById('LimitTime').setValue(0);
  876. return;
  877. }
  878. }
  879. { //时间转换
  880. var sd = Date.parse(startdt);
  881. var ed = Date.parse(enddt);
  882. var date = (ed - sd) / 1000 / 3600 / 24;
  883. date = date + 1;
  884. }
  885. { //系统表单表体方案编写表体帮助字段监听
  886. dgrid.getColumn('PhidCbs_EXName').getEditor().addListener('helpselected', function() {
  887. });
  888. }
  889. { //单据检测事件 单据编辑页面保存前检测
  890. function beforeSaveEdit() {
  891. var mstform = Ext.getCmp('表明');
  892. var flag = mstform.getItem('asr_flg').getValue();
  893. if (flag) {
  894. return true;
  895. } else {
  896. NGMsg.Info('请先上传附件');
  897. return false
  898. }
  899. }
  900. }
  901. { //保存检测事件
  902. function beforeSaveEdit() {}
  903. }
  904. { //单据列表页面删除前检测
  905. function beforeDeleteList() {}
  906. }
  907. { //单据编辑页面审核前检测
  908. function beforeVerifyEdit() {}
  909. }
  910. { //单据列表页面审核前检测
  911. function beforeVerifyList() {}
  912. }
  913. { //单据编辑页面去审核前检测
  914. function beforeUnVerifyEdit() {}
  915. }
  916. { //单据列表页面去审核前检测
  917. function beforeUnVerifyList() {}
  918. }
  919. { //单据编辑页面保存更新数据
  920. function getSaveDataEdit(type) {
  921. if (type == 'Save') {}
  922. }
  923. }
  924. { //单据更新事件 单据编辑页面审核更新数据
  925. function getSaveDataEdit(type) {
  926. if (type == 'Verify') {}
  927. }
  928. }
  929. { //单据编辑页面去审核更新数据
  930. function getSaveDataEdit(type) {
  931. if (type == 'UnVerify') {}
  932. }
  933. }
  934. { //单据列表页面审核更新数据
  935. function getSaveDataList(type) {
  936. if (type == 'Verify') {}
  937. }
  938. }
  939. { //单据列表页面去审核更新数据
  940. function getSaveDataList(type) {
  941. if (type == 'UnVerify') {}
  942. }
  943. }
  944. { //工作流经过审批节点更新数据
  945. function getSaveDataEdit(type) {
  946. if (type == 'Approve') {}
  947. }
  948. }
  949. {
  950. // 百分数四舍五入后失去精度处理
  951. function beforeSaveEdit() {
  952. var mstform = Ext.getCmp('p_form0000700011_m');
  953. var yqlrl = mstform.getItem('yqlrl').getValue();
  954. var lrl = parseFloat(yqlrl);
  955. mstform.getItem('yqlrl').setValue(lrl);
  956. if (1 == 1) {
  957. return true;
  958. } else {
  959. return false
  960. }
  961. }
  962. //数据库里取数,出现四舍五入的处理
  963. execServer('zbjbl', {
  964. 'htbm': phidcnt_val
  965. }, function(res1) {
  966. if (res1.count > 0) {
  967. var bzjbl1 = parseFloat(res1.data[0].bp);
  968. var bzjbl2 = (Math.round(bzjbl1 * 100) / 100).toFixed(2);
  969. bzjbl += bzjbl2;
  970. }
  971. });
  972. }
  973. //-----------------------------------------------------------------------------------------------------------
  974. //数字金额大写转换(可以处理整数,小数,负数)
  975. //金额转大写
  976. mstform.getItem('atm').addListener('change', function() {
  977. var atm = mstform.getItem('atm').getValue();
  978. mstform.getItem('at').setValue(dealBigMoney(atm));
  979. });
  980. function dealBigMoney(n) {
  981. var fraction = ['角', '分'];
  982. var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
  983. var unit = [
  984. ['元', '万', '亿'],
  985. ['', '拾', '佰', '仟']
  986. ];
  987. var head = n < 0 ? '欠' : '';
  988. n = Math.abs(n);
  989. var s = '';
  990. for (var i = 0; i < fraction.length; i++) {
  991. s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
  992. }
  993. s = s || '整';
  994. n = Math.floor(n);
  995. for (var i = 0; i < unit[0].length && n > 0; i++) {
  996. var p = '';
  997. for (var j = 0; j < unit[1].length && n > 0; j++) {
  998. p = digit[n % 10] + unit[1][j] + p;
  999. n = Math.floor(n / 10);
  1000. }
  1001. s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
  1002. }
  1003. return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整');
  1004. }
  1005. //--------------------------------------------------------------------------------------------------------
  1006. format(e.value, 'yyyy-MM-dd') // 调用
  1007. // 转换时间格式
  1008. function format(time, format) {
  1009. var t = new Date(time);
  1010. var tf = function(i) {
  1011. return (i < 10 ? '0' : '') + i
  1012. };
  1013. return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a) {
  1014. switch (a) {
  1015. case 'yyyy':
  1016. return tf(t.getFullYear());
  1017. break;
  1018. case 'MM':
  1019. return tf(t.getMonth() + 1);
  1020. break;
  1021. case 'mm':
  1022. return tf(t.getMinutes());
  1023. break;
  1024. case 'dd':
  1025. return tf(t.getDate());
  1026. break;
  1027. case 'HH':
  1028. return tf(t.getHours());
  1029. break;
  1030. case 'ss':
  1031. return tf(t.getSeconds());
  1032. break;
  1033. }
  1034. })
  1035. }
  1036. //-----------------------------------------------------
  1037. //附件监听
  1038. function attachReturnExt(key, value) {
  1039. var Mstform = Ext.getCmp('p_form_pre_tb_m');
  1040. if (key == 'closeNG3Container') {
  1041. var res = Ext.decode(value);
  1042. var fj_flg = 0;
  1043. if (res.length > 0) {
  1044. for (i = 0; i < res.length; i++) {
  1045. if (res[i].asr_name.indexOf('TB报告') != -1) {
  1046. fj_flg = fj_flg + 1
  1047. }
  1048. };
  1049. }
  1050. //console.log(fj_flg);
  1051. Mstform.getItem('u_tb_report').setValue(fj_flg);
  1052. } else {
  1053. return;
  1054. }
  1055. }
  1056. //表体字段变色(改变具体某些字段)
  1057. function changeSomeGridColor(mstform, Toolbar, dgrid, colors, type) {//mstform表头,Toolbar菜单栏,dgrid表体, colors颜色, type改变字体还是背景textcolor字体 bgcolor背景
  1058. //颜色不生效可以试试RGB类型的颜色例如rgb(255, 190, 200)
  1059. var dstore = dgrid.store;
  1060. //数据加载完成触发
  1061. mstform.on('dataready', function () {
  1062. changeSomeColor(dgrid, colors, type);
  1063. //改变颜色,并解决点击通用帮助时颜色被清除
  1064. var statusArr = ['edit', 'add', 'remove', 'cellclick', 'update', 'change'];///定义监听单据体编辑状态数组
  1065. for (var j = 0; j < statusArr.length; j++) {
  1066. dgrid.addListener(statusArr[j], function (editor, e) { //监听单据体编辑状态,edit-编辑,add-增行,remove-删行,cellclick-点击,update-值变化
  1067. changeSomeColor(dgrid, colors, type);//dgrid表体, colors颜色, type改变字体还是背景
  1068. });
  1069. }
  1070. var statusArr_1 = ['add', 'remove'];///定义监听单据体编辑状态数组
  1071. for (var k = 0; k < statusArr_1.length; k++) {//监听单据体编辑状态add-增行,remove-删行
  1072. dstore.on(statusArr_1[k], function (store, records, index, eOpts) {
  1073. changeSomeColor(dgrid, colors, type);//dgrid表体, colors颜色, type改变字体还是背景
  1074. });
  1075. }
  1076. Toolbar.get('deleterow').on('click', function () {
  1077. changeSomeColor(dgrid, colors, type);//dgrid表体, colors颜色, type改变字体还是背景
  1078. });
  1079. });
  1080. function changeSomeColor(dgrid, colors, type) {
  1081. var gridCount = dgrid.getStore().getRange(0, dstore.getCount() - 1);
  1082. for (var i = 0; i < gridCount.length; i++) {
  1083. //判断变色条件(根据业务需求变更)
  1084. //var flg = gridCount[i].get('amt');
  1085. var flg = '1';
  1086. if (flg == '1') {
  1087. //旧方法已弃用
  1088. //var trs = document.getElementsByClassName('x-grid-data-row');
  1089. // for (var h = 0; h < aa; h++) {
  1090. // trs[i].children[13].children[0].style.backgroundColor = 'rgb(50, 205, 50)';
  1091. // trs[i].children[16].children[0].style.backgroundColor = 'rgb(255, 190, 200)';
  1092. // // trs[i].style.backgroundColor = "rgb(255, 190, 200)";
  1093. // }
  1094. //定义元素每行的字段元素
  1095. var corlorChange = document.getElementById(dgrid.view.el.id + '-record-' + dstore.data.items[i].internalId).getElementsByTagName("div");
  1096. if (type == 'textcolor') {
  1097. //改变字体颜色
  1098. corlorChange[3].style.color = colors;//具体第几个字段需要变色(根据需求进行变更)
  1099. corlorChange[7].style.color = colors;//具体第几个字段需要变色(根据需求进行变更)
  1100. } else if (type = 'bgcolor') {
  1101. //改变背景颜色
  1102. corlorChange[7].style.backgroundColor = colors;//具体第几个字段需要变色(根据需求进行变更)
  1103. corlorChange[10].style.backgroundColor = colors;//具体第几个字段需要变色(根据需求进行变更)
  1104. }
  1105. }
  1106. }
  1107. }
  1108. }
  1109. //表体字段变色(改变整行字段)------------st
  1110. function changeAllGridColor(mstform, Toolbar, dgrid, colors, type) {//mstform表头,Toolbar菜单栏,dgrid表体, colors颜色, type改变字体还是背景textcolor字体 bgcolor背景
  1111. //颜色不生效可以试试RGB类型的颜色例如rgb(255, 190, 200)
  1112. var dstore = dgrid.store;
  1113. //数据加载完成触发
  1114. mstform.on('dataready', function () {
  1115. changeAllColor(dgrid, colors, type);
  1116. //改变颜色,并解决点击通用帮助时颜色被清除
  1117. var statusArr = ['edit', 'add', 'remove', 'cellclick', 'update', 'change'];///定义监听单据体编辑状态数组
  1118. for (var j = 0; j < statusArr.length; j++) {
  1119. dgrid.addListener(statusArr[j], function (editor, e) { //监听单据体编辑状态,edit-编辑,add-增行,remove-删行,cellclick-点击,update-值变化
  1120. changeAllColor(dgrid, colors, type);//dgrid表体, colors颜色, type改变字体还是背景
  1121. });
  1122. }
  1123. var statusArr_1 = ['add', 'remove'];///定义监听单据体编辑状态数组
  1124. for (var k = 0; k < statusArr_1.length; k++) {//监听单据体编辑状态add-增行,remove-删行
  1125. dstore.on(statusArr_1[k], function (store, records, index, eOpts) {
  1126. changeAllColor(dgrid, colors, type);//dgrid表体, colors颜色, type改变字体还是背景
  1127. });
  1128. }
  1129. Toolbar.get('deleterow').on('click', function () {
  1130. changeAllColor(dgrid, colors, type);//dgrid表体, colors颜色, type改变字体还是背景
  1131. });
  1132. });
  1133. function changeAllColor(dgrid, colors, type) {
  1134. for (var i = 0; i < dstore.getCount(); i++) {
  1135. 判断变色条件(根据业务需求变更)
  1136. //var flg = dstore.getAt(i).get('u_flg');
  1137. var flg = '1';
  1138. if (flg == '1') {
  1139. //定义元素每行的字段元素
  1140. var corlorChange = document.getElementById(dgrid.view.el.id + '-record-' + dstore.data.items[i].internalId).getElementsByTagName("div");
  1141. //定义每行有多少字段
  1142. var count = document.getElementById(dgrid.view.el.id + '-record-' + dstore.data.items[i].internalId).getElementsByTagName("div").length;
  1143. if (type == 'textcolor') {
  1144. //改变字体颜色
  1145. for (var h = 0; h < count; h++) {
  1146. corlorChange[h].style.color = colors;
  1147. }
  1148. } else if (type = 'bgcolor') {
  1149. //改变背景颜色
  1150. for (var h = 0; h < count; h++) {
  1151. corlorChange[h].style.backgroundColor = colors;
  1152. }
  1153. }
  1154. }
  1155. }
  1156. }
  1157. }
  1158. //表体字段变色(改变整行字段)------------end
  1159. //----------------
  1160. //java的url链接拆分
  1161. //String params = url.substring(url.indexOf("?") + 1);
  1162. //Map<String, String> split = Splitter.on("&").withKeyValueSeparator("=").split(params);
  1163. //String wfpiid = split.get("wfpiid");
  1164. //js批量生成json数据 参考网址https://blog.csdn.net/cdming/article/details/130051542
  1165. var YearSelect = {};
  1166. var Year = 2014;
  1167. var DateOption;
  1168. for (var i = Year; i < Year + 12; i++) {
  1169. DateOption = { 'Year': i, 'Month': i - Year + 1 };
  1170. //alert(DateOption.Year)
  1171. YearSelect[i] = DateOption;
  1172. }
  1173. //屏蔽元素的点击事件,使元素变为只读 参考网址:http://www.mufengzs.cn/post/24036.html
  1174. document.getElementById('webEditorPanel-body').style.pointerEvents = 'none';
  1175. //加减乘除方法 --浮点型字段类型数据计算后可能失真
  1176. function GcDiv(arg1, arg2) {
  1177. if (arg2 == 0) return arg2;
  1178. var t1 = 0,
  1179. t2 = 0,
  1180. r1,
  1181. r2;
  1182. try {
  1183. t1 = arg1.toString().split(".")[1].length;
  1184. } catch (e) {
  1185. }
  1186. try {
  1187. t2 = arg2.toString().split(".")[1].length;
  1188. } catch (e) {
  1189. }
  1190. // with (Math) {
  1191. r1 = Number(arg1 == null ? 0 : arg1.toString().replace(".", ""));
  1192. r2 = Number(arg2 == null ? 1 : arg2.toString().replace(".", ""));
  1193. return r1 / r2 * Math.pow(10, t2 - t1);
  1194. // }
  1195. }
  1196. function GcMul(arg1, arg2) {
  1197. var m = 0,
  1198. s1 = arg1 == null ? "0" : arg1.toString(),
  1199. s2 = arg2 == null ? "0" : arg2.toString();
  1200. try {
  1201. m += s1.split(".")[1].length;
  1202. } catch (e) {
  1203. }
  1204. try {
  1205. m += s2.split(".")[1].length;
  1206. } catch (e) {
  1207. }
  1208. return (
  1209. Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
  1210. );
  1211. }
  1212. /**
  1213. ** 加法函数,用来得到精确的加法结果
  1214. ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
  1215. ** 调用:GcAdd(arg1,arg2)
  1216. ** 返回值:arg1加上arg2的精确结果
  1217. **/
  1218. function GcAdd(arg1, arg2) {
  1219. var r1, r2, m, c;
  1220. try {
  1221. r1 = arg1.toString().split(".")[1].length;
  1222. } catch (e) {
  1223. r1 = 0;
  1224. }
  1225. try {
  1226. r2 = arg2.toString().split(".")[1].length;
  1227. } catch (e) {
  1228. r2 = 0;
  1229. }
  1230. c = Math.abs(r1 - r2);
  1231. m = Math.pow(10, Math.max(r1, r2));
  1232. if (c > 0) {
  1233. var cm = Math.pow(10, c);
  1234. if (r1 > r2) {
  1235. arg1 = Number(arg1.toString().replace(".", ""));
  1236. arg2 = Number(arg2.toString().replace(".", "")) * cm;
  1237. } else {
  1238. arg1 = Number(arg1.toString().replace(".", "")) * cm;
  1239. arg2 = Number(arg2.toString().replace(".", ""));
  1240. }
  1241. } else {
  1242. arg1 = Number(arg1 == null ? 0 : arg1.toString().replace(".", ""));
  1243. arg2 = Number(arg2 == null ? 0 : arg2.toString().replace(".", ""));
  1244. }
  1245. return (arg1 + arg2) / m;
  1246. }
  1247. /**
  1248. ** 减法函数,用来得到精确的减法结果
  1249. ** 说明:javascript的减法结果会有误差,在两个浮点数相减的时候会比较明显。这个函数返回较为精确的减法结果。
  1250. ** 调用:GcSub(arg1,arg2)
  1251. ** 返回值:arg1减去arg2的精确结果
  1252. **/
  1253. function GcSub(arg1, arg2) {
  1254. var r1, r2, m, n;
  1255. try {
  1256. r1 = arg1.toString().split(".")[1].length;
  1257. } catch (e) {
  1258. r1 = 0;
  1259. }
  1260. try {
  1261. r2 = arg2.toString().split(".")[1].length;
  1262. } catch (e) {
  1263. r2 = 0;
  1264. }
  1265. m = Math.pow(10, Math.max(r1, r2)); //动态控制精度长度
  1266. n = r1 >= r2 ? r1 : r2;
  1267. return Number((((arg1 == null ? 0 : arg1) * m - (arg2 == null ? 0 : arg2) * m) / m).toFixed(n));
  1268. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/74338
推荐阅读
相关标签
  

闽ICP备14008679号