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