diff --git a/src/ic/ic/refers/onhand/index.js b/src/ic/ic/refers/onhand/index.js new file mode 100644 index 00000000..24bd6c4e --- /dev/null +++ b/src/ic/ic/refers/onhand/index.js @@ -0,0 +1,26 @@ +import ExtendRefer from '../../components/onhandRefer'; +export default function(props = {}) { + var conf = { + multiLang: { + domainName: 'ic', + currentLocale: 'zh-CN', + moduleId: '4008pub' + }, + headRows: { rows: [] }, + //placeholder: '4008PUB-000112', + showBatch: true, + appcode: '400802202', + headTemplateCode: '400802202_head', + bodyTemplateCode: '400802202_body', + undealNumCode: 'onhandshouldnum', + thisNumCode: 'onhandcurrentnum', + isSatisfyCode: 'fulfiltype', + editable: true, + checkStrictly: false, + showHistory: false, + columnConfig: [ { name: [ '4008PUB-000112' ], code: [ 'vbatchcode' ] } ] + }; + + return ; + +} diff --git a/src/ic/ic/refers/serialNoRefer/index.js b/src/ic/ic/refers/serialNoRefer/index.js new file mode 100644 index 00000000..4a80ad92 --- /dev/null +++ b/src/ic/ic/refers/serialNoRefer/index.js @@ -0,0 +1,41 @@ +/* + * @Author: maopch + * @PageInfo: 序列号档案参照 + * @Date: 2018-05-30 18:41:29 + * @Last Modified by: raoczh + * @Last Modified time: 2019-07-16 20:28:06 + */ + +import React from 'react'; +import './index.less'; +import SerialNoRefer from './serialNoRefer'; +export default function(props = {}) { + var conf = { + multiLang: { + domainName: 'ic', + currentLocale: 'zh-CN', + moduleId: '4008serialnorefer' + }, + refType: 'grid', + refCode: 'serialNoRefer', + // placeholder: '4008SERIALNOREFER-000002' /* 国际化处理: 序列号*/, + refName: '4008SERIALNOREFER-000003' /* 国际化处理: 序列号档案*/, + columnConfig: [ + { + name: [ + '4008SERIALNOREFER-000002', + '4008SERIALNOREFER-000004' + // '4008SERIALNOREFER-000005' + // '4008SERIALNOREFER-000006' + ] /* 国际化处理: 序列号,货位,主数量,条码*/, + // code: ['vsncode', 'locname', 'nonhandnum', 'vbarcode'] + code: [ 'vsncode', 'locname' ] + } + ], + checkStrictly: false, + isMultiSelectedEnabled: true, + queryGridUrl: '/nccloud/ic/location/queryserialnoref.do', + popWindowClassName: 'serial_no_refer' + }; + return ; +} diff --git a/src/ic/ic/refers/serialNoRefer/serialNoRefer.js b/src/ic/ic/refers/serialNoRefer/serialNoRefer.js new file mode 100644 index 00000000..2da79cf8 --- /dev/null +++ b/src/ic/ic/refers/serialNoRefer/serialNoRefer.js @@ -0,0 +1,138 @@ +import React from 'react'; +import { initLang, getLangByResId } from '../../../../scmpub/scmpub/pub/tool/multiLangUtil'; +import { base, high } from 'nc-lightapp-front'; +import { deepClone } from 'src/scmpub/scmpub/pub/tool'; +const { Refer } = high; +const { PopRefer, MultiLangWrapper } = Refer; // 引入PopRefer类 +const { NCFormControl } = base; +import './index.less'; +class SerialNoRefer extends PopRefer { + constructor(props) { + super(props); + this.state = { + ...this.state, // 继承state + tableDataCopy: [], // tableData的备份 + beginCode: null, // 起始序列号 + endCode: null, // 终止序列号 + vbarcode: '' // 条形码 + }; + initLang(this, [ '4008serialnorefer', '4008pub' ], 'ic', () => {}); + } + + renderPopoverSearchArea = () => { + let { beginCode, endCode } = this.state; + return ( +
+ this.setState({ beginCode: v })} + onKeyUp={(e) => { + if (e.keyCode == 13) { + this.selectSer('begin'); + } + }} + onBlur={() => this.selectSer('begin')} + /> + - + { + this.input = ReactDOM.findDOMNode(dom); + }} + onChange={(v) => this.setState({ endCode: v })} + onKeyUp={(e) => { + if (e.keyCode == 13) { + this.selectSer('end'); + } + }} + onBlur={() => this.selectSer('end')} + /> +
+ ); + }; + + // 如果需要 [输入条形码功能] 就放开下面方法的注释 + // renderPopoverPageArea = () => { + // let { vbarcode } = this.state; + // return ( + //
+ // 请输入条形码: + // this.setState({ vbarcode: v })} + // onKeyUp={e => { + // if (e.keyCode == 13) this.filterData(); + // }} + // /> + //
+ // ); + // }; + + /** + * 通过用户输入自动勾选序列号 + */ + selectSer = (flag) => { + const { beginCode, endCode, tableData } = this.state; + let selectedValues = new Map(); + if (flag == 'begin' && !endCode) { + this.input.querySelectorAll('input')[0].focus(); + for (const row of tableData[0].rows) { + beginCode == row.refname && selectedValues.set(row.refpk, row); + } + } else if (flag == 'end' && !beginCode) { + for (const row of tableData[0].rows) { + endCode == row.refname && selectedValues.set(row.refpk, row); + } + } else { + // 后台返回数据循环 + for (const row of tableData[0].rows) { + if (beginCode <= row.refname && endCode >= row.refname) { + selectedValues.set(row.refpk, row); + } + } + } + + // selectedValues 是父类的state + this.setState({ selectedValues }); + }; + + /** + * 通过条形码过滤 + */ + filterData = () => { + const { tableData, tableDataCopy, vbarcode } = this.state; + + if (vbarcode === 0 || vbarcode) { + // 条形码input中有东西 + // deepClone 保证不指向同一内存 + let tableDatac = deepClone(tableData); + // 保存数据 + this.setState({ tableDataCopy: tableData }); + + setTimeout(() => { + tableDatac[0].rows = tableDatac[0].rows.filter((row) => { + let vbc = row.vbarcode; + if (vbc && vbc.indexOf(vbarcode) == -1) { + return row; + } + }); + + this.setState({ tableData: tableDatac }); + }, 0); + } else { + // 条形码input中没有东西 + if (tableDataCopy && tableDataCopy.length > 0) { + this.setState({ tableData: tableDataCopy }); + } + } + }; +} + +SerialNoRefer = MultiLangWrapper(SerialNoRefer); + +export default SerialNoRefer; diff --git a/src/ic/ic/refers/storeStateRefer/index.js b/src/ic/ic/refers/storeStateRefer/index.js new file mode 100644 index 00000000..cfa686c7 --- /dev/null +++ b/src/ic/ic/refers/storeStateRefer/index.js @@ -0,0 +1,35 @@ +/* + * @Author: zhengxinm + * @PageInfo: 库存状态参照 + * @Date: 2018-06-28 21:52:42 + * @Last Modified by: zhengxinm + * @Last Modified time: 2018-10-23 11:33:27 + */ + +import React from 'react'; +import { high } from 'nc-lightapp-front'; +const { Refer } = high; + +export default function(props = {}) { + var conf = { + multiLang: { + domainName: 'ic', + currentLocale: 'zh-CN', + moduleId: '4008storestaterefer' + }, + refType: 'grid', + placeholder: '4008STORESTATEREFER-000000', + refName: '4008STORESTATEREFER-000000', + refCode: 'nccloud.web.ic.pub.ref.action.StoreStateRefAction', + queryGridUrl: '/nccloud/ic/storestate/querystorestateref.do', + columnConfig: [ + { + name: ['4008STORESTATEREFER-000001', '4008STORESTATEREFER-000002'], + code: ['refcode', 'refname'] + } + ], + isMultiSelectedEnabled: false + }; + + return ; +} diff --git a/src/ic/ic/refers/vmiConditionRefer/constance.js b/src/ic/ic/refers/vmiConditionRefer/constance.js new file mode 100644 index 00000000..ab9d519c --- /dev/null +++ b/src/ic/ic/refers/vmiConditionRefer/constance.js @@ -0,0 +1,24 @@ +export default { + // 缓存key + cacheKey: 'vmiConRef', + + // 结存单位 + astuom: 'astuom', + // 批次号 + lot: 'lot', + // 辅助属性 + freeitem: 'freeitem', + // 消耗单据号 + billcode: 'billcode', + // 物料版本 + cmaterialvid: 'cmaterialvid', + + // 用料部门 + dept: 'dept', + // 成本对象 + costobject: 'costobject', + // 工序 + workproc: 'workproc', + // 生产订单 + prdorder: 'prdorder' +}; diff --git a/src/ic/ic/refers/vmiConditionRefer/index.js b/src/ic/ic/refers/vmiConditionRefer/index.js new file mode 100644 index 00000000..50dec257 --- /dev/null +++ b/src/ic/ic/refers/vmiConditionRefer/index.js @@ -0,0 +1,284 @@ +/* + * @Author: maopch + * @PageInfo: VMI汇总条件参照 + * @Date: 2018-05-30 18:41:29 + * @Last Modified by: fangmj7 + * @Last Modified time: 2021-10-11 17:04:38 + */ +import React from 'react'; +import { initLang, getLangByResId } from '../../../../scmpub/scmpub/pub/tool/multiLangUtil'; +import { base, high, cacheTools, toast, ajax } from 'nc-lightapp-front'; +import constance from './constance'; +import './index.less'; + +const { PopRefer, MultiLangWrapper } = high.Refer; // 引入PopRefer类 +const { NCCheckbox, NCCol, NCRow } = base; +const { + // 结存单位 + astuom, + // 批次号 + lot, + // 辅助属性 + freeitem, + // 消耗单据号 + billcode, + // 物料版本 + cmaterialvid, + + // 用料部门 + dept, + // 成本对象 + costobject, + // 工序 + workproc, + // 生产订单 + prdorder +} = constance; + +const fieldsetStyle = { border: 'solid 1px rgba(235, 235, 235, 1)', margin: 20 }; +const colStyle = { margin: '20px 0px' }; + +class VmiConditionRefer extends PopRefer { + constructor(props) { + super(props); + this.state = { + ...this.state, // 继承state + // 结存单位 + astuom: false, + // 批次号 + lot: false, + // 辅助属性 + freeitem: false, + // 消耗单据号 + billcode: false, + // 物料版本 + cmaterialvid: false, + + // 用料部门 + dept: false, + // 成本对象 + costobject: false, + // 工序 + workproc: false, + // 生产订单 + prdorder: false + }; + initLang(this, [ '4008vmiconditionrefer' ], 'ic', () => {}); + } + + // 去掉搜索 + renderPopoverSearchArea = () => { + return null; + }; + renderPopoverSearchExtendArea = () => { + return null; + }; + renderPopoverLeft = () => { + return
renderPopoverLeft
; + }; + renderPopoverLeftHeader = () => { + return
renderPopoverLeftHeader
; + }; + // 去掉分页 + renderPopoverPageArea = () => { + return null; + }; + /** + * 为了解决下面这个bug, 要重写这个方法 + * 消耗汇总汇总,汇总条件选择后点击查看已选,会自动把所有选中的数据清空 + * */ + + loadSelectedData = () => {}; + // renderPopoverBottom = () => { + // return
renderPopoverBottom
; + // }; + + // 复写父类方法 + // show = () => { + // let { disabled, isTreelazyLoad, queryGridUrl, isCacheable } = this.props, + // { selectedValues, isFirstShow, treeData } = this.state; + // if (disabled) { + // return false; + // } + // let param, cacheData; + // param = this.__getParam({}); + // cacheData = this.hasCache(queryGridUrl, param); + // if (!(isCacheable && cacheData)) { + // // loadTableData 获取后台返回的参数 + // this.loadTableData(param).then(data => { + // this.initState(data); + // }); + // } else { + // this.initState(cacheData); + // } + // this.setState({ + // isShow: true, + // isFirstShow: false, + // dropDownShow: false + // }); + // }; + + /** + * 初始化state + * @param {object} data 后台返回的数据 + */ + initState = (data) => { + let { selectedValues } = this.state; + let state = {}; + for (const key in data) { + if (data.hasOwnProperty(key) && this.state.hasOwnProperty(key)) { + state[key] = data[key] == 'Y' ? true : false; + if (state[key]) { + selectedValues.set(key, { + refpk: key, + refname: this.getRefName(key), + refcode: this.getRefName(key) + }); + } + } + } + this.setState(state); + }; + + /** + * 根据key 获取对应的 name + * @param {string} key + */ + getRefName = (key) => { + switch (key) { + case astuom: + return getLangByResId(this, '4008VMICONDITIONREFER-000000'); /* 国际化处理: 结存单位*/ + case lot: + return getLangByResId(this, '4008VMICONDITIONREFER-000001'); /* 国际化处理: 批次号*/ + case freeitem: + return getLangByResId(this, '4008VMICONDITIONREFER-000002'); /* 国际化处理: 辅助属性*/ + case billcode: + return getLangByResId(this, '4008VMICONDITIONREFER-000003'); /* 国际化处理: 消耗单据号*/ + case cmaterialvid: + return getLangByResId(this, '4008VMICONDITIONREFER-000004'); /* 国际化处理: 物料版本*/ + case dept: + return getLangByResId(this, '4008VMICONDITIONREFER-000005'); /* 国际化处理: 用料部门*/ + case costobject: + return getLangByResId(this, '4008VMICONDITIONREFER-000006'); /* 国际化处理: 成本对象*/ + case workproc: + return getLangByResId(this, '4008VMICONDITIONREFER-000007'); /* 国际化处理: 工序*/ + case prdorder: + return getLangByResId(this, '4008VMICONDITIONREFER-000008'); /* 国际化处理: 生产订单*/ + + default: + break; + } + }; + + renderPopoverRight = () => { + let group1 = [ + { label: getLangByResId(this, '4008VMICONDITIONREFER-000000'), code: 'astuom' } /* 国际化处理: 结存单位*/, + { label: getLangByResId(this, '4008VMICONDITIONREFER-000001'), code: 'lot' } /* 国际化处理: 批次号*/, + { + label: getLangByResId(this, '4008VMICONDITIONREFER-000002'), + code: 'freeitem' + } /* 国际化处理: 辅助属性*/, + { + label: getLangByResId(this, '4008VMICONDITIONREFER-000003'), + code: 'billcode' + } /* 国际化处理: 消耗单据号*/, + { + label: getLangByResId(this, '4008VMICONDITIONREFER-000004'), + code: 'cmaterialvid' + } /* 国际化处理: 物料版本*/ + ]; + let group2 = [ + { label: getLangByResId(this, '4008VMICONDITIONREFER-000005'), code: 'dept' } /* 国际化处理: 用料部门*/, + { + label: getLangByResId(this, '4008VMICONDITIONREFER-000006'), + code: 'costobject' + } /* 国际化处理: 成本对象*/, + { label: getLangByResId(this, '4008VMICONDITIONREFER-000007'), code: 'workproc' } /* 国际化处理: 工序*/, + { label: getLangByResId(this, '4008VMICONDITIONREFER-000008'), code: 'prdorder' } /* 国际化处理: 生产订单*/ + ]; + return ( +
+
+ {getLangByResId(this, '4008VMICONDITIONREFER-000009') /* 国际化处理: 汇总条件*/} +
+
    + {group1.map(({ code, label }) => ( +
  • + { + let { selectedValues } = this.state; + if (!selectedValues.get(code)) { + selectedValues.set(code, { refpk: code, refname: label, refcode: label }); + } else { + selectedValues.delete(code); + } + this.setState({ selectedValues }); + }} + > + {label} + +
  • + ))} +
