From 9cfe51f23d335d45df81b3101b9ef59b1a640eaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=AD=A3=40=E7=94=A8=E5=8F=8B?= Date: Mon, 19 May 2025 17:20:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E7=94=9F=E4=BA=A7=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=AF=B9=E6=AF=94=E6=BA=90=E7=A0=81=E6=96=B0=E5=A2=9E?= =?UTF-8?q?js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../card/beforeEvents/batchBeforeEditEvent.js | 96 ++++ src/mmpac/mmpac/pmo/card/index.css | 3 + .../mmpac/pmo/card/util/combinePlanRc.js | 38 ++ src/mmpac/mmpac/pmo/list/afterEvents/index.js | 10 + .../mmpac/pmo/list/btnclicks/addBtnClick.js | 18 + .../pmo/list/btnclicks/adjustBtnClick.js | 48 ++ .../pmo/list/btnclicks/autocloseClick.js | 71 +++ .../mmpac/pmo/list/btnclicks/backBtnClick.js | 12 + .../list/btnclicks/barCodePrintBtnClick.js | 27 + .../mmpac/pmo/list/btnclicks/batchEditSave.js | 69 +++ .../mmpac/pmo/list/btnclicks/buttonClick.js | 381 +++++++++++++ .../mmpac/pmo/list/btnclicks/closeClick.js | 72 +++ .../pmo/list/btnclicks/closecancelClick.js | 71 +++ .../pmo/list/btnclicks/commitBatchBtnClick.js | 83 +++ .../pmo/list/btnclicks/commitBtnClick.js | 72 +++ .../mmpac/pmo/list/btnclicks/commonSearch.js | 108 ++++ .../pmo/list/btnclicks/delBatchBtnClick.js | 112 ++++ .../mmpac/pmo/list/btnclicks/delBtnClick.js | 41 ++ .../mmpac/pmo/list/btnclicks/exportTemClick | 30 + .../mmpac/pmo/list/btnclicks/fileBtnClick.js | 32 ++ .../mmpac/pmo/list/btnclicks/finishClick.js | 71 +++ .../pmo/list/btnclicks/finishcancelClick.js | 71 +++ .../mmpac/pmo/list/btnclicks/importClick | 19 + .../mmpac/pmo/list/btnclicks/linkBtnClick.js | 13 + .../pmo/list/btnclicks/outputBtnClick.js | 37 ++ .../mmpac/pmo/list/btnclicks/pageInfoClick.js | 40 ++ .../mmpac/pmo/list/btnclicks/pickmBtnClick.js | 34 ++ .../pmo/list/btnclicks/pickmrecalBtnClick.js | 71 +++ .../pmo/list/btnclicks/pmoMosBtnClick.js | 38 ++ .../list/btnclicks/pmoSetAnalysisBtnClick.js | 21 + .../list/btnclicks/pmoToPutPlanBtnClick.js | 38 ++ .../pmo/list/btnclicks/pmoactivityBtnClick.js | 53 ++ .../pmo/list/btnclicks/pmodeliverBtnClick.js | 69 +++ .../list/btnclicks/pmodeliverbackBtnClick.js | 54 ++ .../btnclicks/pmodeliverfillsetBtnClick.js | 56 ++ .../list/btnclicks/pmodeliversetBtnClick.js | 55 ++ .../btnclicks/pmodeliversetbackBtnClick.js | 54 ++ .../pmo/list/btnclicks/pmopushsfcBtnClick.js | 46 ++ .../pmo/list/btnclicks/pmoresolveBtnClick.js | 11 + .../pmo/list/btnclicks/pmoscrapaddBtnClick.js | 38 ++ .../mmpac/pmo/list/btnclicks/pmosnBtnClick.js | 47 ++ .../pmo/list/btnclicks/pmoturnBtnClick.js | 51 ++ .../btnclicks/pmounpickmdeliverBtnClick.js | 51 ++ .../mmpac/pmo/list/btnclicks/printBtnClick.js | 49 ++ .../list/btnclicks/printbarCodeBtnClick.js | 67 +++ .../pmo/list/btnclicks/pscplanBtnClick.js | 43 ++ .../mmpac/pmo/list/btnclicks/putClick.js | 70 +++ .../pmo/list/btnclicks/searchBtnClick.js | 44 ++ .../list/btnclicks/unCommitBatchBtnClick.js | 64 +++ .../pmo/list/btnclicks/uncommitBtnClick.js | 74 +++ .../mmpac/pmo/list/btnclicks/unputClick.js | 74 +++ .../pmo/list/btnclicks/viewverBtnClick.js | 43 ++ src/mmpac/mmpac/pmo/list/index.js | 525 ++++++++++++++++++ src/mmpac/mmpac/pmo/list/init/index.js | 2 + src/mmpac/mmpac/pmo/list/init/initTemplate.js | 446 +++++++++++++++ .../mmpac/pmo/list/util/busiOperUtils.js | 55 ++ .../mmpac/pmo/list/util/headSelectedUtils.js | 16 + .../pmo/list/viewControl/buttonController.js | 315 +++++++++++ src/mmpac/mmpac/pmo/list/viewControl/index.js | 3 + src/mmpac/mmpac/pmo/main/config.json | 17 + src/mmpac/mmpac/pmo/main/index.js | 7 + src/mmpac/mmpac/pmo/main/router.js | 25 + .../batchedit/viewControl/buttonController.js | 8 + .../pmo/pub/batchedit/viewControl/index.js | 2 + .../mmpac/pmo/pub/grand/btnClicks/initData.js | 45 ++ .../pub/grand/btnClicks/pickmrecalBtnClick.js | 80 +++ src/mmpac/mmpac/pmo/pub/grand/index.less | 6 + .../pub/grand/viewControl/fieldsController.js | 144 +++++ .../mmpac/pmo/pub/serialno/buttons/index.js | 186 +++++++ src/mmpac/mmpac/pmo/transtype/config.json | 3 + src/mmpac/mmpac/pmo/transtype/index.js | 158 ++++++ src/mmpac/mmpac/pmo/transtype/init/index.js | 2 + .../mmpac/pmo/transtype/init/initTemplate.js | 29 + 73 files changed, 5034 insertions(+) create mode 100644 src/mmpac/mmpac/pmo/card/beforeEvents/batchBeforeEditEvent.js create mode 100644 src/mmpac/mmpac/pmo/card/index.css create mode 100644 src/mmpac/mmpac/pmo/card/util/combinePlanRc.js create mode 100644 src/mmpac/mmpac/pmo/list/afterEvents/index.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/addBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/adjustBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/autocloseClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/backBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/barCodePrintBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/batchEditSave.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/buttonClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/closeClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/closecancelClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/commitBatchBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/commitBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/commonSearch.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/delBatchBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/delBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/exportTemClick create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/fileBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/finishClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/finishcancelClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/importClick create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/linkBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/outputBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pageInfoClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pickmBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pickmrecalBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmoMosBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmoSetAnalysisBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmoToPutPlanBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmoactivityBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmodeliverBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmodeliverbackBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmodeliverfillsetBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmodeliversetBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmodeliversetbackBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmopushsfcBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmoresolveBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmoscrapaddBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmosnBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmoturnBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pmounpickmdeliverBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/printBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/printbarCodeBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/pscplanBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/putClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/searchBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/unCommitBatchBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/uncommitBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/unputClick.js create mode 100644 src/mmpac/mmpac/pmo/list/btnclicks/viewverBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/list/index.js create mode 100644 src/mmpac/mmpac/pmo/list/init/index.js create mode 100644 src/mmpac/mmpac/pmo/list/init/initTemplate.js create mode 100644 src/mmpac/mmpac/pmo/list/util/busiOperUtils.js create mode 100644 src/mmpac/mmpac/pmo/list/util/headSelectedUtils.js create mode 100644 src/mmpac/mmpac/pmo/list/viewControl/buttonController.js create mode 100644 src/mmpac/mmpac/pmo/list/viewControl/index.js create mode 100644 src/mmpac/mmpac/pmo/main/config.json create mode 100644 src/mmpac/mmpac/pmo/main/index.js create mode 100644 src/mmpac/mmpac/pmo/main/router.js create mode 100644 src/mmpac/mmpac/pmo/pub/batchedit/viewControl/buttonController.js create mode 100644 src/mmpac/mmpac/pmo/pub/batchedit/viewControl/index.js create mode 100644 src/mmpac/mmpac/pmo/pub/grand/btnClicks/initData.js create mode 100644 src/mmpac/mmpac/pmo/pub/grand/btnClicks/pickmrecalBtnClick.js create mode 100644 src/mmpac/mmpac/pmo/pub/grand/index.less create mode 100644 src/mmpac/mmpac/pmo/pub/grand/viewControl/fieldsController.js create mode 100644 src/mmpac/mmpac/pmo/pub/serialno/buttons/index.js create mode 100644 src/mmpac/mmpac/pmo/transtype/config.json create mode 100644 src/mmpac/mmpac/pmo/transtype/index.js create mode 100644 src/mmpac/mmpac/pmo/transtype/init/index.js create mode 100644 src/mmpac/mmpac/pmo/transtype/init/initTemplate.js diff --git a/src/mmpac/mmpac/pmo/card/beforeEvents/batchBeforeEditEvent.js b/src/mmpac/mmpac/pmo/card/beforeEvents/batchBeforeEditEvent.js new file mode 100644 index 00000000..1f82fe72 --- /dev/null +++ b/src/mmpac/mmpac/pmo/card/beforeEvents/batchBeforeEditEvent.js @@ -0,0 +1,96 @@ +/* + * @Author: zhangchangqing + * @PageInfo: 表体编辑后事件 + * @Date: 2018-05-03 14:38:54 + * @Last Modified by: mikey.zhangchqf + * @Last Modified time: 2018-11-16 15:41:33 + */ + +import { ajax, base, toast } from 'nc-lightapp-front'; +import { PMO_LIST, PMO_CARD, PMO_LIST_BUTTON, PMO_CARD_BUTTON, FBILLSTATUS, BODYFBILLSTATUS, HEADATTRCODE, BODYATTRCODE, GRANDATTRCODE, clearItems } from '../../pmoconst'; +import { RownoUtils } from '../../../../../mmpub/mmpub/pub/tool/cardTableTools'; +const { NCMessage } = base; +const formId = PMO_CARD.formId; +const formId4BatchEdit = PMO_CARD.formId4BatchEdit; +const batchEditAfterEditURL = PMO_CARD.batchEditAfterEditURL; +export default function beforeEvent(props, moduleId, key, value, index, record) { + if (moduleId == formId4BatchEdit) { + let flag = true; + let meta = this.props.meta.getMeta(); + let cdeptid = props.form.getFormItemsValue(formId4BatchEdit, BODYATTRCODE.CDEPTID).value; + let pkgroup = props.form.getFormItemsValue(formId, HEADATTRCODE.PK_GROUP).value; + let pkorg = props.form.getFormItemsValue(formId, HEADATTRCODE.PK_ORG).value; + let condition = {}; + if (key == BODYATTRCODE.CDEPTID || key == BODYATTRCODE.CDEPTVID) { + meta[formId4BatchEdit].items.map((item) => { + if (item.attrcode == BODYATTRCODE.CDEPTVID || item.attrcode == BODYATTRCODE.CDEPTID) { + item.queryCondition = () => { + return { + pk_group: pkgroup, + pk_org: pkorg, + busifuncode: PMO_CARD.busifuncode4MM + }; + }; + } + }); + } + else if (key == BODYATTRCODE.CWKID) { + meta[formId4BatchEdit].items.map((item) => { + if (item.attrcode == BODYATTRCODE.CWKID) { + condition = {}; + //根据部门过滤工作中心 + if (cdeptid != null) { + condition.cdeptid = cdeptid; + condition.GridRefActionExt = 'nccloud.web.mmpub.pub.ref.WorkCenterRefFilterUtils'; + } + item.queryCondition = () => { + condition.pk_group = pkgroup; + condition.pk_org = pkorg; + return condition; + }; + } + }); + } else if (key == BODYATTRCODE.CTEAMID) { + //根据生产线和部门过滤班组 + meta[formId4BatchEdit].items.map((item) => { + if (item.attrcode == BODYATTRCODE.CTEAMID) { + item.queryCondition = () => { + condition = { + pk_group: pkgroup, + pk_org: pkorg, + GridRefActionExt: 'nccloud.web.mmpub.pub.ref.TeamRefSqlBuilder' + }; + //部门和生产线 + if (cwkid) { + condition.cwkid = cwkid; + } + if (cdeptid) { + condition.cdeptid = cdeptid; + } + return condition; + }; + } + }); + } else if (key == BODYATTRCODE.CCLASSID) { + //根据生产线过滤班次 + meta[formId4BatchEdit].items.map((item) => { + if (item.attrcode == BODYATTRCODE.CCLASSID) { + condition = { + pk_group: pkgroup, + pk_org: pkorg, + orgshifttype:'2', + GridRefActionExt: 'nccloud.web.mmpub.pub.ref.ShiftRefSqlBuilder' + }; + item.queryCondition = () => { + if (cwkid) { + condition.cwkid = cwkid; + } + return condition; + }; + } + }); + } + return flag; + } +} + diff --git a/src/mmpac/mmpac/pmo/card/index.css b/src/mmpac/mmpac/pmo/card/index.css new file mode 100644 index 00000000..030d04fc --- /dev/null +++ b/src/mmpac/mmpac/pmo/card/index.css @@ -0,0 +1,3 @@ +.dragWidthCom .left { + width: 100%; +} diff --git a/src/mmpac/mmpac/pmo/card/util/combinePlanRc.js b/src/mmpac/mmpac/pmo/card/util/combinePlanRc.js new file mode 100644 index 00000000..374ca175 --- /dev/null +++ b/src/mmpac/mmpac/pmo/card/util/combinePlanRc.js @@ -0,0 +1,38 @@ +import { ajax } from 'nc-lightapp-front'; +import { PMO_CARD, PMO_GRAND} from '../../pmoconst'; +let tableId = PMO_CARD.tableId; +let tableId4proc = PMO_GRAND.grand4proc; +export default function combinePlanRc(props, grands, bodysize) { + for (let i = 0; i < bodysize; i++) { + //当前行对应的工序计划数据 + let curGrands = grands[i][tableId4proc]; + //如果有工序计划数据需要进行覆盖,已有的状态为删除,新的状态为新增 + if (curGrands && curGrands.rows.length != 0) { + if (this.state.planrcvos && this.state.planrcvos[i]) { + let newrows = []; + curGrands.rows.map((pvo, pindex) => { + pvo.status = 3; + newrows.push(pvo); + }); + if (this.state.planrcvos[i] && this.state.planrcvos[i].rows) { + this.state.planrcvos[i].rows.map((pvo, tmpindex) => { + pvo.status = 2; + newrows.push(pvo); + }); + } + curGrands.rows = newrows; + } + } else { + //如果没用就直接进行覆盖即可 + if (this.state.planrcvos[i] && this.state.planrcvos[i].rows) { + let newrows = []; + this.state.planrcvos[i].rows.map((pvo, tmpindex) => { + pvo.status = 2; + newrows.push(pvo); + }); + curGrands.rows = newrows; + } + return grands; + } + } +} \ No newline at end of file diff --git a/src/mmpac/mmpac/pmo/list/afterEvents/index.js b/src/mmpac/mmpac/pmo/list/afterEvents/index.js new file mode 100644 index 00000000..235d93d2 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/afterEvents/index.js @@ -0,0 +1,10 @@ +/* 列表按钮是否可用状态控制 + * @Author: mikey.zhangchqf + * @Date: 2018-07-04 20:32:00 + * @Last Modified by: mikey.zhangchqf + * @Last Modified time: 2018-07-04 20:32:00 + */ + + +import initButtons from './initButtons'; +export { initButtons }; diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/addBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/addBtnClick.js new file mode 100644 index 00000000..712e6515 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/addBtnClick.js @@ -0,0 +1,18 @@ +/* + * @Author: fengjinga + * @PageInfo: 新增按钮处理 + * @Date: 2018-04-19 10:34:18 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-08-10 15:00:31 + */ +import { cacheTools } from 'nc-lightapp-front'; +import { PMO_LIST, PMO_CARD } from '../../pmoconst'; + +export default function clickAddBtn(props) { + let searchVal = props.search.getAllSearchData(PMO_LIST.searchId); + cacheTools.set("searchParams", searchVal); + props.pushTo(PMO_CARD.cardUrl, { + status: PMO_CARD.add + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/adjustBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/adjustBtnClick.js new file mode 100644 index 00000000..e4d774e9 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/adjustBtnClick.js @@ -0,0 +1,48 @@ +/* + * @Author: fengjinga + * @PageInfo: 变更按钮处理 + * @Date: 2018-04-19 10:34:18 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-08-10 15:00:31 + */ +import { cacheTools, ajax } from 'nc-lightapp-front'; +import { PMO_LIST, PMO_CARD, HEADATTRCODE } from '../../pmoconst'; +import {tableBeforeEdit} from '../../../../../mmpub/mmpub/pub/tool/listBeforeEditCardUtil'; +const cardUrl = PMO_CARD.cardUrl; +const searchId = PMO_LIST.searchId; +export default function adjustBtn(props, record, adjust) { + + + let canDoEdit = tableBeforeEdit.call( + this, + props, + PMO_LIST.appcode, + PMO_LIST.pageid, + PMO_LIST.tableId, + record[HEADATTRCODE.CPMOHID].value, + record['ts'].value); + + if(canDoEdit){ + if (!adjust) { + adjust = false; + } + let pks = []; + pks.push(record[HEADATTRCODE.CPMOHID].value); + let data = { pks: pks, actioncode: (adjust ? 'pmoAjust' : 'PmoUpdateBP') }; + ajax({ + url: PMO_LIST.checkdatapermissionURL, + data: data, + success: (res) => { + let searchVal = props.search.getAllSearchData(searchId); + cacheTools.set("searchParams", searchVal); + props.pushTo(cardUrl, { + status: PMO_CARD.edit, + isadjust: adjust, + id: record[HEADATTRCODE.CPMOHID].value, + iscard: 'N' + }); + } + }); + } +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/autocloseClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/autocloseClick.js new file mode 100644 index 00000000..fcd9d1f6 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/autocloseClick.js @@ -0,0 +1,71 @@ +/* + * @Author: fengjinga + * @PageInfo: 自动关闭按钮事件 + */ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { ajax } from 'nc-lightapp-front'; +import { + showWarningDialog, + showBatchOprMessage, + showInfoDialog, + showErrorInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { buttonController } from '../viewControl'; +const tableId = PMO_LIST.tableId; +export default function putBtn(props) { + // 获取选中行 + let rows = props.table.getCheckedRows(tableId); + let inforows = []; + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value, + rowid: item.data.rowId + }; + inforows.push(data); + }); + let data = { infos: inforows, pageid: PMO_LIST.pageid }; + let url = PMO_LIST.listAutoClose; + ajax({ + url: url, + data, + success: (res) => { + if (res.success) { + if (res.data) { + if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { + // 成功的index + let sucIndex = []; + rows.forEach((element, index) => { + if (!res.data.errorMessageMap[index]) { + sucIndex.push(element.index); + } + }); + } else { + let succIndex = []; + rows.forEach((element, index) => { + //deleteCacheDataForList(props, tableId, element.data.values[cpmohid].value); + succIndex.push(element.index); + }); + } + buttonController.setListButtonVisiable(props, this.state.currentTab); + if (res.data.sucessVOs) { + res.data.sucessVOs[tableId].rows.map((item, index) => { + item.rowId = item.rowid; + }); + this.props.table.updateTableData(tableId, res.data.sucessVOs[tableId]); + } + showBatchOprMessage( + getLangByResId(this, '50080000-000063'),/* 国际化处理: 自动关闭成功*/ + res.data, + {}, + getLangByResId(this, '50080000-000017')/* 国际化处理: 提示*/ + ); /* 国际化处理: 提示*/ + } else { + showErrorInfo(getLangByResId(this, '50080000-000064'));/* 国际化处理: 自动关闭失败!*/ + } + } + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/backBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/backBtnClick.js new file mode 100644 index 00000000..341d6c4b --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/backBtnClick.js @@ -0,0 +1,12 @@ +/* + * @Author: fengjinga + * @PageInfo: 返回按钮处理 + * @Date: 2018-04-19 10:34:18 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-08-10 15:00:31 + */ +import { PMO_LIST } from '../../pmoconst'; + +export default function backBtn(props) { + props.pushTo(PMO_LIST.listUrl, {}) +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/barCodePrintBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/barCodePrintBtnClick.js new file mode 100644 index 00000000..22b8e5df --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/barCodePrintBtnClick.js @@ -0,0 +1,27 @@ +/** + * 直接打印条码 + */ +import { print } from 'nc-lightapp-front'; +export default function (props, params) { + let { billtype, oids } = params; + let map = { + width: '210', + height: '210', + direction: '', + leftMargin: '0', + rightMargin: '0', + topMargin: '0', + bottomMargin: '0', + dataColumn: '1' + }; + let userjson = billtype + ';' + JSON.stringify(map); + print( + 'pdf', //支持两类: 'html'为模板打印, 'pdf'为pdf打印 + '/nccloud/mmpac/pmo/barcodeprint.do', + { + userjson, //单据类型 + oids + }, + false + ); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/batchEditSave.js b/src/mmpac/mmpac/pmo/list/btnclicks/batchEditSave.js new file mode 100644 index 00000000..535b8875 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/batchEditSave.js @@ -0,0 +1,69 @@ +/* + * @Author: fengjinga + * @PageInfo: 批改保存按钮事件 + * @Date: 2018-04-19 10:35:13 + * @Last Modified by: zhangjingchuan + * @Last Modified time: 2023-11-17 16:13:27 + */ +import { PMO_LIST, PMO_CARD, HEADATTRCODE, BODYATTRCODE } from '../../pmoconst'; +import { ajax, cardCache } from 'nc-lightapp-front'; +import { showSuccessInfo, showErrorInfo, showWarningInfo } from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { updateCacheDataForList } from '../../../../../mmpub/mmpub/pub/cache/cacheDataManager'; +const formId4BatchEdit = PMO_CARD.formId4BatchEdit; +const tableId = PMO_LIST.tableId; +export default function batcheditSave(props, batchEditfields) { + let that = this; + let cdeptvid = batchEditfields[BODYATTRCODE.CDEPTVID]; + let cdeptid = batchEditfields[BODYATTRCODE.CDEPTID]; + let cwkid = batchEditfields[BODYATTRCODE.CWKID]; + let cclassid = batchEditfields[BODYATTRCODE.CCLASSID]; + let cteamid = batchEditfields[BODYATTRCODE.CTEAMID]; + let checkedrows = props.table.getCheckedRows(tableId); + let inforows = []; + let indexs = []; + checkedrows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value + }; + inforows.push(data); + indexs.push(item.index); + }); + let data = { + inforows: inforows, + cdeptvid: cdeptvid.value, + cdeptid: cdeptid.value + // cwkid: cwkid.value, + // cclassid: cclassid.value, + // cteamid: cteamid.value + }; + if (cwkid.value) { + data.cwkid = cwkid.value; + } + if (cclassid.value) { + data.cclassid = cclassid.value; + } + if (cteamid.value) { + data.cteamid = cteamid.value; + } + let url = PMO_LIST.listBatchEdit; + ajax({ + url: url, + data: data, + success: (res) => { + if (res.success) { + if (res.data) { + res.data[tableId].rows.map((item, index) => { + item.rowId = item.rowid; + }); + let messageInfo = {}; + messageInfo['sucessVOs'] = res.data; + updateCacheDataForList(props, tableId, HEADATTRCODE.CPMOHID, messageInfo); + } + //props.table.updateDataByIndexs(tableId, updateDatas); + showSuccessInfo(getLangByResId(this, '50080000-000012')); /* 国际化处理: 批改成功*/ + } + } + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/buttonClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/buttonClick.js new file mode 100644 index 00000000..d6be1daa --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/buttonClick.js @@ -0,0 +1,381 @@ +/* + * @Author: fengjinga + * @PageInfo: 按钮事件 + * @Date: 2018-04-19 10:34:04 + * @Last Modified by: fengjinga + * @Last Modified time: 2022-06-22 14:00:39 + */ +import { + PMO_LIST, + PMO_CARD, + URL4SFC, + CONST4SFC, + PMO_LIST_BUTTON, + PMO_CARD_BUTTON, + FBILLSTATUS, + HEADATTRCODE +} from '../../pmoconst'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { showSuccessInfo, showErrorInfo, showWarningInfo } from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import searchBtnClick from './searchBtnClick'; +import addBtnClick from './addBtnClick'; +import adjustBtnClick from './adjustBtnClick'; +import delBtnClick from './delBtnClick'; +import delBatchBtnClick from './delBatchBtnClick'; +import putClick from './putClick'; +import unputClick from './unputClick'; +import finishClick from './finishClick'; +import finishcancelClick from './finishcancelClick'; +import closeClick from './closeClick'; +import closecancelClick from './closecancelClick'; +import autocloseClick from './autocloseClick'; +import commitBatchBtnClick from './commitBatchBtnClick'; +import unCommitBatchBtnClick from './unCommitBatchBtnClick'; +import uncommitBtnClick from './uncommitBtnClick'; +import commitBtnClick from './commitBtnClick'; +import barCodePrintBtnClick from './barCodePrintBtnClick'; +import printbarCodeBtnClick from './printbarCodeBtnClick'; +import viewverBtnClick from './viewverBtnClick'; +import pickmBtnClick from './pickmBtnClick'; +import pmoresolveBtnClick from './pmoresolveBtnClick'; +import pmoToPutPlanBtnClick from './pmoToPutPlanBtnClick'; +import pmoMosBtnClick from './pmoMosBtnClick'; +import pmoturnBtnClick from './pmoturnBtnClick'; +import pickmrecalBtnClick from './pickmrecalBtnClick'; +import pmopushsfcBtnClick from './pmopushsfcBtnClick'; +import pmoscrapaddBtnClick from './pmoscrapaddBtnClick'; +import pmosnBtnClick from './pmosnBtnClick'; +import pmoactivityBtnClick from './pmoactivityBtnClick'; +import pmoSetAnalysisBtnClick from './pmoSetAnalysisBtnClick'; +import pmodeliverBtnClick from './pmodeliverBtnClick'; +import pmodeliversetBtnClick from './pmodeliversetBtnClick'; +import pmodeliverfillsetBtnClick from './pmodeliverfillsetBtnClick'; +import pmodeliversetbackBtnClick from './pmodeliversetbackBtnClick'; +import pmodeliverbackBtnClick from './pmodeliverbackBtnClick'; +import PMOBatchEdit from '../../pub/batchedit'; +import batchEditSave from './batchEditSave'; +import batchEditServ from '../../pub/batchedit/service/batchEditServ'; +import { ajax, cardCache, toast } from 'nc-lightapp-front'; +const { getDefData, setDefData } = cardCache; +import linkBtnClick from './linkBtnClick'; //单据追溯 +import pscplanBtnClick from './pscplanBtnClick'; //工序委外计划 +import printBtnClick from './printBtnClick'; //打印 +import outputBtnClick from './outputBtnClick'; //输出 +import fileBtnClick from './fileBtnClick'; //附件管理 +import exportTemClick from './exportTemClick'; //导出 +import importClick from './importClick'; //导入 +const cpmohid = HEADATTRCODE.CPMOHID; +const cardUrl = PMO_CARD.cardUrl; +const edit = PMO_CARD.edit; +const searchId = PMO_LIST.searchId; +const tableId = PMO_LIST.tableId; +const dataSource = PMO_LIST.dataSource; +export default function clickBtn(props, id, text, record, index) { + switch (id) { + //刷新 + case PMO_LIST_BUTTON.Refresh: + let currentTab = getDefData(dataSource, 'currentTab'); + currentTab = currentTab ? currentTab : this.state.currentTab; + searchBtnClick.bind(this, currentTab, true, false)(); + break; + //新增 + case PMO_LIST_BUTTON.add: + return addBtnClick(props); + // 删除 + case PMO_LIST_BUTTON.delete: + if (record) { + let del = delBtnClick.bind(this, props, record); + return del(props); + } else { + let delB = delBatchBtnClick.bind(this); + return delB(props); + } + //修改 + case PMO_LIST_BUTTON.editrow: + let edit = adjustBtnClick.bind(this); + return edit(props, record); + //变更 + case PMO_LIST_BUTTON.pmoadjust: + let adjust = adjustBtnClick.bind(this); + return adjust(props, record, true); + + //复制 + case PMO_LIST_BUTTON.copy: + props.pushTo(PMO_CARD.cardUrl, { + status: PMO_CARD.add, + id: record[HEADATTRCODE.CPMOHID].value, + copy: true + }); + return; + //批改 + case PMO_LIST_BUTTON.batchedit: + //判断是否同工厂 + let checkedrows = props.table.getCheckedRows(tableId); + if (!checkedrows || checkedrows.length == 0) { + toast({ content: getLangByResId(this, '50080000-000065'), color: 'warning' }); /* 国际化处理: 选择数据进行操作*/ + return; + } + let lastorg = ''; + for (let i = 0; i < checkedrows.length; i++) { + let curorg = checkedrows[i].data.values[HEADATTRCODE.PK_ORG].value; + let fbillstatus = checkedrows[i].data.values[HEADATTRCODE.FBILLSTATUS].value; + if (lastorg != '' && lastorg != curorg) { + toast({ + content: getLangByResId(this, '50080000-000066'), + color: 'warning' + }); /* 国际化处理: 只有工厂相同的流程生产订单才能进行批改*/ + return; + } + lastorg = curorg; + if (fbillstatus != FBILLSTATUS.free) { + showWarningInfo(getLangByResId(this, '50080000-000067')); /* 国际化处理: 提示,只有自由态流程生产订单才可以批改。*/ + return; + } + } + let pk_group = checkedrows[0].data.values[HEADATTRCODE.PK_GROUP].value; + let pk_org = checkedrows[0].data.values[HEADATTRCODE.PK_ORG].value; + batchEditServ.call( + this, + this.props, + { [HEADATTRCODE.PK_GROUP]: pk_group, [HEADATTRCODE.PK_ORG]: pk_org }, + batchEditSave + ); + return; + //投放 + case PMO_LIST_BUTTON.put: + let put = putClick.bind(this); + return put(props); + //取消投放 + case PMO_LIST_BUTTON.unput: + let unput = unputClick.bind(this); + return unput(props); + //强制完工 + case PMO_LIST_BUTTON.finish: + let finish = finishClick.bind(this); + return finish(props); + //取消完工 + case PMO_LIST_BUTTON.unfinish: + let finishcancel = finishcancelClick.bind(this); + return finishcancel(props); + //强制关闭 + case PMO_LIST_BUTTON.close: + let close = closeClick.bind(this); + return close(props); + //取消关闭 + case PMO_LIST_BUTTON.unclose: + let closecancel = closecancelClick.bind(this); + return closecancel(props); + //自动关闭 + case PMO_LIST_BUTTON.autoclose: + let autoclose = autocloseClick.bind(this); + return autoclose(props); + //提交 + case PMO_LIST_BUTTON.commit: + if (record) { + let commitrow = commitBtnClick.bind(this, props, record); + return commitrow(props); + } else { + let batchcommit = commitBatchBtnClick.bind(this); + return batchcommit(props); + } + //收回 + case PMO_LIST_BUTTON.uncommit: + if (record) { + let uncommitrow = uncommitBtnClick.bind(this, props, record); + return uncommitrow(props); + } else { + let batchuncommit = unCommitBatchBtnClick.bind(this); + return batchuncommit(props); + } + //审批详情 + case PMO_LIST_BUTTON.ApproveInfo: + if (!record) { + let rows = props.table.getCheckedRows(tableId); + if (rows && rows[0] && rows[0].data) { + record = rows[0].data.values; + } + } + this.setState({ + show: true, + billId: record[HEADATTRCODE.CPMOHID].value, + billtype: record[HEADATTRCODE.VTRANTYPECODE].value + }); + break; + //单据追溯 + case PMO_LIST_BUTTON.trace: + let linkQuery = linkBtnClick.bind(this); + return linkQuery(props); + //工序委外计划 + case PMO_LIST_BUTTON.pmopscplan: + let pscplan = pscplanBtnClick.bind(this); + return pscplan(props); + //附件管理 + case PMO_LIST_BUTTON.file: + let file = fileBtnClick.bind(this); + return file(props); + //打印 + case PMO_LIST_BUTTON.print: + let print = printBtnClick.bind(this); + return print(props); + //打印联副产品 + case PMO_LIST_BUTTON.printplanout: + let print4output = printBtnClick.bind(this); + return print4output(props, PMO_LIST.nodekey4planoutput); + //打印工序计划 + case PMO_LIST_BUTTON.printprocedure: + let print4procedure = printBtnClick.bind(this); + return print4procedure(props, PMO_LIST.nodekey4procedure); + //输出 + case PMO_LIST_BUTTON.output: + let output = outputBtnClick.bind(this); + return output(props); + //直接条码打印 + case PMO_LIST_BUTTON.pmobcdirectprint: + let dids = []; + let heads = props.table.getCheckedRows(tableId); + heads.forEach((element) => { + dids.push(element.data.values[HEADATTRCODE.CPMOHID].value); + }); + let dparams = { + billtype: PMO_LIST.billType, + oids: dids + }; + barCodePrintBtnClick.call(this, props, dparams); + break; + //条码打印 + case PMO_LIST_BUTTON.pmobcprint: + let ids = props.table.getCheckedRows(tableId)[0].data.values[HEADATTRCODE.CPMOHID].value; + let params = { + billtype: PMO_LIST.billType, + oids: ids + }; + printbarCodeBtnClick.call(this, props, params); + break; + //查看历史记录 + case PMO_LIST_BUTTON.pmoviewver: + if (record) { + let rowviewver = viewverBtnClick.bind(this); + return rowviewver(props, record); + } else { + let viewver = viewverBtnClick.bind(this); + return viewver(props); + } + //投放计划 + case PMO_LIST_BUTTON.pmotoputplan: + let pmotoputplan = pmoToPutPlanBtnClick.bind(this); + return pmotoputplan(props); + //配套变更建议 + case PMO_LIST_BUTTON.pmoMos: + let pmomos = pmoMosBtnClick.bind(this); + return pmomos(props); + //备料计划 + //case PMO_LIST_BUTTON.pmopickm: + // let pickm = pickmBtnClick.bind(this); + // return pickm(props); + //分次投放 + case PMO_LIST_BUTTON.pmoresolve: + let pmoresolve = pmoresolveBtnClick.bind(this); + return pmoresolve(props); + //产能分流 + case PMO_LIST_BUTTON.pmoturn: + let pmoturn = pmoturnBtnClick.bind(this); + return pmoturn(props); + //备料重算 + case PMO_LIST_BUTTON.pmopickmrecalaction: + let pickmrecal = pickmrecalBtnClick.bind(this); + return pickmrecal(props); + //工序派工 + case PMO_LIST_BUTTON.pmoDispatchlist: + let dispatchlist = pmopushsfcBtnClick.bind(this); + return dispatchlist(props, CONST4SFC.billType4Dispatchlist); + //工序完工 + case PMO_LIST_BUTTON.pmoOperationRep: + let oprep = pmopushsfcBtnClick.bind(this); + return oprep(props, CONST4SFC.billType4Oprep); + //工序转移 + case PMO_LIST_BUTTON.pmoTransfer: + let transfer = pmopushsfcBtnClick.bind(this); + return transfer(props, CONST4SFC.billType4Transfer); + //报废补单 + case PMO_LIST_BUTTON.pmoscrapadd: + let scrapadd = pmoscrapaddBtnClick.bind(this); + return scrapadd(props); + //序列号 + case PMO_LIST_BUTTON.pmosn: + let pmosn = pmosnBtnClick.bind(this); + return pmosn(props); + //作业量 + case PMO_LIST_BUTTON.pmoactivity: + let activity = pmoactivityBtnClick.bind(this); + return activity(props); + //齐套分析 + case PMO_LIST_BUTTON.pmoSetAnalysis: + let setanalysis = pmoSetAnalysisBtnClick.bind(this); + return setanalysis(props); + //生产领料 + case PMO_LIST_BUTTON.pmodeliver: + if (record) { + let rowdeliver = pmodeliverBtnClick.bind(this); + return rowdeliver(props, record); + } else { + let deliver = pmodeliverBtnClick.bind(this); + return deliver(props); + } + //成套领料 + case PMO_LIST_BUTTON.pmodeliverset: + if (record) { + let rowdeliverset = pmodeliversetBtnClick.bind(this); + return rowdeliverset(props, record); + } else { + let deliverset = pmodeliversetBtnClick.bind(this); + return deliverset(props); + } + + //补成套领料 + case PMO_LIST_BUTTON.pmodeliverfillset: + if (record) { + let rowdeliverfillset = pmodeliverfillsetBtnClick.bind(this); + return rowdeliverfillset(props, record); + } else { + let deliverfillset = pmodeliverfillsetBtnClick.bind(this); + return deliverfillset(props); + } + //成套退料 + case PMO_LIST_BUTTON.pmodeliversetback: + if (record) { + let rowdeliversetback = pmodeliversetbackBtnClick.bind(this); + return rowdeliversetback(props, record); + } else { + let deliversetback = pmodeliversetbackBtnClick.bind(this); + return deliversetback(props); + } + //退料处理 + case PMO_LIST_BUTTON.pmodeliverback: + if (record) { + let rowdeliverback = pmodeliverbackBtnClick.bind(this); + return rowdeliverback(props, record); + } else { + let deliverback = pmodeliverbackBtnClick.bind(this); + return deliverback(props); + } + //无备料领料,列表态去掉这个按钮 + // case PMO_LIST_BUTTON.pmounpickmdeliver: + // if (record) { + // let rowunpickmdeliver = pmounpickmdeliverBtnClick.bind(this); + // return rowunpickmdeliver(props, record); + // } else { + // let unpickmdeliver = pmounpickmdeliverBtnClick.bind(this); + // return unpickmdeliver(props); + // } + case PMO_LIST_BUTTON.ExportTem: { + //导出 + let exportTem = exportTemClick.bind(this, props, id); + return exportTem(props); + } + case PMO_LIST_BUTTON.Import: { + //导入 + let importC = importClick.bind(this, props, id); + return importC(props); + } + } +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/closeClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/closeClick.js new file mode 100644 index 00000000..1b82e62d --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/closeClick.js @@ -0,0 +1,72 @@ +/* + * @Author: fengjinga + * @PageInfo: 关闭按钮事件 + */ +import { PMO_LIST, PMO_CARD, PMO_LIST_BUTTON, PMO_CARD_BUTTON, FBILLSTATUS, BODYFBILLSTATUS, HEADATTRCODE, BODYATTRCODE, GRANDATTRCODE } from '../../pmoconst'; +import { ajax, toast } from 'nc-lightapp-front'; +import { + showWarningDialog, + showBatchOprMessage, + showInfoDialog, + showErrorInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { buttonController } from '../viewControl'; +const tableId = PMO_LIST.tableId; +export default function putBtn(props) { + // 获取选中行 + let rows = props.table.getCheckedRows(tableId); + let inforows = []; + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value, + rowid: item.data.rowId + }; + inforows.push(data); + }); + let data = { infos: inforows, pageid: PMO_LIST.pageid }; + let url = PMO_LIST.listClose; + ajax({ + url: url, + data, + success: (res) => { + if (res.success) { + if (res.data) { + if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { + // 成功的index + let sucIndex = []; + rows.forEach((element, index) => { + if (!res.data.errorMessageMap[index]) { + sucIndex.push(element.index); + } + }); + } else { + let succIndex = []; + rows.forEach((element, index) => { + //deleteCacheDataForList(props, tableId, element.data.values[cpmohid].value); + succIndex.push(element.index); + }); + } + buttonController.setListButtonVisiable(props, this.state.currentTab); + if (res.data.sucessVOs) { + res.data.sucessVOs[tableId].rows.map((item, index) => { + item.rowId = item.rowid; + }); + this.props.table.updateTableData(tableId, res.data.sucessVOs[tableId]); + } + showBatchOprMessage( + getLangByResId(this, '50080000-000070'),/* 国际化处理: 强制关闭成功*/ + res.data, + {}, + getLangByResId(this, '50080000-000017')/* 国际化处理: 提示*/ + ); /* 国际化处理: 提示*/ + } else { + toast({content: getLangByResId(this, '50080000-000071'), color: 'error' });/* 国际化处理: 强制关闭失败!*/ + } + } /* else { + } */ + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/closecancelClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/closecancelClick.js new file mode 100644 index 00000000..4366358e --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/closecancelClick.js @@ -0,0 +1,71 @@ +/* + * @Author: fengjinga + * @PageInfo: 取消关闭按钮事件 + */ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { ajax, toast } from 'nc-lightapp-front'; +import { + showWarningDialog, + showBatchOprMessage, + showInfoDialog, + showErrorInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { buttonController } from '../viewControl'; +const tableId = PMO_LIST.tableId; +export default function putBtn(props) { + // 获取选中行 + let rows = props.table.getCheckedRows(tableId); + let inforows = []; + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value, + rowid: item.data.rowId + }; + inforows.push(data); + }); + let data = { infos: inforows, pageid: PMO_LIST.pageid }; + let url = PMO_LIST.listCloseCancel; + ajax({ + url: url, + data, + success: (res) => { + if (res.success) { + if (res.data) { + if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { + // 成功的index + let sucIndex = []; + rows.forEach((element, index) => { + if (!res.data.errorMessageMap[index]) { + sucIndex.push(element.index); + } + }); + } else { + let succIndex = []; + rows.forEach((element, index) => { + //deleteCacheDataForList(props, tableId, element.data.values[cpmohid].value); + succIndex.push(element.index); + }); + } + buttonController.setListButtonVisiable(props, this.state.currentTab); + if (res.data.sucessVOs) { + res.data.sucessVOs[tableId].rows.map((item, index) => { + item.rowId = item.rowid; + }); + this.props.table.updateTableData(tableId, res.data.sucessVOs[tableId]); + } + showBatchOprMessage( + getLangByResId(this, '50080000-000068'),/* 国际化处理: 取消关闭成功*/ + res.data, + {}, + getLangByResId(this, '50080000-000017')/* 国际化处理: 提示*/ + ); /* 国际化处理: 提示*/ + } else { + toast({ content: getLangByResId(this, '50080000-000069'), color: 'error' });/* 国际化处理: 取消关闭失败!*/ + } + } + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/commitBatchBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/commitBatchBtnClick.js new file mode 100644 index 00000000..ca620e41 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/commitBatchBtnClick.js @@ -0,0 +1,83 @@ +/* + * @Author: fengjinga + * @PageInfo: 批量提交按钮事件 + * @Date: 2018-04-19 10:36:58 + * @Last Modified by: fengjinga + * @Last Modified time: 2019-01-25 13:39:32 + */ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { ajax, toast } from 'nc-lightapp-front'; +import { showBatchOprMessage } from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { updateCacheDataForList } from '../../../../../mmpub/mmpub/pub/cache/cacheDataManager'; +import { buttonController } from '../viewControl'; +let tableId = PMO_LIST.tableId; +export default function clickCommitBtn(props, assign) { + // 获取选中行 + let _this = this; + let rows = props.table.getCheckedRows(tableId); + // 如果没有选中行,则提示并返回,不进行任何操作 + if (rows.length <= 0) { + toast({ + color: 'warning', + content: getLangByResId(this, '50080000-000072')/* 国际化处理: 请选择需要提交的数据!*/ + }); + return; + } + // 获取待删除表格行的行号 + let indexs = rows.map((item) => { + return item.index; + }); + // 执行删除操作 + let infoRows = []; + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value + }; + infoRows.push(data); + }); + // 拼装json + let data = { + infos: infoRows, + pageid: PMO_LIST.pageid + }; + if (assign) { + data['assign'] = JSON.stringify(assign); + } + // 发送请求 + ajax({ + url: PMO_LIST.commitURL, + data: data, + success: (res) => { + if ( + res.data && + res.data.workflow && + (res.data.workflow == 'approveflow' || res.data.workflow == 'workflow') + ) { + //缓存当前数据 + _this.commitInfo = { + isBatch: true, + record: null, + index: null + }; + _this.setState({ + compositedata: res.data, + compositedisplay: true + }); + return; + } + if (res.success) { + showBatchOprMessage( + getLangByResId(this, '50080000-000073'),/* 国际化处理: 提交*/ + res.data, + {}, + getLangByResId(this, '50080000-000073')/* 国际化处理: 提交*/ + ); /* 国际化处理: 提交成功*/ + //更新列表上的数据 + updateCacheDataForList(props, tableId, HEADATTRCODE.CPMOHID, res.data); + buttonController.setListButtonVisiable(props, this.state.currentTab); + } + } + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/commitBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/commitBtnClick.js new file mode 100644 index 00000000..66135eac --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/commitBtnClick.js @@ -0,0 +1,72 @@ +/* + * @Author: fengjinga + * @PageInfo: 提交按钮事件 + * @Date: 2018-04-19 10:36:58 + * @Last Modified by: fengjinga + * @Last Modified time: 2019-01-03 16:00:36 + */ +import { PMO_LIST, FBILLSTATUS, HEADATTRCODE } from '../../pmoconst'; +import { ajax } from 'nc-lightapp-front'; +import { showSuccessInfo, showErrorInfo, showWarningInfo } from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { updateCacheDataForList } from '../../../../../mmpub/mmpub/pub/cache/cacheDataManager'; +import { buttonController } from '../viewControl'; +let tableId = PMO_LIST.tableId; +export default function clickCommitBtn(props, record, index, assign) { + let _this = this; + let numberindex = record.numberindex.value; + let pk = record[HEADATTRCODE.CPMOHID].value; + let ts = record[HEADATTRCODE.TS].value; + let fbillstatus = record[HEADATTRCODE.FBILLSTATUS].value; + if (fbillstatus != FBILLSTATUS.free && fbillstatus != FBILLSTATUS.unapproved) { + showWarningInfo(getLangByResId(this, '50080000-000026')/* 国际化处理: 请选择状态为自由的数据!*/ + ); + return; + } + // 执行操作 + let infoRows = []; + let datas = { + id: pk, + ts: ts + }; + infoRows.push(datas); + // 拼装json + let data = { + infos: infoRows, + pageid: PMO_LIST.pageid + }; + if (assign) { + data['assign'] = JSON.stringify(assign); + } + ajax({ + url: PMO_LIST.commitURL, + data: data, + success: (res) => { + if ( + res.data && + res.data.workflow && + (res.data.workflow == 'approveflow' || res.data.workflow == 'workflow') + ) { + //缓存当前数据 + this.commitInfo = { + isBatch: false, + record: record, + index: index + }; + this.setState({ + compositedata: res.data, + compositedisplay: true + }); + return; + } + if (res.success) { + //更新列表上的数据 + updateCacheDataForList(props, tableId, HEADATTRCODE.CPMOHID, res.data, numberindex - 1); + buttonController.setListButtonVisiable(props, this.state.currentTab); + showSuccessInfo(getLangByResId(this, '50080000-000027'));/* 国际化处理: 提交成功!*/ + } else { + showErrorInfo(getLangByResId(this, '50080000-000074')); /* 国际化处理: 提交失败!*//* 国际化处理: 提交失败!*/ + } + } + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/commonSearch.js b/src/mmpac/mmpac/pmo/list/btnclicks/commonSearch.js new file mode 100644 index 00000000..6c70b108 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/commonSearch.js @@ -0,0 +1,108 @@ +/* + * @Author: fengjinga + * @PageInfo: 查询功能描述 + * @Date: 2018-05-24 11:30:23 + * @Last Modified by: fengjinga + * @Last Modified time: 2022-05-24 19:30:28 + */ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { ajax, cacheTools, cardCache } from 'nc-lightapp-front'; +import { transtypeUtils } from '../../../../../mmpub/mmpub/pub/tool'; +import { showSuccessInfo, showErrorInfo, showWarningInfo } from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { buttonController } from '../viewControl'; +const { getDefData, setDefData } = cardCache; +const tableId = PMO_LIST.tableId; +const searchId = PMO_LIST.searchId; +const dataSource = PMO_LIST.dataSource; +const pageid = PMO_LIST.pageid; +const tabNumKey = PMO_LIST.tabNum; +export default function commonSerach(tabCode, searchVal, refresh, searchFlag, loadFlag) { + if (typeof (loadFlag) == 'undefined') { + loadFlag = false; + } + let pageInfo = this.props.table.getTablePageInfo(tableId); //分页信息 + let queryInfo = this.props.search.getQueryInfo(searchId, false); + //获取simpletable的页面配置信息 + queryInfo.pageInfo = pageInfo; + //如果searchVal有值说明是点击查询进入,没有值说明是点击翻页过来的,需要从缓存中获取 + if (searchVal) { + queryInfo.querycondition = searchVal; + } else { + if (getDefData(dataSource, 'searchVal')) { + queryInfo.querycondition = getDefData(dataSource, 'searchVal'); + } + } + queryInfo = transtypeUtils.beforeSearch.call(this, queryInfo, HEADATTRCODE.CTRANTYPEID); + if (refresh || searchFlag) { + setDefData(dataSource, 'searchVal', queryInfo.querycondition); + cacheTools.set('searchVal', queryInfo.querycondition); + } + let data = { + queryInfo: queryInfo, + pageCode: pageid, //页面编码 + currentTab: tabCode //当前页签编码 + }; + //获取查询模板信息 + ajax({ + url: PMO_LIST.queryListURL, + data, + success: (res) => { + if (res.success) { + if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { + this.props.dealFormulamsg( + res.formulamsg //参数一:返回的公式对象 + ); + } + if (res.data === undefined || res.data === null) { + this.props.table.setAllTableData(tableId, { rows: [] }); + this.setState({ + toCommitNum: '0', + approvingNum: '0', + executingNum: '0' + }); + setDefData(dataSource, tabNumKey, { + toCommitNum: '0', + approvingNum: '0', + executingNum: '0' + }); + } else { + let toCommitNum; // 未提交数量 + let approvingNum; // 审批中数量 + let executingNum; //执行中数量 + if (res.data.tabNum) { + toCommitNum = res.data.tabNum.toCommit; + approvingNum = res.data.tabNum.approving; + executingNum = res.data.tabNum.executing; + } + setDefData(dataSource, tabNumKey, { + toCommitNum: toCommitNum, + approvingNum: approvingNum, + executingNum: executingNum + }); + this.setState( + { + toCommitNum: toCommitNum, + approvingNum: approvingNum, + executingNum: executingNum + }); + let currentTab = res.data.currentTab; + let rowsData = { rows: [] }; + if (res.data.currentGrid && res.data.currentGrid[tableId]) { + rowsData = res.data.currentGrid[tableId]; + } + this.props.table.setAllTableData(tableId, rowsData); + } + if (refresh && !loadFlag) { + showSuccessInfo(getLangByResId(this, '50080000-000016'));/* 国际化处理: 提示,刷新成功!*/ + } + if (searchFlag && !loadFlag) { + this.searchflag = true; + buttonController.setListButton4Query(this.props); + showSuccessInfo(getLangByResId(this, '50080000-000075'));/* 国际化处理: 提示,查询成功!*/ + } + } + buttonController.setListButtonVisiable(this.props, null); + } + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/delBatchBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/delBatchBtnClick.js new file mode 100644 index 00000000..307daee4 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/delBatchBtnClick.js @@ -0,0 +1,112 @@ +/* + * @Author: fengjinga + * @PageInfo: 删除按钮事件 + * @Date: 2018-04-19 10:36:58 + * @Last Modified by: fengjinga + * @Last Modified time: 2022-03-31 14:11:35 + */ +import { PMO_LIST, PMO_CARD, HEADATTRCODE } from '../../pmoconst'; +import { ajax, promptBox } from 'nc-lightapp-front'; +import { buttonController } from '../viewControl'; +import { + showWarningDialog, + showBatchOprMessage, + showInfoDialog, + showErrorInfo, + showWarningInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +let tableId = PMO_LIST.tableId; +let cpmohid = HEADATTRCODE.CPMOHID; + +export default function clickDelBtn(props) { + // 获取选中行 + let rows = props.table.getCheckedRows(tableId); + // 如果没有选中行,则提示并返回,不进行任何操作 + if (rows.length <= 0) { + showWarningInfo(getLangByResId(this, '50080000-000076'));/* 国际化处理: 选择需要删除的数据!*/ + return; + } + promptBox({ + color: 'warning', // 提示类别默认"success", "success"/"info"/"warning"/"danger",非必输 + title: getLangByResId(this, '50080000-000077'), // 提示标题, 默认不同类别下分别为:已成功/帮助信息/请注意/出错啦,非必输/* 国际化处理: 确认删除,已成功,帮助信息,请注意,出错啦,提示标题,默认不同类别下分别为,已成功,帮助信息,请注意,出错啦,非必输*//* 国际化处理: 确认取消*/ + content: getLangByResId(this, '50080000-000078'), // 提示内容,非必输/* 国际化处理: 是否确认要删除?,提示内容,非必输*//* 国际化处理: 是否确认要取消?*/ + noFooter: false, // 是否显示底部按钮(确定、取消),默认显示(false),非必输 + noCancelBtn: false, // 是否显示取消按钮,,默认显示(false),非必输 + beSureBtnName: getLangByResId(this, '50080000-000005'), // 确定按钮名称, 默认为getLangByResId(this, '50080000-000005'),非必输/* 国际化处理: 确定,确定,确定按钮名称,默认为,非必输*//* 国际化处理: 确定*/ + cancelBtnName: getLangByResId(this, '50080000-000006'), // 取消按钮名称, 默认为getLangByResId(this, '50080000-000006'),非必输/* 国际化处理: 取消,取消,取消按钮名称,默认为,非必输*//* 国际化处理: 取消*/ + beSureBtnClick: deleteSureEvent.bind(this, props, rows) // 确定按钮点击调用函数,非必输 + }) +} +function deleteSureEvent(props, rows) { + //自己的逻辑 + // 获取待删除表格行的行号 + //console.log("批量删除结果rows" + JSON.stringify(rows)); + let indexs = rows.map((item) => { + return item.index; + }); + // 执行删除操作 + let delRows = []; + + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value + }; + delRows.push(data); + }); + //console.log("批量删除结果delRows" + JSON.stringify(delRows)); + // 拼装json + let data = { + deleteInfos: delRows + }; + // 发送请求 + ajax({ + url: PMO_LIST.batchDeleteURL, + data: data, + success: (res) => { + //console.log("批量删除结果" + JSON.stringify(res)); + if (res.success) { + if (res.data) { + if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { + // 成功的index + let sucIndex = []; + rows.forEach((element, index) => { + if (!res.data.errorMessageMap[index]) { + sucIndex.push(element.index); + deleteCacheDataForList(props, tableId, element.data.values[cpmohid].value); + } + }); + props.table.deleteTableRowsByIndex(tableId, sucIndex); + } else { + let succIndex = []; + rows.forEach((element, index) => { + deleteCacheDataForList(props, tableId, element.data.values[cpmohid].value); + succIndex.push(element.index); + }); + props.table.deleteTableRowsByIndex(tableId, succIndex); + } + buttonController.setListButtonVisiable(props, this.state.currentTab); + showBatchOprMessage( + getLangByResId(this, '50080000-000079'),/* 国际化处理: 删除成功*/ + res.data, + {}, + getLangByResId(this, '50080000-000077')/* 国际化处理: 删除*/ + ); /* 国际化处理: 提示*/ + } else { + showErrorInfo(getLangByResId(this, '50080000-000080'));/* 国际化处理: 删除失败!*/ + } + } /* else { + } */ + } + }); + function deleteCacheDataForList(props, tableId, pkvalue) { + if (pkvalue instanceof Array) { + pkvalue.forEach((element) => { + props.table.deleteCacheId(tableId, element); + }); + } else { + props.table.deleteCacheId(tableId, pkvalue); + } + } +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/delBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/delBtnClick.js new file mode 100644 index 00000000..9f66e243 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/delBtnClick.js @@ -0,0 +1,41 @@ +/* + * @Author: fengjinga + * @PageInfo: 删除按钮事件 + */ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { ajax, toast } from 'nc-lightapp-front'; +import { buttonController } from '../viewControl'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { showSuccessInfo } from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +const tableId = PMO_LIST.tableId; +export default function clickDelBtn(props, record) { + let numberindex = record.numberindex.value; + let pk = record[HEADATTRCODE.CPMOHID].value; + let ts = record.ts.value; + ajax({ + url: PMO_LIST.deleteURL, + data: { + id: pk, + ts: ts + }, + success: (res) => { + // 删除成功之后,前台删除数据 + props.table.deleteTableRowsByIndex(tableId, numberindex - 1); + deleteCacheDataForList(props, tableId, pk); + //按钮触发 + buttonController.setListButtonVisiable(props, this.state.currentTab); + showSuccessInfo(getLangByResId(this, '50080000-000030')); /* 国际化处理: 删除成功!*/ + } + }); +} + +function deleteCacheDataForList(props, tableId, pkvalue) { + if (pkvalue instanceof Array) { + pkvalue.forEach((element) => { + props.table.deleteCacheId(tableId, element); + }); + } else { + props.table.deleteCacheId(tableId, pkvalue); + } +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/exportTemClick b/src/mmpac/mmpac/pmo/list/btnclicks/exportTemClick new file mode 100644 index 00000000..ff4a4703 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/exportTemClick @@ -0,0 +1,30 @@ +/* + * @Author: zhangjingchuan + * @PageInfo: 流程生产订单导出按钮事件 + * @Date: 2022-01-22 20:00:00 + * @Last Modified by: zhangjingchuan + * @Last Modified time: 2022-09-07 15:50:50 + */ +//常量 +import { PMO_LIST , HEADATTRCODE} from '../../pmoconst'; + +export default function exportTemClick(props, id) { + console.log('List buttonClick-exportTemClick'); + let selectedrows = this.props.table.getCheckedRows(PMO_LIST.tableId); + let cpomids = []; + if (selectedrows.length > 0) { + selectedrows.forEach((item) => { + cpomids.push(item.data.values[HEADATTRCODE.CPMOHID].value); + }); + } + //固定写法,必须这么写 + this.setState( + { + excelExportShow: true, + selectedPKS: cpomids + }, + () => { + props.modal.show('exportFileModal'); + } + ); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/fileBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/fileBtnClick.js new file mode 100644 index 00000000..4450eea9 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/fileBtnClick.js @@ -0,0 +1,32 @@ +/* + * @Author: fnegjinga + * @PageInfo: 附件管理按钮事件 + * @Date: 2018-04-19 10:36:58 + * @Last Modified by: fengjinga + * @Last Modified time: 2019-02-13 16:12:27 + */ +import { PMO_LIST, FBILLSTATUS,HEADATTRCODE } from '../../pmoconst'; +import { ajax, toast } from 'nc-lightapp-front'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +let tableId = PMO_LIST.tableId; //'head'; + +export default function fileBtnClick(props) { + // 获取选中行 + let rows = props.table.getCheckedRows(tableId); + // 如果没有选中行,则提示并返回,不进行任何操作 + if (rows.length <= 0) { + toast({ + color: 'warning', + content: getLangByResId(this, '50080000-000082')/* 国际化处理: 请选择需要操作的数据!*/ + }); + return; + } + let billId = rows[0].data.values[HEADATTRCODE.CPMOHID].value; + let vbillcode = rows[0].data.values[HEADATTRCODE.VBILLCODE].value; + let flag = this.state.showUploader; + this.setState({ + billId: billId, + vbillcode: vbillcode, + showUploader: !flag + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/finishClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/finishClick.js new file mode 100644 index 00000000..e2cae85a --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/finishClick.js @@ -0,0 +1,71 @@ +/* + * @Author: fengjinga + * @PageInfo: 完工按钮事件 + */ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { ajax } from 'nc-lightapp-front'; +import { + showWarningDialog, + showBatchOprMessage, + showInfoDialog, + showErrorInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { buttonController } from '../viewControl'; +const tableId = PMO_LIST.tableId; +export default function putBtn(props) { + // 获取选中行 + let rows = props.table.getCheckedRows(tableId); + let inforows = []; + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value, + rowid: item.data.rowId + }; + inforows.push(data); + }); + let data = { infos: inforows, pageid: PMO_LIST.pageid }; + let url = PMO_LIST.listFinish; + ajax({ + url: url, + data, + success: (res) => { + if (res.success) { + if (res.data) { + if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { + // 成功的index + let sucIndex = []; + rows.forEach((element, index) => { + if (!res.data.errorMessageMap[index]) { + sucIndex.push(element.index); + } + }); + } else { + let succIndex = []; + rows.forEach((element, index) => { + succIndex.push(element.index); + }); + } + buttonController.setListButtonVisiable(props, this.state.currentTab); + if (res.data.sucessVOs) { + res.data.sucessVOs[tableId].rows.map((item, index) => { + item.rowId = item.rowid; + }); + this.props.table.updateTableData(tableId, res.data.sucessVOs[tableId]); + } + showBatchOprMessage( + getLangByResId(this, '50080000-000085'),/* 国际化处理: 强制完工成功*/ + res.data, + {}, + getLangByResId(this, '50080000-000017')/* 国际化处理: 提示*/ + ); /* 国际化处理: 提示*/ + } else { + showErrorInfo(getLangByResId(this, '50080000-000086'));/* 国际化处理: 强制完工失败!*/ + } + } /* else { + } */ + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/finishcancelClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/finishcancelClick.js new file mode 100644 index 00000000..9f31c74a --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/finishcancelClick.js @@ -0,0 +1,71 @@ +/* + * @Author: fengjinga + * @PageInfo: 取消完工按钮事件 + */ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { ajax } from 'nc-lightapp-front'; +import { + showWarningDialog, + showBatchOprMessage, + showInfoDialog, + showErrorInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { buttonController } from '../viewControl'; +const tableId = PMO_LIST.tableId; +export default function finishcancelBtn(props) { + // 获取选中行 + let rows = props.table.getCheckedRows(tableId); + let inforows = []; + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value, + rowid: item.data.rowId + }; + inforows.push(data); + }); + let data = { infos: inforows, pageid: PMO_LIST.pageid }; + let url = PMO_LIST.listFinishCancel; + ajax({ + url: url, + data, + success: (res) => { + if (res.success) { + if (res.data) { + if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { + // 成功的index + let sucIndex = []; + rows.forEach((element, index) => { + if (!res.data.errorMessageMap[index]) { + sucIndex.push(element.index); + } + }); + } else { + let succIndex = []; + rows.forEach((element, index) => { + //deleteCacheDataForList(props, tableId, element.data.values[cpmohid].value); + succIndex.push(element.index); + }); + } + buttonController.setListButtonVisiable(props, this.state.currentTab); + if (res.data.sucessVOs) { + res.data.sucessVOs[tableId].rows.map((item, index) => { + item.rowId = item.rowid; + }); + this.props.table.updateTableData(tableId, res.data.sucessVOs[tableId]); + } + showBatchOprMessage( + getLangByResId(this, '50080000-000083'),/* 国际化处理: 取下完工成功*/ + res.data, + {}, + getLangByResId(this, '50080000-000017')/* 国际化处理: 提示*/ + ); /* 国际化处理: 提示*/ + } else { + showErrorInfo(getLangByResId(this, '50080000-000084'));/* 国际化处理: 取消完工失败!*/ + } + } + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/importClick b/src/mmpac/mmpac/pmo/list/btnclicks/importClick new file mode 100644 index 00000000..c9da17c4 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/importClick @@ -0,0 +1,19 @@ +/* + * @Author: zhangjingchuan + * @PageInfo: 流程生产订单-导入按钮事件 + * @Date: 2022-01-21 09:00:00 + * @Last Modified by: zhangjingchuan + * @Last Modified time: 2022-10-24 17:44:06 + */ +export default function importClick(props, id) { + console.log('List buttonClick-importClick'); + + afterImport.call(this, props, true, (afterRet) => {}); +} + +//导入操作后事件 +function afterImport(props, success, callback) { + console.log('List buttonClick-importClick-afterImport'); + //导入成功后的回调暂时不知道干什么 + callback.call(this); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/linkBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/linkBtnClick.js new file mode 100644 index 00000000..52e7edf0 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/linkBtnClick.js @@ -0,0 +1,13 @@ +/* + * @Author: fengjinga + * @PageInfo: 单据追溯 + * @Date: 2018-04-19 10:36:58 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-06-26 16:40:47 + */ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +export default function linkBtnClick(props) { + // 获取选中行 + let pk = this.props.table.getCheckedRows(PMO_LIST.tableId)[0].data.values[HEADATTRCODE.CPMOHID].value; + this.setState({ pk: pk, showTrack: true }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/outputBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/outputBtnClick.js new file mode 100644 index 00000000..62926835 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/outputBtnClick.js @@ -0,0 +1,37 @@ +/* + * 输出 + * @Author: fengjinga + * @Date: 2018-07-04 15:06:44 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-10-22 15:50:54 + */ + +import { toast, output } from 'nc-lightapp-front'; +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; + +export default function buttonClick(props) { + // 获取选中行 + let seldatas = props.table.getCheckedRows(PMO_LIST.tableId); + // 如果没有选中行,则提示并返回,不进行任何操作 + if (seldatas.length <= 0) { + toast({ + color: 'warning', + content: getLangByResId(this, '50080000-000087')/* 国际化处理: 请选择要输出的订单!*/ + }); + return; + } + let pks = []; + seldatas.map((item) => { + pks.push(item.data.values[HEADATTRCODE.CPMOHID].value); + }); + output({ + url: PMO_LIST.printURL, + data: { + funcode: PMO_LIST.appcode, //小应用编码 + nodekey: PMO_LIST.pnodekey, //模板节点标识 + oids: pks, + outputType: PMO_LIST.outputType + } // 功能节点的数据主键 + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pageInfoClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pageInfoClick.js new file mode 100644 index 00000000..743b953c --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pageInfoClick.js @@ -0,0 +1,40 @@ +/* + * @Author: fengjinga + * @PageInfo: 翻页按钮处理方法 + * @Date: 2018-05-24 11:30:54 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-08-23 10:34:50 + */ + +import { ajax } from 'nc-lightapp-front'; +import { PMO_LIST } from '../../pmoconst'; + +export default function (props, config, pks) { + //将当前页签放到state中 + let pageInfo = this.props.table.getTablePageInfo(PMO_LIST.tableId); + let data = { + pks: pks, + pagecode: PMO_LIST.pageid + }; + //得到数据渲染到页面 + let _this = this; + ajax({ + url: PMO_LIST.queryPageURL, + data: data, + success: function (res) { + let { success, data } = res; + if (success) { + if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { + props.dealFormulamsg( + res.formulamsg //参数一:返回的公式对象 + ); + } + if (data) { + props.table.setAllTableData(PMO_LIST.tableId, data[PMO_LIST.tableId]); + } else { + props.table.setAllTableData(PMO_LIST.tableId, { rows: [] }); + } + } + } + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pickmBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pickmBtnClick.js new file mode 100644 index 00000000..3625caaa --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pickmBtnClick.js @@ -0,0 +1,34 @@ +/* + * @Author: fengjinga + * @PageInfo: 备料计划 + * @Date: 2018-04-19 10:35:13 + * @Last Modified by: fengjinga + * @Last Modified time: 2019-03-15 13:18:42 + */ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { ajax } from 'nc-lightapp-front'; +import { showSuccessInfo, showErrorInfo, showWarningInfo } from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +const tableId = PMO_LIST.tableId; +export default function pickm(props) { + let checkedrows = props.table.getCheckedRows(tableId); + if (checkedrows.length == 0) { + showWarningInfo(getLangByResId(this, '50080000-000017'), getLangByResId(this, '50080000-000088'));/* 国际化处理: 提示,请选择数据操作!*/ + return; + } + let pkJson = {}; + let ids = []; + checkedrows.map((item) => { + let id = item.data.values[HEADATTRCODE.CPMOHID].value; + if (id) { + ids.push(id); + } + }); + pkJson[HEADATTRCODE.CPMOHID] = ids; + cacheTools.set("55A2To55A3Json", pkJson); + props.openTo(null, { + pagecode: '50080102_list', + appcode: '50080102', + billtype: PMO_LIST.billType + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pickmrecalBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pickmrecalBtnClick.js new file mode 100644 index 00000000..d232a1f9 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pickmrecalBtnClick.js @@ -0,0 +1,71 @@ +/** + * 流程生产订单备料重算 + */ +import { ajax } from 'nc-lightapp-front'; +import { + showWarningDialog, + showBatchOprMessage, + showErrorInfo, + showInfoInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { buttonController } from '../viewControl'; +const tableId = PMO_LIST.tableId; +export default function pickmrecal(props) { + showWarningDialog(getLangByResId(this, '50080000-000040'), getLangByResId(this, '50080000-000041'), {/* 国际化处理: 确认信息,生产订单备料重算后备料计划数据将变更?*/ + /* 国际化处理: 生产订单备料重算后备料计划数据将变更?*/ + beSureBtnClick: pickmrecalcation.bind(this, props) + }); +} +function pickmrecalcation(props) { + let rows = props.table.getCheckedRows(tableId); + let inforows = []; + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value + }; + inforows.push(data); + }); + let data = { infos: inforows,pageid: PMO_LIST.pageid }; + let url = PMO_LIST.listpickmrecal; + ajax({ + url: url, + data, + success: (res) => { + if (res.success) { + if (res.data) { + if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { + // 成功的index + let sucIndex = []; + rows.forEach((element, index) => { + if (!res.data.errorMessageMap[index]) { + sucIndex.push(element.index); + } + }); + } else { + let succIndex = []; + rows.forEach((element, index) => { + succIndex.push(element.index); + }); + } + buttonController.setListButtonVisiable(props, this.state.currentTab); + showBatchOprMessage( + getLangByResId(this, '50080000-000042'),/* 国际化处理: 操作成功*/ + res.data, + {}, + getLangByResId(this, '50080000-000017')/* 国际化处理: 提示*/ + ); /* 国际化处理: 提示*/ + if (res.data.data) { + showInfoInfo(getLangByResId(this, '50080000-000042')+','+res.data.data); + } + } else { + showErrorInfo(getLangByResId(this, '50080000-000043'));/* 国际化处理: 操作失败!*/ + } + } + } + }); +} + + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmoMosBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmoMosBtnClick.js new file mode 100644 index 00000000..73313b7e --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmoMosBtnClick.js @@ -0,0 +1,38 @@ +/* + * 配套变更建议 + */ +import { ajax } from 'nc-lightapp-front'; +import { PMO_LIST, PMO_CARD, HEADATTRCODE, BODYATTRCODE } from '../../pmoconst'; +import { headCheckedRow } from '../util/headSelectedUtils'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +export default function pmomos(props) { + let data = headCheckedRow.call(this, this.props); + let infos = data.infos; + let ids = []; + if (infos) { + infos.map((item, index) => { + ids.push(item.id); + }); + } + ajax({ + url: PMO_LIST.checkMosURL, + data: { pks: ids }, + success: (res) => { + if (res.success) { + if (res.data) { + let params = { cmoids: res.data, pageCode: PMO_LIST.pmoslistpage }; + this.props.openTo(null, { + transfer: '55A2toMo', + pagecode: PMO_LIST.pmoslistpage, + appcode: PMO_LIST.pmosappcode, + vsrcAppcode: this.props.getAppCode(), + channelAddress: 'list', + status: PMO_CARD.browse, + '55A2toMoParam': JSON.stringify(params) + }); + } + } + } + }); + +} \ No newline at end of file diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmoSetAnalysisBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmoSetAnalysisBtnClick.js new file mode 100644 index 00000000..01d4f7b8 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmoSetAnalysisBtnClick.js @@ -0,0 +1,21 @@ +/** + * 齐套分析 + */ +import { ajax, toast } from 'nc-lightapp-front'; +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { setAnalysisExectueServ } from '../../../../../mmpub/mmpub/setanalysis/list/util'; +const tableId = PMO_LIST.tableId; +export default function setanalysis(props) { + let checkedrows = props.table.getCheckedRows(tableId); + if (checkedrows.length == 0) { + toast({ content: getLangByResId(this, '50080000-000089'), color: 'warning' });/* 国际化处理: 请选择要操作的数据*/ + return; + } + let ids = []; + checkedrows.map((item) => { + ids.push(item.data.values[HEADATTRCODE.CPMOHID].value); + }); + setAnalysisExectueServ.call(this, this.props, 1, ids); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmoToPutPlanBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmoToPutPlanBtnClick.js new file mode 100644 index 00000000..bb996a61 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmoToPutPlanBtnClick.js @@ -0,0 +1,38 @@ +/* + * 投放计划 + */ +import { ajax } from 'nc-lightapp-front'; +import { PMO_LIST, PMO_CARD } from '../../pmoconst'; +import { headCheckedRow } from '../util/headSelectedUtils'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +export default function pmotoputplan(props) { + let data = headCheckedRow.call(this, this.props); + let infos = data.infos; + let ids = []; + if (infos) { + infos.map((item, index) => { + ids.push(item.id); + }); + } + ajax({ + url: PMO_LIST.checkPutPlanURL, + data: { pks: ids }, + success: (res) => { + if (res.success) { + if (res.data) { + let params = { cmoids: res.data, pageCode: PMO_LIST.ppplistpage }; + this.props.openTo(null, { + transfer: '55A2to55A7', + pagecode: PMO_LIST.ppplistpage, + appcode: PMO_LIST.pppappcode, + vsrcAppcode: this.props.getAppCode(), + channelAddress: 'list', + status: PMO_CARD.browse, + '55A2to55A7Param': JSON.stringify(params) + }); + } + } + } + }); + +} \ No newline at end of file diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmoactivityBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmoactivityBtnClick.js new file mode 100644 index 00000000..9c437cbf --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmoactivityBtnClick.js @@ -0,0 +1,53 @@ +/* + * @Author: fengjinga + * @PageInfo: 作业量维护按钮处理 + * @Date: 2018-04-19 10:34:18 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-08-10 15:00:31 + */ +import { ajax, toast } from 'nc-lightapp-front'; +import { PMO_LIST, PMO_CARD, HEADATTRCODE } from '../../pmoconst'; +import { buttonController } from '../viewControl'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +const tableId = PMO_LIST.tableId; +export default function pmoactivityBtn(props) { + let checkedrows = props.table.getCheckedRows(tableId); + if (checkedrows.length == 0) { + toast({ content: getLangByResId(this, '50080000-000089'), color: 'warning' });/* 国际化处理: 请选择要操作的数据*/ + return; + } + let inforows = []; + checkedrows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value + }; + inforows.push(data); + }); + let data = { infos: inforows }; + ajax({ + url: PMO_LIST.pmoActivityURL, + data, + success: (res) => { + let pks = []; + checkedrows.map((item) => { + let pk = item.data.values[HEADATTRCODE.CPMOHID].value; + if (pk) { + pks.push(pk); + } + }); + let params = { [HEADATTRCODE.CPMOHID]: pks }; + this.props.openTo(null, { + pagecode: PMO_LIST.card4activity, + appcode: PMO_LIST.appcode4activity, + vsrcAppcode: PMO_LIST.appcode, + vsrctype: PMO_LIST.billType, + channelAddress: 'list', + status: PMO_CARD.edit, + '55A2To55A8ID': JSON.stringify(params) + }); + } + }); + +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliverBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliverBtnClick.js new file mode 100644 index 00000000..cba67d7f --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliverBtnClick.js @@ -0,0 +1,69 @@ +/* + * @Author: fengjinga + * @PageInfo: 生产领料按钮处理 + * @Date: 2018-04-19 10:34:18 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-08-10 15:00:31 + */ +import { ajax, cacheTools } from 'nc-lightapp-front'; +import { PMO_LIST, URL, HEADATTRCODE, BODYATTRCODE } from '../../pmoconst'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { + showWarningInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +const tableId = PMO_LIST.tableId; +export default function pmodeliverBtn(props, record) { + let checkedrows = []; + if (record) { + let singledata = { data: record }; + checkedrows.push(singledata); + } else { + checkedrows = props.table.getCheckedRows(tableId); + if (checkedrows.length == 0) { + showWarningInfo(getLangByResId(this, '50080000-000046'));/* 国际化处理: 请选择需要处理的数据!*/ + return; + } + } + let ids = []; + checkedrows.forEach((item) => { + let id = item.data.values[HEADATTRCODE.CPMOHID].value; + if (id) { + ids.push(id); + } + }); + let data = { [HEADATTRCODE.CPMOHID]: ids } + ajax({ + url: URL.pmopickmURL, + data: data, + success: (res) => { + if (res.success) { + if (res.data) { + let paramdata = { + cpickmids: res.data + } + ajax({ + url: URL.checkToDeliver, + data: paramdata, + success: (res) => { + if (res.success) { + let deliverParam = { + cpickmbids: res.data.pks, + deliverType: 1//1,领料,2,成套领料,3,补成套领料 + }; + cacheTools.set('pickmDeliverParam', deliverParam); + props.openTo(null, { + appcode: '50080105', + pagecode: '5008010501', + type: '55A3' + }); + + } + } + }); + } + } + } + }); + +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliverbackBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliverbackBtnClick.js new file mode 100644 index 00000000..ffc04bd6 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliverbackBtnClick.js @@ -0,0 +1,54 @@ +/* + * @Author: fengjinga + * @PageInfo: 退料处理按钮处理 + * @Date: 2018-04-19 10:34:18 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-08-10 15:00:31 + */ +import { ajax, cacheTools } from 'nc-lightapp-front'; +import { PMO_LIST, URL, DELIVERDLG, HEADATTRCODE, BODYATTRCODE } from '../../pmoconst'; +import { buttonController } from '../viewControl'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { + showWarningInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +const tableId = PMO_LIST.tableId; +export default function pmodeliverbackBtn(props, record) { + let checkedrows = []; + if (record) { + let singledata = { data: record }; + checkedrows.push(singledata); + } else { + checkedrows = props.table.getCheckedRows(tableId); + if (checkedrows.length == 0) { + showWarningInfo(getLangByResId(this, '50080000-000046'));/* 国际化处理: 请选择需要处理的数据!*/ + return; + } + } + let data = {}; + let ids = []; + checkedrows.forEach((item) => { + let id = item.data.values[HEADATTRCODE.CPMOHID].value; + if (id) { + ids.push(id); + } + }); + data[HEADATTRCODE.CPMOHID] = ids; + ajax({ + url: URL.checkdeliverback, + data, + success: (res) => { + if (res.data) { + let deliverbackParam = { + [BODYATTRCODE.CMOID]: res.data, + }; + cacheTools.set('pmodeliverbackParam', deliverbackParam); + props.openTo(null, { + appcode: '50080108', + pagecode: '50080108_list' + }); + } + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliverfillsetBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliverfillsetBtnClick.js new file mode 100644 index 00000000..76b5c56e --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliverfillsetBtnClick.js @@ -0,0 +1,56 @@ +/* + * @Author: fengjinga + * @PageInfo: 补成套领料按钮处理 + * @Date: 2018-04-19 10:34:18 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-08-10 15:00:31 + */ +import { ajax } from 'nc-lightapp-front'; +import { PMO_LIST, URL, DELIVERDLG, PMO_CARD, HEADATTRCODE } from '../../pmoconst'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { setDefData } from '../../../../../mmpub/mmpub/pub/cache/cacheDataManager'; +import { + showWarningInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { pickmSetDeliver } from '../../../pub/pickmdeliverwithset'; +const tableId = PMO_LIST.tableId; +export default function pmodeliverfillsetBtn(props, record) { + let checkedrows = []; + if (record) { + let singledata = { data: record }; + checkedrows.push(singledata); + } else { + checkedrows = props.table.getCheckedRows(tableId); + if (checkedrows.length == 0) { + showWarningInfo(getLangByResId(this, '50080000-000046'));/* 国际化处理: 请选择需要处理的数据!*/ + return; + } + } + let ids = []; + checkedrows.forEach((item) => { + let id = item.data.values[HEADATTRCODE.CPMOHID].value; + if (id) { + ids.push(id); + } + }); + //let data = { [HEADATTRCODE.CPMOHID]: ids }; + //ajax({ + // url: URL.pmopickmURL, + // data: data, + // success: (res) => { + // if (res.success) { + // if (res.data) { + let dataparam = { + appcode: DELIVERDLG.PICKAPPCODE, + hmopks: ids, + isReSet: true, + pageid: DELIVERDLG.DELIVERSETDLG + } + pickmSetDeliver.call(this, this.props, dataparam); + // } + // } + // } + //}); +} + + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliversetBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliversetBtnClick.js new file mode 100644 index 00000000..06d5faf8 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliversetBtnClick.js @@ -0,0 +1,55 @@ +/* + * @Author: fengjinga + * @PageInfo: 成套领料按钮处理 + * @Date: 2018-04-19 10:34:18 + * @Last Modified by:fengjinga + * @Last Modified time: 2018-08-10 15:00:31 + */ +import { ajax } from 'nc-lightapp-front'; +import { PMO_LIST, URL, DELIVERDLG, HEADATTRCODE } from '../../pmoconst'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { + showWarningInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { pickmSetDeliver } from '../../../pub/pickmdeliverwithset'; +const tableId = PMO_LIST.tableId; +export default function pmodeliversetBtn(props, record) { + let checkedrows = []; + if (record) { + let singledata = { data: record }; + checkedrows.push(singledata); + } else { + checkedrows = props.table.getCheckedRows(tableId); + if (checkedrows.length == 0) { + showWarningInfo(getLangByResId(this, '50080000-000046'));/* 国际化处理: 请选择需要处理的数据!*/ + return; + } + } + let ids = []; + checkedrows.forEach((item) => { + let id = item.data.values[HEADATTRCODE.CPMOHID].value; + if (id) { + ids.push(id); + } + }); + //let data = { [HEADATTRCODE.CPMOHID]: ids }; + //ajax({ + // url: URL.pmopickmURL, + // data: data, + // success: (res) => { + // if (res.success) { + // if (res.data) { + let dataparam = { + appcode: DELIVERDLG.PICKAPPCODE, + hmopks: ids, + isReSet: false, + pageid: DELIVERDLG.DELIVERSETDLG + } + pickmSetDeliver.call(this, this.props, dataparam); + // } + // } + // } + //}); +} + + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliversetbackBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliversetbackBtnClick.js new file mode 100644 index 00000000..48fbe7c7 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmodeliversetbackBtnClick.js @@ -0,0 +1,54 @@ +/* + * @Author: fengjinga + * @PageInfo: 成套退料按钮处理 + * @Date: 2018-04-19 10:34:18 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-08-10 15:00:31 + */ +import { ajax } from 'nc-lightapp-front'; +import { PMO_LIST, URL, DELIVERDLG, HEADATTRCODE } from '../../pmoconst'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { + showWarningInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { pickmBackDeliverWithSet } from '../../../pub/pickmbackdeliverwithset'; +const tableId = PMO_LIST.tableId; +export default function pmodeliversetbackBtn(props, record) { + let checkedrows = []; + if (record) { + let singledata = { data: record }; + checkedrows.push(singledata); + } else { + checkedrows = props.table.getCheckedRows(tableId); + if (checkedrows.length == 0) { + showWarningInfo(getLangByResId(this, '50080000-000046'));/* 国际化处理: 请选择需要处理的数据!*/ + return; + } + } + let ids = []; + checkedrows.forEach((item) => { + let id = item.data.values[HEADATTRCODE.CPMOHID].value; + if (id) { + ids.push(id); + } + }); + let data = { [HEADATTRCODE.CPMOHID]: ids }; + ajax({ + url: URL.pmopickmURL, + data: data, + success: (res) => { + if (res.success) { + if (res.data) { + let dataparam = { + appcode: DELIVERDLG.PICKAPPCODE, + cpickmids: res.data, + pageid: DELIVERDLG.SETBACKDELIVERDLG + } + pickmBackDeliverWithSet.call(this, this.props, dataparam, null, null, null); + } + } + } + }); +} + + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmopushsfcBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmopushsfcBtnClick.js new file mode 100644 index 00000000..eadcd615 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmopushsfcBtnClick.js @@ -0,0 +1,46 @@ +/** + * 工序派工/完工/转移 + */ +import { ajax } from 'nc-lightapp-front'; +import { PMO_LIST, CONST4SFC, URL4SFC, PMO_CARD } from '../../pmoconst'; +import { + showWarningInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { headCheckedRow } from '../util/headSelectedUtils'; +export default function pushsfcBtn(props, destBilltype, record) { + let data = headCheckedRow.call(this, this.props); + let infos = data.infos; + if (infos.length == 0) { + showWarningInfo(getLangByResId(this, '50080000-000089')/* 国际化处理: 请选择要操作的数据*/); + return; + } + let ids = []; + infos.map((item) => { + ids.push(item.id); + }); + let param = { pks: ids }; + let URL = (CONST4SFC.billType4Dispatchlist == destBilltype) ? URL4SFC.dispatchlistCheckURL : ((CONST4SFC.billType4Oprep == destBilltype ? URL4SFC.oprepCheckURL : URL4SFC.transferCheckURL)); + let paramName = (CONST4SFC.billType4Dispatchlist == destBilltype) ? CONST4SFC.PMOtoDispatchlistParam : ((CONST4SFC.billType4Oprep == destBilltype ? CONST4SFC.PMOtoOprepParam : CONST4SFC.PMOtoTransferParam)); + let pagecode = (CONST4SFC.billType4Dispatchlist == destBilltype) ? CONST4SFC.card4dispatchlist : ((CONST4SFC.billType4Oprep == destBilltype ? CONST4SFC.card4oprep : CONST4SFC.card4transfer)); + let appcode = (CONST4SFC.billType4Dispatchlist == destBilltype) ? CONST4SFC.appcode4dispatchlist : ((CONST4SFC.billType4Oprep == destBilltype ? CONST4SFC.appcode4oprep : CONST4SFC.appcode4transfer)); + ajax({ + url: URL, + data: param, + success: (res) => { + if (res.data && res.data.length!=0) { + let params = res.data; + this.props.openTo(null, { + pagecode: pagecode, + appcode: appcode, + vsrcAppcode: PMO_LIST.appcode, + vsrctype: PMO_LIST.billType, + channelAddress: 'card', + status: PMO_CARD.edit, + [paramName]: JSON.stringify(params) + }); + } + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmoresolveBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmoresolveBtnClick.js new file mode 100644 index 00000000..47848fb7 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmoresolveBtnClick.js @@ -0,0 +1,11 @@ +/* + * 分次投放 + */ +import { PMO_LIST } from '../../pmoconst'; +import busiOper from '../util/busiOperUtils'; +import { headCheckedRow } from '../util/headSelectedUtils'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +export default function pmoresolve(props) { + let data = headCheckedRow.call(this, this.props); + busiOper.call(this, this.props, PMO_LIST.pmoResolve, data, getLangByResId(this, '50080000-000147')/* 国际化处理: 分次投放生成投放计划成功!*/); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmoscrapaddBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmoscrapaddBtnClick.js new file mode 100644 index 00000000..6618346e --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmoscrapaddBtnClick.js @@ -0,0 +1,38 @@ +/* + * @Author: fengjinga + * @PageInfo: 报废补单处理 + * @Date: 2018-04-19 10:34:18 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-08-10 15:00:31 + */ +import { ajax, toast } from 'nc-lightapp-front'; +import { PMO_LIST,HEADATTRCODE } from '../../pmoconst'; +import { buttonController } from '../viewControl'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +const tableId = PMO_LIST.tableId; +export default function scrapAddBtn(props) { + let rows = props.table.getCheckedRows(tableId); + let inforows = []; + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value + }; + inforows.push(data); + }); + let data = { infos: inforows }; + let url = PMO_LIST.listscrapadd; + ajax({ + url: url, + data, + success: (res) => { + if (res.success) { + buttonController.setListButtonVisiable(props, this.state.currentTab); + toast({ content: getLangByResId(this, '50080000-000045'), color: 'success' });/* 国际化处理: 操作成功!*/ + return; + } /* else { + } */ + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmosnBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmosnBtnClick.js new file mode 100644 index 00000000..968bd97b --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmosnBtnClick.js @@ -0,0 +1,47 @@ +/** + * 序列号 + */ +import { ajax, toast } from 'nc-lightapp-front'; +import { PMO_LIST, PMO_CARD, PMO_GRAND, HEADATTRCODE } from '../../pmoconst'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import pmoSNServ from '../../pub/serialno/service/pmoSNServ'; +const tableId = PMO_LIST.tableId; +const tableId4pmoview = PMO_GRAND.tableId4pmoview; +export default function pmosnBtn(props) { + let checkedrows = props.table.getCheckedRows(tableId); + if (checkedrows.length == 0) { + toast({ content: getLangByResId(this, '50080000-000089'), color: 'warning' });/* 国际化处理: 请选择要操作的数据*/ + return; + } + let inforows = []; + checkedrows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value + }; + inforows.push(data); + }); + let data = { infos: inforows, pageid: PMO_GRAND.pageid4serialno, iscard: false }; + let url = PMO_LIST.listsn; + ajax({ + url: url, + data: data, + success: (res) => { + if (res.success) { + if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { + props.dealFormulamsg( + res.formulamsg //参数一:返回的公式对象 + ); + } + if (res.data) { + this.setState({ + tableData4sn: res.data[0][tableId4pmoview], + allsnvos: res.data[1] + }); + pmoSNServ.call(this,this.props,this.state.tableData4sn,this.state.allsnvos,PMO_CARD.browse); + } + } + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmoturnBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmoturnBtnClick.js new file mode 100644 index 00000000..2ce7857e --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmoturnBtnClick.js @@ -0,0 +1,51 @@ +/* + * @Author: fengjinga + * @PageInfo: 产能分流按钮事件 + * @Date: 2018-04-19 10:35:13 + * @Last Modified by: fengjinga + * @Last Modified time: 2019-03-15 13:18:42 + */ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { ajax, toast } from 'nc-lightapp-front'; +import { showResumeModal } from '../../../../../mmpub/mmpub/pub/components/resumeModal'; +import pmoTurnServ from '../../pub/pmoturn/service/pmoTurnServ'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +const tableId4Pmoturn = PMO_LIST.tableId4Pmoturn; +const tableId = PMO_LIST.tableId; +export default function pmoturn(props) { + let checkedrows = props.table.getCheckedRows(tableId); + if (checkedrows.length == 0) { + toast({ content: getLangByResId(this, '50080000-000089'), color: 'warning' });/* 国际化处理: 请选择要操作的数据*/ + return; + } + + let inforows = []; + checkedrows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value + }; + inforows.push(data); + }); + let data = { infos: inforows, pageid: PMO_LIST.pagecode4pmoturn }; + let url = PMO_LIST.listpmoturn; + ajax({ + url: url, + data: data, + success: (res) => { + if (res.success) { + if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { + props.dealFormulamsg( + res.formulamsg //参数一:返回的公式对象 + ); + } + if (res.data.isResume && res.data.isResume == true) { + showResumeModal.bind(this)(props, 'ResumeMessageDlg', skipCodes, res.data, clickSaveBtn, props); + return; + } else if (res.data) { + pmoTurnServ.call(this, this.props, res.data[tableId4Pmoturn]); + } + } + } + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pmounpickmdeliverBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pmounpickmdeliverBtnClick.js new file mode 100644 index 00000000..0290bdec --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pmounpickmdeliverBtnClick.js @@ -0,0 +1,51 @@ +/* + * @Author: fengjinga + * @PageInfo: 无备料领料按钮处理 + * @Date: 2018-04-19 10:34:18 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-08-10 15:00:31 + */ +import { ajax } from 'nc-lightapp-front'; +import { PMO_LIST, URL, DELIVERDLG, HEADATTRCODE } from '../../pmoconst'; +import { + showWarningInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { noItemDeliver } from '../../../pub/noitemdeliver'; +const tableId = PMO_LIST.tableId; +export default function pmounpickmdeliverBtn(props, record) { + let checkedrows = []; + if (record) { + let singledata = { data: record }; + checkedrows.push(singledata); + } else { + checkedrows = props.table.getCheckedRows(tableId); + if (checkedrows.length == 0) { + showWarningInfo(getLangByResId(this, '50080000-000046')/**请选择需要处理的数据!**/); + return; + } + } + let ids = []; + checkedrows.forEach((item) => { + let id = item.data.values[HEADATTRCODE.CPMOHID].value; + if (id) { + ids.push(id); + } + }); + data[HEADATTRCODE.CPMOHID] = ids; + ajax({ + url: URL.pmopickmURL, + data, + success: (res) => { + if (res.data) { + let dataparam = { + appcode: DELIVERDLG.PICKAPPCODE, + cpickmids: res.data, + pageid: DELIVERDLG.DELIVERSETDLG + } + noItemDeliver.call(this, this.props, dataparam); + } + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/printBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/printBtnClick.js new file mode 100644 index 00000000..2fe91dc8 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/printBtnClick.js @@ -0,0 +1,49 @@ +/* + * 打印 + * @Author: fengjinga + * @Date: 2018-07-04 15:06:44 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-10-22 15:50:39 + */ + +import { toast, print, ajax } from 'nc-lightapp-front'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; + +export default function buttonClick(props, nodekey) { + let appcode = props.getAppCode(); + // 获取选中行 + if (!nodekey) { + nodekey = PMO_LIST.pnodekey; + } + let seldatas = props.table.getCheckedRows(PMO_LIST.tableId); + // 如果没有选中行,则提示并返回,不进行任何操作 + if (seldatas.length <= 0) { + toast({ + color: 'warning', + content: getLangByResId(this, '50080000-000090')/* 国际化处理: 请选择要打印的订单!*/ + }); + return; + } + let pks = []; + seldatas.map((item) => { + pks.push(item.data.values[HEADATTRCODE.CPMOHID].value); + }); + let data = { pks: pks, actioncode: 'PmoPrint' }; + ajax({ + url: PMO_LIST.checkdatapermissionURL, + data: data, + success: (res) => { + print( + 'pdf', //支持两类: 'html'为模板打印, 'pdf'为pdf打印 + PMO_LIST.printURL, + { + funcode: PMO_LIST.appcode, //小应用编码 + nodekey: nodekey, //模板节点标识 + oids: pks // 功能节点的数据主键 + } + ); + } + }); + +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/printbarCodeBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/printbarCodeBtnClick.js new file mode 100644 index 00000000..3307a7e8 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/printbarCodeBtnClick.js @@ -0,0 +1,67 @@ +/** + * 打印条码 + */ +import { print, ajax } from 'nc-lightapp-front'; +import codeNfig from 'uap/common/components/codeConfigModal'; +export default function (props, params) { + let { billtype, oids } = params; + let data = billtype + ',' + oids; + ajax({ + url: '/nccloud/mmpac/pmo/qrybillinfo.do', + data: data, + method: 'post', + success: (res) => { + let materialinfo = {}; + if (res.data) { + materialinfo = { + pk_org: res.data.pk_org, + nnum: parseFloat(res.data.nnum), + nassistnum: parseFloat(res.data.nassistnum), + pk_group: res.data.pk_group, + cmaterialvid: res.data.cmaterialvid + }; + } + codeNfig(this.props, { data: materialinfo,directPrinter: false }, (info) => { + let map = { + width: JSON.stringify(info.width), + height: JSON.stringify(info.height), + direction: JSON.stringify(info.direction), + leftMargin: JSON.stringify(info.leftMargin), + rightMargin: JSON.stringify(info.rightMargin), + topMargin: JSON.stringify(info.topMargin), + bottomMargin: JSON.stringify(info.bottomMargin), + dataColumn: JSON.stringify(info.dataColumn), + iprintcount: JSON.stringify(info.iprintcount) + }; + let userjson = billtype + ';' + info.barcodeRule + ';' + info.barcodeLabel + ';' + info.iprintcount + ';' + JSON.stringify(map); + if (info.bshowprintlist) { + const data = { + billType: billtype, //单据类型 + cbillid: oids, //主表主键 + barcodeRule: info.barcodeRule, + barcodeLabel: info.barcodeLabel, + iprintcount: info.iprintcount, + classRoute: 'nccloud.web.mmpac.pmo.service.PMOBCprintVOBuildServiceImpl' //实现类的全路径 + }; + props.openTo('/bc/bc/bcprint/main/index.html#/list', { + data: JSON.stringify(data), + type: 'source', + appcode: '401700410', + pagecode: '401700410_list' + }); + } else { + print( + 'pdf', //支持两类: 'html'为模板打印, 'pdf'为pdf打印 + '/nccloud/mmpac/pmo/printbarcode.do', + { + userjson, //单据类型 + oids: [oids] // 功能节点的数据主键 oids含有多个元素(['1001A41000000000A9LR','1001A410000000009JDD'])时为批量打印, + }, + false + ); + } + + }); + } + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/pscplanBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/pscplanBtnClick.js new file mode 100644 index 00000000..6c7c88c3 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/pscplanBtnClick.js @@ -0,0 +1,43 @@ +/* + * @Author: fengjinga + * @PageInfo: 工序委外计划 + * @Date: 2018-04-19 10:36:58 + * @Last Modified by: fengjinga + * @Last Modified time: 2022-06-28 11:32:06 + */ +import { ajax } from 'nc-lightapp-front'; +import { PMO_LIST, PMO_CARD, HEADATTRCODE, URL } from '../../pmoconst'; +import { headCheckedRow } from '../util/headSelectedUtils'; +export default function pscplanBtnClick(props) { + let checkedRows = props.table.getCheckedRows(PMO_LIST.tableId); + let data = headCheckedRow.call(this, this.props); + let infos = data.infos; + if (infos.length == 0) { + showWarningInfo(getLangByResId(this, '50080000-000089') /* 国际化处理: 请选择要操作的数据*/); + return; + } + let ids = []; + infos.map((item) => { + ids.push(item.id); + }); + let param = { pks: ids }; + ajax({ + url: URL.checkToPscPlanURL, + data: param, + success: (res) => { + let ids = []; + checkedRows.map((item, index) => { + let id = item.data.values[HEADATTRCODE.CPMOHID].value; + if (id) { + ids.push(id); + } + }); + props.openTo(null, { + pagecode: '50160402_list', + appcode: '50160402', + cmoid: ids, + status: PMO_CARD.browse + }); + } + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/putClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/putClick.js new file mode 100644 index 00000000..cc84c5ab --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/putClick.js @@ -0,0 +1,70 @@ +/* + * @Author: fengjinga + * @PageInfo: 投放按钮事件 + */ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { ajax, toast } from 'nc-lightapp-front'; +import { + showWarningDialog, + showBatchOprMessage, + showInfoDialog, + showErrorInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { buttonController } from '../viewControl'; +const tableId = PMO_LIST.tableId; +export default function putBtn(props) { + // 获取选中行 + let rows = props.table.getCheckedRows(tableId); + let inforows = []; + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value, + rowid: item.data.rowId + }; + inforows.push(data); + }); + let data = { infos: inforows, pageid: PMO_LIST.pageid }; + let url = PMO_LIST.listPut; + ajax({ + url: url, + data, + success: (res) => { + if (res.success) { + if (res.data) { + if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { + // 成功的index + let sucIndex = []; + rows.forEach((element, index) => { + if (!res.data.errorMessageMap[index]) { + sucIndex.push(element.index); + } + }); + } else { + let succIndex = []; + rows.forEach((element, index) => { + succIndex.push(element.index); + }); + } + buttonController.setListButtonVisiable(props, this.state.currentTab); + if (res.data.sucessVOs) { + res.data.sucessVOs[tableId].rows.map((item, index) => { + item.rowId = item.rowid; + }); + this.props.table.updateTableData(tableId, res.data.sucessVOs[tableId]); + } + showBatchOprMessage( + getLangByResId(this, '50080000-000091'),/* 国际化处理: 投放成功*/ + res.data, + {}, + getLangByResId(this, '50080000-000017')/* 国际化处理: 提示*/ + ); /* 国际化处理: 提示*/ + } else { + showErrorInfo(getLangByResId(this, '50080000-000092'));/* 国际化处理: 投放失败!*/ + } + } + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/searchBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/searchBtnClick.js new file mode 100644 index 00000000..7f0c9549 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/searchBtnClick.js @@ -0,0 +1,44 @@ +/* + * @Author: fengjinga + * @PageInfo: 查询按钮 + * @Date: 2018-05-24 10:27:36 + * @Last Modified by:fengjinga + * @Last Modified time: 2018-10-26 15:52:09 + */ + +import { PMO_LIST } from '../../pmoconst'; +import { ajax, cardCache, removeGlobalStorage } from 'nc-lightapp-front'; +import commonSearch from './commonSearch'; +const { getDefData, setDefData } = cardCache; +const tableId = PMO_LIST.tableId; +const searchId = PMO_LIST.searchId; +const dataSource = PMO_LIST.dataSource; +const pageid = PMO_LIST.pageid; +const tabNumKey = PMO_LIST.tabNum; +export default function clickSerachBtn(tabCode, refresh, searchFlag) { + if (typeof searchFlag == 'undefined') { + searchFlag = true; + } + if (typeof tabCode == 'undefined') { + tabCode = PMO_LIST.toCommit; + } + + if(typeof (tabCode) == 'undefined'){ + tabCode=PMO_LIST.toCommit; + } + let searchVal = null; + //如何是页签切换就从缓存里面拿 + if (!searchFlag) { + searchVal = getDefData(dataSource, 'searchVal'); + } else { + searchVal = this.props.search.getAllSearchData(searchId); //必输项为空时,返回值为false + if (!searchVal) { + return; + } + } + // 将查询条件缓存 + this.setState({ searchVal: searchVal }); + // 查询 + commonSearch.bind(this, tabCode, searchVal, refresh, searchFlag)(); + removeGlobalStorage('localStorage', 'QueryCriteria'); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/unCommitBatchBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/unCommitBatchBtnClick.js new file mode 100644 index 00000000..96e5fa6e --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/unCommitBatchBtnClick.js @@ -0,0 +1,64 @@ +/* + * @Author: 批量收回 + * @Date: 2018-06-13 11:25:58 + * @Last Modified by: fengjinga + * @Last Modified time: 2019-01-03 16:00:06 + */ + +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { ajax, toast } from 'nc-lightapp-front'; +import { showBatchOprMessage } from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { updateCacheDataForList } from '../../../../../mmpub/mmpub/pub/cache/cacheDataManager'; +import { buttonController } from '../viewControl'; +let tableId = PMO_LIST.tableId; + +export default function clickuncommitBtn(props) { + // 获取选中行 + let _this = this; + let rows = props.table.getCheckedRows(tableId); + // 如果没有选中行,则提示并返回,不进行任何操作 + if (rows.length <= 0) { + toast({ + color: 'warning', + content: getLangByResId(this, '50080000-000093')/* 国际化处理: 请选择需要收回的数据!*/ + }); + return; + } + // 获取待操作表格行的行号 + let indexs = rows.map((item) => { + return item.index; + }); + // 执行操作 + let infoRows = []; + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value + }; + infoRows.push(data); + }); + // 拼装json + let data = { + infos: infoRows, + pageid: PMO_LIST.pageid + }; + // 发送请求 + ajax({ + url: PMO_LIST.uncommitURL, + data: data, + success: (res) => { + if (res.success) { + showBatchOprMessage( + getLangByResId(this, '50080000-000094'),/* 国际化处理: 收回*/ + res.data, + {}, + getLangByResId(this, '50080000-000094')/* 国际化处理: 收回*/ + ); /* 国际化处理: 提交成功*/ + //更新列表上的数据 + updateCacheDataForList(props, tableId, HEADATTRCODE.CPMOHID, res.data); + buttonController.setListButtonVisiable(props, this.state.currentTab); + } + } + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/uncommitBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/uncommitBtnClick.js new file mode 100644 index 00000000..cf8b62cb --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/uncommitBtnClick.js @@ -0,0 +1,74 @@ +/* + * @Author: fengjinga + * @PageInfo: 收回按钮事件 + * @Date: 2018-04-19 10:36:58 + * @Last Modified by: fengjinga + * @Last Modified time: 2019-01-03 16:00:36 + */ +import { PMO_LIST, FBILLSTATUS, HEADATTRCODE } from '../../pmoconst'; +import { ajax, toast } from 'nc-lightapp-front'; +import { showSuccessInfo, showErrorInfo } from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { updateCacheDataForList } from '../../../../../mmpub/mmpub/pub/cache/cacheDataManager'; +import { buttonController } from '../viewControl'; +let tableId = PMO_LIST.tableId; +export default function clickCommitBtn(props, record, index, assign) { + let _this = this; + let numberindex = record.numberindex.value; + let pk = record[HEADATTRCODE.CPMOHID].value; + let ts = record[HEADATTRCODE.TS].value; + let fbillstatus = record[HEADATTRCODE.FBILLSTATUS].value; + if (fbillstatus != FBILLSTATUS.commit && fbillstatus != FBILLSTATUS.approve) { + toast({ + color: 'warning', + content: getLangByResId(this, '50080000-000095')/* 国际化处理: 请选择状态为审批中的数据!*/ + }); + return; + } + // 执行操作 + let infoRows = []; + let datas = { + id: pk, + ts: ts + }; + infoRows.push(datas); + // 拼装json + let data = { + infos: infoRows, + pageid: PMO_LIST.pageid + }; + if (assign) { + data['assign'] = JSON.stringify(assign); + } + ajax({ + url: PMO_LIST.uncommitURL, + data: data, + success: (res) => { + if ( + res.data && + res.data.workflow && + (res.data.workflow == 'approveflow' || res.data.workflow == 'workflow') + ) { + //缓存当前数据 + _this.commitInfo = { + isBatch: false, + record: record, + index: index + }; + _this.setState({ + compositedata: res.data, + compositedisplay: true + }); + return; + } + if (res.success) { + //更新列表上的数据 + updateCacheDataForList(props, tableId, HEADATTRCODE.CPMOHID, res.data, numberindex - 1); + buttonController.setListButtonVisiable(props, this.state.currentTab); + showSuccessInfo(getLangByResId(this, '50080000-000056'));/* 国际化处理: 收回成功!*/ + } else { + showErrorInfo(getLangByResId(this, '50080000-000096')); /* 国际化处理: 收回失败!*//* 国际化处理: 提交失败!*/ + } + } + }); +} diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/unputClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/unputClick.js new file mode 100644 index 00000000..d18ea7ff --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/unputClick.js @@ -0,0 +1,74 @@ +/* + * @Author: fengjinga + * @PageInfo: 取消投放按钮事件 + */ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +import { ajax, toast } from 'nc-lightapp-front'; +import { + showWarningDialog, + showBatchOprMessage, + showInfoDialog, + showErrorInfo +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { buttonController } from '../viewControl'; +const tableId = PMO_LIST.tableId; +export default function putBtn(props) { + // 获取选中行 + let rows = props.table.getCheckedRows(tableId); + let inforows = []; + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value, + rowid: item.data.rowId + }; + inforows.push(data); + }); + let data = { infos: inforows, pageid: PMO_LIST.pageid }; + let url = PMO_LIST.listUnPut; + ajax({ + url: url, + data, + success: (res) => { + if (res.success) { + if (res.data) { + if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { + // 成功的index + let sucIndex = []; + rows.forEach((element, index) => { + if (!res.data.errorMessageMap[index]) { + sucIndex.push(element.index); + } + //deleteCacheDataForList(props, tableId, element.data.values[cpmohid].value); + }); + //props.table.deleteTableRowsByIndex(tableId, sucIndex); + } else { + let succIndex = []; + rows.forEach((element, index) => { + //deleteCacheDataForList(props, tableId, element.data.values[cpmohid].value); + succIndex.push(element.index); + }); + //props.table.deleteTableRowsByIndex(tableId, succIndex); + } + buttonController.setListButtonVisiable(props, this.state.currentTab); + if (res.data.sucessVOs) { + res.data.sucessVOs[tableId].rows.map((item, index) => { + item.rowId = item.rowid; + }); + this.props.table.updateTableData(tableId, res.data.sucessVOs[tableId]); + } + showBatchOprMessage( + getLangByResId(this, '50080000-000097'),/* 国际化处理: 取消投放成功*/ + res.data, + {}, + getLangByResId(this, '50080000-000017')/* 国际化处理: 提示*/ + ); /* 国际化处理: 提示*/ + } else { + toast({content: getLangByResId(this, '50080000-000098'), color: 'error' });/* 国际化处理: 取消投放失败!*/ + } + } + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/list/btnclicks/viewverBtnClick.js b/src/mmpac/mmpac/pmo/list/btnclicks/viewverBtnClick.js new file mode 100644 index 00000000..824241c7 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/btnclicks/viewverBtnClick.js @@ -0,0 +1,43 @@ +/* + * @Author: fengjinga + * @PageInfo: 历史版本按钮事件 + * @Date: 2018-04-19 10:35:13 + * @Last Modified by: fengjinga + * @Last Modified time: 2019-03-15 13:18:42 + */ +import { PMO_LIST, PMO_CARD, HEADATTRCODE } from '../../pmoconst'; +import { ajax, cardCache, toast } from 'nc-lightapp-front'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import viewVerServ from '../../pub/viewver/service/viewVerServ'; +const tableId4Viewver = PMO_LIST.tableId4Viewver; +const tableId = PMO_LIST.tableId; +export default function viewver(props, record) { + let checkedrows = []; + if (record) { + let singledata = { data: { values: record } }; + checkedrows.push(singledata); + } else { + checkedrows = props.table.getCheckedRows(tableId); + } + let data = { keyword: checkedrows[0].data.values[HEADATTRCODE.CPMOHID].value, pageid: PMO_LIST.pagecode4viewver }; + let url = PMO_LIST.listviewver; + ajax({ + url: url, + data: data, + success: (res) => { + if (res.success) { + if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { + props.dealFormulamsg( + res.formulamsg //参数一:返回的公式对象 + ); + } + if (res.data) { + viewVerServ.call(this, this.props, + res.data[tableId4Viewver]); + } else { + toast({ content: getLangByResId(this, '50080000-000059'), color: 'warning' });/* 国际化处理: 所选订单没有历史版本数据。*/ + } + } + } + }); +} diff --git a/src/mmpac/mmpac/pmo/list/index.js b/src/mmpac/mmpac/pmo/list/index.js new file mode 100644 index 00000000..b8fc572f --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/index.js @@ -0,0 +1,525 @@ +/* + * @Author: zhangjyp + * @PageInfo: 流程生产订单列表页面 + * @Date: 2018-04-19 10:28:14 + * @Last Modified by: fengjinga + * @Last Modified time: 2022-06-05 16:52:38 + */ +import React, { Component } from 'react'; +import ReactDOM from 'react-dom'; +import { + createPage, + ajax, + cacheTools, + cardCache, + base, + toast, + high, + promptBox, + getMultiLang, + createPageIcon, + getGlobalStorage +} from 'nc-lightapp-front'; +import { initLang, getLangByResId } from '../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { print } from 'nc-lightapp-front'; +import searchBtnClick from './btnclicks/searchBtnClick'; +import buttonClick from './btnclicks/buttonClick'; +import pageInfoClick from './btnclicks/pageInfoClick'; +import batchEditSave from './btnclicks/batchEditSave'; +import ApproveDetail from 'uap/common/components/ApproveDetail'; +import NCUploader from 'uap/common/components/NCUploader'; +import ApprovalTrans from 'uap/common/components/approvalTrans'; +import { initTemplate } from './init'; +import { buttonController, btnClickController } from './viewControl'; +import { transtypeUtils } from '../../../../mmpub/mmpub/pub/tool'; +import excelImportconfig from '../../../../uap/common/components/excelImportconfig'; +import ExcelOutput from '../../../../uap/common/components/ExcelOutput'; +import { + PMO_LIST, + DATECONST, + PMO_CARD, + PMO_LIST_BUTTON, + PMO_CARD_BUTTON, + FBILLSTATUS, + BODYFBILLSTATUS, + HEADATTRCODE, + BODYATTRCODE, + GRANDATTRCODE +} from '../pmoconst'; +import multiCorpRefHandler from '../../../../mmpub/mmpub/pub/tool/MultiCorpRefHandler'; +import PMOTurn from '../pub/pmoturn'; +import PMOSerialno from '../pub/serialno'; +import batchEditEvent from '../card/afterEvents/batchEditEvent'; +import batchBeforeEditEvent from '../card/beforeEvents/batchBeforeEditEvent'; +import commitBtnClick from './btnClicks/commitBtnClick'; +import commitBatchBtnClick from './btnClicks/commitBatchBtnClick'; +const { PrintOutput } = high; +const { NCBreadcrumb, NCTabsControl, NCDiv } = base; +const { BillTrack } = high; +const { getDefData, setDefData } = cardCache; +const { NCPopconfirm, NCCheckbox, NCIcon, NCModal, NCButton } = base; +const NCBreadcrumbItem = NCBreadcrumb.NCBreadcrumbItem; +const dataSource = PMO_LIST.dataSource; +const pageId = PMO_LIST.pageid; //pagecode +const searchId = PMO_LIST.searchId; //查询区id +const tableId = PMO_LIST.tableId; //表头区域编码 +const buttonarea = PMO_LIST.buttonarea; +const appid = PMO_LIST.appid; //注册按钮id +const queryListUrl = PMO_LIST.queryListURL; //通过查询区域查询url +const queryPageUrl = PMO_LIST.queryPageURL; //分页查询url +const deleteUrl = PMO_LIST.deleteURL; //删除url +const tabNumKey = PMO_LIST.tabNum; +class PmoList extends Component { + constructor(props) { + super(props); + //use注册组件 + props.use.search(searchId); + props.use.table(tableId); + this.searchId = searchId; + this.tableId = tableId; + this.linkquery = false; + this.searchflag = false; + this.state = { + showpmoturn: false, + showSN: false, + uncommitNum: '0', //待提交 + approvingNum: '0', //审批中 + executNum: '0', //执行中 + searchVal: null, //查询条件缓存 + currentTab: PMO_LIST.toCommit, + showTrack: false, + pk: '', + target: null, //弹出的上传控件一target位置为基准,不传默认页面正中央 + showUploader: false, //控制弹框 + show: false, + billId: '', //单据id + billtype: '', //单据交易类型 + vbillcode: '', + tableData: { rows: [] }, + tableData4sn: { rows: [] }, + allsnvos: {}, + compositedisplay: false, //指派参数 + compositedata: null, //指派 + excelExportShow: false, //Excel导出对话框可见性 + selectedPKS: [], //勾选数据的bom主键(excel导出用,必须放在state里,不然导出失败) + billType: PMO_LIST.excelOutput.billtype, //(excel导出用,必须放在state里,不然导出失败) + pagecode: PMO_CARD.pageimportid, //(excel导出用,必须放在state里,不然导出失败) + appcode: PMO_LIST.excelOutput.module //(excel导出用,必须放在state里,不然导出失败) + }; + initLang(this, [ '50080000', '5008Pub' ], 'mmpac', initTemplate.bind(this, this.props)); + } + + componentDidMount() {} + // 提交指派 + getAssginUsedr = (value) => { + //重新执行提交操作重新执行提交操作 + if (this.commitInfo.record) { + commitBtnClick.call(this, this.props, this.commitInfo.record, this.commitInfo.index, value); + } else { + commitBatchBtnClick.call(this, this.props, value); + } + this.setState({ compositedisplay: false }); + }; + // 附件管理关闭 + onHideUploader = () => { + this.setState({ + showUploader: false + }); + }; + closeApprove = () => { + this.setState({ + show: false + }); + }; + hideSN = () => { + this.setState({ showSN: false }); + }; + cancelSN = () => { + this.setState({ showSN: false }); + }; + confirm4SN = (res) => { + this.setState({ showSN: false, allsnvos: res }); + }; + batchEdit = () => { + batchEditSave.call(this, this.props); + }; + hidepmoturnModal = () => { + this.setState({ showpmoturn: false }); + }; + okBtn4pmoturn = () => { + buttonController.setListButtonVisiable(this.props, this.state.currentTab); + // 去除复选框的打钩 + this.props.table.selectAllRows(tableId, false); + toast({ content: getLangByResId(this, '50080000-000045'), color: 'success' }); /* 国际化处理: 操作成功!*/ + }; + //主组织编辑后回调 + renderCompleteEvent = () => { + transtypeUtils.setQueryDefaultValue.call(this, this.props, searchId, HEADATTRCODE.CTRANTYPEID); + let pk_org = this.props.search.getSearchValByField(searchId, HEADATTRCODE.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 }; + }); + this.afterEvent.call(this, this.props, HEADATTRCODE.PK_ORG, arr); + } + }; + afterEvent(props, field, val) { + let meta = props.meta.getMeta(); + if (field == HEADATTRCODE.PK_ORG) { + multiCorpRefHandler(props, val, searchId, [ + 'ctrantypeid', + 'mm_mo.cmaterialvid', + 'mm_mo.cmaterialvid.code', + 'mm_mo.cmaterialid', + 'mm_mo.cmaterialid.code', + 'mm_mo.cmaterialid.pk_marbasclass', + 'mm_mo.ccustomerid', + 'mm_mo.cvendorid', + 'mm_mo.cproductorid', + 'mm_mo.cprojectid', + 'mm_mo.cdeptid', + 'mm_mo.cwkid', + 'mm_mo.cemployeeid', + 'mm_mo.cteamid', + 'mm_mo.cclassid', + 'mm_mo.ccustmaterialid', + 'mm_mo.cffileid', + 'mm_mo.vfree1', + 'mm_mo.vfree2', + 'mm_mo.vfree3', + 'mm_mo.vfree4', + 'mm_mo.vfree5', + 'mm_mo.vfree6', + 'mm_mo.vfree7', + 'mm_mo.vfree8', + 'mm_mo.vfree9', + 'mm_mo.vfree10', + 'mm_mo.vdef1', + 'mm_mo.vdef2', + 'mm_mo.vdef3', + 'mm_mo.vdef4', + 'mm_mo.vdef5', + 'mm_mo.vdef6', + 'mm_mo.vdef7', + 'mm_mo.vdef8', + 'mm_mo.vdef9', + 'mm_mo.vdef10', + 'mm_mo.vdef11', + 'mm_mo.vdef12', + 'mm_mo.vdef13', + 'mm_mo.vdef14', + 'mm_mo.vdef15', + 'mm_mo.vdef16', + 'mm_mo.vdef17', + 'mm_mo.vdef18', + 'mm_mo.vdef19', + 'mm_mo.vdef20' + ]); + } + } + doubleClick = (record, index, e, props) => { + let searchVal = this.props.search.getAllSearchData(searchId); + cacheTools.set('searchParams', searchVal); + this.props.pushTo(PMO_CARD.cardUrl, { + status: PMO_CARD.browse, + id: record[HEADATTRCODE.CPMOHID].value + }); + }; + tabChange = (tabCode) => { + this.setState({ currentTab: tabCode }); //更新当前页签编码 + setDefData(dataSource, 'currentTab', tabCode); + //if (PMO_LIST.all == tabCode) { + let searchVal = getDefData(dataSource, 'searchVal'); + if (searchVal == null) { + // 点击全部页签时,若未输入查询条件,就不查 + //let rowsData = { rows: [] }; + //this.props.table.setAllTableData(tableId, rowsData); + buttonController.setListButtonVisiable(this.props, null); + return; + } + //} + searchBtnClick.bind(this, tabCode, false, false)(); // 调用查询方法 + buttonController.setListButtonVisiable(this.props, null); + //} + }; + linkquery4push = () => { + //added by fengjinga 为生产大屏数据穿透 + let isSetCondition = this.props.getUrlParam("isSetCondition"); + if (isSetCondition) { + this.linkquery = true; + } + let linkparam = cacheTools.get('55B4LinkTo55A2'); + if (!linkparam) { + //配套变更建议 + linkparam = cacheTools.get('mosLinkTo55A2'); + } + + let linkkey = this.props.getUrlParam(PMO_LIST.LINK_KEY); + //供应链控制台 + if (!linkparam && linkkey) { + linkparam = cacheTools.get(linkkey); + } + //处理其他单据联查 + if (linkparam) { + this.linkquery = true; + } + }; + getDefaultKey = () => { + this.linkquery4push(); + //为推单联查处理 + if (this.linkquery) { + //this.setState({ currentTab: PMO_LIST.all }); //更新当前页签编码 + //setDefData(dataSource, 'currentTab', PMO_LIST.all); + return 3; + } else if (this.props.getUrlParam(PMO_LIST.LINK_KEY)) { + //供应链联查跳转时,打开全部页签 + return 3; + } else { + let tabcode = PMO_LIST.toCommit; + let currentTab = getDefData.call(this, dataSource, 'currentTab'); + if (currentTab) { + tabcode = currentTab; + } else { + setDefData(dataSource, 'currentTab', tabcode); + } + if (tabcode == PMO_LIST.toCommit) { + return 0; + } else if (tabcode == PMO_LIST.approving) { + return 1; + } else if (tabcode == PMO_LIST.executing) { + return 2; + } else { + return 3; + } + } + }; + + /** + * 导出对话框关闭回调 + * @param {} + */ + closeExcelOutput = () => { + this.setState({ + excelExportShow: false + }); + }; + + render() { + let { table, button, search, base, modal, socket, BillHeadInfo } = this.props; + let { showUploader, target, compositedisplay, show, showpmoturn, showSN,excelExportShow } = this.state; + let buttons = this.props.button.getButtons(); + buttons = buttons.sort((a, b) => { + return b.btnorder - a.btnorder; + }); + let { createSimpleTable } = table; + let { NCCreateSearch } = search; + let { createModal } = modal; + let { createButtonApp, getButtons } = button; + let { createBillHeadInfo } = BillHeadInfo; + let toCommitNum = '0'; + let approvingNum = '0'; + let executingNum = '0'; + let tabNum = getDefData(dataSource, tabNumKey); + if (tabNum) { + toCommitNum = tabNum.toCommitNum; + approvingNum = tabNum.approvingNum; + executingNum = tabNum.executingNum; + } + let defaultTabCode = PMO_LIST.toCommit; + let tabCode = getDefData(dataSource, 'currentTab'); + if (tabCode) { + defaultTabCode = tabCode; + } + return ( +
+ {/*saga代码*/} + {socket.connectMesg({ + tableAreaCode: PMO_LIST.tableId, + billpkname: PMO_LIST.pk_pmo, + billtype: PMO_LIST.billType + })} + +
+ {createBillHeadInfo({ + title: this.props.getSearchParam('n'),//getLangByResId(this, '50080000-000134'), + initShowBackBtn: false + })} +
+
+ {createButtonApp({ + area: buttonarea, + buttonLimit: 3, + //popContainer: document.querySelector('.header-button-area'), + onButtonClick: buttonClick.bind(this) + })} +
+
+
+ {NCCreateSearch(this.searchId, { + clickSearchBtn: searchBtnClick.bind( + this, + getDefData.call(this, dataSource, 'currentTab'), + false, + true + ), + defaultConditionsNum: 9, + onAfterEvent: this.afterEvent.bind(this, this.props), + renderCompleteEvent: this.renderCompleteEvent, + statusChangeEvent: this.renderCompleteEvent + })} +
+
+ {/* 页签区 */} + +
this.tabChange(PMO_LIST.toCommit)}> + {`${getLangByResId(this, '50080000-000100')} (${toCommitNum})`} + {/* 国际化处理: 待提交*/} +
+
this.tabChange(PMO_LIST.approving)}> + {`${getLangByResId(this, '50080000-000101')} (${approvingNum})`} + {/* 国际化处理: 审批中*/} +
+
this.tabChange(PMO_LIST.executing)}> + {` ${getLangByResId(this, '50080000-000102')}(${executingNum})`} + {/* 国际化处理: 执行中*/} +
+
this.tabChange(PMO_LIST.all)}> + {getLangByResId(this, '50080000-000099')} + {/* 国际化处理: 全部*/} +
+
+
+ {/*
*/} +
+ {createSimpleTable(this.tableId, { + handlePageInfoChange: pageInfoClick.bind(this), + pkname: PMO_LIST.pk_pmo, + dataSource: dataSource, + onRowDoubleClick: this.doubleClick.bind(this), + //显示序号 + showIndex: true, + showCheck: true, + onSelected: buttonController.setListButtonVisiable.bind( + this, + this.props, + getDefData.call(this, dataSource, 'currentTab') + ), + onBatchSelected: buttonController.setListButtonVisiable.bind( + this, + this.props, + getDefData.call(this, dataSource, 'currentTab') + ), + onSelectedAll: buttonController.setListButtonVisiable.bind( + this, + this.props, + getDefData.call(this, dataSource, 'currentTab') + ), + componentInitFinished: buttonController.setListButtonVisiable.bind( + this, + this.props, + getDefData.call(this, dataSource, 'currentTab') + ) + })} +
+
+ {showUploader && ( + + )} +
+
+ {show && ( + + )} +
+ {/* 指派 */} + {compositedisplay && ( + { + this.setState({ compositedisplay: false }); + }} + /> + )} + { + this.setState({ showTrack: false }); + }} + pk={this.state.pk} + type={PMO_LIST.billType} + /> + {createModal('viewverDlg')} + {createModal('batcheditDlg')} + {createModal('code-config')} + {createModal('ResumeMessageDlg', { + className: 'iframe-modal', + size: 'xlg' + })} + {createModal('SetDeliverDlg')} + {createModal('SetBackDeliverDlg')} + {createModal('BackDeliverDlg')} + {createModal('NoItemDeliverDlg')} + + {/* 产能分流 */} + {showpmoturn && ( + + )} + {/* 序列号*/} + {showSN && ( + + )} + {excelExportShow && ( + + )} +
+ ); + } +} + +PmoList = createPage({ + billinfo: { + billtype: 'grid', + pagecode: pageId, + bodycode: tableId + } +})(PmoList); + +export default PmoList; diff --git a/src/mmpac/mmpac/pmo/list/init/index.js b/src/mmpac/mmpac/pmo/list/init/index.js new file mode 100644 index 00000000..7b3a7d96 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/init/index.js @@ -0,0 +1,2 @@ +import initTemplate from './initTemplate'; +export {initTemplate}; diff --git a/src/mmpac/mmpac/pmo/list/init/initTemplate.js b/src/mmpac/mmpac/pmo/list/init/initTemplate.js new file mode 100644 index 00000000..af2c0f30 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/init/initTemplate.js @@ -0,0 +1,446 @@ +/** + * 模板初始化 + */ + +import { base, ajax, toast, cacheTools, getGlobalStorage, removeGlobalStorage, cardCache } from 'nc-lightapp-front'; +import { PMO_LIST, PMO_CARD, DATECONST, PMO_LIST_BUTTON, HEADATTRCODE } from '../../pmoconst'; +import buttonClick from '../btnclicks/buttonClick'; +import { buttonController, btnClickController } from '../viewControl'; +import { transtypeUtils, setPsndocShowLeavePower, setRefShowDisabledData } from '../../../../../mmpub/mmpub/pub/tool'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { conf as unitConf } from '../../../../../uapbd/refer/org/FactoryGridRef/index'; +//excel导入工具类(平台提供) +import excelImportconfig from '../../../../../uap/common/components/excelImportconfig'; +let tableId = PMO_LIST.tableId; +let searchId = PMO_LIST.searchId; +let listpageid = PMO_LIST.pageid; +const linkItem = PMO_LIST.vbillcode; +const cpmohid = HEADATTRCODE.CPMOHID; +const deleteUrl = PMO_LIST.deleteURL; +const { getDefData, setDefData } = cardCache; +export default function(props) { + //查询按钮使用 + this.props.createUIDom( + { + pagecode: listpageid + }, + (templedata) => { + if (templedata) { + transtypeUtils.init.call(this, templedata.context); + if (templedata.template) { + let meta = templedata.template; + transtypeUtils.initQuery.call(this, this.props, meta, searchId, HEADATTRCODE.CTRANTYPEID); + meta = modifierMeta.call(this, this.props, meta); + props.meta.setMeta(meta); + //设置查询模板默认值 + //setQueryDefault.call(this, this.props, meta); + } + if (templedata.button) { + let button = templedata.button; + //初始化excel导入按钮 + initExcelImportConfig.call(this, props); + props.button.setButtons(button); + buttonController.setListButtonVisiable(this.props, PMO_LIST.toCommit); + props.button.setPopContent( + PMO_LIST_BUTTON.delete, + getLangByResId(this, '50080000-000103') /* 国际化处理: 确定要删除吗?*/ + ); + } + toggleShow.call(this); + } + } + ); + function modifierMeta(props, meta) { + let noshowOrgFileds = [ + HEADATTRCODE.APPROVER, + HEADATTRCODE.BILLMAKER, + 'mm_mo.mocloser', + 'mm_mo.vfirsttrantypeid', + 'mm_mo.vfirsttype', + 'mm_mo.vsrctype', + 'mm_mo.vsrctrantypeid' + ]; + meta[searchId].items.map((item) => { + setPsndocShowLeavePower(item); + setRefShowDisabledData(item); + if (item.attrcode == HEADATTRCODE.PK_ORG) { + //设置可多选 + item.isMultiSelectedEnabled = true; + //主组织权限过滤 + item.queryCondition = () => { + return { GridRefActionExt: 'nccloud.web.mmpub.pub.ref.AppPermissionOrgRefFilter' }; + }; + } else if (item.attrcode == HEADATTRCODE.PK_ORG_V) { + //设置可多选 + item.isMultiSelectedEnabled = true; + //主组织权限过滤 + item.queryCondition = () => { + return { GridRefActionExt: 'nccloud.web.mmpub.pub.ref.AppPermissionOrgVidRefFilter' }; + }; + } else if (item.attrcode == HEADATTRCODE.CPLANFACTORYID) { + //设置可多选 + item.isMultiSelectedEnabled = true; + //主组织权限过滤 + item.queryCondition = () => { + return { + orgtype: 'PRODUCEPLANTYPE00000', + GridRefActionExt: 'nccloud.web.mmpub.pub.ref.OrgTypePermissionOrgRefFilter' + }; + //return { GridRefActionExt: 'nccloud.web.mmpub.pub.ref.AppPermissionOrgRefFilter' }; + }; + } else if (item.attrcode == HEADATTRCODE.CPLANFACTORYVID) { + //设置可多选 + item.isMultiSelectedEnabled = true; + //主组织权限过滤 + item.queryCondition = () => { + return { + orgtype: 'PRODUCEPLANTYPE00000', + GridRefActionExt: 'nccloud.web.mmpub.pub.ref.OrgTypePermissionOrgVidRefFilter' + }; + //return { GridRefActionExt: 'nccloud.web.mmpub.pub.ref.AppPermissionOrgVidRefFilter' }; + }; + } else if (item.attrcode == HEADATTRCODE.CTRANTYPEID) { + //设置交易类型 + item.queryCondition = () => { + return { parentbilltype: PMO_LIST.billType }; + }; + } else if (item.attrcode == 'mm_mo.cmaterialid' || item.attrcode == 'mm_mo.cmaterialvid') { + item.isShowUnit = true; + item.queryCondition = () => { + let pk_org = props.search.getSearchValByField(searchId, HEADATTRCODE.PK_ORG); + let condition = { productmode: 1 }; + pk_org = + pk_org != null + ? pk_org.value.firstvalue.includes(',') ? null : pk_org.value.firstvalue + : null; + if (pk_org) { + condition.pk_org = pk_org; + } + condition.productmode = 1; + condition.matchmode = 2; + if (item.attrcode == 'mm_mo.cmaterialid') { + condition.GridRefActionExt = 'nccloud.web.mmpub.pub.ref.MaterialoidRefSqlBuilder'; + } else { + condition.GridRefActionExt = 'nccloud.web.mmpub.pub.ref.MaterialRefSqlBuilder'; + } + return condition; + }; + } else if (item.attrcode == 'mm_mo.cdeptid' || item.attrcode == 'mm_mo.cdeptvid') { + item.isShowUnit = true; + //生产部门 + item.queryCondition = () => { + let data = props.search.getSearchValByField(searchId, HEADATTRCODE.PK_ORG); + data = data != null ? (data.value.firstvalue.includes(',') ? null : data.value.firstvalue) : null; + return { pk_org: data, busifuncode: 'fa' }; + }; + } else if (item.attrcode == 'mm_mo.cwkid') { + //生产线 + item.isShowUnit = true; + item.refName = getLangByResId(this, '50080000-000107') /*生产线*/; + item.queryCondition = () => { + let data = props.search.getSearchValByField(searchId, HEADATTRCODE.PK_ORG); + data = data != null ? (data.value.firstvalue.includes(',') ? null : data.value.firstvalue) : null; + let cdeptid = props.search.getSearchValByField(searchId, 'mm_mo.cdeptid'); + //支持生产部门多选 + cdeptid = cdeptid.value.firstvalue; + let condition = { + pk_org: data, + bprodline: 'Y', + GridRefActionExt: 'nccloud.web.mmpub.pub.ref.WorkCenterRefSqlBuilder' + }; + if (cdeptid) { + condition.pk_dept = cdeptid; + } + return condition; + }; + } else if (item.attrcode == 'mm_mo.cemployeeid') { + item.isShowUnit = true; + item.queryCondition = () => { + let data = props.search.getSearchValByField(searchId, HEADATTRCODE.PK_ORG); + data = data != null ? (data.value.firstvalue.includes(',') ? null : data.value.firstvalue) : null; + return { pk_org: data, busifuncode: 'fa' }; + }; + } else if (item.attrcode == 'mm_mo.cffileid') { + item.queryCondition = () => { + let cmaterialid = props.search.getSearchValByField(searchId, 'mm_mo.cmaterialid').value.firstvalue; + let condition = {}; + condition.pk_group = window.parent.GETBUSINESSINFO().groupId; + condition.cmaterialid = cmaterialid; + return condition; + }; + } else if (item.attrcode == 'mm_mo.ccustmaterialid') { + item.queryCondition = () => { + let cmaterialid = props.search.getSearchValByField(searchId, 'mm_mo.cmaterialid'); + let pk_org = props.search.getSearchValByField(searchId, HEADATTRCODE.PK_ORG); + let condition = {}; + condition.pk_org = + pk_org && pk_org.value + ? pk_org.value.firstvalue.includes(',') ? null : pk_org.value.firstvalue + : null; + return condition; + }; + } else if (item.attrcode == 'mm_mo.tplanstarttime') { + //这里是不是要设置默认值 + let curdays = []; + curdays.push('#day(0)#'); + curdays.push('#day(0)#'); + item.initialvalue = { + display: getLangByResId(this, '50080000-000104'), + value: curdays + }; /* 国际化处理: 今天,今天*/ + } else if (item.attrcode == 'mm_mo.cclassid') { + item.queryCondition = () => { + item.isShowUnit = true; + let pkorg = props.search.getSearchValByField(searchId, HEADATTRCODE.PK_ORG); + pkorg = + pkorg != null ? (pkorg.value.firstvalue.includes(',') ? null : pkorg.value.firstvalue) : null; + let cwkid = props.search.getSearchValByField(searchId, 'mm_mo.cwkid'); + cwkid = cwkid.value.firstvalue; + let condition = { + pk_org: pkorg, + orgshifttype: '2', + GridRefActionExt: 'nccloud.web.mmpub.pub.ref.ShiftRefSqlBuilder' + }; + if (cwkid) { + condition.cwkid = cwkid; + } + return condition; + }; + item.unitProps = unitConf; + } else if (item.attrcode == 'mm_mo.cteamid') { + item.queryCondition = () => { + let pk_org = props.search.getSearchValByField(searchId, HEADATTRCODE.PK_ORG); + pk_org = + pk_org != null + ? pk_org.value.firstvalue.includes(',') ? null : pk_org.value.firstvalue + : null; + return { + pk_org: pk_org, + GridRefActionExt: 'nccloud.web.mmpub.pub.ref.TeamRefSqlBuilder' + }; + }; + item.unitProps = unitConf; + } else if (item.attrcode == HEADATTRCODE.FBILLSTATUS) { + if ((item.options.value = 2)) { + item.options.splice(2, 1); + } + } else if (noshowOrgFileds.includes(item.attrcode)) { + item.queryCondition = () => { + //用户档案的人,不需要显示业务单元 + let data = props.search.getSearchValByField(searchId, HEADATTRCODE.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, HEADATTRCODE.PK_ORG); + data = data != null ? (data.value.firstvalue.includes(',') ? null : data.value.firstvalue) : null; + return { pk_org: data }; + }; + } + }); + // } + //设置显示页码 + meta[tableId].pagination = true; + meta[tableId].items = meta[tableId].items.map((item, key) => { + if (item.attrcode == linkItem) { + item.render = (text, record, index) => { + return ( + { + // let searchVal = props.search.getAllSearchData(searchId); + // cacheTools.set('searchParams', searchVal); + props.pushTo(PMO_CARD.cardUrl, { + pagecode: PMO_CARD.pageid, + status: PMO_CARD.browse, + id: record[cpmohid].value //列表卡片传参 + }); + }} + > + {record && record[linkItem] && record[linkItem].value} + + ); + }; + } + return item; + }); + //添加操作列 + let porCol = { + attrcode: 'opr', + label: getLangByResId(this, '50080000-000061') /* 国际化处理: 操作*/ /* 国际化处理: 操作*/, + //attrcode: 'pay_opr', + itemtype: 'customer', //默认必输 + fixed: 'right', //锁定操作列 + visible: true, + width: '200px', + render: (text, record, index) => { + let state = record.fbillstatus.value; + let buttonAry = buttonController.setRowButtons(state); + return props.button.createOprationButton(buttonAry, { + area: PMO_LIST_BUTTON.list_inner, + buttonLimit: 3, + ignoreHotkeyCode: buttonAry, + onButtonClick: (props, key) => buttonClick.call(this, props, key, text, record, index) + }); + } + }; + // 将操作列添加到列表态的table中 + meta[tableId].items.push(porCol); + return meta; + } + function setQueryDefault(props, meta) { + let searchVal = cacheTools.get('searchVal'); + if (!searchVal) { + props.search.setSearchValue(searchId, [ + { + field: 'mm_mo.tplanstarttime', + oprtype: 'between', + value: { firstvalue: '#day(0)#', secondvalue: '#day(0)#' } + } + ]); + } + } + + /** + * 处理生产大屏数据穿透 + */ + 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: PMO_LIST.queryByCondURL, + data: paramdata, + success: (res) => { + if (res.success) { + if (res.data) { + //调用查询方法 + setDefData(PMO_LIST.dataSource, 'currentTab', PMO_LIST.all); + this.setState({ + currentTab: PMO_LIST.all + }); + let rowsData = { rows: [] }; + if (res.data.currentGrid && res.data.currentGrid[tableId]) { + rowsData = res.data.currentGrid[tableId]; + } + this.props.table.setAllTableData(tableId, rowsData); + buttonController.setListButtonVisiable(this.props, PMO_LIST.all); + } + } + removeGlobalStorage('localStorage', 'QueryCriteria'); + } + }); + } + } + function toggleShow() { + //处理生产大屏数据穿透 + process4dashboard.call(this); + if (!this.linkquery) { + return; + } + let _this = this; + //这里需要处理下计划订单联查流程生产订单服务 + let linkparam = cacheTools.get('55B4LinkTo55A2'); + if (!linkparam) { + //配套变更建议 + linkparam = cacheTools.get('mosLinkTo55A2'); + } + + let linkkey = props.getUrlParam(PMO_LIST.LINK_KEY); + //供应链控制台 + if (!linkparam && linkkey) { + linkparam = cacheTools.get(linkkey); + } + let pageInfo = this.props.table.getTablePageInfo(tableId); //分页信息 + //处理其他单据联查 + if (linkparam) { + //this.linkquery = true; + if (linkparam) { + let ids = linkparam.linkids; + if (ids) { + let condition = 'querybyid'; + let byids = JSON.stringify(ids); + let paramdata = + condition + + '#' + + PMO_LIST.pageid + + '#' + + byids + + '#' + + '' + + '#' + + pageInfo.pageSize + + '#' + + pageInfo.pageIndex; + ajax({ + url: PMO_LIST.queryByCondURL, + data: paramdata, + success: (res) => { + if (res.success) { + if (res.data) { + //调用查询方法 + setDefData(PMO_LIST.dataSource, 'currentTab', PMO_LIST.all); + this.setState({ + currentTab: PMO_LIST.all + }); + let rowsData = { rows: [] }; + if (res.data.currentGrid && res.data.currentGrid[tableId]) { + rowsData = res.data.currentGrid[tableId]; + } + this.props.table.setAllTableData(tableId, rowsData); + buttonController.setListButtonVisiable(this.props, PMO_LIST.all); + } + } + } + }); + } + } + if (linkkey) { + this.props.setUrlParam({ [PMO_LIST.LINK_KEY]: null }); + cacheTools.remove(linkkey); + } + } + } + //初始化Excel导入配置 + function initExcelImportConfig(props) { + //导入主子表 + let excelimportconfig = excelImportconfig( + props, + PMO_LIST.excelOutput.module, + PMO_LIST.excelOutput.billtype, + true, + '', + { + appcode: PMO_LIST.appcode, + pagecode: PMO_CARD.pageimportid + }, + () => { + //导入按钮的回调 + buttonClick.call(this, props, PMO_LIST_BUTTON.Import); + } + ); + props.button.setUploadConfig(PMO_LIST_BUTTON.Import, excelimportconfig); + } +} diff --git a/src/mmpac/mmpac/pmo/list/util/busiOperUtils.js b/src/mmpac/mmpac/pmo/list/util/busiOperUtils.js new file mode 100644 index 00000000..edd2f613 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/util/busiOperUtils.js @@ -0,0 +1,55 @@ +import { ajax } from 'nc-lightapp-front'; +import { PMO_LIST } from '../../pmoconst'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { showSuccessInfo, showErrorInfo, showWarningInfo,showBatchOprMessage } from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { buttonController } from '../viewControl'; +let tableId = PMO_LIST.tableId; +/** + * 业务操作抽取类。投放/取消投放/等卡片界面公共业务抽取类 + * @param {*} props + * @param {*} url + * @param {*} data + * @param {*} hintMsg + */ +export default function busiOper(props, url, data, hintMsg) { + let rows = props.table.getCheckedRows(tableId); + ajax({ + url: url, + data, + success: (res) => { + if (res.success) { + if (res.data) { + if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { + // 成功的index + let sucIndex = []; + rows.forEach((element, index) => { + if (!res.data.errorMessageMap[index]) { + sucIndex.push(element.index); + } + }); + } else { + let succIndex = []; + rows.forEach((element, index) => { + succIndex.push(element.index); + }); + } + if (res.data.sucessVOs) { + res.data.sucessVOs[tableId].rows.map((item, index) => { + item.rowId = item.rowid; + }); + this.props.table.updateTableData(tableId, res.data.sucessVOs[tableId]); + } + buttonController.setListButtonVisiable(props, this.state.currentTab); + showBatchOprMessage( + hintMsg, + res.data, + {}, + getLangByResId(this, '50080000-000017')/* 国际化处理: 提示*/ + ); /* 国际化处理: 提示*/ + } else { + showErrorInfo(errorMsg); + } + } + } + }); +} diff --git a/src/mmpac/mmpac/pmo/list/util/headSelectedUtils.js b/src/mmpac/mmpac/pmo/list/util/headSelectedUtils.js new file mode 100644 index 00000000..8895fbb2 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/util/headSelectedUtils.js @@ -0,0 +1,16 @@ +import { PMO_LIST, HEADATTRCODE } from '../../pmoconst'; +const tableId = PMO_LIST.tableId; +export function headCheckedRow(props, record) { + let rows = props.table.getCheckedRows(tableId); + let inforows = []; + rows.map((item) => { + let data = { + id: item.data.values[HEADATTRCODE.CPMOHID].value, + ts: item.data.values[HEADATTRCODE.TS].value, + rowid: item.data.rowId + }; + inforows.push(data); + }); + let data = { infos: inforows, pageid: PMO_LIST.pageid }; + return data; +} \ No newline at end of file diff --git a/src/mmpac/mmpac/pmo/list/viewControl/buttonController.js b/src/mmpac/mmpac/pmo/list/viewControl/buttonController.js new file mode 100644 index 00000000..c6052e59 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/viewControl/buttonController.js @@ -0,0 +1,315 @@ +/** + * + */ +import { cardCache } from 'nc-lightapp-front'; +import { PMO_LIST, PMO_LIST_BUTTON, FBILLSTATUS } from '../../pmoconst'; +const { getDefData } = cardCache; +const dataSource = PMO_LIST.dataSource; +/** + * //根据单据的状态控制行按钮显示 + * @param {*} fbillstatus + */ +function setRowButtons(fbillstatus) { + let buttonAry = + fbillstatus === FBILLSTATUS.free + ? [ + PMO_LIST_BUTTON.commit, + PMO_LIST_BUTTON.editrow, + PMO_LIST_BUTTON.delete, + PMO_LIST_BUTTON.copy, + PMO_LIST_BUTTON.ApproveInfo, + PMO_LIST_BUTTON.pmoviewver + ] + : fbillstatus === FBILLSTATUS.unapproved + ? [ + PMO_LIST_BUTTON.editrow, + //PMO_LIST_BUTTON.delete, + PMO_LIST_BUTTON.copy, + PMO_LIST_BUTTON.ApproveInfo, + PMO_LIST_BUTTON.pmoviewver + ] + : fbillstatus === FBILLSTATUS.approve + ? [ + PMO_LIST_BUTTON.editrow, + PMO_LIST_BUTTON.uncommit, + PMO_LIST_BUTTON.copy, + PMO_LIST_BUTTON.ApproveInfo, + PMO_LIST_BUTTON.pmoviewver + ] + : fbillstatus === FBILLSTATUS.approved + ? [ + PMO_LIST_BUTTON.editrow, + PMO_LIST_BUTTON.pmoadjust, + PMO_LIST_BUTTON.copy, + PMO_LIST_BUTTON.ApproveInfo, + PMO_LIST_BUTTON.pmoviewver + ] + : [ PMO_LIST_BUTTON.copy, PMO_LIST_BUTTON.ApproveInfo, PMO_LIST_BUTTON.pmoviewver ]; + return buttonAry; +} +/** + * //1.优先根据界面状态判断显示按钮显示 + // 2.再根据单据状态控制按钮显示 + * @param {*} props + * @param {*} tabCode 页签标识 + */ +function setListButtonVisiable(props, tabCode) { + let rows = props.table.getCheckedRows(PMO_LIST.tableId); + if (tabCode == null) { + //rows.length = 0; + tabCode = PMO_LIST.all; + } + let trueFlag = true; + // 初始化全部不可见 + let Add = false; + //删除 + let Delete = trueFlag; + //提交 + let Commit = trueFlag; + //收回 + let UnCommit = trueFlag; + //批改 + let BatchEdit = trueFlag; + //变更 + let PMOAdjust = trueFlag; + //投放 + let Put = trueFlag; + //取消投放 + let UnPut = trueFlag; + //强制完工 + let Finish = trueFlag; + //取消完工 + let UnFinish = trueFlag; + //强制关闭 + let Close = trueFlag; + //自动关闭 + let AutoClose = trueFlag; + //取消关闭 + let UnClose = trueFlag; + //let DeliverOper = false; + //生产领料 + let PMODeliver = trueFlag; + //无备料领料 + let PMOUnpickmDeliver = trueFlag; + //成套领料 + let PMODeliverSet = trueFlag; + //补成套领料 + let PMODeliverFillSet = trueFlag; + //成套退料 + let PMODeliverSetBack = trueFlag; + //退料处理 + let PMODeliverBack = trueFlag; + //备料计划 + let PMOPickm = trueFlag; + //工序委外计划 + let PMOPscplan = trueFlag; + //投放计划 + let PMOToPutPlan = trueFlag; + //配套变更建议 + let PMOMos = trueFlag; + //产能分流 + let PMOTurn = trueFlag; + //备料重算 + let PMOPickmRecalAction = trueFlag; + //作业量维护 + let PMOActivity = trueFlag; + //齐套分析 + let PMOSetAnalysis = trueFlag; + //分次投放 + let PMOresolve = trueFlag; + //序列号 + let pmosn = trueFlag; + //报废补单 + let PMOScrapAdd = trueFlag; + let PMODispatchlist = trueFlag; //工序派工 + let PMOOperationRep = trueFlag; //工序完工 + let PMOTransfer = trueFlag; //工序转移 + let FZMenu = trueFlag; + //单据追溯 + let Trace = trueFlag; + //审批详情 + let ApproveInfo = trueFlag; + //附件 + let File = trueFlag; + //查看变更历史 + let PMOViewVer = trueFlag; + //打印 + let Print = trueFlag; + //输出 + let Output = trueFlag; + //打印联副产品 + let PrintPlanOut = trueFlag; + //打印工序计划 + let PrintProcedure = trueFlag; + //直接打印条码 + let PMOBCDirectPrint = trueFlag; + //打印条码 + let PMOBCPrint = trueFlag; + //刷新 + let Refresh = trueFlag; + if (getDefData(dataSource, 'searchVal')) { + Refresh = false; + } + if (rows.length > 0) { + //选择数据时,区分一条或者多选 只有选择数据的时候才控制按钮 + if (rows.length == 1) { + rows.map((item) => { + PMODeliver = false; + PMODeliverSet = false; + PMODeliverFillSet = false; + PMODeliverSetBack = false; + PMODeliverBack = false; + PMOPickm = false; + PMOPickmRecalAction = false; + PMOViewVer = false; + PMOBCDirectPrint = false; + PMOBCPrint = false; + let billStatus = item.data.values.fbillstatus.value; // 单据状态 + let approver = undefined; // 审批人 + if (item.data.values.approver && item.data.values.approver.value) { + approver = item.data.values.approver.value; + } + if (billStatus === FBILLSTATUS.free) { + //自由 + Delete = false; + BatchEdit = false; + Commit = false; + PMOSetAnalysis = false; + //pmosn = false; + } else if (billStatus === FBILLSTATUS.approve && approver == undefined) { + //审批中 + UnCommit = false; + } else if (billStatus === FBILLSTATUS.approved) { + //审批 + UnCommit = false; + Put = false; + UnPut = false; + Finish = false; + UnFinish = false; + Close = false; + AutoClose = false; + UnClose = false; + PMOActivity = false; + PMOAdjust = false; + PMOUnpickmDeliver = false; + PMOScrapAdd = false; + PMOSetAnalysis = false; + PMODispatchlist = false; + PMOOperationRep = false; + PMOTransfer = false; + } else if (billStatus === FBILLSTATUS.unapproved) { + //审批不通过 + Delete = false; + BatchEdit = false; + PMOSetAnalysis = true; + } else if (billStatus === FBILLSTATUS.commit) { + UnCommit = false; + PMOSetAnalysis = true; + } /* else { + } */ + }); + } else { + //批选时不按照页签控制了 + Delete = false; + BatchEdit = false; + Commit = false; + UnCommit = false; + Put = false; + UnPut = false; + Finish = false; + UnFinish = false; + Close = false; + AutoClose = false; + UnClose = false; + PMODeliver = false; + PMODeliverSet = false; + PMODeliverFillSet = false; + PMODeliverSetBack = false; + PMODeliverBack = false; + PMOUnpickmDeliver = false; + PMOViewVer = true; + PMOBCDirectPrint = true; + PMOBCPrint = true; + PMOPickm = false; + PMOPickmRecalAction = false; + FZMenu = false; + PMOScrapAdd = false; + PMOActivity = false; + PMOSetAnalysis = false; + PMOresolve = false; + PMODispatchlist = false; + PMOOperationRep = false; + PMOTransfer = false; + //pmosn = false; + } + File = false; + Trace = false; + PMOPscplan = false; + PMOTurn = false; + //QueryAboutBusiness = false; + Print = false; + Output = false; + PrintPlanOut = false; + PrintProcedure = false; + pmosn = false; + ApproveInfo = false; + PMOresolve = false; + PMOToPutPlan = false; + PMOMos = false; + //mergeShow = false; + } + let disableArr = { + [PMO_LIST_BUTTON.add]: Add, //新增 + [PMO_LIST_BUTTON.delete]: Delete, //删除 + [PMO_LIST_BUTTON.commit]: Commit, //提交 + [PMO_LIST_BUTTON.uncommit]: UnCommit, //收回 + [PMO_LIST_BUTTON.batchedit]: BatchEdit, //批改 + [PMO_LIST_BUTTON.pmoadjust]: PMOAdjust, //变更 + [PMO_LIST_BUTTON.put]: Put, //订单投放 + [PMO_LIST_BUTTON.unput]: UnPut, //取消投放 + [PMO_LIST_BUTTON.finish]: Finish, //强制完工 + [PMO_LIST_BUTTON.unfinish]: UnFinish, //取消完工 + [PMO_LIST_BUTTON.close]: Close, //强制关闭 + [PMO_LIST_BUTTON.autoclose]: AutoClose, //自动关闭 + [PMO_LIST_BUTTON.unclose]: UnClose, //取消关闭 + + //[PMO_LIST_BUTTON.deliveroper]: DeliverOper,//生产领料 + [PMO_LIST_BUTTON.pmodeliver]: PMODeliver, //生产领料 + [PMO_LIST_BUTTON.pmounpickmdeliver]: PMOUnpickmDeliver, //无备料领料 + [PMO_LIST_BUTTON.pmodeliverset]: PMODeliverSet, //成套领料 + [PMO_LIST_BUTTON.pmodeliverfillset]: PMODeliverFillSet, //补成套领料 + [PMO_LIST_BUTTON.pmodeliversetback]: PMODeliverSetBack, //成套退料 + [PMO_LIST_BUTTON.pmodeliverback]: PMODeliverBack, //退料处理 + [PMO_LIST_BUTTON.pmopickm]: PMOPickm, //备料计划 + [PMO_LIST_BUTTON.pmotoputplan]: PMOToPutPlan, //投放计划 + [PMO_LIST_BUTTON.pmoMos]: PMOMos, //配套变更建议 + [PMO_LIST_BUTTON.ApproveInfo]: ApproveInfo, //审批详情 + [PMO_LIST_BUTTON.pmoviewver]: PMOViewVer, //查看历史版本 + [PMO_LIST_BUTTON.pmoSetAnalysis]: PMOSetAnalysis, //齐套分析 + [PMO_LIST_BUTTON.pmoresolve]: PMOresolve, //分次投放 + [PMO_LIST_BUTTON.pmoturn]: PMOTurn, //产能分流 + [PMO_LIST_BUTTON.pmopickmrecalaction]: PMOPickmRecalAction, //备料重算 + //[PMO_LIST_BUTTON.pmotempsc]: PMOTempSC,//临时委外 + [PMO_LIST_BUTTON.pmoactivity]: PMOActivity, //作业量 + [PMO_LIST_BUTTON.pmosn]: pmosn, //序列号 + [PMO_LIST_BUTTON.pmoscrapadd]: PMOScrapAdd, //报废补单 + [PMO_LIST_BUTTON.pmoDispatchlist]: PMODispatchlist, + [PMO_LIST_BUTTON.pmoOperationRep]: PMOOperationRep, + [PMO_LIST_BUTTON.pmoTransfer]: PMOTransfer, + [PMO_LIST_BUTTON.trace]: Trace, //单据追溯 + [PMO_LIST_BUTTON.pmopscplan]: PMOPscplan, //单据追溯 + [PMO_LIST_BUTTON.file]: File, //附件 + [PMO_LIST_BUTTON.print]: Print, //打印 + [PMO_LIST_BUTTON.output]: Output, //输出 + [PMO_LIST_BUTTON.printplanout]: PrintPlanOut, //打印联副产品 + [PMO_LIST_BUTTON.printprocedure]: PrintProcedure, //打印工序计划 + [PMO_LIST_BUTTON.pmobcprint]: PMOBCPrint, //打印条码 + [PMO_LIST_BUTTON.pmobcdirectprint]: PMOBCDirectPrint, //直接打印条码 + [PMO_LIST_BUTTON.Refresh]: Refresh //刷新 + }; + props.button.setDisabled(disableArr); +} +function setListButton4Query(props) { + props.button.setDisabled({ [PMO_LIST_BUTTON.Refresh]: false }); +} +export default { setRowButtons, setListButtonVisiable, setListButton4Query }; diff --git a/src/mmpac/mmpac/pmo/list/viewControl/index.js b/src/mmpac/mmpac/pmo/list/viewControl/index.js new file mode 100644 index 00000000..627b0f35 --- /dev/null +++ b/src/mmpac/mmpac/pmo/list/viewControl/index.js @@ -0,0 +1,3 @@ +import buttonController from './buttonController'; + +export { buttonController}; diff --git a/src/mmpac/mmpac/pmo/main/config.json b/src/mmpac/mmpac/pmo/main/config.json new file mode 100644 index 00000000..d420ad48 --- /dev/null +++ b/src/mmpac/mmpac/pmo/main/config.json @@ -0,0 +1,17 @@ +{ + "dependModuleName": [ + "uap/common/components/codeConfigModal", + "uap/common/components/ApproveDetail", + "uap/common/components/NCUploader", + "uap/common/components/approvalTrans", + "ic/ic/components/billReserve" + ], + "dependjs": [ + "../../../../uap/common/components/codeConfigModal/index.js", + "../../../../uap/common/components/ApproveDetail/index.js", + "../../../../uap/common/components/NCUploader/index.js", + "../../../../uap/common/components/approvalTrans/index.js", + "../../../../ic/ic/components/billReserve/index.js" + ], + "report": true +} \ No newline at end of file diff --git a/src/mmpac/mmpac/pmo/main/index.js b/src/mmpac/mmpac/pmo/main/index.js new file mode 100644 index 00000000..11ccdf30 --- /dev/null +++ b/src/mmpac/mmpac/pmo/main/index.js @@ -0,0 +1,7 @@ +import {RenderRouter} from 'nc-lightapp-front'; +import routes from './router'; + +(function main(routers,htmlTagid){ + RenderRouter(routers,htmlTagid); +})(routes,"app"); + diff --git a/src/mmpac/mmpac/pmo/main/router.js b/src/mmpac/mmpac/pmo/main/router.js new file mode 100644 index 00000000..ce48012a --- /dev/null +++ b/src/mmpac/mmpac/pmo/main/router.js @@ -0,0 +1,25 @@ +import { asyncComponent } from 'nc-lightapp-front'; +const card = asyncComponent(() => + import(/*webpackChunkName: "mmpac/mmpac/pmo/card/card"*/ /* webpackMode: "eager" */ '../card') +); +const list = asyncComponent(() => + import(/*webpackChunkName: "mmpac/mmpac/pmo/list/list"*/ /* webpackMode: "eager" */ '../list') +); + +const routes = [ + { + path: '/', + component: list, + exact: true + }, + { + path: '/list', + component: list + }, + { + path: '/card', + component: card + } +]; + +export default routes; diff --git a/src/mmpac/mmpac/pmo/pub/batchedit/viewControl/buttonController.js b/src/mmpac/mmpac/pmo/pub/batchedit/viewControl/buttonController.js new file mode 100644 index 00000000..6dd9d6f1 --- /dev/null +++ b/src/mmpac/mmpac/pmo/pub/batchedit/viewControl/buttonController.js @@ -0,0 +1,8 @@ +import { PMO_CARD } from '../../../pmoconst'; +let formId4BatchEdit = PMO_CARD.formId4BatchEdit; +function setUIStatus(props) { + props.editTable.setStatus(formId4BatchEdit, PMO_CARD.edit); +} +export default { + setUIStatus +}; diff --git a/src/mmpac/mmpac/pmo/pub/batchedit/viewControl/index.js b/src/mmpac/mmpac/pmo/pub/batchedit/viewControl/index.js new file mode 100644 index 00000000..bd02bc71 --- /dev/null +++ b/src/mmpac/mmpac/pmo/pub/batchedit/viewControl/index.js @@ -0,0 +1,2 @@ +import buttonController from './buttonController'; +export { buttonController }; diff --git a/src/mmpac/mmpac/pmo/pub/grand/btnClicks/initData.js b/src/mmpac/mmpac/pmo/pub/grand/btnClicks/initData.js new file mode 100644 index 00000000..244c9f44 --- /dev/null +++ b/src/mmpac/mmpac/pmo/pub/grand/btnClicks/initData.js @@ -0,0 +1,45 @@ +import { toast, cardCache } from 'nc-lightapp-front'; +import { PMO_LIST,PMO_GRAND, BODYATTRCODE, GRANDATTRCODE } from '../../../pmoconst'; +import { RownoUtils } from '../../../../../../mmpub/mmpub/pub/tool/cardTableTools'; +let { + setDefData, + getDefData, + getCacheById, + updateCache, + addCache, + getNextId, + deleteCacheById +} = cardCache; +let tableId = PMO_GRAND.tableId; +let tableId4proc = PMO_GRAND.grand4proc; +let tableId4output = PMO_GRAND.grand4output; +let dataSource = PMO_LIST.dataSource; +let tabcodes = [tableId4output, tableId4proc]; +export default function initData(props) { + let id = props.getUrlParam("id"); + if (id) { + let cardData = getCacheById(id, dataSource); + this.props.cardTable.setAllTabsData( + null, + tabcodes, + null, + [] + ); +/* if (cardData) { + this.props.cardTable.setAllTabsData( + null, + tabcodes, + null, + [] + ); + } else { + this.props.cardTable.setAllTabsData( + null, + tabcodes, + null, + [] + ); + } */ + return; + } +} diff --git a/src/mmpac/mmpac/pmo/pub/grand/btnClicks/pickmrecalBtnClick.js b/src/mmpac/mmpac/pmo/pub/grand/btnClicks/pickmrecalBtnClick.js new file mode 100644 index 00000000..c3bfae97 --- /dev/null +++ b/src/mmpac/mmpac/pmo/pub/grand/btnClicks/pickmrecalBtnClick.js @@ -0,0 +1,80 @@ +/* + * @Author: fengjinga + * @PageInfo: 备料重算按钮处理 + * @Date: 2018-04-19 10:34:18 + * @Last Modified by: fengjinga + * @Last Modified time: 2018-08-10 15:00:31 + */ +import { ajax, toast } from 'nc-lightapp-front'; +import { + showWarningDialog, + showBatchOprMessage +} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import { getLangByResId } from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import { setBtnShow } from './pageInfoClick'; +import { PMO_CARD, HEADATTRCODE } from '../../pmoconst'; +const formId = PMO_CARD.formId; +const tableId = PMO_CARD.tableId; +const cardpageid = PMO_CARD.pageid; + +export default function pickmrecal(props) { + let rows = props.cardTable.getCheckedRows(tableId); + if (rows.length == 0) { + toast({ content: getLangByResId(this, '50080000-000038'), color: 'warning' });/* 国际化处理: 请选择行数据!*/ + return; + } + showWarningDialog(getLangByResId(this, '50080000-000040'), getLangByResId(this, '50080000-000041'), {/* 国际化处理: 确认信息,生产订单备料重算后备料计划数据将变更?*/ + /* 国际化处理: 生产订单备料重算后备料计划数据将变更?*/ + beSureBtnClick: pickmrecalcation.bind(this, props) + }); +} +function pickmrecalcation(props) { + let _this = this; + let data = props.createMasterChildDataSimple(cardpageid, formId, tableId); + let rows = props.cardTable.getCheckedRows(tableId); + let filterrows = []; + for (let i = 0; i < rows.length; i++) { + data.body[tableId].rows.map((item, index) => { + if (item.rowid == rows[i].data.rowid) { + filterrows.push(item); + } + }); + } + data.body[tableId].rows = filterrows; + let url = PMO_CARD.cardPickmRecal; + ajax({ + url: url, + data, + success: (res) => { + if (res.success) { + if (res.data) { + if (JSON.stringify(res.data.errorMessageMap || {}) != '{}') { + // 成功的index + let sucIndex = []; + rows.forEach((element, index) => { + if (!res.data.errorMessageMap[index]) { + sucIndex.push(element.index); + } + }); + } else { + let succIndex = []; + rows.forEach((element, index) => { + succIndex.push(element.index); + }); + } + let fbillstatus = this.props.form.getFormItemsValue(formId, HEADATTRCODE.FBILLSTATUS).value; + setBtnShow(_this,fbillstatus); + showBatchOprMessage( + getLangByResId(this, '50080000-000042'),/* 国际化处理: 操作成功*/ + res.data, + {}, + getLangByResId(this, '50080000-000017')/* 国际化处理: 提示*/ + ); /* 国际化处理: 提示*/ + } else { + toast({ content: getLangByResId(this, '50080000-000043'), color: 'error' });/* 国际化处理: 操作失败!*/ + } + } + } + }); +} + diff --git a/src/mmpac/mmpac/pmo/pub/grand/index.less b/src/mmpac/mmpac/pmo/pub/grand/index.less new file mode 100644 index 00000000..2a662753 --- /dev/null +++ b/src/mmpac/mmpac/pmo/pub/grand/index.less @@ -0,0 +1,6 @@ +.noMax { + .icon-zuidahua { + display: none + } +} + diff --git a/src/mmpac/mmpac/pmo/pub/grand/viewControl/fieldsController.js b/src/mmpac/mmpac/pmo/pub/grand/viewControl/fieldsController.js new file mode 100644 index 00000000..818b5caa --- /dev/null +++ b/src/mmpac/mmpac/pmo/pub/grand/viewControl/fieldsController.js @@ -0,0 +1,144 @@ +/* + * @Author: fengjinga + * @PageInfo: 字段编辑控制器 + * @Date: 2018-12-29 09:33:38 + * @Last Modified fengjinga + * @Last Modified time: 2019-02-27 17:42:58 + */ + +import { PMO_LIST, PMO_CARD, PMO_CARD_BUTTON, FBILLSTATUS, BODYFBILLSTATUS, HEADATTRCODE, BODYATTRCODE, itemNotEditable } from '../../pmoconst'; +let formId = PMO_CARD.formId; +let tableId = PMO_CARD.tableId; +let tableId4output = PMO_CARD.grand4output; +let tableId4proc = PMO_CARD.grand4proc; +let curitems = [ + BODYATTRCODE.NMMASTNUM, + BODYATTRCODE.NMMNUM, + BODYATTRCODE.NPLANPUTASTNUM, + BODYATTRCODE.NPLANPUTNUM, + BODYATTRCODE.TPLANSTARTTIME, + BODYATTRCODE.TPLANENDTIME, + BODYATTRCODE.TWILLENDTIME, + BODYATTRCODE.VBATCHCODE, + BODYATTRCODE.VNOTE]; +let bodydefitems = [ + BODYATTRCODE.VDEF1, + BODYATTRCODE.VDEF2, + BODYATTRCODE.VDEF3, + BODYATTRCODE.VDEF4, + BODYATTRCODE.VDEF5, + BODYATTRCODE.VDEF6, + BODYATTRCODE.VDEF7, + BODYATTRCODE.VDEF8, + BODYATTRCODE.VDEF9, + BODYATTRCODE.VDEF10, + BODYATTRCODE.VDEF11, + BODYATTRCODE.VDEF12, + BODYATTRCODE.VDEF13, + BODYATTRCODE.VDEF14, + BODYATTRCODE.VDEF15, + BODYATTRCODE.VDEF16, + BODYATTRCODE.VDEF17, + BODYATTRCODE.VDEF18, + BODYATTRCODE.VDEF19, + BODYATTRCODE.VDEF20]; +//let param = getParentURlParme(PMO_CARD.pageMsgType); + +function setItemEditableByEdit(props, record, index) { + // 产品行状态 + let itemStatus = record.values[BODYATTRCODE.FITEMSTATUS].value; + let fbillstatus = this.props.form.getFormItemsValue(formId, HEADATTRCODE.FBILLSTATUS).value; + // 订单状态为自由态时,并且产品行状态不为关闭态时,可删除产品行。 + if (FBILLSTATUS.free == fbillstatus) { + //行删除可以用 + this.props.button.setDisabled({ [PMO_CARD_BUTTON.deleteline]: false }); + //this.getItemRowDeleteAction().setEnabled(true); + if (BODYFBILLSTATUS.close == itemStatus) { + //行删除不能用 + this.props.button.setDisabled({ [PMO_CARD_BUTTON.deleteline]: true }); + //this.getItemRowDeleteAction().setEnabled(false); + } + } + // 首先,默认表体和孙表都不可编辑 + this.props.cardTable.setEditableByIndex(tableId, index, itemNotEditable, false); + //this.setGrandEditable(PMOAggVO.GRAND_PLANOUTPUT, this.planoutputNotEditable, false); + //this.setGrandEditable(PMOAggVO.GRAND_PROCEDURE, this.procedureNotEditable, false); + // 然后,判断1:产品行为计划态时,表体和孙表都可编辑 + if (BODYFBILLSTATUS.free == itemStatus) { + this.props.cardTable.setEditableByIndex(tableId, index, itemNotEditable, true); + // 表体可自动增行 + //e.getBillCardPanel().setBodyAutoAddLine(true); + // 联副产品页签可编辑 + //this.setGrandEditable(PMOAggVO.GRAND_PLANOUTPUT, this.planoutputNotEditable, true); + // 工序计划页签可编辑 + //this.setGrandEditable(PMOAggVO.GRAND_PROCEDURE, this.procedureNotEditable, true); + } + // 判断2:产品行为审批态时,表体指定字段可编辑,工序页签可编辑 + else if (BODYFBILLSTATUS.approved == itemStatus) { + this.props.cardTable.setEditableByIndex(tableId, index, curitems, true); + this.props.cardTable.setEditableByIndex(tableId, index, bodydefitems, true); + } + // 判断3:产品行为投放态时,表体指定字段可编辑,工序页签前台可编辑,后台控制 + else if (BODYFBILLSTATUS.put == itemStatus) { + + this.props.cardTable.setEditableByIndex(tableId, index, + [ + BODYATTRCODE.TWILLENDTIME, + BODYATTRCODE.VNOTE + ], true); + this.props.cardTable.setEditableByIndex(tableId, index, bodydefitems, true); + } +} +function setItemEditableByAdjust(props, record, index) { + // 产品行状态 + let itemStatus = record.values[BODYATTRCODE.FITEMSTATUS].value; + // 首先,默认设定表体和孙表都不可编辑 + this.props.cardTable.setEditableByIndex(tableId, index, itemNotEditable, false); + + //this.setGrandEditable(PMOAggVO.GRAND_PLANOUTPUT, this.planoutputNotEditable, false); + //this.setGrandEditable(PMOAggVO.GRAND_PROCEDURE, this.procedureNotEditable, false); + // 然后,判断1:产品行为计划态时,表体和孙表都可编辑 + if (BODYFBILLSTATUS.free == itemStatus) { + this.props.cardTable.setEditableByIndex(tableId, index, itemNotEditable, true); + } + // 判断2:产品行为审批态时 + else if (BODYFBILLSTATUS.approved == itemStatus) { + // 产品行可以修改:计划产出数量、计划产出主数量、计划投入数量、计划投入主数量、计划开工时间、计划完工时间、预计完工时间、生产批次号、备注 + this.props.cardTable.setEditableByIndex(tableId, index, curitems, true); + this.props.cardTable.setEditableByIndex(tableId, index, bodydefitems, true); + } + // 判断3:产品行为投放态时 + else if (BODYFBILLSTATUS.put == itemStatus) { + // 产品行可以修改:计划产出数量、计划产出主数量、计划投入数量、计划投入主数量、计划完工时间、预计完工时间、备注 + this.props.cardTable.setEditableByIndex(tableId, index, + [ + BODYATTRCODE.NMMASTNUM, + BODYATTRCODE.NMMNUM, + BODYATTRCODE.NPLANPUTASTNUM, + BODYATTRCODE.NPLANPUTNUM, + BODYATTRCODE.TPLANENDTIME, + BODYATTRCODE.TWILLENDTIME, + BODYATTRCODE.VNOTE + ], true); + // 设置表体自定义项可编辑 + this.props.cardTable.setEditableByIndex(tableId, index, bodydefitems, true); + } +} +function setAlwaysNotEditBodyItems(props, record, index) { + this.props.cardTable.setEditableByIndex(tableId, index, [BODYATTRCODE.TSUPPLYTIME, BODYATTRCODE.CUNITID], false); +} +function setNotEditHeadItems4Edit(props) { + //修改时设置表头字段不可编辑字段 + this.props.form.setFormItemsDisabled(formId, + { + [HEADATTRCODE.CPLANFACTORYID]: true, + [HEADATTRCODE.CPLANFACTORYVID]: true, + [HEADATTRCODE.CTRANTYPEID]: true + }); +} +export default { + setItemEditableByEdit, + setItemEditableByAdjust, + setAlwaysNotEditBodyItems, + setNotEditHeadItems4Edit +}; diff --git a/src/mmpac/mmpac/pmo/pub/serialno/buttons/index.js b/src/mmpac/mmpac/pmo/pub/serialno/buttons/index.js new file mode 100644 index 00000000..544c3e75 --- /dev/null +++ b/src/mmpac/mmpac/pmo/pub/serialno/buttons/index.js @@ -0,0 +1,186 @@ +/* + * @Author: + * @PageInfo: 产能分流对话框 + * @Date: 2018-05-12 09:37:38 + * @Last Modified by: fengjinga + * @Last Modified time: 2022-06-11 16:40:44 + */ +import React, { Component } from 'react'; +import ReactDOM from 'react-dom'; +import { createPage, base, ajax, deepClone, toast } from 'nc-lightapp-front'; +import { showResumeModal } from '../../../../../../mmpub/mmpub/pub/components/resumeModal'; +let { NCModal, NCButton, NCFormControl, NCButtonGroup, NCBackBtn, NCAffix } = base; +import { PMO_LIST, PMO_CARD, BODYATTRCODE, SNATTRCODE, PMO_GRAND } from '../../../pmoconst'; +import { getSelectedRowByRowID, getSelectedRow, cacheLastRow } from '../btnclicks/rowbodyClick'; +const tableId4pmoview = PMO_GRAND.tableId4pmoview; +const tableId4serialno = PMO_GRAND.tableId4serialno; +const pageid4serialno = PMO_GRAND.pageid4serialno; +class SerialButton extends Component { + constructor(props) { + super(props); + this.state = { + + }; + initLang(this, ['50080000'], 'mmpac', initTemplate.bind(this, this.props)); + } + onOkBtnClick = (props) => { + let indexRow = props.table.getClickRowIndex(tableId4pmoview); + if (indexRow && indexRow.index != -1) { + let rowdata = getSelectedRow.call(this, this.props, indexRow.index); + let rowid = rowdata.values[BODYATTRCODE.CMOID].value; + if (rowid == undefined || rowid == '') { + rowid = rowdata.rowid; + } + let finalRow = getSelectedRowByRowID.call(this, this.props, rowid); + let finalsnvos = cacheLastRow.call(this, this.props, finalRow, props.status) + this.state.allsnvos[rowid] = finalsnvos; + } + this.props.okBtnClick(this.state.allsnvos); + }; + + + printbar() { + + } + createserialno(props) { + let id2Num = {}; + let allsnvos = this.state.allsnvos; + for (let i = 0; i < this.props.tableData.rows.length; i++) { + let cmoid = this.props.tableData.rows[i].values[BODYATTRCODE.CMOID].value; + if (cmoid == null) { + cmoid = this.props.tableData.rows[i].rowid; + } + if (allsnvos[cmoid] && allsnvos[cmoid][tableId4serialno] && allsnvos[cmoid][tableId4serialno].rows) { + id2Num[cmoid] = allsnvos[cmoid][tableId4serialno].rows.length.toString(); + } + } + let data = { pageid: PMO_GRAND.pageid4serialno, model: this.props.tableData, userjson: JSON.stringify(id2Num) } + ajax({ + url: PMO_CARD.createSN, + data: data, + async: false, + success: (res) => { + this.props.beforeUpdatePage(); + if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { + props.dealFormulamsg(res.formulamsg); + } + if (res.success) { + if (res.data) { + let allsnvos = this.state.allsnvos; + //将返回的数据合并到allsnvos中 + for (let i = 0; i < this.props.tableData.rows.length; i++) { + let cmoid = this.props.tableData.rows[i].values[BODYATTRCODE.CMOID].value; + if (cmoid == null) { + cmoid = this.props.tableData.rows[i].rowid; + } + if (res.data[cmoid] && res.data[cmoid][tableId4serialno] && res.data[cmoid][tableId4serialno].rows) { + let allrows = []; + res.data[cmoid][tableId4serialno].rows.map((item, index) => { + allrows.push(item); + }); + if (allsnvos[cmoid]) { + if (allsnvos[cmoid][tableId4serialno] && allsnvos[cmoid][tableId4serialno].rows) { + allsnvos[cmoid][tableId4serialno].rows.map((item, index) => { + allrows.push(item); + }); + } + } + if (allrows) { + allsnvos[cmoid][tableId4serialno].rows = allrows; + //this.state.allsnvos = allsnvos; + } + } + } + //更新当前选中行 + let indexRow = props.table.getClickRowIndex(tableId4pmoview); + if (indexRow && indexRow.index != -1) { + let rowdata = getSelectedRow.call(this, this.props, indexRow.index); + let rowid = rowdata.values[BODYATTRCODE.CMOID].value; + if (rowid == undefined || rowid == '') { + rowid = rowdata.rowid; + } + if (allsnvos[rowid]) { + props.editTable.setTableData(tableId4serialno, allsnvos[rowid][tableId4serialno]); + } + } + } + } + this.props.updatePage(null, tableId4serialno); + } + }); + } + + onCancelBtnClick = (props) => { + this.state.lastSelectedRow = -1; + //this.state.initRender = true; + this.props.cancel(); + } + + getSelectedRow = (props, selectedIndex) => { + let alldatas = props.table.getAllTableData(tableId4pmoview); + let allrows = alldatas.rows; + if (selectedIndex != undefined && selectedIndex != -1) { + return allrows[selectedIndex]; + } + return null; + } + setSnValues = (props, srcattrcodes, destattrcodes, bodycurIndex, cursnIndex) => { + for (let i = 0; i < srcattrcodes.length; i++) { + let attrJson = this.getTableValByKeyAndIndex(props, tableId4pmoview, bodycurIndex, srcattrcodes[i]); + props.editTable.setValByKeyAndIndex(tableId4serialno, cursnIndex, destattrcodes[i], attrJson); + } + + } + getTableValByKeyAndIndex = (props, tableId, index, key) => { + if (index == -1) { + return { value: '' }; + } + let alldatas = props.table.getAllTableData(tableId); + let allrows = alldatas.rows; + let valueJson = allrows[index].values[key]; + return valueJson; + } + + render() { + const { + show, + onHide, + cancel, + okBtnClick, + table, + editTable, + cardTable, + tableData, + //pmobodys, + status, + allsnvos, + //iscard + } = this.props; + + return ( +
+ { + this.printbar(this.props); + }}>getLangByResId(this, '50080000-000124')/* 国际化处理: 直接打印条码*/ + { + this.printbar(this.props); + }}>getLangByResId(this, '50080000-000125')/* 国际化处理: 打印条形吗*/ + { + this.createserialno(this.props); + }}>getLangByResId(this, '50080000-000126')/* 国际化处理: 生成序列号*/ + { + this.onOkBtnClick(this.props); + }}>getLangByResId(this, '50080000-000005')/* 国际化处理: 确定*/ + { + this.onCancelBtnClick(this.props); + }}>getLangByResId(this, '50080000-000006')/* 国际化处理: 取消*/ +
+ ); + } +} +SerialButton = createPage({ + billinfo: { + + } +})(SerialButton); +export default SerialButton; diff --git a/src/mmpac/mmpac/pmo/transtype/config.json b/src/mmpac/mmpac/pmo/transtype/config.json new file mode 100644 index 00000000..db3b8cde --- /dev/null +++ b/src/mmpac/mmpac/pmo/transtype/config.json @@ -0,0 +1,3 @@ +{ + "hash": false +} diff --git a/src/mmpac/mmpac/pmo/transtype/index.js b/src/mmpac/mmpac/pmo/transtype/index.js new file mode 100644 index 00000000..f6b8166e --- /dev/null +++ b/src/mmpac/mmpac/pmo/transtype/index.js @@ -0,0 +1,158 @@ +/* + * @Author: fengjinga + * @PageInfo: 流程生产订单交易类型扩展属性面板 + * @Date: 2022-03-19 19:53:32 + * @Last Modified by: fengjinga + * @Last Modified time: 2022-03-19 19:53:32 + */ + +import React, { Component } from 'react'; +import ReactDOM from 'react-dom'; +import { createPage, ajax } from 'nc-lightapp-front'; +import { initTemplate } from './init'; +import { getLangByResId, initLang } from '../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +//区域ID +const FORMID = 'extendAttribute'; +//状态常量 +const STATE = { + ADD: 'add', + EDIT: 'edit', + CANCEL: 'cancel', + BROWSE: 'browse' +}; +class PmoExtendAttribute extends Component { + constructor(props) { + super(props); + //use注册组件 + props.use.form(FORMID); + } + + /********componentDidMount是固定的********** */ + componentDidMount() { + if (document.getElementById('extInfo').onclick != null) { + document.getElementById('extInfo').onclick(this.showData); + } + if (document.getElementById('extInfo').method != null) { + document.getElementById('extInfo').method(this.props.form.getAllFormValue); + } + } + componentWillMount() { + initLang(this, ['50080000'], 'mmpac', initTemplate.bind(this, this.props)); + } + /********setExtendPaneStat是固定********** */ + setExtendPaneStat() { + let extendStat = document.getElementById('extInfo').getAttribute('extendStat'); + return extendStat; + } + + /********getExtendData是固定********** */ + getExtendData(extendAttribute) { + let obj = this.props.form.getAllFormValue(FORMID); + return obj; + } + + //请求列表数据 + showData = (pk_billtypeid) => { + //状态 add, edit,cancel,browse 其中 add edit cancel分别对应动作 新增 修改 取消 + //pk_billtypeid 为单机类型编码 + let stat = this.setExtendPaneStat(); + if (pk_billtypeid instanceof Event) { + this.props.form.EmptyAllFormValue(FORMID); + return; + } + switch (stat) { + case STATE.ADD: + this.props.form.setFormStatus(FORMID, STATE.ADD); + this.setDefaultValue(); + break; + case STATE.EDIT: + this.props.form.setFormStatus(FORMID, STATE.EDIT); + break; + case STATE.CANCEL: + this.props.form.cancel(FORMID); + break; + case STATE.BROWSE: + this.props.form.setFormStatus(FORMID, STATE.BROWSE); + if (pk_billtypeid) { + this.queryData(pk_billtypeid); + } else { + this.props.form.EmptyAllFormValue(FORMID); + } + break; + default: + break; + } + }; + + //设置默认值 + setDefaultValue = () => { + this.props.form.EmptyAllFormValue(FORMID); + this.props.form.setFormItemsValue(FORMID, { + fpickmauditmode: { value: '2', display: getLangByResId(this, '50080000-000130') },/* 国际化处理: 人工独立审核*/ + fmooperationmode: { value: '3', display: getLangByResId(this, '50080000-000131') },/* 国际化处理: 订单报工*/ + freworktype: { value: '1', display: getLangByResId(this, '50080000-000132') },/* 国际化处理: 订单返工*/ + + }); + }; + + //查询数据 + queryData = (pk_billtypeid) => { + let meta = this.props.meta.getMeta(); + ajax({ + url: '/nccloud/mmpac/pmo/exttranstypequeryaction.do', + data: { + conditions: { + pk_billtypeid: pk_billtypeid, + templateid: meta.pageid + } + }, + success: (res) => { + let { success, data } = res; + if (success && data) { + this.props.form.setAllFormValue({ [FORMID]: data[FORMID] }); + } else { + this.props.form.EmptyAllFormValue(FORMID); + } + } + }); + }; + + + //编辑前事件 + beforeEvent = (props, moduleId, key, value, data) => { + //过滤报废补单类型 + if (key == 'cscrapaddtypeid') { + let meta = this.props.meta.getMeta(); + meta[moduleId].items.map((item) => { + if (item.attrcode == 'cscrapaddtypeid') { + item.queryCondition = () => { + return { parentbilltype: '55A2' }; + }; + } + }); + } + } + render() { + let { form } = this.props; + const { createForm } = form; + return ( +
+
+
{getLangByResId(this, '50080000-000133')}
{/* 国际化处理: 扩展属性*/} +
+
{createForm(FORMID, { + onBeforeEvent: this.beforeEvent.bind(this) + })}
+
+ ); + } +} + +PmoExtendAttribute = createPage( + { + // initTemplate: initTemplate + } +)(PmoExtendAttribute); + +/*********渲染位置#transtypebusi是固定的************************ */ +ReactDOM.render(, document.querySelector('#transtypebusi')); diff --git a/src/mmpac/mmpac/pmo/transtype/init/index.js b/src/mmpac/mmpac/pmo/transtype/init/index.js new file mode 100644 index 00000000..54195f48 --- /dev/null +++ b/src/mmpac/mmpac/pmo/transtype/init/index.js @@ -0,0 +1,2 @@ +import initTemplate from './initTemplate'; +export { initTemplate }; diff --git a/src/mmpac/mmpac/pmo/transtype/init/initTemplate.js b/src/mmpac/mmpac/pmo/transtype/init/initTemplate.js new file mode 100644 index 00000000..c4bf71dc --- /dev/null +++ b/src/mmpac/mmpac/pmo/transtype/init/initTemplate.js @@ -0,0 +1,29 @@ +const formId = 'extendAttribute'; +export default function (props) { + props.createUIDom( + { + pagecode: '50080000_transtype', + appcode: '50080000' + }, + (data) => { + if (data) { + if (data.template) { + let meta = data.template; + modifierMeta.call(this, this.props, meta); + props.meta.setMeta(meta); + } + } + } + ); +} +function modifierMeta(props, meta) { + meta[formId].items.map((item) => { + if (item.attrcode == 'cscrapaddtypeid') { + //设置表头类型参照过滤 根据单据类型 + item.queryCondition = () => { + return { parentbilltype: '55A2' }; + }; + } + }); + return meta; +}