{"remainingRequest":"D:\\jenkins\\workspace\\artfess-module\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\artfess-module\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\artfess-module\\src\\service.js","dependencies":[{"path":"D:\\jenkins\\workspace\\artfess-module\\src\\service.js","mtime":1675232038856},{"path":"D:\\jenkins\\workspace\\artfess-module\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\artfess-module\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\artfess-module\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000}],"contextDependencies":[],"result":["import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.regexp.split\";\nimport utils from \"@/utils.js\";\nvar service = {\n // 对联动规则进行处理\n linkageHandler: function linkageHandler(_me, exp) {\n if (!_me || !_me._isVue) {\n throw \"传入的对象为空或者不是VueComponent类型.\";\n }\n\n if (!exp || exp.constructor !== Object && exp.constructor !== Array) {\n throw \"\\u4F20\\u5165\\u7684\\u5BF9\\u8C61\".concat(exp, \"\\u4E3A\\u7A7A\\uFF0C\\u6216\\u8005\\u65E2\\u4E0D\\u662FObject\\u7C7B\\u578B\\u4E5F\\u4E0D\\u662FArray\\u7C7B\\u578B.\");\n }\n\n var linkageExp = exp;\n\n if (exp.constructor === Object) {\n linkageExp = [exp];\n }\n\n var pInst = utils.getOnlineFormInstance(_me);\n\n if (!pInst) {\n throw \"没有获取到控件所在的表单\";\n } // 当前控件的联动轨迹\n\n\n _me.traces = {}; //修改子表或孙表行内联动权限\n\n var operationEleByPermission = function operationEleByPermission(n, permission) {\n var idxObj = utils.getSubScopeElAndIndex(_me.$el);\n var tpaths = n.target.split('.');\n var fPoint = n.boType + '_' + tpaths[tpaths.length - 2] + '_' + tpaths[tpaths.length - 1] + '_' + idxObj.index;\n var basePath = 'permission.subFields'; //孙表时,获取孙表所属子表序号\n\n if (n.boType == 'sun') {\n var subIdxObj = utils.getSubScopeElAndIndex(idxObj.subScopeEl.parentElement);\n fPoint = n.boType + '_' + tpaths[tpaths.length - 2] + '_' + tpaths[tpaths.length - 1] + '_' + subIdxObj.index + '_' + idxObj.index;\n }\n\n if (!pInst.permission['subFields']) {\n utils.setValueByPath(pInst, basePath, {});\n }\n\n utils.setValueByPath(pInst, basePath + '.' + fPoint, permission);\n };\n\n linkageExp.forEach(function (m) {\n m.effect.forEach(function (n) {\n // 联动会影响字段的显示、隐藏、必填等权限,以及字段的校验规则。\n // 这里先将这两部分信息存放起来作为恢复的轨迹数据\n _me.traces[n.target] = utils.getValueByPath(pInst, n.target);\n });\n });\n\n _me.$watch(\"inputVal\", function (newVal, oldVal) {\n if (newVal !== oldVal) {\n // 两个对象是否相等\n if (newVal && newVal.constructor == Object && utils.objectEquals(newVal, oldVal)) {\n return;\n } // 两个数组是否相等\n\n\n if (newVal && newVal.constructor == Array && utils.arrayEquals(newVal, oldVal)) {\n return;\n } // 在联动触发之前,先还原一次\n\n\n linkageExp.forEach(function (m) {\n m.effect.forEach(function (n) {\n if (n.target) {\n var boType = n.boType;\n var traceValue = _me.traces[n.target];\n\n if (boType && (boType == 'sub' || boType == 'sun')) {\n operationEleByPermission(n, traceValue);\n } else {\n utils.setValueByPath(pInst, n.target, traceValue);\n }\n }\n\n if (n.ref && n.ref.indexOf(\"sub_\") != -1) {\n var arr = n.ref.split(\".\"); //子表\n\n if (arr.length == 4) {\n if (n.ref && document.querySelector('[model-name=\"' + n.ref + '\"]')) {\n var idxObj = utils.getSubScopeElAndIndex(_me.$el); //获取子表对象(含下标)\n\n var subModeNameArray = document.querySelectorAll('[model-name=\"' + n.ref + '\"]');\n subModeNameArray[idxObj.index].__vue__._data.newValidate = null;\n }\n }\n } else {\n //主表\n if (n.ref && document.querySelector('[model-name=\"' + n.ref + '\"]')) {\n document.querySelector('[model-name=\"' + n.ref + '\"]').__vue__._data.newValidate = null;\n }\n }\n });\n });\n linkageExp.forEach(function (m) {\n // 是否匹配联动要求的值\n var match = false;\n\n if (newVal) {\n if (newVal.constructor === String) {\n match = newVal === m.value;\n } else if (newVal.constructor === Array) {\n match = newVal.some(function (v) {\n return v === m.value;\n });\n }\n }\n\n m.effect.forEach(function (n) {\n if (match) {\n switch (n.type) {\n // 直接赋值\n case \"=\":\n //如果表单是只读的情况下,控件的必填与可编辑替换成只读\n var v = n.value;\n\n if (pInst.isLook && (n.value === 'b' || n.value === 'w')) {\n v = 'r';\n }\n\n var boType = n.boType;\n\n if (boType && (boType == 'sub' || boType == 'sun')) {\n operationEleByPermission(n, v);\n } else {\n utils.setValueByPath(pInst, n.target, v);\n }\n\n break;\n // 追加验证规则\n\n case \"+\":\n if (!n.value || n.value.constructor !== Object && n.value.constructor !== String) {\n throw \"\\u8054\\u52A8\\u65F6\\u8981\\u8FFD\\u52A0\\u7684\\u9A8C\\u8BC1\\u89C4\\u5219\".concat(n.value, \"\\u65E2\\u4E0D\\u662FString\\u7C7B\\u578B\\u4E5F\\u4E0D\\u662FObject\\u7C7B\\u578B\");\n }\n\n if (n.target) {\n // 获取旧的校验规则\n var oldValid = utils.getValueByPath(pInst, n.target); // 将旧规则与新规则进行融合\n\n var newValid = utils.mergeValidate(oldValid, n.value); // 更新融合后的规则\n\n utils.setValueByPath(pInst, n.target, newValid);\n }\n\n if (n.ref) {\n setTimeout(function () {\n if (document.querySelector('[model-name=\"' + n.ref + '\"]')) {\n if (n.ref && n.ref.indexOf(\"sub_\") != -1) {\n var arr = n.ref.split(\".\"); //子表\n\n if (arr.length == 4) {\n var idxObj = utils.getSubScopeElAndIndex(_me.$el);\n var subModeNameArray = document.querySelectorAll('[model-name=\"' + n.ref + '\"]');\n var targetVnode = subModeNameArray[idxObj.index].__vue__;\n var _oldValid = targetVnode.validate; // 将旧规则与新规则进行融合\n\n var _newValid = utils.mergeValidate(_oldValid, n.value);\n\n targetVnode._data.newValidate = _newValid;\n }\n } else {\n //主表\n var _targetVnode = document.querySelector('[model-name=\"' + n.ref + '\"]').__vue__;\n\n var _oldValid2 = _targetVnode.validate; // 将旧规则与新规则进行融合\n\n var _newValid2 = utils.mergeValidate(_oldValid2, n.value);\n\n _targetVnode._data.newValidate = _newValid2;\n }\n }\n }, 100);\n }\n\n break;\n // 减少验证规则\n\n case \"-\":\n if (!n.value || n.value.constructor !== Object && n.value.constructor !== String) {\n throw \"\\u8054\\u52A8\\u65F6\\u8981\\u51CF\\u5C11\\u7684\\u9A8C\\u8BC1\\u89C4\\u5219\".concat(n.value, \"\\u65E2\\u4E0D\\u662FString\\u7C7B\\u578B\\u4E5F\\u4E0D\\u662FObject\\u7C7B\\u578B\");\n }\n\n if (n.target) {\n // 获取旧的规则\n var oldV = utils.getValueByPath(pInst, n.target); // 从旧的规则移除指定规则\n\n var newValidate = utils.reduceValidate(oldV, n.value); // 更新规则\n\n utils.setValueByPath(pInst, n.target, newValidate);\n }\n\n if (n.ref) {\n var _oldValid3 = pInst.$refs[n.ref].validate; // 将旧规则与新规则进行融合\n\n var _newValid3 = utils.reduceValidate(_oldValid3, n.value);\n\n pInst.$refs[n.ref].newValidate = _newValid3;\n }\n\n break;\n }\n }\n });\n });\n }\n }, {\n immediate: true\n });\n },\n // 通用查询\n commonQuery: function commonQuery(_me, exp) {\n debugger;\n }\n};\nexport default service;",null]}