ChildForm.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  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. layout: 'fit',
  8. modal: true,
  9. width: 500,
  10. //工具类
  11. FormUtil: Ext.create('saas.util.FormUtil'),
  12. BaseUtil: Ext.create('saas.util.BaseUtil'),
  13. height: 260,
  14. listeners:{
  15. show:function(w){
  16. if(w.record){
  17. w.down('form').loadRecord(w.record);
  18. }
  19. }
  20. },
  21. initComponent:function(){
  22. var me=this;
  23. Ext.apply(me,{
  24. items:me.setFormItems()
  25. });
  26. me.callParent();
  27. },
  28. etc:{
  29. customerkind:{
  30. items:[{
  31. xtype:'hidden',
  32. name:'id'
  33. },{
  34. xtype:'textfield',
  35. name:'ck_name',
  36. allowBlank:false,
  37. fieldLabel:'客户类型',
  38. maxLength: 20
  39. }]
  40. },
  41. vendorkind:{
  42. items:[{
  43. xtype:'hidden',
  44. name:'id'
  45. },{
  46. xtype:'textfield',
  47. name:'vk_name',
  48. allowBlank:false,
  49. fieldLabel:'供应商类型',
  50. maxLength: 20
  51. }]
  52. },
  53. productkind:{
  54. items:[{
  55. xtype:'hidden',
  56. name:'id'
  57. },{
  58. xtype:'textfield',
  59. name:'pt_name',
  60. allowBlank:false,
  61. fieldLabel:'物料类型',
  62. maxLength: 20
  63. }]
  64. },
  65. bankinformation:{
  66. items:[{
  67. xtype:'hidden',
  68. name:'id'
  69. },{
  70. xtype:'textfield',
  71. name:'bk_bankname',
  72. allowBlank:false,
  73. fieldLabel:'账户名称',
  74. maxLength: 20
  75. },{
  76. xtype:'textfield',
  77. name:'bk_bankcode',
  78. allowBlank:false,
  79. fieldLabel:'账户编号',
  80. maxLength: 20
  81. },{
  82. xtype:'numberfield',
  83. name:'bk_beginamount',
  84. allowBlank:false,
  85. fieldLabel:'期初金额',
  86. },{
  87. xtype:'numberfield',
  88. name:'bk_thisamount',
  89. allowBlank:false,
  90. fieldLabel:'当前金额',
  91. },{
  92. xtype:'textfield',
  93. name:'bk_type',
  94. allowBlank:false,
  95. fieldLabel:'账户类别',
  96. },{
  97. xtype:'datefield',
  98. name:'bk_date',
  99. readOnly:true,
  100. fieldLabel:'建账日期',
  101. format:'Y-m-d H:i:s',
  102. listeners:{
  103. beforerender:function(d){
  104. d.setValue(new Date())
  105. }
  106. }
  107. }]
  108. },
  109. productbrand:{
  110. items:[{
  111. xtype:'hidden',
  112. name:'id'
  113. },{
  114. xtype:'textfield',
  115. name:'pb_name',
  116. allowBlank:false,
  117. fieldLabel:'物料品牌',
  118. maxLength: 20
  119. }]
  120. },
  121. productunit:{
  122. items:[{
  123. xtype:'hidden',
  124. name:'id'
  125. },{
  126. xtype:'textfield',
  127. name:'pu_name',
  128. allowBlank:false,
  129. fieldLabel:'计量单位',
  130. maxLength: 20
  131. }]
  132. },
  133. inoutkind:{
  134. items:[{
  135. xtype:'hidden',
  136. name:'id'
  137. },{
  138. xtype:'textfield',
  139. name:'ft_name',
  140. allowBlank:false,
  141. fieldLabel:'类型',
  142. maxLength: 20
  143. }]
  144. },
  145. address:{
  146. items:[{
  147. xtype:'hidden',
  148. name:'id'
  149. },{
  150. xtype:'textfield',
  151. name:'ad_address',
  152. allowBlank:false,
  153. fieldLabel:'地址详情',
  154. maxLength: 200
  155. }]
  156. },
  157. warehouse:{
  158. items:[{
  159. xtype:'hidden',
  160. name:'id'
  161. },{
  162. xtype:'textfield',
  163. fieldLabel: '仓库编号',
  164. name: 'wh_code',
  165. allowBlank:false,
  166. maxLength: 20
  167. },{
  168. xtype:'textfield',
  169. fieldLabel: '仓库名称',
  170. name: 'wh_description',
  171. allowBlank:false,
  172. maxLength: 20
  173. },{
  174. xtype:'textfield',
  175. fieldLabel: '仓库类型',
  176. name: 'wh_type',
  177. allowBlank:false,
  178. maxLength: 20
  179. },{
  180. readOnly:true,
  181. xtype:'textfield',
  182. fieldLabel: '仓库状态',
  183. name: 'wh_status',
  184. value:'已开启',
  185. maxLength: 20
  186. },{
  187. xtype:'hidden',
  188. fieldLabel: '仓库状态码',
  189. name: 'wh_statuscode',
  190. value:'OPEN'
  191. }]
  192. },
  193. maxnumbers:{
  194. items:[{
  195. xtype:'hidden',
  196. name:'id'
  197. },{
  198. xtype:'textfield',
  199. fieldLabel: '单据名称',
  200. name: 'mn_name',
  201. allowBlank:false,
  202. editable:false,
  203. readOnly:true,
  204. maxLength: 20
  205. },{
  206. xtype:'textfield',
  207. fieldLabel: '单据前缀',
  208. name: 'mn_leadcode',
  209. allowBlank:false,
  210. maxLength: 20
  211. },{
  212. xtype:'combo',
  213. fieldLabel: '单据规则',
  214. name: 'mn_rule',
  215. displayField : "display",
  216. editable:false,
  217. hideTrigger : false,
  218. maxLength : 100.0,
  219. minValue : null,
  220. positiveNum : false,
  221. queryMode : "local",
  222. valueField : "value",
  223. store:{
  224. fields: ['display', 'value'],
  225. data : [
  226. {"display":"年月日", "value":'yyyymmdd'},
  227. {"display":"年月", "value":'yyyymm'}
  228. ]
  229. }
  230. },{
  231. xtype:'numberfield',
  232. hideTrigger : true,
  233. fieldLabel: '流水长度',
  234. name: 'mn_number',
  235. allowBlank:false
  236. }]
  237. }
  238. },
  239. setFormItems:function() {
  240. var me = this, kind = me.dataKind;
  241. var conf = {
  242. xtype: 'form',
  243. bodyPadding: 10,
  244. border: false,
  245. autoScroll:true,
  246. modelValidation: true,
  247. layout: {
  248. type: 'vbox',
  249. align: 'stretch'
  250. },
  251. defaults: {
  252. labelAlign:'right',
  253. beforeLabelTextTpl: "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
  254. xtype: 'textfield'
  255. },
  256. buttons: [{
  257. text: '保存',
  258. formBind:true,
  259. handler: me.onSave,
  260. scope:me
  261. }, {
  262. text: '取消',
  263. handler: me.onCancel,
  264. scope:me
  265. }]
  266. };
  267. return Ext.apply(conf, me.etc[kind]);
  268. },
  269. onSave:function(){
  270. var me = this;
  271. var belong = this.belong;
  272. me.setLoading(true);
  273. var form=this.down('form');
  274. var combo = this._combo;
  275. var params = {};
  276. var names = belong.columns.map(column => column.dataIndex);
  277. Ext.Array.each(names,function(name) {
  278. if(name){
  279. var dataField = form.down('[name='+name+']');
  280. if(dataField&&dataField.value){
  281. params[name] = dataField.value;
  282. params._value = dataField.value;
  283. }
  284. }
  285. });
  286. var idField = form.down('[name='+belong.keyField+']');
  287. params[belong.keyField] = idField.value || 0;
  288. //保存接口
  289. this.BaseUtil.request({
  290. url: belong.reqUrl,
  291. params: JSON.stringify(params),
  292. method: 'POST'
  293. })
  294. .then(function(localJson) {
  295. me.setLoading(false);
  296. if(localJson.success){
  297. showToast('保存成功');
  298. var grid = form.ownerCt._parent.lookup('document-kind-Grid');
  299. if(grid){
  300. grid.store.load();
  301. }
  302. if(combo){
  303. combo.store.load(function() {
  304. typeof combo.setValue == 'function' && combo.setValue(params._value);
  305. });
  306. }
  307. form.ownerCt.close();
  308. }
  309. })
  310. .catch(function(res) {
  311. me.setLoading(false);
  312. console.error(res);
  313. showToast('保存失败: ' + res.message);
  314. });
  315. },
  316. onCancel:function(){
  317. this.hide();
  318. }
  319. });