ChildForm.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803
  1. /**
  2. * Created by zhouy on 2018/10/18.
  3. */
  4. Ext.define('KitchenSink.view.binding.ChildForm', {
  5. extend: 'Ext.window.Window',
  6. xtype: 'document-kind-childwin',
  7. cls:'x-window-dbfind',
  8. layout: 'fit',
  9. modal: true,
  10. width: 500,
  11. //工具类
  12. height: 280,
  13. listeners:{
  14. show:function(w){
  15. //自动适应窗口
  16. var items = w.down('form').items.items;
  17. var count = 0;
  18. var codeField;
  19. Ext.Array.each(items,function(item) {
  20. if(item.xtype!='hidden'){
  21. count++;
  22. }
  23. if(item.autoCode){
  24. codeField = item.name
  25. }
  26. });
  27. if(count!=0&&count<4){
  28. w.setHeight(114+40*count)
  29. }
  30. if(w.record){
  31. w.down('form').loadRecord(w.record);
  32. }else{
  33. //判断是否有code字段
  34. if(codeField){
  35. w.setLoading(true);
  36. //取后台编号
  37. var caller = w.caller || w._parent.caller;
  38. saas.util.BaseUtil.request({
  39. url: '/api/commons/number/getMaxnumber',
  40. headers: {
  41. "Content-Type": 'application/x-www-form-urlencoded;charset=UTF-8'
  42. },
  43. params: {
  44. caller:caller
  45. },
  46. method: 'POST',
  47. }).then(function(res) {
  48. w.setLoading(false);
  49. if(res.success){
  50. w.down('[name='+codeField+']').setValue(res.data);
  51. }else {
  52. saas.util.BaseUtil.showErrorToast(res.message);
  53. }
  54. }).catch(function(res) {
  55. saas.util.BaseUtil.showErrorToast(res.message);
  56. w.setLoading(true);
  57. })
  58. }
  59. }
  60. }
  61. },
  62. initComponent:function(){
  63. var me=this;
  64. Ext.apply(me,{
  65. items:me.setFormItems()
  66. });
  67. me.callParent();
  68. },
  69. etc:{
  70. customerkind:{
  71. items:[{
  72. xtype:'hidden',
  73. name:'id'
  74. },{
  75. xtype:'textfield',
  76. name:'ck_name',
  77. allowBlank:false,
  78. fieldLabel:'客户类型',
  79. maxLength: 20
  80. }]
  81. },
  82. vendorkind:{
  83. items:[{
  84. xtype:'hidden',
  85. name:'id'
  86. },{
  87. xtype:'textfield',
  88. name:'vk_name',
  89. allowBlank:false,
  90. fieldLabel:'供应商类型',
  91. maxLength: 20
  92. }]
  93. },
  94. productkind:{
  95. items:[{
  96. xtype:'hidden',
  97. name:'id'
  98. },{
  99. xtype:'textfield',
  100. name:'pt_name',
  101. allowBlank:false,
  102. fieldLabel:'物料类型',
  103. maxLength: 20
  104. }]
  105. },
  106. personpower:{
  107. items:[{
  108. xtype:'hidden',
  109. name:'id'
  110. },{
  111. xtype:'textfield',
  112. name:'name',
  113. allowBlank:false,
  114. fieldLabel:'角色名称',
  115. maxLength: 20
  116. },{
  117. xtype:'textfield',
  118. name:'description',
  119. allowBlank:false,
  120. fieldLabel:'角色描述',
  121. maxLength: 20
  122. },{
  123. xtype:'textfield',
  124. hidden:true,
  125. name:'code',
  126. allowBlank:true,
  127. fieldLabel:'角色编号',
  128. maxLength: 20
  129. }]
  130. },
  131. bankinformation:{
  132. items:[{
  133. xtype:'hidden',
  134. name:'id'
  135. },{
  136. xtype:'textfield',
  137. name:'bk_bankcode',
  138. allowBlank:false,
  139. fieldLabel:'账户编号',
  140. autoCode:true,
  141. maxLength: 20
  142. },{
  143. xtype:'textfield',
  144. name:'bk_bankname',
  145. allowBlank:false,
  146. fieldLabel:'账户名称',
  147. maxLength: 20
  148. },{
  149. xtype:'numberfield',
  150. name:'bk_beginamount',
  151. allowBlank:false,
  152. fieldLabel:'期初金额',
  153. hideTrigger: true,
  154. mouseWheelEnabled: false,
  155. minValue: 0,
  156. maxLength:15,
  157. decimalPrecision:2,
  158. enforceMaxLength:true
  159. },
  160. // {
  161. // xtype:'numberfield',
  162. // name:'bk_thisamount',
  163. // allowBlank:true,
  164. // fieldLabel:'当前余额',
  165. // hideTrigger: true,
  166. // mouseWheelEnabled: false,
  167. // beforeLabelTextTpl:'',
  168. // minValue: 0
  169. // }
  170. // ,
  171. {
  172. xtype:'combo',
  173. name:'bk_type',
  174. allowBlank:false,
  175. editable:false,
  176. fieldLabel:'账户类别',
  177. store: [
  178. '现金',
  179. '银行'
  180. ]
  181. },{
  182. xtype:'datefield',
  183. name:'bk_date',
  184. fieldLabel:'建账日期',
  185. format:'Y-m-d',
  186. listeners:{
  187. beforerender:function(d){
  188. d.setValue(new Date())
  189. }
  190. }
  191. }, {
  192. xtype:'textfield',
  193. name:'bk_remark',
  194. allowBlank:true,
  195. fieldLabel:'备注',
  196. beforeLabelTextTpl:''
  197. }]
  198. },
  199. productbrand:{
  200. items:[{
  201. xtype:'hidden',
  202. name:'id'
  203. },{
  204. xtype:'textfield',
  205. name:'pb_name',
  206. allowBlank:false,
  207. fieldLabel:'物料品牌',
  208. maxLength: 20
  209. }]
  210. },
  211. productunit:{
  212. items:[{
  213. xtype:'hidden',
  214. name:'id'
  215. },{
  216. xtype:'textfield',
  217. name:'pu_name',
  218. allowBlank:false,
  219. fieldLabel:'计量单位',
  220. maxLength: 20
  221. }]
  222. },
  223. inoutkind:{
  224. items:[{
  225. xtype:'hidden',
  226. name:'id'
  227. },{
  228. xtype:'textfield',
  229. name:'ft_name',
  230. allowBlank:false,
  231. relativeField:'ord_type',
  232. fieldLabel:'收支名称',
  233. maxLength: 20
  234. },{
  235. xtype:'combo',
  236. name:'ft_kind',
  237. allowBlank:false,
  238. fieldLabel:'收支类型',
  239. hideTrigger : false,
  240. maxLength : 100.0,
  241. minValue : null,
  242. positiveNum : false,
  243. queryMode : "local",
  244. valueField : "value",
  245. xtype : "combo",
  246. editable:false,
  247. displayField : "display",
  248. store:{
  249. fields: ['display', 'value'],
  250. data : [
  251. {"display":"收入", "value":'收入'},
  252. {"display":"支出", "value":'支出'}
  253. ]
  254. }
  255. }]
  256. },
  257. address:{
  258. items:[{
  259. xtype:'hidden',
  260. name:'id'
  261. },{
  262. xtype:'textfield',
  263. name:'ad_address',
  264. allowBlank:false,
  265. fieldLabel:'地址详情',
  266. maxLength: 200
  267. }]
  268. },
  269. accountinformation:{
  270. items:[{
  271. xtype:'hidden',
  272. name:'accountId',
  273. hidden:true,
  274. },{
  275. xtype:'textfield',
  276. fieldLabel: '真实姓名',
  277. name: 'realname',
  278. readOnly:true,
  279. editable:false,
  280. allowBlank:true,
  281. maxLength: 30,
  282. beforeLabelTextTpl: "",
  283. },{
  284. xtype:'datamulticombo',
  285. dataUrl:'/api/account/role/list',
  286. fieldLabel: '关联角色',
  287. name: 'roleNames',
  288. allowBlank:true,
  289. maxLength: 20,
  290. beforeLabelTextTpl: "",
  291. },{
  292. xtype:'textfield',
  293. fieldLabel: '联系电话',
  294. name: 'mobile',
  295. readOnly:true,
  296. editable:false,
  297. allowBlank:true,
  298. maxLength: 30,
  299. beforeLabelTextTpl: "",
  300. },{
  301. xtype:'textfield',
  302. fieldLabel: '邮箱',
  303. name: 'email',
  304. readOnly:true,
  305. editable:false,
  306. allowBlank:true,
  307. maxLength: 30,
  308. beforeLabelTextTpl: "",
  309. }]
  310. },
  311. accountadd:{
  312. items:[{
  313. xtype:'textfield',
  314. fieldLabel: '联系号码',
  315. name: 'mobile',
  316. hideTrigger:true,
  317. allowBlank:false,
  318. maxLength: 30,
  319. regex:/^1(3|4|5|7|8)\d{9}$/,
  320. regexText:'请输入正确的手机号码',
  321. listeners:{
  322. change:function(f,a,b){
  323. if(a==''){
  324. f._lastCheckValue = ''
  325. }
  326. },
  327. blur:function(f,a,b,c){
  328. var form = f.ownerCt;
  329. if(f.value&&f.value!=''&&f.isValid()&&f._lastCheckValue!=f.value){
  330. f._lastCheckValue = f.value;
  331. form.setLoading(true);
  332. Ext.Ajax.request({
  333. url: '/api/account/account/checkMobile?mobile='+f.value,
  334. method: 'GET',
  335. headers:{
  336. 'Access-Control-Allow-Origin': '*',
  337. "Content-Type": 'application/json;charset=UTF-8',
  338. },
  339. success: function (response) {
  340. form.setLoading(false);
  341. var localJson = Ext.decode(response.responseText);
  342. if(localJson.success){
  343. if(localJson.data.hasRegister){
  344. saas.util.BaseUtil.showSuccessToast('校验成功:手机号已在优软云注册');
  345. }else{
  346. saas.util.BaseUtil.showErrorToast('校验失败:手机号未在优软云注册');
  347. f.setValue('');
  348. }
  349. }else{
  350. saas.util.BaseUtil.showErrorToast('校验失败:'+localJson.message);
  351. f.setValue('');
  352. }
  353. },
  354. failure: function (response) {
  355. if(response.responseText){
  356. var localJson = Ext.decode(response.responseText);
  357. saas.util.BaseUtil.showErrorToast('校验失败:'+localJson.message);
  358. f.setValue('');
  359. }else{
  360. saas.util.BaseUtil.showErrorToast('手机号校验接口连接超时');
  361. f.setValue('');
  362. }
  363. }
  364. });
  365. }
  366. }
  367. }
  368. },{
  369. xtype:'textfield',
  370. fieldLabel: '真实姓名',
  371. name: 'realname',
  372. regex:/^[\u4e00-\u9fa5]+$/,
  373. regexText:'请输入汉字',
  374. allowBlank:false,
  375. maxLength: 30,
  376. },{
  377. xtype:'textfield',
  378. fieldLabel: '邮箱',
  379. name: 'email',
  380. allowBlank:true,
  381. beforeLabelTextTpl: "",
  382. regex:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
  383. regexText:'请输入正确的邮箱',
  384. maxLength: 30,
  385. listeners:{
  386. blur:function(f,a,b,c){
  387. var form = f.ownerCt;
  388. if(f.value&&f.value!=''&&f.isValid()&&f._lastCheckValue!=f.value){
  389. form.setLoading(true);
  390. f._lastCheckValue = f.value
  391. Ext.Ajax.request({
  392. url: '/api/account/account/checkEmail?email='+f.value,
  393. method: 'GET',
  394. headers:{
  395. 'Access-Control-Allow-Origin': '*',
  396. "Content-Type": 'application/json;charset=UTF-8'
  397. },
  398. success: function (response) {
  399. form.setLoading(false);
  400. var localJson = Ext.decode(response.responseText);
  401. if(localJson.success){
  402. if(!localJson.data){
  403. saas.util.BaseUtil.showSuccessToast('校验成功:邮箱未注册');
  404. }else{
  405. saas.util.BaseUtil.showErrorToast('校验失败:该邮箱已被注册');
  406. f.setValue('');
  407. }
  408. }else{
  409. saas.util.BaseUtil.showErrorToast('校验失败:'+localJson.message);
  410. }
  411. },
  412. failure: function (response) {
  413. if(response.responseText){
  414. var localJson = Ext.decode(response.responseText);
  415. saas.util.BaseUtil.showErrorToast('校验失败:'+localJson.message);
  416. }else{
  417. saas.util.BaseUtil.showErrorToast('邮箱校验接口连接超时');
  418. }
  419. }
  420. });
  421. }
  422. }
  423. }
  424. },{
  425. xtype:'datamulticombo',
  426. dataUrl:'/api/account/role/list',
  427. fieldLabel: '关联角色',
  428. name: 'roleIds',
  429. allowBlank:false,
  430. maxLength: 30,
  431. }]
  432. },
  433. warehouse:{
  434. items:[{
  435. xtype:'hidden',
  436. name:'id'
  437. },{
  438. xtype:'textfield',
  439. fieldLabel: '仓库编号',
  440. name: 'wh_code',
  441. autoCode:true,
  442. allowBlank:false,
  443. maxLength: 20
  444. },{
  445. xtype:'textfield',
  446. fieldLabel: '仓库名称',
  447. name: 'wh_description',
  448. allowBlank:false,
  449. maxLength: 20
  450. },{
  451. xtype:'combo',
  452. fieldLabel: '仓库类型',
  453. name: 'wh_type',
  454. allowBlank:false,
  455. displayField : "display",
  456. editable:false,
  457. hideTrigger : false,
  458. maxLength : 100.0,
  459. minValue : null,
  460. positiveNum : false,
  461. queryMode : "local",
  462. valueField : "value",
  463. store:{
  464. fields: ['display', 'value'],
  465. data : [
  466. {"display":"良品仓", "value":'良品仓'},
  467. {"display":"不良品仓", "value":'不良品仓'}
  468. ]
  469. }
  470. },{
  471. readOnly:true,
  472. xtype:'textfield',
  473. fieldLabel: '仓库状态',
  474. name: 'wh_status',
  475. value:'已启用',
  476. maxLength: 20
  477. },{
  478. xtype:'hidden',
  479. fieldLabel: '仓库状态码',
  480. name: 'wh_statuscode',
  481. value:'ENABLE'
  482. }]
  483. },
  484. employee:{
  485. items:[{
  486. xtype:'hidden',
  487. name:'id'
  488. },{
  489. xtype:'textfield',
  490. fieldLabel: '人员编号',
  491. autoCode:true,
  492. name: 'em_code',
  493. allowBlank:false,
  494. maxLength: 20
  495. },{
  496. xtype:'textfield',
  497. fieldLabel: '人员名称',
  498. name: 'em_name',
  499. allowBlank:false,
  500. maxLength: 20
  501. },{
  502. xtype:'textfield',
  503. fieldLabel: '联系电话',
  504. name: 'em_mobile',
  505. allowBlank:false,
  506. maxLength: 20
  507. },{
  508. xtype:'textfield',
  509. fieldLabel: '邮箱',
  510. name: 'em_email',
  511. allowBlank:true,
  512. beforeLabelTextTpl: '',
  513. maxLength: 20
  514. },{
  515. value:'正式',
  516. xtype:'combo',
  517. fieldLabel: '人员状态',
  518. name: 'em_class',
  519. allowBlank:false,
  520. displayField : "display",
  521. editable:false,
  522. hideTrigger : false,
  523. maxLength : 100.0,
  524. minValue : null,
  525. positiveNum : false,
  526. queryMode : "local",
  527. valueField : "value",
  528. store:{
  529. fields: ['display', 'value'],
  530. data : [
  531. {"display":"正式", "value":'正式'},
  532. {"display":"离职", "value":'离职'}
  533. ]
  534. }
  535. },]
  536. },
  537. maxnumbers:{
  538. items:[{
  539. xtype:'hidden',
  540. name:'id'
  541. },{
  542. xtype:'textfield',
  543. fieldLabel: '单据名称',
  544. name: 'mn_name',
  545. allowBlank:false,
  546. editable:false,
  547. readOnly:true,
  548. maxLength: 20
  549. },{
  550. xtype:'textfield',
  551. fieldLabel: '单据前缀',
  552. name: 'mn_leadcode',
  553. beforeLabelTextTpl: '',
  554. allowBlank:true,
  555. maxLength: 20
  556. },{
  557. xtype:'combo',
  558. fieldLabel: '单据规则',
  559. name: 'mn_rule',
  560. displayField : "display",
  561. editable:false,
  562. hideTrigger : false,
  563. maxLength : 100.0,
  564. minValue : null,
  565. positiveNum : false,
  566. queryMode : "local",
  567. valueField : "value",
  568. store:{
  569. fields: ['display', 'value'],
  570. data : [
  571. {"display":"年月日", "value":'yyyymmdd'},
  572. {"display":"年月", "value":'yyyymm'},
  573. {"display":"无", "value":'无'}
  574. ]
  575. }
  576. },{
  577. xtype:'numberfield',
  578. hideTrigger : true,
  579. fieldLabel: '流水长度',
  580. name: 'mn_number',
  581. minValue : 0,
  582. allowBlank:false,
  583. mouseWheelEnabled: false
  584. }]
  585. }
  586. },
  587. setFormItems:function() {
  588. var me = this, kind = me.dataKind;
  589. var conf = {
  590. xtype: 'form',
  591. bodyPadding: 10,
  592. border: false,
  593. autoScroll:true,
  594. modelValidation: true,
  595. layout: {
  596. type: 'vbox',
  597. align: 'stretch'
  598. },
  599. defaults: {
  600. labelAlign:'right',
  601. beforeLabelTextTpl: "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
  602. xtype: 'textfield'
  603. },
  604. buttons: [{
  605. text: '保存',
  606. formBind:true,
  607. handler: me.onSave,
  608. scope:me
  609. }, {
  610. text: '取消',
  611. handler: me.onCancel,
  612. scope:me
  613. }]
  614. };
  615. return Ext.apply(conf, me.etc[kind]);
  616. },
  617. onSave:function(){
  618. var me = this;
  619. var belong = this.belong;
  620. me.setLoading(true);
  621. var form=this.down('form');
  622. var combo = this._combo;
  623. var params = {};
  624. var relativeField,relativeValue;//要赋值的字段和值
  625. var names = belong.columns.map(column => column.dataIndex);
  626. //账户资料特殊保存逻辑
  627. if(me.dataKind=='accountinformation'){
  628. me.accountinformation();
  629. return;
  630. }
  631. //账户资料新增特殊保存逻辑
  632. if(me.dataKind=='accountadd'){
  633. me.accountadd();
  634. return;
  635. }
  636. Ext.Array.each(names,function(name) {
  637. if(name){
  638. var dataField = form.down('[name='+name+']');
  639. if(dataField){
  640. var value = dataField.getValue();
  641. if(Ext.isDate(value)) {
  642. value = Ext.Date.format(value, 'Y-m-d H:i:s');
  643. }
  644. params[name] = value;
  645. if(!relativeValue){
  646. relativeField = dataField.relativeField;
  647. relativeValue = value;
  648. }
  649. }
  650. }
  651. });
  652. var idField = form.down('[name='+belong.keyField+']');
  653. params[belong.keyField] = idField.value || 0;
  654. //保存接口
  655. saas.util.BaseUtil.request({
  656. url: belong.reqUrl,
  657. params: JSON.stringify(params),
  658. method: 'POST'
  659. })
  660. .then(function(localJson) {
  661. me.setLoading(false);
  662. if(localJson.success){
  663. var grid = form.ownerCt._parent ? form.ownerCt._parent.lookup('document-kind-Grid') : null;
  664. if(grid){
  665. grid.store.load();
  666. }
  667. if(relativeField&&relativeValue&&form.ownerCt._parent){
  668. var grid = form.ownerCt._parent.down('grid');
  669. var rec = grid.getSelectionModel().getLastSelected();
  670. rec.set(relativeField,relativeValue);
  671. }
  672. if(combo){
  673. combo.store.load(function() {
  674. typeof combo.setValue == 'function' && combo.setValue(relativeValue);
  675. });
  676. }
  677. saas.util.BaseUtil.showSuccessToast('保存成功');
  678. form.ownerCt.close();
  679. }
  680. })
  681. .catch(function(res) {
  682. me.setLoading(false);
  683. console.error(res);
  684. saas.util.BaseUtil.showErrorToast('保存失败: ' + res.message);
  685. });
  686. },
  687. onCancel:function(){
  688. this.hide();
  689. },
  690. accountinformation:function(){
  691. var me = this;
  692. var belong = this.belong;
  693. me.setLoading(true);
  694. var form=this.down('form');
  695. var combo = this._combo;
  696. var params = {};
  697. var names = belong.columns.map(column => column.dataIndex);
  698. Ext.Array.each(names,function(name) {
  699. if(name){
  700. var dataField = form.down('[name='+name+']');
  701. if(dataField&&dataField.value){
  702. params[name] = dataField.value;
  703. }
  704. }
  705. });
  706. //更改参数
  707. var o = '';
  708. Ext.Array.each(params.roleNames,function(item) {
  709. o+=item.value+','
  710. });
  711. o = o.substring(0,o.length-1);
  712. if(o==""){
  713. saas.util.BaseUtil.showErrorToast('关联角色未选择,无法保存!')
  714. }
  715. var _params = {
  716. accountId:Number(params['accountId']),
  717. roleIds:o,
  718. };
  719. //保存接口
  720. saas.util.BaseUtil.request({
  721. url: belong.reqUrl,
  722. params: _params,
  723. method: 'POST',
  724. headers:{
  725. 'Access-Control-Allow-Origin': '*',
  726. "Content-Type":'application/x-www-form-urlencoded'
  727. }
  728. })
  729. .then(function(localJson) {
  730. me.setLoading(false);
  731. if(localJson.success){
  732. saas.util.BaseUtil.showSuccessToast('保存成功');
  733. form.ownerCt._parent.store.load()
  734. form.ownerCt.close();
  735. }
  736. })
  737. .catch(function(res) {
  738. me.setLoading(false);
  739. console.error(res);
  740. saas.util.BaseUtil.showErrorToast('保存失败: ' + res.message);
  741. });
  742. },
  743. accountadd:function(){
  744. var me = this;
  745. var belong = this.belong;
  746. me.setLoading(true);
  747. var form=this.down('form');
  748. var combo = this._combo;
  749. var params = {};
  750. var names = belong.columns.map(column => column.dataIndex);
  751. Ext.Array.each(names,function(name) {
  752. if(name){
  753. var dataField = form.down('[name='+name+']');
  754. if(dataField&&dataField.value){
  755. params[name] = dataField.value;
  756. params._value = dataField.value;
  757. }
  758. }
  759. });
  760. //更改参数
  761. var o = '';
  762. var dataField = form.down('[name=roleIds]');
  763. Ext.Array.each(dataField.value,function(item) {
  764. o+=item.value+','
  765. });
  766. o = o.substring(0,o.length-1);
  767. params['username'] = params['mobile'];
  768. params['type'] = 1;
  769. params['roleIds'] = o;
  770. //保存接口
  771. saas.util.BaseUtil.request({
  772. url: belong.reqUrl,
  773. params: JSON.stringify(params),
  774. method: 'POST'
  775. })
  776. .then(function(localJson) {
  777. me.setLoading(false);
  778. if(localJson.success){
  779. form.ownerCt._parent.store.load();
  780. saas.util.BaseUtil.showSuccessToast('保存成功');
  781. form.ownerCt.close();
  782. }
  783. })
  784. .catch(function(res) {
  785. me.setLoading(false);
  786. console.error(res);
  787. saas.util.BaseUtil.showErrorToast('保存失败: ' + res.message);
  788. });
  789. }
  790. });