diff --git a/config.json b/config.json index fa8accd..837ed9b 100644 --- a/config.json +++ b/config.json @@ -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" diff --git a/src/mmpac/mmpac/reqpickm/card/afterEvent/bodyDetailAfterEvent.js b/src/mmpac/mmpac/reqpickm/card/afterEvent/bodyDetailAfterEvent.js new file mode 100644 index 0000000..5ca4dfe --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/afterEvent/bodyDetailAfterEvent.js @@ -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' + }); + } +} + diff --git a/src/mmpac/mmpac/reqpickm/card/afterEvent/bodySumAfterEvent.js b/src/mmpac/mmpac/reqpickm/card/afterEvent/bodySumAfterEvent.js new file mode 100644 index 0000000..a03d72c --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/afterEvent/bodySumAfterEvent.js @@ -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; +} + diff --git a/src/mmpac/mmpac/reqpickm/card/afterEvent/cardPageUISet.js b/src/mmpac/mmpac/reqpickm/card/afterEvent/cardPageUISet.js new file mode 100644 index 0000000..9bc88f3 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/afterEvent/cardPageUISet.js @@ -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 +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/afterEvent/index.js b/src/mmpac/mmpac/reqpickm/card/afterEvent/index.js new file mode 100644 index 0000000..55b15e5 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/afterEvent/index.js @@ -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 +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/afterEvent/orgChangeEvent.js b/src/mmpac/mmpac/reqpickm/card/afterEvent/orgChangeEvent.js new file mode 100644 index 0000000..d86ffb5 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/afterEvent/orgChangeEvent.js @@ -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 + ); +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/batchEvents/bodyDetailBatchEvent.js b/src/mmpac/mmpac/reqpickm/card/batchEvents/bodyDetailBatchEvent.js new file mode 100644 index 0000000..a8061cd --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/batchEvents/bodyDetailBatchEvent.js @@ -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(); + } + }); + }); +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/batchEvents/index.js b/src/mmpac/mmpac/reqpickm/card/batchEvents/index.js new file mode 100644 index 0000000..8059052 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/batchEvents/index.js @@ -0,0 +1,2 @@ +import bodyDetailBatchEvent from './bodyDetailBatchEvent'; +export { bodyDetailBatchEvent}; \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/beforeEvent/bodyBeforeEvent.js b/src/mmpac/mmpac/reqpickm/card/beforeEvent/bodyBeforeEvent.js new file mode 100644 index 0000000..34b76a9 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/beforeEvent/bodyBeforeEvent.js @@ -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; + +} + + diff --git a/src/mmpac/mmpac/reqpickm/card/beforeEvent/bodyDetailBeforeEvent.js b/src/mmpac/mmpac/reqpickm/card/beforeEvent/bodyDetailBeforeEvent.js new file mode 100644 index 0000000..e5e9123 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/beforeEvent/bodyDetailBeforeEvent.js @@ -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; + +} + + diff --git a/src/mmpac/mmpac/reqpickm/card/beforeEvent/bodySumBeforeEvent.js b/src/mmpac/mmpac/reqpickm/card/beforeEvent/bodySumBeforeEvent.js new file mode 100644 index 0000000..5a5bd1a --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/beforeEvent/bodySumBeforeEvent.js @@ -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; +} + + diff --git a/src/mmpac/mmpac/reqpickm/card/beforeEvent/headBeforeEvent.js b/src/mmpac/mmpac/reqpickm/card/beforeEvent/headBeforeEvent.js new file mode 100644 index 0000000..41e6a5a --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/beforeEvent/headBeforeEvent.js @@ -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; +} + + diff --git a/src/mmpac/mmpac/reqpickm/card/beforeEvent/index.js b/src/mmpac/mmpac/reqpickm/card/beforeEvent/index.js new file mode 100644 index 0000000..e8d84bb --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/beforeEvent/index.js @@ -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 +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/beforeEvent/vbillcodeBeforeEvent.js b/src/mmpac/mmpac/reqpickm/card/beforeEvent/vbillcodeBeforeEvent.js new file mode 100644 index 0000000..c3dbd6e --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/beforeEvent/vbillcodeBeforeEvent.js @@ -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); + } + }); + } + }); +} diff --git a/src/mmpac/mmpac/reqpickm/card/beforeEvent/vchangerateBeforeEvent.js b/src/mmpac/mmpac/reqpickm/card/beforeEvent/vchangerateBeforeEvent.js new file mode 100644 index 0000000..089a1de --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/beforeEvent/vchangerateBeforeEvent.js @@ -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); + } + }); + }); +} diff --git a/src/mmpac/mmpac/reqpickm/card/beforeEvent/vfreeBeforeEvent.js b/src/mmpac/mmpac/reqpickm/card/beforeEvent/vfreeBeforeEvent.js new file mode 100644 index 0000000..61a7896 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/beforeEvent/vfreeBeforeEvent.js @@ -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); + } + }); +} diff --git a/src/mmpac/mmpac/reqpickm/card/btnClicks/ComputeBtnClick.js b/src/mmpac/mmpac/reqpickm/card/btnClicks/ComputeBtnClick.js new file mode 100644 index 0000000..802ff1f --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/btnClicks/ComputeBtnClick.js @@ -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: , + className: 'reqpickmModal-query', + closeModalEve: close.bind(this), + hideRightBtn: true, + hideLeftBtn: true + }); + +} +function close() { + this.props.modal.close('PickmDlg'); +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/btnClicks/getParentURLParme.js b/src/mmpac/mmpac/reqpickm/card/btnClicks/getParentURLParme.js new file mode 100644 index 0000000..91d98ef --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/btnClicks/getParentURLParme.js @@ -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]; +     } + } +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/btnClicks/index.js b/src/mmpac/mmpac/reqpickm/card/btnClicks/index.js new file mode 100644 index 0000000..7f35d67 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/btnClicks/index.js @@ -0,0 +1,1489 @@ +import { ajax, toast, cardCache, output, print, cacheTools } from 'nc-lightapp-front'; +import { URL, STATUS, FitemsourceEnum, FsupplytypeEnum, Field, Field_detail, ReqPickmCache, ReqPickmCardInfo, CardButton, CardButton_body_detail, TransferInfo, ListButton, FbillStatus } from '../../constance' +let { pageId, card_head, card_body_detail, card_body_sum, pk_head } = ReqPickmCardInfo; +import { RownoUtils, rowCopyPasteUtils } from '../../../../../mmpub/mmpub/pub/tool/cardTableTools'; +import { showWarningDialog, showSuccessInfo, showErrorInfo, showWarningInfo } from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { pageInfoClick } from './pageInfoClick'; +import { buttonController } from '../viewController'; +import getParentURlParme from './getParentURLParme'; +import { setBtnShow, detail_OpenOrClose, commonShow } from './pageInfoClick'; +import ComputeBtnClick from './ComputeBtnClick'; +let { setDefData, getDefData, addCache, updateCache, getNextId, getCurrentLastId, deleteCacheById, getCacheById } = cardCache; +import { rewriteTransferSrcBids } from '../../../../../mmpub/mmpub/pub/cache'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; + +const buttonClick = function (props, key, record, index) { + switch (key) { + case CardButton.Back: //返回 + BackBtnClick.call(this); + break; + case CardButton.Add: //新增 + AddBtnClick.call(this); + break; + case CardButton.Edit: //修改 + EditBtnClick.call(this, this.props); + break; + case CardButton.Delete: //删除 + DeleteBtnClick.call(this); + break; + case CardButton.Copy: //复制 + CopyBtnClick.call(this); + break; + case CardButton.Save: //保存 + //cancelCommon.call(this,this.props);//?? + SaveBtnClick.call(this); + break; + case CardButton.Cancel: //取消 + //cancelCommon.call(this,this.props);//?? + CancelBtnClick.call(this, this.props, this.curindex); + break; + case CardButton.Refresh: //刷新 + RefreshBtnClick.call(this); + break; + case CardButton.ReqPickmDelivery: //备料 + DeliveryBtnClick.call(this, props); + break; + case CardButton.ReqPickmFinish: //强制完成 + FinishBtnClick.call(this); + break; + case CardButton.ReqPickmUnFinish: //取消完成 + UnFinishBtnClick.call(this); + break; + case CardButton.BillLinkQuery: //单据追溯 + BillLinkQueryBtnClick.call(this); + break; + case CardButton.File: //附件管理 + FileBtnClick.call(this); + break; + case CardButton.Print: //打印 + PrintBtnClick.call(this); + break; + case CardButton.PrintDetail: //打印 + PrintDetailBtnClick.call(this); + break; + case CardButton.Output: //输出 + OutputBtnClick.call(this); + break; + + case CardButton.QuitTransferBill: //退出转单 + QuitTransferBtnClick.call(this, this.props); + break; + case CardButton.ReqPickmCompute: //计算 + ComputeBtnClick.call(this, this.props); + break; + case CardButton.ReqPickmSum: //汇总 + SumBtnClick.call(this, this.props); + break; + case CardButton.ReqPickmUnSum: //取消汇总 + UnSumBtnClick.call(this, this.props); + break; + //明细表体按钮的操作 + case CardButton_body_detail.OpenRow: //展开 + OpenRow.call(this, props, record, index); + break; + case CardButton_body_detail.CloseRow: //收起 + CloseRow.call(this, props, record, index); + break; + case CardButton_body_detail.AddLine: //增行 + AddLine.call(this, this.props, record, index); + break; + case CardButton_body_detail.DelLine: //删行 + DelLine.call(this, this.props, record, index); + break; + case CardButton_body_detail.CopyLine: //复制行 + CopyLine.call(this, this.props); + break; + case CardButton_body_detail.InsertLine: //插行 + InsertLine.call(this, this.props, index); + break; + case CardButton_body_detail.ResetNo: //重排行号 + RownoUtils.resetRowNo(props, card_body_detail, Field_detail.vrowno); + break; + case CardButton_body_detail.PasteLast: //粘贴至末行 + PasteLast.call(this, this.props); + break; + case CardButton_body_detail.PasteThis: //粘贴至此 + PasteThis.call(this, this.props, index); + break; + case CardButton_body_detail.PasteCancel: //复制行取消 + PasteCancel.call(this, this.props); + break; + //汇总表体按钮的操作 + case 'OpenRow_Sum': //展开 + OpenRow_Sum.call(this, props, record, index); + break; + case 'CloseRow_Sum': //收起 + CloseRow_Sum.call(this, props, record, index); + break; + case 'ResetNo_s': //重排号 + RownoUtils.resetRowNo(props, card_body_sum, 'vrowno'); + break; + case 'ReqPickmDelivery_s': //汇总肩上备料 + DeliverySumBtnClick.call(this, props); + break; + default: + break; + } +} +//所有的表体区域id +let bodyids = [card_body_detail, card_body_sum]; +//备料 +const DeliveryBtnClick = function (props) { + let fbillstatus = props.form.getFormItemsValue(card_head, 'fbillstatus').value; + if (fbillstatus == FbillStatus.complete) { + showWarningInfo(getLangByResId(this, '5008ReqPickm-0000029') /*国际化处理: 此备料申请是完成态,不能备料!*/); + return; + } + //判断汇总表体是否有选中行 + let arrangeids = []; //用来存储所选择数据的id + let ids; + let selectedRow = props.cardTable.getCheckedRows(card_body_sum); + if (selectedRow == null || selectedRow.length == 0) { //1,如果没有选中行,则将所有的汇总数据都进行备料 + let pk = props.form.getFormItemsValue(card_head, Field.creqpickmid).value; + ids = pk + '@' + arrangeids.push(ids); + // + let data = { + pks: [pk], + pageId: pageId, + iscard: true + }; + ajax({ + method: 'post', + url: URL.deliveryURL, + data: data, + success: (res) => { + //跳转 + if (res.success && res.error == null) { + //将需要备料的数据id存放到dataSource,下游直接去取 + cacheTools.set('reqpickmArrangeIds', arrangeids); + //生产模式:1-流程;2-离散 + 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' }); + } + + } + } + + }) + } else { //2,如果有得到选中行的数据,备料只备料这些数据 + //在此组装好数据 + let pk = props.form.getFormItemsValue(card_head, Field.creqpickmid).value; + ids = pk; + selectedRow.map((item, index) => { + let bid = item.data.values.creqpickm_sid.value; + ids = ids + "@" + bid; + }) + arrangeids.push(ids); + //用于获得一主多子单据数据:创建保存的聚合VO + let CardData = props.createExtCardDataSimple(pageId, card_head, bodyids); + let sumn_rows = []; //构建新的汇总表体 + selectedRow.map((item, index) => { + sumn_rows.push(item.data); + }) + CardData.bodys.card_body_sum.rows = sumn_rows; + ajax({ + method: 'post', + url: URL.deliveryCardURL, + data: CardData, + success: (res) => { + //跳转 + if (res.success && res.error == null) { + //let pushdata = res.data[0]; + //将需要备料的数据id存放到dataSource,下游直接去取 + cacheTools.set('reqpickmArrangeIds', arrangeids); + //生产模式:1-流程;2-离散 + 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 DeliverySumBtnClick = function (props) { + let fbillstatus = props.form.getFormItemsValue(card_head, 'fbillstatus').value; + if (fbillstatus == FbillStatus.complete) { + showWarningInfo(getLangByResId(this, '5008ReqPickm-0000029') /*国际化处理: 此备料申请是完成态,不能备料!*/); + return; + } + //判断汇总表体是否有选中行 + let arrangeids = []; //用来存储所选择数据的id + let ids; + let selectedRow = props.cardTable.getCheckedRows(card_body_sum); + if (selectedRow == null || selectedRow.length == 0) { //1,如果没有选中行,则将所有的汇总数据都进行备料 + showWarningInfo(getLangByResId(this, '5008ReqPickm-0000033') /*国际化处理: 请选择要备料的汇总表体行!*/); + return; + } else { //2,如果有得到选中行的数据,备料只备料这些数据 + //在此组装好数据 + let pk = props.form.getFormItemsValue(card_head, Field.creqpickmid).value; + ids = pk; + selectedRow.map((item, index) => { + let bid = item.data.values.creqpickm_sid.value; + ids = ids + "@" + bid; + }) + arrangeids.push(ids); + //用于获得一主多子单据数据:创建保存的聚合VO + let CardData = props.createExtCardDataSimple(pageId, card_head, bodyids); + let sumn_rows = []; //构建新的汇总表体 + selectedRow.map((item, index) => { + sumn_rows.push(item.data); + }) + CardData.bodys.card_body_sum.rows = sumn_rows; + ajax({ + method: 'post', + url: URL.deliveryCardURL, + data: CardData, + success: (res) => { + //跳转 + if (res.success && res.error == null) { + //let pushdata = res.data[0]; + //将需要备料的数据id存放到dataSource,下游直接去取 + cacheTools.set('reqpickmArrangeIds', arrangeids); + //生产模式:1-流程;2-离散 + 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 () { + let finishRows = []; + let oprdata = { + id: this.props.form.getFormItemsValue(card_head, pk_head).value, + ts: this.props.form.getFormItemsValue(card_head, 'ts').value + }; + finishRows.push(oprdata); + let fbillstatus = this.props.form.getFormItemsValue(card_head, 'fbillstatus').value + if (fbillstatus != FbillStatus.free) { + showWarningInfo(getLangByResId(this, '5008ReqPickm-0000030')); /*国际化处理: 此备料申请是完成态,不能强制完成!*/ + return; + } + let data = { + finishAndUnFinishInfos: finishRows, + pageid: pageId, + iscard: true + }; + ajax({ + url: URL.finishURL, + data: data, + success: (res) => { + if (res.success) { + if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { + this.props.dealFormulamsg(res.formulamsg); + } + if (data === undefined) { + //订单编号 + this.setState({ + vbillcode: '', + billId: '' + }); + return; + } + //渲染数据, + let pkid; + if (res.data.data.head) { + //开关开始 + this.props.beforeUpdatePage(); + // let map = new Map(); + // map.set('creqpickm_bid',card_body_detail); + // map.set('creqpickm_sid',card_body_sum); + // let config = { + // headAreaId: card_head, + // bodyIdAndPkMap: map + // } + // updateExtBillDataForCompareByPk(this.props, res.data, config); + + + this.props.form.setAllFormValue({ + [card_head]: res.data.data.head[card_head] + }); + this.props.form.updateForm(card_head); //更新表单 + + pkid = this.props.form.getFormItemsValue(card_head, Field.creqpickmid).value; + let fbillstatu = res.data.data.head[card_head].rows[0].values.fbillstatus.value; + // this.setState({ + // lineShowType: [], + // vbillcode: res.data.data.head[card_head].rows[0].values.vbillcode.value, + // billId: pkid, + // billtype: res.data.data.head[card_head].rows[0].values.billtype.value + // }); + // 设置按钮可用性 + setBtnShow(this, fbillstatu); + + //开关关闭 + this.props.updatePage(card_head, bodyids); + } + updateCache(pk_head, pkid, res.data.data, card_head, ReqPickmCache.dataSource); + showSuccessInfo(getLangByResId(this, '5008ReqPickm-0000022')); /* 国际化处理: 强制完成成功!*/ + } + } + }) +} +//取消完成 +const UnFinishBtnClick = function () { + let unFinishRows = []; + let oprdata = { + id: this.props.form.getFormItemsValue(card_head, pk_head).value, + ts: this.props.form.getFormItemsValue(card_head, 'ts').value + }; + unFinishRows.push(oprdata); + let fbillstatus = this.props.form.getFormItemsValue(card_head, 'fbillstatus').value + if (fbillstatus != FbillStatus.complete) { + showWarningInfo(getLangByResId(this, '5008ReqPickm-0000031')); /*国际化处理: 此备料申请是自由态,不能取消完成!*/ + return; + } + let data = { + finishAndUnFinishInfos: unFinishRows, + pageid: pageId, + iscard: true + }; + ajax({ + url: URL.unFinishURL, + data: data, + success: (res) => { + if (res.success) { + if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { + this.props.dealFormulamsg(res.formulamsg); + } + if (data === undefined) { + //订单编号 + this.setState({ + vbillcode: '', + billId: '' + }); + return; + } + //渲染数据, + let pkid; + if (res.data.data.head) { //这里只返回了差异VO + + //开关开始 + this.props.beforeUpdatePage(); + + this.props.form.setAllFormValue({ + [card_head]: res.data.data.head[card_head] + }); + this.props.form.updateForm(card_head); //更新表单 + pkid = this.props.form.getFormItemsValue(card_head, Field.creqpickmid).value; + let fbillstatu = res.data.data.head[card_head].rows[0].values.fbillstatus.value; + // this.setState({ + // lineShowType: [], + // vbillcode: res.data.data.head[card_head].rows[0].values.vbillcode.value, + // billId: pkid, + // billtype: res.data.data.head[card_head].rows[0].values.billtype.value + // }); + // 设置按钮可用性 + setBtnShow(this, fbillstatu); + //开关关闭 + this.props.updatePage(card_head, bodyids); + } + updateCache(pk_head, pkid, res.data.data, card_head, ReqPickmCache.dataSource); + showSuccessInfo(getLangByResId(this, '5008ReqPickm-0000023')); /* 国际化处理: 取消完成成功!*/ + } + } + }) +} +//打印 +const PrintBtnClick = function () { + let appcode = this.props.getAppCode(); + let nodekey = '50080106_sum' + if (this.props.getAppCode().startsWith('5009')) { + nodekey = nodekey.replace('5008', '5009'); + } + let pk = this.props.form.getFormItemsValue(card_head, Field.creqpickmid).value; + let pks = []; + pks.push(pk); + print( + 'pdf', //支持两类: 'html'为模板打印, 'pdf'为pdf打印 + URL.printURL, { + funcode: appcode, //小应用编码 + nodekey: nodekey, //模板节点标识 + oids: pks // 功能节点的数据主键 + } + ); +} +//打印明细 +const PrintDetailBtnClick = function () { + let appcode = this.props.getAppCode(); + let nodekey = '50080106_detail' + if (this.props.getAppCode().startsWith('5009')) { + nodekey = nodekey.replace('5008', '5009'); + } + let pk = this.props.form.getFormItemsValue(card_head, Field.creqpickmid).value; + let pks = []; + pks.push(pk); + print( + 'pdf', //支持两类: 'html'为模板打印, 'pdf'为pdf打印 + URL.printURL, { + funcode: appcode, //小应用编码 + nodekey: nodekey, //模板节点标识 + oids: pks // 功能节点的数据主键 + } + ); +} +//输出 +const OutputBtnClick = function () { + let appcode = this.props.getAppCode(); + let nodekey = '50080106_sum' + if (this.props.getAppCode().startsWith('5009')) { + nodekey = nodekey.replace('5008', '5009'); + } + let pk = this.props.form.getFormItemsValue(card_head, Field.creqpickmid).value; + let pks = []; + pks.push(pk); + output({ + url: URL.printURL, + data: { + funcode: appcode, //小应用编码 + nodekey: nodekey, //模板节点标识 + oids: pks, + outputType: 'output' + } // 功能节点的数据主键 + }); +} +const BackBtnClick = function (error) { + //推单标识 + let channelType = this.props.getUrlParam(TransferInfo.channelType); + //推单 + if (channelType) { + let allprocess = this.props.transferTable.getTransformFormStatus(TransferInfo.leftarea); + if (allprocess === false) { + showWarningDialog.call(this, getLangByResId(this, '5008ReqPickm-0000036'), getLangByResId(this, '5008ReqPickm-0000037'), { + /* 国际化处理: 提示,有未处理完的单据,是否返回?*/ + beSureBtnClick: () => { + //关闭浏览器提示 + window.onbeforeunload = null; + //如果是推单过来的直接返回到 + if (channelType) { + this.props.pushTo('/list', { + status: 'browse' + }); + } + } + }); + } else { + if (channelType) { + this.props.pushTo('/list', { + status: 'browse' + }); + } + } + } + //正常 + else { + this.props.pushTo('/list'); + } +} +const AddBtnClick = function () { + this.props.form.setFormStatus(card_head, STATUS.add); + this.props.form.EmptyAllFormValue(card_head); + //表格改为编辑态 + this.props.cardTable.setStatus(card_body_detail, STATUS.edit); + this.props.cardTable.setTableData(card_body_detail, { rows: [] }); + this.props.cardTable.setStatus(card_body_sum, STATUS.edit); + this.props.cardTable.setTableData(card_body_sum, { rows: [] }); + let id = this.props.getUrlParam('id'); + this.props.pushTo('/card', { + status: STATUS.add, + id: id, + comeType: true + }); + pageInfoClick.call(this); +} +const EditBtnClick = function (props) { + let pk = props.form.getFormItemsValue(card_head, Field.creqpickmid).value; + let conditionData = { + pks: [pk], + pageid: pageId, + status: props.getUrlParam(STATUS.status) + }; + ajax({ + url: URL.editReqPickmCardURL, + data: conditionData, + method: 'POST', + success: (res) => { + props.beforeUpdatePage(); + let channelType = props.getUrlParam(TransferInfo.channelType); + if (channelType) { + // this.indexstatus[this.curindex] = 'edit'; + props.pushTo('/card', { + status: STATUS.edit, + id: pk + }); + } else { + props.pushTo('/card', { + status: STATUS.edit, + id: props.getUrlParam('id') + }); + } + buttonController.setCardPaginationVisible(props, false); //设置翻页不显示 + if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { + props.dealFormulamsg(res.formulamsg); + } + if (conditionData === undefined) { + //订单编号 + this.setState({ + lineShowType: [], + lineShowType_s: [], + vbillcode: '', + billId: '' + }); + return; + } + let data = res.data; + if (data.head) { + 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 + }); + } + if (data.bodys) { + if (data.bodys[card_body_detail]) { + props.cardTable.setTableData( + card_body_detail, + data.bodys[card_body_detail], + null, + true, + true + ); + } + if (data.bodys[card_body_sum]) { + props.cardTable.setTableData( + card_body_sum, + data.bodys[card_body_sum], + null, + true, + true + ); + } + } + //修改组织的可编辑状态 + props.form.setFormItemsDisabled(card_head, { + [Field.pk_org]: true, [Field.pk_org_v]: true + }); + props.cardTable.selectAllRows(bodyids, false); + this.toggleShow(); + props.updatePage(card_head, bodyids); + //detail_OpenOrClose.call(this);//控制明细页签的展开收起 + } + }) +} +const RefreshBtnClick = function () { + let channelType = this.props.getUrlParam(TransferInfo.channelType); + if (channelType) { + transferRefresh.call(this); + } else { + let refresh = true; + pageInfoClick.call(this, this.props, null, refresh); + } +} +//转单界面的刷新 +const transferRefresh = function () { + let pk = this.props.getUrlParam('id'); + 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; + setBtnShow(this, fbillstatus); + buttonController.setBackButtonVisiable.call(this, this.props, null); + } + 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); + showSuccessInfo(getLangByResId(this, '5008ReqPickmPUBMESSAGE-000017')) /* 国际化处理: 刷新成功!*/ + } else { + showErrorInfo(getLangByResId(this, '5008ReqPickm-0000018')); /* 国际化处理: 刷新失败!*/ + } + }, + error: (res) => { + showErrorInfo(res.message); + commonShow.call(this, pk); + } + }); +} +//单据追溯 +const BillLinkQueryBtnClick = function () { + let pk = this.props.form.getFormItemsValue(card_head, Field.creqpickmid).value; + this.setState({ + creqpickmid: pk, + showTrack: true + }) +} +//附件管理 +const FileBtnClick = function () { + let flag = this.state.showUploader; + let pk = this.props.form.getFormItemsValue(card_head, Field.creqpickmid).value; + let vbillcode = this.props.form.getFormItemsValue(card_head, Field.vbillcode).value; + this.setState({ + showUploader: !flag, + creqpickmid: pk, + vbillcode: vbillcode + + }); +} +//取消汇总 +const UnSumBtnClick = function (props) { + let _this = this; + let pk = props.form.getFormItemsValue(card_head, Field.creqpickmid).value; + if (pk) { //修改--取消汇总 + // let conditionData = { + // pks: [ pk ], + // pageid: pageId, + // status: this.props.getUrlParam(STATUS.status) + // }; + //用于获得一主多子单据数据:创建聚合VO + let CardData = this.props.createExtCardDataSimple(pageId, card_head, bodyids); + ajax({ + url: URL.unSumURL, + data: CardData, + method: 'POST', + success: (res) => { + if (res.success) { + //props.cardTable.selectAllRows(card_body_sum, true); + let sum_rows = props.cardTable.getAllRows(card_body_sum); + let rowparam = []; + sum_rows.forEach((item, index) => { + item.status = '3'; + rowparam.push(index) + }); + this.props.cardTable.delRowsByIndex(card_body_sum, rowparam); //删除汇总表数据 + //this.props.cardTable.setTableData(card_body_sum, {rows:rowparam}); + buttonController.setUIState.call(this, this.props, STATUS.edit); + this.toggleShow(); + //detail_OpenOrClose.call(this); + + } + // 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]) { + // let sum_rows = data.bodys[card_body_sum].rows;//汇总表的数据 + // sum_rows.forEach( (row, index) => { + // row.status = "3";//将行状态更新为删除态 + // row.disabled = false; + // row.selected = false; + // }); + // this.props.cardTable.setTableData( + // card_body_sum, + // data.bodys[card_body_sum], + // null, + // true, + // true + // ); + // } + + // buttonController.setUIState.call(this, this.props,STATUS.edit); + // this.toggleShow(); + // detail_OpenOrClose.call(this); + + //} + if (res.success) { + showSuccessInfo(getLangByResId(_this, '5008ReqPickm-0000021')); /* 国际化处理: 取消汇总成功!*/ + } + }, + error: (res) => { + showErrorInfo(res.message); + } + }); + } else { + props.cardTable.setTableData(card_body_sum, { rows: [] }); + this.toggleShow(); + //detail_OpenOrClose.call(this); + } +} +//汇总 +const SumBtnClick = function (props) { + //表体空行过滤 + this.props.cardTable.filterEmptyRows(card_body_detail, ['cmaterialvid'], 'include'); + this.props.cardTable.filterEmptyRows(card_body_sum, ['cmaterialvid'], 'include'); + //表单必输校验 + let flag_head = this.props.form.isCheckNow(card_head); + //表格必输校验 + let flag_body_detail = this.props.cardTable.checkTableRequired(card_body_detail); + if (!flag_head || !flag_body_detail) { + return; + } + if (!props.cardTable.getVisibleRows(card_body_detail).length) { + showWarningInfo(null, getLangByResId(this, '5008ReqPickm-0000041')); /* 国际化处理: 备料申请表体为空,不能汇总*/ + return; + } + //用于获得一主多子单据数据:创建聚合VO + let CardData = this.props.createExtCardDataSimple(pageId, card_head, bodyids) + //汇总时过滤明细表体删除的行 + let detail_rows = CardData.bodys[card_body_detail].rows; + let sum_rows = CardData.bodys[card_body_sum].rows; + let detail_nrows = []; + let sum_nrows = []; + detail_rows.forEach((row, index) => { + if (row.values && row.values.pseudocolumn) { + row.values.pseudocolumn.value = index + ''; + } + let sta = row.status; + if (sta != 3) { + //汇总时过滤掉删除的数据 + detail_nrows.push(row); + } + }); + sum_rows.forEach((row, index) => { + if (row.values && row.values.pseudocolumn) { + row.values.pseudocolumn.value = index + ''; + } + let sta = row.status; + if (sta != 3) { + //汇总时过滤掉删除的数据 + sum_nrows.push(row); + } + }); + CardData.bodys.card_body_detail.rows = detail_nrows; //明细表 + CardData.bodys.card_body_sum.rows = sum_nrows; //汇总表 + let _this = this; + ajax({ + method: 'post', + url: URL.reqpickmSum, + data: CardData, + success: (res) => { + // 卡片界面,在浏览态时勾选行,点修改后去掉勾选,备料申请明细和备料申请汇总 + _this.props.cardTable.selectAllRows(card_body_detail, false); + _this.props.cardTable.selectAllRows(card_body_sum, false); + if (res.data) { + _this.props.beforeUpdatePage(); + let datas = res.data; + let pkCache = null; + if (datas.head) { + pkCache = datas.head[card_head].rows[0].values[pk_head].value; + //_this.props.form.setAllFormValue({ [card_head]:datas.head[card_head]}); + _this.props.form.setFormStatus(card_head, STATUS.edit); + } + let cards = datas.bodys; + if (cards && cards[card_body_detail]) { + // let card_detail = _this.props.cardTable.updateDataByRowId( + // card_body_detail, + // cards[card_body_detail], + // true + // ); + _this.props.cardTable.setStatus(card_body_detail, STATUS.browse); + //res.data.bodys[card_body_detail] = card_detail; + } + if (cards && cards[card_body_sum]) { + let card_sum = _this.props.cardTable.updateDiffDataByRowId( + card_body_sum, + cards[card_body_sum] + ); + _this.props.cardTable.setStatus(card_body_sum, STATUS.edit); + res.data.bodys[card_body_sum] = card_sum; + } + _this.props.updatePage(card_head, [card_body_detail, card_body_sum]); + + // updateCache(pk_head, pkCache, datas, card_head, ReqPickmCache.dataSource); + } + if (res.success) { + this.toggleShow(); + //detail_OpenOrClose.call(this); + } + + } + }) + +} +//保存单据 +const SaveBtnClick = function () { + let status = this.props.getUrlParam('status'); + //表体空行过滤 + this.props.cardTable.filterEmptyRows(card_body_detail, ['cmaterialvid'], 'include'); + this.props.cardTable.filterEmptyRows(card_body_sum, ['cmaterialvid'], 'include'); + //表单必输校验 + let flag_head = this.props.form.isCheckNow(card_head); + //表格必输校验 + let flag_body_detail = this.props.cardTable.checkTableRequired(card_body_detail); + let flag_body_sum = this.props.cardTable.checkTableRequired(card_body_sum); + if (!flag_head || !flag_body_detail || !flag_body_sum) { + return; + } + //用于获得一主多子单据数据:创建保存的聚合VO + let CardData = this.props.createExtCardDataSimple(pageId, card_head, bodyids) + let url = URL.newSave; //新增保存 + let creqpickmid = this.props.form.getFormItemsValue(card_head, 'creqpickmid').value; + creqpickmid = creqpickmid == '' || creqpickmid == 'undefined' ? null : creqpickmid; + let detail_rows = CardData.bodys[card_body_detail].rows; + let sum_rows = CardData.bodys[card_body_sum].rows; + let detail_nrows = []; + let sum_nrows = []; + detail_rows.forEach((row, index) => { + if (row.values && row.values.pseudocolumn) { + row.values.pseudocolumn.value = index + ''; + } + let sta = row.status; + if (sta != 3) { + //新增时过滤掉删除的数据 + detail_nrows.push(row); + } + }); + sum_rows.forEach((row, index) => { + if (row.values && row.values.pseudocolumn) { + row.values.pseudocolumn.value = index + ''; + } + let sta = row.status; + if (sta != 3 || (sta == 3 && row.values.creqpickm_sid.value)) { + //新增时过滤掉删除的数据 + sum_nrows.push(row); + } + }); + //有性能问题,前端循环-耗时 + //处理-去除display和scale--优化上行流量 + // for(let drow of detail_nrows){ + // for(let dval in drow.values){ + // if(drow.values[dval] == undefined || JSON.stringify(drow.values[dval]) === "{}" || drow.values[dval].value == undefined){ + // delete drow.values[dval]; + // }else{ + // if(drow.values[dval].display){ + // delete drow.values[dval].display; + // } + // if(drow.values[dval].scale){ + // delete drow.values[dval].scale; + // } + // } + // } + // } + // //for(..of..) srow是每一行的数据 + // for(let srow of sum_nrows){ + // //for(..in..) 如果是数组,sval则是下表,如果是对象,sval则是key值 + // for(let sval in srow.values){ + // if(srow.values[sval] == undefined || JSON.stringify(srow.values[sval]) === "{}" || srow.values[sval].value == undefined ){ + // delete srow.values[sval]; + // }else{ + // if(srow.values[sval].display){ + // delete srow.values[sval].display; + // } + // if(srow.values[sval].scale){ + // delete srow.values[sval].scale; + // } + // } + // } + // } + if (creqpickmid) { + url = URL.editSave //修改保存 + } + CardData.bodys.card_body_detail.rows = detail_nrows; + CardData.bodys.card_body_sum.rows = sum_nrows; + let _this = this; + this.props.validateToSave(CardData, () => { + ajax({ + method: 'post', + url: url, + data: CardData, + success: (res) => { + // 卡片界面,在浏览态时勾选行,点修改后去掉勾选,备料申请明细和备料申请汇总 + _this.props.cardTable.selectAllRows(card_body_detail, false); + _this.props.cardTable.selectAllRows(card_body_sum, false); + if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { + _this.props.dealFormulamsg(res.formulamsg); + } + if (res.data) { + //开关开始 + _this.props.beforeUpdatePage(); + let datas = res.data; + let pkCache = null; + let vbillcode = null; + let cards = datas.bodys; + if (cards && cards[card_body_detail]) { + let card_detail = _this.props.cardTable.updateDataByRowId( + card_body_detail, + cards[card_body_detail], + true + ); + res.data.bodys[card_body_detail] = card_detail; + } + if (cards && cards[card_body_sum]) { + let card_sum = _this.props.cardTable.updateDataByRowId( + card_body_sum, + cards[card_body_sum], + true + ); + res.data.bodys[card_body_sum] = card_sum; + } + if (datas.head) { + _this.props.form.setAllFormValue({ + [card_head]: res.data.head[card_head] + }); + pkCache = _this.props.form.getFormItemsValue(card_head, pk_head).value; + } + _this.props.form.setFormStatus(card_head, STATUS.browse); + //开关关闭 + _this.props.updatePage(card_head, bodyids); + //转单 + let channelType = _this.props.getUrlParam(TransferInfo.channelType); + if (channelType) { + // 下游单据,通过拉单进入编辑态,保存的时候使用 + // 转单界面,通知上游转单界面处理了哪些来源id + rewriteTransferSrcBids(_this.props, 'csourcebillbid', cards[card_body_detail].rows); + //转单--多单编辑情况要注意保存提交进入就不走缓存 + let datass = {}; + datass.head = res.data.head; + datass.body = res.data.bodys; + datass.pageid = res.data.pageid; + let cachedata = datass; + _this.props.setUrlParam({ status: 'browse', id: pkCache }); + _this.props.transferTable.setTransformFormStatus('leftarea', { + status: true, + onChange: (current, next, currentIndex) => { + _this.indexstatus[currentIndex] = 'browse'; + cachedata = _this.props.transferTable.updateTransferListValueByIndex( + 'leftarea', + datass, + currentIndex + ); + } + }); + // + if (status == STATUS.add) { + addCache(pkCache, cachedata, card_head, ReqPickmCache.dataSource); + // 更新翻页组件当前pk值 + _this.props.cardPagination.setCardPaginationId({ + id: pkCache, + status: 1 + }); + } else if (status == STATUS.edit) { + updateCache(pk_head, pkCache, cachedata, card_head, ReqPickmCache.dataSource); + } + } else { + _this.props.setUrlParam({ status: 'browse' }); + if (status == STATUS.add) { + addCache(pkCache, res.data, card_head, ReqPickmCache.dataSource); + // 更新翻页组件当前pk值 + _this.props.cardPagination.setCardPaginationId({ + id: pkCache, + status: 1 + }); + } else if (status == STATUS.edit) { + updateCache(pk_head, pkCache, res.data, card_head, ReqPickmCache.dataSource); + } + _this.props.pushTo('/card', { + status: STATUS.browse, + id: pkCache + }); + _this.toggleShow(); //控制按钮显示 + } + //detail_OpenOrClose.call(_this);//控制明细页签展开收起 + } + if (res.success) { + showSuccessInfo(getLangByResId(_this, '5008ReqPickmPUBMESSAGE-000023')); /* 国际化处理: 保存成功!*/ + } + } + }) + }); +} +const CancelBtnClick = function (props, curindex) { + showWarningDialog.call(this, getLangByResId(this, '5008ReqPickmPUBMESSAGE-000007'), getLangByResId(this, '5008ReqPickmPUBMESSAGE-000008'), { + /* 国际化处理: 确认要取消吗?*/ + beSureBtnClick: () => { + //关闭浏览器提示 + window.onbeforeunload = null; + //回到页面上次状态 + backtotransfer.call(this, props, null, curindex); + } + }); +} + +function backtotransfer(props, flag, currentindex) { + //卡片界面,在浏览态时勾选行,点取消后去掉勾选,明细和汇总 + this.props.cardTable.selectAllRows(card_body_detail, false); + this.props.cardTable.selectAllRows(card_body_sum, false); + //回到页面上次状态 + let channelType = this.props.getUrlParam(TransferInfo.channelType); + let pk_reqpickm = this.props.getUrlParam('id'); + if (pk_reqpickm == null || pk_reqpickm == 'undefined') { + pk_reqpickm = this.props.form.getFormItemsValue(card_head, Field.creqpickmid); + pk_reqpickm = pk_reqpickm && pk_reqpickm.value; + } + pk_reqpickm = pk_reqpickm == 'undefined' ? null : pk_reqpickm; + //转单 + if (channelType) { + this.indexstatus[currentindex] = 'browse'; + if (props.transferTable.getTransformFormCompleteStatus(TransferInfo.leftarea, parseInt(currentindex)) == true) { + // + let cachedata = props.transferTable.getTheTransferListDataSavedLastTime(TransferInfo.leftarea, currentindex); + // props.form.setAllFormValue({ card_head: cachedata.head[card_head] }); + // props.cardTable.setTableData(card_body_detail, cachedata.body[card_body_detail]); + + + props.setUrlParam({ status: STATUS.browse, id: pk_reqpickm }); + this.toggleShow(); + //detail_OpenOrClose.call(this);//控制明细页签的展开收起 + //RefreshBtnClick.call(this); + } else { + if (props.transferTable.getTransformFormAmount(TransferInfo.leftarea) == 1) { + // 移除浏览器监听提示 + //window.removeEventListener('beforeunload', this.onMove); + if (channelType) { + this.props.pushTo('/list', {}); + } else { + history.go(-1); + } + } else { + props.transferTable.setTransformFormStatus(TransferInfo.leftarea, { + status: false, + onChange: (current, next) => { + showSuccessInfo(getLangByResId(this, '5008ReqPickm-0000038')); /* 国际化处理: 取消成功*/ + } + }); + } + } + } + //正常 + else { + //判断: 新增点击取消,从缓存中获取数据 ;修改点击取消,返回至浏览态 + let id = getCurrentLastId(ReqPickmCache.dataSource); + if (this.props.getUrlParam('status') == STATUS.add) { + //如果是复制的单据,需要返回复制单据的浏览态 + if (this.state.copy_billId) { + id = this.state.copy_billId; + this.setState({ + copy_billId: '' + }); + } + else if (this.props.getUrlParam('id')) { + id = this.props.getUrlParam('id'); + } + this.props.pushTo('/card', { status: STATUS.browse, id: id, comeType: true }); + this.props.resMetaAfterPkorgEdit(); //恢复字段编辑性 + pageInfoClick.call(this); + } else if (this.props.getUrlParam('status') == STATUS.edit) { + let pk = this.props.getUrlParam('id'); + let parentURL = getParentURlParme('pageMsgType'); + if (parentURL) { + this.props.pushTo('/card', { + status: STATUS.browse, + id: pk + }); + this.toggleShow(); + } else { + this.props.pushTo('/card', { + status: STATUS.browse, + id: pk, + comeType: true + }); + pageInfoClick.call(this); + } + } else { + this.props.pushTo('/card', { + status: STATUS.browse, + id: null + }); + pageInfoClick.call(this); + } + } +} +const DeleteBtnClick = function () { + // 如果没有选中行,则提示并返回,不进行任何操作 + showWarningDialog.call(this, + getLangByResId(this, '5008ReqPickm-000009'), /* 国际化处理: 删除*/ + getLangByResId(this, '5008ReqPickmPUBMESSAGE-000010'), /* 国际化处理: 确定要删除吗?*/ { beSureBtnClick: doDelete.bind(this) } + ); +} +const doDelete = function () { + // 执行删除操作 + let delRows = []; + let data = { + id: this.props.form.getFormItemsValue(card_head, pk_head).value, + ts: this.props.form.getFormItemsValue(card_head, 'ts').value + }; + delRows.push(data); + let delData = { + deleteInfos: delRows, + pageid: pageId, + iscard: true + }; + ajax({ + url: URL.batchDelete, + data: delData, + success: (res) => { + let channelType = this.props.getUrlParam(TransferInfo.channelType); + let id = data.id + let nextid = getNextId(id, ReqPickmCache.dataSource); + deleteCacheById(pk_head, id, ReqPickmCache.dataSource); + if (channelType) { + if (this.props.transferTable.getTransformFormAmount(TransferInfo.leftarea) == 1) { + if (channelType) { + this.props.pushTo('/list', {}); + } + } else { + this.props.transferTable.setTransformFormStatus(TransferInfo.leftarea, { + status: false, + onChange: (current, next) => { + showSuccessInfo(getLangByResId(this, '5008ReqPickm-0000039')); /* 国际化处理: 删除成功!*/ + } + }); + } + } else { + this.props.pushTo('/card', { + status: STATUS.browse, + id: nextid + }); + pageInfoClick.call(this, this.props, nextid); + + // let messageInfo = { + // failedNum:0, + // sucessNum:1, + // errorMessages:"error" + // } + if (res.success) { + showSuccessInfo(getLangByResId(this, '5008ReqPickm-0000039')); /* 国际化处理: 删除成功!*/ + } + } + }, + error: (ress) => { + toast({ + color: 'danger', + content: ress.message + }); + } + }); +} + +const CopyBtnClick = function () { + this.props.cardTable.setStatus(card_body_sum, STATUS.edit); + this.props.cardTable.setTableData(card_body_sum, { rows: [] }); + + let id = this.props.getUrlParam('id'); + this.props.pushTo('/card', { + status: STATUS.add, + id: id, + copyType: 'card', + copy: true + }); + pageInfoClick.call(this); +} +//汇总表体 +//展开 +const OpenRow_Sum = function (props, record, index) { + let status = props.getUrlParam('status'); + if (status == STATUS.browse) { + //浏览态 + props.cardTable.toggleRowView(card_body_sum, record); + this.state.lineShowType_s[index] = 1; + this.setState({ + lineShowType_s: this.state.lineShowType_s + }); + } else { + //编辑态 + props.cardTable.openModel(card_body_sum, STATUS.edit, record, index); + } +} +//收起 +const CloseRow_Sum = function (props, record, index) { + let status = props.getUrlParam('status'); + if (status == STATUS.browse) { + //浏览态 + props.cardTable.toggleRowView(card_body_sum, record); + this.state.lineShowType_s[index] = 0; + this.setState({ + lineShowType_s: this.state.lineShowType_s + }); + } else { + //编辑态 + props.cardTable.openModel(card_body_sum, STATUS.edit, record, index); + } +} +//明细表体 +//展开 +const OpenRow = function (props, record, index) { + let status = props.getUrlParam('status'); + if (status == STATUS.browse) { + //浏览态 + props.cardTable.toggleRowView(card_body_detail, record); + this.state.lineShowType[index] = 1; + this.setState({ + lineShowType: this.state.lineShowType + }); + } else { + //编辑态 + props.cardTable.openModel(card_body_detail, STATUS.edit, record, index); + } +} +//收起 +const CloseRow = function (props, record, index) { + let status = props.getUrlParam('status'); + if (status == STATUS.browse) { + //浏览态 + props.cardTable.toggleRowView(card_body_detail, record); + this.state.lineShowType[index] = 0; + this.setState({ + lineShowType: this.state.lineShowType + }); + } else { + //编辑态 + props.cardTable.openModel(card_body_detail, STATUS.edit, record, index); + } +} +const setRowDefaultValue = function (props) { + let pk_group = props.form.getFormItemsValue(card_head, 'pk_group'); + let pk_org = props.form.getFormItemsValue(card_head, 'pk_org'); + let pk_org_v = props.form.getFormItemsValue(card_head, 'pk_org_v'); + let requsetdate = props.form.getFormItemsValue(card_head, 'drequestdate'); //申请日期 + + return { + [Field_detail.pk_group]: { display: pk_group.display, value: pk_group.value }, + [Field_detail.pk_org]: { display: pk_org.display, value: pk_org.value }, + [Field_detail.pk_org_v]: { display: pk_org_v.display, value: pk_org_v.value }, + [Field_detail.cdeliverorgid]: { display: pk_org.display, value: pk_org.value }, //发料组织 + [Field_detail.cdeliverorgvid]: { display: pk_org_v.display, value: pk_org_v.value }, + [Field_detail.fsupplytype]: { display: getLangByResId(this, '5008ReqPickm-0000055') /**一般发料 */, value: FsupplytypeEnum.generaldelivery.data }, //供应方式 + [Field_detail.bcandeliver]: { display: getLangByResId(this, '5008ReqPickm-0000048') /**是 */, value: true }, //可发料 + [Field_detail.bmainmaterial]: { display: getLangByResId(this, '5008ReqPickm-0000049') /**否 */, value: false }, //主料 + [Field_detail.ddeliverdate]: { display: requsetdate.display, value: requsetdate.value }, //需用时间 + [Field_detail.fitemsource]: { display: getLangByResId(this, '5008ReqPickm-0000052') /**备料 */, value: FitemsourceEnum.prepare.data } //备料来源 + } +} +//肩上增行 +const AddLine = function (props) { + let rowCount = props.cardTable.getNumberOfRows(card_body_detail); + props.cardTable.addRow(card_body_detail, + rowCount, + //初始化值 + setRowDefaultValue.call(this, props), + true + ); + RownoUtils.setRowNo(props, card_body_detail, Field_detail.vrowno); +} +//删行 +const DelLine = function (props, record, index) { + //行内删行 + if (record) { + props.cardTable.delRowsByIndex(card_body_detail, index); + props.cardTable.saveChangedRowsOldValue(card_body_detail, index, Field_detail.cmaterialvid, null); + buttonController.lineSelected.call(this, props); + } else { //肩上删行 + let flag = true; //行可删除校验标志 + let selectedRow = props.cardTable.getCheckedRows(card_body_detail); + if (selectedRow == null || selectedRow.length == 0) { + toast({ + color: 'warning', + content: getLangByResId(this, '5008ReqPickm-0000015') /* 国际化处理: 请选择要删除的行!*/ + }); + return; + } + let rowparam = []; + selectedRow.map((item) => { + rowparam.push(item.index); + // if(item.data.values[BodyField.frcvstatus].value==BillStatusEnum.accepted.data){ + // flag=false; + // } + }); + if (flag) { + props.cardTable.delRowsByIndex(card_body_detail, rowparam); + //bodySelectedEvent.call(this,props);校验按钮控制 + buttonController.lineSelected.call(this, props); + } else { //校验失败 + showWarningInfo.call(this, getLangByResId(this, '5008ReqPickm-0000016'), getLangByResId(this, '5008ReqPickm-0000017')); + } + } +} +//肩上复制行 +const CopyLine = function (props) { + this.setState({ bcopyline: true }); + rowCopyPasteUtils.copyRows.call( + this, + props, + card_body_detail, [...CardButton_body_detail.EditBtns, CardButton_body_detail.OpenRow], + CardButton_body_detail.CopyBtns + ); + // RownoUtils.resetRowNo(props, card_body_detail, Field_detail.vrowno); +} +//肩上复制行取消 +const PasteCancel = function (props) { + this.setState({ bcopyline: false }); + cancelCommon.call(this, this.props); + buttonController.lineSelected.call(this, props); +} +//肩上插入行 +const InsertLine = function (props, index) { + let pk_group = props.form.getFormItemsValue(card_head, 'pk_group'); + let pk_org = props.form.getFormItemsValue(card_head, 'pk_org'); + let pk_org_v = props.form.getFormItemsValue(card_head, 'pk_org_v'); + let requsetdate = props.form.getFormItemsValue(card_head, 'drequestdate'); //申请日期 + props.cardTable.addRow(card_body_detail, + index, + //初始化值 + { + [Field_detail.pk_group]: { display: pk_group.display, value: pk_group.value }, + [Field_detail.pk_org]: { display: pk_org.display, value: pk_org.value }, + [Field_detail.pk_org_v]: { display: pk_org_v.display, value: pk_org_v.value }, + [Field_detail.cdeliverorgid]: { display: pk_org.display, value: pk_org.value }, //发料组织 + [Field_detail.cdeliverorgvid]: { display: pk_org_v.display, value: pk_org_v.value }, + [Field_detail.fsupplytype]: { display: getLangByResId(this, '5008ReqPickm-0000055') /**一般发料 */, value: FsupplytypeEnum.generaldelivery.data }, //供应方式 + [Field_detail.bcandeliver]: { display: getLangByResId(this, '5008ReqPickm-0000048') /**是 */, value: true }, //可发料 + [Field_detail.bmainmaterial]: { display: getLangByResId(this, '5008ReqPickm-0000049') /**否 */, value: false }, //主料 + [Field_detail.ddeliverdate]: { display: requsetdate.display, value: requsetdate.value }, //需用时间 + [Field_detail.fitemsource]: { display: getLangByResId(this, '5008ReqPickm-0000052') /**备料 */, value: FitemsourceEnum.prepare.data } //备料来源 + }, + true + ); + RownoUtils.setRowNo(props, card_body_detail, Field_detail.vrowno); +} +//肩上粘贴至此 +const PasteThis = function (props, index) { + this.setState({ bcopyline: false }); + rowCopyPasteUtils.pasteRowsToIndex.call( + this, + props, + card_body_detail, + index, [...CardButton_body_detail.EditBtns, CardButton_body_detail.OpenRow], + CardButton_body_detail.CopyBtns, [Field_detail.vrowno, Field_detail.creqpickm_bid, + Field_detail.vbfree1, Field_detail.vbfree2, Field_detail.vbfree3, Field_detail.vbfree4, + Field_detail.vbfree5, Field_detail.vbfree6, Field_detail.vbfree7, + Field_detail.vbfree8, Field_detail.vbfree9, Field_detail.vbfree10 + ] //要清除的字段,暂时写这两个 + ); + RownoUtils.setRowNo(props, card_body_detail, Field_detail.vrowno); + buttonController.lineSelected.call(this, props); +} +//肩上粘贴至末行 +const PasteLast = function (props) { + this.setState({ bcopyline: false }); + rowCopyPasteUtils.pasteRowsToTail.call( + this, + props, + card_body_detail, [...CardButton_body_detail.EditBtns, CardButton_body_detail.OpenRow], + CardButton_body_detail.CopyBtns, [Field_detail.vrowno, Field_detail.creqpickm_bid, + Field_detail.vbfree1, Field_detail.vbfree2, Field_detail.vbfree3, Field_detail.vbfree4, + Field_detail.vbfree5, Field_detail.vbfree6, Field_detail.vbfree7, + Field_detail.vbfree8, Field_detail.vbfree9, Field_detail.vbfree10 + ] //要清除的字段,暂时写这两个 + ); + RownoUtils.setRowNo(props, card_body_detail, Field_detail.vrowno); + buttonController.lineSelected.call(this, props); +} +const cancelCommon = function (props) { + rowCopyPasteUtils.cancel.call( + this, + props, + card_body_detail, [...CardButton_body_detail.EditBtns, CardButton_body_detail.OpenRow], + CardButton_body_detail.CopyBtns + ); + +} +//退出转单 +const QuitTransferBtnClick = function (props) { + let allprocess = this.props.transferTable.getTransformFormStatus(TransferInfo.leftarea); + if (allprocess === false) { + showWarningDialog.call(this, getLangByResId(this, '5008ReqPickm-0000036'), getLangByResId(this, '5008ReqPickm-0000037'), { + /* 国际化处理: 提示,有未处理完的单据,是否退出转单?*/ + beSureBtnClick: () => { + quitTransfer.call(this); + } + }); + } else { + quitTransfer.call(this); + } +} + +function quitTransfer() { + // 退出转单时移除浏览器监听提示 + //window.removeEventListener('beforeunload', this.onMove); + //关闭浏览器提示 + window.onbeforeunload = null; + //推单标识 + let channelType = this.props.getUrlParam(TransferInfo.channelType); + //如果是推单过来的直接返回到 + if (channelType) { + this.props.pushTo('/list', {}); + } +} +export { + buttonClick, + setRowDefaultValue +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/btnClicks/pageInfoClick.js b/src/mmpac/mmpac/reqpickm/card/btnClicks/pageInfoClick.js new file mode 100644 index 0000000..8b8cef8 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/btnClicks/pageInfoClick.js @@ -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 +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/btnClicks/pageInfoClickPage.js b/src/mmpac/mmpac/reqpickm/card/btnClicks/pageInfoClickPage.js new file mode 100644 index 0000000..09cb675 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/btnClicks/pageInfoClickPage.js @@ -0,0 +1,9 @@ +import {pageInfoClick} from './pageInfoClick'; +const pageInfoClickPage = function(props, pk, refresh) { + pageInfoClick.call(this,props,pk); +} + +export { + pageInfoClickPage +} + diff --git a/src/mmpac/mmpac/reqpickm/card/index.js b/src/mmpac/mmpac/reqpickm/card/index.js new file mode 100644 index 0000000..2cd3bb1 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/index.js @@ -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 ( +
+ { + this.props.button.createButtonApp({ + area: bodyAction_detail, + onButtonClick: buttonClick.bind(this) + }) + } +
+ ); + } + //备料申请汇总页签 + getSumBodyBtn = () => { + return ( +
+ { + this.props.button.createButtonApp({ + area: bodyAction_sum, + onButtonClick: buttonClick.bind(this) + }) + } +
+ ); + } + + 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 ( +
+ + +
+ {createBillHeadInfo({ + title: this.props.getSearchParam('n'),//getLangByResId(this, '5008ReqPickm-000001'), //标题/* 国际化处理: 备料申请单*/ + billCode: '', //单据号 + backBtnClick: buttonClick.bind(this, this.props, CardButton.Back) + })} +
+
+ {/*sagas*/} + {button.createErrorFlag({ + headBtnAreaCode: headAction + })} + {createButtonApp({ + area: headAction,//按钮注册中的按钮区域 + onButtonClick: buttonClick.bind(this) + })} + { + this.setState({ showTrack: false }); + }} + pk={this.state.creqpickmid} + type={billType} + /> +
+
+
+
+ {/* 转单 */} + {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); + } + })} +
+
+ {createForm(card_head, { + onBeforeEvent: beforeEvent.bind(this), + onAfterEvent: afterEvent.bind(this) + })} +
+
+ {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), + })} +
+
+ {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), + })} +
+ {createModal('PickmDlg')} + {/* 附件管理 */} +
{this.state.showUploader + && } +
+ {createModal('orgChange')} + {createModal('ResumeMessageDlg', { + className: 'iframe-modal', + size: 'xlg' + })} + {createModal('delModal')} + {createModal('MessageDlg')} +
+
+
+ ); + } else { + return ( +
+ {socket.connectMesg({ + headBtnAreaCode: headAction, // 表头按钮区域ID + formAreaCode: card_head, // 表头Form区域ID + billtype: billType, + billpkname: Field.creqpickmid, + dataSource: ReqPickmCache.dataSource + })} +
+ + +
+ {createBillHeadInfo({ + title: this.props.getSearchParam('n'),// getLangByResId(this, '5008ReqPickm-000001'), //标题/* 国际化处理: 备料申请单*/ + billCode: '', //单据号 + backBtnClick: buttonClick.bind(this, this.props, CardButton.Back) + })} +
+
+ {/*sagas*/} + {this.props.button.createErrorFlag({ + headBtnAreaCode: headAction + })} + {createButtonApp({ + area: headAction,//按钮注册中的按钮区域 + onButtonClick: buttonClick.bind(this) + })} + + {createCardPagination({ + handlePageInfoChange: pageInfoClickPage.bind(this), + dataSource: ReqPickmCache.dataSource + })} + {/* 单据追溯 */} + { + this.setState({ showTrack: false }); + }} + pk={this.state.creqpickmid} + type={billType} + /> +
+
+
+
+ {createForm(card_head, { + onBeforeEvent: beforeEvent.bind(this), + onAfterEvent: afterEvent.bind(this) + })} +
+
+
+
+ {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) + // } + })} +
+
+ {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), + })} +
+ {createModal('PickmDlg')} +
+ {/* 附件管理 */} +
{this.state.showUploader + && } +
+ {createModal('orgChange')} + {createModal('ResumeMessageDlg', { + className: 'iframe-modal', + size: 'xlg' + })} + {createModal('delModal')} + {createModal('MessageDlg')} +
+ ) + } + + } +} + +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 diff --git a/src/mmpac/mmpac/reqpickm/card/init/index.js b/src/mmpac/mmpac/reqpickm/card/init/index.js new file mode 100644 index 0000000..9d1ce07 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/init/index.js @@ -0,0 +1,2 @@ +import initTemplate from './initTemplate'; +export { initTemplate }; \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/init/initTemplate.js b/src/mmpac/mmpac/reqpickm/card/init/initTemplate.js new file mode 100644 index 0000000..1825f70 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/init/initTemplate.js @@ -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 ( + { + props.openTo(null, { + pagecode: mopagecode, + // appcode: moappcode, + id: cmoid, + billtype: motype, + status: 'browse', + }); + }} + > + {text && text.value} + + ); + }; + 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 ( + { + openAppByBilltype({ + billpk: cpickmid, + billtype: '55A3', + type: 'open' + }) + }} + > + {text && text.value} + + ); + }; + 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); +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/viewController/buttonController.js b/src/mmpac/mmpac/reqpickm/card/viewController/buttonController.js new file mode 100644 index 0000000..5b37228 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/viewController/buttonController.js @@ -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 +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/card/viewController/index.js b/src/mmpac/mmpac/reqpickm/card/viewController/index.js new file mode 100644 index 0000000..abb0d93 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/card/viewController/index.js @@ -0,0 +1,3 @@ +import buttonController from './buttonController'; +//import btnClickController from './btnClickControllor'; +export { buttonController }; \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/constance/index.js b/src/mmpac/mmpac/reqpickm/constance/index.js new file mode 100644 index 0000000..aba453d --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/constance/index.js @@ -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 }; \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/list/btnClicks/index.js b/src/mmpac/mmpac/reqpickm/list/btnClicks/index.js new file mode 100644 index 0000000..7be50d9 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/list/btnClicks/index.js @@ -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 +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/list/btnClicks/service/index.js b/src/mmpac/mmpac/reqpickm/list/btnClicks/service/index.js new file mode 100644 index 0000000..7f27f87 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/list/btnClicks/service/index.js @@ -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,//查询服务 +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/list/events/search_afterEvent.js b/src/mmpac/mmpac/reqpickm/list/events/search_afterEvent.js new file mode 100644 index 0000000..5f61368 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/list/events/search_afterEvent.js @@ -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; +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/list/index.js b/src/mmpac/mmpac/reqpickm/list/index.js new file mode 100644 index 0000000..684c5a4 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/list/index.js @@ -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 ( +
+ {socket.connectMesg({ + tableAreaCode: tableId, + billpkname: Field.creqpickmid, + billtype: billType + })} + +
+ {createBillHeadInfo({ + title: this.props.getSearchParam('n'),//getLangByResId(this, '5008ReqPickm-000001'), + initShowBackBtn: false + })} +
+ {/* 按钮区 */} +
+ { + createButtonApp({ + area: headAction, + buttonLimit: 3, + onButtonClick: buttonClick.bind(this), + popContainer: document.querySelector('.header-button-area') + + }) + } +
+
+ {/* 查询展示区域 */} +
+ { + NCCreateSearch(searchId, { + clickSearchBtn: searchBtnClick.bind(this), + onAfterEvent: search_afterEvent.bind(this), + renderCompleteEvent: this.renderCompleteEvent, + statusChangeEvent: this.renderCompleteEvent, + dataSource: ReqPickmCache.dataSource, + pkname: Field.creqpickmid + }) + } +
+ {/* 页签区域 */} +
+ +
+

{getLangByResId(this, '5008ReqPickm-000002') + '(' + this.state.executNum + ')'} {/**执行中*/}

+
+
+

{getLangByResId(this, '5008ReqPickm-000003')} {/**全部*/}

+
+
+
+ {/* 列表区域 */} +
+ { + 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)) + }) + } +
+ {/* 单据追溯 */} + { + this.setState({ showTrack: false }); + }} + pk={this.state.creqpickmid} + type="55AC" + /> + {/* 附件管理 */} + {this.state.showUploader && ( + + )} + + {createModal(ListButton.Delete)} + {createModal('MessageDlg')} +
+ ); + } +} + +ReqpickmList = createPage({ + // initTemplate: [], + // mutiLangCode: '5008ReqPickm', + billinfo: { + billtype: 'grid', + pagecode: pageId, + bodycode: tableId + } +})(ReqpickmList); + +export default ReqpickmList; \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/list/init/index.js b/src/mmpac/mmpac/reqpickm/list/init/index.js new file mode 100644 index 0000000..54195f4 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/list/init/index.js @@ -0,0 +1,2 @@ +import initTemplate from './initTemplate'; +export { initTemplate }; diff --git a/src/mmpac/mmpac/reqpickm/list/init/initTemplate.js b/src/mmpac/mmpac/reqpickm/list/init/initTemplate.js new file mode 100644 index 0000000..f82f3c9 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/list/init/initTemplate.js @@ -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 ( + { + this.props.pushTo('/card', { + status: STATUS.browse, + id: creqpickmid + }); + }} + > + {record && record.vbillcode && record.vbillcode.value} + + ); + } + } + 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'); + } + }); + } +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/list/viewController/buttonController.js b/src/mmpac/mmpac/reqpickm/list/viewController/buttonController.js new file mode 100644 index 0000000..171fd1e --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/list/viewController/buttonController.js @@ -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 }; \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/list/viewController/index.js b/src/mmpac/mmpac/reqpickm/list/viewController/index.js new file mode 100644 index 0000000..4dcf4ef --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/list/viewController/index.js @@ -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" + } + } +] */ diff --git a/src/mmpac/mmpac/reqpickm/main/config.json b/src/mmpac/mmpac/reqpickm/main/config.json new file mode 100644 index 0000000..f3653cd --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/main/config.json @@ -0,0 +1,4 @@ +{ + "dependModuleName": [ "uap/common/components/NCUploader" ], + "dependjs": [ "../../../../uap/common/components/NCUploader/index.js" ] +} diff --git a/src/mmpac/mmpac/reqpickm/main/index.js b/src/mmpac/mmpac/reqpickm/main/index.js new file mode 100644 index 0000000..f81eed6 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/main/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') \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/main/router.js b/src/mmpac/mmpac/reqpickm/main/router.js new file mode 100644 index 0000000..8842fe4 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/main/router.js @@ -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 \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/pickm/btnClicks/index.js b/src/mmpac/mmpac/reqpickm/pickm/btnClicks/index.js new file mode 100644 index 0000000..f07dfc7 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/pickm/btnClicks/index.js @@ -0,0 +1,3 @@ +import searchBtnClick from './searchBtnClick'; + +export { searchBtnClick }; \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/pickm/btnClicks/searchBtnClick.js b/src/mmpac/mmpac/reqpickm/pickm/btnClicks/searchBtnClick.js new file mode 100644 index 0000000..05be54f --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/pickm/btnClicks/searchBtnClick.js @@ -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(); + } + } + }); +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/pickm/const/index.js b/src/mmpac/mmpac/reqpickm/pickm/const/index.js new file mode 100644 index 0000000..1f61b5c --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/pickm/const/index.js @@ -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; \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/pickm/events/search_afterEvent.js b/src/mmpac/mmpac/reqpickm/pickm/events/search_afterEvent.js new file mode 100644 index 0000000..9aa17d4 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/pickm/events/search_afterEvent.js @@ -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; +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/pickm/index.js b/src/mmpac/mmpac/reqpickm/pickm/index.js new file mode 100644 index 0000000..1935ad0 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/pickm/index.js @@ -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 (
+ {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) + })} +
+ ); + } +} +PickmTable = createPage({})(PickmTable); +export default PickmTable; \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/pickm/index.less b/src/mmpac/mmpac/reqpickm/pickm/index.less new file mode 100644 index 0000000..a530568 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/pickm/index.less @@ -0,0 +1,4 @@ +.wui-modal .reqpickmModal-query .wui-modal-content { + height: 150px; + width: 1100px; +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/pickm/init/index.js b/src/mmpac/mmpac/reqpickm/pickm/init/index.js new file mode 100644 index 0000000..def969d --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/pickm/init/index.js @@ -0,0 +1,3 @@ +import initTemplate from './initTemplate'; + +export { initTemplate }; \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/pickm/init/initTemplate.js b/src/mmpac/mmpac/reqpickm/pickm/init/initTemplate.js new file mode 100644 index 0000000..a4dff76 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/pickm/init/initTemplate.js @@ -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; + +} \ No newline at end of file diff --git a/src/mmpac/mmpac/reqpickm/pickm/init/queryAreaInit.js b/src/mmpac/mmpac/reqpickm/pickm/init/queryAreaInit.js new file mode 100644 index 0000000..b897e63 --- /dev/null +++ b/src/mmpac/mmpac/reqpickm/pickm/init/queryAreaInit.js @@ -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 }; \ No newline at end of file