销售订单关联源代码
This commit is contained in:
		
							parent
							
								
									0eca1cdd0f
								
							
						
					
					
						commit
						3bd10854a2
					
				|  | @ -1,10 +1,9 @@ | |||
| /*IGzbrQ6E+geanNSkta9fbTIiebkpHcYY5/0zqgWXSZE=*/ | ||||
| /* | ||||
|  * @Author: wangceb | ||||
|  * @PageInfo: 销售管理批次号参照编辑前事件 | ||||
|  * @Date: 2018-08-15 20:44:14 | ||||
|  * @Last Modified by: liangzhyf | ||||
|  * @Last Modified time: 2021-03-02 15:51:20 | ||||
|  * @Last Modified by: liulux | ||||
|  * @Last Modified time: 2022-11-23 23:21:51 | ||||
|  */ | ||||
| import { ajax, base } from 'nc-lightapp-front'; | ||||
| 
 | ||||
|  | @ -39,6 +38,24 @@ function SObatchcodeBeforeEdit(index, pk_org, cmaterialvid, data) { | |||
| 	return false; | ||||
| } | ||||
| 
 | ||||
| export { SObatchcodeBeforeEdit }; | ||||
| function SObatchcodeMultiBeforeEdit(map) { | ||||
| 		// 查询物料是否批次管理
 | ||||
| 		return new Promise(function(resolve) { | ||||
| 			let querydata = { | ||||
| 				map:map | ||||
| 			}; | ||||
| 			ajax({ | ||||
| 				url: '/nccloud/so/pub/batchcodeMultibefore.do', | ||||
| 				data: querydata, | ||||
| 				success: res => { | ||||
| 					if (res.data) { | ||||
| 						resolve(res.data); | ||||
| 					} else { | ||||
| 						resolve(false); | ||||
| 					} | ||||
| 				} | ||||
| 			}); | ||||
| 		}); | ||||
| } | ||||
| 
 | ||||
| /*IGzbrQ6E+geanNSkta9fbTIiebkpHcYY5/0zqgWXSZE=*/ | ||||
| export { SObatchcodeBeforeEdit,SObatchcodeMultiBeforeEdit }; | ||||
|  |  | |||
|  | @ -1,4 +1,3 @@ | |||
| /*11clYOLdEiy4eMwuItHv+04mARsYzhU2wuhooa92RoA=*/ | ||||
| /* | ||||
|  * @Author: wangceb  | ||||
|  * @PageInfo: 页面功能描述   | ||||
|  | @ -26,5 +25,3 @@ export function refBillQueryCache(refBillQueryData, dataSource, cacheKey) { | |||
| 		} | ||||
| 	}); | ||||
| } | ||||
| 
 | ||||
| /*11clYOLdEiy4eMwuItHv+04mARsYzhU2wuhooa92RoA=*/ | ||||
|  | @ -0,0 +1,30 @@ | |||
| /* | ||||
|  * @Author: wangceb | ||||
|  * @PageInfo: 销售管理批次号参照编辑前事件 | ||||
|  * @Date: 2018-08-15 20:44:14 | ||||
|  * @Last Modified by: liangzhyf | ||||
|  * @Last Modified time: 2021-03-02 15:51:20 | ||||
|  */ | ||||
| import { ajax } from 'nc-lightapp-front'; | ||||
| 
 | ||||
