import { fillNodeValue } from './MesgValidator'

/**
 * 将某个节点变成只读
 * @param {*} node 
 * @param {*} value 
 */
function fixAndDisable(node, value) {
	if (!node)
		return
	fillNodeValue(node, value)
	//node.value = value
	node.enable = false
}
const RMYH_0000 = '0000'

export function fixTreeValue(mty, directMap, disabled) {
	for (let uid in directMap) {
		let node = directMap[uid]
		if (!node.isLeaf)
			continue
		fixNodeValue(mty, node, disabled)
	}
}
function fixNodeValue(mty, node, disabled) {

	let uid = node.path
	if (uid == 'GrpHdr.MsgId')  //如果是新建,MesgID应该自动新建
	{

		node.value = "MESG_ID"
	}
	// else if(uid == 'GrpHdr.CreDtTm')  //如果是新建,MesgID应该自动新建
	// {

	//     node.value = "SYS_NOW"
	// } 
	else if (uid == 'GrpHdr.InstgAgt.MmbId'||uid == 'GrpHdr02.InstgPty02.InstgDrctPty02') {
		fixAndDisable(node, SELF_ELC_CODE) //直参填总行
	}
	else if (uid == 'GrpHdr.InstgAgt.BrnchId.Id'||uid =='GrpHdr02.InstgPty02.InstgPty02') {
		fixAndDisable(node, PTY_CODE)
	}
	else if (uid == 'GrpHdr.InstgPty.InstgDrctPty') {
		fixAndDisable(node, SELF_ELC_CODE)//直参填总行
  }
	else if (uid == 'GrpHdr.InstdAgt.MmbId' || uid == 'GrpHdr.InstdAgt.BrnchId.Id'||uid == 'GrpHdr02.InstdPty02.InstdDrctPty02'||uid == 'GrpHdr02.InstdPty02.InstdPty02') {
    if(mty!='elcs.303.001.01'&&mty!='cssd.304.001.01'){
		let fourZeroMty = [
			'elcs.101.001.02', 'elcs.103.001.02', 'elcs.107.001.01',
			'elcs.211.001.01', 'elcs.223.001.01', 'elcs.902.001.01',
			'elcs.721.001.01', 'elcs.232.001.01'
		]
		if (fourZeroMty.find(item => item == mty)){
      fixAndDisable(node, RMYH_0000)
    }else{
      fixAndDisable(node, '')
    }
  }
	}
	else if (uid == 'PtcptBk') {
		if (mty == 'elcs.902.001.01')
			fixAndDisable(node, SELF_ELC_CODE)
	}
	else if (uid == 'GrpHdr.SysCd') {
		if (mty.startsWith('elcs'))
			fixAndDisable(node, 'ELCS')
		else if (mty.startsWith('ccms'))
			fixAndDisable(node, 'CCMS')
		if (mty == 'ccms.303.001.02')
			fixAndDisable(node, 'ELCS')
	}
	else if (uid.startsWith('LCInfo.ApplBkInfo')) {
		if (mty == 'elcs.101.001.02' || mty == 'elcs.103.001.02')//101 103申请人 代理开证才允许填
		{
			node.enable = false
		}
	}
	else if (uid.startsWith('LCInfo.ApplBkInfo')) {
		if (mty == 'elcs.101.001.02' || mty == 'elcs.103.001.02')//101 103申请人 代理开证才允许填
		{
			node.enable = false
		}
	}
	else if (uid.startsWith('LCInfo.TraInfo.Instal')) {
		if (mty == 'elcs.101.001.02' || mty == 'elcs.103.001.02')//101 103 选择分装允许标志才允许填
		{
			node.enable = false
		}
	}
	else if (
		uid == 'LCInfo.NegoBkInfo.BkCd' ||
		uid == 'LCInfo.NegoBkInfo.BkNm' ||
		uid == 'LCInfo.NegoBkInfo.Adr'
	) {
		if (mty == 'elcs.101.001.02' || mty == 'elcs.103.001.02') //议付行可议付时才允许填写
			node.enable = false
	}
	// else if (uid == 'LCInfo.IssBkInfo.BkCd') {
	// 	if (mty == 'elcs.101.001.02' || mty == 'elcs.103.001.02') {
	// 		//开证行因默认填写当前柜员所在分支机构人行号
	// 		fixAndDisable(node, PTY_CODE)
	// 	}
	// }
	else if (uid == 'LCInfo.IssTp') {
		if (mty == 'elcs.101.001.02') {
			node.value = 'OWIS'
			node.enable = false
		}
	}
	// else if (uid == 'LCInfo.IssBkInfo.BkNm') {
	// 	if (mty == 'elcs.101.001.02' || mty == 'elcs.103.001.02') {
	// 		//开证行因默认填写当前柜员所在分支机构人行机构名称
	// 		fixAndDisable(node, PTY_NAME)
	// 	}
	// }
	else if (uid == 'OrgnlGrpHdr.OrgnlMsgTp') {
		if (mty == 'elcs.104.001.01')
			fixAndDisable(node, 'elcs.103.001.02')
		else if (mty == 'elcs.222.001.01')
			fixAndDisable(node, 'elcs.221.001.01')
	}
	// else if (uid == 'PresnInfo.RcvBk.BkCd' || uid == 'LCId.IssBkCd') {
	// 	if (mty == 'elcs.201.001.02' || mty == 'elcs.202.001.02')
	// 		node.enable = false
	// }
	else if (uid == 'PresnInfo.DocsInfo.Hon.UsncLCPmtInstr') {
		if (mty == 'elcs.201.001.02') //201付款指示默认禁止输入
			node.enable = false
	}
	// else if (uid == 'PresnId.PresnBkCode') {
	// 	if (mty == 'elcs.203.001.01' || mty == 'elcs.204.001.01'
	// 		|| mty == 'elcs.212.001.01' || mty == 'elcs.213.001.01'
	// 	)
	// 		node.enable = false
	// }
	// else if (uid == 'PmtInfo.CdtrAgt.BkCd') {
	// 	if (mty == 'elcs.221.001.01')
	// 		node.enable = false
	// }
	else if (uid == 'PmtInfo.TraTp') {

	}
	else if (uid == 'OrgnlGrpHdr.OrgnlMsgTp') {
		if (mty == 'elcs.222.001.01') {
			fixAndDisable(node, 'elcs.221.001.01')
		}
	}
	else if (uid == 'BllArlConfInfo.BllArlTp') {
		// if(mty == 'elcs.203.001.01')
		//     node.enable=false
	}
	else if (uid == 'NegoInfo.BkCd') {
		if (mty == 'elcs.211.001.01')
			node.enable = false
	}
	else if (uid == 'PmtRslt.InstgAgt' || uid == 'PmtRslt.MsgId') {
		if (mty == 'elcs.221.001.01') {//221 即时转账报文发起行和即时转账报文标识号,不用填写
			node.tips = '不用填写'
			node.enable = false
		}
  }
  else if (uid == 'LCInfo.TraInfo.PresnPer') {
		if (mty == 'elcs.101.001.02') {
      node.value = '货物/服务提供日后15天'
      node.enable = false
		}
	}
	else if (uid == 'LCInfo.TraInfo.RqdDocs') {
		if (mty == 'elcs.101.001.02') {
			node.value = "1税务部门统一监制的原始正本发票(包括发票联和抵扣联)。" + "\n" + "2.申请人出具的货物收据正本一份,显示收货人为开证申请人。";
		}
	}
	else if (uid == 'LCInfo.TraInfo.AddtlTrms') {
			if (mty == 'elcs.101.001.02') {
		
				node.value = '1.单据必须自货物/服务提供日后15天内提交,但不能晚于信用证有效期' + '\n' + '2.货物数量及信用证金额无浮动范围。'
		+ '\n' + '3.开证行以外的所有银行费用由受益人承担,如果提交了单证不符的单据,我行将在付款时扣除____(350-500)元人民币的不符点费用。'
		+ '\n' + '4.发票出具日期早于信用证开证日期不接受。'
		+ '\n' + '5.运输单据上的发货日期早于信用证开证日期不接受。'
			}
	}
	
	else if (uid == 'LCInfo.TraInfo.Stmt') {
		if (mty == 'elcs.101.001.02') {
			node.value = '本信用证为依据《国内信用证结算办法》开立的不可撤销国内信用证'
		}
  }
  else if (uid == 'ModInfo.SN') {
    if (mty == 'elcs.103.001.02') {
    node.value = 1
    }
  }
	//通用处理
	if (node.type == 'AttachmentFlag(Max4Text)') {
		fixAndDisable(node, 'NULL')
	}

	//如果这个值是false,说明是复核或者授权,所有节点都是只读
	if (disabled == false) {
		node.enable = false
	}

}