+
+ {getLangByResId(this, '4008VMICONDITIONREFER-000011') /* 国际化处理: 出库明细汇总条件*/} +
+
    + {group2.map(({ code, label }) => ( +
  • + { + let { selectedValues } = this.state; + if (!selectedValues.get(code)) { + selectedValues.set(code, { refpk: code, refname: label, refcode: label }); + } else { + selectedValues.delete(code); + } + this.setState({ selectedValues }); + }} + > + {label} + +
  • + ))} +
+
+ ); + }; +} + +VmiConditionRefer = MultiLangWrapper(VmiConditionRefer); + +export default function(props = {}) { + var conf = { + multiLang: { + domainName: 'ic', + currentLocale: 'zh-CN', + moduleId: '4008vmiconditionrefer' + }, + refType: 'grid', + placeholder: '4008VMICONDITIONREFER-000009' /* 国际化处理: 汇总条件*/, + refName: '4008VMICONDITIONREFER-000010' /* 国际化处理: VMI汇总条件参照*/, + refCode: 'vmiConditionRefer', + isShowDisabledData: false, + isMultiSelectedEnabled: true, + showCodeWhenFocus: false, + queryGridUrl: '/nccloud/ic/vmisum/queryvmicondtionref.do' + }; + return ; + // return ( + // + // ); +} diff --git a/src/ic/ic/refers/vmiRuleRefer/index.js b/src/ic/ic/refers/vmiRuleRefer/index.js new file mode 100644 index 00000000..8f515c79 --- /dev/null +++ b/src/ic/ic/refers/vmiRuleRefer/index.js @@ -0,0 +1,38 @@ +/* + * @Author: maopch + * @PageInfo: VMI汇总条件参照 + * @Date: 2018-05-30 18:41:29 + * @Last Modified by: zhengxinm + * @Last Modified time: 2018-10-23 11:45:58 + */ +import React from 'react'; +import { high } from 'nc-lightapp-front'; +const { Refer } = high; +export default function(props = {}) { + var conf = { + multiLang: { + domainName: 'ic', + currentLocale: 'zh-CN', + moduleId: '4008vmirulerefer' + }, + refType: 'grid', + placeholder: + '4008vmirulerefer-000000' /* 国际化处理: 消耗汇总规则,消耗汇总规则*/ /* 国际化处理: 消耗汇总规则*/, + refName: '4008vmirulerefer-000000' /* 国际化处理: 消耗汇总规则,消耗汇总规则*/ /* 国际化处理: 消耗汇总规则*/, + refCode: 'nccloud.web.ic.pub.ref.action.VmiRuleRefAction', + isShowDisabledData: false, + queryGridUrl: '/nccloud/ic/vmisum/queryvmiruleref.do', + columnConfig: [ + { + name: [ + '4008vmirulerefer-000001', + '4008vmirulerefer-000002' + ] /* 国际化处理: 编码,名称,编码,名称*/ /* 国际化处理: 编码,名称*/, + code: ['vmicode', 'vminame'] + } + ], + isMultiSelectedEnabled: false + }; + + return ; +}