| function bodyrowVbatchcodeBeforeEdit(grid) { | ||||
|     return new Promise(function(resolve, reject) { | ||||
|         ajax({ | ||||
|             url: '/nccloud/so/pub/bodyrowbatchcodebefore.do', | ||||
|             data: grid, | ||||
|             success: res => { | ||||
|                 if (res.data) { | ||||
|                     let isedit = res.data; | ||||
|                     if (isedit === false) { | ||||
|                         resolve(false); | ||||
|                     } | ||||
|                     resolve(res.data); | ||||
|                 } else { | ||||
|                     resolve(false); | ||||
|                 } | ||||
|             } | ||||
|         }); | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| export { bodyrowVbatchcodeBeforeEdit }; | ||||
|  | @ -1,4 +1,3 @@ | |||
| /*TmsLFMYUeJL720Nh4y/WUD8sLe8zLJNWgl+WdKFFqiM=*/ | ||||
| /** | ||||
|  * 主组织主动触发编辑后事件 | ||||
|  * @param {*} props  | ||||
|  | @ -36,5 +35,3 @@ function edit(props, type, areacode, key, value, changedrows, index, afterEvent) | |||
| } | ||||
| 
 | ||||
| export { mainOrgEdit, editForm }; | ||||
| 
 | ||||
| /*TmsLFMYUeJL720Nh4y/WUD8sLe8zLJNWgl+WdKFFqiM=*/ | ||||
|  | @ -1,4 +1,3 @@ | |||
| /*170hMnCqNSHHX84AUgVf1stZOxJLjD3c3eco9+PidT0=*/ | ||||
| /* | ||||
| * @Author: zhangjyp  | ||||
| * @PageInfo: 计算表头合计 | ||||
|  | @ -48,5 +47,3 @@ export default function calHeadTotal(props, pageId, formId, tableId, keymaps) { | |||
| 		}); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /*170hMnCqNSHHX84AUgVf1stZOxJLjD3c3eco9+PidT0=*/ | ||||
|  | @ -1,4 +1,3 @@ | |||
| /*rJyT6t0/hN/nPeLTCKsosG8bXS+pKR6mqrO0qUy6c0U=*/ | ||||
| /* | ||||
|  * @Author: wangceb  | ||||
|  * @PageInfo: 判断是否固定换算率   | ||||
|  | @ -39,5 +38,3 @@ export default function(props, constance) { | |||
| 		}); | ||||
| 	}); | ||||
| } | ||||
| 
 | ||||
| /*rJyT6t0/hN/nPeLTCKsosG8bXS+pKR6mqrO0qUy6c0U=*/ | ||||
|  | @ -1,4 +1,3 @@ | |||
| /*rV0bQibesG0UGdyoLFMSM7410XISRh6ukPKiIb9FaMU=*/ | ||||
| /** | ||||
|  * 编辑前处理,需要物料 | ||||
|  * 这类方法必须有返回值,返回true为可编辑,false为不可编辑 | ||||
|  | @ -48,5 +47,3 @@ export default function(props, constance) { | |||
| 		} | ||||
| 	}); | ||||
| } | ||||
| 
 | ||||
| /*rV0bQibesG0UGdyoLFMSM7410XISRh6ukPKiIb9FaMU=*/ | ||||
|  | @ -1,4 +1,3 @@ | |||
| /*VN6N61ClU/zPuqLSyAXrv36kgZ5RYa4FfXkmFt0zCLI=*/ | ||||
| /** | ||||
|  * 物料自由辅助属性编辑前处理,需要物料的固定辅助属性库存状态启用 | ||||
|  * 这类方法必须有返回值,返回true为可编辑,false为不可编辑 | ||||
|  | @ -54,5 +53,3 @@ export default function (props, constance) { | |||
|         } | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| /*VN6N61ClU/zPuqLSyAXrv36kgZ5RYa4FfXkmFt0zCLI=*/ | ||||
|  | @ -1,4 +1,3 @@ | |||
| /*9s06cI9qriZwm9mh0Mrs2v5n+PTUxsbrUhg0bAz4Pfc=*/ | ||||
| /* | ||||
|  * @Author: wangceb  | ||||
|  * @PageInfo: 页面功能描述   | ||||
|  | @ -107,5 +106,3 @@ function renderCompleteEvent(moduleId, orgfield, callback, ctrantypeid) { | |||
| } | ||||
| 
 | ||||
| export { renderCompleteEvent }; | ||||
| 
 | ||||
| /*9s06cI9qriZwm9mh0Mrs2v5n+PTUxsbrUhg0bAz4Pfc=*/ | ||||
|  | @ -0,0 +1,34 @@ | |||
| /* | ||||
| * @Author: wangceb  | ||||
| * @PageInfo: 销售js工具类  | ||||
| * @Date: 2018-04-04 13:50:36  | ||||
|  * @Last Modified by: zhangjyp | ||||
|  * @Last Modified time: 2018-07-17 13:54:15 | ||||
| */ | ||||
| 
 | ||||
| function createMasterChildDataForEditTable(props, pageid, head_code, body_code) { | ||||
| 	let saveData = { | ||||
| 		pageid: pageid, | ||||
| 		head: {}, | ||||
| 		body: {} | ||||
| 	}; | ||||
| 	let metaObj = props.meta.getMeta(); | ||||
| 	if (metaObj[head_code] && metaObj[head_code].moduletype && metaObj[head_code].moduletype === 'form') { | ||||
| 		saveData.head[head_code] = props.form.getAllFormValue(head_code); | ||||
| 		saveData.head[head_code].areacode = head_code; | ||||
| 	} | ||||
| 	if (metaObj[body_code] && metaObj[body_code].moduletype && metaObj[body_code].moduletype === 'table') { | ||||
| 		saveData.body[body_code] = props.editTable.getAllData(body_code); | ||||
| 		saveData.body[body_code].areacode = body_code; // 设置伪劣
 | ||||
| 		let index = 0; | ||||
| 		saveData.body[body_code].rows.forEach((row) => { | ||||
| 			if (row.status != '3') { | ||||
| 				row.values.pseudocolumn = { value: index.toString() }; | ||||
| 				index++; | ||||
| 			} | ||||
| 		}); | ||||
| 	} | ||||
| 	return saveData; | ||||
| } | ||||
| 
 | ||||
| export { createMasterChildDataForEditTable }; | ||||
|  | @ -1,4 +1,3 @@ | |||
| /*Cb8MTr5qR67cvq+nos7DlH+FxOS12KSQ9wA1NqqlgmU=*/ | ||||
| /* | ||||
|  * @Author: wangceb  | ||||
|  * @PageInfo: 查询区常用工具   | ||||
|  | @ -19,5 +18,3 @@ function getSearchValByField(props, searchId, field) { | |||
| } | ||||
| 
 | ||||
| export { getSearchValByField }; | ||||
| 
 | ||||
| /*Cb8MTr5qR67cvq+nos7DlH+FxOS12KSQ9wA1NqqlgmU=*/ | ||||
|  | @ -1,4 +1,3 @@ | |||
| /*XqIkjfsfunKy+hfouHD5cxN+YW8cQkFSgYG38hCXxC0=*/ | ||||
| /* | ||||
|  * @Author: wangceb  | ||||
|  * @PageInfo: 转单界面工具类 | ||||
|  | @ -62,5 +61,3 @@ function formatNumber(value) { | |||
| 	} | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| /*XqIkjfsfunKy+hfouHD5cxN+YW8cQkFSgYG38hCXxC0=*/ | ||||
|  | @ -1,4 +1,3 @@ | |||
| /*Z8rANEvCYYFtqTbCYDvR5Cn++w1AZR0Ijqm7jNDiTPU=*/ | ||||
| /* | ||||
| * @Author: zhangjyp  | ||||
| * @PageInfo: 数值取精度,例如:2.3,精度是1 | ||||
|  | @ -16,5 +15,3 @@ export default function trimZero(data) { | |||
| 
 | ||||
| 	return length - 1 - start; | ||||
| } | ||||
| 
 | ||||
| /*Z8rANEvCYYFtqTbCYDvR5Cn++w1AZR0Ijqm7jNDiTPU=*/ | ||||
|  | @ -0,0 +1,18 @@ | |||
| /* | ||||
| * @Author: chaiwx  | ||||
| * @PageInfo: 模型选配js工具类  | ||||
| * @Date: 2018-04-04 13:50:36  | ||||
|  * @Last Modified by: liulux | ||||
|  * @Last Modified time: 2023-08-25 10:58:07 | ||||
| */ | ||||
| 
 | ||||
| function clearCmffileid(billcard, moduleId) { | ||||
| 	if (billcard.body) { | ||||
| 		for (let i = 0; i < billcard.body[moduleId].rows.length; i++) { | ||||
| 			const row = billcard.body[moduleId].rows[i]; | ||||
| 			Reflect.deleteProperty(row.values, 'cmffileid'); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| export { clearCmffileid }; | ||||
|  | @ -0,0 +1,80 @@ | |||
| /* | ||||
|  * @Author: wangceb | ||||
|  * @PageInfo: 退货节点工具类 | ||||
|  * @Date: 2019-05-15 15:02:06 | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2019-07-17 11:08:35 | ||||
|  */ | ||||
| import { showErrorInfo } from '../../../../../scmpub/scmpub/pub/tool/messageUtil.js'; | ||||
| import { getMultiLang } from 'nc-lightapp-front'; | ||||
| 
 | ||||
| /** | ||||
|  *  处理消息提示的多语问题,定义的提示多语容器(ES6语法支持面向对象类) | ||||
|  */ | ||||
| class LangContainer { | ||||
| 	constructor() { | ||||
| 		this.lang = null; | ||||
| 		this.inlt = null; | ||||
| 		// 初始化提示多语信息
 | ||||
| 		getMultiLang({ | ||||
| 			moduleId: '4006pubmassage', | ||||
| 			domainName: 'so', | ||||
| 			callback: this.init.bind(this), | ||||
| 			needInlt: true | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	init(lang, status, inlt) { | ||||
| 		if (status) { | ||||
| 			this.lang = lang; | ||||
| 			this.inlt = inlt; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	getLangByResId(resid, param) { | ||||
| 		let str = resid; | ||||
| 		if (param) { | ||||
| 			str = this.inlt.get(resid, param); | ||||
| 			return str ? str : resid; | ||||
| 		} else { | ||||
| 			// 如果还没有加载回来,则返回空,避免页面显示多语字符串
 | ||||
| 			if (this.lang) { | ||||
| 				str = this.lang[resid]; | ||||
| 				return str ? str : resid; | ||||
| 			} else { | ||||
| 				return resid; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 实例化多语容器 | ||||
|  */ | ||||
| const lang = new LangContainer(); | ||||
| /** | ||||
|  * 组织节点校验 | ||||
|  * 组织节点只能维护当前节点有权限组织的数据! | ||||
|  * @param {*} rows | ||||
|  * @param {*} nodetype | ||||
|  */ | ||||
| export function isCanEdit(rows, nodetype, pk_org_field) { | ||||
| 	let ret = true; | ||||
| 	if (nodetype === 'group') { | ||||
| 		return ret; | ||||
| 	} | ||||
| 
 | ||||
| 	if (!pk_org_field) { | ||||
| 		pk_org_field = 'pk_org'; | ||||
| 	} | ||||
| 	rows.forEach((row) => { | ||||
| 		if (row.values.pk_group.value === row.values[pk_org_field].value) { | ||||
| 			ret = false; | ||||
| 			return; | ||||
| 		} | ||||
| 	}); | ||||
| 	if (!ret) { | ||||
| 		showErrorInfo(lang.getLangByResId('4006PUBMASSAGE-000000')); //组织节点只能维护当前节点有权限组织的数据!
 | ||||
| 	} | ||||
| 	return ret; | ||||
| } | ||||
|  | @ -0,0 +1,276 @@ | |||
| import { TOBillType } from '../enum'; | ||||
| import { deepClone } from 'nc-lightapp-front'; | ||||
| 
 | ||||
| // ---------------------------------批次号编辑后处理------------------------------------------------
 | ||||
| function processBatchCodeValue(props, moduleId, rows, clearfields) { | ||||
| 	if (!rows) { | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	if (rows.length == 0) { | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	// add by chaiwx,row.values中存在一个refpk='xxxx'的字段,暂时无用,但会导致后台报错。这里清空一下。
 | ||||
| 	rows.forEach((row) => { | ||||
| 		if (row.hasOwnProperty('values')) { | ||||
| 			row.values.refpk = {}; | ||||
| 		} | ||||
| 	}); | ||||
| 
 | ||||
| 	// 构建批次号后台结构
 | ||||
| 	let grid = { | ||||
| 		model: { | ||||
| 			rows: rows | ||||
| 		} | ||||
| 	}; | ||||
| 	return { | ||||
| 		scm_vbatchcode: JSON.stringify(grid), | ||||
| 		scm_clearfields: clearfields | ||||
| 	}; | ||||
| } | ||||
| 
 | ||||
| function processBatchCodeAfterEdit(props, moduleId, record, index, rows, clearFields) { | ||||
| 	if (!record && !rows) { | ||||
| 		return; | ||||
| 	} | ||||
| 	let returnRows = rows[0] | ||||
| 		? rows[0].preStore ? rows[0].preStore : rows[0].usable ? rows[0].usable : rows[0].addBatch | ||||
| 		: []; | ||||
| 	let newRow = processBatchCodeReturnData(record, returnRows, clearFields); | ||||
| 	if (newRow) { | ||||
| 		let indexArray = [ index + '' ]; | ||||
| 		//第一个元素更新,剩余的元素插入
 | ||||
| 		props.cardTable.updateDataByIndexs(moduleId, newRow[0]); | ||||
| 		if (newRow.length > 0) { | ||||
| 			//从第二个元素开始循环,构建数组用来新增
 | ||||
| 			let insertRows = []; | ||||
| 			for (let i = 1; i < newRow.length; i++) { | ||||
| 				let insertRow = { index: index + i, data: newRow[i] }; | ||||
| 				insertRows.push(insertRow); | ||||
| 				indexArray.push(index + i + ''); | ||||
| 			} | ||||
| 			props.cardTable.insertDataByIndexs(moduleId, insertRows); | ||||
| 		} | ||||
| 		return indexArray; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 处理批次号返回值 | ||||
|  * @param {*} oldRow  | ||||
|  * @param {*} newRows  | ||||
|  * @param {*} clearFields  | ||||
|  */ | ||||
| function processBatchCodeReturnData(oldRow, newRows, clearFields) { | ||||
| 	if (!oldRow || !newRows || !newRows[0]) { | ||||
| 		return oldRow; | ||||
| 	} | ||||
| 	let realRows = []; | ||||
| 	if (newRows.length == 1) { | ||||
| 		realRows.push(processCurRow(oldRow, newRows[0])); | ||||
| 	} else { | ||||
| 		realRows.push(processCurRow(oldRow, newRows[0])); | ||||
| 		for (let i = 1; i < newRows.length; i++) { | ||||
| 			let tempRow = deepClone(oldRow); | ||||
| 			tempRow.status = 2; | ||||
| 			// 清空行号
 | ||||
| 			clearRowFields(tempRow, clearFields); | ||||
| 			realRows.push(processCurRow(tempRow, newRows[i])); | ||||
| 		} | ||||
| 	} | ||||
| 	return realRows; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 清空复制的行的相关字段 | ||||
|  * @param {*} row  | ||||
|  * @param {*} clearFields  | ||||
|  */ | ||||
| function clearRowFields(row, clearFields) { | ||||
| 	row.values['crowno'] = { value: null, display: null }; | ||||
| 	if (clearFields) { | ||||
| 		clearFields.forEach((field) => { | ||||
| 			let scale = row.values[field].scale; | ||||
| 			row.values[field] = { value: null, scale: scale, display: null }; | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 处理单行数据 | ||||
|  * @param {*} oldRow  | ||||
|  * @param {*} newRow  | ||||
|  */ | ||||
| function processCurRow(oldRow, newRow) { | ||||
| 	if (!oldRow || !newRow) { | ||||
| 		return [ oldRow ]; | ||||
| 	} | ||||
| 	oldRow.values['pk_batchcode'] = newRow.values['pk_batchcode']; | ||||
| 	//单据上批次号是参照类型,参照框中是字符串类型,参照类型不许要有display才能显示
 | ||||
| 	oldRow.values['vbatchcode'] = newRow.values['vbatchcode'] | ||||
| 		? { value: newRow.values['vbatchcode'].value, display: newRow.values['vbatchcode'].value } | ||||
| 		: null; | ||||
| 	return oldRow; | ||||
| } | ||||
| 
 | ||||
| //----------------------------------批次号编辑前处理---------------------------------------------
 | ||||
| /** | ||||
|  * 处理批次号字段 | ||||
|  * @param {*} props  | ||||
|  * @param {*} moduleId 区域ID | ||||
|  * @param {*} key item字段 | ||||
|  * @param {*} headData 当前行数据 | ||||
|  * @param {*} billtype 单据类型 | ||||
|  */ | ||||
| function processBatchCodeItem(props, moduleId, key, headData, billtype) { | ||||
| 	// 预处理数据
 | ||||
| 	let headRows = processBatchCodeHeadData(headData, billtype); | ||||
| 	// 渲染对应的批次号
 | ||||
| 	let meta = props.meta.getMeta(); | ||||
| 	let item = meta[moduleId].items.find((item) => item.attrcode == key); | ||||
| 	let item2 = meta['childform2'].items.find((item) => item.attrcode == key); | ||||
| 	item.itemtype = 'refer'; | ||||
| 	item.refcode = 'ic/refer/onhand/onhandRef/index.js'; | ||||
| 	item.headRows = headRows; | ||||
| 	item.appcode = '400900800'; | ||||
| 	item.headTemplateCode = '400900800_batchcodeH'; | ||||
| 	item.bodyTemplateCode = '400900800_batchcodeB'; | ||||
| 	item.undealNumCode = 'onhandshouldnum'; | ||||
| 	item.thisNumCode = 'onhandcurrentnum'; | ||||
| 	item.isSatisfyCode = 'fulfiltype'; | ||||
| 	props.renderItem(meta[moduleId].moduletype, moduleId, key, null); | ||||
| 	item2.itemtype = 'refer'; | ||||
| 	item2.refcode = 'ic/refer/onhand/onhandRef/index.js'; | ||||
| 	item2.headRows = headRows; | ||||
| 	item2.appcode = '400900800'; | ||||
| 	item2.headTemplateCode = '400900800_batchcodeH'; | ||||
| 	item2.bodyTemplateCode = '400900800_batchcodeB'; | ||||
| 	item2.undealNumCode = 'onhandshouldnum'; | ||||
| 	item2.thisNumCode = 'onhandcurrentnum'; | ||||
| 	item2.isSatisfyCode = 'fulfiltype'; | ||||
| 	props.renderItem(meta['childform2'].moduletype, 'childform2', key, null); | ||||
| 	props.meta.setMeta(meta); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 处理批次号表头数据 | ||||
|  * @param {*} headData  | ||||
|  * @param {*} billtype  | ||||
|  */ | ||||
| function processBatchCodeHeadData(headData, billtype) { | ||||
| 	let row = { values: {} }; | ||||
| 	Object.keys(BATCHCODEHEAD).forEach((key) => { | ||||
| 		let field = BATCHCODEHEAD[key]; | ||||
| 		if (field == BATCHCODEHEAD.pk_group) { | ||||
| 			//集团
 | ||||
| 		} else if (field == BATCHCODEHEAD.cwarehouseid) { | ||||
| 			//仓库
 | ||||
| 			setWareHouseId(row, headData, field, billtype); | ||||
| 		} else if (field == BATCHCODEHEAD.pk_org) { | ||||
| 			//组织
 | ||||
| 			setPkOrg(row, headData, field, billtype); | ||||
| 		} else if (field == BATCHCODEHEAD.cmaterialvid) { | ||||
| 			//物料版本
 | ||||
| 			row.values[field] = headData.values['cinventoryvid']; | ||||
| 		} else if (field == BATCHCODEHEAD.cmaterialoid) { | ||||
| 			//物料
 | ||||
| 			row.values[field] = headData.values['cinventoryid']; | ||||
| 		} else if (field == BATCHCODEHEAD.onhandshouldassnum) { | ||||
| 			row.values[field] = headData.values['nastnum']; | ||||
| 		} else if (field == BATCHCODEHEAD.onhandshouldnum) { | ||||
| 			row.values[field] = headData.values['nnum']; | ||||
| 		} else if (field == BATCHCODEHEAD.cvmivenderid) { | ||||
| 			//寄存供应商
 | ||||
| 			setVmivenderId(row, headData, field, billtype); | ||||
| 		} else { | ||||
| 			row.values[field] = headData.values[field]; | ||||
| 		} | ||||
| 	}); | ||||
| 	return { rows: [ row ] }; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 设置组织 | ||||
|  * @param {*} row  | ||||
|  * @param {*} headData  | ||||
|  * @param {*} field  | ||||
|  * @param {*} billtype  | ||||
|  */ | ||||
| function setPkOrg(row, headData, field, billtype) { | ||||
| 	if (TOBillType.TransIn === billtype) { | ||||
| 		//主组织
 | ||||
| 		row.values[field] = headData.values['pk_org']; | ||||
| 	} else if (TOBillType.TransOrder === billtype) { | ||||
| 		//出货库存组织
 | ||||
| 		row.values[field] = headData.values['ctoutstockorgid']; | ||||
| 	} else if (TOBillType.Allot === billtype) { | ||||
| 		//主组织
 | ||||
| 		row.values[field] = headData.values['pk_org']; | ||||
| 	} | ||||
| } | ||||
| /** | ||||
|  * 设置仓库 | ||||
|  * @param {*} row  | ||||
|  * @param {*} headData  | ||||
|  * @param {*} field  | ||||
|  * @param {*} billtype  | ||||
|  */ | ||||
| function setWareHouseId(row, headData, field, billtype) { | ||||
| 	if (TOBillType.TransIn === billtype) { | ||||
| 		//调入仓库
 | ||||
| 		row.values[field] = headData.values['cinstordocid']; | ||||
| 	} else if (TOBillType.TransOrder === billtype) { | ||||
| 		//出货仓库
 | ||||
| 		row.values[field] = headData.values['ctoutstordocid']; | ||||
| 	} else if (TOBillType.Allot === billtype) { | ||||
| 		//调出仓库
 | ||||
| 		row.values[field] = headData.values['coutstordocid']; | ||||
| 	} | ||||
| } | ||||
| /** | ||||
|  * 设置寄存供应商 | ||||
|  * @param {*} row  | ||||
|  * @param {*} headData  | ||||
|  * @param {*} field  | ||||
|  * @param {*} billtype  | ||||
|  */ | ||||
| function setVmivenderId(row, headData, field, billtype) { | ||||
| 	if (TOBillType.TransOrder === billtype) { | ||||
| 		row.values[field] = headData.values['cconsignvendorid']; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| const BATCHCODEHEAD = { | ||||
| 	pk_group: 'pk_group', | ||||
| 	cwarehouseid: 'cwarehouseid', | ||||
| 	pk_org: 'pk_org', | ||||
| 	cmaterialvid: 'cmaterialvid', | ||||
| 	cmaterialoid: 'cmaterialoid', | ||||
| 	onhandshouldassnum: 'onhandshouldassnum', | ||||
| 	onhandshouldnum: 'onhandshouldnum', | ||||
| 	cvmivenderid: 'cvmivenderid', | ||||
| 	vbatchcode: 'vbatchcode', | ||||
| 	pk_batchcode: 'pk_batchcode', | ||||
| 	crowno: 'crowno', | ||||
| 	cunitid: 'cunitid', | ||||
| 	castunitid: 'castunitid', | ||||
| 	vchangerate: 'vchangerate', | ||||
| 	cvendorid: 'cvendorid', | ||||
| 	cproductorid: 'cproductorid', | ||||
| 	cprojectid: 'cprojectid', | ||||
| 	casscustid: 'casscustid', | ||||
| 	cffileid: 'cffileid', | ||||
| 	vfree1: 'vfree1', | ||||
| 	vfree2: 'vfree2', | ||||
| 	vfree3: 'vfree3', | ||||
| 	vfree4: 'vfree4', | ||||
| 	vfree5: 'vfree5', | ||||
| 	vfree6: 'vfree6', | ||||
| 	vfree7: 'vfree7', | ||||
| 	vfree8: 'vfree8', | ||||
| 	vfree9: 'vfree9', | ||||
| 	vfree10: 'vfree10' | ||||
| }; | ||||
| 
 | ||||
| export { processBatchCodeItem, processBatchCodeValue }; | ||||
|  | @ -0,0 +1,21 @@ | |||
| /* | ||||
|  * @Author: xiahui  | ||||
|  * @PageInfo: 差异操作 | ||||
|  * @Date: 2019-01-02 09:12:11  | ||||
|  * @Last Modified by: xiahui | ||||
|  * @Last Modified time: 2019-01-03 15:28:31 | ||||
|  */ | ||||
| 
 | ||||
| /** | ||||
|   * 列表单行操作差异容错 | ||||
|   * @param {*} newData 差异返回的新数据 | ||||
|   * @param {*} oldValues 操作前的行数据 | ||||
|   * @param {*} config 差异操作参数 | ||||
|   */ | ||||
| function listSingleTolerateForCompare(newData, oldValues, config) { | ||||
| 	let { headAreaId } = config; | ||||
| 	let newValues = newData.head[headAreaId].rows[0].values; | ||||
| 	newData.head[headAreaId].rows[0].values = { ...oldValues, ...newValues }; | ||||
| } | ||||
| 
 | ||||
| export { listSingleTolerateForCompare }; | ||||
|  | @ -0,0 +1,37 @@ | |||
| /** | ||||
|  * 主组织主动触发编辑后事件 | ||||
|  * @param {*} props  | ||||
|  * @param {*} areacode 区域编码 | ||||
|  * @param {*} key  触发字段,默认为pk_org | ||||
|  * @param {*} value 触发的value {value:,display:} | ||||
|  * @param {*} afterEvent 自己的编辑后事件 | ||||
|  */ | ||||
| function mainOrgEdit(props, areacode, key = 'pk_org', value, afterEvent) { | ||||
| 	editForm(props, areacode, key, value, afterEvent); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 编辑form表单 | ||||
|  * @param {*} props  | ||||
|  * @param {*} areacode  | ||||
|  * @param {*} key  | ||||
|  * @param {*} value  | ||||
|  * @param {*} afterEvent  | ||||
|  */ | ||||
| function editForm(props, areacode, key, value, afterEvent) { | ||||
| 	edit(props, 'form', areacode, key, value, null, null, afterEvent); | ||||
| } | ||||
| 
 | ||||
| function edit(props, type, areacode, key, value, changedrows, index, afterEvent) { | ||||
| 	props.handleRelationItems({ | ||||
| 		type: type, //编辑的是表单值为'form', 编辑的是表格值为'table'
 | ||||
| 		areaCode: areacode, //编辑区域的编码
 | ||||
| 		key: key, //编辑字段英文名称
 | ||||
| 		value: value, //编辑字段的新值
 | ||||
| 		changedrows: changedrows, // 若编辑的是表格,需要传该参数(编辑字段的旧值),表单不传
 | ||||
| 		index: index, //当前是第几行 : 从 0 开始,编辑表格时,需要传该参数,表单不传
 | ||||
| 		callback: afterEvent //请求成功的回调(业务组自己的编辑后事件)
 | ||||
| 	}); | ||||
| } | ||||
| 
 | ||||
| export { mainOrgEdit, editForm }; | ||||
|  | @ -0,0 +1,55 @@ | |||
| import { ajax, cacheTools } from 'nc-lightapp-front'; | ||||
| 
 | ||||
| const LINK_KEY = 'tolinkkey'; | ||||
| 
 | ||||
| /** | ||||
|   * 列表态联查处理 | ||||
|   * @param {*} props  | ||||
|   * @param {*} config {areacode:区域编码,pagecode:页面编码,tabletype:表格类型(table/editTable),url:后台地址,deflinkquery:自定义处理逻辑} | ||||
|   */ | ||||
| function listLinkQuery(props, config) { | ||||
| 	let { deflinkquery, areacode, pagecode, tabletype = 'table', url } = config; | ||||
| 
 | ||||
| 	// 1、获取link参数
 | ||||
| 	let linkkey = props.getUrlParam(LINK_KEY); | ||||
| 	if (linkkey) { | ||||
| 		let linkdata = cacheTools.get(linkkey); | ||||
| 		// linkdata结构为:{linktype:'30',linkids:['','']}
 | ||||
| 		if (linkdata) { | ||||
| 			let linktype = linkdata.linktype; | ||||
| 			let linkids = linkdata.linkids; | ||||
| 			if (deflinkquery && deflinkquery.hasOwnProperty(linktype)) { | ||||
| 				let deflinkqueryAction = deflinkquery[linktype]; | ||||
| 				deflinkqueryAction(linkids); | ||||
| 			} else { | ||||
| 				ajax({ | ||||
| 					url: url, | ||||
| 					data: { | ||||
| 						pageid: pagecode, | ||||
| 						allpks: linkids | ||||
| 					}, | ||||
| 					success: (res) => { | ||||
| 						let data = res.data; | ||||
| 						if (data) { | ||||
| 							if ('table' === tabletype) { | ||||
| 								props.table.setAllTableData(areacode, res.data[areacode]); | ||||
| 							} | ||||
| 							if ('editTable' === tabletype) { | ||||
| 								props.editTable.setTableData(areacode, res.data[areacode]); | ||||
| 							} | ||||
| 						} | ||||
| 					} | ||||
| 				}); | ||||
| 			} | ||||
| 		} | ||||
| 		clear(props, linkkey); // 清除数据
 | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| function clear(props, linkkey) { | ||||
| 	props.setUrlParam({ | ||||
| 		[LINK_KEY]: null | ||||
| 	}); | ||||
| 	cacheTools.remove(linkkey); | ||||
| } | ||||
| export { listLinkQuery }; | ||||
|  | @ -0,0 +1,17 @@ | |||
| /* | ||||
|  * @Author: chaiwx  | ||||
|  * @PageInfo: 数值工具  | ||||
|  * @Date: 2019-01-03 14:24:39  | ||||
|  * @Last Modified by: chaiwx | ||||
|  * @Last Modified time: 2019-01-03 14:52:13 | ||||
|  */ | ||||
| 
 | ||||
| /** | ||||
|   * 显示为千分位 | ||||
|   */ | ||||
| function toThousandsPattern(num) { | ||||
| 	num = num + ''; | ||||
| 	return num.replace(/(?=(?!(\b))(\d{3})+$)/g, '$1,'); //使用正则替换,每隔三个数加一个','
 | ||||
| } | ||||
| 
 | ||||
| export { toThousandsPattern }; | ||||
|  | @ -1,4 +1,3 @@ | |||
| /*dkS8HPbHFEj6+q7wB+z0gzTfR5UufDtXc/jwCRxg814=*/ | ||||
| /* | ||||
|  * @Author: sunxxf  | ||||
|  * @PageInfo: 收回数据组装  | ||||
|  | @ -39,5 +38,3 @@ function getPkTsDataIncludeBodyInCard(props, params) { | |||
| } | ||||
| 
 | ||||
| export { getPkTsDataIncludeBodyInCard }; | ||||
| 
 | ||||
| /*dkS8HPbHFEj6+q7wB+z0gzTfR5UufDtXc/jwCRxg814=*/ | ||||
|  | @ -0,0 +1,226 @@ | |||
| /** | ||||
|  * 设置参照显示业务单元 | ||||
|  * @param {*} props  | ||||
|  * @param {*} area 区域编码  | ||||
|  * @param {*} fields 参照字段 为空,认为区域内全参照字段 | ||||
|  * @param {*} isShow 显示还是隐藏 | ||||
|  * @returns meta | ||||
|  */ | ||||
| function setReferMultiUnitShow(meta, area, fields = [], isShow = true) { | ||||
| 	meta[area].items.map((item) => { | ||||
| 		let fieldcode = item.attrcode; | ||||
| 		if (fields.length > 0) { | ||||
| 			if (fields.includes(fieldcode)) { | ||||
| 				item.isShowUnit = isShow; | ||||
| 			} | ||||
| 		} else { | ||||
| 			if (item.itemtype === 'refer') { | ||||
| 				item.isShowUnit = isShow; | ||||
| 			} | ||||
| 		} | ||||
| 	}); | ||||
| 	return meta; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 设置参照显示业务单元(按照单个Item) | ||||
|  * @param {*} item  | ||||
|  * @param {*} fields  | ||||
|  * @param {*} isShow  | ||||
|  */ | ||||
| function setReferMultiUnitShowByItem(item, fields = [], isShow = true) { | ||||
| 	let fieldcode = item.attrcode; | ||||
| 	if (fields.includes(fieldcode)) { | ||||
| 		item.isShowUnit = isShow; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 设置主组织权限-默认是表格型的,存货核算大部分都是成本域 | ||||
|  * @param {*} item  | ||||
|  * @param {*} type | ||||
|  */ | ||||
| function setRefMainOrgPermissonByItem(item, type) { | ||||
| 	if (type && type === MAINORG_TYPE.TREE) { | ||||
| 		item.queryCondition = () => { | ||||
| 			return { TreeRefActionExt: 'nccloud.web.scmpub.ref.AppPermissionOrgRefFilter' }; | ||||
| 		}; | ||||
| 	} else { | ||||
| 		item.queryCondition = () => { | ||||
| 			return { GridRefActionExt: 'nccloud.web.scmpub.ref.AppPermissionOrgRefFilter' }; | ||||
| 		}; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 设置主组织权限-默认是表格型的,存货核算大部分都是成本域 | ||||
|  * @param {*} item  | ||||
|  * @param {*} type | ||||
|  */ | ||||
| function setRefMainOrgPermisson(meta, area, field, type) { | ||||
| 	meta[area].items.map((item) => { | ||||
| 		if (item.attrcode === field) { | ||||
| 			if (type && type === MAINORG_TYPE.TREE) { | ||||
| 				item.queryCondition = () => { | ||||
| 					return { TreeRefActionExt: 'nccloud.web.scmpub.ref.AppPermissionOrgRefFilter' }; | ||||
| 				}; | ||||
| 			} else { | ||||
| 				item.queryCondition = () => { | ||||
| 					return { GridRefActionExt: 'nccloud.web.scmpub.ref.AppPermissionOrgRefFilter' }; | ||||
| 				}; | ||||
| 			} | ||||
| 		} | ||||
| 	}); | ||||
| 	return meta; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 设置主组织权限(VID字段) | ||||
|  * @param {*} item  | ||||
|  */ | ||||
| function setRefMainOrgVIDPermissonByItem(item, type) { | ||||
| 	if (type && type === MAINORG_TYPE.TREE) { | ||||
| 		item.queryCondition = () => { | ||||
| 			return { TreeRefActionExt: 'nccloud.web.scmpub.ref.AppPermissionOrgVidRefFilter' }; | ||||
| 		}; | ||||
| 	} else { | ||||
| 		item.queryCondition = () => { | ||||
| 			return { GridRefActionExt: 'nccloud.web.scmpub.ref.AppPermissionOrgVidRefFilter' }; | ||||
| 		}; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 初始化业务单元多选 | ||||
|  * @param {*} meta meta | ||||
|  * @param {*} searchAreaID 区域id | ||||
|  * @param {*} fields 字段 | ||||
|  * @param {*} defPrefix 自定义项前缀 | ||||
|  * @param {*} freePrefix 自由辅助属性前缀 | ||||
|  */ | ||||
| function initMultiSelect(meta, searchAreaID, fields, defPrefix, freePrefix) { | ||||
| 	let searchItems = meta[searchAreaID].items; | ||||
| 	if (!Array.isArray(fields)) { | ||||
| 		fields = [ fields ]; | ||||
| 	} | ||||
| 
 | ||||
| 	if (!defPrefix) { | ||||
| 		defPrefix = []; | ||||
| 	} else if (!Array.isArray(defPrefix)) { | ||||
| 		defPrefix = [ defPrefix ]; | ||||
| 	} | ||||
| 
 | ||||
| 	if (!freePrefix) { | ||||
| 		freePrefix = []; | ||||
| 	} else if (!Array.isArray(freePrefix)) { | ||||
| 		freePrefix = [ freePrefix ]; | ||||
| 	} | ||||
| 
 | ||||
| 	searchItems.map((item) => { | ||||
| 		if (fields.includes(item.attrcode)) { | ||||
| 			item.isShowUnit = true; | ||||
| 		} | ||||
| 		for (let i = 0; i < freePrefix.length; i++) { | ||||
| 			if (item.attrcode.indexOf(freePrefix[i]) == 0) { | ||||
| 				item.isShowUnit = true; | ||||
| 			} | ||||
| 		} | ||||
| 		for (let i = 0; i < defPrefix.length; i++) { | ||||
| 			if (item.attrcode.indexOf(defPrefix[i]) == 0) { | ||||
| 				item.isShowUnit = true; | ||||
| 			} | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 查询组织多选处理 | ||||
|  * @param {*} props  | ||||
|  * @param {*} searchAreaID 查询区ID | ||||
|  * @param {*} orgField 组织字段 | ||||
|  * @param {*} relationFields 关联字段 | ||||
|  * @param {*} defPrefix 自定义项前缀 可空 | ||||
|  * @param {*} freePrefix 自由辅助属性前缀 可空 | ||||
|  */ | ||||
| function orgMultiSelectHandler(props, searchAreaID, orgField, relationFields, defPrefix, freePrefix) { | ||||
| 	let meta = props.meta.getMeta(); | ||||
| 	let searchItems = meta[searchAreaID].items; | ||||
| 
 | ||||
| 	if (!Array.isArray(relationFields)) { | ||||
| 		relationFields = [ relationFields ]; | ||||
| 	} | ||||
| 
 | ||||
| 	if (!defPrefix) { | ||||
| 		defPrefix = []; | ||||
| 	} else if (!Array.isArray(defPrefix)) { | ||||
| 		defPrefix = [ defPrefix ]; | ||||
| 	} | ||||
| 
 | ||||
| 	if (!freePrefix) { | ||||
| 		freePrefix = []; | ||||
| 	} else if (!Array.isArray(freePrefix)) { | ||||
| 		freePrefix = [ freePrefix ]; | ||||
| 	} | ||||
| 
 | ||||
| 	//获取当前关联字段的值
 | ||||
| 	let fieldValue = props.search.getSearchValByField(searchAreaID, orgField); | ||||
| 	//判断当前值是否为空
 | ||||
| 	if ( | ||||
| 		fieldValue && | ||||
| 		fieldValue.value && | ||||
| 		fieldValue.value.firstvalue && | ||||
| 		fieldValue.value.firstvalue.indexOf(',') == -1 | ||||
| 	) { | ||||
| 		searchItems.map((item) => { | ||||
| 			if (relationFields.includes(item.attrcode)) { | ||||
| 				item.isShowUnit = false; | ||||
| 			} | ||||
| 			for (let i = 0; i < freePrefix.length; i++) { | ||||
| 				if (item.attrcode.indexOf(freePrefix[i]) == 0) { | ||||
| 					item.isShowUnit = false; | ||||
| 				} | ||||
| 			} | ||||
| 			for (let i = 0; i < defPrefix.length; i++) { | ||||
| 				if (item.attrcode.indexOf(defPrefix[i]) == 0) { | ||||
| 					item.isShowUnit = false; | ||||
| 				} | ||||
| 			} | ||||
| 		}); | ||||
| 	} else { | ||||
| 		searchItems.map((item) => { | ||||
| 			if (relationFields.includes(item.attrcode)) { | ||||
| 				item.isShowUnit = true; | ||||
| 			} | ||||
| 			for (let i = 0; i < freePrefix.length; i++) { | ||||
| 				if (item.attrcode.indexOf(freePrefix[i]) == 0) { | ||||
| 					item.isShowUnit = true; | ||||
| 				} | ||||
| 			} | ||||
| 			for (let i = 0; i < defPrefix.length; i++) { | ||||
| 				if (item.attrcode.indexOf(defPrefix[i]) == 0) { | ||||
| 					item.isShowUnit = true; | ||||
| 				} | ||||
| 			} | ||||
| 		}); | ||||
| 	} | ||||
| 	props.meta.setMeta(meta); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 主组织格式类型:Grid or Tree | ||||
|  */ | ||||
| const MAINORG_TYPE = { | ||||
| 	GRID: 'grid', | ||||
| 	TREE: 'tree' | ||||
| }; | ||||
| 
 | ||||
| export { | ||||
| 	MAINORG_TYPE, | ||||
| 	setReferMultiUnitShow, | ||||
| 	setReferMultiUnitShowByItem, | ||||
| 	setRefMainOrgPermisson, | ||||
| 	setRefMainOrgPermissonByItem, | ||||
| 	setRefMainOrgVIDPermissonByItem, | ||||
| 	orgMultiSelectHandler, | ||||
| 	initMultiSelect | ||||
| }; | ||||
|  | @ -0,0 +1,26 @@ | |||
| /* | ||||
|  * @Author: chaiwx  | ||||
|  * @PageInfo: 同步ajax请求,返回值为true、false | ||||
|  * @Date: 2018-06-14 15:24:52  | ||||
|  * @Last Modified by: chaiwx | ||||
|  * @Last Modified time: 2018-09-12 15:54:23 | ||||
|  */ | ||||
| import { ajax, toast } from 'nc-lightapp-front'; | ||||
| export default function(url, data) { | ||||
| 	return new Promise(function(resolve, reject) { | ||||
| 		ajax({ | ||||
| 			url: url, | ||||
| 			data: data, | ||||
| 			success: (res) => { | ||||
| 				resolve(true); | ||||
| 			}, | ||||
| 			error: (error) => { | ||||
| 				toast({ | ||||
| 					color: 'warning', | ||||
| 					content: error.message | ||||
| 				}); | ||||
| 				resolve(false); | ||||
| 			} | ||||
| 		}); | ||||
| 	}); | ||||
| } | ||||
|  | @ -0,0 +1,46 @@ | |||
| /** | ||||
|  * 输入数字将其显示为千分位显示 | ||||
|  * @param {} value  | ||||
|  * @returns  | ||||
|  */ | ||||
| function MillenniumRepresentation(value) { | ||||
| 	if (isNaN(value)) { | ||||
| 		return 0; | ||||
| 	} | ||||
| 	var arr = new String(value).split('.'); | ||||
| 	var negative = arr[0].startsWith('-'); | ||||
| 	var list = !negative ? arr[0].split('').reverse() : arr[0].substring(1, arr[0].length).split('').reverse(); | ||||
| 	for (var i = 0; i < list.length; i++) { | ||||
| 		if (i % 4 == 3) { | ||||
| 			list.splice(i, 0, ','); | ||||
| 		} | ||||
| 	} | ||||
| 	return arr.length > 1 | ||||
| 		? !negative ? list.reverse().join('') + '.' + arr[1] : '-' + list.reverse().join('') + '.' + arr[1] | ||||
| 		: !negative ? list.reverse().join('') : '-' + list.reverse().join(''); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 获取千分位并截取两位小数 | ||||
|  * @param {*} value  | ||||
|  * @returns  | ||||
|  */ | ||||
| function MillenniumRepresentationToFixed(value) { | ||||
| 	if (isNaN(value)) { | ||||
| 		return 0; | ||||
| 	} | ||||
| 	value = parseFloat(new String(value)).toFixed(2); | ||||
| 	var arr = new String(value).split('.'); | ||||
| 	var negative = arr[0].startsWith('-'); | ||||
| 	var list = !negative ? arr[0].split('').reverse() : arr[0].substring(1, arr[0].length).split('').reverse(); | ||||
| 	for (var i = 0; i < list.length; i++) { | ||||
| 		if (i % 4 == 3) { | ||||
| 			list.splice(i, 0, ','); | ||||
| 		} | ||||
| 	} | ||||
| 	return arr.length > 1 | ||||
| 		? !negative ? list.reverse().join('') + '.' + arr[1] : '-' + list.reverse().join('') + '.' + arr[1] | ||||
| 		: !negative ? list.reverse().join('') : '-' + list.reverse().join(''); | ||||
| } | ||||
| 
 | ||||
| export { MillenniumRepresentation, MillenniumRepresentationToFixed }; | ||||
|  | @ -0,0 +1,11 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 新增行事件 | ||||
|  * @Date: 2018-04-19 10:37:53  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-06-08 09:38:39 | ||||
|  */ | ||||
| 
 | ||||
| export default function clickAddRowBtn(props) { | ||||
| 	props.cardTable.addRow(this.tableId); | ||||
| } | ||||
|  | @ -0,0 +1,38 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 按钮点击事件  | ||||
|  * @Date: 2018-04-19 10:37:30  | ||||
|  * @Last Modified by: 刘奇 | ||||
|  * @Last Modified time: 2018-10-20 14:27:19 | ||||
|  */ | ||||
| import editBtnClick from './edit_BtnClick'; | ||||
| import cancelBtnClick from './cancel_BtnClick'; | ||||
| import saveBtnClick from './save_BtnClick'; | ||||
| import printBtnClick from './print_BtnClick'; | ||||
| import refreshBtnClick from './refresh_BtnClick'; | ||||
| import { BUTTONS } from '../../const'; | ||||
| 
 | ||||
| export default function clickBtn(props, id) { | ||||
| 	switch (id) { | ||||
| 		// 取消
 | ||||
| 		case BUTTONS.CANCEL: | ||||
| 			let cancel = cancelBtnClick.bind(this); | ||||
| 			return cancel(props); | ||||
| 		// 修改
 | ||||
| 		case BUTTONS.EDIT: | ||||
| 			let edit = editBtnClick.bind(this); | ||||
| 			return edit(props); | ||||
| 		// 保存
 | ||||
| 		case BUTTONS.SAVE: | ||||
| 			let save = saveBtnClick.bind(this); | ||||
| 			return save(props); | ||||
| 		// 打印
 | ||||
| 		case BUTTONS.PRINT: | ||||
| 			let print = printBtnClick.bind(this); | ||||
| 			return print(props); | ||||
| 		//刷新
 | ||||
| 		case BUTTONS.REFRESH: | ||||
| 			let refresh = refreshBtnClick.bind(this); | ||||
| 			return refresh(props); | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,34 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 取消按钮事件 | ||||
|  * @Date: 2018-05-14 21:56:25  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-12-29 10:17:38 | ||||
|  */ | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| import { showCancelDialog } from '../../../../../scmpub/scmpub/pub/tool/messageUtil'; | ||||
| import { getCurrentLastId } from '../../../../../scmpub/scmpub/pub/cache'; | ||||
| 
 | ||||
| export default function clickCancelBtn(props) { | ||||
| 	showCancelDialog({ beSureBtnClick: cancel.bind(this, props) }); | ||||
| } | ||||
| function cancel(props) { | ||||
| 	props.beforeUpdatePage(); | ||||
| 	let lastId = ''; | ||||
| 	if (this.props.getUrlParam(SOBALANCE_CONST.status) == SOBALANCE_CONST.add) { | ||||
| 		lastId = getCurrentLastId(SOBALANCE_CONST.SobalanceCacheKey); | ||||
| 	} else { | ||||
| 		lastId = this.lastId; | ||||
| 	} | ||||
| 	props.setUrlParam({ | ||||
| 		status: SOBALANCE_CONST.browse, | ||||
| 		id: lastId | ||||
| 	}); | ||||
| 	props.cardTable.resetTableData(SOBALANCE_CONST.tableId); | ||||
| 	this.props.form.EmptyAllFormValue(SOBALANCE_CONST.formId); | ||||
| 	this.props.cardTable.setTableData(SOBALANCE_CONST.tableId, { rows: [] }); | ||||
| 	this.getData(); | ||||
| 	// 去除复选框的打钩
 | ||||
| 	props.cardTable.selectAllRows(SOBALANCE_CONST.tableId, false); | ||||
| 	props.updatePage(this.formId, this.tableId); | ||||
| } | ||||
|  | @ -0,0 +1,29 @@ | |||
| /* | ||||
|  * @Author: cuijun | ||||
|  * @PageInfo: 卡片删行按钮事件 | ||||
|  * @Date: 2018-04-19 10:38:05  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2019-03-08 15:17:00 | ||||
|  */ | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| import { showWarningInfo } from '../../../../../scmpub/scmpub/pub/tool/messageUtil'; | ||||
| import { getLangByResId } from '../../../../../scmpub/scmpub/pub/tool/multiLangUtil'; | ||||
| import rowbtn_Controller from '../init/toggleShow'; | ||||
| 
 | ||||
| export default function buttonClick(props, record, index) { | ||||
| 	let selIndex = []; | ||||
| 	// 点击的肩部按钮
 | ||||
| 	if (index == undefined) { | ||||
| 		let seldatas = props.cardTable.getCheckedRows(SOBALANCE_CONST.tableId); | ||||
| 		if (seldatas.length == 0) { | ||||
| 			showWarningInfo(null, getLangByResId(this, '4006SOBALANCE-000002')); /* 国际化处理: 请选择要删除的行!*/ | ||||
| 		} | ||||
| 		seldatas.forEach((item) => { | ||||
| 			selIndex.push(item.index); | ||||
| 		}); | ||||
| 	} else { | ||||
| 		selIndex.push(index); | ||||
| 	} | ||||
| 	props.cardTable.delRowsByIndex(SOBALANCE_CONST.tableId, selIndex); | ||||
| 	rowbtn_Controller.call(this); | ||||
| } | ||||
|  | @ -0,0 +1,35 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 修改按钮事件   | ||||
|  * @Date: 2018-05-14 21:36:49  | ||||
|  * @Last Modified by: wangpju | ||||
|  * @Last Modified time: 2021-09-02 14:13:16 | ||||
|  */ | ||||
| import buttonController from '../viewController/buttonController'; | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| import { ajax } from 'nc-lightapp-front'; | ||||
| 
 | ||||
| export default function clickEditBtn(props) { | ||||
| 	let id = this.props.getUrlParam(SOBALANCE_CONST.id); | ||||
| 	//订单收款合脚编辑校验数据是否saga冻结
 | ||||
| 	let data = { | ||||
| 		pks: [ id ] | ||||
| 	}; | ||||
| 	ajax({ | ||||
| 		url: SOBALANCE_CONST.editUrl, | ||||
| 		data: data, | ||||
| 		success: (res) => { | ||||
| 			if (res.success) { | ||||
| 				props.pushTo(SOBALANCE_CONST.Card_URL, { | ||||
| 					pagecode: SOBALANCE_CONST.cardPageId, | ||||
| 					status: SOBALANCE_CONST.edit, | ||||
| 					id: id | ||||
| 				}); | ||||
| 				this.lastId = id; | ||||
| 				buttonController.call(this); | ||||
| 				// 去除复选框的打钩
 | ||||
| 				props.cardTable.selectAllRows(SOBALANCE_CONST.tableId, false); | ||||
| 			} | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
|  | @ -0,0 +1,4 @@ | |||
| import buttonClick from './buttonClick'; | ||||
| import operateBtnClick from './operate_buttonClick'; | ||||
| import pageInfoBtnClick from './pageInfo_BtnClick'; | ||||
| export { buttonClick, operateBtnClick, pageInfoBtnClick }; | ||||
|  | @ -0,0 +1,12 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 卡片插入行按钮事件 | ||||
|  * @Date: 2018-04-19 10:38:05  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-06-07 21:01:45 | ||||
|  */ | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| 
 | ||||
| export default function buttonClick(props, record, index) { | ||||
| 	props.cardTable.addRow(SOBALANCE_CONST.tableId, index); | ||||
| } | ||||
|  | @ -0,0 +1,24 @@ | |||
| /* | ||||
|  * @Author: cuijun | ||||
|  * @PageInfo: 卡片操作列按钮事件 | ||||
|  * @Date: 2018-04-19 10:34:04  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-07-18 16:11:25 | ||||
|  */ | ||||
| 
 | ||||
| import spread_BtnClick from './spread_BtnClick'; | ||||
| import deleteLine_BtnClick from './deleteLine_BtnClick'; | ||||
| import addRow_BtnClick from './addRow_BtnClick'; | ||||
| import { BUTTONS } from '../../const'; | ||||
| 
 | ||||
| export default function buttonClick(props, id, text, record, index) { | ||||
| 	switch (id) { | ||||
| 		// DeleteLine	删行
 | ||||
| 		case BUTTONS.DELETELINE: | ||||
| 			return deleteLine_BtnClick.bind(this)(props, record, index); | ||||
| 		//增行
 | ||||
| 		case BUTTONS.ADDLINE: | ||||
| 			return addRow_BtnClick.bind(this)(props, record, index); | ||||
| 			break; | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,13 @@ | |||
| /* | ||||
|  * @Author: cuijun | ||||
|  * @PageInfo: 卡片下一页点击事件 | ||||
|  * @Date: 2018-04-19 10:34:04  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-09-26 13:42:09 | ||||
|  */ | ||||
| 
 | ||||
| import { ajax, toast } from 'nc-lightapp-front'; | ||||
| export default function pageInfo_BtnClick(props, pk) { | ||||
| 	props.setUrlParam(pk); | ||||
| 	this.getData(); | ||||
| } | ||||
|  | @ -0,0 +1,25 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 卡片下打印按钮事件 | ||||
|  * @Date: 2018-04-19 10:38:05  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-07-16 18:53:58 | ||||
|  */ | ||||
| 
 | ||||
| import React, { Component } from 'react'; | ||||
| import { print, base } from 'nc-lightapp-front'; | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| 
 | ||||
| export default function buttonClick(props) { | ||||
| 	let billids = []; | ||||
| 	let csaleorderid = props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'csaleorderid').value; | ||||
| 	billids.push(csaleorderid); | ||||
| 	print( | ||||
| 		'pdf', //支持两类: 'html'为模板打印, 'pdf'为pdf打印
 | ||||
| 		SOBALANCE_CONST.printUrl, | ||||
| 		{ | ||||
| 			nodekey: null, //模板节点标识
 | ||||
| 			oids: billids // 功能节点的数据主键   oids含有多个元素(['1001A41000000000A9LR','1001A410000000009JDD'])时为批量打印,
 | ||||
| 		} | ||||
| 	); | ||||
| } | ||||
|  | @ -0,0 +1,12 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 刷新   | ||||
|  * @Date: 2018-05-31 19:45:10  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-09-10 14:57:51 | ||||
|  */ | ||||
| import { BUTTONS } from '../../const'; | ||||
| 
 | ||||
| export default function refresh_BtnClick(props) { | ||||
| 	this.getData(BUTTONS.REFRESH); | ||||
| } | ||||
|  | @ -0,0 +1,104 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 保存按钮事件  | ||||
|  * @Date: 2018-05-14 21:48:31  | ||||
|  * @Last Modified by: wangpju | ||||
|  * @Last Modified time: 2021-08-02 13:50:55 | ||||
|  */ | ||||
| 
 | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| import { base, ajax } from 'nc-lightapp-front'; | ||||
| import { | ||||
| 	changeUrlParam, | ||||
| 	addCacheData, | ||||
| 	updateCacheData, | ||||
| 	deleteCacheData, | ||||
| 	getNextId | ||||
| } from '../../../../../scmpub/scmpub/pub/cache'; | ||||
| import { showSuccessInfo } from '../../../../../scmpub/scmpub/pub/tool/messageUtil'; | ||||
| import { getLangByResId } from '../../../../../scmpub/scmpub/pub/tool/multiLangUtil'; | ||||
| 
 | ||||
| export default function clickSaveBtn(props) { | ||||
| 	//过滤表格空行
 | ||||
| 	props.cardTable.filterEmptyRows(SOBALANCE_CONST.tableId, [ 'varbillcode' ], 'include'); | ||||
| 	//校验必输项
 | ||||
| 	let flag = props.validatePageToToast([ | ||||
| 		{ | ||||
| 			name:SOBALANCE_CONST.formId, | ||||
| 			type:'form' | ||||
| 		},{ | ||||
| 			name:SOBALANCE_CONST.tableId, | ||||
| 			type:'cardTable' | ||||
| 		} | ||||
| 	]); | ||||
| 	if(!flag.allPassed){ | ||||
| 		return ; | ||||
| 	} | ||||
| 	let CardData = props.createMasterChildDataSimple(this.pageId, this.formId, this.tableId); | ||||
| 	let rows = CardData.body[this.tableId].rows; | ||||
| 	let newRows = []; | ||||
| 	rows.forEach((row, index) => { | ||||
| 		row.values.pseudocolumn = { value: index + '' }; | ||||
| 		newRows.push(row); | ||||
| 	}); | ||||
| 	CardData.body[this.tableId].rows = newRows; | ||||
| 	let url = SOBALANCE_CONST.saveUrl; | ||||
| 	let csobalanceid = props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'csobalanceid').value; | ||||
| 	let csaleorderid = props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'csaleorderid').value; | ||||
| 
 | ||||
| 	this.props.validateToSave(CardData, () => { | ||||
| 		ajax({ | ||||
| 			url: url, | ||||
| 			pageid: this.pageId, | ||||
| 			data: CardData, | ||||
| 
 | ||||
| 			success: (res) => { | ||||
| 				if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { | ||||
| 					this.props.dealFormulamsg( | ||||
| 						res.formulamsg //参数一:返回的公式对象
 | ||||
| 					); | ||||
| 				} | ||||
| 				if (res.success) { | ||||
| 					if (res.data) { | ||||
| 						props.beforeUpdatePage(); | ||||
| 						if (res.data.head && res.data.head[this.formId]) { | ||||
| 							props.form.setAllFormValue({ [this.formId]: res.data.head[this.formId] }); | ||||
| 						} | ||||
| 						if (res.data.body && res.data.body[this.tableId]) { | ||||
| 							let fullTableData = props.cardTable.updateDataByRowId( | ||||
| 								this.tableId, | ||||
| 								res.data.body[this.tableId], | ||||
| 								true | ||||
| 							); | ||||
| 							res.data.body[this.tableId] = fullTableData; | ||||
| 						} | ||||
| 						changeUrlParam(props, { status: SOBALANCE_CONST.browse }); | ||||
| 						updateCacheData( | ||||
| 							props, | ||||
| 							'csaleorderid', | ||||
| 							csaleorderid, | ||||
| 							res.data, | ||||
| 							SOBALANCE_CONST.formId, | ||||
| 							SOBALANCE_CONST.SobalanceCacheKey | ||||
| 						); | ||||
| 					} else { | ||||
| 						let nextId = getNextId(this.props, csaleorderid, SOBALANCE_CONST.SobalanceCacheKey); | ||||
| 						deleteCacheData(props, 'csaleorderid', csaleorderid, SOBALANCE_CONST.SobalanceCacheKey); | ||||
| 						csaleorderid = nextId; | ||||
| 						props.form.EmptyAllFormValue(SOBALANCE_CONST.formId); | ||||
| 						props.cardTable.setTableData(SOBALANCE_CONST.tableId, { rows: [] }); | ||||
| 					} | ||||
| 					showSuccessInfo(getLangByResId(this, '4006SOBALANCE-000003')); /* 国际化处理: 保存成功!*/ | ||||
| 					changeUrlParam(props, { | ||||
| 						status: SOBALANCE_CONST.browse, | ||||
| 						id: csaleorderid | ||||
| 					}); | ||||
| 					props.updatePage(SOBALANCE_CONST.formId, SOBALANCE_CONST.tableId); | ||||
| 					this.getData(); | ||||
| 					// 去除复选框的打钩
 | ||||
| 					props.cardTable.selectAllRows(SOBALANCE_CONST.tableId, false); | ||||
| 				} | ||||
| 			} | ||||
| 		}); | ||||
| 	}); | ||||
| } | ||||
|  | @ -0,0 +1,17 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 卡片展开按钮事件 | ||||
|  * @Date: 2018-04-19 10:38:05  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-06-07 22:06:15 | ||||
|  */ | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| 
 | ||||
| export default function buttonClick(props, record, index) { | ||||
| 	let status = props.cardTable.getStatus(SOBALANCE_CONST.tableId); | ||||
| 	if (status === SOBALANCE_CONST.browse) { | ||||
| 		props.cardTable.toggleRowView(SOBALANCE_CONST.tableId, record); | ||||
| 	} else { | ||||
| 		props.cardTable.openModel(SOBALANCE_CONST.tableId, SOBALANCE_CONST.edit, record, index); | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,17 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 编辑事件   | ||||
|  * @Date: 2018-05-18 11:29:36  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-07-27 14:49:02 | ||||
|  */ | ||||
| 
 | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| import bodyEvents from './body_afterEvent'; | ||||
| 
 | ||||
| export default function afterEvent(props, moduleId, key, value, rows, i, s, g) { | ||||
| 	if (moduleId === SOBALANCE_CONST.tableId) { | ||||
| 		//表体区域改变
 | ||||
| 		bodyEvents.call(this, props, moduleId, key, value, rows, i, s, g); | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,64 @@ | |||
| /* | ||||
|  * @Author: cuijun | ||||
|  * @PageInfo: 表体编辑后事件  | ||||
|  * @Date: 2018-05-218 10:37:43  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-12-13 13:52:10 | ||||
|  */ | ||||
| 
 | ||||
| import { ajax, toast } from 'nc-lightapp-front'; | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| import { processBillCardBodyEditResult } from '../../../../../scmpub/scmpub/pub/tool/afterEditUtil'; | ||||
| let pagecode = SOBALANCE_CONST.cardPageId; | ||||
| let tableId = SOBALANCE_CONST.tableId; | ||||
| let formId = SOBALANCE_CONST.formId; | ||||
| 
 | ||||
| export default function bodyAfterEvent(props, moduleId, key, value, changedrows, i, record) { | ||||
| 	// 如果值未改变,不走编辑事件
 | ||||
| 	let ischange = false; | ||||
| 	changedrows.forEach((element) => { | ||||
| 		if (JSON.stringify(element.newvalue.value || {}) != JSON.stringify(element.oldvalue.value || {})) { | ||||
| 			ischange = true; | ||||
| 			return; | ||||
| 		} | ||||
| 	}); | ||||
| 	if (!ischange) { | ||||
| 		return; | ||||
| 	} | ||||
| 	if (key == 'varbillcode') { | ||||
| 		//let data = createBodyAfterEventData(props, pagecode, formId, tableId, moduleId, key, changedrows, i);
 | ||||
| 		let data = props.createBodyAfterEventData(pagecode, formId, tableId, moduleId, key, changedrows); | ||||
| 		data.index = 0; | ||||
| 		// 处理编辑传递单行处理
 | ||||
| 		let rows = data.card.body[tableId].rows; | ||||
| 		let newRows = [ rows[i] ]; | ||||
| 		data.card.body[tableId].rows = newRows; | ||||
| 		// userObject 处理
 | ||||
| 		let userobject = {}; | ||||
| 		userobject['scm_originindex'] = i + ''; | ||||
| 		data.userobject = userobject; | ||||
| 
 | ||||
| 		ajax({ | ||||
| 			url: SOBALANCE_CONST.bodyAfterEdit, | ||||
| 			data: data, | ||||
| 			async: false, | ||||
| 			success: (res) => { | ||||
| 				if (res.data) { | ||||
| 					if (res.data.billCard.head) { | ||||
| 						props.form.setAllFormValue({ [formId]: res.data.billCard.head[formId] }); | ||||
| 					} | ||||
| 					if (res.data.billCard.body) { | ||||
| 						setTimeout(() => { | ||||
| 							let record = res.data; | ||||
| 							record.billCard.body[tableId].rows.forEach(function(value, index) { | ||||
| 								record.billCard.body[tableId].rows[index].values.varbillcode.display = | ||||
| 									record.billCard.body[tableId].rows[index].values.varbillcode.value; | ||||
| 							}); | ||||
| 							processBillCardBodyEditResult(props, moduleId, record, i); | ||||
| 						}, 0); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,77 @@ | |||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| 
 | ||||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 表体编辑前事件  | ||||
|  * @Date: 2018-06-05 18:25:15  | ||||
|  * @Last Modified by: yangls7 | ||||
|  * @Last Modified time: 2021-04-15 10:34:06 | ||||
|  */ | ||||
| 
 | ||||
| export default async function bodyBeforeEvent(props, moduleId, key, index, value, rowdata) { | ||||
| 	let record = rowdata.values; | ||||
| 	// 收款单单据号
 | ||||
| 	if (key === 'varbillcode') { | ||||
| 		return varbillcodeBeforeEdit.bind(this)(moduleId, key, index, value, record); | ||||
| 		// 本次订单核销金额编辑前
 | ||||
| 	} else if (key === 'norigthisbalmny') { | ||||
| 		return norigthisbalmnyBeforeEdit.bind(this)(moduleId, key, index, value, record); | ||||
| 	} | ||||
| 	return true; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 收款单单据号编辑前事件 | ||||
|  */ | ||||
| function varbillcodeBeforeEdit(moduleId, key, index, value, record) { | ||||
| 	//税价合计
 | ||||
| 	let ntotalorigtaxmny = (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'ntotalorigtaxmny') || {}).value; | ||||
| 	//核销类型
 | ||||
| 	let fibaltype = (record.fibaltype || {}).value; | ||||
| 	// 只有订单核销行或者表头金额合计不等于0可以编辑
 | ||||
| 	if (fibaltype == '1' || ntotalorigtaxmny == '0') { | ||||
| 		return false; | ||||
| 	} | ||||
| 	// 收款单参照
 | ||||
| 	let CardData = this.props.createMasterChildDataSimple( | ||||
| 		SOBALANCE_CONST.cardPageId, | ||||
| 		SOBALANCE_CONST.formId, | ||||
| 		SOBALANCE_CONST.tableId | ||||
| 	); | ||||
| 
 | ||||
| 	this.props.cardTable.setQueryCondition(SOBALANCE_CONST.tableId, { | ||||
| 		[key]: () => { | ||||
| 			return { | ||||
| 				pk_saleorg: (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'SoBalanceHVO.CARORGID') || {}) | ||||
| 					.value, | ||||
| 				scm_so_org: (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'pk_org') || {}).value, | ||||
| 				money: (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'ntotalorigtaxmny') || {}).value, | ||||
| 				pk_org: (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'carorgid') || {}).value, | ||||
| 				scm_pk_currtype: (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'corigcurrencyid') || {}) | ||||
| 					.value, | ||||
| 				scm_customer: (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'cinvoicecustid') || {}).value, | ||||
| 				So_ordertype: (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'vtrantypecode') || {}).value, | ||||
| 				Sett_org: (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'csaleorderid') || {}).value, | ||||
| 				So_psndoc: (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'cemployeeid') || {}).value, | ||||
| 				So_transtype: (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'cchanneltypeid') || {}).value, | ||||
| 				Ordercubasdoc: (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'ccustomerid') || {}).value, | ||||
| 				GridRefActionExt: 'nccloud.web.so.sobalance.ref.PaybillRefFilterUtils' | ||||
| 			}; | ||||
| 		} | ||||
| 	}); | ||||
| 	return true; | ||||
| } | ||||
| /** | ||||
|  * 本次订单核销金额编辑前事件 | ||||
|  */ | ||||
| function norigthisbalmnyBeforeEdit(moduleId, key, index, value, record) { | ||||
| 	// 只有订单核销行
 | ||||
| 	//核销类型
 | ||||
| 	let fibaltype = record.fibaltype; | ||||
| 	// 核销类型为订单收款核销才可以编辑
 | ||||
| 	if (fibaltype.value === '1') { | ||||
| 		return false; | ||||
| 	} else { | ||||
| 		return true; | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,4 @@ | |||
| import afterEvent from './afterEvent'; | ||||
| import bodyBeforeEvent from './body_beforeEvent'; | ||||
| import switchController from './switchController' | ||||
| export { afterEvent, bodyBeforeEvent,switchController }; | ||||
|  | @ -0,0 +1,11 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 切换视图按钮控制  | ||||
|  * @Date: 2018-06-05 18:25:15  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-11-02 11:19:49 | ||||
|  */ | ||||
| 
 | ||||
| export default function switchController() { | ||||
| 	return false; | ||||
| } | ||||
|  | @ -0,0 +1,285 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 卡片页面   | ||||
|  * @Date: 2018-05-14 13:06:33  | ||||
|  * @Last Modified by: zhangllb | ||||
|  * @Last Modified time: 2022-07-26 16:17:07 | ||||
|  */ | ||||
| 
 | ||||
| import React, { Component } from 'react'; | ||||
| import { createPage, ajax, base, toast } from 'nc-lightapp-front'; | ||||
| import { showWarningInfo, showSuccessInfo } from '../../../../scmpub/scmpub/pub/tool/messageUtil'; | ||||
| import { initTemplate, rowbtn_Controller } from './init'; | ||||
| import { buttonClick, operateBtnClick, pageInfoBtnClick } from './btnClicks'; | ||||
| import buttonController from './viewController/buttonController'; | ||||
| import { SOBALANCE_CONST, BUTTON_AREA, BUTTONS } from '../const'; | ||||
| import { afterEvent, bodyBeforeEvent, switchController } from './events'; | ||||
| import { getCacheDataByPk, updateCacheData } from '../../../../scmpub/scmpub/pub/cache'; | ||||
| import { initLang, getLangByResId } from '../../../../scmpub/scmpub/pub/tool/multiLangUtil'; | ||||
| import { createCardTitle } from '../../../../scmpub/scmpub/pub/tool/titleUtil'; | ||||
| import { showSagaErrorToast } from '../../../../scmpub/scmpub/pub/tool/sagaMessageUtils'; | ||||
| 
 | ||||
| let { NCAffix, NCDiv } = base; | ||||
| class SoBalanceCard extends Component { | ||||
| 	constructor(props) { | ||||
| 		super(props); | ||||
| 		this.formId = SOBALANCE_CONST.formId; | ||||
| 		this.tableId = SOBALANCE_CONST.tableId; | ||||
| 		this.pageId = SOBALANCE_CONST.cardPageId; | ||||
| 		this.lastId = ''; | ||||
| 		props.use.form(this.formId); | ||||
| 		props.use.cardTable(this.tableId); | ||||
| 		this.state = { | ||||
| 			billcode: '' | ||||
| 		}; | ||||
| 	} | ||||
| 	componentWillMount() { | ||||
| 		initLang(this, [ '4006sobalance' ], 'so', initTemplate.bind(this, this.props)); | ||||
| 		// 关闭浏览器
 | ||||
| 		window.onbeforeunload = () => { | ||||
| 			let status = this.props.cardTable.getStatus(SOBALANCE_CONST.tableId); | ||||
| 			if (status == SOBALANCE_CONST.edit || status == SOBALANCE_CONST.add) { | ||||
| 				return getLangByResId(this, '4006SOBALANCE-000004'); /* 国际化处理: 当前单据未保存,您确认离开此页面?*/ | ||||
| 			} | ||||
| 		}; | ||||
| 	} | ||||
| 	getData = (button) => { | ||||
| 		let billcodeStr = ''; | ||||
| 		let data = { pk: this.props.getUrlParam(SOBALANCE_CONST.id), pageid: this.pageId }; | ||||
| 		let status = this.props.getUrlParam(SOBALANCE_CONST.status); | ||||
| 		//无pk时,显示空页面
 | ||||
| 		if (data.pk === undefined || data.pk == null || data.pk == 'null') { | ||||
| 			this.props.beforeUpdatePage(); | ||||
| 			this.props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
| 				billCode: billcodeStr | ||||
| 			}); | ||||
| 			this.props.form.EmptyAllFormValue(SOBALANCE_CONST.formId); | ||||
| 			this.props.cardTable.setTableData(this.tableId, { rows: [] }); | ||||
| 			buttonController.call(this); | ||||
| 			this.props.updatePage(SOBALANCE_CONST.formId, SOBALANCE_CONST.tableId); | ||||
| 			return; | ||||
| 		} else { | ||||
| 			//缓存上次操作的单据号,
 | ||||
| 			if (!this.lastId) { | ||||
| 				this.lastId = this.props.getUrlParam(SOBALANCE_CONST.id); | ||||
| 			} | ||||
| 			let cacheData = getCacheDataByPk( | ||||
| 				this.props, | ||||
| 				SOBALANCE_CONST.SobalanceCacheKey, | ||||
| 				this.props.getUrlParam(SOBALANCE_CONST.id) | ||||
| 			); | ||||
| 			//缓存中取卡片页面数据
 | ||||
| 			if ((!button || button != BUTTONS.REFRESH) && cacheData) { | ||||
| 				this.props.beforeUpdatePage(); | ||||
| 				billcodeStr = cacheData.head[SOBALANCE_CONST.formId].rows[0].values.vbillcode.value; | ||||
| 				this.props.form.setAllFormValue({ | ||||
| 					[SOBALANCE_CONST.formId]: cacheData.head[SOBALANCE_CONST.formId] | ||||
| 				}); | ||||
| 				this.props.cardTable.setTableData(SOBALANCE_CONST.tableId, cacheData.body[SOBALANCE_CONST.tableId]); | ||||
| 				this.props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
| 					billCode: billcodeStr | ||||
| 				}); | ||||
| 				// 设置按钮可用性
 | ||||
| 				buttonController.call(this); | ||||
| 				this.showSagaMassage.call(this, this.props); | ||||
| 				this.props.updatePage(SOBALANCE_CONST.formId, SOBALANCE_CONST.tableId); | ||||
| 				return; | ||||
| 			} else { | ||||
| 				ajax({ | ||||
| 					url: SOBALANCE_CONST.queryCardUrl, | ||||
| 					data: data, | ||||
| 					success: (res) => { | ||||
| 						if (res.success) { | ||||
| 							if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { | ||||
| 								this.props.dealFormulamsg( | ||||
| 									res.formulamsg //参数一:返回的公式对象
 | ||||
| 								); | ||||
| 							} | ||||
| 							this.props.beforeUpdatePage(); | ||||
| 							if ( | ||||
| 								(!res.data || | ||||
| 									!res.data.head || | ||||
| 									!res.data.body || | ||||
| 									res.data.body[this.tableId].rows.length == 0) && | ||||
| 								status == SOBALANCE_CONST.browse | ||||
| 							) { | ||||
| 								showWarningInfo( | ||||
| 									null, | ||||
| 									getLangByResId(this, '4006SOBALANCE-000005') | ||||
| 								); /* 国际化处理: 数据已经被删除,请返回列表界面!*/ | ||||
| 								this.props.form.EmptyAllFormValue(this.formId); | ||||
| 								this.props.cardTable.setTableData(this.tableId, { rows: [] }); | ||||
| 								this.props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
| 									billCode: '' | ||||
| 								}); | ||||
| 								buttonController.call(this); | ||||
| 								return; | ||||
| 							} else { | ||||
| 								if (res.data.head) { | ||||
| 									this.props.form.setAllFormValue({ [this.formId]: res.data.head[this.formId] }); | ||||
| 									this.props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
| 										billCode: res.data.head[this.formId].rows[0].values.vbillcode.value | ||||
| 									}); | ||||
| 								} | ||||
| 								if (res.data.body && res.data.body[this.tableId].rows.length > 0) { | ||||
| 									for (let i = 0; i < res.data.body[this.tableId].rows.length; i++) { | ||||
| 										res.data.body[this.tableId].rows[i].values.varbillcode.display = | ||||
| 											res.data.body[this.tableId].rows[i].values.varbillcode.value; | ||||
| 									} | ||||
| 									this.props.cardTable.setTableData(this.tableId, res.data.body[this.tableId]); | ||||
| 									//表体数据为空时,不更新缓存
 | ||||
| 									updateCacheData( | ||||
| 										this.props, | ||||
| 										'csaleorderid', | ||||
| 										data.pk, | ||||
| 										res.data, | ||||
| 										SOBALANCE_CONST.formId, | ||||
| 										SOBALANCE_CONST.SobalanceCacheKey | ||||
| 									); | ||||
| 								} | ||||
| 								if (button == BUTTONS.REFRESH) { | ||||
| 									showSuccessInfo(getLangByResId(this, '4006SOBALANCE-000012')); /* 国际化处理: 刷新成功!*/ | ||||
| 								} | ||||
| 							} | ||||
| 						} else { | ||||
| 							this.props.form.EmptyAllFormValue(this.formId); | ||||
| 							this.props.cardTable.setTableData(this.tableId, { rows: [] }); | ||||
| 							this.props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
| 								billCode: '' | ||||
| 							}); | ||||
| 							props.setUrlParam({ | ||||
| 								status: SOBALANCE_CONST.browse, | ||||
| 								id: '' | ||||
| 							}); | ||||
| 						} | ||||
| 						buttonController.call(this); | ||||
| 						this.showSagaMassage.call(this, this.props); | ||||
| 
 | ||||
| 						this.props.updatePage(SOBALANCE_CONST.formId, SOBALANCE_CONST.tableId); | ||||
| 					} | ||||
| 				}); | ||||
| 			} | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| 	showSagaMassage = (props) => { | ||||
| 		if (props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'saga_gtxid')) { | ||||
| 			showSagaErrorToast(props, { | ||||
| 				gtxid: props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'saga_gtxid').value, | ||||
| 				billpk: props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'csobalanceid').value | ||||
| 			}); | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| 	//获取列表肩部信息
 | ||||
| 	getTableHead = () => { | ||||
| 		return this.props.getUrlParam(SOBALANCE_CONST.status) == SOBALANCE_CONST.edit || | ||||
| 		this.props.getUrlParam(SOBALANCE_CONST.status) == SOBALANCE_CONST.add ? ( | ||||
| 			<div className="shoulder-definition-area"> | ||||
| 				<div className="definition-icons"> | ||||
| 					{/* 新增行按钮 */} | ||||
| 					{this.props.button.createButtonApp({ | ||||
| 						area: BUTTON_AREA.Card_Body, | ||||
| 						buttonLimit: 3, | ||||
| 						onButtonClick: operateBtnClick.bind(this) | ||||
| 						//popContainer: document.querySelector('.header-button-area')
 | ||||
| 					})} | ||||
| 				</div> | ||||
| 			</div> | ||||
| 		) : ( | ||||
| 			'' | ||||
| 		); | ||||
| 	}; | ||||
| 
 | ||||
| 	// 点击返回
 | ||||
| 	clickReturn = () => { | ||||
| 		this.props.pushTo(SOBALANCE_CONST.List_URL, { | ||||
| 			pagecode: SOBALANCE_CONST.listPageId | ||||
| 		}); | ||||
| 	}; | ||||
| 
 | ||||
| 	// 主方法
 | ||||
| 	render() { | ||||
| 		let { cardTable, form, button, modal, cardPagination, socket } = this.props; | ||||
| 		const { createCardPagination } = cardPagination; | ||||
| 		const { createForm } = form; | ||||
| 		let { createCardTable } = cardTable; | ||||
| 		let { createButtonApp } = button; | ||||
| 		return ( | ||||
| 			<div className="nc-bill-card"> | ||||
| 				{socket.connectMesg({ | ||||
| 					headBtnAreaCode: BUTTON_AREA.Card_Head, // 表头按钮区域ID
 | ||||
| 					formAreaCode: SOBALANCE_CONST.formId, // 表头Form区域ID
 | ||||
| 					billpkname: 'csobalanceid', | ||||
| 					dataSource: SOBALANCE_CONST.SobalanceCacheKey | ||||
| 				})} | ||||
| 				<div className="nc-bill-top-area"> | ||||
| 					<NCAffix> | ||||
| 						<NCDiv areaCode={NCDiv.config.HEADER} className="nc-bill-header-area"> | ||||
| 							<div className="header-title-search-area"> | ||||
| 								<span> | ||||
| 									{createCardTitle(this, { | ||||
| 										billCode: this.state.billcode, | ||||
| 										backBtnClick: this.clickReturn.bind(this) | ||||
| 									})} | ||||
| 								</span> | ||||
| 							</div> | ||||
| 							<div className="header-button-area"> | ||||
| 								{this.props.button.createErrorFlag({ | ||||
| 									headBtnAreaCode: BUTTON_AREA.Card_Head | ||||
| 								})} | ||||
| 								{createButtonApp({ | ||||
| 									area: BUTTON_AREA.Card_Head, | ||||
| 									buttonLimit: 4, | ||||
| 									onButtonClick: buttonClick.bind(this) | ||||
| 									// popContainer: document.querySelector('.header-button-area')
 | ||||
| 								})} | ||||
| 							</div> | ||||
| 							<div className="header-cardPagination-area" style={{ float: 'right' }}> | ||||
| 								{createCardPagination({ | ||||
| 									handlePageInfoChange: pageInfoBtnClick.bind(this), | ||||
| 									dataSource: SOBALANCE_CONST.SobalanceCacheKey | ||||
| 								})} | ||||
| 							</div> | ||||
| 						</NCDiv> | ||||
| 					</NCAffix> | ||||
| 					{/* 表头 */} | ||||
| 					<div className="nc-bill-form-area"> | ||||
| 						{createForm(this.formId, { | ||||
| 							onAfterEvent: afterEvent.bind(this) | ||||
| 						})} | ||||
| 					</div> | ||||
| 				</div> | ||||
| 				<div className="nc-bill-bottom-area"> | ||||
| 					{/* 表体 */} | ||||
| 					<div className="nc-bill-table-area"> | ||||
| 						{createCardTable(this.tableId, { | ||||
| 							tableHead: this.getTableHead.bind(this), | ||||
| 							showCheck: true, | ||||
| 							showIndex: true, | ||||
| 							onSelected: rowbtn_Controller.bind(this), | ||||
| 							onSelectedAll: rowbtn_Controller.bind(this), | ||||
| 							onBeforeEvent: bodyBeforeEvent.bind(this), | ||||
| 							onAfterEvent: afterEvent.bind(this), | ||||
| 							hideSwitch: switchController.bind(this), | ||||
| 							adaptionHeight: true, | ||||
| 							onBatchSelected: rowbtn_Controller.bind(this) | ||||
| 						})} | ||||
| 					</div> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 		); | ||||
| 	} | ||||
| } | ||||
| SoBalanceCard = createPage({ | ||||
| 	billinfo: { | ||||
| 		billtype: 'card', | ||||
| 		pagecode: SOBALANCE_CONST.cardPageId, | ||||
| 		headcode: SOBALANCE_CONST.formId, | ||||
| 		bodycode: { | ||||
| 			[SOBALANCE_CONST.tableId]: 'cardTable' //此处发生变化了,需要传一个对象
 | ||||
| 		} | ||||
| 	}, | ||||
| 	orderOfHotKey: [ SOBALANCE_CONST.formId, SOBALANCE_CONST.tableId ] | ||||
| })(SoBalanceCard); | ||||
| export default SoBalanceCard; | ||||
|  | @ -0,0 +1,3 @@ | |||
| import initTemplate from './initTemplate'; | ||||
| import rowbtn_Controller from './toggleShow'; | ||||
| export { initTemplate, rowbtn_Controller }; | ||||
|  | @ -0,0 +1,25 @@ | |||
| /* | ||||
|  * @Author: cuijun | ||||
|  * @PageInfo: 初始化列表状态下行按钮 | ||||
|  * @Date: 2018-04-19 10:32:11  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-05-31 16:32:22 | ||||
|  */ | ||||
| import { BUTTON_AREA, LIST_INNER_BUTTONS } from '../../const'; | ||||
| import { operateBtnClick } from '../btnClicks'; | ||||
| 
 | ||||
| export default function(props, text, record, index) { | ||||
| 	return props.getUrlParam('status')==='edit' ? ( | ||||
| 		props.button.createOprationButton(LIST_INNER_BUTTONS.C_Edit, { | ||||
| 			area: BUTTON_AREA.Card_Body_Inner, | ||||
| 			buttonLimit: 2, | ||||
| 			onButtonClick: (props, key) => operateBtnClick.bind(this)(props, key, text, record, index) | ||||
| 		}) | ||||
| 	):( | ||||
| 		props.button.createOprationButton(LIST_INNER_BUTTONS.C_Browse, { | ||||
| 			area: BUTTON_AREA.Card_Body_Inner, | ||||
| 			buttonLimit: 2, | ||||
| 			onButtonClick: (props, key) => operateBtnClick.bind(this)(props, key, text, record, index) | ||||
| 		}) | ||||
| 	); | ||||
| } | ||||
|  | @ -0,0 +1,64 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 卡片初始化模板 | ||||
|  * @Date: 2018-05-14 13:36:31  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-10-22 18:30:28 | ||||
|  */ | ||||
| 
 | ||||
| import { base, ajax } from 'nc-lightapp-front'; | ||||
| import { SOBALANCE_CONST, BUTTON_AREA } from '../../const'; | ||||
| import initCardRowButtons from './initCardRowButtons'; | ||||
| import { getLangByResId } from '../../../../../scmpub/scmpub/pub/tool/multiLangUtil'; | ||||
| 
 | ||||
| let { NCPopconfirm } = base; | ||||
| let tableId = SOBALANCE_CONST.tableId; | ||||
| let pagecode = SOBALANCE_CONST.cardPageId; | ||||
| let formId = SOBALANCE_CONST.formId; //'head';
 | ||||
| 
 | ||||
| export default function(props) { | ||||
| 	let _this = this; | ||||
| 	props.createUIDom( | ||||
| 		{ | ||||
| 			pagecode: pagecode //卡片页面编码
 | ||||
| 		}, | ||||
| 		callbackFun | ||||
| 	); | ||||
| 	function callbackFun(data) { | ||||
| 		if (data) { | ||||
| 			if (data.button) { | ||||
| 				let button = data.button; | ||||
| 				props.button.hideButtonsByAreas([ BUTTON_AREA.Card_Head, BUTTON_AREA.Card_Body ]); | ||||
| 				props.button.setOprationBtnsRenderStatus([ BUTTON_AREA.Card_Body_Inner ], false); | ||||
| 				props.button.setButtons(button); | ||||
| 			} | ||||
| 			if (data.template) { | ||||
| 				let meta = data.template; | ||||
| 				modifierMeta.call(_this, props, meta); | ||||
| 				props.meta.setMeta(meta, _this.getData()); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| function modifierMeta(props, meta) { | ||||
| 	status = props.cardTable.getStatus(SOBALANCE_CONST.tableId); | ||||
| 	meta[formId].status = status; | ||||
| 	meta[tableId].status = status; | ||||
| 	props.cardTable.setStatus(SOBALANCE_CONST.formId, status); | ||||
| 	props.cardTable.setStatus(SOBALANCE_CONST.tableId, status); | ||||
| 
 | ||||
| 	let porCol = { | ||||
| 		attrcode: 'opr', | ||||
| 		label: getLangByResId(this, '4006SOBALANCE-000007') /* 国际化处理: 操作*/, | ||||
| 		width: '150px', | ||||
| 		visible: true, | ||||
| 		fixed: 'right', | ||||
| 		itemtype: 'customer', | ||||
| 		render(text, record, index) { | ||||
| 			return initCardRowButtons.bind(this, props, text, record, index)(); | ||||
| 		} | ||||
| 	}; | ||||
| 	meta[tableId].items.push(porCol); | ||||
| 	return meta; | ||||
| } | ||||
|  | @ -0,0 +1,24 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 根据页面状态设置按钮显示 | ||||
|  * @Date: 2018-09-19 11:45:07  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2020-03-17 15:30:45 | ||||
|  */ | ||||
| import { SOBALANCE_CONST, BUTTONS } from '../../const'; | ||||
| 
 | ||||
| export default function() { | ||||
| 	// 处理肩部按钮可用性
 | ||||
| 	if ( | ||||
| 		this.props.getUrlParam(SOBALANCE_CONST.status) == 'edit' || | ||||
| 		this.props.getUrlParam(SOBALANCE_CONST.status) == 'add' | ||||
| 	) { | ||||
| 		let selrows = this.props.cardTable.getCheckedRows(SOBALANCE_CONST.tableId); | ||||
| 		let buttons = [ BUTTONS.DELETELINE ]; | ||||
| 		if (selrows != undefined && selrows.length > 0) { | ||||
| 			this.props.button.setButtonDisabled(buttons, false); | ||||
| 		} else { | ||||
| 			this.props.button.setButtonDisabled(buttons, true); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,94 @@ | |||
| /* | ||||
|  * @Author: cuijunf | ||||
|  * @PageInfo: 根据页面状态设置按钮显示 | ||||
|  * @Date: 2018-05-26 11:45:07  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2019-11-27 14:21:26 | ||||
|  */ | ||||
| import { SOBALANCE_CONST, CARD_BODY_BUTTONS, CARD_HEAD_BUTTONS, BUTTON_AREA } from '../../const'; | ||||
| import { rowbtn_Controller } from '../init'; | ||||
| 
 | ||||
| export default function() { | ||||
| 	let status = this.props.getUrlParam(SOBALANCE_CONST.status); | ||||
| 	if (status === SOBALANCE_CONST.add) { | ||||
| 		status = SOBALANCE_CONST.edit; | ||||
| 	} | ||||
| 	// 1.设置界面状态
 | ||||
| 	setUIState.call(this, status); | ||||
| 	let flag = status === SOBALANCE_CONST.edit ? true : false; | ||||
| 
 | ||||
| 	// 2.设置按钮的显示隐藏
 | ||||
| 	setCardButtonVisiable.call(this, flag); | ||||
| 	// 3.设置主按钮
 | ||||
| 	setMainButton.call(this); | ||||
| 
 | ||||
| 	// 4.返回按钮的显示隐藏
 | ||||
| 	setBackButtonVisiable.call(this, flag); | ||||
| 
 | ||||
| 	// 5.设置卡片分页器的显示隐藏
 | ||||
| 	setCardPaginationVisible.call(this, flag); | ||||
| 	// 6.设置其他按钮的显示隐藏
 | ||||
| 	setOtherButtonVisible.call(this, status); | ||||
| } | ||||
| 
 | ||||
| function setUIState(status) { | ||||
| 	if (status == SOBALANCE_CONST.edit || status == SOBALANCE_CONST.add) { | ||||
| 		//编辑态
 | ||||
| 		this.props.form.setFormStatus(SOBALANCE_CONST.formId, SOBALANCE_CONST.edit); | ||||
| 		this.props.cardTable.setStatus(SOBALANCE_CONST.tableId, SOBALANCE_CONST.edit); | ||||
| 	} else { | ||||
| 		//浏览态
 | ||||
| 		this.props.form.setFormStatus(SOBALANCE_CONST.formId, status); | ||||
| 		this.props.cardTable.setStatus(SOBALANCE_CONST.tableId, status); | ||||
| 	} | ||||
| } | ||||
| function setCardButtonVisiable(flag) { | ||||
| 	let pk = this.props.getUrlParam(SOBALANCE_CONST.id); | ||||
| 	if (flag) { | ||||
| 		this.props.button.setButtonVisible(CARD_HEAD_BUTTONS.ALL, false); | ||||
| 		this.props.button.setButtonVisible(CARD_HEAD_BUTTONS.EDIT, true); | ||||
| 		this.props.form.setFormItemsDisabled(SOBALANCE_CONST.formId, { pk_org: true }); | ||||
| 		//设置肩部按钮全不显示
 | ||||
| 		this.props.button.setButtonVisible(CARD_BODY_BUTTONS.ALL, false); | ||||
| 		//设置肩部按钮显示部分
 | ||||
| 		this.props.button.setButtonVisible(CARD_BODY_BUTTONS.EDIT, true); | ||||
| 	} else { | ||||
| 		if (pk && pk != null && pk != 'null') { | ||||
| 			this.props.button.setButtonVisible(CARD_HEAD_BUTTONS.ALL, false); | ||||
| 			this.props.button.setButtonVisible(CARD_HEAD_BUTTONS.BROWSE, true); | ||||
| 			//设置肩部按钮全不显示
 | ||||
| 			this.props.button.setButtonVisible(CARD_BODY_BUTTONS.ALL, false); | ||||
| 			//设置肩部按钮显示部分
 | ||||
| 			this.props.button.setButtonVisible(CARD_BODY_BUTTONS.BROWSE, true); | ||||
| 		} else { | ||||
| 			//隐藏翻页控件
 | ||||
| 			this.props.cardPagination.setCardPaginationVisible('cardPaginationBtn', false); | ||||
| 			this.props.button.setButtonVisible(CARD_HEAD_BUTTONS.ALL, false); | ||||
| 			//设置肩部按钮全不显示
 | ||||
| 			this.props.button.setButtonVisible(CARD_BODY_BUTTONS.ALL, false); | ||||
| 		} | ||||
| 		//根据saga冻结状态控制按钮显示
 | ||||
| 		let saga_status = (this.props.form.getFormItemsValue(SOBALANCE_CONST.formId, 'saga_status') || {}).value; | ||||
| 		if (saga_status == 1) { | ||||
| 			this.props.button.toggleErrorStatus(BUTTON_AREA.Card_Head, { | ||||
| 				isError: true | ||||
| 			}); | ||||
| 		} else { | ||||
| 			this.props.button.toggleErrorStatus(BUTTON_AREA.Card_Head, { | ||||
| 				isError: false | ||||
| 			}); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| function setOtherButtonVisible(status) { | ||||
| 	rowbtn_Controller.call(this); | ||||
| } | ||||
| function setMainButton() {} | ||||
| function setBackButtonVisiable(flag) { | ||||
| 	this.props.BillHeadInfo.setBillHeadInfoVisible({ | ||||
| 		showBackBtn: !flag //控制显示返回按钮: true为显示,false为隐藏 ---非必传
 | ||||
| 	}); | ||||
| } | ||||
| function setCardPaginationVisible(flag) { | ||||
| 	this.props.cardPagination.setCardPaginationVisible('cardPaginationBtn', !flag); | ||||
| } | ||||
|  | @ -0,0 +1,83 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 订单收款核销常量  | ||||
|  * @Date: 2018-05-11 10:40:02  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2019-11-21 18:26:38 | ||||
|  */ | ||||
| 
 | ||||
| const SOBALANCE_CONST = { | ||||
| 	SobalanceCacheKey: 'SobalanceCacheKey', | ||||
| 	id: 'id', | ||||
| 	status: 'status', | ||||
| 	formId: 'so_balance', //表头区域
 | ||||
| 	tableId: 'so_balance_b', //表体区域
 | ||||
| 	cardPageId: '400600406_card', //卡片pagecode
 | ||||
| 	listPageId: '400600406_list', //列表pagecode
 | ||||
| 	searchId: 'headquery', | ||||
| 	moduleId: '4006', //模块id
 | ||||
| 	browse: 'browse', //状态
 | ||||
| 	edit: 'edit', | ||||
| 	add: 'add', | ||||
| 	bodyAfterEdit: '/nccloud/so/sobalance/bodyAfterEditEvent.do', //卡片态表体编辑后事件处理
 | ||||
| 	Card_URL: '/card', | ||||
| 	List_URL: '/list', | ||||
| 	queryCardUrl: '/nccloud/so/sobalance/cardQuery.do', | ||||
| 	queryListUrl: '/nccloud/so/sobalance/listQuery.do', | ||||
| 	queryListPageUrl: '/nccloud/so/sobalance/queryForPage.do', | ||||
| 	saveUrl: '/nccloud/so/sobalance/save.do', | ||||
| 	printUrl: '/nccloud/so/sobalance/print.do', | ||||
| 	editUrl: '/nccloud/so/sobalance/edit.do' | ||||
| }; | ||||
| // 按钮区域常亮
 | ||||
| const BUTTON_AREA = { | ||||
| 	List_Head: 'list_head', | ||||
| 	List_Inner: 'list_inner', | ||||
| 	Card_Head: 'card_head', | ||||
| 	Card_Body: 'card_body', | ||||
| 	Card_Body_Inner: 'card_body_inner' | ||||
| }; | ||||
| // 根据状态不同,显示不同的行操作按钮
 | ||||
| const LIST_INNER_BUTTONS = { | ||||
| 	C_Edit: [ 'DeleteLine', 'InsertLine' ], | ||||
| 	C_Browse: [] | ||||
| }; | ||||
| 
 | ||||
| // 卡片浏览态,肩部显示的按钮
 | ||||
| const CARD_BODY_BROWSE_BUTTONS = []; | ||||
| // 卡片编辑态,肩部显示的按钮
 | ||||
| const CARD_BODY_EDIT_BUTTONS = [ 'group2', 'AddLine', 'DeleteLine' ]; | ||||
| const CARD_BODY_ALL_BUTTONS = [ 'group2', 'AddLine', 'DeleteLine' ]; | ||||
| 
 | ||||
| const CARD_BODY_BUTTONS = { | ||||
| 	EDIT: CARD_BODY_EDIT_BUTTONS, | ||||
| 	BROWSE: CARD_BODY_BROWSE_BUTTONS, | ||||
| 	ALL: CARD_BODY_ALL_BUTTONS | ||||
| }; | ||||
| 
 | ||||
| const CARD_HEAD_BUTTONS = { | ||||
| 	ALL: [ 'group1', 'Save', 'Cancel', 'Edit', 'Print', 'Refresh' ], | ||||
| 	BROWSE: [ 'Edit', 'Print', 'Refresh' ], | ||||
| 	EDIT: [ 'group1', 'Save', 'Cancel' ] | ||||
| }; | ||||
| //所有按钮
 | ||||
| const BUTTONS = { | ||||
| 	// 取消
 | ||||
| 	CANCEL: 'Cancel', | ||||
| 	// 修改
 | ||||
| 	EDIT: 'Edit', | ||||
| 	// 保存
 | ||||
| 	SAVE: 'Save', | ||||
| 	// 打印
 | ||||
| 	PRINT: 'Print', | ||||
| 	//删行
 | ||||
| 	DELETELINE: 'DeleteLine', | ||||
| 	//增行
 | ||||
| 	ADDLINE: 'AddLine', | ||||
| 	//刷新
 | ||||
| 	REFRESH: 'Refresh', | ||||
| 	//查询区查询按钮
 | ||||
| 	LISTQUERY: 'ListQuery' | ||||
| }; | ||||
| 
 | ||||
| export { BUTTON_AREA, SOBALANCE_CONST, LIST_INNER_BUTTONS, CARD_BODY_BUTTONS, CARD_HEAD_BUTTONS, BUTTONS }; | ||||
|  | @ -0,0 +1,9 @@ | |||
| import { | ||||
| 	BUTTON_AREA, | ||||
| 	SOBALANCE_CONST, | ||||
| 	LIST_INNER_BUTTONS, | ||||
| 	CARD_BODY_BUTTONS, | ||||
| 	CARD_HEAD_BUTTONS, | ||||
| 	BUTTONS | ||||
| } from './const'; | ||||
| export { SOBALANCE_CONST, BUTTON_AREA, LIST_INNER_BUTTONS, CARD_BODY_BUTTONS, CARD_HEAD_BUTTONS, BUTTONS }; | ||||
|  | @ -0,0 +1,19 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 按钮事件 | ||||
|  * @Date: 2018-05-11 10:59:20  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-07-17 20:57:35 | ||||
|  */ | ||||
| import printBtnClick from './print_BtnClick'; | ||||
| import refreshBtnClick from './refresh_BtnClick'; | ||||
| import { BUTTONS } from '../../const'; | ||||
| 
 | ||||
| export default function clickBtn(props, id) { | ||||
| 	switch (id) { | ||||
| 		case BUTTONS.PRINT: | ||||
| 			return printBtnClick.bind(this)(props); | ||||
| 		case BUTTONS.REFRESH: | ||||
| 			return refreshBtnClick.bind(this)(props); | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,63 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 查询按钮处理方法 | ||||
|  * @Date: 2018-05-11 10:51:34  | ||||
|  * @Last Modified by: songyt13 | ||||
|  * @Last Modified time: 2022-05-10 15:37:21 | ||||
|  */ | ||||
| 
 | ||||
| import { ajax } from 'nc-lightapp-front'; | ||||
| import { SOBALANCE_CONST, BUTTONS } from '../../const'; | ||||
| import buttonController from '../viewController/buttonController'; | ||||
| import { | ||||
| 	showWarningInfo, | ||||
| 	showSuccessInfo, | ||||
| 	showNoQueryResultInfo, | ||||
| 	showHasQueryResultInfo | ||||
| } from '../../../../../scmpub/scmpub/pub/tool/messageUtil'; | ||||
| import { getLangByResId } from '../../../../../scmpub/scmpub/pub/tool/multiLangUtil'; | ||||
| 
 | ||||
| export default function clickSerachBtn(props, queryInfo, button) { | ||||
| 	if (queryInfo == undefined) { | ||||
| 		queryInfo = this.props.search.getQueryInfo(SOBALANCE_CONST.searchId, false); | ||||
| 	} | ||||
| 	let pageInfo = this.props.table.getTablePageInfo(SOBALANCE_CONST.formId); | ||||
| 	queryInfo.pageInfo = pageInfo; | ||||
| 	ajax({ | ||||
| 		url: SOBALANCE_CONST.queryListUrl, | ||||
| 		data: queryInfo, | ||||
| 		success: (res) => { | ||||
| 			if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { | ||||
| 				this.props.dealFormulamsg( | ||||
| 					res.formulamsg //参数一:返回的公式对象
 | ||||
| 				); | ||||
| 			} | ||||
| 			let { success, data } = res; | ||||
| 			if (success) { | ||||
| 				if (data) { | ||||
| 					let rowsData = { rows: [] }; | ||||
| 					if (res.data && res.data[SOBALANCE_CONST.formId]) { | ||||
| 						rowsData = res.data[SOBALANCE_CONST.formId]; | ||||
| 					} | ||||
| 					this.props.table.setAllTableData(SOBALANCE_CONST.formId, rowsData); | ||||
| 					if (button == BUTTONS.REFRESH) { | ||||
| 						showSuccessInfo(getLangByResId(this, '4006SOBALANCE-000012')); /* 国际化处理: 刷新成功!*/ | ||||
| 					} else if (button == BUTTONS.LISTQUERY) { | ||||
| 						let successNum = rowsData.rows.length; | ||||
| 						if (successNum) { | ||||
| 							showHasQueryResultInfo(successNum); | ||||
| 						} else { | ||||
| 							showNoQueryResultInfo(); | ||||
| 						} | ||||
| 					} | ||||
| 				} else { | ||||
| 					this.props.table.setAllTableData(SOBALANCE_CONST.formId, { rows: [] }); | ||||
| 					showNoQueryResultInfo(); | ||||
| 				} | ||||
| 			} | ||||
| 			//查询成功后,刷新按钮可用
 | ||||
| 			this.props.button.setButtonDisabled(BUTTONS.REFRESH, false); | ||||
| 			buttonController.call(this); | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
|  | @ -0,0 +1,16 @@ | |||
| /* | ||||
|  * @Author: cuijun | ||||
|  * @PageInfo: 列表下双击进入卡片界面 | ||||
|  * @Date: 2018-05-17 15:08:59  | ||||
|  * @Last Modified by: wangpju | ||||
|  * @Last Modified time: 2021-09-02 14:13:48 | ||||
|  */ | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| 
 | ||||
| export default function doubleClick(record, index, e) { | ||||
| 	this.props.pushTo(SOBALANCE_CONST.Card_URL, { | ||||
| 		pagecode: SOBALANCE_CONST.cardPageId, | ||||
| 		status: SOBALANCE_CONST.browse, | ||||
| 		id: record.csaleorderid.value | ||||
| 	}); | ||||
| } | ||||
|  | @ -0,0 +1,29 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 修改按钮处理  | ||||
|  * @Date: 2018-05-11 10:59:43  | ||||
|  * @Last Modified by: wangpju | ||||
|  * @Last Modified time: 2021-09-02 14:13:59 | ||||
|  */ | ||||
| 
 | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| import { ajax } from 'nc-lightapp-front'; | ||||
| 
 | ||||
| export default function buttonClick(props, record, index) { | ||||
| 	let data = { | ||||
| 		pks: [ record.csaleorderid.value ] | ||||
| 	}; | ||||
| 	ajax({ | ||||
| 		url: SOBALANCE_CONST.editUrl, | ||||
| 		data: data, | ||||
| 		success: (res) => { | ||||
| 			if (res.success) { | ||||
| 				props.pushTo(SOBALANCE_CONST.Card_URL, { | ||||
| 					pagecode: SOBALANCE_CONST.cardPageId, | ||||
| 					status: SOBALANCE_CONST.edit, | ||||
| 					id: record.csaleorderid.value | ||||
| 				}); | ||||
| 			} | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
|  | @ -0,0 +1,7 @@ | |||
| import buttonClick from './buttonClick'; | ||||
| import searchBtnClick from './searchBtnClick'; | ||||
| import pageInfoClick from './pageInfoClick'; | ||||
| import operateClick from './operate_buttonClick'; | ||||
| import doubleBtnClick from './double_BtnClick'; | ||||
| 
 | ||||
| export { buttonClick, searchBtnClick, pageInfoClick, operateClick, doubleBtnClick }; | ||||
|  | @ -0,0 +1,42 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 获取选中数据 | ||||
|  * @Date: 2018-04-19 10:34:04  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-08-10 09:55:23 | ||||
|  */ | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| 
 | ||||
| function getSelectedOperaDatas(props, record, index) { | ||||
| 	// index : 选中的行数组
 | ||||
| 	// bills : 选中行的数据数组,包含主键和ts
 | ||||
| 	let res = {}; | ||||
| 	let bills = []; | ||||
| 	let selIndex = []; | ||||
| 	if (index == undefined) { | ||||
| 		let selrows = props.table.getCheckedRows(SOBALANCE_CONST.formId); | ||||
| 		if (selrows.length == 0) { | ||||
| 			return null; | ||||
| 		} | ||||
| 		selrows.forEach((row) => { | ||||
| 			let bill = { | ||||
| 				pk: row.data.values.csaleorderid.value, | ||||
| 				ts: row.data.values.ts.value | ||||
| 			}; | ||||
| 			bills.push(bill); | ||||
| 			selIndex.push(row.index); | ||||
| 		}); | ||||
| 	} else { | ||||
| 		let bill = { | ||||
| 			pk: record.csaleorderid.value, | ||||
| 			ts: record.ts.value | ||||
| 		}; | ||||
| 		bills.push(bill); | ||||
| 		selIndex.push(index); | ||||
| 	} | ||||
| 	res.index = selIndex; | ||||
| 	res.bills = bills; | ||||
| 	return res; | ||||
| } | ||||
| 
 | ||||
| export default getSelectedOperaDatas; | ||||
|  | @ -0,0 +1,17 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 列表操作列按钮事件 | ||||
|  * @Date: 2018-04-19 10:34:04  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-07-06 13:59:23 | ||||
|  */ | ||||
| import editBtnClick from './editBtnClick'; | ||||
| import { BUTTONS } from '../../const'; | ||||
| 
 | ||||
| export default function buttonClick(props, id, text, record, index) { | ||||
| 	switch (id) { | ||||
| 		//修改
 | ||||
| 		case BUTTONS.EDIT: | ||||
| 			return editBtnClick.bind(this)(props, record, index); | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,43 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 翻页按钮处理方法  | ||||
|  * @Date: 2018-05-11 11:00:10  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-09-18 16:08:50 | ||||
|  */ | ||||
| 
 | ||||
| import { ajax } from 'nc-lightapp-front'; | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| import buttonController from '../viewController/buttonController'; | ||||
| export default function (props, config, pks) { | ||||
| 	if (pks == null || pks.length == 0) { | ||||
| 		props.table.setAllTableData(SOBALANCE_CONST.formId, { rows: [] }); | ||||
| 		return; | ||||
| 	} | ||||
| 	let data = { | ||||
| 		pks: pks, | ||||
| 		pageid: SOBALANCE_CONST.listPageId | ||||
| 	}; | ||||
| 	//得到数据渲染到页面
 | ||||
| 
 | ||||
| 	ajax({ | ||||
| 		url: SOBALANCE_CONST.queryListPageUrl, | ||||
| 		data: data, | ||||
| 		success: (res) => { | ||||
| 			let { success, data } = res; | ||||
| 			if (success) { | ||||
| 				if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) { | ||||
| 					this.props.dealFormulamsg( | ||||
| 						res.formulamsg //参数一:返回的公式对象
 | ||||
| 					); | ||||
| 				} | ||||
| 				if (data && data[SOBALANCE_CONST.formId]) { | ||||
| 					props.table.setAllTableData(SOBALANCE_CONST.formId, res.data[SOBALANCE_CONST.formId]); | ||||
| 				} else { | ||||
| 					props.table.setAllTableData(SOBALANCE_CONST.formId, { rows: [] }); | ||||
| 				} | ||||
| 				buttonController.call(this) | ||||
| 			} | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
|  | @ -0,0 +1,36 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 卡片下打印按钮事件 | ||||
|  * @Date: 2018-04-19 10:38:05  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-10-26 15:17:19 | ||||
|  */ | ||||
| 
 | ||||
| import React, { Component } from 'react'; | ||||
| import { print, base, toast } from 'nc-lightapp-front'; | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| import getSelectedOperaDatas from './listPageData'; | ||||
| import { getLangByResId } from '../../../../../scmpub/scmpub/pub/tool/multiLangUtil'; | ||||
| import { showWarningInfo } from '../../../../../scmpub/scmpub/pub/tool/messageUtil'; | ||||
| 
 | ||||
| export default function buttonClick(props) { | ||||
| 	let seldatas = getSelectedOperaDatas(props); | ||||
| 
 | ||||
| 	if (seldatas == null || seldatas.index == undefined) { | ||||
| 		showWarningInfo(getLangByResId(this, '4006SOBALANCE-000010'), getLangByResId(this, '4006SOBALANCE-000009')); | ||||
| 		/* 国际化处理: 提示,请选择要打印的订单!*/ | ||||
| 		return; | ||||
| 	} | ||||
| 	let pks = []; | ||||
| 	seldatas.bills.forEach((element) => { | ||||
| 		pks.push(element.pk); | ||||
| 	}); | ||||
| 	print( | ||||
| 		'pdf', //支持两类: 'html'为模板打印, 'pdf'为pdf打印
 | ||||
| 		SOBALANCE_CONST.printUrl, | ||||
| 		{ | ||||
| 			nodekey: null, //模板节点标识
 | ||||
| 			oids: pks // 功能节点的数据主键   oids含有多个元素(['1001A41000000000A9LR','1001A410000000009JDD'])时为批量打印,
 | ||||
| 		} | ||||
| 	); | ||||
| } | ||||
|  | @ -0,0 +1,15 @@ | |||
| /* | ||||
|  * @Author: cuijun | ||||
|  * @PageInfo: 刷新按钮 | ||||
|  * @Date: 2018-07-03 16:09:38  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-10-26 11:14:58 | ||||
|  */ | ||||
| import { getDefData } from '../../../../../scmpub/scmpub/pub/cache'; | ||||
| import clickSerachBtn from './commonSearch'; | ||||
| import { SOBALANCE_CONST, BUTTONS } from '../../const'; | ||||
| 
 | ||||
| export default function refresh(props) { | ||||
| 	let queryInfo = getDefData(SOBALANCE_CONST.SobalanceCacheKey, SOBALANCE_CONST.searchId); | ||||
| 	clickSerachBtn.call(this, props, queryInfo, BUTTONS.REFRESH); | ||||
| } | ||||
|  | @ -0,0 +1,23 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 查询按钮处理方法 | ||||
|  * @Date: 2018-05-11 10:51:34  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-12-18 18:04:53 | ||||
|  */ | ||||
| 
 | ||||
| import { SOBALANCE_CONST, BUTTONS } from '../../const'; | ||||
| import { setDefData } from '../../../../../scmpub/scmpub/pub/cache'; | ||||
| import commonSearch from './commonSearch'; | ||||
| 
 | ||||
| export default function clickSerachBtn(props, serchVal) { | ||||
| 	// 缓存查询条件
 | ||||
| 	if (serchVal == false) { | ||||
| 		return; | ||||
| 	} | ||||
| 	let queryInfo = this.props.search.getQueryInfo(SOBALANCE_CONST.searchId, false); | ||||
| 	//缓存查询条件
 | ||||
| 	setDefData(SOBALANCE_CONST.SobalanceCacheKey, SOBALANCE_CONST.searchId, queryInfo); | ||||
| 	setDefData(SOBALANCE_CONST.SobalanceCacheKey, 'initKey', 'search'); | ||||
| 	commonSearch.bind(this, props, queryInfo, BUTTONS.LISTQUERY)(); | ||||
| } | ||||
|  | @ -0,0 +1,10 @@ | |||
| /* | ||||
|  * @Author: cuijun | ||||
|  * @PageInfo: 价格调整单编辑事件 | ||||
|  * @Date: 2018-04-24 19:01:11  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-07-31 09:49:23 | ||||
|  */ | ||||
| import search_afterEvent from './search_afterEvent'; | ||||
| 
 | ||||
| export { search_afterEvent }; | ||||
|  | @ -0,0 +1,26 @@ | |||
| /* | ||||
|  * @Author: cuijun | ||||
|  * @PageInfo: 查询编辑后事件  | ||||
|  * @Date: 2018-04-24 10:38:43  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-08-29 10:29:21 | ||||
|  */ | ||||
| 
 | ||||
| import { SOBALANCE_CONST } from '../../const'; | ||||
| import multiCorpRefHandler from '../../../../../scmpub/scmpub/pub/tool/MultiCorpRefHandler'; | ||||
| 
 | ||||
| export default function afterEvent(field, value) { | ||||
| 	if (field === 'pk_org') { | ||||
| 		multiCorpRefHandler.call(this, this.props, value, SOBALANCE_CONST.searchId, [ | ||||
| 			'ccustomerid', | ||||
| 			'ccustomerid.pk_custclass', | ||||
| 			'ccustomerid.sales.pk_custsaleclass', | ||||
| 			'cinvoicecustid', | ||||
| 			'cinvoicecustid.pk_custclass', | ||||
| 			'cinvoicecustid.sales.pk_custsaleclass', | ||||
| 			'cdeptid', | ||||
| 			'cemployeeid', | ||||
| 			'cpaytermid' | ||||
| 		]); | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,102 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 订单收款核销  | ||||
|  * @Date: 2018-05-11 11:05:39  | ||||
|  * @Last Modified by: zhangllb | ||||
|  * @Last Modified time: 2022-07-26 16:17:33 | ||||
|  */ | ||||
| 
 | ||||
| import React, { Component } from 'react'; | ||||
| import { createPage, base } from 'nc-lightapp-front'; | ||||
| import { initTemplate, selected, selectedAll } from './init'; | ||||
| import { searchBtnClick, pageInfoClick, buttonClick, doubleBtnClick } from './btnClicks'; | ||||
| import buttonController from './viewController/buttonController'; | ||||
| import { SOBALANCE_CONST, BUTTON_AREA } from '../const'; | ||||
| import { search_afterEvent } from './events'; | ||||
| import { renderCompleteEvent } from '../../pub/queryarea/queryAreaInit'; | ||||
| import { initLang, getLangByResId } from '../../../../scmpub/scmpub/pub/tool/multiLangUtil'; | ||||
| import { createListTitle } from '../../../../scmpub/scmpub/pub/tool/titleUtil'; | ||||
| 
 | ||||
| const { NCAffix, NCDiv } = base; | ||||
| 
 | ||||
| class SoBalanceList extends Component { | ||||
| 	constructor(props) { | ||||
| 		super(props); | ||||
| 		this.moduleId = SOBALANCE_CONST.moduleId; | ||||
| 		this.head = SOBALANCE_CONST.formId; //
 | ||||
| 		this.searchId = SOBALANCE_CONST.searchId; | ||||
| 		this.pageId = SOBALANCE_CONST.listPageId; | ||||
| 		this.queryAreaCode = SOBALANCE_CONST.searchId; | ||||
| 		props.use.table(this.head); | ||||
| 		props.use.search(this.searchId); | ||||
| 		this.state = {}; | ||||
| 	} | ||||
| 
 | ||||
| 	componentWillMount() { | ||||
| 		initLang(this, [ '4006sobalance' ], 'so', initTemplate.bind(this, this.props)); | ||||
| 	} | ||||
| 	componentDidMount() {} | ||||
| 
 | ||||
| 	render() { | ||||
| 		let { table, button, search, socket } = this.props; | ||||
| 		let { createSimpleTable } = table; | ||||
| 		let { NCCreateSearch } = search; | ||||
| 		let { createButtonApp } = button; | ||||
| 		return ( | ||||
| 			<div className="nc-bill-list"> | ||||
| 				{socket.connectMesg({ | ||||
| 					tableAreaCode: this.head, | ||||
| 					billpkname: 'csobalanceid' | ||||
| 				})} | ||||
| 				<NCAffix> | ||||
| 					<NCDiv areaCode={NCDiv.config.HEADER} className="nc-bill-header-area"> | ||||
| 						<div className="header-title-search-area">{createListTitle(this)}</div> | ||||
| 						<div className="header-button-area"> | ||||
| 							{createButtonApp({ | ||||
| 								area: BUTTON_AREA.List_Head, | ||||
| 								buttonLimit: 8, | ||||
| 								onButtonClick: buttonClick.bind(this) | ||||
| 							})} | ||||
| 						</div> | ||||
| 					</NCDiv> | ||||
| 				</NCAffix> | ||||
| 
 | ||||
| 				<div className="nc-bill-search-area"> | ||||
| 					{NCCreateSearch(this.searchId, { | ||||
| 						clickSearchBtn: searchBtnClick.bind(this), | ||||
| 						onAfterEvent: search_afterEvent.bind(this), | ||||
| 						dataSource: SOBALANCE_CONST.SobalanceCacheKey, | ||||
| 						renderCompleteEvent: renderCompleteEvent.bind( | ||||
| 							this, | ||||
| 							SOBALANCE_CONST.searchId, | ||||
| 							'pk_org', | ||||
| 							search_afterEvent | ||||
| 						) | ||||
| 					})} | ||||
| 				</div> | ||||
| 				<div className="nc-bill-table-area"> | ||||
| 					{createSimpleTable(this.head, { | ||||
| 						handlePageInfoChange: pageInfoClick.bind(this), | ||||
| 						onSelected: selected.bind(this), | ||||
| 						onSelectedAll: selectedAll.bind(this), | ||||
| 						onRowDoubleClick: doubleBtnClick.bind(this), | ||||
| 						showCheck: true, | ||||
| 						showIndex: true, | ||||
| 						pkname: 'csaleorderid', | ||||
| 						dataSource: SOBALANCE_CONST.SobalanceCacheKey, | ||||
| 						componentInitFinished: buttonController.bind(this), | ||||
| 						onBatchSelected: selected.bind(this) | ||||
| 					})} | ||||
| 				</div> | ||||
| 			</div> | ||||
| 		); | ||||
| 	} | ||||
| } | ||||
| SoBalanceList = createPage({ | ||||
| 	billinfo: { | ||||
| 		billtype: 'grid', | ||||
| 		pagecode: SOBALANCE_CONST.listPageId, | ||||
| 		bodycode: SOBALANCE_CONST.formId | ||||
| 	} | ||||
| })(SoBalanceList); | ||||
| export default SoBalanceList; | ||||
|  | @ -0,0 +1,5 @@ | |||
| import initTemplate from './initTemplate'; | ||||
| import selected from './selected'; | ||||
| import selectedAll from './selectedAll'; | ||||
| 
 | ||||
| export { initTemplate, selected, selectedAll }; | ||||
|  | @ -0,0 +1,100 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 列表初始化模板   | ||||
|  * @Date: 2018-05-11 13:20:21  | ||||
|  * @Last Modified by: chaiwx | ||||
|  * @Last Modified time: 2022-05-05 14:37:41 | ||||
|  */ | ||||
| 
 | ||||
| import { SOBALANCE_CONST, BUTTON_AREA, BUTTONS } from '../../const'; | ||||
| import serachRefFilter from '../../refFilter/serachRefFilter'; | ||||
| import { operateClick } from '../btnClicks'; | ||||
| import buttonController from '../viewController/buttonController'; | ||||
| import { getLangByResId } from '../../../../../scmpub/scmpub/pub/tool/multiLangUtil'; | ||||
| import { getDefData } from '../../../../../scmpub/scmpub/pub/cache'; | ||||
| 
 | ||||
| let head = SOBALANCE_CONST.formId; | ||||
| let pageId = SOBALANCE_CONST.listPageId; | ||||
| 
 | ||||
| export default function(props) { | ||||
| 	let _this = this; | ||||
| 	props.createUIDom( | ||||
| 		{ | ||||
| 			pagecode: pageId //卡片页面编码
 | ||||
| 		}, | ||||
| 		callbackFun | ||||
| 	); | ||||
| 	function callbackFun(data) { | ||||
| 		if (data) { | ||||
| 			if (data.template) { | ||||
| 				let meta = data.template; | ||||
| 				modifierMeta.call(_this, props, meta); | ||||
| 				props.meta.setMeta(meta); | ||||
| 			} | ||||
| 			if (data.button) { | ||||
| 				let button = data.button; | ||||
| 				props.button.setButtons(button); | ||||
| 				//判断进入列表之前是否查询过
 | ||||
| 				let isInitEnd = getDefData.call(_this, SOBALANCE_CONST.SobalanceCacheKey, 'initKey'); | ||||
| 				if (isInitEnd) { | ||||
| 					props.button.setButtonDisabled(BUTTONS.REFRESH, false); | ||||
| 				} else { | ||||
| 					props.button.setButtonDisabled(BUTTONS.REFRESH, true); | ||||
| 				} | ||||
| 			} | ||||
| 			buttonController.call(_this); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| function modifierMeta(props, meta) { | ||||
| 	//查询区参照过滤
 | ||||
| 	serachRefFilter(props, meta); | ||||
| 	meta[head].items = meta[head].items.map((item, key) => { | ||||
| 		// item.width = 150;
 | ||||
| 		if (item.attrcode == 'vbillcode') { | ||||
| 			item.render = (text, record, index) => { | ||||
| 				if (record) { | ||||
| 					return ( | ||||
| 						<span | ||||
| 							className="code-detail-link" | ||||
| 							onClick={() => { | ||||
| 								props.pushTo(SOBALANCE_CONST.Card_URL, { | ||||
| 									pagecode: SOBALANCE_CONST.cardPageId, | ||||
| 									status: SOBALANCE_CONST.browse, | ||||
| 									id: ((record || {}).csaleorderid || {}).value | ||||
| 								}); | ||||
| 							}} | ||||
| 						> | ||||
| 							{((record || {}).vbillcode || {}).value} | ||||
| 						</span> | ||||
| 					); | ||||
| 				} | ||||
| 			}; | ||||
| 		} | ||||
| 		return item; | ||||
| 	}); | ||||
| 	let buttonAry = [ 'Edit' ]; | ||||
| 	let porCol = { | ||||
| 		attrcode: 'opr', | ||||
| 		label: getLangByResId(this, '4006SOBALANCE-000007') /* 国际化处理: 操作*/, | ||||
| 		visible: true, | ||||
| 		fixed: 'right', | ||||
| 		itemtype: 'customer', | ||||
| 		render: (text, record, index) => { | ||||
| 			return props.button.createErrorButton({ | ||||
| 				record: record, | ||||
| 				showBack: true, // 是否显示回退按钮
 | ||||
| 				sucessCallBack: () => { | ||||
| 					return props.button.createOprationButton(buttonAry, { | ||||
| 						area: BUTTON_AREA.List_Inner, | ||||
| 						buttonLimit: 3, | ||||
| 						onButtonClick: (props, key) => operateClick.call(this, props, key, text, record, index) | ||||
| 					}); | ||||
| 				} | ||||
| 			}); | ||||
| 		} | ||||
| 	}; | ||||
| 	meta[head].items.push(porCol); | ||||
| 	return meta; | ||||
| } | ||||
|  | @ -0,0 +1,12 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: checkBox按钮控制 | ||||
|  * @Date: 2018-05-09 11:08:41  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-12-29 09:39:58 | ||||
|  */ | ||||
| import buttonController from '../viewController/buttonController'; | ||||
| 
 | ||||
| export default function() { | ||||
| 	buttonController.call(this); | ||||
| } | ||||
|  | @ -0,0 +1,12 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: checkBox按钮控制 | ||||
|  * @Date: 2018-05-09 11:08:41  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-12-29 09:40:26 | ||||
|  */ | ||||
| import buttonController from '../viewController/buttonController'; | ||||
| 
 | ||||
| export default function() { | ||||
| 	buttonController.call(this); | ||||
| } | ||||
|  | @ -0,0 +1,23 @@ | |||
| /* | ||||
|  * @Author: cuijun  | ||||
|  * @PageInfo: 列表页面按钮控制   | ||||
|  * @Date: 2018-05-23 19:21:24  | ||||
|  * @Last Modified by: cuijun | ||||
|  * @Last Modified time: 2018-12-29 09:33:04 | ||||
|  */ | ||||
| import { SOBALANCE_CONST, BUTTONS } from '../../const'; | ||||
| 
 | ||||
| export default function() { | ||||
| 	this.props.button.setButtonDisabled(BUTTONS.PRINT, false); | ||||
| 	//根据页面是否有数据
 | ||||
| 	let allData = this.props.table.getAllTableData(SOBALANCE_CONST.formId); | ||||
| 	if (allData.allpks.length > 0) { | ||||
| 		let checkedRows = this.props.table.getCheckedRows(SOBALANCE_CONST.formId); | ||||
| 		//选中行设置按钮是否可用
 | ||||
| 		if (!checkedRows || checkedRows.length == 0) { | ||||
| 			this.props.button.setButtonDisabled(BUTTONS.PRINT, true); | ||||
| 		} | ||||
| 	} else { | ||||
| 		this.props.button.setButtonDisabled(BUTTONS.PRINT, true); | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,12 @@ | |||
| { | ||||
| 	"dependModuleName": [ | ||||
| 		"uap/common/components/NCUploader", | ||||
| 		"uap/common/components/approvalTrans", | ||||
| 		"uap/common/components/ApproveDetail" | ||||
| 	], | ||||
| 	"dependjs": [ | ||||
| 		"../../../../uap/common/components/NCUploader/index.js", | ||||
| 		"../../../../uap/common/components/approvalTrans/index.js", | ||||
| 		"../../../../uap/common/components/ApproveDetail/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"); | ||||
| 
 | ||||
|  | @ -0,0 +1,22 @@ | |||
| import { asyncComponent } from 'nc-lightapp-front'; | ||||
| import SoBalanceList from '../list'; | ||||
| const SoBalanceCard = asyncComponent(() => | ||||
| 	import(/* webpackChunkName: "so/so/sobalance/card/sobalancecard" */ /* webpackMode: "eager" */ '../card') | ||||
| ); | ||||
| const routes = [ | ||||
| 	{ | ||||
| 		path: '/', | ||||
| 		component: SoBalanceList, | ||||
| 		exact: true | ||||
| 	}, | ||||
| 	{ | ||||
| 		path: '/list', | ||||
| 		component: SoBalanceList | ||||
| 	}, | ||||
| 	{ | ||||
| 		path: '/card', | ||||
| 		component: SoBalanceCard | ||||
| 	} | ||||
| ]; | ||||
| 
 | ||||
| export default routes; | ||||
|  | @ -0,0 +1,42 @@ | |||
| import { SOBALANCE_CONST } from '../const'; | ||||
| import { setPsndocShowLeavePower, setRefShowDisabledData } from '../../../../scmpub/scmpub/pub/tool'; | ||||
| 
 | ||||
| let serachId = SOBALANCE_CONST.searchId; | ||||
| // 查询区参照过滤
 | ||||
| export default function serachReferEvent(props, meta) { | ||||
| 	meta[serachId].items.map((item) => { | ||||
| 		if (item.attrcode == 'pk_org') { | ||||
| 			item.queryCondition = () => { | ||||
| 				return { TreeRefActionExt: 'nccloud.web.scmpub.ref.AppPermissionOrgRefFilter' }; | ||||
| 			}; | ||||
| 		} | ||||
| 		if ( | ||||
| 			item.attrcode == 'ccustomerid' || | ||||
| 			item.attrcode == 'ccustomerid.pk_custclass' || | ||||
| 			item.attrcode == 'ccustomerid.sales.pk_custsaleclass' || | ||||
| 			item.attrcode == 'cinvoicecustid' || | ||||
| 			item.attrcode == 'cinvoicecustid.pk_custclass' || | ||||
| 			item.attrcode == 'cinvoicecustid.sales.pk_custsaleclass' || | ||||
| 			item.attrcode == 'cpaytermid' | ||||
| 		) { | ||||
| 			item.isShowUnit = true; | ||||
| 			item.queryCondition = () => { | ||||
| 				let data = props.search.getSearchValByField(serachId, 'pk_org'); | ||||
| 				return { pk_org: data && data.value && data.value.firstvalue ? data.value.firstvalue : '' }; // 根据pk_org过滤
 | ||||
| 			}; | ||||
| 		} | ||||
| 		if (item.attrcode == 'cemployeeid' || item.attrcode == 'cdeptid') { | ||||
| 			item.isShowUnit = true; | ||||
| 			item.queryCondition = () => { | ||||
| 				let data = props.search.getSearchValByField(serachId, 'pk_org'); | ||||
| 				return { | ||||
| 					pk_org: data && data.value && data.value.firstvalue ? data.value.firstvalue : '', | ||||
| 					busifuncode: 'sa' | ||||
| 				}; // 根据pk_org过滤
 | ||||
| 			}; | ||||
| 		} | ||||
| 		item.isRunWithChildren = false; | ||||
| 		setPsndocShowLeavePower(item); | ||||
| 		setRefShowDisabledData(item); | ||||
| 	}); | ||||
| } | ||||
		Loading…
	
		Reference in New Issue