From 6c7652d70c2e62b7958d4d5b5a97c6cf3d8efbd1 Mon Sep 17 00:00:00 2001 From: mzr <1562242162@qq.com> Date: Fri, 5 Sep 2025 18:24:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=80=9F=E6=96=99=E5=85=A5=E5=BA=93-=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=BC=B9=E7=AA=97=E5=AD=97=E6=AE=B5=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=8F=AF=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pickm/card/btnClicks/borrowBtnClick.js | 100 ++++++++++++++++++ src/mmpac/mmpac/pickm/card/index.js | 5 +- .../card/viewController/btnClickControllor.js | 27 +---- src/mmpac/mmpac/pickm/constance/index.js | 6 +- .../pickmborrow/list/events/headAfterEvent.js | 4 + .../list/events/headBeforeEvent.js | 15 +++ .../pickm/pickmborrow/list/events/index.js | 3 + .../mmpac/pickm/pickmborrow/list/index.js | 60 +++++++++++ .../pickm/pickmborrow/list/init/index.js | 2 + .../pickmborrow/list/init/initTemplate.js | 43 ++++++++ 10 files changed, 237 insertions(+), 28 deletions(-) create mode 100644 src/mmpac/mmpac/pickm/card/btnClicks/borrowBtnClick.js create mode 100644 src/mmpac/mmpac/pickm/pickmborrow/list/events/headAfterEvent.js create mode 100644 src/mmpac/mmpac/pickm/pickmborrow/list/events/headBeforeEvent.js create mode 100644 src/mmpac/mmpac/pickm/pickmborrow/list/events/index.js create mode 100644 src/mmpac/mmpac/pickm/pickmborrow/list/index.js create mode 100644 src/mmpac/mmpac/pickm/pickmborrow/list/init/index.js create mode 100644 src/mmpac/mmpac/pickm/pickmborrow/list/init/initTemplate.js diff --git a/src/mmpac/mmpac/pickm/card/btnClicks/borrowBtnClick.js b/src/mmpac/mmpac/pickm/card/btnClicks/borrowBtnClick.js new file mode 100644 index 00000000..d35861df --- /dev/null +++ b/src/mmpac/mmpac/pickm/card/btnClicks/borrowBtnClick.js @@ -0,0 +1,100 @@ +import {ajax, base, toast} from 'nc-lightapp-front'; +import {AREA, DIALOGCODE, FIELD, URL} from '../../constance'; +import {getLangByResId} from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import {showWarningInfo} from '../../../../../mmpub/mmpub/pub/tool/messageUtil'; +import PickmBorrowDlg from "../../pickmborrow/list"; + +let {NCModal, NCButton, NCTooltip, NCHotKeys} = base; + +const TABLE_HEAD = 'borrow_list'; +export default function borrowBtnClick(props, record) { + let _this = this; + this.props = {}; + let setProps = (val) => { + this.props = val; + } + let bids = []; + let hid; + let rows = props.cardTable.getCheckedRows(AREA.bodyTable); + // 如果没有选中行,则提示并返回,不进行任何操作 + if (!rows) { + return; + } + if (rows.length <= 0) { + hid = this.props.form.getFormItemsValue(AREA.formArea, FIELD.hid).value; + } else { + rows.map((item) => { + let cpickm_bid = props.cardTable.getValByKeyAndIndex(AREA.bodyTable, item.index, 'cpickm_bid').value; + bids.push(cpickm_bid); + }); + } + let appcode = props.getAppCode(); + let param = { + cpickmid: hid, + cpickmbids: bids, + pageid: DIALOGCODE.BORROWDLG, + appcode: appcode + } + ajax({ + url: URL.pickmItemsQuery, + data: param, + success: res => { + if (res.success && res.data) { + let showData = res.data.data; + props.modal.show('BorrowDlg', { + size: 'max', + title: '借料入库明细', + content: , + userControl: true, + // leftBtnName: '', + // rightBtnName: getLangByResId(this, '5008Pickm-000013'),/* 国际化处理: 取消*/ + beSureBtnClick: oKBtnClicks.bind(this, props, true), + cancelBtnClick: () => { + props.modal.close('BorrowDlg'); + } + }); + } + } + }); +} + +function oKBtnClicks(props) { + let rowids = []; + let hids = []; + let hid; + let rows = props.table.getCheckedRows(AREA.borrowMaterialDialog); + hid = props.form.getFormItemsValue(AREA.formArea, FIELD.hid).value; + hids.push(hid); + // 如果没有选中行,则提示并返回,不进行任何操作 + if (!rows || rows.length <= 0) { + showWarningInfo('请选择行'); + return; + } + for (let i = 0; i < rows.length; i++) { + rowids.push(rows[i].data.values.cpickm_bid.value); + } + let data = { + cpickmids: hids, + cpickmbids: rowids + } + console.log('data = ', data); + ajax({ + url: URL.pickmItemsQuery, + data: data, + success: res => { + if (res.success && res.data) { + if (res.success) { + toast({color: 'success', title: "推送成功"}); + this.props.modal.close(AREA.borrowMaterialDialog); + } + } + }, + error: (error) => { + toast({ + color: 'warning', + content: error.message + }); + } + }); +} diff --git a/src/mmpac/mmpac/pickm/card/index.js b/src/mmpac/mmpac/pickm/card/index.js index b544cc15..4bf1b47b 100644 --- a/src/mmpac/mmpac/pickm/card/index.js +++ b/src/mmpac/mmpac/pickm/card/index.js @@ -272,6 +272,7 @@ class PickmCard extends Component { {createModal('TakeOverDlg', {zIndex: "300"})} {createModal('SetBackDeliverDlg', {zIndex: "280"})} {createModal('ReplaceDlg', {zIndex: "300"})} + {createModal('BorrowDlg', {zIndex: "300"})} {createModal(AREA.borrowMaterialDialog, { title: '借料入库明细', @@ -284,7 +285,7 @@ class PickmCard extends Component { let rowids = []; let hids = []; let hid; - let rows = this.props.table.getCheckedRows(AREA.borrowMaterialDialog); + let rows = this.props.table.getCheckedRows(AREA.borrowMaterialDialog); hid = this.props.form.getFormItemsValue(AREA.formArea, FIELD.hid).value; hids.push(hid); // 如果没有选中行,则提示并返回,不进行任何操作 @@ -292,7 +293,7 @@ class PickmCard extends Component { showWarningInfo('请选择行'); return; } - for (let i = 0; i < rows.length; i++){ + for (let i = 0; i < rows.length; i++) { rowids.push(rows[i].data.values.cpickm_bid.value); } let data = { diff --git a/src/mmpac/mmpac/pickm/card/viewController/btnClickControllor.js b/src/mmpac/mmpac/pickm/card/viewController/btnClickControllor.js index 38e83b46..caaa88c3 100644 --- a/src/mmpac/mmpac/pickm/card/viewController/btnClickControllor.js +++ b/src/mmpac/mmpac/pickm/card/viewController/btnClickControllor.js @@ -42,6 +42,7 @@ import {pickmTakeOver} from '../../../pub/pickmtakeover'; import {getLangByResId} from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; import {pickmBackDeliverWithSet} from '../../../pub/pickmbackdeliverwithset'; import {toast} from "../../../../../gl/public/components/utils"; +import borrowBtnClick from "../btnClicks/borrowBtnClick"; export default async function clickBtn(props, id, text, record, index) { let _this = this; @@ -818,33 +819,11 @@ export default async function clickBtn(props, id, text, record, index) { showWarningInfo(getLangByResId(this, '5008Pickm-000061')); return; } - - // console.log('selectRows = ', selectRows); - // 判断选中行的借料数量是否>0,如果存在<=0的行,则提示并返回 - let hasInvalidRow = false; - let warningMessage = getLangByResId(this, '5008Pickm-000106'); /* 国际化处理: 借料数量必须大于0!*/ - // for (const item of selectRows) { - // let values = item.data.values; - // // 借料数量 = 计划出库数量-累计出库数量-累计发货数量-累计委外数量 - // let borrowedQty = getNumber(values.nplanoutastnum) - getNumber(values.naccoutastnum) - - // getNumber(values.nshouldastnum) - getNumber(values.npscastnum); - // if (borrowedQty <= 0) { - // hasInvalidRow = true; - // // 获取行号用于提示信息 - // let vrowno = props.cardTable.getValByKeyAndIndex(AREA.bodyTable, item.index, 'vrowno'); - // warningMessage = warningMessage + ' 行号:' + `[${vrowno.value}]`; - // break; - // } - // } - // if (hasInvalidRow) { - // showErrorInfo('错误', warningMessage); - // return; - // } - billstatus = props.form.getFormItemsValue(AREA.formArea, 'fbillstatus'); //审批态 if (billstatus && billstatus.value && billstatus.value == 1) { - detailqueryBtnClick.call(this, this.props, record); + // detailqueryBtnClick.call(this, this.props, record); + borrowBtnClick.call(this, this.props, record); } else { toast({color: 'warning', title: "只有审批后单据才能生产其他入库单"}); } diff --git a/src/mmpac/mmpac/pickm/constance/index.js b/src/mmpac/mmpac/pickm/constance/index.js index 26ebc5c8..f6e66e66 100644 --- a/src/mmpac/mmpac/pickm/constance/index.js +++ b/src/mmpac/mmpac/pickm/constance/index.js @@ -10,7 +10,8 @@ const AREA = { cardHeadBtnArea: 'card_head', //卡片表头按钮区域 cardBodyBtnArea: 'card_body', //卡片表体按钮区域 cardBodyInnerBtnArea: 'card_body_inner', //卡片表体操作按钮区域 - borrowMaterialDialog: 'NCTable_83c3abf9' //借料弹窗 + borrowMaterialDialog: 'NCTable_83c3abf9', //借料弹窗 + borrowList: 'borrow_list' //借料弹窗 }; const MANUFACTURE = 'fa';//製造場景 @@ -23,7 +24,8 @@ const DIALOGCODE = { BACKDELIVERDLG: '50080102_backdeliver', SETBACKDELIVERDLG: '50080102_backdeliverwithset', TAKEOVERDLG: '50080102_takeover', - REPLACEDLG: '50080102_replace' + REPLACEDLG: '50080102_replace', + BORROWDLG: '50080102_borrow' } const LIST_BTN = { diff --git a/src/mmpac/mmpac/pickm/pickmborrow/list/events/headAfterEvent.js b/src/mmpac/mmpac/pickm/pickmborrow/list/events/headAfterEvent.js new file mode 100644 index 00000000..7e1ea810 --- /dev/null +++ b/src/mmpac/mmpac/pickm/pickmborrow/list/events/headAfterEvent.js @@ -0,0 +1,4 @@ +export default async function headAfterEvent(props, moduleId, key, value, changedrows, i) { + let headData = props.editTable.getAllData('replace_head', true); + this.props.setHeadDatas(headData); +} diff --git a/src/mmpac/mmpac/pickm/pickmborrow/list/events/headBeforeEvent.js b/src/mmpac/mmpac/pickm/pickmborrow/list/events/headBeforeEvent.js new file mode 100644 index 00000000..6784f955 --- /dev/null +++ b/src/mmpac/mmpac/pickm/pickmborrow/list/events/headBeforeEvent.js @@ -0,0 +1,15 @@ + +export default function headBeforeEvent(props, moduleId, item, index, value, record) { + let key = item.attrcode; + let editFields = ['freplacetype']; + if (!editFields.includes(key)) { + return false; + } + else if (key == 'freplacetype') { + //以替代的备料计划表体不能修改替代类型 + let replaceInfo = props.editTable.getValByKeyAndIndex(moduleId, index, 'freplaceinfo').value; + if (replaceInfo == 2) { + return false; + } + } return true; +} diff --git a/src/mmpac/mmpac/pickm/pickmborrow/list/events/index.js b/src/mmpac/mmpac/pickm/pickmborrow/list/events/index.js new file mode 100644 index 00000000..1b944cb5 --- /dev/null +++ b/src/mmpac/mmpac/pickm/pickmborrow/list/events/index.js @@ -0,0 +1,3 @@ +import headBeforeEvent from './headBeforeEvent'; +import headAfterEvent from './headAfterEvent'; +export { headBeforeEvent,headAfterEvent }; diff --git a/src/mmpac/mmpac/pickm/pickmborrow/list/index.js b/src/mmpac/mmpac/pickm/pickmborrow/list/index.js new file mode 100644 index 00000000..63239f01 --- /dev/null +++ b/src/mmpac/mmpac/pickm/pickmborrow/list/index.js @@ -0,0 +1,60 @@ +import React, {Component} from 'react'; +import {base, createPage, high} from 'nc-lightapp-front'; +import {initTemplate} from './init'; +import {initLang} from '../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +import {headAfterEvent} from './events'; +import {DIALOGCODE} from "../../constance"; + +const {Refer} = high; +const {NCModal} = base; +const TABLE_HEAD = 'borrow_list'; + +class PickmBorrowDlg extends Component { + constructor(props) { + super(props); + props.use.editTable(TABLE_HEAD); + this.state = { + totalRepNum: {} + }; + initLang(this, ['5008Pickm'], 'mmpac', initTemplate.bind(this, this.props)); + } + + componentDidMount() { + this.initData(); + } + + //请求列表数据 + initData = () => { + let showdata = this.props.showdata; + this.props.editTable.setTableData(TABLE_HEAD, showdata.borrow_list); + this.props.setProps(this.props); + }; + + render() { + let {editTable} = this.props; + let {createEditTable} = editTable; + return
+
+ {createEditTable(TABLE_HEAD, { + showIndex: true, + // height: 100, + // onRowClick: this.onRowClick.bind(this), + // onRowDoubleClick: this.onRowDoubleClick.bind(this), + // onBeforeEvent: headBeforeEvent.bind(this), + onAfterEvent: headAfterEvent.bind(this), + isAddRow: false, + showCheck: false + })} +
+
; + } +} + +PickmBorrowDlg = createPage({ + billinfo: { + billtype: 'grid', + pagecode: DIALOGCODE.BORROWDLG + }//, +})(PickmBorrowDlg); + +export default PickmBorrowDlg; diff --git a/src/mmpac/mmpac/pickm/pickmborrow/list/init/index.js b/src/mmpac/mmpac/pickm/pickmborrow/list/init/index.js new file mode 100644 index 00000000..54195f48 --- /dev/null +++ b/src/mmpac/mmpac/pickm/pickmborrow/list/init/index.js @@ -0,0 +1,2 @@ +import initTemplate from './initTemplate'; +export { initTemplate }; diff --git a/src/mmpac/mmpac/pickm/pickmborrow/list/init/initTemplate.js b/src/mmpac/mmpac/pickm/pickmborrow/list/init/initTemplate.js new file mode 100644 index 00000000..92841d5a --- /dev/null +++ b/src/mmpac/mmpac/pickm/pickmborrow/list/init/initTemplate.js @@ -0,0 +1,43 @@ +import { DIALOGCODE } from '../../../constance'; +import { getLangByResId } from '../../../../../../mmpub/mmpub/pub/tool/multiLangUtil'; +const TABLE_HEAD = 'borrow_list'; + +export default function (props) { + let appcode = props.getAppCode(); + if (props.getAppCode().startsWith('5009')) { + appcode = '50090102'; + } + else if (props.getAppCode().startsWith('5008')) { + appcode = '50080102'; + } + //请求模板数据 + props.createUIDom( + { + appcode: appcode, + pagecode: DIALOGCODE.BORROWDLG + }, + (templedata) => { + if (templedata.template) { + let meta = templedata.template; + // modifierMeta.call(this, this.props, meta); + props.meta.setMeta(meta); + props.editTable.setStatus(TABLE_HEAD, 'edit'); + // props.editTable.setStatus(TABLE_BODY, 'edit'); + } + }); +} +function modifierMeta(props, meta) { + meta[TABLE_HEAD].items.map((item) => { + if (item.attrcode == 'freplacetype') { + item.options = [{ + display: getLangByResId(this, '5008Pickm-000096')/* 国际化处理: "全部替代"*/, + value: "1" + }, { + display: getLangByResId(this, '5008Pickm-000097')/* 国际化处理: ""部分替代"*/, + value: "2" + } + ]; + } + }); + return meta; +}