import _ from "lodash"; /* 物资参数约定 */ export interface IWzWithParaResponse { menuUUID: string; moneyPoint: number; //金额小数位. 页面参数和功能菜单同时配置时,必须配置此项 numberPoint: number; //数量小数位 pricePoint: number; //单价小数位 disabledAdd: boolean; //是否可修改新增(暂时只有物资入库时可新增) k8kmChild: number; //允许新增子项物资 k8kmNull: boolean; //不配置或者0: 最子必须录编码与名称, 1: 允许子项不录编码与名称 useFlow: boolean; //是否启用审核流 k0kmAdd: boolean; //物资分类是否可新增 不配置或者1: 可以新增物资分类 partcLaid: boolean; //前端新增k0km时自动指定角色、指定仓库 dddwCode: string; imageUpload: boolean; //图片 cardCode: boolean; //资产卡号 laidText: boolean; //存放地点 laidGys: number; //供应商按仓库分类设置 GHS+ID flowNode: string[]; //流程节点,此节点可录物资核定数 batchK8KM: boolean; //批量修改 printStat: string[]; //打印状态,控制可以打印的单据状态 priceEdit: boolean; //单价是否可录 moneyEdit: boolean; //金额是否可录 ckdjK8km: boolean; //出库登记是否可以选择物资 lysqKjqj: boolean; //领用出库允许跨期间 lysqKbkm: boolean; //新增、修改物资(不计算出库数量) true(使用出库业务时) 不计算, 0或者没配置 计算 priceStop: boolean; //入库单、单价禁用 priceDisabled: boolean; //是否禁用按单价计算总金额 lysqMenuUUID: string; //领用申请菜单的menuUUID,配置在入库单功能菜单.生成领用(lysq)单使用,配置在账务处理路由(不检查领用申请单是否为终审状态) cgsqMenuUUID: string; //采购申请菜单的menuUUID,配置在入库单功能菜单.取关联单使用 ckdjMenuUUID: string; //出库登记菜单的menuUUID,配置在下发功能菜单.取关联单使用 //弃用 cklyMenuUUID: string; //出库申请或者领用申请菜单的menuUUID,配置在退库单功能菜单.取关联单使用(虚拟) cktkMenuUUID: string; //出库申请菜单的menuUUID,配置在退库单功能菜单.取关联单使用 lytkMenuUUID: string; //领用申请菜单的menuUUID,配置在退库单功能菜单.取关联单使用 cgrkMenuUUID: string; //审核页面指定功能菜单(采购入库) lyrEdit: number; //领用人手工录入(领用部门选择) initData: boolean; //是否初始化 takeMemo: number; //出入库等单据默认备注取第一条物资备注 1 不取默认(为了兼容原客户) k0kmTopText: string; //新增最顶级物资分类名称 allUser: number; //单据所有用户可查看(-1) kjndKJQJ: number; //判断单据日期是否只能选择、当前期间, 1(N) 控制 0 选择日期最多只能比期间少一(N)个月份 k8kmMemo: boolean; //选择物资后、分录备注默认=物资名称 billUsesFromType: string; //#物资用途.类别名称(扩展字典) p2pzVisible: boolean; //列表是否显示凭证生成状态 chsfhzbDeptFull: boolean; //存货收发汇总表(按部门),部门显示名称链 sttjDisabled: boolean; //食堂统计报表(禁用标志) true 不显示 syxmEnabled: boolean; //出库使用项目报表(启用标志) true 显示 allotEnabled: boolean; //账表查询是否显示调拨选项目 true 显示 laidTakeType: number; //取用户仓库权限(0 默认权限 1 入库权限 -1 出库权限 2 领用标权限(出库单领用仓库) 3 查询权限) zeroDisabled: boolean; //入库分录.0金额不能保存,默认false reportDateMode: boolean; //报表查询.按日期查询模式 disabledDeptPermission: boolean; //禁用按部门控制物资权限 nowCount: boolean; //显示当前结存(领用申请选择物资后) } export class TWzWithParaResponse implements IWzWithParaResponse { menuUUID: string = ""; moneyPoint: number = 0; numberPoint: number = 0; pricePoint: number = 0; disabledAdd: boolean = false; k8kmChild: number = 0; k8kmNull: boolean = false; useFlow: boolean = false; k0kmAdd: boolean = false; partcLaid: boolean = false; dddwCode: string = ""; imageUpload: boolean = false; cardCode: boolean = false; laidText: boolean = false; laidGys: number = 0; flowNode: [] = []; batchK8KM: boolean = false; printStat: [] = []; priceEdit: boolean = false; moneyEdit: boolean = false; ckdjK8km: boolean = false; lysqKjqj: boolean = false; lysqKbkm: boolean = false; priceStop: boolean = false; priceDisabled: boolean = false; lysqMenuUUID: string = ""; ckdjMenuUUID: string = ""; cgsqMenuUUID: string = ""; cktkMenuUUID: string = ""; lytkMenuUUID: string = ""; cgrkMenuUUID: string = ""; lyrEdit: number = 0; initData: boolean = false; takeMemo: number = -1; k0kmTopText: string = ""; allUser: number = 1; kjndKJQJ: number = 0; k8kmMemo: boolean = false; sttjDisabled: boolean = false; syxmEnabled: boolean = false; allotEnabled: boolean = false; laidTakeType: number = 0; zeroDisabled: boolean = false; reportDateMode: boolean = false; billUsesFromType: string = "-1"; p2pzVisible: boolean = false; chsfhzbDeptFull: boolean = false; disabledDeptPermission: boolean = false; nowCount: boolean = false; //默认值 static initDefault(withPara: TWzWithParaResponse) { if (_.isUndefined(withPara.moneyPoint)) { withPara.moneyPoint = 2; } if (_.isUndefined(withPara.numberPoint)) { withPara.numberPoint = 2; } if (_.isUndefined(withPara.pricePoint)) { withPara.pricePoint = 2; } if (_.isUndefined(withPara.k0kmAdd)) { withPara.k0kmAdd = false; } if (_.isUndefined(withPara.dddwCode)) { withPara.dddwCode = "GHS"; } if (_.isUndefined(withPara.disabledAdd)) { withPara.disabledAdd = false; } if (_.isUndefined(withPara.allUser)) { withPara.allUser = 0; } if (_.isUndefined(withPara.kjndKJQJ)) { withPara.kjndKJQJ = 0; } return withPara; } parseJson(withPara: string) { let result = new TWzWithParaResponse(); if (_.isEmpty(withPara)) { return result; } try { const temp = JSON.parse(withPara) as TWzWithParaResponse; return _.merge(result, temp); } catch (e: any) {} return result; } }