备料申请源码
This commit is contained in:
		
							parent
							
								
									1f113fd637
								
							
						
					
					
						commit
						fed95c72e8
					
				|  | @ -1,9 +1,10 @@ | |||
| { | ||||
|     "buildEntryPath": [ | ||||
|         "./src/sscivm/invoiceApplication/*/*/index.js" | ||||
|         "./src/mmpac/mmpac/pmo/*/index.js", | ||||
|         "./src/mmpac/mmpac/pickm/*/index.js" | ||||
|     ], | ||||
|     "proxyJson": false, | ||||
|     "proxy": "http://127.0.0.1:9080/", | ||||
|     "proxy": "http://127.0.0.1:8080/", | ||||
|     "buildWithoutHTML": [ | ||||
|         "uap/refer", | ||||
|         "uapbd/refer" | ||||
|  |  | |||
|  | @ -0,0 +1,143 @@ | |||
| import { ajax } from 'nc-lightapp-front'; | ||||
| import { URL,Field,Field_detail, bodyCustAndSupFild, ReqPickmCardInfo,bodyfixAssts } from '../../constance'; | ||||
| import { | ||||
| 	createExtBodyAfterEventData, | ||||
| 	processExtBillCardBodyEditResult | ||||
| } from '../../../../../mmpub/mmpub/pub/tool/afterEditUtil'; | ||||
| import { marAsstUtils } from '../../../../../mmpub/mmpub/pub/tool'; | ||||
| import { processCardTableAutoAddRow } from '../../../../../mmpub/mmpub/pub/tool/autoAddRowUtil'; | ||||
| import {setRowDefaultValue} from '../btnClicks'; | ||||
|   | ||||
| const { pageId,card_head,card_tail,card_body_detail,card_body_sum,headActionEdit,bodyAction_detail,bodyAction_sum,pk_head,pk_body_detail,pk_body_sum} = ReqPickmCardInfo; | ||||
| 
 | ||||
| /** | ||||
|  * 备料申请卡片表体编辑后事件 | ||||
|  * @author maqna | ||||
|  */ | ||||
| 
 | ||||
| let bodyids = [card_body_detail, card_body_sum]; | ||||
| export default  function bodyAfterEvent (props, moduleId, key, value, changedrows,index,record) { | ||||
|     // 初始化自定义参数
 | ||||
| 	let userobject = {}; | ||||
| 	//触发后台编辑后
 | ||||
| 	let afterEditFile = [ | ||||
|         'cmaterialvid', 'cdeliverorgvid','nreqnum','nreqastnum','castunitid', | ||||
|         'vchangerate', | ||||
| 	]; | ||||
|    | ||||
|     // let bd = data.card.bodys[card_body_detail];
 | ||||
|     // data.card.bodys=[bd]
 | ||||
|     let _this = this; | ||||
|     if(key == Field_detail.cmaterialvid){//物料
 | ||||
|         //如果物料值为空,清空相应字段
 | ||||
|         let clearItems = [ | ||||
|             'vchangerate','castunitid','cbffileid', | ||||
|             'vbfree1', 'vbfree2', 'vbfree3', 'vbfree4', 'vbfree5', 'vbfree6', 'vbfree7', 'vbfree8', 'vbfree9', 'vbfree10'    | ||||
|         ]; | ||||
| 
 | ||||
|     | ||||
| 		this.props.cardTable.setEditableByIndex(card_body_detail, index, 'cbffileid', true); | ||||
|         checkFieldsUtil(props, moduleId, index ,  clearItems ); | ||||
| 
 | ||||
|         //当选择的物料是一条的时候进行判断,如果新旧值相同则不需要进行调用
 | ||||
| 		if (changedrows.length == 1) { | ||||
| 			if (changedrows && changedrows[0].newvalue.value == changedrows[0].oldvalue.value) { | ||||
| 				return; | ||||
| 			} | ||||
|         } | ||||
|         //所用物料是多条时,手动清空发料仓库
 | ||||
|         if(changedrows.length >= 1){ | ||||
|             props.cardTable.setValByKeyAndIndex(moduleId, index, 'coutstockid', { | ||||
|                 value: null, | ||||
|                 display: null | ||||
|             }); | ||||
|             props.cardTable.setValByKeyAndIndex(moduleId, index, 'coutstockid.name', { | ||||
|                 value: null, | ||||
|                 display: null | ||||
|             }); | ||||
|         } | ||||
|     }else if(key == Field_detail.cdeliverorgvid){//发料组织
 | ||||
|         if (changedrows && changedrows[0].newvalue.value == changedrows[0].oldvalue.value) { | ||||
| 			return; | ||||
|         } | ||||
|         props.cardTable.setValByKeyAndIndex(moduleId, index, 'coutstockid', { | ||||
| 			value: null, | ||||
| 			display: null | ||||
|         }); | ||||
|         props.cardTable.setValByKeyAndIndex(moduleId, index, 'coutstockid.name', { | ||||
| 			value: null, | ||||
| 			display: null | ||||
| 		}); | ||||
|          | ||||
|     }else if(key == Field_detail.coutstockid){//发料仓库
 | ||||
|         if (changedrows && changedrows[0].newvalue.value == changedrows[0].oldvalue.value) { | ||||
| 			return; | ||||
|         } | ||||
|          | ||||
|     } | ||||
|     else if (bodyfixAssts.includes(key)||key.startsWith('vbfree')) { | ||||
|         marAsstUtils.afterEdit.call(this, props, props.getAppCode(), pageId, moduleId, key,Field_detail.cmaterialvid, record, index,'mmpac.mm_reqpickm_b',bodyCustAndSupFild);	 | ||||
|     } | ||||
| 
 | ||||
|     let data = createExtBodyAfterEventData( | ||||
|         props, | ||||
|         pageId, | ||||
|         card_head, | ||||
|         bodyids, | ||||
|         moduleId, | ||||
|         key, | ||||
|         changedrows, | ||||
|         index, | ||||
|         userobject, | ||||
|         'vrowno' | ||||
|     ); | ||||
|     /** | ||||
|      * 编辑后事件请求: 有编辑后事件的字段 | ||||
|      * @param {*} props  | ||||
|      * @param {*} url  | ||||
|      * @param {*} aggvo  | ||||
|      */ | ||||
|    // if(afterEditFile.includes(key)){
 | ||||
|         ajax({ | ||||
|             url: URL.bodyDetailAfterEdit, | ||||
|             data: data, | ||||
|             method: 'POST', | ||||
|             async: false, //同步
 | ||||
|             success: (res) => { | ||||
|                 if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { | ||||
|                     //参数一:返回的公式对象 参数二:界面使用的表格类型
 | ||||
|                     _this.props.dealFormulamsg(res.formulamsg, { | ||||
|                         [card_body_detail]: 'cardTable', | ||||
|                         [card_body_sum]: 'cardTable' | ||||
|                     }); | ||||
|                 } | ||||
|                 if (res.data.extbillcard) { | ||||
|                     _this.props.beforeUpdatePage(); | ||||
|                     let data = res.data.extbillcard; | ||||
|                     if (data.head) { | ||||
|                         _this.props.form.setAllFormValue({ card_head: data.head[card_head] }); | ||||
|                     } | ||||
|                     processExtBillCardBodyEditResult(_this.props, moduleId, data,index); | ||||
|                     _this.props.updatePage(card_head, bodyids); | ||||
|                 } | ||||
|      | ||||
|             } | ||||
|         }) | ||||
|     //}
 | ||||
| 	processCardTableAutoAddRow(_this.props, moduleId, index, { | ||||
|         isMuli: changedrows.length > 1 ? true : false, | ||||
|         crownoField:'vrowno', | ||||
|         defaultValue:setRowDefaultValue.call(this, props) | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| function checkFieldsUtil(props, moduleId, index, clearItems){ | ||||
|     for (let item = 0; item < clearItems.length; item++) { | ||||
|         props.cardTable.setValByKeyAndIndex(moduleId, index, clearItems[item], { | ||||
|             value: null, | ||||
|             display: null, | ||||
|             scale: '-1' | ||||
|         }); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | @ -0,0 +1,100 @@ | |||
| import { ajax } from 'nc-lightapp-front'; | ||||
| import { URL,Field,Field_detail, CardButton_body_detail, ReqPickmCardInfo, Field_sum } from '../../constance'; | ||||
| import { | ||||
| 	createExtBodyAfterEventData, | ||||
| 	processExtBillCardBodyEditResult | ||||
| } from '../../../../../mmpub/mmpub/pub/tool/afterEditUtil'; | ||||
| 
 | ||||
| const { pageId,card_head,card_tail,card_body_detail,card_body_sum,headActionEdit,bodyAction_detail,bodyAction_sum,pk_head,pk_body_detail,pk_body_sum} = ReqPickmCardInfo; | ||||
| 
 | ||||
| /** | ||||
|  * 备料申请卡片表体编辑后事件 | ||||
|  * @author maqna | ||||
|  */ | ||||
| 
 | ||||
| let bodyids = [card_body_detail, card_body_sum]; | ||||
| export default function bodyAfterEvent (props, moduleId, key, value, changedrows,index,record) { | ||||
|     // 初始化自定义参数
 | ||||
| 	let userobject = {}; | ||||
| 	//触发后台编辑后
 | ||||
| 	let afterEditFile = [ | ||||
|         'nstocknum', 'nstockastnum','csupplyorgvid' | ||||
| 	]; | ||||
|     let data = createExtBodyAfterEventData( | ||||
|         props, | ||||
|         pageId, | ||||
|         card_head, | ||||
|         bodyids, | ||||
|         moduleId, | ||||
|         key, | ||||
|         changedrows, | ||||
|         index, | ||||
|         userobject, | ||||
|         'vrowno' | ||||
|     ); | ||||
|     let _this = this; | ||||
|     if(key == Field_sum.csupplyorgvid){//供应组织
 | ||||
|         if (changedrows && changedrows[0].newvalue.value == changedrows[0].oldvalue.value) { | ||||
| 			return; | ||||
| 		} | ||||
|         //编辑供应组织后,清空供应仓库
 | ||||
|         props.cardTable.setValByKeyAndIndex(moduleId, index, 'cinstockid', { | ||||
| 			value: null, | ||||
| 			display: null | ||||
|         }); | ||||
|         return; | ||||
|     } | ||||
|     /** | ||||
|      * 编辑后事件请求: 有编辑后事件的字段 | ||||
|      * @param {*} props  | ||||
|      * @param {*} url  | ||||
|      * @param {*} aggvo  | ||||
|      */ | ||||
|     if(afterEditFile.includes(key)){ | ||||
|         if (changedrows && changedrows[0].newvalue.value == changedrows[0].oldvalue.value) { | ||||
|             return; | ||||
|         } | ||||
|         ajax({ | ||||
|             url: URL.bodySumAfterEdit, | ||||
|             data: data, | ||||
|             method: 'POST', | ||||
|             async: false, //同步
 | ||||
|             success: (res) => { | ||||
|                 if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { | ||||
|                     //参数一:返回的公式对象 参数二:界面使用的表格类型
 | ||||
|                     _this.props.dealFormulamsg(res.formulamsg, { | ||||
|                         [card_body_detail]: 'cardTable', | ||||
|                         [card_body_sum]: 'cardTable' | ||||
|                     }); | ||||
|                 } | ||||
|                 if (res.data.extbillcard) { | ||||
|                     _this.props.beforeUpdatePage(); | ||||
|                     let data = res.data.extbillcard; | ||||
|                     if (data.head) { | ||||
|                         _this.props.form.setAllFormValue({ card_head: data.head[card_head] }); | ||||
|                     } | ||||
|                     processExtBillCardBodyEditResult(_this.props, moduleId, data,index); | ||||
|                     _this.props.updatePage(card_head, bodyids); | ||||
|                 } | ||||
|      | ||||
|             } | ||||
|         }) | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| function checkFieldsUtil(props, moduleId, key, value, changedrows, index, record, clearItems){ | ||||
|     //如果物料值为空,清空相应字段值
 | ||||
|     if (value.length == 0 || !value.values) { | ||||
|         for (let item = 0; item < clearItems.length; item++) { | ||||
|             props.cardTable.setValByKeyAndIndex(moduleId, index, clearItems[item], { | ||||
|                 value: null, | ||||
|                 display: null, | ||||
|                 scale: '-1' | ||||
|             }); | ||||
|         } | ||||
|         return; | ||||
|     } | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
|  | @ -0,0 +1,67 @@ | |||
| import { URL, STATUS, ReqPickmCache, ReqPickmCardInfo, CardButton, CardButton_body_detail_detail } from '../../constance'; | ||||
| 
 | ||||
| const cardPageUISet = function(status){ | ||||
|     //debugger;
 | ||||
|     switch(status){ | ||||
|         case STATUS.browse: | ||||
|             cardPageUISetBrowse.call(this); | ||||
|             break; | ||||
|         case STATUS.edit: | ||||
|             cardPageUISetEdit.call(this); | ||||
|             break; | ||||
|         case STATUS.add: | ||||
|             cardPageUISetEdit.call(this); | ||||
|             break; | ||||
|         default: | ||||
|             break; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| const cardPageUISetBrowse = function(){ | ||||
|     this.props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
| 		showBackBtn: true, | ||||
| 		showBillCode: true, | ||||
| 		billCode: this.props.form.getFormItemsValue( ReqPickmCardInfo.card_head , ReqPickmCardInfo.pk_head).value //修改单据号
 | ||||
|     }); | ||||
|     this.props.button.setButtonVisible(CardButton.BrowseBtns,true); | ||||
|     this.props.button.setButtonVisible([...CardButton.EditBtns],false); | ||||
|     this.props.cardPagination.setCardPaginationVisible('cardPaginationBtn', true); | ||||
| } | ||||
| const cardPageUISetEdit = function(){ | ||||
|     this.props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
| 		showBackBtn: false, | ||||
| 		showBillCode: true, | ||||
| 		billCode: this.props.form.getFormItemsValue( ReqPickmCardInfo.card_head , ReqPickmCardInfo.pk_head).value //修改单据号
 | ||||
|     }); | ||||
|     this.props.button.setButtonVisible([...CardButton.BrowseBtns],false); | ||||
|     this.props.button.setButtonVisible([...CardButton.EditBtns],true); | ||||
|     this.props.cardPagination.setCardPaginationVisible('cardPaginationBtn', false); | ||||
|     // let selectedRows = this.props.cardTable.getCheckedRows(ReqPickmCardInfo.card_body);
 | ||||
|     // if(selectedRows.length==0){
 | ||||
|     //     this.props.button.setDisabled({[CardButton_body_detail.DeleteLine]:true,[CardButton_body_detail.AddLine]:true});
 | ||||
|     // }
 | ||||
| } | ||||
| // const headButtonSet = function(fbillstatus){
 | ||||
| //     let Del=false;		//
 | ||||
| // 	let Edit=false;		//
 | ||||
| //     let Recieve=false;	//
 | ||||
| //     if(BillStatusEnum.ongoing.data!=fbillstatus){
 | ||||
| //         Edit=true;
 | ||||
| //         Del=true;
 | ||||
| //         Recieve=true;
 | ||||
| //     }
 | ||||
| // 	let disableBtns={
 | ||||
| // 		 Del:Del,		//
 | ||||
| // 		 Edit:Edit,		//
 | ||||
| // 		 Recieve:Recieve,	//
 | ||||
| // 	}
 | ||||
| // 	this.props.button.setDisabled(disableBtns);
 | ||||
| 	 | ||||
| // }
 | ||||
| 
 | ||||
| export { | ||||
|     cardPageUISetBrowse, | ||||
|     cardPageUISetEdit, | ||||
|     cardPageUISet, | ||||
|     //headButtonSet
 | ||||
| } | ||||
|  | @ -0,0 +1,21 @@ | |||
| import { URL, STATUS, ReqPickmCache, Field, ReqPickmCardInfo, CardButton } from '../../constance'; | ||||
| const {pageId,card_head,card_tail,card_body_detail,card_body_sum,headAction,bodyAction_detail,bodyAction_sum,pk_head,pk_body_detail,pk_body_sum} = ReqPickmCardInfo; | ||||
| import orgChangeEvent from './orgChangeEvent'; | ||||
| import bodyDetailAfterEvent from './bodyDetailAfterEvent'; | ||||
| import bodySumAfterEvent from './bodySumAfterEvent' | ||||
| 
 | ||||
| const afterEvent = function(props, moduleId, key, value, changedRow, index, record){ | ||||
|     if(moduleId == card_head && (key == Field.pk_org ||key==Field.pk_org_v)){ | ||||
|         orgChangeEvent.call(this,props, moduleId, key, value, changedRow,index, record); | ||||
|     }else if(moduleId == card_head){ | ||||
|         //headAfterEvent.call(this, props, moduleId, key, value);
 | ||||
|     }else if(moduleId == card_body_detail){ | ||||
|         bodyDetailAfterEvent.call(this,props, moduleId, key, value, changedRow,index, record); | ||||
|     }else if(moduleId == card_body_sum){ | ||||
|         bodySumAfterEvent.call(this,props, moduleId, key, value, changedRow,index, record); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| export { | ||||
|     afterEvent | ||||
| } | ||||
|  | @ -0,0 +1,148 @@ | |||
| import { ajax } from 'nc-lightapp-front'; | ||||
| import {showWarningDialog} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; | ||||
| import { URL,Field,Field_detail, CardButton_body_detail, ReqPickmCardInfo } from '../../constance'; | ||||
| import { | ||||
| 	processExtBillCardHeadEditResult | ||||
| } from '../../../../../mmpub/mmpub/pub/tool/afterEditUtil'; | ||||
| import { RownoUtils } from '../../../../../mmpub/mmpub/pub/tool/cardTableTools'; | ||||
| import { buttonController } from '../viewController'; | ||||
| import { setRowDefaultValue } from '../btnClicks'; | ||||
| import { transtypeUtils } from '../../../../../mmpub/mmpub/pub/tool'; | ||||
| import {getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; | ||||
| 
 | ||||
| const { pageId,card_head,card_tail,card_body_detail,card_body_sum,headActionEdit,bodyAction_detail,bodyAction_sum,pk_head,pk_body_detail,pk_body_sum} = ReqPickmCardInfo; | ||||
| 
 | ||||
| 
 | ||||
| /** | ||||
|  * 备料申请卡片组织编辑后事件 | ||||
|  * @author maqna | ||||
|  */ | ||||
| 
 | ||||
| let bodyids = [card_body_detail, card_body_sum]; | ||||
| export default function orgChangeEvent (props, moduleId, key, value, changedrows,index, record) { | ||||
|     let _this = this; | ||||
|     let aggvo = null; | ||||
|     if(value.value == null || value.value == '' || value instanceof Array || Object.keys(value).length === 0){ | ||||
| 		//清空组织时给出警告
 | ||||
|         showWarningDialog( | ||||
|             getLangByResId(this,'5008ReqPickmPUBMESSAGE-000012'),/* 国际化处理: 确认修改*/ | ||||
|             getLangByResId(this,'5008ReqPickmPUBMESSAGE-000013'),/* 国际化处理: 清空组织,这样会清空您录入的信息?*/ | ||||
|             { | ||||
|                 beSureBtnClick: () => { | ||||
|                     // 1、工厂为空时清空表单数据且表体不可编辑
 | ||||
|                     props.form.EmptyAllFormValue(card_head); | ||||
|                     setTimeout(() => { | ||||
| 						//执行跳出堆栈
 | ||||
|                         props.cardTable.setTableData(card_body_detail, { rows: [] }); | ||||
|                         props.cardTable.setTableData(card_body_sum, { rows: [] }); | ||||
|                     }, 0); | ||||
|                     props.initMetaByPkorg(Field.pk_org_v);//如果无主组织,设置模板上其他字段的不可编辑性
 | ||||
| 					//props.button.setButtonDisabled([ CardButton_body_detail.AddLine ], true);
 | ||||
| 					buttonController.lineSelected.call(this, props); | ||||
|                 }, | ||||
|                 cancelBtnClick: () => { | ||||
| 					props.form.setFormItemsValue(card_head, { | ||||
| 						[key]: { value: changedrows.value, display: changedrows.display } | ||||
| 					}); | ||||
| 				} | ||||
|             } | ||||
|         ) | ||||
|     } else { | ||||
|         //2、不为空时释放页面编辑性同时判断是否和旧值相等,来判断是否清空数据
 | ||||
|         if (changedrows && value.value != changedrows.value && changedrows.value != null && changedrows.value != '') { | ||||
| 			// 修改组织
 | ||||
| 			showWarningDialog( | ||||
| 				getLangByResId(this,'5008ReqPickmPUBMESSAGE-000012'),/* 国际化处理: 确认修改*/ | ||||
|                 getLangByResId(this,'5008ReqPickmPUBMESSAGE-000013'),/* 国际化处理: 清空组织,这样会清空您录入的信息?*/ | ||||
| 				{ | ||||
| 					beSureBtnClick: () => { | ||||
|                         props.form.EmptyAllFormValue(card_head); | ||||
|                         props.form.setFormItemsValue(card_head, { | ||||
| 							[key]: { value: value.value, display: value.display } | ||||
|                         }); | ||||
|                         props.cardTable.setTableData(card_body_detail, { rows: [] }); | ||||
| 						props.cardTable.setTableData(card_body_sum, { rows: [] }); | ||||
| 						 | ||||
| 						aggvo = props.createHeadAfterEventData( | ||||
|                             pageId, | ||||
|                             card_head, | ||||
|                             bodyids, | ||||
|                             moduleId, | ||||
|                             key, | ||||
|                             value | ||||
|                         ); | ||||
| 						getAfterData.call(this, props,moduleId, aggvo); | ||||
|                     }, | ||||
| 					cancelBtnClick: () => { | ||||
| 						props.form.setFormItemsValue(card_head, { | ||||
| 							[key]: { value: changedrows.value, display: changedrows.display } | ||||
| 						}); | ||||
| 					} | ||||
| 				} | ||||
| 			); | ||||
| 		} else { | ||||
|             props.cardTable.setTableData(card_body_detail, { rows: [] }); | ||||
|             props.cardTable.setTableData(card_body_sum, { rows: [] }); | ||||
| 			props.form.setFormItemsValue(card_head, { | ||||
| 				[key]: { value: value.value, display: value.display } | ||||
| 			}); | ||||
| 			//3、
 | ||||
|             aggvo = props.createHeadAfterEventData( | ||||
| 				pageId, | ||||
|                 card_head, | ||||
|                 bodyids, | ||||
|                 moduleId, | ||||
|                 key, | ||||
|                 value | ||||
|             ); | ||||
| 			getAfterData.call(this,props, moduleId, aggvo); | ||||
| 			// props.resMetaAfterPkorgEdit(); //选择主组织以后,恢复其他字段的编辑性
 | ||||
| 			// //发布小应用时,给交易类型赋值
 | ||||
| 			// transtypeUtils.setValue.call(this, card_head, Field.crequesttype);
 | ||||
|             // // 组织不为空表体新增一行
 | ||||
|             // bodyAddRow.call(this,props,card_body_detail);
 | ||||
|             // RownoUtils.setRowNo(props,card_body_detail,Field_detail.vrowno);
 | ||||
| 		} | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| //组织切换处理
 | ||||
| function getAfterData(props,moduleId, aggvo) { | ||||
| 	ajax({ | ||||
| 		url: URL.orgChangedEvent, | ||||
| 		data: aggvo, | ||||
| 		mode: 'normal', | ||||
| 		success: (res) => { | ||||
| 			if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { | ||||
| 				props.dealFormulamsg( | ||||
| 					res.formulamsg, //参数一:返回的公式对象
 | ||||
| 					{ | ||||
| 						//参数二:界面使用的表格类型
 | ||||
| 						[card_body_detail]: 'cardTable', | ||||
| 						[card_body_sum]: 'cardTable' | ||||
| 					} | ||||
| 				); | ||||
| 			} | ||||
| 			if (res && res.data && res.data.data && res.data.data.extbillcard && res.data.data.extbillcard.head && res.data.data.extbillcard.head[card_head]) { | ||||
| 				processExtBillCardHeadEditResult(props, card_head, bodyids, res.data.data); | ||||
|                 props.resMetaAfterPkorgEdit();//选择主组织以后,恢复其他字段的编辑性
 | ||||
|                 //发布小应用时,给交易类型赋值
 | ||||
|                 transtypeUtils.setValue.call(this, card_head, Field.crequesttype,Field.vrequesttypecode); | ||||
|                 // 组织不为空表体新增一行
 | ||||
|                 bodyAddRow.call(this,props,card_body_detail); | ||||
|                 RownoUtils.setRowNo(props,card_body_detail,Field_detail.vrowno); | ||||
|                 //按钮控制
 | ||||
|                 buttonController.lineSelected.call(this,props); | ||||
| 			} | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
| 
 | ||||
| function bodyAddRow(props,tableId){ | ||||
| 	props.cardTable.addRow(tableId, | ||||
|         0, | ||||
|         //初始化值
 | ||||
|         setRowDefaultValue.call(this,props), | ||||
|         false | ||||
|     ); | ||||
| } | ||||
|  | @ -0,0 +1,149 @@ | |||
| import { ajax } from 'nc-lightapp-front'; | ||||
| import { Field, Field_detail, ReqPickmCardInfo,URL } from '../../constance'; | ||||
| import { | ||||
| 	processExtBillCardBodyEditResult4Batch, | ||||
| 	createBodyAfterEventData4BatchMore | ||||
| } from '../../../../../mmpub/mmpub/pub/tool/afterEditUtil'; | ||||
| const { card_head, card_body_detail, card_body_sum ,pageId} = ReqPickmCardInfo; | ||||
| export default function batchEvents(obj) { | ||||
| 	if (!obj) { | ||||
| 		return; | ||||
| 	} | ||||
| 	let areaCode = obj.areaCode; //区域编码
 | ||||
| 	let column = obj.column; //列信息
 | ||||
| 	let newValue = obj.newValue; //变更的行信息
 | ||||
| 	let queryValue = []; | ||||
| 	let changedrows = obj.changedrows; //变更的信息,仅包含newValue和OldValue
 | ||||
| 	let currentIndex = obj.currentIndex; //当前行
 | ||||
| 	let indexs = []; | ||||
| 	let rows = []; | ||||
| 	let attrcode = column.attrcode; //列code
 | ||||
| 	let queryCondition; //统一过滤的过滤条件
 | ||||
| 	let isManyCondition = null; //是否多个过滤条件
 | ||||
| 	let pasteData = obj.pasteData; //粘贴的值
 | ||||
| 
 | ||||
| 	let sumrows = this.props.cardTable.getVisibleRows(card_body_sum); | ||||
| 	if (sumrows && sumrows.length > 0) { | ||||
| 		return; | ||||
| 	} | ||||
| 	//控制明细页签不可编辑字段
 | ||||
| 	let bodyDisableFields = ['vrowno', 'fitemsource', 'fsupplytype', 'ddeliverdate', 'bmainmaterial', 'bcanreplace', 'vchangerate']; | ||||
| 	if (bodyDisableFields.includes(attrcode)) { | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	let pk_group = this.props.form.getFormItemsValue(card_head, Field.pk_group).value; | ||||
| 	let pk_org = this.props.form.getFormItemsValue(card_head, Field.pk_org).value; | ||||
| 	if (attrcode == Field_detail.cmaterialvid) {//物料
 | ||||
| 		for (let i = 0; i < newValue.length; i++) { | ||||
| 			if (newValue[i].values.csourcebillcode && newValue[i].values.csourcebillcode.value) { | ||||
| 				continue; | ||||
| 			} | ||||
| 			newValue[i].queryCondition = { | ||||
| 				pk_org: pk_org, | ||||
| 				GridRefActionExt: URL.materialURL | ||||
| 			}; | ||||
| 			queryValue.push(newValue[i]); | ||||
| 			indexs[i] = currentIndex + i; | ||||
| 			rows[i] = [i]; | ||||
| 		} | ||||
| 		isManyCondition = true; | ||||
| 	} | ||||
| 	else if (attrcode == Field_detail.cdeliverorgvid) {//发料组织
 | ||||
| 		for (let i = 0; i < newValue.length; i++) { | ||||
| 			if (newValue[i].values.csourcebillcode && newValue[i].values.csourcebillcode.value) { | ||||
| 				continue; | ||||
| 			} | ||||
| 			let pk_org = newValue[i].values.pk_org.value; | ||||
| 			newValue[i].queryCondition = { | ||||
| 				pk_group: pk_group | ||||
| 			}; | ||||
| 			queryValue.push(newValue[i]); | ||||
| 			indexs[i] = currentIndex + i; | ||||
| 			rows[i] = [i]; | ||||
| 		} | ||||
| 		isManyCondition = true; | ||||
| 	} | ||||
| 	else if (attrcode == Field_detail.coutstockid) {//发料仓库根据发料组织过滤
 | ||||
| 		for (let i = 0; i < newValue.length; i++) { | ||||
| 			if (!newValue[i].values.cdeliverorgid || !newValue[i].values.cdeliverorgid.value) { | ||||
| 				continue; | ||||
| 			} | ||||
| 			let deliverorg = newValue[i].values.cdeliverorgid.value; | ||||
| 			newValue[i].queryCondition = { | ||||
| 				pk_org: deliverorg, | ||||
| 				GridRefActionExt: 'nccloud.web.mmpac.reqpickm.ref.OutStockRefFilter' | ||||
| 			}; | ||||
| 			queryValue.push(newValue[i]); | ||||
| 			indexs[i] = currentIndex + i; | ||||
| 			rows[i] = [i]; | ||||
| 		} | ||||
| 		isManyCondition = true; | ||||
| 	} | ||||
| 	else if (attrcode == Field_detail.castunitid) {//辅单位
 | ||||
| 		for (let i = 0; i < newValue.length; i++) { | ||||
| 			if (!newValue[i].values.cmaterialvid || !newValue[i].values.cmaterialvid.value) { | ||||
| 				continue; | ||||
| 			} | ||||
| 			let cmaterialvid = newValue[i].values.cmaterialvid.value; | ||||
| 			newValue[i].queryCondition = { | ||||
| 				cmaterialvid: cmaterialvid, | ||||
| 				GridRefActionExt: 'nccloud.web.mmpub.pub.ref.MeasdocRefFilterUtils' | ||||
| 			}; | ||||
| 			queryValue.push(newValue[i]); | ||||
| 			indexs[i] = currentIndex + i; | ||||
| 			rows[i] = [i]; | ||||
| 		} | ||||
| 		isManyCondition = true; | ||||
| 	} | ||||
| 	else { | ||||
| 		for (let i = 0; i < newValue.length; i++) { | ||||
| 			queryValue.push(newValue[i]); | ||||
| 			indexs[i] = currentIndex + i; | ||||
| 			rows[i] = [i]; | ||||
| 		} | ||||
| 	} | ||||
| 	this.props.cardTable.updateAfterBatchChange({ | ||||
| 		areaCode, | ||||
| 		column, | ||||
| 		indexs, | ||||
| 		queryValue, | ||||
| 		changedrows, | ||||
| 		pasteData, | ||||
| 		queryCondition, | ||||
| 		isManyCondition | ||||
| 	}).then((res) => { | ||||
| 		let props = res.props; | ||||
| 		changedrows = res.changedrows; | ||||
| 		indexs = res.indexs; | ||||
| 
 | ||||
| 		//执行业务的批量编辑后事件
 | ||||
| 		// afterEvent(props, areaCode, attrcode, queryValue, changerows);
 | ||||
| 		let data = createBodyAfterEventData4BatchMore( | ||||
| 			this.props, | ||||
| 			pageId, | ||||
| 			card_head, | ||||
| 			[card_body_detail,card_body_sum], | ||||
| 			areaCode, | ||||
| 			attrcode, | ||||
| 			changedrows, | ||||
| 			indexs | ||||
| 		); | ||||
| 		ajax({ | ||||
| 			url: URL.bodyDetailAfterEdit, | ||||
| 			data: data, | ||||
| 			async: false, | ||||
| 			success: (res) => { | ||||
| 				if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { | ||||
|                     //参数一:返回的公式对象 参数二:界面使用的表格类型
 | ||||
|                     this.props.dealFormulamsg(res.formulamsg, { | ||||
|                         [card_body_detail]: 'cardTable', | ||||
|                         [card_body_sum]: 'cardTable' | ||||
|                     }); | ||||
|                 } | ||||
| 				processExtBillCardBodyEditResult4Batch(props,card_body_detail, res.data, indexs); | ||||
| 				this.forceUpdate(); | ||||
| 			} | ||||
| 		}); | ||||
| 	}); | ||||
| } | ||||
|  | @ -0,0 +1,2 @@ | |||
| import bodyDetailBatchEvent from './bodyDetailBatchEvent'; | ||||
| export { bodyDetailBatchEvent}; | ||||
|  | @ -0,0 +1,68 @@ | |||
| import { Field, Field_detail, ReqPickmCardInfo } from '../../constance'; | ||||
| 
 | ||||
| const { card_head, card_body_detail, card_body_sum } = ReqPickmCardInfo; | ||||
| 
 | ||||
| /** | ||||
|  * 备料申请卡片表体编辑前事件 | ||||
|  * @author maqna | ||||
|  */ | ||||
| 
 | ||||
| let bodyids = [card_body_detail, card_body_sum]; | ||||
| export default function bodyBeforeEvent(props, moduleId, key, value, index, record) { | ||||
|     let _this = this; | ||||
|     let flag = true; | ||||
|     let constance = {}; | ||||
|     let pk_group = props.form.getFormItemsValue(card_head, Field.pk_group).value; | ||||
|     let pk_org = props.form.getFormItemsValue(card_head, Field.pk_org).value; | ||||
|     let meta = this.props.meta.getMeta(); | ||||
|     if (key == Field_detail.cmaterialvid) {//物料
 | ||||
|         meta[card_body_detail].items.map((item) => { | ||||
|             if (item.attrcode == Field_detail.cmaterialvid) {//物料
 | ||||
|                 props.cardTable.setQueryCondition(moduleId, { | ||||
|                     [item.attrcode]: () => { | ||||
|                         return { | ||||
|                             pk_org: pk_org, | ||||
|                             pk_group: pk_group | ||||
|                             //GridRefActionExt: 'nccloud.web.mmpac.reqpickm.ref.MaterialRefFilter'
 | ||||
|                         }; | ||||
|                     } | ||||
|                 }); | ||||
|             } | ||||
|         }); | ||||
|     } else if (key == Field_detail.cdeliverorgvid) {//发料组织
 | ||||
|         meta[card_body_detail].items.map((item) => { | ||||
|             if (item.attrcode == Field_detail.cdeliverorgvid) { | ||||
|                 props.cardTable.setQueryCondition(moduleId, { | ||||
|                     [item.attrcode]: () => { | ||||
|                         return { | ||||
|                             pk_group: pk_group | ||||
|                         }; | ||||
|                     } | ||||
|                 }); | ||||
|             } | ||||
|         }); | ||||
|     } else if (key == Field_detail.coutstockid) {//发料仓库根据发料组织过滤
 | ||||
|         let deliverorg = props.cardTable.getValByKeyAndIndex(card_body_detail, index, Field_detail.cdeliverorgid).value; | ||||
|         // if(!deliverorg){//发料组织为空,发料仓库不可编辑
 | ||||
|         //     flag=false;
 | ||||
|         // }else{
 | ||||
|         meta[card_body_detail].items.map((item) => { | ||||
|             if (item.attrcode == Field_detail.coutstockid) { | ||||
|                 props.cardTable.setQueryCondition(moduleId, { | ||||
|                     [item.attrcode]: () => { | ||||
|                         return { | ||||
|                             pk_org: deliverorg | ||||
|                             // deliverorg: deliverorg,
 | ||||
|                             // GridRefActionExt: 'nccloud.web.mmpac.reqpickm.ref.OutStockRefFilter'
 | ||||
|                         }; | ||||
|                     } | ||||
|                 }); | ||||
|             } | ||||
|         }); | ||||
|         //}       
 | ||||
|     } | ||||
|     return flag; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  | @ -0,0 +1,207 @@ | |||
| import { URL, Field, Field_detail, ReqPickmCardInfo, bodyfixAssts, bodyCustAndSupFild } from '../../constance'; | ||||
| import vchangerateBeforeEvent from './vchangerateBeforeEvent'; | ||||
| import vfreeBeforeEvent from './vfreeBeforeEvent'; | ||||
| import { marAsstUtils } from '../../../../../mmpub/mmpub/pub/tool'; | ||||
| 
 | ||||
| const { card_head, card_body_detail, card_body_sum } = ReqPickmCardInfo; | ||||
| 
 | ||||
| /** | ||||
|  * 备料申请卡片表体编辑前事件 | ||||
|  * @author maqna | ||||
|  */ | ||||
| 
 | ||||
| let bodyids = [card_body_detail, card_body_sum]; | ||||
| export default async function bodyBeforeEvent(props, moduleId, key, value, index, record) { | ||||
| 	let _this = this; | ||||
| 	let flag = true; | ||||
| 	let pageId = ReqPickmCardInfo.pageId; | ||||
| 	let constance = {}; | ||||
| 	let pk_group = props.form.getFormItemsValue(card_head, Field.pk_group).value; | ||||
| 	let pk_org = props.form.getFormItemsValue(card_head, Field.pk_org).value; | ||||
| 	let meta = this.props.meta.getMeta(); | ||||
| 	//如果汇总表有数据,全部字段不可编辑
 | ||||
| 	//let cmaterialvid = props.cardTable.getValByKeyAndIndex(card_body_sum, 0, 'cmaterialvid');
 | ||||
| 	let sumrows = props.cardTable.getVisibleRows(card_body_sum); | ||||
| 	if (sumrows && sumrows.length > 0) { | ||||
| 		return false; | ||||
| 	} | ||||
| 	//控制明细页签不可编辑字段
 | ||||
| 	let bodyDisableFields = [ | ||||
| 		'vmobillcode', | ||||
| 		'csourcebillcode', | ||||
| 		'vmatchcode', | ||||
| 		'vprocessno', | ||||
| 		'cfeedid', | ||||
| 		'cwkid', | ||||
| 		'bcanreplace', | ||||
| 		'bmainmaterial', | ||||
| 		'fsupplytype', | ||||
| 		'nquotadosageastnum', | ||||
| 		'nquotadosagenum', | ||||
| 		'nunitquotaastnum', | ||||
| 		'nunitquotanum', | ||||
| 		'nrequireastnum', | ||||
| 		'nrequirenum', | ||||
| 		'nreserveastnum', | ||||
| 		'nreservenum', | ||||
| 		'cunitid', | ||||
| 		'fitemsource', | ||||
| 		'ddeliverdate' | ||||
| 	]; | ||||
| 	if (bodyDisableFields.includes(key)) { | ||||
| 		return false; | ||||
| 	} | ||||
| 	if (key == Field_detail.cmaterialvid) {//物料
 | ||||
| 		let csourcebillcode = props.cardTable.getValByKeyAndIndex(card_body_detail, index, 'csourcebillcode'); | ||||
| 		if (csourcebillcode && csourcebillcode.value) {//来源备料计划时,物料不可修改
 | ||||
| 			flag = false; | ||||
| 		} else { | ||||
| 			meta[card_body_detail].items.map((item) => { | ||||
| 				if (item.attrcode == Field_detail.cmaterialvid) {//物料
 | ||||
| 					props.cardTable.setQueryCondition(moduleId, { | ||||
| 						[item.attrcode]: () => { | ||||
| 							return { | ||||
| 								pk_org: pk_org, | ||||
| 								// isfeature: 'N',
 | ||||
| 								// 过滤特征选配与可选类
 | ||||
| 								matchmode: '2', | ||||
| 								GridRefActionExt: 'nccloud.web.mmpub.pub.ref.MaterialRefSqlBuilder' | ||||
| 							}; | ||||
| 						} | ||||
| 					}); | ||||
| 				} | ||||
| 			}); | ||||
| 		} | ||||
| 	} else if (key == Field_detail.cdeliverorgvid) {//发料组织
 | ||||
| 		let csourcebillcode = props.cardTable.getValByKeyAndIndex(card_body_detail, index, 'csourcebillcode'); | ||||
| 		if (csourcebillcode && csourcebillcode.value) {//来源备料计划时,发料组织不可修改
 | ||||
| 			flag = false; | ||||
| 		} else { | ||||
| 			meta[card_body_detail].items.map((item) => { | ||||
| 				if (item.attrcode == Field_detail.cdeliverorgvid) { | ||||
| 					props.cardTable.setQueryCondition(moduleId, { | ||||
| 						[item.attrcode]: () => { | ||||
| 							return { | ||||
| 								pk_group: pk_group | ||||
| 							}; | ||||
| 						} | ||||
| 					}); | ||||
| 				} | ||||
| 			}); | ||||
| 		} | ||||
| 	} else if (key == Field_detail.coutstockid) {//发料仓库根据发料组织过滤
 | ||||
| 		let deliverorg = props.cardTable.getValByKeyAndIndex(card_body_detail, index, Field_detail.cdeliverorgid).value; | ||||
| 		if (!deliverorg) {//发料组织为空,发料仓库不可编辑
 | ||||
| 			flag = false; | ||||
| 		} else { | ||||
| 			meta[card_body_detail].items.map((item) => { | ||||
| 				if (item.attrcode == Field_detail.coutstockid) { | ||||
| 					props.cardTable.setQueryCondition(moduleId, { | ||||
| 						[item.attrcode]: () => { | ||||
| 							return { | ||||
| 								pk_org: deliverorg, | ||||
| 								GridRefActionExt: 'nccloud.web.mmpac.reqpickm.ref.OutStockRefFilter' | ||||
| 							}; | ||||
| 						} | ||||
| 					}); | ||||
| 				} | ||||
| 			}); | ||||
| 		} | ||||
| 	} else if (key == Field_detail.castunitid) {//辅单位
 | ||||
| 		let cmaterialvid = props.cardTable.getValByKeyAndIndex(card_body_detail, index, Field_detail.cmaterialvid).value; | ||||
| 		//物料为空直接返回false 不可编辑
 | ||||
| 		if (!cmaterialvid) { | ||||
| 			flag = false; | ||||
| 		} else { | ||||
| 			meta[card_body_detail].items.map((item) => { | ||||
| 				if (item.attrcode == Field_detail.castunitid) { | ||||
| 					//根据物料过滤单位
 | ||||
| 					let cmaterialvid = props.cardTable.getValByKeyAndIndex(card_body_detail, index, Field_detail.cmaterialvid).value; | ||||
| 					item.queryCondition = () => { | ||||
| 						return { | ||||
| 							cmaterialvid: cmaterialvid, | ||||
| 							GridRefActionExt: 'nccloud.web.mmpub.pub.ref.MeasdocRefFilterUtils' | ||||
| 						}; | ||||
| 					} | ||||
| 				} | ||||
| 			}); | ||||
| 			props.meta.setMeta(meta); | ||||
| 		} | ||||
| 
 | ||||
| 	} else if (key == Field_detail.vchangerate) {//换算率
 | ||||
| 		//换算率编辑前控制
 | ||||
| 		let cmaterialvid = props.cardTable.getValByKeyAndIndex(card_body_detail, index, Field_detail.cmaterialvid).value; | ||||
| 		//物料为空直接返回false 不可编辑
 | ||||
| 		if (!cmaterialvid) { | ||||
| 			flag = false; | ||||
| 		} | ||||
| 		//主单位
 | ||||
| 		let cunitid = props.cardTable.getValByKeyAndIndex(card_body_detail, index, Field_detail.cunitid).value; | ||||
| 		//单位
 | ||||
| 		let castunitid = props.cardTable.getValByKeyAndIndex(card_body_detail, index, Field_detail.castunitid).value; | ||||
| 		//主单位为空直接返回false 不可编辑
 | ||||
| 		if (!cunitid) { | ||||
| 			flag = false; | ||||
| 		} | ||||
| 		//主辅计量单位相同不允许修改换算率
 | ||||
| 		if (cunitid == castunitid) { | ||||
| 			flag = false; | ||||
| 		} else { | ||||
| 			// 主辅计量不同,根据是否固定换算率决定其编辑性   此处应该有远程调用查询
 | ||||
| 			flag = vchangerateBeforeEvent.call(this, props, moduleId, key, cmaterialvid, castunitid); | ||||
| 		} | ||||
| 
 | ||||
| 	} else if (key.startsWith('vbfree')) {//自由辅助属性
 | ||||
| 		//辅助属性
 | ||||
| 		let pk_org = props.form.getFormItemsValue(card_head, Field.pk_org).value; | ||||
| 		let materialvid = props.cardTable.getValByKeyAndIndex(card_body_detail, index, Field_detail.cmaterialvid).value; | ||||
| 		constance.key = key; | ||||
| 		constance.params = { | ||||
| 			key: key, | ||||
| 			pk_org: pk_org, | ||||
| 			cmaterialvid: materialvid, | ||||
| 			prefix: 'vbfree' | ||||
| 		}; | ||||
| 		flag = await vfreeBeforeEvent.call(this, props, constance); | ||||
| 		if (flag) { | ||||
| 			marAsstUtils.resetItem.call(this, props, props.getAppCode(), pageId, moduleId, key, record, 'mmpac.mm_reqpickm_b', 'pk_org', bodyCustAndSupFild); | ||||
| 		} | ||||
| 	} else if (bodyfixAssts.includes(key)) {//物料的4个固定辅助属性
 | ||||
| 		let materialvid = props.cardTable.getValByKeyAndIndex(card_body_detail, index, Field_detail.cmaterialvid).value; | ||||
| 		if (materialvid) { | ||||
| 			marAsstUtils.resetItem.call(this, props, props.getAppCode(), pageId, moduleId, key, record, 'mmpac.mm_reqpickm_b', 'pk_org', bodyCustAndSupFild); | ||||
| 		} | ||||
| 		flag = true; | ||||
| 	} else if (key == 'cbffileid') { | ||||
| 		let pk_org = props.form.getFormItemsValue(card_head, Field.pk_org).value; | ||||
| 		let materialvid = props.cardTable.getValByKeyAndIndex(card_body_detail, index, Field_detail.cmaterialvid).value; | ||||
| 		meta[card_body_detail].items.map((item) => { | ||||
| 			if (item.attrcode == key) { | ||||
| 				props.cardTable.setQueryCondition(moduleId, { | ||||
| 					[item.attrcode]: () => { | ||||
| 						return { | ||||
| 							cmaterialvid : materialvid, | ||||
| 							pk_org: pk_org, | ||||
| 							pk_group:window.parent.GETBUSINESSINFO().groupId, | ||||
| 						}; | ||||
| 					} | ||||
| 				}); | ||||
| 			} | ||||
| 		}); | ||||
| 		let constance = {}; | ||||
| 		constance.key = 'cbffileid'; | ||||
| 		constance.params = { | ||||
| 			key: 'cbffileid', | ||||
| 			pk_org: pk_org, | ||||
| 			cmaterialvid: materialvid, | ||||
| 			prefix: 'vbfree' | ||||
| 		}; | ||||
| 		let Cfgcodeflag = await vfreeBeforeEvent.call(this, props, constance); | ||||
| 		this.props.cardTable.setEditableByIndex(card_body_detail, index, 'cbffileid', Cfgcodeflag); | ||||
| 
 | ||||
| 	} | ||||
| 	return flag; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  | @ -0,0 +1,111 @@ | |||
| import { Field,Field_sum, ReqPickmCardInfo,bodyfixAssts } from '../../constance'; | ||||
| 
 | ||||
| const { card_head,card_body_sum } = ReqPickmCardInfo; | ||||
| 
 | ||||
| /** | ||||
|  * 备料申请卡片汇总表体编辑前事件 | ||||
|  * @author maqna | ||||
|  */ | ||||
| 
 | ||||
| export default async function bodyBeforeEvent (props, moduleId, key, value,index,record) { | ||||
|     let _this = this; | ||||
|     let flag = true; | ||||
|     let constance = {}; | ||||
|     let pk_group = props.form.getFormItemsValue(card_head, Field.pk_group).value; | ||||
|     let pk_org = props.form.getFormItemsValue(card_head, Field.pk_org).value; | ||||
|     let meta = this.props.meta.getMeta(); | ||||
|     if(key == Field_sum.csupplyorgvid ){//供应组织
 | ||||
|         meta[card_body_sum].items.map((item) => { | ||||
|             if(item.attrcode == Field_sum.csupplyorgvid){ | ||||
|                 props.cardTable.setQueryCondition(moduleId, { | ||||
|                     [item.attrcode]: () => { | ||||
| 						let cmaterialvid =props.cardTable.getValByKeyAndIndex(card_body_sum, index, Field_sum.cmaterialvid).value; | ||||
|                         return { | ||||
| 							pk_org: pk_org,//主组织
 | ||||
| 							cmaterialvid: cmaterialvid, | ||||
| 							GridRefActionExt: 'nccloud.web.mmpac.reqpickm.ref.SupplyOrgSqlBuilder' | ||||
|                         }; | ||||
|                     } | ||||
|                 }); | ||||
|             } | ||||
|         }); | ||||
|     }else if(key == Field_sum.cinstockid){//供应仓库根据供应组织过滤
 | ||||
|         let supplyorgid = props.cardTable.getValByKeyAndIndex(card_body_sum, index, 'csupplyorgid').value; | ||||
|         if(!supplyorgid){//供应组织为空,供应仓库不可编辑
 | ||||
|             flag=false; | ||||
|         }else{ | ||||
|             meta[card_body_sum].items.map((item) => { | ||||
|                 if(item.attrcode == Field_sum.cinstockid){ | ||||
|                     props.cardTable.setQueryCondition(moduleId, { | ||||
|                         [item.attrcode]: () => { | ||||
|                             return { | ||||
|                                 pk_org:supplyorgid, | ||||
|                                 GridRefActionExt: 'nccloud.web.mmpac.reqpickm.ref.OutStockRefFilter' | ||||
|                             }; | ||||
|                         } | ||||
|                     }); | ||||
|                 } | ||||
|             }); | ||||
|         }        | ||||
| 	}else if(key == Field_sum.nstockastnum||key == Field_sum.nstocknum){//备料辅数量
 | ||||
| 		//累计待转主数量+累计入库主数量>0,大于0不可编辑
 | ||||
| 		let naccpendingnum =props.cardTable.getValByKeyAndIndex(card_body_sum, index, Field_sum.naccpendingnum).value; | ||||
|         let naccstockoutnum =props.cardTable.getValByKeyAndIndex(card_body_sum, index, Field_sum.naccstockoutnum).value; | ||||
|         if(isNull(naccpendingnum)){ | ||||
|             naccpendingnum=0; | ||||
|         } | ||||
|         if(isNull(naccstockoutnum)){ | ||||
|             naccstockoutnum=0; | ||||
|         } | ||||
|         let attr = Number(naccpendingnum) + Number(naccstockoutnum); | ||||
|         if(attr > 0){ | ||||
|              flag = false; | ||||
|         } | ||||
| 	}else if (key.startsWith('vfree')) {//自由辅助属性-不可编辑
 | ||||
|         //辅助属性
 | ||||
|         flag = false; | ||||
| 		// let pk_org = props.form.getFormItemsValue(card_head, Field.pk_org).value;
 | ||||
| 		// let materialvid = props.cardTable.getValByKeyAndIndex(card_body_sum, index, Field_sum.cmaterialvid).value;
 | ||||
| 		// constance.key = key;
 | ||||
| 		// constance.params = {
 | ||||
| 		// 	key: key,
 | ||||
| 		// 	pk_org: pk_org,
 | ||||
| 		// 	cmaterialvid: materialvid,
 | ||||
| 		// 	prefix:'vfree'
 | ||||
| 		// };
 | ||||
| 		// flag = await vfreeBeforeEvent.call(this,props, constance);
 | ||||
| 		// if (flag) {
 | ||||
| 		// 	marAsstUtils.resetItem.call(this, props, '', pageId, card_body_sum, key, record);
 | ||||
| 		// }
 | ||||
| 	}else if(bodyfixAssts.includes(key)){//物料的4个固定辅助属性-不可编辑
 | ||||
|         flag = false; | ||||
|         // marAsstUtils.resetItem.call(_this, props, '', pageId, card_body_sum, key, record);
 | ||||
|         // flag = true;
 | ||||
|         // let pk_org = props.form.getFormItemsValue(card_head, Field.pk_org).value;
 | ||||
| 		// let materialvid = props.cardTable.getValByKeyAndIndex(card_body_sum, index, Field_sum.cmaterialvid).value;
 | ||||
| 		// constance.key = key;
 | ||||
| 		// constance.params = {
 | ||||
| 		// 	key: key,
 | ||||
| 		// 	pk_org: pk_org,
 | ||||
| 		// 	cmaterialvid: materialvid
 | ||||
| 		// };
 | ||||
| 		// flag = await vfreeBeforeEvent.call(this,props, constance);
 | ||||
|     }else{ | ||||
|         let item = meta[card_body_sum].items.find((item) => item.attrcode == key);  | ||||
|         item.queryCondition = () => { | ||||
|             return { | ||||
|                 pk_org: pk_org | ||||
|             }; | ||||
|         } | ||||
|     } | ||||
| 	return flag; | ||||
|    | ||||
| } | ||||
| function isNull(value) { | ||||
| 	if (value == undefined || value === '') { | ||||
| 		return true; | ||||
| 	} | ||||
| 	return false; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  | @ -0,0 +1,23 @@ | |||
| import { Field } from '../../constance'; | ||||
| import { transtypeUtils } from '../../../../../mmpub/mmpub/pub/tool'; | ||||
| import vbillcodeBeforeEvent from './vbillcodeBeforeEvent'; | ||||
| 
 | ||||
| /** | ||||
|  * 备料申请卡片表头编辑前事件 | ||||
|  * @author maqna | ||||
|  */ | ||||
| 
 | ||||
| export default async function headBeforeEvent (props, moduleId, key, value,index,record) { | ||||
|     let flag = true; | ||||
|     if(key == Field.crequesttype){ //交易类型
 | ||||
|         //交易类型发布的节点,交易类型不可编辑
 | ||||
| 		flag = transtypeUtils.beforeEdit.call(this, key, Field.crequesttype, Field.vrequesttypecode); | ||||
|     } else if(key == Field.vbillcode){ | ||||
|         flag = await vbillcodeBeforeEvent.call(this, props, moduleId, key, value, index); | ||||
|     } else  if(key == Field.vrequesttypecode){ | ||||
|         flag=false; | ||||
|     } | ||||
|     return flag; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  | @ -0,0 +1,19 @@ | |||
| import {ReqPickmCardInfo } from '../../constance'; | ||||
| const {card_head,card_body_detail,card_body_sum} = ReqPickmCardInfo; | ||||
| import bodyDetailBeforeEvent from './bodyDetailBeforeEvent'; | ||||
| import bodySumBeforeEvent from './bodySumBeforeEvent'; | ||||
| import headBeforeEvent from './headBeforeEvent'; | ||||
| 
 | ||||
| const beforeEvent = function(props, moduleId, key, value, index, record){ | ||||
|     if(moduleId == card_head){ | ||||
|         return headBeforeEvent.call(this,props, moduleId, key, value,index,record); | ||||
|     }else if(moduleId == card_body_detail){ | ||||
|         return bodyDetailBeforeEvent.call(this,props, moduleId, key, value,index,record); | ||||
|     }else if(moduleId == card_body_sum){ | ||||
|         return bodySumBeforeEvent.call(this,props, moduleId, key, value,index,record); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| export { | ||||
|     beforeEvent | ||||
| } | ||||
|  | @ -0,0 +1,52 @@ | |||
| /* | ||||
|  * @Author: zhangchangqing  | ||||
|  * @PageInfo:   表头编辑前事件 单据号编辑前事件,这类方法必须有返回值,返回true为可编辑,false为不可编辑 | ||||
|  * @Date: 2018-05-03 14:54:12  | ||||
|  * @Last Modified by: mikey.zhangchqf | ||||
|  * @Last Modified time: 2018-07-27 01:18:14 | ||||
|  */ | ||||
| 
 | ||||
| import { ajax, base, toast } from 'nc-lightapp-front'; | ||||
| import { Field, ReqPickmCardInfo, billType, URL } from '../../constance'; | ||||
| let formId = ReqPickmCardInfo.card_head; | ||||
| export default function beforeEvent(props, moduleId, key, value, data) { | ||||
| 	return new Promise(function(resolve, reject) { | ||||
| 		let pk_org = props.form.getFormItemsValue(formId, Field.pk_org); | ||||
| 		if (!pk_org || !pk_org.value) { | ||||
| 			resolve(false); | ||||
| 		} else { | ||||
| 			let data = { | ||||
| 				key: key, | ||||
| 				params: { | ||||
| 					pk_org: pk_org.value, | ||||
| 					billtype: billType | ||||
| 				} | ||||
| 			}; | ||||
| 			ajax({ | ||||
| 				url: URL.headBeforeEdit, | ||||
| 				data: data, | ||||
| 				success: (res) => { | ||||
| 					if (res.data) { | ||||
| 						let isedit = res.data.isedit; | ||||
| 						if (isedit) { | ||||
| 							resolve(isedit); | ||||
| 						} else if (res.data.message) { | ||||
| 							toast({ | ||||
| 								color: 'warning', | ||||
| 								content: res.data.message | ||||
| 							}); | ||||
| 						} | ||||
| 						resolve(false); | ||||
| 					} | ||||
| 				}, | ||||
| 				error: (error) => { | ||||
| 					toast({ | ||||
| 						color: 'warning', | ||||
| 						content: error.message | ||||
| 					}); | ||||
| 					resolve(false); | ||||
| 				} | ||||
| 			}); | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
|  | @ -0,0 +1,41 @@ | |||
| 
 | ||||
| import { ajax, toast } from 'nc-lightapp-front'; | ||||
| import { URL} from '../../constance'; | ||||
| export default function beforeEvent(props, moduleId, key, matetil, castunitid) { | ||||
| 	return new Promise(function(resolve, reject) { | ||||
| 		//debugger;
 | ||||
| 		let data = { | ||||
| 			key: key, | ||||
| 			params: { | ||||
| 				cmaterialvid: matetil, | ||||
| 				castunitid: castunitid | ||||
| 			} | ||||
| 		}; | ||||
| 		ajax({ | ||||
| 			url: URL.bodyDetailBeforeEdit, | ||||
| 			data: data, | ||||
| 			success: (res) => { | ||||
| 				//debugger;
 | ||||
| 				if (res.data) { | ||||
| 					let isedit = res.data.isedit; | ||||
| 					if (isedit) { | ||||
| 						resolve(isedit); | ||||
| 					} else if (res.data.message) { | ||||
| 						toast({ | ||||
| 							color: 'warning', | ||||
| 							content: res.data.message | ||||
| 						}); | ||||
| 					} | ||||
| 					resolve(false); | ||||
| 				} | ||||
| 			}, | ||||
| 			error: (error) => { | ||||
| 				toast({ | ||||
| 					color: 'warning', | ||||
| 					content: error.message | ||||
| 				}); | ||||
| 				resolve(false); | ||||
| 			} | ||||
| 		}); | ||||
| 	}); | ||||
| } | ||||
|  | @ -0,0 +1,48 @@ | |||
| /** | ||||
|  * 物料自由辅助属性编辑前处理,需要物料的固定辅助属性库存状态启用 | ||||
|  * 这类方法必须有返回值,返回true为可编辑,false为不可编辑 | ||||
|  */ | ||||
| import { ajax, toast } from 'nc-lightapp-front'; | ||||
| import { URL } from '../../constance'; | ||||
| 
 | ||||
| export default function(props, constance) { | ||||
| 	return new Promise(function(resolve, reject) { | ||||
| 		let pk_org = constance && constance.params && constance.params.pk_org; | ||||
| 		let materialvid = constance && constance.params && constance.params.cmaterialvid; | ||||
| 		if (pk_org != null && materialvid != null) { | ||||
| 			let data = { | ||||
| 				key: constance.key, | ||||
| 				params: constance.params | ||||
| 			}; | ||||
| 			ajax({ | ||||
| 				url: URL.bodyDetailBeforeEdit, | ||||
| 				data: data, | ||||
| 				success: (res) => { | ||||
| 					if (res.data) { | ||||
| 						let isedit = res.data.isedit; | ||||
| 						if (isedit) { | ||||
| 							resolve(isedit); | ||||
| 						} else { | ||||
| 							if (res.data.message) { | ||||
| 								toast({ | ||||
| 									color: 'warning', | ||||
| 									content: res.data.message | ||||
| 								}); | ||||
| 							} | ||||
| 							resolve(false); | ||||
| 						} | ||||
| 					} | ||||
| 				}, | ||||
| 				error: (error) => { | ||||
| 					toast({ | ||||
| 						color: 'warning', | ||||
| 						content: error.message | ||||
| 					}); | ||||
| 					resolve(false); | ||||
| 				} | ||||
| 			}); | ||||
| 		} else { | ||||
| 			resolve(false); | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
|  | @ -0,0 +1,55 @@ | |||
| import { toast } from 'nc-lightapp-front'; | ||||
| import { Field, ReqPickmCardInfo} from '../../constance' | ||||
| let { pageId,card_head, card_body_detail,card_body_sum} = ReqPickmCardInfo; | ||||
| import PickmTable from '../../pickm' | ||||
| import {getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; | ||||
| 
 | ||||
| //所有的表体区域id
 | ||||
| let bodyids = [ card_body_detail,card_body_sum]; | ||||
| 
 | ||||
| export default async function buttonClick(props) { | ||||
| 	let pk = props.form.getFormItemsValue(card_head,Field.pk_org).value; | ||||
| 	if( pk == undefined || pk == ''){ | ||||
| 		toast({ | ||||
| 			color: 'danger', | ||||
| 			content: getLangByResId(this, '5008ReqPickm-0000032') /* 国际化处理: 表头工厂为空,不可进行计算!*/ | ||||
| 		}); | ||||
| 		return; | ||||
| 	} | ||||
| 	//过滤明细表体空行
 | ||||
| 	//props.cardTable.filterEmptyRows(card_body_detail, ['cmaterialvid'], 'include');
 | ||||
| 	//将明细表体的数据删除
 | ||||
| 	//props.cardTable.selectAllRows(card_body_detail,true);
 | ||||
| 	//let detail_rows = props.cardTable.getCheckedRows(card_body_detail);
 | ||||
| 	//let rowparam = [];
 | ||||
| 	//if(detail_rows && detail_rows.length > 0){
 | ||||
| 	//	detail_rows.forEach( (item) => {
 | ||||
| 	//		rowparam.push(item.index)
 | ||||
| 	//	});
 | ||||
| 	//	props.cardTable.delRowsByIndex(card_body_detail,rowparam);//删除原有的明细表数据
 | ||||
| 	//}
 | ||||
| 	//props.cardTable.selectAllRows(card_body_detail,false);
 | ||||
| 	 | ||||
| 	let billvo = props.createExtCardDataSimple( | ||||
| 		pageId,card_head,bodyids | ||||
| 	); | ||||
| 	billvo.bodys.card_body_detail.rows=[]; | ||||
| 	let getPickmCache = value => { | ||||
| 		this.pickmCache = value; | ||||
| 	}; | ||||
|     this.pickmCache.billvo = billvo; | ||||
|     this.props.modal.show('PickmDlg',{ | ||||
|         //size: 'xlg',
 | ||||
| 		title: getLangByResId(this, '5008ReqPickm-0000040') /* 国际化处理: 计算参数*/, | ||||
| 		userControl: true, //点 确定/取消 按钮后,是否自动关闭弹框.true:手动关。false:自动关,默认false
 | ||||
| 		content: <PickmTable pickmCache={this.pickmCache} getPickmCache={getPickmCache} billType="55AC" props={this.props} />, | ||||
| 		className: 'reqpickmModal-query', | ||||
| 		closeModalEve: close.bind(this), | ||||
|         hideRightBtn: true, | ||||
|         hideLeftBtn: true | ||||
|     }); | ||||
| 
 | ||||
| } | ||||
| function close() { | ||||
| 	this.props.modal.close('PickmDlg'); | ||||
| } | ||||
|  | @ -0,0 +1,16 @@ | |||
| export default function getUrlParam(parm) { | ||||
| 	//获取父地址中的参数
 | ||||
| 		let appUrl = decodeURIComponent(window.parent.location.href).split('?'); | ||||
| 		if (appUrl && appUrl[1]){ | ||||
| 		    let appPrams = appUrl[1].split('&'); | ||||
| 		    if(appPrams && appPrams instanceof Array){ | ||||
| 				let parmObj={}; | ||||
| 				appPrams.forEach(item=>{ | ||||
| 					let key = item.split('=')[0]; | ||||
| 					let value = item.split('=')[1]; | ||||
| 					parmObj[key] = value; | ||||
| 				}) | ||||
| 				return parmObj[parm]; | ||||
| 		    } | ||||
| 		} | ||||
| } | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -0,0 +1,571 @@ | |||
| import { ajax, toast, cardCache, cacheTools } from 'nc-lightapp-front'; | ||||
| import { URL, TransferInfo, STATUS, Field_detail, ReqPickmCache, ReqPickmCardInfo, CardButton, CardButton_body_detail, ListButton, Field, sagasField } from '../../constance' | ||||
| let { pageId, card_head, card_body_detail, card_body_sum, headAction, bodyAction_detail, bodyAction_sum, pk_head } = ReqPickmCardInfo; | ||||
| import {showSuccessInfo,showErrorInfo} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; | ||||
| let { getDefData, updateCache, getNextId, deleteCacheById, getCacheById } = cardCache; | ||||
| import { buttonController } from '../viewController'; | ||||
| import getParentURlParme from './getParentURlParme'; | ||||
| import orgChangeEvent from '../afterEvent/orgChangeEvent'; | ||||
| import {getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; | ||||
| 
 | ||||
| const pageInfoClick = function (props, pk, refresh) { | ||||
|     //debugger;
 | ||||
|     let _this = this; | ||||
|     //控制明细表体收起或展开
 | ||||
|     //detail_OpenOrClose.call(this);
 | ||||
|     //推单标识
 | ||||
|     let channelType = _this.props.getUrlParam(TransferInfo.channelType); | ||||
|     if (channelType) { | ||||
|         arrange(_this, channelType); | ||||
|     } else { | ||||
|         let param = getParentURlParme('pageMsgType'); //用来判断是否是从审批中心进入该页面
 | ||||
|         let status = _this.props.getUrlParam('status'); | ||||
|         if (!status) { | ||||
|             status = STATUS.browse; | ||||
|         } | ||||
|         if (status == STATUS.browse) {//浏览
 | ||||
|             if (pk) { | ||||
|                 this.props.setUrlParam(pk); //动态修改地址栏中的id的值(路径中一定要是id,否则会导致切换下一条的时候,pk取不到)
 | ||||
|             } | ||||
|             //非新增页面获取对应数据
 | ||||
|             pk = this.props.getUrlParam('id'); | ||||
|             if (pk == undefined) { | ||||
|                 commonShow.call(this, pk); | ||||
|             } else { | ||||
|                 let data = { creqpickmid: pk, pageid: pageId }; | ||||
|                 if (data.creqpickmid === 'undefined') { | ||||
|                     this.setState({ | ||||
|                         vbillcode: '', | ||||
|                         billId: '' | ||||
|                     }); | ||||
|                     return; | ||||
|                 } | ||||
|                 if (param || this.MMPAC_REQPICKM_TYPE == 'Y') { | ||||
|                     buttonController.setCardPaginationVisible(this.props, false); //设置翻页不显示
 | ||||
|                 } else { | ||||
|                     buttonController.setCardPaginationVisible(this.props, true); //设置翻页显示
 | ||||
|                 } | ||||
|                 //查看缓存,如果存在缓存则不需要重新查询数据
 | ||||
|                 let cardData = getCacheById(pk, ReqPickmCache.dataSource); | ||||
|                 if (cardData && !refresh) { | ||||
|                     if (cardData.head) { | ||||
|                         this.props.form.setAllFormValue({ [card_head]: cardData.head[card_head] }); | ||||
|                     } | ||||
|                     let cards = cardData.bodys; | ||||
|                     if(!cards){ | ||||
|                         cards = cardData.body //推单过来保存的时候存的是body
 | ||||
|                     } | ||||
|                     //备料申请明细页签
 | ||||
|                     if (cards && cards[card_body_detail]) { | ||||
|                         let detail_rows = cards[card_body_detail].rows; | ||||
|                         let detail_nrows = []; | ||||
|                         detail_rows.forEach((item, index) => { | ||||
|                             item.rowId = null; | ||||
| 							item.rowid = null; | ||||
| 							item.key = null; | ||||
|                             let sta = item.status; | ||||
|                             if (sta != 2) {//过滤掉新增的数据
 | ||||
|                                 detail_nrows.push(item); | ||||
|                             } | ||||
|                         }) | ||||
|                         detail_nrows.forEach((item, index) => { | ||||
|                             item.rowId = null; | ||||
| 							item.rowid = null; | ||||
| 							item.key = null; | ||||
|                             let sta = item.status; | ||||
|                             if (sta == 3) { | ||||
|                                 item.status = '0'; | ||||
|                             } | ||||
|                         }); | ||||
|                         cards[card_body_detail].rows = detail_nrows; | ||||
|                         this.props.cardTable.setTableData( | ||||
|                             card_body_detail, | ||||
|                             cards[card_body_detail], | ||||
|                             null, | ||||
|                             true, | ||||
|                             true | ||||
|                         ); | ||||
|                     } else { | ||||
|                         this.props.cardTable.setTableData(card_body_detail, { rows: [] }); | ||||
|                     } | ||||
|                     //备料申请汇总页签
 | ||||
|                     if (cards && cards[card_body_sum]) { | ||||
|                         cards[card_body_sum].rows.map((item, index) => { | ||||
|                             item.rowId = null; | ||||
| 							item.rowid = null; | ||||
| 							item.key = null; | ||||
|                             let sta = item.status; | ||||
|                             if (sta == 3) { | ||||
|                                 item.status = '0'; | ||||
|                             } | ||||
|                         }); | ||||
|                         this.props.cardTable.setTableData( | ||||
|                             card_body_sum, | ||||
|                             cards[card_body_sum], | ||||
|                             null, | ||||
|                             true, | ||||
|                             true | ||||
|                         ); | ||||
|                     } else { | ||||
|                         this.props.cardTable.setTableData(card_body_sum, { rows: [] }); | ||||
|                     } | ||||
|                     //设置按钮显示
 | ||||
|                     let fbillstatus = this.props.form.getFormItemsValue(card_head, Field.fbillstatus); | ||||
|                     let vbillcode = this.props.form.getFormItemsValue(card_head, Field.vbillcode); | ||||
|                     let billId = this.props.form.getFormItemsValue(card_head, Field.creqpickmid); | ||||
|                     //如果取缓存数据,需要将控制行按钮显示的数组重置
 | ||||
|                     this.setState( | ||||
|                         { | ||||
|                             lineShowType: [],                             | ||||
|                             lineShowType_s: [], | ||||
|                             vbillcode: vbillcode.value, | ||||
|                             billId: billId.value | ||||
|                         }, | ||||
|                         () => { | ||||
|                             setBtnShow(_this, fbillstatus.value); | ||||
|                             buttonController.setBackButtonVisiable.call(this, this.props, param); | ||||
|                             //buttonController.lineSelected.call(this,this.props);
 | ||||
|                         }); | ||||
|                     //sagas,从此从列表进入卡片saga提示信息
 | ||||
|                     let sagaStatus = this.props.form.getFormItemsValue(card_head, sagasField.SAGA_STATUS); | ||||
|                     let frozen = sagaStatus && sagaStatus.value == '1' ? true : false; | ||||
|                     if (frozen) { | ||||
|                         let billpk = this.props.form.getFormItemsValue(card_head, Field.creqpickmid).value; | ||||
|                         let gtxid = this.props.form.getFormItemsValue(card_head, sagasField.SAGA_GTXID).value; | ||||
|                         this.props.socket.showToast({ | ||||
|                             gtxid: gtxid, | ||||
|                             billpk: billpk | ||||
|                         }); | ||||
|                     } | ||||
|                 } else { | ||||
|                     let conditionData = { | ||||
|                         pks: [pk], | ||||
|                         pageid: pageId, | ||||
|                         status: this.props.getUrlParam(STATUS.status) | ||||
|                     }; | ||||
|                     ajax({ | ||||
|                         url: URL.queryCard, | ||||
|                         data: conditionData, | ||||
|                         method: 'POST', | ||||
|                         success: (res) => { | ||||
|                             if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { | ||||
|                                 this.props.dealFormulamsg(res.formulamsg); | ||||
|                             } | ||||
|                             if (conditionData === undefined) { | ||||
|                                 //订单编号
 | ||||
|                                 this.setState({ | ||||
|                                     vbillcode: '', | ||||
|                                     billId: '' | ||||
|                                 }); | ||||
|                                 return; | ||||
|                             } | ||||
|                             if (res.data) { | ||||
|                                 let data = res.data; | ||||
|                                 if (data.head) { | ||||
|                                     this.props.form.setAllFormValue({ [card_head]: data.head[card_head] }); | ||||
|                                     _this.setState({ | ||||
|                                         lineShowType: [], | ||||
|                                         lineShowType_s: [], | ||||
|                                         vbillcode: res.data.head[card_head].rows[0].values.vbillcode.value, | ||||
|                                         billId: res.data.head[card_head].rows[0].values.creqpickmid.value, | ||||
|                                         billtype: res.data.head[card_head].rows[0].values.crequesttype.value | ||||
|                                     }); | ||||
|                                     let fbillstatus = res.data.head[card_head].rows[0].values.fbillstatus.value; | ||||
|                                     if (param) { | ||||
|                                         this.toggleShow(); | ||||
|                                     } else { | ||||
|                                         setBtnShow(_this, fbillstatus); | ||||
|                                         buttonController.setBackButtonVisiable.call(this, this.props, param); | ||||
|                                         //buttonController.lineSelected.call(this,this.props);
 | ||||
|                                     } | ||||
|                                 } | ||||
|                                 let pkid = res.data.head[card_head].rows[0].values.creqpickmid.value; | ||||
|                                 updateCache( | ||||
|                                     Field.creqpickmid, | ||||
|                                     pkid, | ||||
|                                     res.data, | ||||
|                                     card_head, | ||||
|                                     ReqPickmCache.dataSource | ||||
|                                 ); | ||||
|                                 if (data.bodys) { | ||||
|                                     if (data.bodys[card_body_detail]) { | ||||
|                                         //解决NCCLOUD-94561:表体分页时点击翻页
 | ||||
|                                         this.props.cardTable.setTableData( | ||||
|                                             card_body_detail, | ||||
|                                             data.bodys[card_body_detail], | ||||
|                                             null, | ||||
|                                             true, | ||||
|                                             true | ||||
|                                         ); | ||||
|                                     } | ||||
|                                     if (data.bodys[card_body_sum]) { | ||||
|                                         //解决NCCLOUD-94561:表体分页时点击翻页
 | ||||
|                                         this.props.cardTable.setTableData( | ||||
|                                             card_body_sum, | ||||
|                                             data.bodys[card_body_sum], | ||||
|                                             null, | ||||
|                                             true, | ||||
|                                             true | ||||
|                                         ); | ||||
|                                     } | ||||
|                                 } | ||||
| 
 | ||||
|                                 buttonController.setUIState.call(this, this.props, STATUS.browse); | ||||
|                                 //sagas,从此从列表进入卡片saga提示信息
 | ||||
|                                 let sagaStatus = this.props.form.getFormItemsValue(card_head, sagasField.SAGA_STATUS); | ||||
|                                 let frozen = sagaStatus && sagaStatus.value == '1' ? true : false; | ||||
|                                 if (frozen) { | ||||
|                                     let billpk = this.props.form.getFormItemsValue(card_head, Field.creqpickmid).value; | ||||
|                                     let gtxid = this.props.form.getFormItemsValue(card_head, sagasField.SAGA_GTXID).value; | ||||
|                                     this.props.socket.showToast({ | ||||
|                                         gtxid: gtxid, | ||||
|                                         billpk: billpk | ||||
|                                     }); | ||||
|                                 } | ||||
|                                 if (refresh) { | ||||
|                                     showSuccessInfo(getLangByResId(_this, '5008ReqPickmPUBMESSAGE-000017'))/* 国际化处理: 刷新成功!*/ | ||||
|                                 } | ||||
|                             } else { | ||||
|                                 if (refresh) { | ||||
|                                     showErrorInfo(getLangByResId(_this, '5008ReqPickm-0000018')); /* 国际化处理: 刷新失败!*/ | ||||
|                                 } | ||||
|                             } | ||||
|                         }, | ||||
|                         error: (res) => { | ||||
|                             showErrorInfo(res.message); | ||||
|                             commonShow.call(this, pk); | ||||
|                         } | ||||
|                     }); | ||||
|                 } | ||||
| 
 | ||||
|             } | ||||
|         } else if (status == STATUS.edit) {//修改
 | ||||
|             let conditionData = { | ||||
|                 pks: [this.props.getUrlParam('id')], | ||||
|                 pageid: pageId, | ||||
|                 status: this.props.getUrlParam(STATUS.status) | ||||
|             }; | ||||
|             ajax({ | ||||
|                 url: URL.editReqPickmCardURL, | ||||
|                 data: conditionData, | ||||
|                 method: 'POST', | ||||
|                 success: (res) => { | ||||
|                     buttonController.setCardPaginationVisible(this.props, false); //设置翻页不显示
 | ||||
|                     //buttonController.setBackButtonVisiable.call(this, this.props, param);//设置返回按钮不显示
 | ||||
|                     if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { | ||||
|                         this.props.dealFormulamsg(res.formulamsg); | ||||
|                     } | ||||
|                     if (conditionData === undefined) { | ||||
|                         //订单编号
 | ||||
|                         this.setState({ | ||||
|                             vbillcode: '', | ||||
|                             billId: '' | ||||
|                         }); | ||||
|                         return; | ||||
|                     } | ||||
|                     let data = res.data; | ||||
|                     if (data.head) { | ||||
|                         this.props.form.setAllFormValue({ [card_head]: data.head[card_head] }); | ||||
|                         _this.setState({ | ||||
|                             vbillcode: res.data.head[card_head].rows[0].values.vbillcode.value, | ||||
|                             billId: res.data.head[card_head].rows[0].values.creqpickmid.value | ||||
|                         }); | ||||
|                     } | ||||
|                     if (data.bodys) { | ||||
|                         if (data.bodys[card_body_detail]) { | ||||
|                             this.props.cardTable.setTableData( | ||||
|                                 card_body_detail, | ||||
|                                 data.bodys[card_body_detail], | ||||
|                                 null, | ||||
|                                 true, | ||||
|                                 true | ||||
|                             ); | ||||
|                         } | ||||
|                         if (data.bodys[card_body_sum]) { | ||||
|                             this.props.cardTable.setTableData( | ||||
|                                 card_body_sum, | ||||
|                                 data.bodys[card_body_sum], | ||||
|                                 null, | ||||
|                                 true, | ||||
|                                 true | ||||
|                             ); | ||||
|                         } | ||||
|                     } | ||||
|                     //修改组织的可编辑状态
 | ||||
|                     this.props.form.setFormItemsDisabled(card_head, { [Field.pk_org]: true,[Field.pk_org_v]: true }); | ||||
|                     this.toggleShow(); | ||||
|                 } | ||||
|             }) | ||||
|         } else { | ||||
|             //新增,分为复制新增和自制
 | ||||
|             let copy = this.props.getUrlParam('copy'); | ||||
|             let comeType = this.props.getUrlParam('comeType'); //判断是否是从浏览页面点击按钮的新增
 | ||||
|             let copyType = this.props.getUrlParam('copyType'); //判断是否是从浏览页面点击按钮的复制
 | ||||
|             //复制
 | ||||
|             if (copy != undefined && copy) { | ||||
|                 //从列表页复制的单据处理
 | ||||
|                 let conditionData = { | ||||
|                     pks: [this.props.getUrlParam('id')], | ||||
|                     pageid: pageId, | ||||
|                     status: this.props.getUrlParam(STATUS.status) | ||||
|                 }; | ||||
|                 this.setState({ | ||||
|                     copy_billId: this.props.getUrlParam('id'), | ||||
|                     vbillcode: '', | ||||
|                     billId: '' | ||||
|                 }); | ||||
|                 if (conditionData.pks == 'undefined') { | ||||
|                     this.props.form.EmptyAllFormValue(card_head); | ||||
|                     this.props.cardTable.setTableData(card_body_detail, { rows: [] }); | ||||
|                     this.props.cardTable.setTableData(card_body_sum, { rows: [] }); | ||||
|                     return; | ||||
|                 } | ||||
|                 //从卡片页点击复制按钮-将汇总表体
 | ||||
|                 if (copyType != undefined && copyType) { | ||||
|                     this.props.cardTable.setTableData(card_body_sum, { rows: [] }); | ||||
|                 } | ||||
|                 ajax({ | ||||
|                     url: URL.copyURL, | ||||
|                     data: conditionData, | ||||
|                     method: 'POST', | ||||
|                     success: (res) => { | ||||
|                         if (conditionData === undefined) { | ||||
|                             //订单编号
 | ||||
|                             this.setState({ | ||||
|                                 vbillcode: '', | ||||
|                                 billId: '' | ||||
|                             }); | ||||
|                             return; | ||||
|                         } | ||||
|                         if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { | ||||
|                             this.props.dealFormulamsg(res.formulamsg); | ||||
|                         } | ||||
|                         let data = res.data; | ||||
|                         if (data.head) { | ||||
|                             this.props.form.setAllFormValue({ [card_head]: data.head[card_head] }); | ||||
|                         } | ||||
|                         if (data.bodys) { | ||||
|                             if (data.bodys[card_body_detail]) { | ||||
|                                 this.props.cardTable.setTableData( | ||||
|                                     card_body_detail, | ||||
|                                     data.bodys[card_body_detail], | ||||
|                                     null, | ||||
|                                     true, | ||||
|                                     true | ||||
|                                 ); | ||||
|                             } | ||||
|                             if (data.bodys[card_body_sum]) { | ||||
|                                 this.props.cardTable.setTableData( | ||||
|                                     card_body_sum, | ||||
|                                     data.bodys[card_body_sum], | ||||
|                                     null, | ||||
|                                     true, | ||||
|                                     true | ||||
|                                 ); | ||||
|                             } | ||||
|                             buttonController.setUIState.call(this, this.props, STATUS.edit); | ||||
|                             //修改组织的可编辑状态 不可编辑
 | ||||
|                             this.props.resMetaAfterPkorgEdit(); | ||||
|                             this.props.form.setFormItemsDisabled(card_head, { [Field.pk_org]: true , [Field.pk_org_v]: true }); | ||||
|                             this.toggleShow(); | ||||
| 
 | ||||
|                         } | ||||
|                     }, | ||||
|                     error: (res) => { | ||||
|                         showErrorInfo(res.message); | ||||
|                         commonShow.call(this, pk); | ||||
|                         this.props.resMetaAfterPkorgEdit(); //恢复主组织编辑性
 | ||||
|                     } | ||||
| 
 | ||||
|                 }); | ||||
|             } | ||||
|             //从浏览态点击新增
 | ||||
|             else if (comeType != undefined && comeType) { | ||||
|                 this.props.form.EmptyAllFormValue(card_head); | ||||
|                 this.props.cardTable.setTableData(card_body_detail, { rows: [] }); | ||||
|                 this.props.cardTable.setTableData(card_body_sum, { rows: [] }); | ||||
|                 //订单编号
 | ||||
|                 this.setState({ | ||||
|                     vbillcode: '', | ||||
|                     billId: '' | ||||
|                 }); | ||||
|                 buttonController.setUIState.call(this, this.props, STATUS.add); | ||||
|                 let pk_org = getDefData(Field.pk_org, ReqPickmCache.dataSource); | ||||
|                 let org_Name = getDefData('pk_org_name', ReqPickmCache.dataSource); | ||||
|                 if (pk_org) { | ||||
|                     orgChangeEvent.call( | ||||
|                         this, | ||||
|                         this.props, | ||||
|                         card_head, | ||||
|                         Field.pk_org, | ||||
|                         { value: pk_org, display: org_Name }, | ||||
|                         null, | ||||
|                         0, | ||||
|                         { | ||||
|                             refpk: pk_org, | ||||
|                             refname: org_Name | ||||
|                         } | ||||
|                     ); | ||||
|                     this.props.form.setFormItemsDisabled(card_head, { pk_org: false ,pk_org_v: false}); | ||||
|                 } else { | ||||
|                     //订单编号
 | ||||
|                     this.setState({ | ||||
|                         copy_billId: this.props.getUrlParam('id') | ||||
|                     }); | ||||
|                     this.props.cardTable.setTableData(card_body_detail, { rows: [] }); | ||||
|                     this.props.cardTable.setTableData(card_body_sum, { rows: [] }); | ||||
|                     //获取表体行数量
 | ||||
|                     let rows_detail = this.props.cardTable.getNumberOfRows(card_body_detail); | ||||
|                     let rows_sum = this.props.cardTable.getNumberOfRows(card_body_sum); | ||||
|                     //删除表体行数
 | ||||
|                     for (let ii = 0; ii < rows_detail; ii++) { | ||||
|                         this.props.cardTable.delRowsByIndex(card_body_detail, 0); | ||||
|                     } | ||||
|                     for (let ii = 0; ii < rows_sum; ii++) { | ||||
|                         this.props.cardTable.delRowsByIndex(card_body_sum, 0); | ||||
|                     } | ||||
|                     this.props.form.setFormItemsValue(card_head, { | ||||
|                         [Field.pk_org]: { value: null, display: null }, | ||||
|                         [Field.pk_org_v]: { value: null, display: null } | ||||
|                     }); | ||||
|                     //如果无主组织,则设置其它字段的不可编辑性
 | ||||
|                     this.props.initMetaByPkorg(Field.pk_org_v); | ||||
|                 } | ||||
|                 //修改组织的可编辑状态
 | ||||
|                 this.props.form.setFormItemsDisabled(card_head, { [Field.pk_org]: false,[Field.pk_org_v]: false }); | ||||
|                 this.toggleShow(); | ||||
| 
 | ||||
|             } | ||||
|             //从列表态点击新增
 | ||||
|             else { | ||||
|                 //修改组织的可编辑状态
 | ||||
|                 this.props.form.setFormItemsDisabled(card_head, { [Field.pk_org]: false,[Field.pk_org_v]: false }); | ||||
|                 this.toggleShow(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
| function arrange(_this, channelType) { | ||||
|     let hids; | ||||
|     let bids; | ||||
|     let url; | ||||
|     let srctype = _this.props.getUrlParam('type');//来源单据类型
 | ||||
|     if (channelType == TransferInfo.pickmarrange) { | ||||
|         hids = cacheTools.get('pickmToReqpcikmBIds'); //备料计划
 | ||||
|         url = TransferInfo.pickmtoReqPickmbillURL; | ||||
|     } else if (channelType == TransferInfo.putplanarrange) { | ||||
|         hids = cacheTools.get('putplanToReqpcikmHIds'); //投放计划表头
 | ||||
|         bids = cacheTools.get('putplanToReqpcikmBIds'); //投放计划表体
 | ||||
| 
 | ||||
|         url = TransferInfo.putplantoReqPickmbillURL; | ||||
|     } | ||||
|     //let url = _this.props.getUrlParam('channelAddress');
 | ||||
|     // _this.setState({
 | ||||
|     // 	returnURL: '/' + url,
 | ||||
|     // 	appcode: appcode,
 | ||||
|     //     returnType: ''
 | ||||
|     // });
 | ||||
|     if (hids) { | ||||
|         let data = { | ||||
|             pks: hids, | ||||
|             bids: bids, | ||||
|             pagecode: pageId, | ||||
|             channelType: channelType, | ||||
|             vsrctype: srctype | ||||
|         }; | ||||
|         ajax({ | ||||
|             method: 'POST', | ||||
|             url: url, | ||||
|             data: data, | ||||
|             success: (res) => { | ||||
|                 _this.props.beforeUpdatePage(); | ||||
|                 if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { | ||||
|                     _this.props.dealFormulamsg(res.formulamsg); | ||||
|                 } | ||||
|                 if (res.data) { | ||||
|                     let array = new Array(); | ||||
|                     res.data.map((o) => { | ||||
|                         let datass = {}; | ||||
|                         datass.head = o.head; | ||||
|                         o.bodys[card_body_sum] = { areacode: 'card_body_sum', rows: [] } | ||||
|                         datass.body = o.bodys; | ||||
|                         datass.pageid = o.pageid; | ||||
|                         array.push(datass); | ||||
|                     }); | ||||
|                     _this.props.transferTable.setTransferListValue(TransferInfo.leftarea, array); | ||||
|                     _this.props.form.setFormStatus(card_head, STATUS.edit); | ||||
|                     _this.props.cardTable.setStatus(card_body_detail, STATUS.edit); | ||||
|                     _this.props.cardTable.setStatus(card_body_sum, STATUS.edit); | ||||
|                 } | ||||
|                 _this.props.updatePage(card_head, [card_body_detail, card_body_sum]); | ||||
|             } | ||||
|         }); | ||||
|     } else { | ||||
|         _this.props.transferTable.setTransferListValue(TransferInfo.leftarea, []); | ||||
|     } | ||||
| } | ||||
| function setBtnShow(_this, fbillstatus) { | ||||
|     //推单标识
 | ||||
|     let channelType = _this.props.getUrlParam(TransferInfo.channelType); | ||||
|     if (channelType) { | ||||
|         _this.props.button.setButtonVisible([CardButton.QuitTransferBill], true); | ||||
|         buttonController.setUIState.call(_this, _this.props, STATUS.browse); | ||||
|         buttonController.toggleShowTransfer.call(_this, _this.props, STATUS.browse); | ||||
|     } else { | ||||
|         // 转单的按钮-->退出转单
 | ||||
|         _this.props.button.setButtonVisible([CardButton.QuitTransferBill], false); | ||||
|         buttonController.setUIState.call(_this, _this.props, STATUS.browse); | ||||
|         buttonController.setCardButtonVisiable.call(_this, _this.props, STATUS.browse); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| //空白页面控制使用   状态为浏览态  只显示返回按钮,新增按钮
 | ||||
| function commonShow(pk) { | ||||
|     this.setState({ | ||||
|         vbillcode: '', | ||||
|         copy_billId: '' | ||||
|     }); | ||||
|     let showBackBtn = true; | ||||
|     //从复制的新增应用进入
 | ||||
|     if (this.MMPAC_REQPICKM_TYPE == 'Y') { | ||||
|         showBackBtn = false; | ||||
|     } | ||||
|     this.props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
|         showBackBtn: showBackBtn, //控制显示返回按钮: true为显示,false为隐藏 ---非必传
 | ||||
|         showBillCode: false, //控制显示单据号:true为显示,false为隐藏 ---非必传
 | ||||
|         billCode: this.state.vbillcode //修改单据号---非必传
 | ||||
|     }); | ||||
|     //buttonController.lineSelected.call(this,this.props);
 | ||||
|     buttonController.setUIState.call(this, this.props, STATUS.browse); | ||||
|     this.props.form.EmptyAllFormValue(card_head); | ||||
|     this.props.cardTable.setTableData(card_body_detail, { rows: [] }); | ||||
|     //设置明细表体默认收起
 | ||||
|     //this.props.cardTable.toggleCardTable(card_body_detail, false);//控制收起展开
 | ||||
|     this.props.cardTable.setTableData(card_body_sum, { rows: [] }); | ||||
|     buttonController.setCardPaginationVisible(this.props, false); //设置翻页不显示
 | ||||
| 
 | ||||
|     buttonController.setBlankPageButtons.call(this); | ||||
| } | ||||
| //控制明细表体的收起展开
 | ||||
| function detail_OpenOrClose() { | ||||
|     let status = this.props.getUrlParam('status'); | ||||
|     //推单标识
 | ||||
|     let channelType = this.props.getUrlParam(TransferInfo.channelType); | ||||
|     //如果是拉单或者推单页面进入 ,则显示退出转单按钮
 | ||||
|     if (channelType) { | ||||
|         status = this.indexstatus[this.curindex]; | ||||
|     } | ||||
|     if (status == STATUS.browse) {//浏览态默认收起
 | ||||
|         //设置明细表体默认收起
 | ||||
|         this.props.cardTable.toggleCardTable(card_body_detail, false);//控制收起
 | ||||
|     } else { | ||||
|         this.props.cardTable.toggleCardTable(card_body_detail, true);//控制展开
 | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| export { | ||||
|     pageInfoClick, | ||||
|     setBtnShow, | ||||
|     detail_OpenOrClose, | ||||
|     commonShow | ||||
| } | ||||
|  | @ -0,0 +1,9 @@ | |||
| import {pageInfoClick} from './pageInfoClick'; | ||||
| const pageInfoClickPage =  function(props, pk, refresh) { | ||||
|     pageInfoClick.call(this,props,pk); | ||||
| } | ||||
| 
 | ||||
| export { | ||||
|     pageInfoClickPage | ||||
| } | ||||
| 
 | ||||
|  | @ -0,0 +1,489 @@ | |||
| //主子表卡片
 | ||||
| import React, { Component } from 'react'; | ||||
| import { createPage, base, high, cardCache } from 'nc-lightapp-front'; | ||||
| const { BillTrack } = high; | ||||
| import NCUploader from 'uap/common/components/NCUploader' | ||||
| const { NCAffix, NCDiv } = base; | ||||
| const { getCurrentLastId } = cardCache; | ||||
| import { URL, STATUS, billType, ReqPickmCache, ReqPickmCardInfo, CardButton, Field, Field_detail, TransferInfo } from '../constance'; | ||||
| import initTemplate from './init/initTemplate'; | ||||
| import { RownoUtils } from '../../../../mmpub/mmpub/pub/tool/cardTableTools'; | ||||
| import { buttonClick } from './btnClicks'; | ||||
| import { pageInfoClickPage } from './btnClicks/pageInfoClickPage' | ||||
| import { afterEvent } from './afterEvent'; | ||||
| import { bodyDetailBatchEvent } from './batchEvents'; | ||||
| import { beforeEvent } from './beforeEvent'; | ||||
| import { buttonController } from './viewController'; | ||||
| import { setRowDefaultValue } from './btnClicks'; | ||||
| import { initLang, getLangByResId } from '../../../../mmpub/mmpub/pub/tool/multiLangUtil'; | ||||
| import inputChange from '../../../../mmpub/mmpub/pub/tool/rownoInputUtil'; | ||||
| 
 | ||||
| const { pageId, card_head, card_tail, card_body_detail, card_body_sum, headAction, bodyAction_detail, bodyAction_sum, pk_head, pk_body_detail, pk_body_sum } = ReqPickmCardInfo; | ||||
| 
 | ||||
| 
 | ||||
| class ReqpickmCard extends Component { | ||||
|     constructor(props) { | ||||
|         super(props); | ||||
|         props.use.form(card_head); | ||||
|         props.use.cardTable(card_body_detail, card_body_sum); | ||||
| 
 | ||||
|         this.curindex = 0; | ||||
|         this.state = { | ||||
|             backVisible: true, | ||||
|             hideAdd: false, | ||||
|             hideDel: false, | ||||
|             copyRowDatas: null, //复制行数据
 | ||||
|             showTrack: false, //单据追溯            
 | ||||
|             show: false, //审批详情
 | ||||
|             lineShowType: [], //通过数组的方式控制 列按钮显示   1-收起   0-展开
 | ||||
|             lineShowType_s: [], //通过数组的方式控制 列按钮显示   1-收起   0-展开,汇总页签
 | ||||
|             target: null, //附件管理弹出框目标位置
 | ||||
|             showUploader: false, //是否显示附件管理弹出框
 | ||||
|             refreshFlag: 0, | ||||
|             editable: false, //页面是否可以编辑
 | ||||
|             status: STATUS.browse, // 页面标志,默认浏览态
 | ||||
|             vbillcode: '', | ||||
|             creqpickmid: '', | ||||
|             //listdata: '', //转单后编辑数据缓存
 | ||||
|             currentindex: 0, //转单后编辑数据缓存
 | ||||
|             returnURL: null, //推单
 | ||||
|             appcode: null, //推单
 | ||||
|             returnType: null, //推单
 | ||||
|             pickm_hid: null,//推单
 | ||||
|         }; | ||||
|         this.indexstatus = {};//推单,多单编辑状态索引
 | ||||
|         //备料计划缓存
 | ||||
|         this.pickmCache = { | ||||
|             pickmVO: null, | ||||
|             pickmTempVO: null, | ||||
|             billvo: null | ||||
|         }; | ||||
|         this.MMPAC_REQPICKM_TYPE = 'N'; //判断是否是从新增小应用过来的
 | ||||
|         initLang(this, ['5008ReqPickm'], 'mmpac', initTemplate.bind(this, this.props)); | ||||
|     } | ||||
| 
 | ||||
|     // componentDidMount() {}
 | ||||
| 
 | ||||
|     componentWillMount() { | ||||
|         //关闭浏览器
 | ||||
|         window.onbeforeunload = () => { | ||||
|             let statusd = this.props.cardTable.getStatus(card_body_detail); | ||||
|             let statuss = this.props.cardTable.getStatus(card_body_sum); | ||||
|             let statush = this.props.form.getFormStatus(card_head); | ||||
| 
 | ||||
|             if (statusd == STATUS.edit || statuss == STATUS.edit || statush == STATUS.edit) { | ||||
|                 return getLangByResId(this, '5008ReqPickm-000007');/* 当前单据未保存,您确认离开此页面?*/ | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     //切换页面状态
 | ||||
|     toggleShow = () => { | ||||
|         //debugger;
 | ||||
|         let status = this.props.getUrlParam('status'); | ||||
|         //推单标识
 | ||||
|         let channelType = this.props.getUrlParam(TransferInfo.channelType); | ||||
|         //如果是拉单或者推单页面进入 ,则显示退出转单按钮
 | ||||
|         if (channelType) { | ||||
|             status = this.indexstatus[this.curindex]; | ||||
|             this.props.button.setButtonVisible([CardButton.QuitTransferBill], true); | ||||
|             this.props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
|                 showBackBtn: true, //控制显示返回按钮: true为显示,false为隐藏 ---非必传
 | ||||
|                 showBillCode: true, //控制显示单据号:true为显示,false为隐藏 ---非必传
 | ||||
|                 billCode: this.props.form.getFormItemsValue(ReqPickmCardInfo.card_head, Field.vbillcode).value //修改单据号
 | ||||
|             }); | ||||
|             if (!status) { | ||||
|                 status = 'add'; | ||||
|             } | ||||
|             buttonController.setUIState.call(this, this.props, status); | ||||
|             buttonController.toggleShowTransfer.call(this, this.props, status); | ||||
|         } else { | ||||
|             this.props.button.setButtonVisible([CardButton.QuitTransferBill], false); | ||||
|             buttonController.setBackButtonVisiable.call(this, this.props); | ||||
|             if (!status) { | ||||
|                 status = 'add'; | ||||
|             } | ||||
|             buttonController.setUIState.call(this, this.props, status); | ||||
|             buttonController.setCardButtonVisiable.call(this, this.props, status); | ||||
|         } | ||||
| 
 | ||||
|     }; | ||||
|     // 附件管理关闭
 | ||||
|     onHideUploader = () => { | ||||
|         this.setState({ | ||||
|             showUploader: false | ||||
|         }); | ||||
|     }; | ||||
|     //备料申请明细页签
 | ||||
|     getDetailBodyBtn = () => { | ||||
|         return ( | ||||
|             <div className="table-head-btns"> | ||||
|                 { | ||||
|                     this.props.button.createButtonApp({ | ||||
|                         area: bodyAction_detail, | ||||
|                         onButtonClick: buttonClick.bind(this) | ||||
|                     }) | ||||
|                 } | ||||
|             </div> | ||||
|         ); | ||||
|     } | ||||
|     //备料申请汇总页签
 | ||||
|     getSumBodyBtn = () => { | ||||
|         return ( | ||||
|             <div className="table-head-btns"> | ||||
|                 { | ||||
|                     this.props.button.createButtonApp({ | ||||
|                         area: bodyAction_sum, | ||||
|                         onButtonClick: buttonClick.bind(this) | ||||
|                     }) | ||||
|                 } | ||||
|             </div> | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     cancelSureEvent() { | ||||
|         if (this.props.getUrlParam('status') === STATUS.add) { | ||||
|             let pk = getCurrentLastId(ReqPickmCache.dataSource); | ||||
|             this.getDataForCache(pk, () => { | ||||
|                 //编辑态取消时,修正一下页面状态
 | ||||
|                 this.props.pushTo('/card', { | ||||
|                     status: STATUS.browse, | ||||
|                     id: this.props.getUrlParam('id') | ||||
|                 }) | ||||
| 
 | ||||
|                 this.props.form.setFormStatus(card_head, STATUS.browse) | ||||
|                 this.props.cardTable.setStatus(card_body_detail, STATUS.browse) | ||||
|             }) | ||||
|         } | ||||
|         this.setState({ | ||||
|             backVisible: true | ||||
|         }) | ||||
|     } | ||||
| 
 | ||||
|     getDataForCache(pk, callback) { | ||||
|         if (!pk) { | ||||
|             this.props.pushTo('/list', {}) | ||||
|             return | ||||
|         } | ||||
|         if (callback && typeof callback == 'function') { | ||||
|             callback.call(this) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     //侧拉展开中的删行
 | ||||
|     delLineForCardEdit = () => { | ||||
|         buttonController.lineSelected.bind(this) | ||||
|     }; | ||||
|     //执行增行之前的判断:返回true就是可增行,返回false就是不可
 | ||||
|     delLineForCardEditBefore = (props, moduleId, modelIndex, record) => { | ||||
|         return buttonController.modelRowEditBefore.call(this, props, moduleId, modelIndex, record); | ||||
|     } | ||||
|     //执行增行之前的判断
 | ||||
|     addLineForCardEditBefore = (props, moduleId, modelIndex, record) => { | ||||
|         return buttonController.modelRowEditBefore.call(this, props, moduleId, modelIndex, record); | ||||
|     } | ||||
|     //侧拉展开中的增行
 | ||||
|     addLineForCardEdit = (props, moduleId, modelIndex) => { | ||||
|         props.cardTable.setValByKeysAndIndex( | ||||
|             card_body_detail, | ||||
|             modelIndex + 1, | ||||
|             setRowDefaultValue.call(this, props) | ||||
|         ); | ||||
|         RownoUtils.setRowNo(props, card_body_detail, 'vrowno'); | ||||
|     }; | ||||
|     //获取缓存
 | ||||
|     getDatasource = (transfer, channelType) => { | ||||
|         if (transfer) { | ||||
|             return; | ||||
|         } else { | ||||
|             if (channelType == TransferInfo.pickmarrange) { | ||||
|                 return TransferInfo.channelTypeDataSource1; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     //点击转单缩略图的钩子函数
 | ||||
|     onTransferSelect = (record, status, index, formStatus) => { | ||||
|         this.curindex = parseInt(index); | ||||
|         this.setState({ | ||||
|             index: index | ||||
|         }); | ||||
|         let isEdit = status ? 'browse' : 'edit'; | ||||
|         if (this.indexstatus[index]) { | ||||
|             if (this.indexstatus[index] == 'browse') { | ||||
|                 isEdit = 'browse'; | ||||
|             } else if (this.indexstatus[index] == 'edit') { | ||||
|                 isEdit = 'edit'; | ||||
|             } | ||||
|         } | ||||
|         this.indexstatus[index] = isEdit; | ||||
|         this.props.beforeUpdatePage(); | ||||
|         let head = record && record.head && record.head[card_head]; | ||||
|         this.props.form.setAllFormValue({ [card_head]: head }); | ||||
| 
 | ||||
|         let card_detail = record && record.body && record.body[card_body_detail]; | ||||
|         card_detail = card_detail != null ? card_detail : { rows: [] }; | ||||
|         // let card_sum = record && record.body && record.body[card_body_sum].rows;
 | ||||
|         // card_sum = card_sum != null ? card_sum : { rows: [] };
 | ||||
|         this.props.cardTable.setTableData(card_body_detail, card_detail, null, true, true); | ||||
|         this.props.cardTable.setTableData(card_body_sum, record.body[card_body_sum], null, true, true); | ||||
|         this.props.form.setFormItemsDisabled(card_head, { ['pk_org']: true, ['pk_org_v']: true }); | ||||
|         let billstatus = record.head.card_head.rows[0].values.fbillstatus.value; | ||||
|         this.state.vbillcode = record.head.card_head.rows[0].values.vbillcode.value; | ||||
|         let billId = record.head.card_head.rows[0].values['creqpickmid'].value; | ||||
|         this.setState({ billstatus: billstatus, billId: billId, status: isEdit }); | ||||
|         this.props.updatePage(card_head, [card_body_detail, card_body_sum]); | ||||
| 
 | ||||
|         buttonController.setUIState.call(this, this.props, isEdit); | ||||
|         this.toggleShow(); | ||||
|     } | ||||
| 
 | ||||
|     render() { | ||||
|         let { cardTable, form, button, modal, cardPagination, transferTable, socket } = this.props; | ||||
|         const { createBillHeadInfo } = this.props.BillHeadInfo; | ||||
|         const { createCardPagination } = cardPagination; | ||||
|         const { createTransferList } = transferTable; | ||||
|         let { createForm } = form; | ||||
|         let { createCardTable } = cardTable; | ||||
|         let { createButtonApp } = button; | ||||
|         let { createModal } = modal; | ||||
|         let status = this.props.getUrlParam(STATUS.status); | ||||
|         //转单
 | ||||
|         let transfer = this.props.getUrlParam(TransferInfo.type); | ||||
|         let channelType = this.props.getUrlParam(TransferInfo.channelType); | ||||
|         let transferDatasource = this.getDatasource(transfer, channelType); | ||||
|         if (transfer || channelType) { | ||||
|             return ( | ||||
|                 <div id="transferCard" className="nc-bill-transferList"> | ||||
|                     <NCAffix> | ||||
|                         <NCDiv areaCode={NCDiv.config.HEADER} className='nc-bill-header-area'> | ||||
|                             <div className='header-title-search-area'> | ||||
|                                 {createBillHeadInfo({ | ||||
|                                     title: this.props.getSearchParam('n'),//getLangByResId(this, '5008ReqPickm-000001'), //标题/* 国际化处理: 备料申请单*/
 | ||||
|                                     billCode: '', //单据号
 | ||||
|                                     backBtnClick: buttonClick.bind(this, this.props, CardButton.Back) | ||||
|                                 })} | ||||
|                             </div> | ||||
|                             <div className="header-button-area"> | ||||
|                                 {/*sagas*/} | ||||
|                                 {button.createErrorFlag({ | ||||
|                                     headBtnAreaCode: headAction | ||||
|                                 })} | ||||
|                                 {createButtonApp({ | ||||
|                                     area: headAction,//按钮注册中的按钮区域
 | ||||
|                                     onButtonClick: buttonClick.bind(this) | ||||
|                                 })} | ||||
|                                 <BillTrack | ||||
|                                     show={this.state.showTrack} | ||||
|                                     close={() => { | ||||
|                                         this.setState({ showTrack: false }); | ||||
|                                     }} | ||||
|                                     pk={this.state.creqpickmid} | ||||
|                                     type={billType} | ||||
|                                 /> | ||||
|                             </div> | ||||
|                         </NCDiv> | ||||
|                     </NCAffix> | ||||
|                     <div className="nc-bill-transferList-content"> | ||||
|                         {/* 转单 */} | ||||
|                         {createTransferList({ | ||||
|                             headcode: card_head, | ||||
|                             bodycode: [card_body_detail, card_body_sum], | ||||
|                             dataSource: transferDatasource, | ||||
|                             transferListId: TransferInfo.leftarea, //转单列表id
 | ||||
|                             onTransferItemSelected: (record, status, index, formStatus) => { | ||||
|                                 this.onTransferSelect(record, status, index, formStatus); | ||||
|                             }, | ||||
|                             //手工选择左侧卡片
 | ||||
|                             onTransferItemClick: (record, index, status, formStatus) => { | ||||
|                                 // 如果编辑过,则弹框提示,让用户选择是否继续
 | ||||
|                                 this.onTransferSelect(record, index, status, formStatus); | ||||
|                             } | ||||
|                         })} | ||||
|                         <div className="transferList-content-right nc-bill-extCard-2"> | ||||
|                             <div className="nc-bill-form-area"> | ||||
|                                 {createForm(card_head, { | ||||
|                                     onBeforeEvent: beforeEvent.bind(this), | ||||
|                                     onAfterEvent: afterEvent.bind(this) | ||||
|                                 })} | ||||
|                             </div> | ||||
|                             <div className="nc-bill-table-area"> | ||||
|                                 {createCardTable(card_body_detail, { | ||||
|                                     tableHead: this.getDetailBodyBtn.bind(this), | ||||
|                                     hideModelSave: true,//整单保存是否显示
 | ||||
|                                     modelDelRowBefore: this.delLineForCardEditBefore, | ||||
|                                     modelDelRow: this.delLineForCardEdit,//侧拉窗口中的删行
 | ||||
|                                     modelAddRowBefore: this.addLineForCardEditBefore, | ||||
|                                     modelAddRow: this.addLineForCardEdit,//侧拉窗口中的增行
 | ||||
|                                     onBeforeEvent: beforeEvent.bind(this), | ||||
|                                     onAfterEvent: afterEvent.bind(this), | ||||
|                                     showIndex: true, | ||||
|                                     showCheck: true, | ||||
|                                     adaptionHeight: false, | ||||
|                                     inputChange: inputChange.bind(this, Field_detail.vrowno), | ||||
|                                     onSelected: buttonController.lineSelected.bind(this), | ||||
|                                     onSelectedAll: buttonController.lineSelected.bind(this), | ||||
|                                     onBatchSelected: buttonController.lineSelected.bind(this), | ||||
|                                     onBatchChange: bodyDetailBatchEvent.bind(this), | ||||
|                                 })} | ||||
|                             </div> | ||||
|                             <div className="nc-bill-tableTab-area"> | ||||
|                                 {createCardTable(card_body_sum, { | ||||
|                                     tableHead: this.getSumBodyBtn.bind(this), | ||||
|                                     showIndex: true, | ||||
|                                     showCheck: true, | ||||
|                                     hideModelSave: true, | ||||
|                                     hideDel: true, | ||||
|                                     hideAdd: true, | ||||
|                                     adaptionHeight: true, | ||||
|                                     onBeforeEvent: beforeEvent.bind(this), | ||||
|                                     onAfterEvent: afterEvent.bind(this), | ||||
|                                     inputChange: inputChange.bind(this, Field_detail.vrowno), | ||||
|                                     onSelected: buttonController.lineSelected4Sum.bind(this), | ||||
|                                     onSelectedAll: buttonController.lineSelected4Sum.bind(this), | ||||
|                                     onBatchSelected: buttonController.lineSelected4Sum.bind(this), | ||||
|                                 })} | ||||
|                             </div> | ||||
|                             {createModal('PickmDlg')} | ||||
|                             {/* 附件管理 */} | ||||
|                             <div>{this.state.showUploader | ||||
|                                 && <NCUploader billId={this.state.creqpickmid} onHide={this.onHideUploader} />} | ||||
|                             </div> | ||||
|                             {createModal('orgChange')} | ||||
|                             {createModal('ResumeMessageDlg', { | ||||
|                                 className: 'iframe-modal', | ||||
|                                 size: 'xlg' | ||||
|                             })} | ||||
|                             {createModal('delModal')} | ||||
|                             {createModal('MessageDlg')} | ||||
|                         </div> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             ); | ||||
|         } else { | ||||
|             return ( | ||||
|                 <div className='nc-bill-extCard-2'> | ||||
|                     {socket.connectMesg({ | ||||
|                         headBtnAreaCode: headAction, // 表头按钮区域ID
 | ||||
|                         formAreaCode: card_head, // 表头Form区域ID
 | ||||
|                         billtype: billType, | ||||
|                         billpkname: Field.creqpickmid, | ||||
|                         dataSource: ReqPickmCache.dataSource | ||||
|                     })} | ||||
|                     <div className="nc-bill-top-area"> | ||||
|                         <NCAffix> | ||||
|                             <NCDiv areaCode={NCDiv.config.HEADER} className='nc-bill-header-area'> | ||||
|                                 <div className='header-title-search-area'> | ||||
|                                     {createBillHeadInfo({ | ||||
|                                         title: this.props.getSearchParam('n'),// getLangByResId(this, '5008ReqPickm-000001'), //标题/* 国际化处理: 备料申请单*/
 | ||||
|                                         billCode: '', //单据号
 | ||||
|                                         backBtnClick: buttonClick.bind(this, this.props, CardButton.Back) | ||||
|                                     })} | ||||
|                                 </div> | ||||
|                                 <div className="header-button-area"> | ||||
|                                     {/*sagas*/} | ||||
|                                     {this.props.button.createErrorFlag({ | ||||
|                                         headBtnAreaCode: headAction | ||||
|                                     })} | ||||
|                                     {createButtonApp({ | ||||
|                                         area: headAction,//按钮注册中的按钮区域
 | ||||
|                                         onButtonClick: buttonClick.bind(this) | ||||
|                                     })} | ||||
| 
 | ||||
|                                     {createCardPagination({ | ||||
|                                         handlePageInfoChange: pageInfoClickPage.bind(this), | ||||
|                                         dataSource: ReqPickmCache.dataSource | ||||
|                                     })} | ||||
|                                     {/* 单据追溯 */} | ||||
|                                     <BillTrack | ||||
|                                         show={this.state.showTrack} | ||||
|                                         close={() => { | ||||
|                                             this.setState({ showTrack: false }); | ||||
|                                         }} | ||||
|                                         pk={this.state.creqpickmid} | ||||
|                                         type={billType} | ||||
|                                     /> | ||||
|                                 </div> | ||||
|                             </NCDiv> | ||||
|                         </NCAffix> | ||||
|                         <div className="nc-bill-form-area"> | ||||
|                             {createForm(card_head, { | ||||
|                                 onBeforeEvent: beforeEvent.bind(this), | ||||
|                                 onAfterEvent: afterEvent.bind(this) | ||||
|                             })} | ||||
|                         </div> | ||||
|                     </div> | ||||
|                     <div className="nc-bill-bottom-area"> | ||||
|                         <div className="nc-bill-table-area"> | ||||
|                             {createCardTable(card_body_detail, { | ||||
|                                 tableHead: this.getDetailBodyBtn.bind(this), | ||||
|                                 hideModelSave: true,//整单保存是否显示
 | ||||
|                                 modelDelRowBefore: this.delLineForCardEditBefore, | ||||
|                                 modelDelRow: this.delLineForCardEdit,//侧拉窗口中的删行
 | ||||
|                                 modelAddRowBefore: this.addLineForCardEditBefore, | ||||
|                                 modelAddRow: this.addLineForCardEdit,//侧拉窗口中的增行
 | ||||
|                                 onBeforeEvent: beforeEvent.bind(this), | ||||
|                                 onAfterEvent: afterEvent.bind(this), | ||||
|                                 showIndex: true, | ||||
|                                 showCheck: true, | ||||
|                                 adaptionHeight: false, | ||||
|                                 inputChange: inputChange.bind(this, Field_detail.vrowno), | ||||
|                                 onSelected: buttonController.lineSelected.bind(this), | ||||
|                                 onSelectedAll: buttonController.lineSelected.bind(this), | ||||
|                                 onBatchChange: bodyDetailBatchEvent.bind(this), | ||||
|                                 onBatchSelected: buttonController.lineSelected.bind(this), | ||||
|                                 //onHeadAngleToggle: this.headAngleToggle//表头左侧的收起展开小三角
 | ||||
|                                 // modelAddRow: () => {
 | ||||
|                                 //     RownoUtils.setRowNo(this.props,card_body_detail,Field_detail.vrowno)
 | ||||
|                                 // }
 | ||||
|                             })} | ||||
|                         </div> | ||||
|                         <div className="nc-bill-tableTab-area"> | ||||
|                             {createCardTable(card_body_sum, { | ||||
|                                 tableHead: this.getSumBodyBtn.bind(this), | ||||
|                                 showIndex: true, | ||||
|                                 showCheck: true, | ||||
|                                 hideModelSave: true, | ||||
|                                 hideDel: true, | ||||
|                                 hideAdd: true, | ||||
|                                 adaptionHeight: true, | ||||
|                                 onBeforeEvent: beforeEvent.bind(this), | ||||
|                                 onAfterEvent: afterEvent.bind(this), | ||||
|                                 inputChange: inputChange.bind(this, Field_detail.vrowno), | ||||
|                                 onSelected: buttonController.lineSelected4Sum.bind(this), | ||||
|                                 onSelectedAll: buttonController.lineSelected4Sum.bind(this), | ||||
|                                 onBatchSelected: buttonController.lineSelected4Sum.bind(this), | ||||
|                             })} | ||||
|                         </div> | ||||
|                         {createModal('PickmDlg')} | ||||
|                     </div> | ||||
|                     {/* 附件管理 */} | ||||
|                     <div>{this.state.showUploader | ||||
|                         && <NCUploader billId={this.state.creqpickmid} onHide={this.onHideUploader} />} | ||||
|                     </div> | ||||
|                     {createModal('orgChange')} | ||||
|                     {createModal('ResumeMessageDlg', { | ||||
|                         className: 'iframe-modal', | ||||
|                         size: 'xlg' | ||||
|                     })} | ||||
|                     {createModal('delModal')} | ||||
|                     {createModal('MessageDlg')} | ||||
|                 </div> | ||||
|             ) | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| ReqpickmCard = createPage({ | ||||
|     // initTemplate: [],
 | ||||
|     // mutiLangCode: '5008ReqPickm',
 | ||||
|     billinfo: { | ||||
|         billtype: 'extcard', //一主多子
 | ||||
|         pagecode: pageId, | ||||
|         headcode: card_head, | ||||
|         bodycode: [card_body_detail, card_body_sum] | ||||
|     }, | ||||
|     orderOfHotKey: [card_head, card_body_detail, card_body_sum] | ||||
| })(ReqpickmCard); | ||||
| 
 | ||||
| export default ReqpickmCard | ||||
|  | @ -0,0 +1,2 @@ | |||
| import initTemplate from './initTemplate'; | ||||
| export { initTemplate }; | ||||
|  | @ -0,0 +1,354 @@ | |||
| import { cardCache,pageTo } from 'nc-lightapp-front'; | ||||
| import { URL, STATUS, Field, Field_detail, ReqPickmCardInfo, ReqPickmCache } from '../../constance'; | ||||
| import { pageInfoClick } from '../btnClicks/pageInfoClick'; | ||||
| import orgChangeEvent from '../afterEvent/orgChangeEvent'; | ||||
| import { buttonController } from '../viewController'; | ||||
| import { buttonClick } from '../btnClicks'; | ||||
| import { transtypeUtils } from '../../../../../mmpub/mmpub/pub/tool'; | ||||
| import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; | ||||
| import { columnSortUtils } from '../../../../../mmpub/mmpub/pub/tool/columnSortUtils'; | ||||
| 
 | ||||
| let { openAppByBilltype } = pageTo; | ||||
| let { setDefData } = cardCache; | ||||
| const { pageId, card_head, card_body_detail, card_body_sum, headAction, bodyAction_detail, bodyAction_sum } = ReqPickmCardInfo; | ||||
| 
 | ||||
| export default function () { | ||||
|     let _this = this; | ||||
| 
 | ||||
|     this.props.createUIDom( | ||||
|         { | ||||
|             pagecode: pageId //卡片界面的code
 | ||||
|         }, | ||||
|         data => { | ||||
|             if (data) { | ||||
|                 if (data.template) { | ||||
|                     let meta = data.template; | ||||
|                     //发布的交易类型判断参数
 | ||||
|                     if (data.context.paramMap && data.context.paramMap.transtype) { | ||||
|                         transtypeUtils.init.call(this, data.context); | ||||
|                     } | ||||
|                     modifierMeta.call(this, this.props, meta) | ||||
|                     let status = this.props.getUrlParam('status'); | ||||
|                     if (!status) { | ||||
|                         status = STATUS.browse; | ||||
|                     } | ||||
|                     //是否是从新增小应用过来的
 | ||||
|                     if (data.context.paramMap && data.context.paramMap.MMPAC_REQPICKM_TYPE) { | ||||
|                         this.MMPAC_REQPICKM_TYPE = data.context.paramMap.MMPAC_REQPICKM_TYPE; | ||||
|                         status = STATUS.add; | ||||
|                         this.props.setUrlParam({ status: STATUS.add }); | ||||
|                     } | ||||
|                     if (status == STATUS.add) { | ||||
|                         this.props.meta.setMeta(meta, toggleShow.bind(_this, data)); | ||||
| 
 | ||||
|                     } else { | ||||
|                         this.props.meta.setMeta(meta, addDataSource.bind(_this, data)); | ||||
|                     } | ||||
| 
 | ||||
|                 } | ||||
|                 if (data.button) { | ||||
|                     let button = data.button; | ||||
|                     this.props.button.hideButtonsByAreas([headAction, bodyAction_detail, bodyAction_sum]); | ||||
|                     this.props.button.setButtons(button); | ||||
|                     pageInfoClick.call(this); | ||||
|                     //buttonController.setCardButtonVisiable.call(this,this.props,this.props.getUrlParam(STATUS.status));
 | ||||
|                 } | ||||
| 
 | ||||
|                 //判断生产模式:1-流程;2-离散
 | ||||
|                 let appcode = _this.props.getAppCode(); | ||||
|                 if (appcode.startsWith('5008')) { | ||||
|                     setDefData('fprodmode', ReqPickmCache.dataSource, parseInt(1)); | ||||
|                 } else if (appcode.startsWith('5009')) { | ||||
|                     setDefData('fprodmode', ReqPickmCache.dataSource, parseInt(2)); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     ) | ||||
| } | ||||
| 
 | ||||
| function modifierMeta(props, meta) { | ||||
|     //模板参照过滤设置
 | ||||
|     let status = props.getUrlParam(STATUS.status); | ||||
|     meta[card_head].status = status; | ||||
|     meta[card_body_detail].status = status; | ||||
|     meta[card_body_sum].status = status; | ||||
|     //编辑前 参照过滤
 | ||||
|     meta[card_head].items.map((item) => { | ||||
|         if (item.attrcode == Field.pk_org) { | ||||
|             item.queryCondition = () => { | ||||
|                 //主组织权限过滤
 | ||||
|                 return { GridRefActionExt: 'nccloud.web.mmpub.pub.ref.AppPermissionOrgRefFilter' } | ||||
|             }; | ||||
|         } else if (item.attrcode == Field.pk_org_v) { | ||||
|             item.queryCondition = () => { | ||||
|                 //主组织权限过滤
 | ||||
|                 return { GridRefActionExt: 'nccloud.web.mmpub.pub.ref.AppPermissionOrgVidRefFilter' } | ||||
|             }; | ||||
|         } else if (item.attrcode == Field.crequesttype) {//根据单据类型过滤交易类型
 | ||||
|             item.queryCondition = () => { | ||||
|                 return { | ||||
|                     parentbilltype: '55AC' | ||||
|                 }; | ||||
|             }; | ||||
|         } else if (item.attrcode == Field.fbillstatus) { | ||||
|             //设置单据状态不可编辑
 | ||||
|             props.form.setFormItemsDisabled(card_head, { | ||||
|                 [Field.fbillstatus]: true | ||||
|             }); | ||||
|         } | ||||
|         // else if(item.attrcode == Field.vbillcode){
 | ||||
|         //     //设置单据号不可编辑
 | ||||
|         //     props.form.setFormItemsDisabled(card_head,{
 | ||||
|         //         [Field.vbillcode]: true
 | ||||
|         //     });
 | ||||
|         // }
 | ||||
|         else { | ||||
|             //根据pk_org 过滤其他字段
 | ||||
|             item.queryCondition = () => { | ||||
|                 let data = this.props.form.getFormItemsValue(card_head, Field.pk_org).value; // 调用相应组件的取值API
 | ||||
|                 return { pk_org: data }; // 根据pk_org过滤
 | ||||
|             }; | ||||
|         } | ||||
|     }) | ||||
|     //侧拉编辑
 | ||||
|     // meta['body_detail_edit'].items.find((e) => e.attrcode === Field_detail.cmaterialvid).isMultiSelectedEnabled = true;
 | ||||
|     //备料申请明细表体参照过滤
 | ||||
|     meta[card_body_detail].items.map((item) => { | ||||
|         if (item.attrcode == Field_detail.cmaterialvid) {//物料设置可多选
 | ||||
|             item.isMultiSelectedEnabled = true; | ||||
|             item.queryCondition = () => { | ||||
|                 let data = this.props.form.getFormItemsValue(card_head, Field.pk_org).value; // 调用相应组件的取值API
 | ||||
|                 return { | ||||
|                     pk_org: data, | ||||
|                     matchmode: 2, | ||||
|                     GridRefActionExt: URL.materialURL | ||||
|                 }; | ||||
|             }; | ||||
|         } else if (item.attrcode == 'cbffileid') { | ||||
|             item.queryCondition = () => { | ||||
|                 item.queryCondition = () => { | ||||
|                     let cmaterialvid = this.props.form.getFormItemsValue(card_head, 'cmaterialvid').value; | ||||
|                     let condition = {}; | ||||
|                     condition.cmaterialvid = cmaterialvid; | ||||
|                     condition.pk_group=window.parent.GETBUSINESSINFO().groupId; | ||||
|                     return condition; | ||||
|                 }; | ||||
|             }; | ||||
|         } | ||||
|         item.queryCondition = () => { | ||||
|             let data = this.props.form.getFormItemsValue(card_head, Field.pk_org).value; // 调用相应组件的取值API
 | ||||
|             return { pk_org: data, matchmode: 2, }; // 根据pk_org过滤
 | ||||
|         }; | ||||
|         /*         if (item.attrcode.startsWith('vbdef')) { | ||||
|                     item.queryCondition = () => { | ||||
|                         let data = this.props.form.getFormItemsValue(card_head, Field.pk_org).value; // 调用相应组件的取值API
 | ||||
|                         return { pk_org: data }; // 根据pk_org过滤
 | ||||
|                     }; | ||||
|                 } | ||||
|                 else { | ||||
|                     //根据pk_org 过滤其他字段
 | ||||
|                     item.queryCondition = () => { | ||||
|                         let data = this.props.form.getFormItemsValue(card_head, Field.pk_org).value; // 调用相应组件的取值API
 | ||||
|                         return { pk_org: data }; // 根据pk_org过滤
 | ||||
|                     }; | ||||
|                 } */ | ||||
|     }) | ||||
|     meta['body_detail_edit'].items.map((item) => { | ||||
|         if (item.attrcode == Field_detail.cmaterialvid) {//物料设置可多选
 | ||||
|             item.isMultiSelectedEnabled = true; | ||||
|             item.queryCondition = () => { | ||||
|                 let data = this.props.form.getFormItemsValue(card_head, Field.pk_org).value; // 调用相应组件的取值API
 | ||||
|                 return { | ||||
|                     pk_org: data, | ||||
|                     GridRefActionExt: URL.materialURL | ||||
|                 }; | ||||
|             }; | ||||
|         } | ||||
|         item.queryCondition = () => { | ||||
|             let data = this.props.form.getFormItemsValue(card_head, Field.pk_org).value; // 调用相应组件的取值API
 | ||||
|             return { pk_org: data }; // 根据pk_org过滤
 | ||||
|         }; | ||||
|         /*         if (item.attrcode.startsWith('vbdef')) { | ||||
|                     item.queryCondition = () => { | ||||
|                         let data = this.props.form.getFormItemsValue(card_head, Field.pk_org).value; // 调用相应组件的取值API
 | ||||
|                         return { pk_org: data }; // 根据pk_org过滤
 | ||||
|                     }; | ||||
|                 } | ||||
|                 else { | ||||
|                     //根据pk_org 过滤其他字段
 | ||||
|                     item.queryCondition = () => { | ||||
|                         let data = this.props.form.getFormItemsValue(card_head, Field.pk_org).value; // 调用相应组件的取值API
 | ||||
|                         return { pk_org: data }; // 根据pk_org过滤
 | ||||
|                     }; | ||||
|                 } */ | ||||
|     }) | ||||
|     meta[card_body_sum].items.map((item) => { | ||||
|         //根据pk_org 过滤其他字段
 | ||||
|         item.queryCondition = () => { | ||||
|             let data = this.props.form.getFormItemsValue(card_head, Field.pk_org).value; // 调用相应组件的取值API
 | ||||
|             return { pk_org: data }; // 根据pk_org过滤
 | ||||
|         }; | ||||
|     }) | ||||
|     meta['body_sum_edit'].items.map((item) => { | ||||
|         //根据pk_org 过滤其他字段
 | ||||
|         item.queryCondition = () => { | ||||
|             let data = this.props.form.getFormItemsValue(card_head, Field.pk_org).value; // 调用相应组件的取值API
 | ||||
|             return { pk_org: data }; // 根据pk_org过滤
 | ||||
|         }; | ||||
|     }) | ||||
|     //明细表体超链接
 | ||||
|     meta[card_body_detail].items.items = meta[card_body_detail].items.map((item, key) => { | ||||
|         if (item.attrcode == 'vmobillcode') { | ||||
|             item.renderStatus = 'browse', | ||||
|                 item.render = (text, record, index) => { | ||||
|                     let cmoid = record && record.values.cmoid && record.values.cmoid.value; | ||||
|                     let motype = record && record.values.vmotype && record.values.vmotype.value; | ||||
|                     let mopagecode = '50080000_card'; | ||||
|                     let moappcode = '50080000'; | ||||
|                     if (motype == '55C2') { | ||||
|                         mopagecode = '50090000_card'; | ||||
|                         moappcode = '50090000'; | ||||
|                     } | ||||
|                     return ( | ||||
|                         <span className="code-detail-link" | ||||
|                             onClick={() => { | ||||
|                                 props.openTo(null, { | ||||
|                                     pagecode: mopagecode, | ||||
|                                     // appcode: moappcode,
 | ||||
|                                     id: cmoid, | ||||
|                                     billtype: motype, | ||||
|                                     status: 'browse', | ||||
|                                 }); | ||||
|                             }} | ||||
|                         > | ||||
|                             {text && text.value} | ||||
|                         </span> | ||||
|                     ); | ||||
|                 }; | ||||
|             return item; | ||||
|         } | ||||
|         if (item.attrcode == 'vpickmbillcode') { | ||||
|             item.renderStatus = 'browse', | ||||
|                 item.render = (text, record, index) => { | ||||
|                     let cpickmid = record && record.values.cpickmid && record.values.cpickmid.value; | ||||
|                     return ( | ||||
|                         <span className="code-detail-link" | ||||
|                             onClick={() => { | ||||
|                                 openAppByBilltype({ | ||||
|                                     billpk: cpickmid, | ||||
|                                     billtype: '55A3', | ||||
|                                     type: 'open' | ||||
|                                 }) | ||||
|                             }} | ||||
|                         > | ||||
|                             {text && text.value} | ||||
|                         </span> | ||||
|                     ); | ||||
|                 }; | ||||
|             return item; | ||||
|         } | ||||
|     }); | ||||
| 
 | ||||
|     //明细表体-添加操作列
 | ||||
|     let porCol = { | ||||
|         label: getLangByResId(this, '5008ReqPickm-0000042') /* 国际化处理:  操作 */, | ||||
|         attrcode: 'opr', | ||||
|         itemtype: 'customer', //默认必输
 | ||||
|         fixed: 'right', //锁定操作列
 | ||||
|         visible: true, | ||||
|         width: '200px', | ||||
|         render: (text, record, index) => { | ||||
|             let buttonAry = buttonController.setRowButtons.call(this, props, record, index); | ||||
|             return this.props.button.createOprationButton(buttonAry, { | ||||
|                 area: ReqPickmCardInfo.cardBodyInnerAction, | ||||
|                 buttonLimit: 3, | ||||
|                 onButtonClick: (props, key) => buttonClick.call(this, props, key, record, index) | ||||
|             }); | ||||
|         } | ||||
|     }; | ||||
|     meta[card_body_detail].items.push(porCol); | ||||
|     //汇总表体-添加操作列
 | ||||
|     let porCol1 = { | ||||
|         label: getLangByResId(this, '5008ReqPickm-0000042') /* 国际化处理:  操作 */, | ||||
|         attrcode: 'opr', | ||||
|         itemtype: 'customer', //默认必输
 | ||||
|         fixed: 'right', //锁定操作列
 | ||||
|         visible: true, | ||||
|         width: '200px', | ||||
|         render: (text, record, index) => { | ||||
|             let buttonAry = []; | ||||
|             let rows = this.props.cardTable.getVisibleRows(card_body_sum); | ||||
|             //let cmaterialvid = this.props.cardTable.getValByKeyAndIndex(card_body_sum,0,'cmaterialvid');
 | ||||
|             let status = this.props.getUrlParam('status'); | ||||
|             if (!status) { | ||||
|                 status = STATUS.add; | ||||
|             } | ||||
|             //表体汇总表有数据-才显示展开按钮
 | ||||
|             let openorclose = ''; | ||||
|             if (this.state.lineShowType_s[index] == 1) { | ||||
|                 openorclose = 'CloseRow_Sum'; | ||||
|             } else { | ||||
|                 openorclose = 'OpenRow_Sum'; | ||||
|             } | ||||
|             if (rows && rows.length > 0) { | ||||
|                 if (status == STATUS.browse) { | ||||
|                     buttonAry = [openorclose] | ||||
|                 } else { | ||||
|                     buttonAry = ['OpenRow_Sum'] | ||||
|                 } | ||||
|             } | ||||
|             return this.props.button.createOprationButton(buttonAry, { | ||||
|                 area: 'body_sum_inner', | ||||
|                 buttonLimit: 3, | ||||
|                 onButtonClick: (props, key) => buttonClick.call(this, props, key, record, index) | ||||
|             }); | ||||
|         } | ||||
|     }; | ||||
|     meta[card_body_sum].items.push(porCol1); | ||||
|     // 行号排序处理
 | ||||
|     columnSortUtils.numberSort(meta, card_body_detail, 'vrowno'); | ||||
|     columnSortUtils.numberSort(meta, card_body_sum, 'vrowno'); | ||||
|     return meta; | ||||
| } | ||||
| 
 | ||||
| function toggleShow(data) { | ||||
|     let status = this.props.getUrlParam('status'); | ||||
|     if (!status) { | ||||
|         status = STATUS.add; | ||||
|     } | ||||
|     let copy = this.props.getUrlParam('copy'); | ||||
|     if (status == STATUS.add && !copy) { | ||||
|         // 新增
 | ||||
|         let pk_org_v = data.context.pk_org_v; | ||||
|         let org_v_Name = data.context.org_v_Name; | ||||
|         // 缓存为了处理卡片的自制
 | ||||
|         addDataSource(data); | ||||
|         if (pk_org_v) { | ||||
|             orgChangeEvent.call( | ||||
|                 this, | ||||
|                 this.props, | ||||
|                 card_head, | ||||
|                 Field.pk_org_v, | ||||
|                 { value: pk_org_v, display: org_v_Name }, | ||||
|                 null, | ||||
|                 { | ||||
|                     refpk: pk_org_v, | ||||
|                     refname: org_v_Name | ||||
|                 }, | ||||
|                 null | ||||
|             ); | ||||
|             this.props.form.setFormItemsDisabled(card_head, { pk_org: false, pk_org_v: false }); | ||||
|         } else { | ||||
|             this.props.form.setFormItemsValue(card_head, { | ||||
|                 [Field.pk_org]: { value: null, display: null }, | ||||
|                 [Field.pk_org_v]: { value: null, display: null } | ||||
|             }); | ||||
|             this.props.initMetaByPkorg(Field.pk_org_v); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| function addDataSource(data) { | ||||
|     // 缓存为了处理卡片的自制
 | ||||
|     setDefData(Field.pk_org, ReqPickmCache.dataSource, data.context.pk_org); | ||||
|     setDefData('pk_org_name', ReqPickmCache.dataSource, data.context.org_Name); | ||||
| } | ||||
|  | @ -0,0 +1,354 @@ | |||
| import { STATUS, Field, FbillStatus, ReqPickmCardInfo, CardButton, CardButton_body_detail, notEdit_modal_d, TransferInfo, sagasField } from '../../constance'; | ||||
| let { card_head, card_body_detail, card_body_sum,headAction } = ReqPickmCardInfo; | ||||
| 
 | ||||
| /** | ||||
|  * //根据单据的状态控制行按钮显示
 | ||||
|  * @param {*} props | ||||
|  * * @param {*} record | ||||
|  * * @param {*} index | ||||
|  * | ||||
|  */ | ||||
| function setRowButtons(props, record, index) { | ||||
| 	let fbillstatus = props.form.getFormItemsValue(card_head, Field.fbillstatus).value; | ||||
| 	let state = props.getUrlParam('status'); | ||||
| 	if (!state) { | ||||
| 		state = STATUS.add; | ||||
| 	} | ||||
| 	let buttonAry = []; | ||||
| 	let openorclose = ''; | ||||
| 	if (this.state.lineShowType[index] == 1) { | ||||
| 		openorclose = CardButton_body_detail.CloseRow; | ||||
| 	} else { | ||||
| 		openorclose = CardButton_body_detail.OpenRow; | ||||
| 	} | ||||
| 	if (state == STATUS.browse) { | ||||
| 		buttonAry = [ | ||||
| 			openorclose | ||||
| 		] | ||||
| 	} else { | ||||
| 		buttonAry = [ | ||||
| 			CardButton_body_detail.OpenRow, | ||||
| 			//CardButton_body_detail.AddLine,
 | ||||
| 			CardButton_body_detail.DelLine, | ||||
| 			//CardButton_body_detail.CopyLine,
 | ||||
| 			CardButton_body_detail.InsertLine, | ||||
| 			CardButton_body_detail.PasteThis | ||||
| 		] | ||||
| 		let sumrows = props.cardTable.getVisibleRows(card_body_sum,false,true); | ||||
| 		//表体汇总表有数据-按钮都不可用
 | ||||
| 		if (sumrows && sumrows.length > 0) { | ||||
| 			buttonAry = [ | ||||
| 				CardButton_body_detail.OpenRow, | ||||
| 				CardButton_body_detail.PasteThis | ||||
| 			] | ||||
| 		} else { | ||||
| 			buttonAry = [ | ||||
| 				CardButton_body_detail.OpenRow, | ||||
| 				CardButton_body_detail.DelLine, | ||||
| 				CardButton_body_detail.InsertLine, | ||||
| 				CardButton_body_detail.PasteThis | ||||
| 			] | ||||
| 		} | ||||
| 	} | ||||
| 	return buttonAry; | ||||
| } | ||||
| /** | ||||
|  * 设置界面状态 | ||||
|  * @param {*} props  | ||||
|  * @param {*} status  | ||||
|  */ | ||||
| function setUIState(props, status) { | ||||
| 	if (status === STATUS.browse) { | ||||
| 		this.props.form.setFormStatus(card_head, status); | ||||
| 		this.props.cardTable.setStatus(card_body_detail, status); | ||||
| 		this.props.cardTable.setStatus(card_body_sum, status); | ||||
| 	} else { | ||||
| 		this.props.form.setFormStatus(card_head, STATUS.edit); | ||||
| 		this.props.cardTable.setStatus(card_body_detail, STATUS.edit); | ||||
| 		this.props.cardTable.setStatus(card_body_sum, STATUS.edit); | ||||
| 	} | ||||
| } | ||||
| /** | ||||
|  * 设置返回按钮的可见性 | ||||
|  * @param {*} props | ||||
|  */ | ||||
| function setBackButtonVisiable(props, param) { | ||||
| 	let status = props.getUrlParam('status'); | ||||
| 	if (!status) { | ||||
| 		status = 'add'; | ||||
| 	} | ||||
| 	if (status === STATUS.browse) { | ||||
| 		if (!param && this.MMPAC_REQPICKM_TYPE == 'N') { | ||||
| 			props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
| 				showBackBtn: true, //控制显示返回按钮: true为显示,false为隐藏 ---非必传
 | ||||
| 				showBillCode: true, //控制显示单据号:true为显示,false为隐藏 ---非必传
 | ||||
| 				//billCode: this.state.vbillcode //修改单据号---非必传
 | ||||
| 				billCode: props.form.getFormItemsValue(ReqPickmCardInfo.card_head, Field.vbillcode).value //修改单据号
 | ||||
| 			}); | ||||
| 		} else { | ||||
| 			props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
| 				showBackBtn: false, //控制显示返回按钮: true为显示,false为隐藏 ---非必传
 | ||||
| 				showBillCode: true, //控制显示单据号:true为显示,false为隐藏 ---非必传
 | ||||
| 				billCode: props.form.getFormItemsValue(ReqPickmCardInfo.card_head, Field.vbillcode).value //修改单据号
 | ||||
| 			}); | ||||
| 		} | ||||
| 	} else if (status == 'add') { | ||||
| 		props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
| 			showBackBtn: false, //控制显示返回按钮: true为显示,false为隐藏 ---非必传
 | ||||
| 			showBillCode: false, //控制显示单据号:true为显示,false为隐藏 ---非必传
 | ||||
| 			billCode: '' //修改单据号---非必传
 | ||||
| 		}); | ||||
| 	} else if (status == STATUS.edit) { | ||||
| 		props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
| 			showBackBtn: false, //控制显示返回按钮: true为显示,false为隐藏 ---非必传
 | ||||
| 			showBillCode: true, //控制显示单据号:true为显示,false为隐藏 ---非必传
 | ||||
| 			billCode: props.form.getFormItemsValue(ReqPickmCardInfo.card_head, Field.vbillcode).value //修改单据号
 | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 转单界面显示按钮控制 | ||||
|  * @param {*} props  | ||||
|  * @param {*} type:是否推单 | ||||
|  */ | ||||
| function toggleShowTransfer(props, type) { | ||||
| 	//推单标识
 | ||||
| 	let channelType = props.getUrlParam(TransferInfo.channelType); | ||||
| 	let pk_head = props.form.getFormItemsValue(card_head, Field.creqpickmid); | ||||
| 	pk_head = pk_head && pk_head.value; | ||||
| 	let status = props.getUrlParam(STATUS.status); //拉单或是推单时参数没有status
 | ||||
| 	status = status == null || channelType != null ? props.form.getFormStatus(card_head) : status; | ||||
| 	// 转单已保存的显示为浏览态
 | ||||
| 	status = channelType && pk_head ? STATUS.browse : channelType ? STATUS.edit : status; | ||||
| 	// 转单已经保存过的数据点击修改触发
 | ||||
| 	status = type == STATUS.edit ? STATUS.edit : status; | ||||
| 	if (channelType != null) { | ||||
| 		props.button.setButtonVisible([CardButton.QuitTransferBill], true); | ||||
| 	} else { | ||||
| 		props.button.setButtonVisible([CardButton.QuitTransferBill], false); | ||||
| 	} | ||||
| 	if (pk_head == null && status == STATUS.edit) { | ||||
| 		//当页面为编辑态且主键为空时释放主组织的编辑性
 | ||||
| 		props.form.setFormItemsDisabled(card_head, { 'pk_org': false,'pk_org_v': false }); | ||||
| 	} | ||||
| 	//拉单推单
 | ||||
| 	//浏览态
 | ||||
| 	if (status === STATUS.browse) { | ||||
| 		props.button.setButtonVisible([...CardButton.BrowseBtns, CardButton_body_detail.OpenRow, 'ReqPickmDelivery_s'], true); | ||||
| 		props.button.setButtonVisible([CardButton.Add, CardButton.Copy], false);//新增和复制按钮不可用
 | ||||
| 		props.button.setButtonVisible([...CardButton.EditBtns, ...CardButton_body_detail.EditBtns, ...CardButton_body_detail.CopyBtns, 'RestNo_s'], false); | ||||
| 
 | ||||
| 		let creqpickmid = props.form.getFormItemsValue(card_head, Field.creqpickmid); | ||||
| 		if (!creqpickmid || !creqpickmid.value) { | ||||
| 			//浏览态,界面没有值,只有新增按钮可以用
 | ||||
| 			props.button.setButtonVisible([...CardButton.BrowseBtns, CardButton.QuitTransferBill], false); | ||||
| 			props.button.setButtonVisible([CardButton.Add], true); | ||||
| 		} else { | ||||
| 			let fbillstatus = props.form.getFormItemsValue(card_head, Field.fbillstatus).value; | ||||
| 			//自由
 | ||||
| 			if (fbillstatus == FbillStatus.free) { | ||||
| 				props.button.setButtonVisible([CardButton.ReqPickmUnFinish], false);//取消完成不可用
 | ||||
| 				let selectrows = props.cardTable.getCheckedRows(card_body_sum); | ||||
| 				//汇总表体没有选中行时,备料按钮不可用
 | ||||
| 				if (!selectrows || selectrows.length == 0) { | ||||
| 					props.button.setDisabled(['ReqPickmDelivery_s'], true); | ||||
| 				} | ||||
| 			} | ||||
| 			//完成
 | ||||
| 			else if (fbillstatus == FbillStatus.complete) { | ||||
| 				props.button.setButtonVisible([CardButton.Edit, CardButton.Delete, CardButton.ReqPickmFinish, CardButton.ReqPickmDelivery, 'ReqPickmDelivery_s'], false);//修改,删除,备料,强制完成,汇总肩上备料按钮不可用
 | ||||
| 			} | ||||
| 		} | ||||
| 		//编辑态
 | ||||
| 	} else { | ||||
| 		let sumrows = props.cardTable.getVisibleRows(card_body_sum,false,true); | ||||
| 		if (sumrows && sumrows.length > 0) { | ||||
| 			props.cardTable.setStatus(card_body_detail, 'browse', null);//设置表格状态
 | ||||
| 			//props.cardTable.setModelEdit(card_body_detail,[...notEdit_modal_d],false);//设置侧拉框字段的可编辑性
 | ||||
| 		} else { | ||||
| 			props.cardTable.setStatus(card_body_detail, 'edit', null);//设置表格状态
 | ||||
| 			//props.cardTable.setModelEdit(card_body_detail,[...notEdit_modal_d],true);//设置侧拉框字段的可编辑性
 | ||||
| 		} | ||||
| 		props.button.setButtonVisible([...CardButton.BrowseBtns, ...CardButton_body_detail.CopyBtns, 'ReqPickmDelivery_s'], false); | ||||
| 		props.button.setButtonVisible([...CardButton.EditBtns, ...CardButton_body_detail.EditBtns, CardButton_body_detail.OpenRow], true); | ||||
| 		props.cardPagination.setCardPaginationVisible('cardPaginationBtn', false); | ||||
| 		headComputeAndSum.call(this, props);//设置表头按钮,计算-汇总-取消汇总的可见性
 | ||||
| 		lineSelected.call(this, props); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * //1.优先根据界面状态判断显示按钮显示
 | ||||
| 	// 2.再根据单据状态控制按钮显示
 | ||||
|  * @param {*} props  | ||||
|  * @param {*} status  | ||||
|  */ | ||||
| function setCardButtonVisiable(props, status, param) { | ||||
| 	//sagas 每次刷新卡片按钮状态时
 | ||||
| 	let sagaStatus = this.props.form.getFormItemsValue(card_head, sagasField.SAGA_STATUS) | ||||
| 	let frozen = sagaStatus && sagaStatus.value == '1' ? true : false; | ||||
| 	if (status == STATUS.browse && frozen) { | ||||
| 		this.props.button.toggleErrorStatus(headAction, { isError: true }); | ||||
| 	} else { | ||||
| 		this.props.button.toggleErrorStatus(headAction, { isError: false }); | ||||
| 	} | ||||
| 	//浏览态
 | ||||
| 	if (status === STATUS.browse) { | ||||
| 		props.button.setButtonVisible([...CardButton.BrowseBtns, CardButton_body_detail.OpenRow, 'ReqPickmDelivery_s'], true); | ||||
| 		props.button.setButtonVisible([...CardButton.EditBtns, ...CardButton_body_detail.EditBtns, ...CardButton_body_detail.CopyBtns, 'RestNo_s'], false); | ||||
| 		let creqpickmid = props.form.getFormItemsValue(card_head, Field.creqpickmid); | ||||
| 		if (!creqpickmid || !creqpickmid.value) { | ||||
| 			//浏览态,界面没有值,只有新增按钮可以用
 | ||||
| 			props.button.setButtonVisible([...CardButton.BrowseBtns], false); | ||||
| 			props.button.setButtonVisible([CardButton.Add], true); | ||||
| 		} else { | ||||
| 			let isShowCardPage = true; | ||||
| 			if (this.MMPAC_REQPICKM_TYPE == 'Y') { | ||||
| 				isShowCardPage = false; | ||||
| 			} | ||||
| 			props.cardPagination.setCardPaginationVisible(props, isShowCardPage); | ||||
| 			let fbillstatus = props.form.getFormItemsValue(card_head, Field.fbillstatus).value; | ||||
| 			//自由
 | ||||
| 			if (fbillstatus == FbillStatus.free) { | ||||
| 				props.button.setButtonVisible([...CardButton.BrowseBtns], true); | ||||
| 				props.button.setButtonVisible([CardButton.ReqPickmUnFinish], false);//取消完成不可用
 | ||||
| 				let selectrows = props.cardTable.getCheckedRows(card_body_sum); | ||||
| 				//汇总表体没有选中行时,备料按钮不可用
 | ||||
| 				if (!selectrows || selectrows.length == 0) { | ||||
| 					props.button.setDisabled(['ReqPickmDelivery_s'], true); | ||||
| 				} | ||||
| 			} | ||||
| 			//完成
 | ||||
| 			else if (fbillstatus == FbillStatus.complete) { | ||||
| 				props.button.setButtonVisible([...CardButton.BrowseBtns], true); | ||||
| 				props.button.setButtonVisible([CardButton.Edit, CardButton.Delete, CardButton.ReqPickmFinish, CardButton.ReqPickmDelivery, 'ReqPickmDelivery_s'], false);//修改,删除,备料,强制完成,汇总肩上备料按钮不可用
 | ||||
| 			} | ||||
| 		} | ||||
| 		//编辑态
 | ||||
| 	} else { | ||||
| 		let sumrows = props.cardTable.getVisibleRows(card_body_sum,false,true); | ||||
| 		if (sumrows && sumrows.length > 0) { | ||||
| 			props.cardTable.setStatus(card_body_detail, 'browse', null);//设置表格状态
 | ||||
| 			//props.cardTable.setModelEdit(card_body_detail,[...notEdit_modal_d],false);//设置侧拉框字段的可编辑性
 | ||||
| 		} else { | ||||
| 			props.cardTable.setStatus(card_body_detail, 'edit', null);//设置表格状态
 | ||||
| 			//props.cardTable.setModelEdit(card_body_detail,[...notEdit_modal_d],true);//设置侧拉框字段的可编辑性
 | ||||
| 		} | ||||
| 		props.button.setButtonVisible([...CardButton.BrowseBtns, ...CardButton_body_detail.CopyBtns, 'ReqPickmDelivery_s'], false); | ||||
| 		props.button.setButtonVisible([...CardButton.EditBtns, ...CardButton_body_detail.EditBtns, CardButton_body_detail.OpenRow], true); | ||||
| 		props.cardPagination.setCardPaginationVisible('cardPaginationBtn', false); | ||||
| 		headComputeAndSum.call(this, props);//设置表头按钮,计算-汇总-取消汇总的可见性
 | ||||
| 		lineSelected.call(this, props); | ||||
| 	} | ||||
| } | ||||
| /** | ||||
|  * 设置表头按钮,计算-汇总-取消汇总的可见性 | ||||
|  */ | ||||
| function headComputeAndSum(props) { | ||||
| 	let sumrows = props.cardTable.getVisibleRows(card_body_sum,false,true); | ||||
| 	//表体汇总表有数据-计算+汇总不可见
 | ||||
| 	if (sumrows && sumrows.length > 0) { | ||||
| 		props.button.setButtonVisible([CardButton.ReqPickmCompute, CardButton.ReqPickmSum], false); | ||||
| 	} | ||||
| 	//表体汇总表无数据-取消汇总不可见
 | ||||
| 	else { | ||||
| 		props.button.setButtonVisible([CardButton.ReqPickmUnSum], false); | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| /** | ||||
|  * //根据勾选行控制肩部按钮
 | ||||
|  * @param {*} props | ||||
|  * | ||||
|  */ | ||||
| function lineSelected4Sum(props) { | ||||
| 	let selectrows = props.cardTable.getCheckedRows(card_body_sum); | ||||
| 	//汇总表体有选中行时,备料按钮可用
 | ||||
| 	if (selectrows.length > 0) { | ||||
| 		props.button.setDisabled(['ReqPickmDelivery_s'], false); | ||||
| 	} else { | ||||
| 		props.button.setDisabled(['ReqPickmDelivery_s'], true); | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| /** | ||||
|  * //根据勾选行控制肩部按钮
 | ||||
|  * @param {*} props | ||||
|  * | ||||
|  */ | ||||
| function lineSelected(props) { | ||||
| 	let pk_org = props.form.getFormItemsValue(card_head, Field.pk_org); | ||||
| 	let sumrows = props.cardTable.getVisibleRows(card_body_sum,false,true); | ||||
| 
 | ||||
| 	//表体汇总表有数据-按钮都不可用
 | ||||
| 	if (sumrows && sumrows.length > 0) { | ||||
| 		props.button.setDisabled([...CardButton_body_detail.EditBtns], true); | ||||
| 		props.button.setButtonVisible(['RestNo_s'], true); | ||||
| 		return; | ||||
| 	} else { | ||||
| 		props.button.setButtonVisible(['RestNo_s'], false);//汇总表体没数据,重排号不可见
 | ||||
| 	} | ||||
| 
 | ||||
| 	if (pk_org && pk_org.value) { | ||||
| 		props.button.setDisabled([...CardButton_body_detail.EditBtns, CardButton_body_detail.OpenRow], false); | ||||
| 	} else { | ||||
| 		props.button.setDisabled([...CardButton_body_detail.EditBtns, CardButton_body_detail.OpenRow], true); | ||||
| 		props.button.setButtonVisible(['RestNo_s'], false); | ||||
| 		return; | ||||
| 	} | ||||
| 	let rowsdata = props.cardTable.getCheckedRows(card_body_detail); | ||||
| 	let rowsflag = true; //根据勾选行数控制肩部可用按钮
 | ||||
| 	if (rowsdata.length > 0) { | ||||
| 		rowsflag = false; | ||||
| 	} | ||||
| 	//表体明细有选中数据时,删行和复制行才可用
 | ||||
| 	let disableArr = { | ||||
| 		[CardButton_body_detail.DelLine]: rowsflag,//肩上删行
 | ||||
| 		[CardButton_body_detail.CopyLine]: rowsflag//肩上复制行
 | ||||
| 	}; | ||||
| 	props.button.setDisabled(disableArr); | ||||
| 
 | ||||
| } | ||||
| /** | ||||
|  * //1.设置空白页面的按钮
 | ||||
|  * @param {*} props  | ||||
|  * @param {*} fbillstatus  | ||||
|  */ | ||||
| function setBlankPageButtons() { | ||||
| 	this.props.button.setButtonVisible([...CardButton.BrowseBtns, ...CardButton.EditBtns], false); | ||||
| 	this.props.button.setButtonVisible([...CardButton_body_detail.EditBtns, ...CardButton_body_detail.CopyBtns, 'RestNo_s', 'ReqPickmDelivery_s'], false); | ||||
| 	this.props.button.setButtonVisible([CardButton.Add], true); | ||||
| } | ||||
| 
 | ||||
| function setCardPaginationVisible(props, showPage) { | ||||
| 	// 设置卡片分页的显示隐藏
 | ||||
| 	props.cardPagination.setCardPaginationVisible('cardPaginationBtn', showPage); | ||||
| } | ||||
| function modelRowEditBefore(props, moduleId, modelIndex, record) { | ||||
| 	let pk_org = props.form.getFormItemsValue(card_head, Field.pk_org); | ||||
| 	let sumrows = props.cardTable.getVisibleRows(card_body_sum,false,true); | ||||
| 	let flag = true; | ||||
| 	//表体汇总表有数据-按钮都不可用
 | ||||
| 	if (sumrows && sumrows.length > 0) { | ||||
| 		flag = false; | ||||
| 	} | ||||
| 	//组织没有值,增行、删行不可用
 | ||||
| 	if (!pk_org && !pk_org.value) { | ||||
| 		flag = false; | ||||
| 	} | ||||
| 	return flag; | ||||
| } | ||||
| export default { | ||||
| 	setRowButtons, | ||||
| 	setUIState, | ||||
| 	setBackButtonVisiable, | ||||
| 	setCardButtonVisiable, | ||||
| 	setBlankPageButtons, | ||||
| 	headComputeAndSum, | ||||
| 	lineSelected, | ||||
| 	lineSelected4Sum, | ||||
| 	setCardPaginationVisible, | ||||
| 	modelRowEditBefore, | ||||
| 	toggleShowTransfer | ||||
| } | ||||
|  | @ -0,0 +1,3 @@ | |||
| import buttonController from './buttonController'; | ||||
| //import btnClickController from './btnClickControllor';
 | ||||
| export { buttonController }; | ||||
|  | @ -0,0 +1,306 @@ | |||
| /** | ||||
|  * 备料申请维护 | ||||
|  */ | ||||
| 
 | ||||
| //请求的URL
 | ||||
| const URL = { | ||||
|         currentpage: '/nccloud/mmpac/reqpickm/queryPageByPks.do', //分页查询数据
 | ||||
|         queryList: '/nccloud/mmpac/reqpickm/queryReqpickmList.do', //列表态数据查询
 | ||||
|         queryCard: '/nccloud/mmpac/reqpickm/queryReqpickmCard.do', //卡片态数据查询
 | ||||
|         newSave: '/nccloud/mmpac/reqpickm/newSave.do', //卡片态下新增保存
 | ||||
|         editSave: '/nccloud/mmpac/reqpickm/editSave.do', //卡片态下修改保存
 | ||||
|         batchDelete: '/nccloud/mmpac/reqpickm/batchDelete.do', //删除
 | ||||
|         editReqPickmCardURL: '/nccloud/mmpac/reqpickm/edit.do', //修改
 | ||||
|         copyURL: '/nccloud/mmpac/reqpickm/copy.do', //复制
 | ||||
|         unSumURL: '/nccloud/mmpac/reqpickm/reqpickmUnSum.do', //取消汇总
 | ||||
|         reqpickmSum: '/nccloud/mmpac/reqpickm/reqpickmSum.do', //汇总
 | ||||
|         printURL: '/nccloud/mmpac/reqpickm/print.do', //打印
 | ||||
|         finishURL: '/nccloud/mmpac/reqpickm/finish.do', //强制完成
 | ||||
|         unFinishURL: '/nccloud/mmpac/reqpickm/unFinish.do', //取消完成
 | ||||
|         deliveryURL: '/nccloud/mmpac/reqpickm/delivery.do', //列表备料
 | ||||
|         deliveryCardURL: '/nccloud/mmpac/reqpickm/deliveryCard.do', //卡片备料
 | ||||
|         materialURL: 'nccloud.web.mmpub.pub.ref.MaterialRefSqlBuilder', | ||||
| 
 | ||||
|         //编辑前事件
 | ||||
|         headBeforeEdit: '/nccloud/mmpac/reqpickm/headBeforeEdit.do', | ||||
|         bodyDetailBeforeEdit: '/nccloud/mmpac/reqpickm/bodyDetailBeforeEdit.do', | ||||
|         bodySumBeforeEdit: '', | ||||
|         //编辑后事件
 | ||||
|         orgChangedEvent: '/nccloud/mmpac/reqpickm/orgChangeEvent.do', //组织改变事件
 | ||||
|         headAfterEdit: '', | ||||
|         bodyDetailAfterEdit: '/nccloud/mmpac/reqpickm/bodyDetailAfterEdit.do', | ||||
|         bodySumAfterEdit: '/nccloud/mmpac/reqpickm/bodySumAfterEdit.do', | ||||
|         queryByCondURL: '/nccloud/mmpac/reqpickm/queryByCond.do' | ||||
|     } | ||||
|     //列表页签
 | ||||
| const TabCode = { | ||||
|         Executing: { value: 0, code: 'executing', name: '5008ReqPickm-000002' }, | ||||
|         All: { value: 1, code: 'all', name: '5008ReqPickm-000003' } | ||||
| 
 | ||||
|     } | ||||
|     //页面状态
 | ||||
| const STATUS = { | ||||
|     status: 'status', //状态标志
 | ||||
|     edit: 'edit', //编辑态
 | ||||
|     add: 'add', //新增态
 | ||||
|     browse: 'browse', //浏览
 | ||||
|     copy: 'copy' | ||||
| } | ||||
| 
 | ||||
| const Field = { | ||||
|     creqpickmid: 'creqpickmid', //主键
 | ||||
|     pk_group: 'pk_group', | ||||
|     pk_org: 'pk_org', | ||||
|     pk_org_v: 'pk_org_v', | ||||
|     vbillcode: 'vbillcode', | ||||
|     crequesttype: 'crequesttype', //申请类型
 | ||||
|     vrequesttypecode: 'vrequesttypecode', //申请类型编码
 | ||||
|     fbillstatus: 'fbillstatus', | ||||
|     ts: 'ts' | ||||
| } | ||||
| const Field_detail = { | ||||
|     creqpickm_bid: 'creqpickm_bid', //主键
 | ||||
|     pk_group: 'pk_group', | ||||
|     pk_org: 'pk_org', | ||||
|     pk_org_v: 'pk_org_v', | ||||
|     vrowno: 'vrowno', //行号
 | ||||
|     cmaterialid: 'cmaterialid', //物料oid
 | ||||
|     cmaterialvid: 'cmaterialvid', //物料
 | ||||
|     cdeliverorgvid: 'cdeliverorgvid', //发料组织
 | ||||
|     cdeliverorgid: 'cdeliverorgid', | ||||
|     fsupplytype: 'fsupplytype', | ||||
|     bcandeliver: 'bcandeliver', | ||||
|     bmainmaterial: 'bmainmaterial', | ||||
|     ddeliverdate: 'ddeliverdate', | ||||
|     fitemsource: 'fitemsource', //
 | ||||
|     coutstockid: 'coutstockid', //发料仓库
 | ||||
|     nreqastnum: 'nreqastnum', //申请数量
 | ||||
|     nreqnum: 'nreqnum', //申请主数量
 | ||||
|     castunitid: 'castunitid', //辅单位
 | ||||
|     cunitid: 'cunitid', //主单位
 | ||||
|     vchangerate: 'vchangerate', //换算率
 | ||||
|     cbffileid: 'cbffileid', //特征码
 | ||||
|     ts: 'ts', | ||||
|     vbfree1: 'vbfree1', //自由辅助属性
 | ||||
|     vbfree2: 'vbfree2', | ||||
|     vbfree3: 'vbfree3', | ||||
|     vbfree4: 'vbfree4', | ||||
|     vbfree5: 'vbfree5', | ||||
|     vbfree6: 'vbfree6', | ||||
|     vbfree7: 'vbfree7', | ||||
|     vbfree8: 'vbfree8', | ||||
|     vbfree9: 'vbfree9', | ||||
|     vbfree10: 'vbfree10' | ||||
| } | ||||
| const Field_sum = { | ||||
|     creqpickm_bid: 'creqpickm_sid', //主键
 | ||||
|     pk_group: 'pk_group', | ||||
|     pk_org: 'pk_org', | ||||
|     pk_org_v: 'pk_org_v', | ||||
|     cmaterialvid: 'cmaterialvid', //物料
 | ||||
|     cdeliverorgvid: 'cdeliverorgvid', //发料组织
 | ||||
|     coutstockid: 'coutstockid', //发料仓库
 | ||||
|     nstocknum: 'nstocknum', //备料主数量
 | ||||
|     nstockastnum: 'nstockastnum', //备料辅数量
 | ||||
|     csupplyorgvid: 'csupplyorgvid', //供应组织
 | ||||
|     cinstockid: 'cinstockid', //供应仓库
 | ||||
|     naccpendingnum: 'naccpendingnum', //累计待转主数量
 | ||||
|     naccstockoutnum: 'naccstockoutnum', //累计入库主数量
 | ||||
|     ts: 'ts' | ||||
| } | ||||
| const billType = '55AC'; | ||||
| const FbillStatus = { | ||||
|         free: '1', //自由
 | ||||
|         complete: '2' //完成
 | ||||
|     } | ||||
|     //备料来源
 | ||||
| const FitemsourceEnum = { | ||||
|         prepare: { code: 'prepare', name: '5008ReqPickm-0000052', data: '0' }, //备料
 | ||||
|         issue: { code: 'issue', name: '5008ReqPickm-0000053', data: '1' }, //领料
 | ||||
|         transfer: { code: 'transfer', name: '5008ReqPickm-0000054', data: '2' } //传输
 | ||||
|     } | ||||
|     //供应方式
 | ||||
| const FsupplytypeEnum = { | ||||
|     generaldelivery: { code: 'generaldelivery', name: '5008ReqPickm-0000055', data: '0' }, //一般发料
 | ||||
|     rationdelivery: { code: 'rationdelivery', name: '5008ReqPickm-0000056', data: '1' } //定量发料
 | ||||
| } | ||||
| 
 | ||||
| const ReqPickmCache = { | ||||
|     dataSource: 'mm.mmpac.reqpickm.data', | ||||
|     tabNum: 'tabNum', //页签对应的数据量
 | ||||
|     curTabCode: 'curTabCode', //当前页签
 | ||||
|     queryInfo: 'queryInfo', //查询信息
 | ||||
|     pageInfo: 'pageInfo', //分页信息
 | ||||
|     ReqPickmTransferCache: 'mm.mmpac.reqpickm.pickmtransfercache', //拉单缓存
 | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| //备料申请列表信息
 | ||||
| const ReqPickmListInfo = { | ||||
|     pageId: '50080106_list', | ||||
| 
 | ||||
|     headAction: 'list_head_action', //列表按钮
 | ||||
|     listInnerAction: 'list_inner', //列表操作列按钮区域
 | ||||
| 
 | ||||
|     searchId: 'list_query', //区域编码
 | ||||
|     tableId: 'list_head', | ||||
| 
 | ||||
|     pk_item: 'creqpickmid' | ||||
| } | ||||
| 
 | ||||
| const ListButton = { | ||||
|     Add: 'Add', | ||||
|     Delete: 'Delete', | ||||
|     Edit: 'Edit', | ||||
|     Refresh: 'Refresh', | ||||
|     Copy: 'Copy', | ||||
|     ReqPickmDelivery: 'ReqPickmDelivery', //备料
 | ||||
|     ReqPickmFinish: 'ReqPickmFinish', //强制完成
 | ||||
|     ReqPickmUnFinish: 'ReqPickmUnFinish', //取消完成
 | ||||
|     File: 'File', //附件管理
 | ||||
|     BillLinkQuery: 'BillLinkQuery', //单据追溯
 | ||||
|     Print: 'Print', //打印
 | ||||
|     Output: 'Output', //输出
 | ||||
|     PrintDetail: 'PrintDetail' //打印明细
 | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| //备料申请卡片信息
 | ||||
| const ReqPickmCardInfo = { | ||||
|     pageId: '50080106_card', //卡片态的pagecode
 | ||||
| 
 | ||||
|     card_head: 'card_head', //区域编码
 | ||||
|     card_tail: 'tail', //表尾
 | ||||
|     card_body_detail: 'card_body_detail', //备料申请明细页签
 | ||||
|     card_body_sum: 'card_body_sum', //备料申请明细页签
 | ||||
| 
 | ||||
|     headAction: 'card_head_action', //按钮
 | ||||
|     bodyAction_detail: 'body_detail_action', | ||||
|     bodyAction_sum: 'body_sum_action', | ||||
|     cardBodyInnerAction: 'body_detail_inner', //卡片明细表体操作按钮区域
 | ||||
| 
 | ||||
|     pk_head: 'creqpickmid', | ||||
|     pk_body_detail: 'creqpickm_bid', | ||||
|     pk_body_sum: 'creqpickm_sid', | ||||
| } | ||||
| const TransferInfo = { | ||||
|     //转单的信息
 | ||||
|     transfer: 'transfer', | ||||
|     type: 'type', //用来判断是否是从转单页面进入
 | ||||
|     leftarea: 'leftarea', //左侧的列表区域
 | ||||
|     channelTypeDataSource1: 'mm.mmpac.pickm.datasource', //备料计划的缓存id
 | ||||
|     pickmarrange: 'pickmToReqpickm', //备料计划数组
 | ||||
|     putplanarrange: 'putplanToReqpickm', //投放计划数组
 | ||||
|     channelType: 'channelType', //推单
 | ||||
|     // config: {
 | ||||
|     // 	headAreaId: 'head_card',
 | ||||
|     // 	bodyAreaId: 'body_card',
 | ||||
|     // 	bodyPKfield: 'cmoid'
 | ||||
|     // },
 | ||||
|     comeType: 'comeType', | ||||
|     //推单-备料计划
 | ||||
|     pickmtoReqPickmbillURL: '/nccloud/mmpac/reqpickm/pickmToReqPickmQueryAction.do', // 备料计划推备料申请
 | ||||
|     //推单-投放计划
 | ||||
|     putplantoReqPickmbillURL: '/nccloud/mmpac/reqpickm/putplanToReqPickmQueryAction.do', // 投放计划推备料申请
 | ||||
| } | ||||
| const CardButton = { | ||||
|     Back: 'Back', | ||||
| 
 | ||||
|     Add: 'Add', | ||||
|     Edit: 'Edit', | ||||
|     Delete: 'Delete', | ||||
|     Refresh: 'Refresh', | ||||
|     Copy: 'Copy', | ||||
|     ReqPickmDelivery: 'ReqPickmDelivery', //备料
 | ||||
|     drop_more: 'drop_more', | ||||
|     ReqPickmFinish: 'ReqPickmFinish', //强制完成
 | ||||
|     ReqPickmUnFinish: 'ReqPickmUnFinish', //取消完成
 | ||||
|     File: 'File', //附件管理
 | ||||
|     BillLinkQuery: 'BillLinkQuery', //单据追溯
 | ||||
|     Print: 'Print', //打印
 | ||||
|     Output: 'Output', //输出
 | ||||
|     PrintDetail: 'PrintDetail', //打印明细
 | ||||
| 
 | ||||
|     Cancel: 'Cancel', | ||||
|     Save: 'Save', | ||||
|     ReqPickmCompute: 'ReqPickmCompute', //计算
 | ||||
|     ReqPickmSum: 'ReqPickmSum', //汇总
 | ||||
|     ReqPickmUnSum: 'ReqPickmUnSum', //取消汇总
 | ||||
|     QuitTransferBill: 'QuitTransferBill', //退出转单
 | ||||
| 
 | ||||
|     BrowseBtns: ['Add', 'Edit', 'Delete', 'Refresh', 'Copy', 'ReqPickmDelivery', 'ReqPickmFinish', | ||||
|         'ReqPickmUnFinish', 'File', 'BillLinkQuery', 'File', 'Print', 'Output', 'PrintDetail', 'drop_more' | ||||
|     ], | ||||
|     EditBtns: ['Save', 'Cancel', 'ReqPickmCompute', 'ReqPickmSum', 'ReqPickmUnSum'] | ||||
| } | ||||
| const CardButton_body_detail = { | ||||
|     CloseRow: 'CloseRow', //收起
 | ||||
|     OpenRow: 'OpenRow', //展开
 | ||||
| 
 | ||||
|     AddLine: 'AddLine', //增行
 | ||||
|     DelLine: 'DeleteLine', //删行
 | ||||
|     CopyLine: 'CopyLine', //复制行
 | ||||
|     InsertLine: 'InsertLine', //插行
 | ||||
|     ResetNo: 'ResetNo', //重排行号 
 | ||||
|     PasteLast: 'PasteLast', //粘贴至末行
 | ||||
|     PasteCancel: 'PasteCancel', //复制行取消   
 | ||||
|     PasteThis: 'PasteThis', //粘贴至此
 | ||||
|     EditBtns: ['AddLine', 'DeleteLine', 'CopyLine', 'InsertLine', 'ResetNo'], //编辑态可显示按钮
 | ||||
|     CopyBtns: ['PasteLast', 'PasteThis', 'PasteCancel'], //复制后显示的按钮
 | ||||
| 
 | ||||
| } | ||||
| const CardButton_body_sum = { | ||||
|         // CloseRow: 'CloseRow',//收起
 | ||||
|         // OpenRow: 'OpenRow',//展开
 | ||||
|         ResetNo_s: 'ResetNo_s', //重排行号
 | ||||
|         ReqPickmDelivery_s: 'ReqPickmDelivery_s' //汇总表肩上备料
 | ||||
|     } | ||||
|     //表体物料的6个固定辅助属性
 | ||||
| const bodyfixAssts = [ | ||||
|     'cbvendorid', | ||||
|     'cbvendorvid', | ||||
|     'cbproductorid', | ||||
|     'cbprojectid', | ||||
|     'cbcustomerid', | ||||
|     'cbcustomervid', | ||||
|     //'cbqualitylevelid',
 | ||||
|     //'cbffileid'
 | ||||
| ]; | ||||
| const bodyCustAndSupFild = { | ||||
| 	ccustomerid: 'cbcustomerid', | ||||
| 	ccustomervid: 'cbcustomervid', | ||||
| 	cvendorid: 'cbvendorid', | ||||
| 	cvendorvid: 'cbvendorvid' | ||||
| }; | ||||
| const sagasField = { | ||||
|     SAGA_FROZEN: 'saga_frozen', //冻结状态
 | ||||
|     SAGA_GTXID: 'saga_gtxid', //全局事务id
 | ||||
|     SAGA_BTXID: 'saga_btxid', //分支事务id
 | ||||
|     SAGA_STATUS: 'saga_status' //事务状态
 | ||||
| }; | ||||
| //明细表体-侧拉编辑框不可编辑字段
 | ||||
| const notEdit_modal_d = [ | ||||
|     'creqpickm_bid', //主键
 | ||||
|     'pk_group', | ||||
|     'pk_org', | ||||
|     'pk_org_v', | ||||
|     'vrowno', //行号
 | ||||
|     'cmaterialid', //物料oid
 | ||||
|     'cmaterialvid', //物料
 | ||||
|     'cdeliverorgvid', //发料组织
 | ||||
|     'cdeliverorgid', | ||||
|     'fsupplytype', | ||||
|     'bcandeliver', | ||||
|     'bmainmaterial', | ||||
|     'ddeliverdate', | ||||
|     'fitemsource', //
 | ||||
|     'coutstockid', //发料仓库
 | ||||
|     'nreqastnum', //申请数量
 | ||||
|     'nreqnum', //申请主数量
 | ||||
|     'castunitid', //辅单位
 | ||||
|     'cunitid', //主单位
 | ||||
|     'vchangerate', //换算率
 | ||||
|     'cbffileid', //特征码
 | ||||
|     'vnote' //备注
 | ||||
| ]; | ||||
| export { URL, TabCode, STATUS, FbillStatus, ReqPickmCache, Field, Field_detail, Field_sum, billType, FitemsourceEnum, FsupplytypeEnum, ReqPickmListInfo, ReqPickmCardInfo, CardButton, CardButton_body_detail, CardButton_body_sum, ListButton, bodyfixAssts, TransferInfo, notEdit_modal_d, sagasField,bodyCustAndSupFild }; | ||||
|  | @ -0,0 +1,743 @@ | |||
| /** | ||||
|  * 列表态点击事件 | ||||
|  */ | ||||
| import { ajax, toast, cardCache, print, output, cacheTools } from 'nc-lightapp-front'; | ||||
| import { commonSearch } from './service'; | ||||
| import { URL, ReqPickmCache, Field, ReqPickmListInfo, TabCode, STATUS, ListButton } from '../../constance'; | ||||
| import { showWarningDialog, showErrorInfo, showBatchOprMessage ,showWarningInfo,showSuccessInfo} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; | ||||
| import { buttonController } from '../viewController' | ||||
| import { updateCacheDataForList, deleteCacheDataForList } from '../../../../../mmpub/mmpub/pub/cache'; | ||||
| const { searchId, tableId, pk_item, pageId } = ReqPickmListInfo; | ||||
| let { setDefData, getDefData } = cardCache; | ||||
| import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; | ||||
| import {tableBeforeEdit} from '../../../../../mmpub/mmpub/pub/tool/listBeforeEditCardUtil'; | ||||
| 
 | ||||
| const buttonClick = function (props, key, text, record, index) { | ||||
| 	let rows = []; | ||||
| 	switch (key) { | ||||
| 		case ListButton.Add://新增
 | ||||
| 			addBtnClick.call(this); | ||||
| 			break; | ||||
| 		case ListButton.Delete://删除
 | ||||
| 			deleteBtnClick.call(this, props, record, index); | ||||
| 			break; | ||||
| 		case ListButton.Edit://修改
 | ||||
| 			editBtnClick.call(this, props, record, index); | ||||
| 			break; | ||||
| 		case ListButton.Refresh://刷新
 | ||||
| 			refreshBtnClick.call(this); | ||||
| 			break; | ||||
| 		case ListButton.Copy://复制
 | ||||
| 			copyBtnClick.call(this, props, record, index); | ||||
| 			break; | ||||
| 		case ListButton.ReqPickmDelivery://备料
 | ||||
| 			deliveryBtnClick.call(this, props, record, index); | ||||
| 			break; | ||||
| 		case ListButton.ReqPickmFinish://强制完成
 | ||||
| 			finishBtnClick.call(this, this.props, record); | ||||
| 			break; | ||||
| 		case ListButton.ReqPickmUnFinish://取消完成
 | ||||
| 			unFinishBtnClick.call(this, this.props, record); | ||||
| 			break; | ||||
| 		case ListButton.BillLinkQuery://单据追溯
 | ||||
| 			billLinkQueryBtnClick.call(this, this.props, record, index); | ||||
| 			break; | ||||
| 		case ListButton.File: //附件管理
 | ||||
| 			fileBtnClick.call(this, this.props, record, index); | ||||
| 			break; | ||||
| 		case ListButton.Print://打印
 | ||||
| 			printBtnClick.call(this); | ||||
| 			break; | ||||
| 		case ListButton.PrintDetail://打印
 | ||||
| 			printDetailBtnClick.call(this); | ||||
| 			break; | ||||
| 		case ListButton.Output: //输出
 | ||||
| 			outputBtnClick.call(this); | ||||
| 			break; | ||||
| 		default: | ||||
| 			break; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| //备料
 | ||||
| const deliveryBtnClick = function (props, record) { | ||||
| 	let _this = this; | ||||
| 	if (record && record.creqpickmid) { | ||||
| 		if (record.fbillstatus && record.fbillstatus.value == 2) { | ||||
| 			toast({ | ||||
| 				color: 'warning', | ||||
| 				content: getLangByResId(this, '5008ReqPickm-0000029')/*国际化处理: 此备料申请是完成态,不能备料!*/ | ||||
| 			}); | ||||
| 			return; | ||||
| 		} else if (record.fbillstatus && record.fbillstatus.value == 1) { | ||||
| 			doDelivery.call(_this, props, record); | ||||
| 		} | ||||
| 
 | ||||
| 	} else { | ||||
| 		let rows = props.table.getCheckedRows(tableId); | ||||
| 		if (rows.length <= 0) { | ||||
| 			toast({ | ||||
| 				color: 'warning', | ||||
| 				content: getLangByResId(this, '5008ReqPickm-0000027')/*国际化处理: 请选择需要备料的数据!*/ | ||||
| 			}); | ||||
| 			return; | ||||
| 		} else if (rows.length == 1) { | ||||
| 			let fbillstatus = rows[0].data.values.fbillstatus; | ||||
| 			if (fbillstatus && fbillstatus.value == 2) { | ||||
| 				toast({ | ||||
| 					color: 'warning', | ||||
| 					content: getLangByResId(this, '5008ReqPickm-0000029')/*国际化处理: 此备料申请是完成态,不能备料!*/ | ||||
| 				}); | ||||
| 				return; | ||||
| 			} else if (fbillstatus && fbillstatus.value == 1) { | ||||
| 				doDelivery.call(_this, props, null, rows); | ||||
| 			} | ||||
| 		} else { | ||||
| 			doDelivery.call(_this, props, null, rows); | ||||
| 		} | ||||
| 
 | ||||
| 	} | ||||
| } | ||||
| const doDelivery = function (props, record, rows) { | ||||
| 	// 获取备料表格行的行号
 | ||||
| 	let pkarr = new Array(); | ||||
| 	let arrangeids = [];//用来存储所选择数据的id
 | ||||
| 	let numberindex = null; | ||||
| 	if (record && record.creqpickmid) { | ||||
| 		numberindex = record.numberindex.value; | ||||
| 		let data = { | ||||
| 			id: record.creqpickmid.value, | ||||
| 			ts: record.ts.value | ||||
| 		}; | ||||
| 		pkarr.push(data.id); | ||||
| 		arrangeids.push(data.id) | ||||
| 	} else { | ||||
| 		// 获取备料表格行的行号
 | ||||
| 		let indexs = []; | ||||
| 		rows.map((item) => { | ||||
| 			indexs.push(item.index); | ||||
| 		}); | ||||
| 		rows.map((item) => { | ||||
| 			let data = { | ||||
| 				id: item.data.values.creqpickmid.value, | ||||
| 				ts: item.data.values.ts.value | ||||
| 			}; | ||||
| 			pkarr.push(data.id); | ||||
| 			arrangeids.push(data.id); | ||||
| 		}); | ||||
| 	} | ||||
| 	let data = { | ||||
| 		pks: pkarr, | ||||
| 		pageId: pageId, | ||||
| 		iscard: false | ||||
| 	}; | ||||
| 	ajax({ | ||||
| 		method: 'post', | ||||
| 		url: URL.deliveryURL, | ||||
| 		data: data, | ||||
| 		success: (res) => { | ||||
| 			//跳转
 | ||||
| 			if (res.success && res.error == null) { | ||||
| 				//let pushdata = res.data[0];
 | ||||
| 				//将需要备料的数据id存放到dataSource,下游直接去取
 | ||||
| 				cacheTools.set('reqpickmArrangeIds', arrangeids); | ||||
| 				let fprodmode = getDefData('fprodmode', ReqPickmCache.dataSource); | ||||
| 				if (fprodmode == 1) { //流程
 | ||||
| 					props.openTo(null, { | ||||
| 						appcode: '50080105', | ||||
| 						pagecode: '5008010502', | ||||
| 						type: '55AC' | ||||
| 					}); | ||||
| 				} else {  //离散
 | ||||
| 					props.openTo(null, { | ||||
| 						appcode: '50090105', | ||||
| 						pagecode: '5009010502', | ||||
| 						type: '55AC' | ||||
| 					}); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 	}) | ||||
| } | ||||
| //强制完成
 | ||||
| const finishBtnClick = function (props, record) { | ||||
| 	let _this = this; | ||||
| 	if (record && record.creqpickmid) { | ||||
| 		doFinish.call(_this, props, record); | ||||
| 	} else { | ||||
| 		let rows = this.props.table.getCheckedRows(tableId); | ||||
| 		// 如果没有选中行,则提示并返回,不进行任何操作
 | ||||
| 		if (rows.length <= 0) { | ||||
| 			toast({ | ||||
| 				color: 'warning', | ||||
| 				content: getLangByResId(this, '5008ReqPickm-0000028')/*国际化处理: 请选择需要完成的数据!*/ | ||||
| 			}); | ||||
| 			return; | ||||
| 		} | ||||
| 		doFinish.call(_this, props, null, rows); | ||||
| 	} | ||||
| } | ||||
| const doFinish = function (props, record, rows) { | ||||
| 	// 获取待完成表格行的行号
 | ||||
| 	let pkarr = new Array(); | ||||
| 	let finishRows = []; | ||||
| 	let numberindex = null; | ||||
| 	if (record && record.creqpickmid) { | ||||
| 		numberindex = record.numberindex.value; | ||||
| 		let data = { | ||||
| 			id: record.creqpickmid.value, | ||||
| 			ts: record.ts.value | ||||
| 		}; | ||||
| 		pkarr.push(data.id); | ||||
| 		finishRows.push(data); | ||||
| 	} else { | ||||
| 		// 获取操作表格行的行号
 | ||||
| 		let indexs = []; | ||||
| 		rows.map((item) => { | ||||
| 			indexs.push(item.index); | ||||
| 		}); | ||||
| 		rows.map((item) => { | ||||
| 			let data = { | ||||
| 				id: item.data.values.creqpickmid.value, | ||||
| 				ts: item.data.values.ts.value | ||||
| 			}; | ||||
| 			pkarr.push(data.id); | ||||
| 			finishRows.push(data); | ||||
| 		}); | ||||
| 	} | ||||
| 	let data = { | ||||
| 		finishAndUnFinishInfos: finishRows, | ||||
| 		pageid: pageId, | ||||
| 		iscard: false | ||||
| 	}; | ||||
| 	ajax({ | ||||
| 		url: URL.finishURL, | ||||
| 		data: data, | ||||
| 		success: (res) => { | ||||
| 			if (res.success) { | ||||
| 				if (record && record.creqpickmid) { | ||||
| 					updateCacheDataForList(props, tableId, Field.creqpickmid, res.data, numberindex - 1); | ||||
| 				} else { | ||||
| 					if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { | ||||
| 						// 成功的index
 | ||||
| 						let sucIndex = []; | ||||
| 						rows.forEach((element, index) => { | ||||
| 							if (!res.data.errorMessageMap[index]) { | ||||
| 								sucIndex.push(element.index); | ||||
| 							} | ||||
| 							updateCacheDataForList(props, tableId, Field.creqpickmid, res.data); | ||||
| 						}); | ||||
| 					} else { | ||||
| 						updateCacheDataForList(props, tableId, Field.creqpickmid, res.data); | ||||
| 					} | ||||
| 				} | ||||
| 				let tabCode = getDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource) | ||||
| 				let currentTab = tabCode && tabCode != null ? tabCode : TabCode.All.code; | ||||
| 				buttonController.initButtons.call(this, props, currentTab); | ||||
| 
 | ||||
| 				showBatchOprMessage.call(this, null, res.data, {}, getLangByResId(this, '5008ReqPickm-0000034')); | ||||
| 			} else { | ||||
| 				toast({ content: getLangByResId(this, '5008ReqPickm-0000043')/*国际化处理: 强制完成失败!*/, color: 'error' }); | ||||
| 			} | ||||
| 		}, | ||||
| 		error: (res) => { | ||||
| 			showErrorInfo(res.message); | ||||
| 		} | ||||
| 	}) | ||||
| } | ||||
| //取消完成
 | ||||
| const unFinishBtnClick = function (props, record) { | ||||
| 	let _this = this; | ||||
| 	if (record && record.creqpickmid) { | ||||
| 		doUnFinish.call(_this, props, record); | ||||
| 	} else { | ||||
| 		let rows = this.props.table.getCheckedRows(tableId); | ||||
| 		// 如果没有选中行,则提示并返回,不进行任何操作
 | ||||
| 		if (rows.length <= 0) { | ||||
| 			toast({ | ||||
| 				color: 'warning', | ||||
| 				content: getLangByResId(this, '5008ReqPickm-0000044')/* 国际化处理: '请选择需要取消完成的数据!'*/ | ||||
| 			}); | ||||
| 			return; | ||||
| 		} | ||||
| 		doUnFinish.call(_this, props, null, rows); | ||||
| 	} | ||||
| } | ||||
| const doUnFinish = function (props, record, rows) { | ||||
| 	// 获取待完成表格行的行号
 | ||||
| 	let pkarr = new Array(); | ||||
| 	let unfinishRows = []; | ||||
| 	let numberindex = null; | ||||
| 	if (record && record.creqpickmid) { | ||||
| 		numberindex = record.numberindex.value; | ||||
| 		let data = { | ||||
| 			id: record.creqpickmid.value, | ||||
| 			ts: record.ts.value | ||||
| 		}; | ||||
| 		pkarr.push(data.id); | ||||
| 		unfinishRows.push(data); | ||||
| 	} else { | ||||
| 		// 获取操作表格行的行号
 | ||||
| 		let indexs = []; | ||||
| 		rows.map((item) => { | ||||
| 			indexs.push(item.index); | ||||
| 		}); | ||||
| 		rows.map((item) => { | ||||
| 			let data = { | ||||
| 				id: item.data.values.creqpickmid.value, | ||||
| 				ts: item.data.values.ts.value | ||||
| 			}; | ||||
| 			pkarr.push(data.id); | ||||
| 			unfinishRows.push(data); | ||||
| 		}); | ||||
| 	} | ||||
| 	let data = { | ||||
| 		finishAndUnFinishInfos: unfinishRows, | ||||
| 		pageid: pageId, | ||||
| 		iscard: false | ||||
| 	}; | ||||
| 	ajax({ | ||||
| 		url: URL.unFinishURL, | ||||
| 		data: data, | ||||
| 		success: (res) => { | ||||
| 			if (res.success) { | ||||
| 				if (record && record.creqpickmid) { | ||||
| 					updateCacheDataForList(props, tableId, Field.creqpickmid, res.data, numberindex - 1); | ||||
| 				} else { | ||||
| 					if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { | ||||
| 						// 成功的index
 | ||||
| 						let sucIndex = []; | ||||
| 						rows.forEach((element, index) => { | ||||
| 							if (!res.data.errorMessageMap[index]) { | ||||
| 								sucIndex.push(element.index); | ||||
| 							} | ||||
| 							updateCacheDataForList(props, tableId, Field.creqpickmid, res.data); | ||||
| 						}); | ||||
| 					} else { | ||||
| 						updateCacheDataForList(props, tableId, Field.creqpickmid, res.data); | ||||
| 					} | ||||
| 				} | ||||
| 				let tabCode = getDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource) | ||||
| 				let currentTab = tabCode && tabCode != null ? tabCode : TabCode.All.code; | ||||
| 				buttonController.initButtons.call(this, props, currentTab); | ||||
| 
 | ||||
| 				showBatchOprMessage.call(this, null, res.data, {}, getLangByResId(this, '5008ReqPickm-0000035')); | ||||
| 			} else { | ||||
| 				toast({ content: getLangByResId(this, '5008ReqPickm-0000045')/* 国际化处理: 取消完成失败!*/, color: 'error' }); | ||||
| 			} | ||||
| 		}, | ||||
| 		error: (res) => { | ||||
| 			showErrorInfo(res.message); | ||||
| 		} | ||||
| 	}) | ||||
| } | ||||
| //打印
 | ||||
| const printBtnClick = function () { | ||||
| 	let appcode = this.props.getAppCode(); | ||||
| 	let nodekey = '50080106_sum' | ||||
| 	if (this.props.getAppCode().startsWith('5009')) { | ||||
| 		nodekey = nodekey.replace('5008', '5009'); | ||||
| 	} | ||||
| 	let pks = []; | ||||
| 	let selrows = this.props.table.getCheckedRows(tableId); | ||||
| 	if (selrows.length == 0) { | ||||
| 		toast({ | ||||
| 			color: 'danger', | ||||
| 			content: getLangByResId(this, '5008ReqPickm-0000046') /* 国际化处理: '请选择要打印的备料申请!'*/ | ||||
| 		}); | ||||
| 		return; | ||||
| 	} | ||||
| 	selrows.forEach((row) => { | ||||
| 		let pk = row.data.values.creqpickmid.value; | ||||
| 		if (pk) { | ||||
| 			pks.push(pk); | ||||
| 		} | ||||
| 	}); | ||||
| 	print( | ||||
| 		'pdf', //支持两类: 'html'为模板打印, 'pdf'为pdf打印
 | ||||
| 		URL.printURL, | ||||
| 		{ | ||||
| 			funcode: appcode, | ||||
| 			nodekey: nodekey, //模板节点标识
 | ||||
| 			oids: pks // 功能节点的数据主键   oids含有多个元素(['1001A41000000000A9LR','1001A410000000009JDD'])时为批量打印,
 | ||||
| 		} | ||||
| 	); | ||||
| } | ||||
| //打印明细
 | ||||
| const printDetailBtnClick = function () { | ||||
| 	let appcode = this.props.getAppCode(); | ||||
| 	let nodekey = '50080106_detail' | ||||
| 	if (this.props.getAppCode().startsWith('5009')) { | ||||
| 		nodekey = nodekey.replace('5008', '5009'); | ||||
| 	} | ||||
| 	let pks = []; | ||||
| 	let selrows = this.props.table.getCheckedRows(tableId); | ||||
| 	if (selrows.length == 0) { | ||||
| 		toast({ | ||||
| 			color: 'danger', | ||||
| 			content: getLangByResId(this, '5008ReqPickm-0000046') /* 国际化处理: '请选择要打印的备料申请!'*/ | ||||
| 		}); | ||||
| 		return; | ||||
| 	} | ||||
| 	selrows.forEach((row) => { | ||||
| 		let pk = row.data.values.creqpickmid.value; | ||||
| 		if (pk) { | ||||
| 			pks.push(pk); | ||||
| 		} | ||||
| 	}); | ||||
| 	print( | ||||
| 		'pdf', //支持两类: 'html'为模板打印, 'pdf'为pdf打印
 | ||||
| 		URL.printURL, | ||||
| 		{ | ||||
| 			funcode: appcode, | ||||
| 			nodekey: nodekey, //模板节点标识
 | ||||
| 			oids: pks // 功能节点的数据主键   oids含有多个元素(['1001A41000000000A9LR','1001A410000000009JDD'])时为批量打印,
 | ||||
| 		} | ||||
| 	); | ||||
| } | ||||
| //输出
 | ||||
| const outputBtnClick = function () { | ||||
| 	let appcode = this.props.getAppCode(); | ||||
| 	let nodekey = '50080106_sum' | ||||
| 	if (this.props.getAppCode().startsWith('5009')) { | ||||
| 		nodekey = nodekey.replace('5008', '5009'); | ||||
| 	} | ||||
| 	let pks = []; | ||||
| 	let selrows = this.props.table.getCheckedRows(tableId); | ||||
| 	if (selrows.length == 0) { | ||||
| 		toast({ | ||||
| 			color: 'danger', | ||||
| 			content: getLangByResId(this, '5008ReqPickm-0000046') /* 国际化处理: '请选择要打印的备料申请!'*/ | ||||
| 		}); | ||||
| 		return; | ||||
| 	} | ||||
| 	selrows.forEach((row) => { | ||||
| 		let pk = row.data.values.creqpickmid.value; | ||||
| 		if (pk) { | ||||
| 			pks.push(pk); | ||||
| 		} | ||||
| 	}); | ||||
| 	output({ | ||||
| 		url: URL.printURL, | ||||
| 		data: { | ||||
| 			oids: pks, | ||||
| 			nodekey: nodekey, | ||||
| 			funcode: appcode, | ||||
| 			outputType: 'output' | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
| //单据追溯
 | ||||
| const billLinkQueryBtnClick = function (props, record, index) { | ||||
| 	let pk; | ||||
| 	if (record) { | ||||
| 		pk = record.creqpickmid.value; | ||||
| 	} else { | ||||
| 		pk = props.table.getCheckedRows(tableId)[0].data.values.creqpickmid.value; | ||||
| 	} | ||||
| 	this.setState({ creqpickmid: pk, showTrack: true }); | ||||
| } | ||||
| //附件管理
 | ||||
| const fileBtnClick = function (props, record, index) { | ||||
| 	let pk; | ||||
| 	let vbillcode; | ||||
| 	if (record) { | ||||
| 		pk = record.creqpickmid.value; | ||||
| 		vbillcode = record.vbillcode.value; | ||||
| 	} else { | ||||
| 		pk = props.table.getCheckedRows(tableId)[0].data.values.creqpickmid.value; | ||||
| 		vbillcode = props.table.getCheckedRows(tableId)[0].data.values.vbillcode.value; | ||||
| 	} | ||||
| 	let fileManage = { | ||||
| 		creqpickmid: pk, | ||||
| 		showUploader: true, | ||||
| 		// target: event.target, //确定弹窗位置,不传则默认为正中央
 | ||||
| 		vbillcode: vbillcode | ||||
| 	}; | ||||
| 	this.setState(fileManage); | ||||
| } | ||||
| 
 | ||||
| const addBtnClick = function () { | ||||
| 	//清除表头表体数据	
 | ||||
| 	//clearData.call(this);
 | ||||
| 	//设置默认值
 | ||||
| 
 | ||||
| 	//表头字段编辑性控制
 | ||||
| 	//this.props.initMetaByPkorg(FIELD.pk_org_v);
 | ||||
| 	this.props.pushTo('/card', { | ||||
| 		status: STATUS.add | ||||
| 	}) | ||||
| } | ||||
| const deleteBtnClick = function (props, record, index) { | ||||
| 	let rows; | ||||
| 	if (record && record.creqpickmid) { | ||||
| 		rows = [ | ||||
| 			{ | ||||
| 				index: index, | ||||
| 				data: { | ||||
| 					values: record | ||||
| 				} | ||||
| 			} | ||||
| 		] | ||||
| 		doDelete.call(this, this.props, record, rows) | ||||
| 	} else { | ||||
| 		rows = this.props.table.getCheckedRows(tableId); | ||||
| 		// 如果没有选中行,则提示并返回,不进行任何操作
 | ||||
| 		if (rows.length <= 0) { | ||||
| 			toast({ | ||||
| 				color: 'warning', | ||||
| 				content: getLangByResId(this, '5008ReqPickm-0000011')/* 国际化处理: 请选择需要删除的数据!*/ | ||||
| 			}); | ||||
| 			return; | ||||
| 		} | ||||
| 		showWarningDialog.call(this, getLangByResId(this, '5008ReqPickm-000009')/* 国际化处理: 删除*/, | ||||
| 			getLangByResId(this, '5008ReqPickm-0000010')/* 国际化处理: 确定要删除吗?*/, | ||||
| 			{ beSureBtnClick: doDelete.bind(this, this.props, null, rows) }); | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| const doDelete = function (props, record, rows) { | ||||
| 	// 获取待删除表格行的行号
 | ||||
| 	let indexs = []; | ||||
| 	rows.map((item) => { | ||||
| 		indexs.push(item.index); | ||||
| 	}); | ||||
| 	// 执行删除操作
 | ||||
| 	let delRows = []; | ||||
| 	rows.map((item) => { | ||||
| 		let data = { | ||||
| 			id: item.data.values[ReqPickmListInfo.pk_item].value, | ||||
| 			ts: item.data.values.ts.value | ||||
| 		}; | ||||
| 		delRows.push(data); | ||||
| 	}); // 拼装json
 | ||||
| 	let data = { | ||||
| 		deleteInfos: delRows, | ||||
| 		pageid: pageId, | ||||
| 		iscard: false | ||||
| 	}; | ||||
| 	ajax({ | ||||
| 		url: URL.batchDelete, | ||||
| 		data: data, | ||||
| 		success: (res) => { | ||||
| 			 if (res.data) { | ||||
| 				if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { | ||||
| 					// 成功的index
 | ||||
| 					let sucIndex = []; | ||||
| 					rows.forEach((element, index) => { | ||||
| 						if (!res.data.errorMessageMap[index]) { | ||||
| 						    deleteCacheDataForList(props, tableId, element.data.values.creqpickmid.value); | ||||
| 							sucIndex.push(element.index); | ||||
| 						} | ||||
| 					}); | ||||
| 					props.table.deleteTableRowsByIndex(tableId, sucIndex); | ||||
| 				} else { | ||||
| 					let succIndex = []; | ||||
| 					rows.forEach((element, index) => { | ||||
| 						deleteCacheDataForList(props, tableId, element.data.values.creqpickmid.value); | ||||
| 						succIndex.push(element.index); | ||||
| 					}); | ||||
| 					props.table.deleteTableRowsByIndex(tableId, succIndex); | ||||
| 				} | ||||
| 
 | ||||
| 				let tabCode = getDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource) | ||||
| 				let currentTab = tabCode && tabCode != null ? tabCode : TabCode.All.code; | ||||
| 				buttonController.initButtons.call(this, props, currentTab); | ||||
| 				if (record && record.creqpickmid) { | ||||
| 				showSuccessInfo(getLangByResId(this, '5008ReqPickm-0000039')); /* 国际化处理: 删除成功!*/ | ||||
| 				} | ||||
| 				else{ | ||||
| 				showBatchOprMessage.call(this, null, res.data, {}, getLangByResId(this, '5008ReqPickm-000009')); | ||||
| 				} | ||||
| 			} else { | ||||
| 				toast({ content: getLangByResId(this, '5008ReqPickm-0000047') /* 国际化处理: 删除失败!'*/, color: 'error' }); | ||||
| 			} | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
| const editBtnClick = function (props, record, index) { | ||||
| 	 | ||||
| 
 | ||||
|     let canDoEdit =  tableBeforeEdit.call( | ||||
|         this, | ||||
|         props, | ||||
|         this.props.getAppCode(), | ||||
|         pageId, | ||||
|         ReqPickmListInfo.tableId, | ||||
|         record.creqpickmid.value, | ||||
|         record.ts.value); | ||||
| 
 | ||||
|     if(canDoEdit){ | ||||
| 		let rows; | ||||
| 		if (record && record.creqpickmid) { | ||||
| 			rows = [ | ||||
| 				{ | ||||
| 					index: index, | ||||
| 					data: { | ||||
| 						values: record | ||||
| 					} | ||||
| 				} | ||||
| 			] | ||||
| 		} else { | ||||
| 			rows = this.props.table.getCheckedRows(tableId); | ||||
| 			if (rows.length <= 0) { | ||||
| 				toast({ | ||||
| 					color: 'warning', | ||||
| 					content: getLangByResId(this, '5008ReqPickm-0000012')/* 国际化处理: 请选择需要修改的数据!*/ | ||||
| 				}); | ||||
| 				return; | ||||
| 			} else if (rows.length > 1) { | ||||
| 				toast({ | ||||
| 					color: 'warning', | ||||
| 					content: getLangByResId(this, '5008ReqPickm-0000013')/* 国际化处理: 请最多选择一条数据进行修改!*/ | ||||
| 				}); | ||||
| 				return; | ||||
| 			} | ||||
| 		} | ||||
| 		let conditionData = { | ||||
| 			pks: [rows[0].data.values[ReqPickmListInfo.pk_item].value], | ||||
| 			pageid: pageId, | ||||
| 			status: props.getUrlParam(STATUS.status) | ||||
| 		}; | ||||
| 		ajax({ | ||||
| 			url: URL.editReqPickmCardURL, | ||||
| 			data: conditionData, | ||||
| 			method: 'POST', | ||||
| 			success: (res) => { | ||||
| 				let data = {}; | ||||
| 				data[STATUS.status] = STATUS.edit;//修改数据状态
 | ||||
| 				data[pk_item] = rows[0].data.values[ReqPickmListInfo.pk_item].value; | ||||
| 				data.id = rows[0].data.values[ReqPickmListInfo.pk_item].value; | ||||
| 				this.props.pushTo('/card', data); | ||||
| 			} | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
| const refreshBtnClick = function () { | ||||
| 	searchBtnClick.call(this, true); | ||||
| } | ||||
| const copyBtnClick = function (props, record, index) { | ||||
| 	let rows; | ||||
| 	if (record && record.creqpickmid) { | ||||
| 		rows = [ | ||||
| 			{ | ||||
| 				index: index, | ||||
| 				data: { | ||||
| 					values: record | ||||
| 				} | ||||
| 			} | ||||
| 		] | ||||
| 	} else { | ||||
| 		rows = this.props.table.getCheckedRows(tableId); | ||||
| 		if (rows.length <= 0) { | ||||
| 			toast({ | ||||
| 				color: 'warning', | ||||
| 				content: getLangByResId(this, '5008ReqPickm-0000019')/* 国际化处理: 请选择要复制的数据!*/ | ||||
| 			}); | ||||
| 			return; | ||||
| 		} else if (rows.length > 1) { | ||||
| 			toast({ | ||||
| 				color: 'warning', | ||||
| 				content: getLangByResId(this, '5008ReqPickm-0000020')/* 国际化处理: 请最多选择一条数据进行复制!*/ | ||||
| 			}); | ||||
| 			return; | ||||
| 		} | ||||
| 	} | ||||
| 	let data = {}; | ||||
| 	data[STATUS.status] = STATUS.add;//修改数据状态
 | ||||
| 	data[pk_item] = rows[0].data.values[ReqPickmListInfo.pk_item].value; | ||||
| 	data.id = rows[0].data.values[ReqPickmListInfo.pk_item].value; | ||||
| 	data.copy = true; | ||||
| 	this.props.pushTo('/card', data); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| const searchBtnClick = function (isRefresh = false) { | ||||
| 	let queryInfo; | ||||
| 	if (true == isRefresh) { | ||||
| 		queryInfo=getDefData(ReqPickmCache.queryInfo, ReqPickmCache.dataSource); | ||||
| 		if(!queryInfo||!queryInfo.querycondition){ | ||||
| 			showWarningInfo(getLangByResId(this, '5008ReqPickm-0000071')); | ||||
| 			return; | ||||
| 		} | ||||
| 	} | ||||
| 	else { | ||||
| 		let searchVal = this.props.search.getAllSearchData(searchId);//必输项为空时,返回值为false
 | ||||
| 		if (!searchVal) { | ||||
| 			return; | ||||
| 		} | ||||
| 		//点击查询区域的查询按钮
 | ||||
| 		queryInfo = this.props.search.getQueryInfo(searchId, true); | ||||
| 		// 查询
 | ||||
| 		// 将查询条件缓存
 | ||||
| 		setDefData(ReqPickmCache.queryInfo, ReqPickmCache.dataSource, queryInfo); | ||||
| 	} | ||||
| 
 | ||||
| 	//如果searchVal有值说明是点击查询进入,没有值说明是点击翻页过来的,需要从缓存中获取
 | ||||
| 	let tabCode = getDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource) | ||||
| 	let currentTab = tabCode && tabCode != null ? tabCode : TabCode.All.code; | ||||
| 
 | ||||
| 	let pageInfo = this.props.table.getTablePageInfo(tableId); | ||||
| 	commonSearch.call(this, currentTab, queryInfo, pageInfo, true, isRefresh); | ||||
| } | ||||
| 
 | ||||
| const tabChange = function (tabCode) { | ||||
| 	setDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource, tabCode); | ||||
| 	let queryInfo = getDefData(ReqPickmCache.queryInfo, ReqPickmCache.dataSource); | ||||
| 	//let queryInfo = this.props.search.getQueryInfo(searchId);
 | ||||
| 	if (queryInfo && queryInfo.querycondition) { | ||||
| 		let pageInfo = this.props.table.getTablePageInfo(tableId); | ||||
| 		pageInfo.index = 0; | ||||
| 		commonSearch.call(this, tabCode, queryInfo, pageInfo, false); | ||||
| 	} | ||||
| 	//页签切换重置按钮
 | ||||
| 	buttonController.initButtons.call(this, this.props, tabCode); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| //双击进入卡片态
 | ||||
| const doubleClick = function (record) { | ||||
| 	let data = {}; | ||||
| 	// let searchVal = this.props.search.getAllSearchData(searchId);
 | ||||
| 	// cacheTools.set("searchParams", searchVal);
 | ||||
| 	data[STATUS.status] = STATUS.browse; | ||||
| 	data[pk_item] = record[pk_item].value; | ||||
| 	data.id = record[pk_item].value; | ||||
| 	this.props.pushTo('/card', data); | ||||
| } | ||||
| 
 | ||||
| const pageInfoClick = function (props, config, pks) { | ||||
| 	let pageInfo = this.props.table.getTablePageInfo(tableId); | ||||
| 	setDefData(ReqPickmCache.pageInfo, ReqPickmCache.dataSource, pageInfo);    //缓存分页信息
 | ||||
| 	let _this = this; | ||||
| 	let data = { | ||||
| 		pks: pks, | ||||
| 		pagecode: pageId | ||||
| 	}; | ||||
| 	//得到数据渲染到页面
 | ||||
| 	ajax({ | ||||
| 		url: URL.currentpage, | ||||
| 		data: data, | ||||
| 		success: function (res) { | ||||
| 			let { success, data } = res; | ||||
| 			if (success) { | ||||
| 				if (data) { | ||||
| 					_this.props.table.setAllTableData(tableId, data[tableId]); | ||||
| 				} else { | ||||
| 					_this.props.table.setAllTableData(tableId, { rows: [] }); | ||||
| 				} | ||||
| 				buttonController.initButtons.call(_this,_this.props); | ||||
| 			} | ||||
| 		} | ||||
| 	}); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| export { | ||||
| 	buttonClick, | ||||
| 	searchBtnClick, | ||||
| 	tabChange, | ||||
| 	doubleClick, | ||||
| 	pageInfoClick | ||||
| } | ||||
|  | @ -0,0 +1,70 @@ | |||
| import { ajax,toast,cardCache } from 'nc-lightapp-front'; | ||||
| import {URL, TabCode, STATUS, ReqPickmCache, ReqPickmListInfo, ReqPickmCardInfo, ListButton} from '../../../constance' | ||||
| const { pageId,headAction,searchId,tableId,pk_item}=ReqPickmListInfo; | ||||
| let {setDefData,getDefData } = cardCache; | ||||
| import {showHasQueryResultInfo,showRefreshInfo} from '../../../../../../mmpub/mmpub/pub/tool/messageUtil'; | ||||
| import { buttonController } from '../../viewController'; | ||||
| 
 | ||||
| const commonSearch = function(tabCode, queryInfo, pageInfo,showSuccess,isRefresh){ | ||||
|     setDefData(ReqPickmCache.curTabCode,ReqPickmCache.dataSource,tabCode); | ||||
|     let ReqPickmData = { | ||||
|         pageCode: pageId, | ||||
|         templetid: tableId, | ||||
|         isNeedOrgPeimission: true, | ||||
|         currentTab: tabCode, | ||||
|         queryInfo: { | ||||
|             ...queryInfo, | ||||
|             pageInfo: pageInfo | ||||
|         } | ||||
|     }; | ||||
|     ajax({ | ||||
|         url: URL.queryList, | ||||
|         data: ReqPickmData, | ||||
|         success: (res) => { | ||||
|             if(res.data.currentGrid){ | ||||
|                 this.props.table.setAllTableData(tableId, res.data.currentGrid[tableId]) | ||||
|             }else{ | ||||
|                 let tableData = { | ||||
|                     allPks: [], | ||||
|                     rows: [] | ||||
|                 } | ||||
|                 this.props.table.setAllTableData(tableId, tableData); | ||||
|                 //toast({ content: getLangByResId(this, '5008ReqPickm-000004') })
 | ||||
|             } | ||||
|             setDefData(ReqPickmCache.tabNum,ReqPickmCache.dataSource,res.data.tabNum); | ||||
|             this.setState({ | ||||
|                 executNum: res.data.tabNum.executing ? res.data.tabNum.executing : 0, | ||||
|                 allNum: res.data.tabNum.all ? res.data.tabNum.all : 0 | ||||
|             }); | ||||
|             buttonController.initButtons.call(this, this.props, getDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource)) | ||||
|             if(showSuccess){ | ||||
|                 if(true==isRefresh){ | ||||
|                     showRefreshInfo(); | ||||
|                 } | ||||
|                 else{ | ||||
|                     showHasQueryResultInfo(); | ||||
|                 } | ||||
|             } | ||||
|            // if(showSuccess&&res.data.currentGrid&&res.data.currentGrid[tableId]&&res.data.currentGrid[tableId].rows.length>0){
 | ||||
|              //   toast({
 | ||||
|              //       duration: 3, // 消失时间,默认是3秒; 值为 infinity 时不消失,非必输
 | ||||
|               //      color: 'success', // 提示类别,默认是 "success",非必输
 | ||||
|                     // title: "已成功", // 提示标题, 默认不同类别下分别为:"已成功"/"帮助信息"/"请注意"/"出错啦",非必输
 | ||||
|               //      content: getLangByResId(this, '5008ReqPickm-000008')/* 国际化处理: 查询成功*/, // 提示内容,非必输
 | ||||
|               //      groupOperation: false, //批量操作,默认值是false,批量操作是true,非批量操作是false,非必输
 | ||||
|                     // TextArr: TextArr, //提示框按钮文字,第一个值是展按钮未展开时,第二个值是展开按钮展开时,第三个值是关闭,批量操作必输
 | ||||
|                     // groupOperationMsg: groupOperationMsg, //数组的每一项,是批量操作之后数据处理结果的描述,非必输
 | ||||
|                     // onExpand: null, // 点击展开按钮的回调函数,非必输
 | ||||
|                     // onClose: onClose // 关闭按钮的回调函数,非必输
 | ||||
|               //  });
 | ||||
|             //}
 | ||||
|         } | ||||
|     }) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| export { | ||||
|     commonSearch,//查询服务
 | ||||
| } | ||||
|  | @ -0,0 +1,38 @@ | |||
| 
 | ||||
| import multiCorpRefHandler from '../../../../../mmpub/mmpub/pub/tool/MultiCorpRefHandler'; | ||||
| import { ReqPickmListInfo } from '../../constance'; | ||||
| const { searchId } = ReqPickmListInfo; | ||||
| export default function afterEvent(field, val) { | ||||
|     //TODO
 | ||||
|     if (field === 'pk_org') { | ||||
|         let fields = [ | ||||
|             'tab_detail.cmaterialvid','tab_detail.cmaterialid','tab_detail.cmaterialid.code', | ||||
|             'tab_sum.cmaterialid','tab_sum.cmaterialvid','tab_sum.cmaterialid.code', | ||||
|             'tab_sum.cfeedid','tab_sum.cfeedid.vfeedpointcode','tab_detail.cfeedid','tab_detail.cfeedid.vfeedpointcode', | ||||
|             'tab_detail.cwkid','tab_detail.cwkid.vwkcode','tab_sum.cwkid','tab_sum.cwkid.vwkcode', | ||||
|             'tab_detail.cbvendorid','tab_detail.cbprojectid','tab_detail.cbproductorid','tab_detail.cbcustomerid', | ||||
|             'tab_sum.cbvendorid','tab_sum.cbprojectid','tab_sum.cbproductorid','tab_sum.cbcustomerid', | ||||
|             'tab_detail.cdeptid','tab_detail.cdeptid.code','tab_sum.cdeptid','tab_sum.cdeptid.code', | ||||
|             'creator' | ||||
|         ] | ||||
|         .concat(getDefFieldArray('vdef', 20))//表头自定义项
 | ||||
|         .concat(getDefFieldArray('tab_detail.vbfree', 10))//表体自定义项和自由辅助属性
 | ||||
|         .concat(getDefFieldArray('tab_detail.vbdef', 20)) | ||||
|         .concat(getDefFieldArray('tab_sum.vfree', 10)) | ||||
|         .concat(getDefFieldArray('tab_sum.vdef', 20)); | ||||
| 
 | ||||
|         multiCorpRefHandler.call(this,this.props, val, searchId, fields); | ||||
|     }else if(field === 'tab_detail.cdeliverorgid'){ | ||||
|         multiCorpRefHandler.call(this,this.props, val, searchId, ['tab_detail.coutstockid']); | ||||
|     }else if(field === 'tab_sum.cdeliverorgid'){ | ||||
|         multiCorpRefHandler.call(this,this.props, val, searchId, ['tab_sum.coutstockid']); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| function getDefFieldArray(prefix, count) { | ||||
| 	let fields = []; | ||||
| 	for (let i = 1; i <= count; i++) { | ||||
| 		fields.push(prefix + i); | ||||
| 	} | ||||
| 	return fields; | ||||
| } | ||||
|  | @ -0,0 +1,200 @@ | |||
| /** | ||||
|  * @PageInfo:备料申请单列表态页面 | ||||
|  *  | ||||
|  */ | ||||
| import React, { Component } from 'react'; | ||||
| import { createPage, cardCache, base, high, createPageIcon } from 'nc-lightapp-front'; | ||||
| const { NCTabsControl, NCDiv } = base; | ||||
| let { getDefData,setDefData } = cardCache; | ||||
| const { BillTrack } = high; | ||||
| import NCUploader from 'uap/common/components/NCUploader' | ||||
| import initTemplate from './init/initTemplate'; | ||||
| import { buttonClick, searchBtnClick, tabChange, doubleClick, pageInfoClick } from './btnClicks'; | ||||
| import { TabCode, ListButton, ReqPickmCache, ReqPickmListInfo, Field, billType } from '../constance'; | ||||
| import { buttonController } from './viewController'; | ||||
| import search_afterEvent from './events/search_afterEvent' | ||||
| const { pageId, searchId, tableId, headAction } = ReqPickmListInfo; | ||||
| import { transtypeUtils } from '../../../../mmpub/mmpub/pub/tool'; | ||||
| import { initLang, getLangByResId } from '../../../../mmpub/mmpub/pub/tool/multiLangUtil'; | ||||
| 
 | ||||
| class ReqpickmList extends Component { | ||||
|     constructor(props) { | ||||
|         super(props); | ||||
|         props.use.search(searchId); | ||||
|         props.use.table(tableId); | ||||
| 
 | ||||
|         this.state = { | ||||
|             executNum: 0, //执行中单据数量
 | ||||
|             allNum: 0, //全部数量
 | ||||
|             curTabCode: TabCode.All.value,//默认页签
 | ||||
| 
 | ||||
|             showModal: false, //模态框
 | ||||
|             showTrack: false, //单据追溯
 | ||||
|             target: null, //弹出上传控件位置
 | ||||
|             showUploader: false, | ||||
|             vbillcode: '', //备料申请单据号
 | ||||
|             creqpickmid: '' | ||||
|         }; | ||||
|         this.selectedRowRecord = null; //选中的行
 | ||||
|         this.searchVal = null; //查询条件的缓存
 | ||||
|         initLang(this, ['5008ReqPickm'], 'mmpac', initTemplate.bind(this, this.props)); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     componentDidMount() { } | ||||
|     // 附件管理关闭
 | ||||
|     onHideUploader = () => { | ||||
|         this.setState({ | ||||
|             showUploader: false | ||||
|         }); | ||||
|     }; | ||||
| 
 | ||||
|     renderCompleteEvent = () => { | ||||
|         //发布的交易类型设置默认值
 | ||||
|         transtypeUtils.setQueryDefaultValue.call(this, this.props, searchId, Field.crequesttype); | ||||
|         let pk_org = this.props.search.getSearchValByField(searchId, Field.pk_org); | ||||
|         if (pk_org && pk_org.value && pk_org.value.firstvalue) { | ||||
|             let value = pk_org.value.firstvalue; | ||||
|             let arr = value.split(','); | ||||
|             arr = arr.map((item) => { | ||||
|                 return { refpk: item }; | ||||
|             }); | ||||
|             search_afterEvent.call(this, Field.pk_org, arr); | ||||
|         } | ||||
|     }; | ||||
|     getDefaultKey = () => { | ||||
|         let tabcode = TabCode.Executing.code; | ||||
|         let currentTab = getDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource); | ||||
|         if (currentTab) { | ||||
|             tabcode = currentTab; | ||||
|         } else { | ||||
|             setDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource, tabcode); | ||||
|         } | ||||
|         if(tabcode==TabCode.All.code){ | ||||
|             return TabCode.All.value; | ||||
|         } | ||||
|         else if(tabcode==TabCode.Executing.code){ | ||||
|             return TabCode.Executing.value; | ||||
|         } | ||||
|         else { | ||||
|             return TabCode.All.value; | ||||
|         } | ||||
|     } | ||||
|     render() { | ||||
|         let { table, button, search, base, modal, socket, BillHeadInfo } = this.props; | ||||
|         let buttons = this.props.button.getButtons(); | ||||
|         buttons = buttons.sort((a, b) => { | ||||
|             return b.btnorder - a.btnorder; | ||||
|         }); | ||||
|         let _this = this; | ||||
|         let { createSimpleTable } = table; //引入表格区
 | ||||
|         let { NCCreateSearch } = search; //引入查询区
 | ||||
|         let { createModal } = modal | ||||
|         let { createButtonApp } = button; | ||||
|         const { createBillHeadInfo } = BillHeadInfo; | ||||
|         return ( | ||||
|             <div className='nc-bill-list' > | ||||
|                 {socket.connectMesg({ | ||||
|                     tableAreaCode: tableId, | ||||
|                     billpkname: Field.creqpickmid, | ||||
|                     billtype: billType | ||||
|                 })} | ||||
|                 <NCDiv areaCode={NCDiv.config.HEADER} className='nc-bill-header-area' > | ||||
|                     <div className='header-title-search-area' > | ||||
|                         {createBillHeadInfo({ | ||||
|                             title:  this.props.getSearchParam('n'),//getLangByResId(this, '5008ReqPickm-000001'),
 | ||||
|                             initShowBackBtn: false | ||||
|                         })} | ||||
|                     </div> | ||||
|                     {/* 按钮区 */} | ||||
|                     <div className="header-button-area" > | ||||
|                         { | ||||
|                             createButtonApp({ | ||||
|                                 area: headAction, | ||||
|                                 buttonLimit: 3, | ||||
|                                 onButtonClick: buttonClick.bind(this), | ||||
|                                 popContainer: document.querySelector('.header-button-area') | ||||
| 
 | ||||
|                             }) | ||||
|                         } | ||||
|                     </div> | ||||
|                 </NCDiv> | ||||
|                 {/* 查询展示区域 */} | ||||
|                 <div className="nc-bill-search-area" > | ||||
|                     { | ||||
|                         NCCreateSearch(searchId, { | ||||
|                             clickSearchBtn: searchBtnClick.bind(this), | ||||
|                             onAfterEvent: search_afterEvent.bind(this), | ||||
|                             renderCompleteEvent: this.renderCompleteEvent, | ||||
|                             statusChangeEvent: this.renderCompleteEvent, | ||||
|                             dataSource: ReqPickmCache.dataSource, | ||||
|                             pkname: Field.creqpickmid | ||||
|                         }) | ||||
|                     } | ||||
|                 </div> | ||||
|                 {/* 页签区域 */} | ||||
|                 <div className="tab-definInfo-area"> | ||||
|                     <NCTabsControl defaultKey={this.getDefaultKey()}> | ||||
|                         <div key={TabCode.Executing.value} clickFun={tabChange.bind(this, TabCode.Executing.code)}> | ||||
|                             <h2> {getLangByResId(this, '5008ReqPickm-000002') + '(' + this.state.executNum + ')'} {/**执行中*/}</h2> | ||||
|                         </div> | ||||
|                         <div key={TabCode.All.value} clickFun={tabChange.bind(this, TabCode.All.code)}> | ||||
|                             <h2> {getLangByResId(this, '5008ReqPickm-000003')} {/**全部*/}</h2> | ||||
|                         </div> | ||||
|                     </NCTabsControl> | ||||
|                 </div> | ||||
|                 {/* 列表区域 */} | ||||
|                 <div className="nc-bill-table-area" > | ||||
|                     { | ||||
|                         createSimpleTable(tableId, { | ||||
|                             handlePageInfoChange: pageInfoClick.bind(this), | ||||
|                             dataSource: ReqPickmCache.dataSource, | ||||
|                             pkname: Field.creqpickmid, | ||||
|                             //tableModelConfirm: this.tableModelConfirm,
 | ||||
|                             showIndex: true, | ||||
|                             showCheck: true, | ||||
|                             // onRowClick: onRowClick.bind(this),
 | ||||
|                             onSelected: buttonController.initButtons.bind(this, this.props, getDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource)), | ||||
|                             onSelectedAll: buttonController.initButtons.bind(this, this.props, getDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource)), | ||||
|                             onBatchSelected:buttonController.initButtons.bind(this, this.props, getDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource)), | ||||
|                             onRowDoubleClick: doubleClick.bind(this), | ||||
|                             componentInitFinished: buttonController.initButtons.bind(this, this.props, getDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource)) | ||||
|                         }) | ||||
|                     } | ||||
|                 </div> | ||||
|                 {/* 单据追溯 */} | ||||
|                 <BillTrack | ||||
|                     show={this.state.showTrack} | ||||
|                     close={() => { | ||||
|                         this.setState({ showTrack: false }); | ||||
|                     }} | ||||
|                     pk={this.state.creqpickmid} | ||||
|                     type="55AC" | ||||
|                 /> | ||||
|                 {/* 附件管理 */} | ||||
|                 {this.state.showUploader && ( | ||||
|                     <NCUploader | ||||
|                         billId={this.state.creqpickmid} | ||||
|                         onHide={this.onHideUploader} | ||||
|                         billNo={this.state.vbillcode} | ||||
|                     /> | ||||
|                 )} | ||||
| 
 | ||||
|                 {createModal(ListButton.Delete)} | ||||
|                 {createModal('MessageDlg')} | ||||
|             </div> | ||||
|         ); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| ReqpickmList = createPage({ | ||||
|     // initTemplate: [],
 | ||||
|     // mutiLangCode: '5008ReqPickm',
 | ||||
|     billinfo: { | ||||
|         billtype: 'grid', | ||||
|         pagecode: pageId, | ||||
|         bodycode: tableId | ||||
|     } | ||||
| })(ReqpickmList); | ||||
| 
 | ||||
| export default ReqpickmList; | ||||
|  | @ -0,0 +1,2 @@ | |||
| import initTemplate from './initTemplate'; | ||||
| export { initTemplate }; | ||||
|  | @ -0,0 +1,352 @@ | |||
| 
 | ||||
| import { ajax, cacheTools, toast, cardCache, getGlobalStorage, removeGlobalStorage } from 'nc-lightapp-front'; | ||||
| import { URL, TabCode, ReqPickmListInfo, ReqPickmCache, ListButton, Field, Field_detail, STATUS } from '../../constance'; | ||||
| import { buttonController } from '../viewController' | ||||
| import { buttonClick } from '../btnClicks' | ||||
| let { setDefData, getDefData } = cardCache; | ||||
| const { pageId, searchId, tableId, pk_item, listInnerAction } = ReqPickmListInfo; | ||||
| import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; | ||||
| import { transtypeUtils, setPsndocShowLeavePower, setRefShowDisabledData } from '../../../../../mmpub/mmpub/pub/tool'; | ||||
| 
 | ||||
| export default function () { | ||||
|     this.props.createUIDom( | ||||
|         { | ||||
|             pagecode: pageId //列表页面的id
 | ||||
|         }, | ||||
|         (data) => { | ||||
|             if (data) { | ||||
|                 //发布的交易类型设置
 | ||||
|                 transtypeUtils.init.call(this, data.context); | ||||
|                 if (data.template) { | ||||
|                     let meta = data.template; | ||||
|                     meta[tableId].pagination = true;//控制分页控件是否显示
 | ||||
|                     //发布的交易类型设置
 | ||||
|                     transtypeUtils.initQuery.call(this, this.props, meta, searchId, Field.crequesttype); | ||||
|                     meta = modifierMeta.call(this, this.props, meta) | ||||
|                     this.props.meta.setMeta(meta); | ||||
|                     //initData.call(this);
 | ||||
|                     let { hasCacheData } = this.props.table; | ||||
|                     let searchVal = cacheTools.get('searchParams') | ||||
|                     if (!hasCacheData(ReqPickmCache.dataSource)) { | ||||
|                         //initData.call(this);
 | ||||
|                     } else { | ||||
|                         let tabNum = getDefData(ReqPickmCache.tabNum, ReqPickmCache.dataSource); | ||||
|                         let curTabCod = getDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource); | ||||
|                         this.setState({ | ||||
|                             executNum: tabNum ? (tabNum.executing ? tabNum.executing : 0) : 0, | ||||
|                             allNum: tabNum ? (tabNum.all ? tabNum.all : 0) : 0, | ||||
|                             curTabCode: curTabCod ? (curTabCod == "executing" ? 0 : 1) : 1 | ||||
|                         }); | ||||
|                     } | ||||
|                 } | ||||
|                 if (data.button) { | ||||
|                     let button = data.button; | ||||
|                     this.props.button.setButtons(button); | ||||
|                     this.props.button.setPopContent( | ||||
|                         ListButton.Delete, getLangByResId(this, '5008ReqPickmPUBMESSAGE-000010')/* 国际化处理: 确认删除?*/ | ||||
|                     ); | ||||
|                 } | ||||
|                 // 初始化按钮状态
 | ||||
|                 buttonController.initButtons.call(this, this.props, getDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource)); | ||||
| 
 | ||||
|                 //判断生产模式:1-流程;2-离散
 | ||||
|                 let appcode = this.props.getAppCode(); | ||||
|                 if (appcode.startsWith('5008')) { | ||||
|                     setDefData('fprodmode', ReqPickmCache.dataSource, parseInt(1)); | ||||
|                 } else if (appcode.startsWith('5009')) { | ||||
|                     setDefData('fprodmode', ReqPickmCache.dataSource, parseInt(2)); | ||||
|                 } | ||||
|                 //处理生产大屏数据穿透
 | ||||
|                 process4dashboard.call(this); | ||||
|             } | ||||
|         } | ||||
|     ) | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| function modifierMeta(props, meta) { | ||||
|     //查询区参照过滤
 | ||||
|     meta[searchId].items.map((item) => { | ||||
|         setPsndocShowLeavePower(item); | ||||
|         setRefShowDisabledData(item); | ||||
|         if (item.attrcode == Field.pk_org) { | ||||
|             //设置可多选
 | ||||
|             item.isMultiSelectedEnabled = true; | ||||
|             //主组织权限过滤
 | ||||
|             item.queryCondition = () => { | ||||
|                 return { GridRefActionExt: 'nccloud.web.mmpub.pub.ref.AppPermissionOrgRefFilter' }; | ||||
|             } | ||||
|         } else if (item.attrcode == Field.crequesttype) {//单据类型
 | ||||
|             //设置可多选
 | ||||
|             item.isMultiSelectedEnabled = true; | ||||
|             item.queryCondition = () => { | ||||
|                 return { | ||||
|                     parentbilltype: '55AC' | ||||
|                 }; | ||||
|             }; | ||||
|         } | ||||
|         else if (item.attrcode == Field.fbillstatus) {//备料申请状态
 | ||||
|             //设置可多选
 | ||||
|             item.isMultiSelectedEnabled = true; | ||||
|         } | ||||
|         else if (item.attrcode == 'tab_detail.cmaterialid' || item.attrcode == 'tab_sum.cmaterialid') {//物料
 | ||||
|             //设置可多选
 | ||||
|             item.isMultiSelectedEnabled = true; | ||||
|             //显示业务单元
 | ||||
|             item.isShowUnit = true; | ||||
|             item.queryCondition = () => { | ||||
|                 let pk_org = props.search.getSearchValByField(searchId, Field.pk_org); | ||||
|                 let condition = {}; | ||||
|                 condition.pk_org = pk_org != null ? (pk_org.value.firstvalue.includes(',') ? null : pk_org.value.firstvalue) : null; | ||||
|                 condition.GridRefActionExt = 'nccloud.web.mmpub.pub.ref.MaterialRefSqlBuilder'; | ||||
|                 condition.matchmode = 2; | ||||
|                 return condition; | ||||
|             }; | ||||
|         } | ||||
|         // 配置码
 | ||||
|         else if (item.attrcode == 'tab_sum.cffileid') { | ||||
|             debugger; | ||||
|             item.queryCondition = () => { | ||||
|                 let cmaterialid = props.search.getSearchValByField(searchId, 'tab_sum.cmaterialid').value.firstvalue; | ||||
|                 let condition = {}; | ||||
|                 condition.pk_group = window.parent.GETBUSINESSINFO().groupId; | ||||
|                 condition.cmaterialid = cmaterialid; | ||||
|                 return condition; | ||||
|             }; | ||||
|         } | ||||
|         else if (item.attrcode == 'tab_detail.cbffileid') { | ||||
|             debugger; | ||||
|             item.queryCondition = () => { | ||||
|                 let cmaterialid = props.search.getSearchValByField(searchId, 'tab_detail.cmaterialid').value.firstvalue; | ||||
|                 let condition = {}; | ||||
|                 condition.pk_group = window.parent.GETBUSINESSINFO().groupId; | ||||
|                 condition.cmaterialid = cmaterialid; | ||||
|                 return condition; | ||||
|             }; | ||||
|         } | ||||
|         else if (item.attrcode == 'tab_detail.cdeptvid' || item.attrcode == 'tab_detail.cdeptid' || item.attrcode == 'tab_detail.cdeptid.code' | ||||
|             || item.attrcode == 'tab_sum.cdeptvid' || item.attrcode == 'tab_sum.cdeptid' || item.attrcode == 'tab_sum.cdeptid.code') {//部门
 | ||||
|             //显示业务单元
 | ||||
|             item.isShowUnit = true; | ||||
|             //根据pk_org 过滤其他字段
 | ||||
|             item.queryCondition = () => { | ||||
|                 let pk_org = props.search.getSearchValByField(searchId, Field.pk_org); | ||||
|                 let condition = {}; | ||||
|                 condition.pk_org = | ||||
|                     pk_org && pk_org.value | ||||
|                         ? pk_org.value.firstvalue.includes(',') ? null : pk_org.value.firstvalue | ||||
|                         : null; | ||||
|                 condition.busifuncode = "fa";//制造场景
 | ||||
|                 return condition; | ||||
|             }; | ||||
|         } else if (item.attrcode == 'tab_sum.cdeliverorgid') { //汇总-发料组织
 | ||||
|             //设置可多选
 | ||||
|             item.isMultiSelectedEnabled = true; | ||||
|             item.queryCondition = () => { | ||||
|                 return { GridRefActionExt: 'nccloud.web.mmpub.pub.ref.AppPermissionOrgRefFilter' }; | ||||
|             } | ||||
|         } else if (item.attrcode == 'tab_sum.coutstockid') {//汇总-发料仓库
 | ||||
|             //设置可多选
 | ||||
|             item.isMultiSelectedEnabled = true; | ||||
|             item.isShowUnit = true;//显示业务单元
 | ||||
|             //根据发料组织过滤--如果要使用过滤必须使用oid进行过滤
 | ||||
|             item.queryCondition = () => { | ||||
|                 let condition = {}; | ||||
|                 let cdeliverorgid = props.search.getSearchValByField(searchId, 'tab_sum.cdeliverorgid'); | ||||
|                 condition.pk_org = | ||||
|                     cdeliverorgid && cdeliverorgid.value | ||||
|                         ? cdeliverorgid.value.firstvalue.includes(',') ? null : cdeliverorgid.value.firstvalue | ||||
|                         : null; | ||||
|                 return condition; | ||||
|             }; | ||||
|         } else if (item.attrcode == 'tab_sum.cwkid') { //汇总-工作中心
 | ||||
|             item.isShowUnit = true; | ||||
|             item.isMultiSelectedEnabled = true; | ||||
|             item.queryCondition = () => { | ||||
|                 let data = props.search.getSearchValByField(searchId, Field.pk_org); | ||||
|                 data = data != null ? (data.value.firstvalue.includes(',') ? null : data.value.firstvalue) : null; | ||||
|                 return { pk_org: data }; | ||||
|             }; | ||||
|         } else if (item.attrcode == 'tab_detail.cdeliverorgid') { //明细-发料组织
 | ||||
|             //设置可多选
 | ||||
|             item.isMultiSelectedEnabled = true; | ||||
|             item.queryCondition = () => { | ||||
|                 return { GridRefActionExt: 'nccloud.web.mmpub.pub.ref.AppPermissionOrgRefFilter' }; | ||||
|             } | ||||
|         } else if (item.attrcode == 'tab_detail.coutstockid') {//明细-发料仓库
 | ||||
|             //设置可多选
 | ||||
|             item.isMultiSelectedEnabled = true; | ||||
|             item.isShowUnit = true;//显示业务单元
 | ||||
|             //根据发料组织过滤--如果要使用过滤必须使用oid进行过滤
 | ||||
|             item.queryCondition = () => { | ||||
|                 let condition = {}; | ||||
|                 let cdeliverorgid = props.search.getSearchValByField(searchId, 'tab_detail.cdeliverorgid'); | ||||
|                 condition.pk_org = | ||||
|                     cdeliverorgid && cdeliverorgid.value | ||||
|                         ? cdeliverorgid.value.firstvalue.includes(',') ? null : cdeliverorgid.value.firstvalue | ||||
|                         : null; | ||||
|                 return condition; | ||||
|             }; | ||||
|         } else if (item.attrcode == 'tab_detail.cwkid') { //明细-工作中心
 | ||||
|             item.isShowUnit = true; | ||||
|             item.isMultiSelectedEnabled = true; | ||||
|             item.queryCondition = () => { | ||||
|                 let data = props.search.getSearchValByField(searchId, Field.pk_org); | ||||
|                 data = data != null ? (data.value.firstvalue.includes(',') ? null : data.value.firstvalue) : null; | ||||
|                 return { pk_org: data }; | ||||
|             }; | ||||
|         } else { | ||||
|             item.isShowUnit = true; | ||||
|             item.queryCondition = () => { | ||||
|                 let data = props.search.getSearchValByField(searchId, 'pk_org'); | ||||
|                 data = data != null ? (data.value.firstvalue.includes(',') ? null : data.value.firstvalue) : null; | ||||
|                 return { pk_org: data }; | ||||
|             }; | ||||
|         } | ||||
|     }); | ||||
|     //模板table的订单编号列加超链接
 | ||||
|     meta[tableId].items = meta[tableId].items.map((item, key) => { | ||||
|         if (item.attrcode == Field.vbillcode) { | ||||
|             item.render = (text, record, index) => { | ||||
|                 //取值前需先判断record是否为空,避免没有数据的情况报错
 | ||||
|                 let creqpickmid = record && record.creqpickmid && record.creqpickmid.value; | ||||
|                 return ( | ||||
|                     <span className="code-detail-link" | ||||
|                         onClick={() => { | ||||
|                             this.props.pushTo('/card', { | ||||
|                                 status: STATUS.browse, | ||||
|                                 id: creqpickmid | ||||
|                             }); | ||||
|                         }} | ||||
|                     > | ||||
|                         {record && record.vbillcode && record.vbillcode.value} | ||||
|                     </span> | ||||
|                 ); | ||||
|             } | ||||
|         } | ||||
|         return item; | ||||
|     }); | ||||
|     //添加表格操作列
 | ||||
|     let event = { | ||||
|         label: getLangByResId(this, '5008ReqPickm-0000042') /* 国际化处理:  操作 */, | ||||
|         attrcode: 'opr', | ||||
|         itemtype: 'customer', | ||||
|         fixed: 'right', | ||||
|         width: '200px', | ||||
|         visible: true, | ||||
|         render: (text, record, index) => { | ||||
|             let buttonAry = buttonController.getListOprRowButtons.call(this, record); | ||||
|             return this.props.button.createOprationButton(buttonAry, { | ||||
|                 area: listInnerAction, | ||||
|                 buttonLimit: 3, | ||||
|                 ignoreHotkeyCode: buttonAry, | ||||
|                 onButtonClick: (props, key) => buttonClick.call(this, props, key, text, record, index) | ||||
|             }); | ||||
|         } | ||||
|     }; | ||||
|     meta[tableId].items.push(event); | ||||
| 
 | ||||
|     return meta; | ||||
| } | ||||
| 
 | ||||
| function initData() { | ||||
|     //let queryInfo = this.props.search.getQueryInfo(searchId);
 | ||||
|     let queryInfo = getDefData(ReqPickmCache.queryInfo, ReqPickmCache.dataSource); | ||||
|     if (!queryInfo) {//查询条件没有值,直接返回
 | ||||
|         return; | ||||
|     } | ||||
|     let pageInfo = this.props.table.getTablePageInfo(tableId); | ||||
|     setDefData(ReqPickmCache.pageInfo, ReqPickmCache.dataSource, pageInfo); | ||||
|     let reqpickmData = { | ||||
|         currentTab: TabCode.All.code, | ||||
|         pageCode: pagecode, | ||||
|         templetid: tableId, | ||||
|         isNeedOrgPermission: true, | ||||
|         queryInfo: { | ||||
|             ...queryInfo, | ||||
|             pageCode: pagecode, | ||||
|             pageInfo: pageInfo, | ||||
|             //oid: OID,  //查询模板id,手工添加在界面模板json中,放在查询区,后期会修改
 | ||||
|             //querytype: 'simple' //查询类型:simple和tree。???
 | ||||
|         }, | ||||
|     }; | ||||
|     ajax({ | ||||
|         url: URL.queryList, | ||||
|         data: reqpickmData, | ||||
|         success: (res) => { | ||||
|             if (res.data.currentGrid) { | ||||
|                 //构建一下分页组件需要的数组
 | ||||
|                 // let allPks = []
 | ||||
|                 // res.data.currentGrid.list_table.rows.forEach(row => {
 | ||||
|                 //     allPks.push(row.values[pk_item].value)
 | ||||
|                 // })
 | ||||
| 
 | ||||
|                 // res.data.allPks = allPks
 | ||||
|                 this.props.table.setAllTableData(tableId, res.data.currentGrid[tableId]); | ||||
|             } else { | ||||
|                 let tableData = { | ||||
|                     allPks: [], | ||||
|                     rows: [] | ||||
|                 } | ||||
|                 this.props.table.setAllTableData(tableId, tableData); | ||||
|                 toast({ content: getLangByResId(this, '5008ReqPickm-000004') }) | ||||
|             } | ||||
|             setDefData(ReqPickmCache.tabNum, ReqPickmCache.dataSource, res.data.tabNum); | ||||
|             setDefData(ReqPickmCache.curTabCode, ReqPickmCache.dataSource, TabCode.All.code); | ||||
|             this.setState({ | ||||
|                 executNum: res.data.tabNum.executing ? res.data.tabNum.executing : 0, | ||||
|                 allNum: res.data.tabNum.all ? res.data.tabNum.all : 0 | ||||
|             }); | ||||
|         } | ||||
|     }) | ||||
|     // if(searchVal && searchVal != false){
 | ||||
|     //     this.props.search.setSearchValue(searchId, searchVal)			
 | ||||
|     // }
 | ||||
| } | ||||
| 
 | ||||
| function checkButtons() { | ||||
| 
 | ||||
| } | ||||
| function process4dashboard() { | ||||
|     let queryCriteria = getGlobalStorage('localStorage', 'QueryCriteria'); | ||||
|     queryCriteria = JSON.parse(queryCriteria); | ||||
|     if (queryCriteria && queryCriteria.urlParam && queryCriteria.urlParam.condition) { | ||||
|         let condition = queryCriteria.urlParam.condition; | ||||
|         let pagecode = queryCriteria.urlParam.pagecode; | ||||
|         let pk_org = queryCriteria.urlParam.pk_org; | ||||
|         let dimension = queryCriteria.urlParam.dimension;        | ||||
|         let pageInfo = this.props.table.getTablePageInfo(tableId); //分页信息
 | ||||
|         let paramdata = condition + '#' + pagecode + '#' + pk_org + '#' + dimension+'#'+pageInfo.pageSize+'#'+pageInfo.pageIndex; | ||||
|         ajax({ | ||||
|             url: URL.queryByCondURL, | ||||
|             data: paramdata, | ||||
|             success: (res) => { | ||||
|                 if (res.success) { | ||||
|                     if (res.data) { | ||||
|                         if(res.data.currentGrid){ | ||||
|                             this.props.table.setAllTableData(tableId, res.data.currentGrid[tableId]) | ||||
|                         }else{ | ||||
|                             let tableData = { | ||||
|                                 allPks: [], | ||||
|                                 rows: [] | ||||
|                             } | ||||
|                             this.props.table.setAllTableData(tableId, tableData); | ||||
|                             //toast({ content: getLangByResId(this, '5008ReqPickm-000004') })
 | ||||
|                         } | ||||
|                         let tabNum={ | ||||
|                             executNum: res.data.tabNum.executing ? res.data.tabNum.executing : 0, | ||||
|                             allNum: res.data.tabNum.all ? res.data.tabNum.all : 0 | ||||
|                         } | ||||
|                         setDefData(ReqPickmCache.tabNum,ReqPickmCache.dataSource,tabNum); | ||||
|                         this.setState({ | ||||
|                             executNum: res.data.tabNum.executing ? res.data.tabNum.executing : 0, | ||||
|                             allNum: res.data.tabNum.all ? res.data.tabNum.all : 0 | ||||
|                         }); | ||||
|                         buttonController.initButtons(this.props, condition); | ||||
|                     } | ||||
|                 } | ||||
|                 removeGlobalStorage('localStorage', 'QueryCriteria'); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,109 @@ | |||
| 
 | ||||
| import { ajax, toast, cardCache } from 'nc-lightapp-front'; | ||||
| import { URL, TabCode, FbillStatus,ListButton,STATUS, ReqPickmCache, ReqPickmListInfo } from './../../constance'; | ||||
| const { pageId, searchId, tableId, pk_item, headAction }= ReqPickmListInfo;  | ||||
| let { setDefData, getDefData } = cardCache; | ||||
| 
 | ||||
| function initButtons(props,tabCode){ | ||||
|     let rows = props.table.getCheckedRows(tableId); | ||||
|     if ( tabCode == null || tabCode == '' || tabCode == undefined) { | ||||
|         rows.length = 0; | ||||
|     } | ||||
|     let Delete = true; | ||||
|     let Edit = true; | ||||
|     let Copy = true; | ||||
|     let ReqPickmDelivery = true;//备料
 | ||||
|     let ReqPickmFinish = true;//强制完成
 | ||||
|     let ReqPickmUnFinish = true;//取消完成
 | ||||
|     let File = true;//附件管理
 | ||||
|     let BillLinkQuery = true;//单据追溯
 | ||||
|     let Print = true;//打印
 | ||||
|     let Output = true;//输出
 | ||||
|     let PrintDetail = true;//打印明细
 | ||||
| 
 | ||||
|     if(rows.length > 0){ | ||||
|         BillLinkQuery = false; | ||||
|         File = false; | ||||
|         Print = false; | ||||
|         Output = false; | ||||
|         PrintDetail = false; | ||||
| 
 | ||||
|         if(rows.length == 1){ | ||||
|             rows.map((item) => { | ||||
|                 let fbillstatus = item.data.values.fbillstatus.value; // 单据状态
 | ||||
|                 if (fbillstatus == FbillStatus.free) {//自由
 | ||||
|                     Copy = false; | ||||
|                     Edit = false; | ||||
|                     Delete = false; | ||||
|                     ReqPickmDelivery = false; | ||||
|                     ReqPickmFinish = false; | ||||
|                 }else{ | ||||
|                     Copy = false; | ||||
|                     ReqPickmUnFinish = false; | ||||
|                 } | ||||
|             }) | ||||
|         }else{ | ||||
|             Delete = false; | ||||
|             ReqPickmDelivery = false; | ||||
|             ReqPickmFinish = false; | ||||
|             ReqPickmUnFinish = false;             | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     let refresh=true; | ||||
|     let queryInfo=getDefData(ReqPickmCache.queryInfo, ReqPickmCache.dataSource); | ||||
|     if(queryInfo&&queryInfo.querycondition){ | ||||
|         refresh=false; | ||||
|     } | ||||
|     let disableArr = { | ||||
|         [ListButton.Edit]: Edit, | ||||
|         [ListButton.Delete]: Delete, | ||||
|         [ListButton.Copy]: Copy, | ||||
|         [ListButton.ReqPickmDelivery]: ReqPickmDelivery, | ||||
|         [ListButton.ReqPickmFinish]: ReqPickmFinish, | ||||
|         [ListButton.ReqPickmUnFinish]: ReqPickmUnFinish, | ||||
|         [ListButton.File]: File, | ||||
|         [ListButton.BillLinkQuery]: BillLinkQuery, | ||||
|         [ListButton.Print]: Print, | ||||
|         [ListButton.Output]: Output, | ||||
|         [ListButton.PrintDetail]: PrintDetail, | ||||
|         [ListButton.Refresh]:refresh | ||||
|     } | ||||
|     props.button.setDisabled(disableArr); | ||||
| } | ||||
| function getListOprRowButtons(record){ | ||||
|     let fbillstatus = record && record.fbillstatus && record.fbillstatus.value; | ||||
|     let buttonAry = [ | ||||
|         ListButton.Copy, | ||||
|         //ListButton.ReqPickmDelivery,//备料
 | ||||
|         //ListButton.File,
 | ||||
|         //ListButton.BillLinkQuery,
 | ||||
|         //ListButton.Print,
 | ||||
|         //ListButton.Output
 | ||||
|     ]; | ||||
|     if(fbillstatus == FbillStatus.free){//自由
 | ||||
|         buttonAry = [ | ||||
|             ListButton.Edit, | ||||
|             ListButton.Delete, | ||||
|             //ListButton.ReqPickmFinish,//强制完成
 | ||||
|             ListButton.Copy, | ||||
|             //ListButton.ReqPickmDelivery,//备料
 | ||||
|             //ListButton.File,
 | ||||
|             //ListButton.BillLinkQuery,
 | ||||
|            // ListButton.Print,
 | ||||
|             //ListButton.Output
 | ||||
|         ]; | ||||
|     }else if(fbillstatus == FbillStatus.complete){//完成
 | ||||
|         buttonAry = [ | ||||
|             //ListButton.ReqPickmUnFinish,//取消完成
 | ||||
|             ListButton.Copy, | ||||
|             //ListButton.ReqPickmDelivery,//备料
 | ||||
|             //ListButton.File,
 | ||||
|             //ListButton.BillLinkQuery,
 | ||||
|             //ListButton.Print,
 | ||||
|             //ListButton.Output
 | ||||
|         ]; | ||||
|     } | ||||
|     return buttonAry; | ||||
| } | ||||
| export default { initButtons,getListOprRowButtons }; | ||||
|  | @ -0,0 +1,27 @@ | |||
| import buttonController from './buttonController'; | ||||
| 
 | ||||
| export { buttonController }; | ||||
| 
 | ||||
| /* [ | ||||
|     { | ||||
|         "mm_wr": | ||||
|         { | ||||
|             "dbilldate": "1.624980148E12", | ||||
|             "pk_org": "0001A110000000007TTW" | ||||
|         }, | ||||
|         "mm_wr_product": | ||||
|         { | ||||
|             "ngqualityastnum": "8.0", | ||||
|             "cbdeptid": "1001A11000000000008K", | ||||
|             "cbteamid": "2292412308984064", | ||||
|             "ngqualitynum": "10.0", | ||||
|             "cbsrcmesid": "2322976145051904", | ||||
|             "nbwrastnum": "18.0", | ||||
|             "cbshiftid": "2292466731176192", | ||||
|             "vbbatchcode": "OUT000000000000020210629000438", | ||||
|             "tbendtime": "1.624980148E12", | ||||
|             "cbmaterialvid": "1001A110000000003UWG", | ||||
|             "nbwrnum": "22.0" | ||||
|         } | ||||
|     } | ||||
| ] */ | ||||
|  | @ -0,0 +1,4 @@ | |||
| { | ||||
| 	"dependModuleName": [ "uap/common/components/NCUploader" ], | ||||
| 	"dependjs": [ "../../../../uap/common/components/NCUploader/index.js" ] | ||||
| } | ||||
|  | @ -0,0 +1,6 @@ | |||
| import {RenderRouter} from 'nc-lightapp-front' | ||||
| import routes from './router' | ||||
| 
 | ||||
| (function main(routes, htmlTagid) { | ||||
|     RenderRouter(routes,htmlTagid) | ||||
| })(routes,'app') | ||||
|  | @ -0,0 +1,24 @@ | |||
| import { asyncComponent } from 'nc-lightapp-front' | ||||
| 
 | ||||
| const List = asyncComponent( () =>   | ||||
|     import (/*webpackChunkName: "mmpac/mmpac/reqpickm/list/list"*/ /* webpackMode: "eager" */ '../list')) | ||||
| 
 | ||||
| const card = asyncComponent( () =>  | ||||
|     import (/*webpackChunkName: "mmpac/mmpac/reqpickm/card/card"*/ /* webpackMode: "eager" */ '../card')) | ||||
| 
 | ||||
| const routes = [{ | ||||
|         path: '/', | ||||
|         component: List, | ||||
|         exact: true | ||||
|     }, | ||||
|     { | ||||
|         path: '/list', | ||||
|         component: List | ||||
|     }, | ||||
|     { | ||||
|         path: '/card', | ||||
|         component: card | ||||
|     } | ||||
| ] | ||||
| 
 | ||||
| export default routes | ||||
|  | @ -0,0 +1,3 @@ | |||
| import searchBtnClick from './searchBtnClick'; | ||||
| 
 | ||||
| export { searchBtnClick }; | ||||
|  | @ -0,0 +1,79 @@ | |||
| import { ajax } from 'nc-lightapp-front'; | ||||
| import { STATUS,Field, ReqPickmCardInfo } from '../../constance'; | ||||
| import { showNoQueryResultInfo} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; | ||||
| let { card_head, card_body_detail,card_body_sum,headAction,bodyAction_detail,bodyAction_sum,pk_head } = ReqPickmCardInfo; | ||||
| 
 | ||||
| 
 | ||||
| export default function clickSearchBtn(props, searchVal) { | ||||
|      | ||||
| 	// let allSearchVal = props.search.getAllSearchData(this.searchId);
 | ||||
| 	let queryInfo = this.props.search.getQueryInfo(this.searchId); | ||||
|     let conditions = queryInfo.querycondition.conditions; | ||||
|     let flag1 = true; | ||||
|     conditions.forEach(arr => { | ||||
|         if(arr.field == 'tab_pickm.pk_org'){ //工厂
 | ||||
|            flag1= false; | ||||
|         } | ||||
|     }); | ||||
|     if(flag1){ | ||||
|         let pk_org = props.props.form.getFormItemsValue(card_head, Field.pk_org).value; | ||||
|         conditions.push({field:'tab_pickm.pk_org',oprtype: "=",value:{firstvalue:pk_org}}) | ||||
|     } | ||||
|     queryInfo.querycondition.conditions = conditions; | ||||
| 	queryInfo.card = this.pickmCache.billvo; | ||||
| 	queryInfo.billType = this.billType; | ||||
| 
 | ||||
| 	ajax({ | ||||
| 		url: '/nccloud/mmpac/reqpickm/computeQuery.do', | ||||
| 		data: queryInfo, | ||||
| 		success: (res) => { | ||||
|             if(res.data){ | ||||
|                 props.props.modal.close('PickmDlg');//查询成功之后,关闭备料计划查询弹窗
 | ||||
|                 props.props.beforeUpdatePage(); | ||||
|                 let datas = res.data; | ||||
|                 if(datas.head){ | ||||
|                     //pkCache = datas.head[card_head].rows[0].values[pk_head].value;
 | ||||
|                     props.props.form.setAllFormValue({ [card_head]:datas.head[card_head]}); | ||||
|                     props.props.form.setFormStatus(card_head, STATUS.edit); | ||||
|                 } | ||||
|                 let cards = datas.bodys; | ||||
|                 if (cards && cards[card_body_detail]) { | ||||
|                     //props.props.cardTable.selectAllRows(card_body_detail,true);
 | ||||
|                     let oldrows = props.props.cardTable.getAllRows(card_body_detail); | ||||
|                     let rowparam = []; | ||||
|                     oldrows.forEach( (item,index) => { | ||||
|                         item.status = '3'; | ||||
|                         rowparam.push(index) | ||||
|                     }); | ||||
|                     props.props.cardTable.delRowsByIndex(card_body_detail,rowparam);//删除汇总表数据
 | ||||
|                     let detail_rows = cards[card_body_detail].rows;//明细表的数据
 | ||||
|                     detail_rows.forEach( (row, index) => { | ||||
|                             row.status = "2";//将行状态更新为新增态
 | ||||
|                     }); | ||||
|             		let card_detail = props.props.cardTable.updateDiffDataByRowId( | ||||
|             			card_body_detail, | ||||
|                         cards[card_body_detail] | ||||
|                     ); | ||||
|                     props.props.cardTable.setStatus(card_body_detail,STATUS.edit); | ||||
|             		res.data.bodys[card_body_detail] = card_detail; | ||||
|             	} | ||||
|             	// if (cards && cards[card_body_sum]) {
 | ||||
|             	// 	props.props.cardTable.setTableData(
 | ||||
|             	// 		card_body_sum,
 | ||||
|                 //         cards[card_body_sum],
 | ||||
|                 //         null,
 | ||||
|                 //         true,
 | ||||
|                 //         true
 | ||||
|                 //     );
 | ||||
|                 //     props.props.cardTable.setStatus(card_body_sum,STATUS.edit);
 | ||||
|             	// 	//res.data.bodys[card_body_sum] = card_sum;
 | ||||
|                 // }
 | ||||
|                 props.props.updatePage(card_head, [card_body_detail,card_body_sum]); | ||||
| 
 | ||||
|             } | ||||
|             else{ | ||||
|                 showNoQueryResultInfo(); | ||||
|             } | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
|  | @ -0,0 +1,10 @@ | |||
| 
 | ||||
| //备料计划
 | ||||
| const Pickm_Const = { | ||||
|     tableId: 'compute_head', //表体区域
 | ||||
| 	//appCode: '50080106',
 | ||||
| 	pageId: '50080106_compute', //列表pagecode
 | ||||
| 	searchId: 'compute_query', | ||||
| 	//moduleId: '5008', //模块id
 | ||||
| } | ||||
| export default Pickm_Const; | ||||
|  | @ -0,0 +1,28 @@ | |||
| import multiCorpRefHandler from '../../../../../mmpub/mmpub/pub/tool/MultiCorpRefHandler'; | ||||
| import Pickm_Const from '../const'; | ||||
| const { searchId } = Pickm_Const; | ||||
| export default function afterEvent(field, val) { | ||||
|     //TODO
 | ||||
|     if (field === 'tab_pickm.pk_org') { | ||||
|         let fields = [ | ||||
|             'tab_pickm.cmaterialid','tab_pickm.cdeptid','tab_pickm.cmaterialvid','tab_pickm.cdeptvid', | ||||
|             'tab_pickm.items.cbmaterialid','tab_pickm.items.cbmaterialvid','tab_pickm.items.cwkid' | ||||
|         ] | ||||
|         .concat(getDefFieldArray('tab_pickm.vdef', 20))//自定义项
 | ||||
|         .concat(getDefFieldArray('tab_pickm.vfree', 10))//自由辅助属性
 | ||||
|         .concat(getDefFieldArray('tab_pickm.items.vbdef', 20)) | ||||
|         .concat(getDefFieldArray('tab_pickm.items.vbfree', 10)) | ||||
| 
 | ||||
|         multiCorpRefHandler.call(this,this.props, val, searchId, fields); | ||||
|     }else if(field === 'tab_pickm.items.cdeliverorgid'){ | ||||
|         multiCorpRefHandler.call(this,this.props, val, searchId, ['tab_pickm.items.coutstockid']); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| function getDefFieldArray(prefix, count) { | ||||
| 	let fields = []; | ||||
| 	for (let i = 1; i <= count; i++) { | ||||
| 		fields.push(prefix + i); | ||||
| 	} | ||||
| 	return fields; | ||||
| } | ||||
|  | @ -0,0 +1,46 @@ | |||
| import React, { Component } from 'react'; | ||||
| import { createPage } from 'nc-lightapp-front'; | ||||
| import Pickm_Const from './const'; | ||||
| import { searchBtnClick } from './btnClicks'; | ||||
| import { initTemplate } from './init'; | ||||
| import { renderCompleteEvent } from './init/queryAreaInit'; | ||||
| import search_afterEvent from './events/search_afterEvent'; | ||||
| import './index.less'; | ||||
| 
 | ||||
| class PickmTable extends Component { | ||||
|     constructor(props){ | ||||
|         super(props); | ||||
|         props.use.search(Pickm_Const.searchId); | ||||
| 
 | ||||
|         this.props = props; | ||||
|         this.tableId = Pickm_Const.tableId; | ||||
|         this.pageId = Pickm_Const.pageId; | ||||
|         this.searchId = Pickm_Const.searchId; | ||||
|         this.pickmCache = props.pickmCache; | ||||
| 		this.billType = props.billType; | ||||
|         this.setPickmCache(null); | ||||
| 		initTemplate.call(this, this.props); | ||||
|     } | ||||
|     setPickmCache = (pickmvos) => { | ||||
| 		let data = Object.assign({}, this.pickmCache, { pickmVO: pickmvos }); | ||||
|         this.props.getPickmCache(data); | ||||
| 	}; | ||||
| 	 | ||||
|     // 主渲染方法
 | ||||
| 	render() { | ||||
| 		let { search } = this.props; | ||||
|         let { NCCreateSearch } = search; | ||||
| 
 | ||||
| 		return (<div className="nc-bill-search-area"> | ||||
| 					{NCCreateSearch(this.searchId, { | ||||
| 						clickSearchBtn: searchBtnClick.bind(this), | ||||
| 						onAfterEvent: search_afterEvent.bind(this), | ||||
|                         renderCompleteEvent: renderCompleteEvent.bind(this,this.searchId,'tab_pickm.pk_org'),//页面完成渲染之后的回调
 | ||||
|                         statusChangeEvent: renderCompleteEvent.bind(this,this.searchId,'tab_pickm.pk_org')//4个状态(simple-简单查询,查询方案-plan,高级里的普通-normal,高级里的高级-super)
 | ||||
| 					})} | ||||
| 				</div> | ||||
| 		); | ||||
| 	} | ||||
| }    | ||||
| PickmTable = createPage({})(PickmTable); | ||||
| export default PickmTable; | ||||
|  | @ -0,0 +1,4 @@ | |||
| .wui-modal .reqpickmModal-query .wui-modal-content { | ||||
|     height: 150px; | ||||
|     width: 1100px; | ||||
| } | ||||
|  | @ -0,0 +1,3 @@ | |||
| import initTemplate from './initTemplate'; | ||||
| 
 | ||||
| export { initTemplate }; | ||||
|  | @ -0,0 +1,110 @@ | |||
| import Pickm_Const from '../const'; | ||||
| 
 | ||||
| let tableId = Pickm_Const.tableId; | ||||
| let pagecode = Pickm_Const.pageId; | ||||
| //let appcode = Pickm_Const.appCode;
 | ||||
| let searchId = Pickm_Const.searchId; | ||||
| 
 | ||||
| export default function(props) { | ||||
| 	props.createUIDom( | ||||
| 		{ | ||||
| 			//appcode: appcode,
 | ||||
| 			pagecode: pagecode //卡片页面编码
 | ||||
| 		}, | ||||
| 		callbackFun | ||||
| 	); | ||||
| 	function callbackFun(data) { | ||||
| 		if (data) { | ||||
| 			if (data.template) { | ||||
| 				let meta = data.template; | ||||
| 				// 处理参照过滤
 | ||||
| 				meta = searchRefFilter(props, meta); | ||||
| 				props.meta.setMeta(meta); | ||||
| 				//设置查询区工厂的默认值
 | ||||
| 				setQueryDefault(props,meta); | ||||
| 			} | ||||
| 			if (data.button) { | ||||
| 				let button = data.button; | ||||
| 				props.button.setButtons(button); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| //为查询区赋默认值
 | ||||
| function setQueryDefault(props, meta) { | ||||
| 	let pk_org = props.props.form.getFormItemsValue('card_head', 'pk_org'); | ||||
| 	let data = [{ | ||||
| 		"field": 'tab_pickm.pk_org', | ||||
| 		"value": { "firstvalue": pk_org.value}, | ||||
| 		"display": pk_org.display, | ||||
| 		"oprtype": "=" | ||||
| 	}]; | ||||
| 	props.search.setSearchValue(searchId, data); | ||||
| } | ||||
| function searchRefFilter(props, meta) { | ||||
| 	meta[searchId].items.map((item) => { | ||||
| 		if (item.attrcode == 'tab_pickm.pk_org') { //工厂
 | ||||
| 			//设置默认值
 | ||||
| 			let pk_org = props.props.form.getFormItemsValue('card_head', 'pk_org'); | ||||
| 			item.initialvalue = { | ||||
| 				display: pk_org.display, | ||||
|         		value: pk_org.value | ||||
| 			}; | ||||
| 			item.queryCondition = () => { | ||||
| 				//主组织权限过滤
 | ||||
|                 return { GridRefActionExt: 'nccloud.web.mmpub.pub.ref.AppPermissionOrgRefFilter' } | ||||
| 			}; | ||||
| 		}else if(item.attrcode == 'tab_pickm.items.cdeliverorgid'){ //发料组织
 | ||||
| 			//设置可多选
 | ||||
| 			item.isMultiSelectedEnabled = true; | ||||
| 			item.queryCondition = () => { | ||||
| 				//主组织权限过滤
 | ||||
|                 return { GridRefActionExt: 'nccloud.web.mmpub.pub.ref.AppPermissionOrgRefFilter' } | ||||
| 			}; | ||||
| 		}else if(item.attrcode == 'tab_pickm.cmaterialid' || item.attrcode == 'tab_pickm.items.cbmaterialid'){ // 产品 物料
 | ||||
| 			//设置可多选
 | ||||
| 			item.isMultiSelectedEnabled = true; | ||||
| 			item.queryCondition = () => { | ||||
| 				let pk_org = props.props.form.getFormItemsValue('card_head', 'pk_org').value; | ||||
| 				let condition = {}; | ||||
| 				condition.pk_org = pk_org; | ||||
| 				condition.discountflag = 'N';//是否折扣
 | ||||
| 				condition.fee = 'N';//是否费用
 | ||||
| 				condition.GridRefActionExt = 'nccloud.web.mmpub.pub.ref.MaterialRefSqlBuilder'; | ||||
|                 return condition; | ||||
| 			}; | ||||
| 		}else if(item.attrcode == 'tab_pickm.items.coutstockid'){ // 发料仓库
 | ||||
| 			//显示业务单元
 | ||||
| 			item.isShowUnit = true; | ||||
| 			//设置可多选
 | ||||
| 			item.isMultiSelectedEnabled = true; | ||||
| 			item.queryCondition = () => { | ||||
| 				let data = props.search.getSearchValByField(searchId, 'tab_pickm.items.cdeliverorgid'); | ||||
| 				data = data != null ? (data.value.firstvalue.includes(',') ? null : data.value.firstvalue) : null; | ||||
|                 return { pk_org: data }; | ||||
| 			}; | ||||
| 		}else if(item.attrcode == 'tab_pickm.cdeptid'){ // 用料部门
 | ||||
| 			//设置可多选
 | ||||
| 			item.isMultiSelectedEnabled = true; | ||||
| 			item.queryCondition = () => { | ||||
| 				let pk_org = props.props.form.getFormItemsValue('card_head', 'pk_org').value; | ||||
| 				return {  | ||||
| 					pk_org: pk_org, | ||||
| 					busifuncode: 'fa'//制造场景
 | ||||
| 				}; | ||||
| 			}; | ||||
| 		}else if(item.attrcode == 'tab_pickm.items.cwkid'){ // 工作中心
 | ||||
| 			//设置可多选
 | ||||
| 			item.isMultiSelectedEnabled = true; | ||||
| 			item.queryCondition = () => { | ||||
| 				let pk_org = props.props.form.getFormItemsValue('card_head', 'pk_org').value; | ||||
| 				return {  | ||||
| 					pk_org: pk_org | ||||
| 				}; | ||||
| 			}; | ||||
| 		} | ||||
| 
 | ||||
| 	}) | ||||
| 	return meta; | ||||
| 		 | ||||
| } | ||||
|  | @ -0,0 +1,57 @@ | |||
| import multiCorpRefHandler from '../../../../../mmpub/mmpub/pub/tool/MultiCorpRefHandler'; | ||||
| import Pickm_Const from './../const'; | ||||
| /** | ||||
|  * 为查询区赋初始值 | ||||
|  * @param {查询区id} moduleId  | ||||
|  * @param {初始化的字段} orgfield  | ||||
|  */ | ||||
| 
 | ||||
| function renderCompleteEvent(moduleId, orgfield) { | ||||
|     //为查询区设置默认值
 | ||||
|     let pk_org = this.props.props.form.getFormItemsValue('card_head', 'pk_org'); | ||||
|     //查询区赋值
 | ||||
|     this.props.search.setSearchValByField(moduleId,orgfield,{ | ||||
|         display: pk_org.display, | ||||
|         value: pk_org.value | ||||
|     }); | ||||
|     // //预置方案赋值
 | ||||
|     // this.props.search.setSearchValByField(moduleId,orgfield,{
 | ||||
|     //     display: pk_org.display,
 | ||||
|     //     value: pk_org.value
 | ||||
|     // },'plan');
 | ||||
|     // //点高级-普通查询区赋值
 | ||||
|     // this.props.search.setSearchValByField(moduleId,orgfield,{
 | ||||
|     //     display: pk_org.display,
 | ||||
|     //     value: pk_org.value
 | ||||
|     // },'normal');
 | ||||
|     // //点高级-高级查询区赋值
 | ||||
|     // this.props.search.setSearchValByField(moduleId,orgfield,{
 | ||||
|     //     display: pk_org.display,
 | ||||
|     //     value: pk_org.value
 | ||||
|     // },'super');
 | ||||
| 
 | ||||
|     //
 | ||||
|     let pk_org1 = this.props.search.getSearchValByField(moduleId, orgfield); | ||||
|     if (pk_org1 && pk_org1.value && pk_org1.value.firstvalue) { | ||||
|         let value = pk_org1.value.firstvalue; | ||||
|         let arr = value.split(','); | ||||
|         arr = arr.map((item) => { | ||||
|             return { refpk: item }; | ||||
|         }); | ||||
|         searchAfterEvent.call(this,orgfield, arr); | ||||
|     } | ||||
| 	 | ||||
| } | ||||
| function searchAfterEvent(field,val){ | ||||
|     //TODO
 | ||||
|     if (field === 'tab_pickm.pk_org') { | ||||
|         let fields = [ | ||||
|             'tab_pickm.items.cbmaterialid','tab_pickm.items.cbmaterialvid','tab_pickm.items.cwkid', | ||||
|             'tab_pickm.cdeptid','tab_pickm.cdeptvid', | ||||
|         ] | ||||
|         multiCorpRefHandler.call(this,this.props, val, Pickm_Const.searchId, fields); | ||||
|     }else if(field === 'tab_pickm.items.cdeliverorgid'){ | ||||
|         multiCorpRefHandler.call(this,this.props, val, Pickm_Const.searchId, ['tab_pickm.items.coutstockid']); | ||||
|     } | ||||
| } | ||||
| export { renderCompleteEvent }; | ||||
		Loading…
	
		Reference in New Issue