{"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\\directive.js","dependencies":[{"path":"D:\\jenkins\\workspace\\artfess-module\\src\\directive.js","mtime":1675232038762},{"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/es6.regexp.split\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.flags\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/web.dom.iterable\";\nimport Vue from \"vue\";\nimport utils from \"@/utils.js\";\nimport FormMath from \"@/math.js\";\nimport hljs from \"highlight.js\";\nvar directive = {};\n\ndirective.install = function (Vue) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // 代码高亮指令\n Vue.directive('highlight', {\n componentUpdated: function componentUpdated(el) {\n setTimeout(function () {\n var blocks = el.querySelectorAll('pre code');\n\n if (blocks && blocks.constructor === Array) {\n blocks.forEach(function (block) {\n hljs.highlightBlock(block);\n });\n }\n }, 1);\n }\n }); // 表单tr中根据隐藏字段动态合并单元格的指令\n\n Vue.directive('permit', function (el, binding) {\n if (el.tagName !== \"TR\") {\n throw \"v-permit指令只能用在tr元素上.\";\n }\n\n if (!binding.value || binding.value.constructor !== Number) {\n throw \"v-permit指令的值只能是大于0的数字.\";\n }\n\n el.removeAttribute(\"hidden\"); // tr中没有子元素时,删除tr自身\n\n if (el.cells.length == 0) {\n el.setAttribute(\"hidden\", \"hidden\");\n } else if (el.cells.length < binding.value) {\n var colspan = binding.value - el.cells.length + 1; // 设置colspan实现单元格合并\n\n el.cells[el.cells.length - 1].setAttribute(\"colspan\", colspan);\n } else if (el.cells.length == binding.value) {\n for (var i = 0, c; c = el.cells[i++];) {\n c.removeAttribute(\"colspan\");\n }\n }\n }); // 表单指令,会在表单的vue实例上添加一个map,用以存放数学运算的表达式\n\n Vue.directive('form', {\n bind: function bind(el, binding, vnode) {\n // 修正vee-validate中对于元素上的aria-invalid属性更新的问题\n var judgeAriaInvalid = function judgeAriaInvalid(fields) {\n if (!fields || fields.length == 0) {\n return;\n }\n\n var fieldInst = fields.items[0];\n\n var includes = function includes(collection, item) {\n return collection.indexOf(item) !== -1;\n };\n\n var isCheckboxOrRadioInput = function isCheckboxOrRadioInput(el) {\n return includes([\"radio\", \"checkbox\"], el.type);\n };\n\n var isCallable = function isCallable(func) {\n return typeof func === \"function\";\n };\n\n Object.getPrototypeOf(fieldInst).constructor.prototype.updateAriaAttrs = function updateAriaAttrs() {\n var this$1 = this;\n\n if (!this.aria || !this.el || !isCallable(this.el.setAttribute)) {\n return;\n }\n\n var applyAriaAttrs = function applyAriaAttrs(el) {\n el.setAttribute(\"aria-required\", this$1.isRequired ? \"true\" : \"false\");\n el.setAttribute(\"aria-invalid\", this$1.flags.invalid ? \"true\" : \"false\"); // 组件初次加载时,既不显示验证失败也不显示验证成功\n\n if (this$1.flags.invalid == null) {\n el.removeAttribute(\"aria-invalid\");\n }\n };\n\n if (!isCheckboxOrRadioInput(this.el)) {\n applyAriaAttrs(this.el);\n return;\n }\n\n var els = document.querySelectorAll('input[name=\"' + this.el.name + '\"]');\n toArray(els).forEach(applyAriaAttrs);\n };\n };\n\n var inst = vnode.context;\n inst.$root.$validator && judgeAriaInvalid(inst.$root.$validator.fields);\n\n if (inst && !inst.hasOwnProperty(\"watchMap\")) {\n inst[\"watchMap\"] = new Map();\n }\n }\n }); // 判断输入框是否作为计算字段,是则添加监听\n\n Vue.directive('express', {\n componentUpdated: function componentUpdated(el, binding, vnode) {\n var inst = vnode.context;\n\n if (!inst.$vnode.data.model) {\n return;\n }\n\n var elAttr = inst.$vnode.data.model.expression;\n\n if (inst.$vnode && inst.$vnode.componentOptions && inst.$vnode.componentOptions.propsData && inst.$vnode.componentOptions.propsData.modelExpression) {\n elAttr = inst.$vnode.componentOptions.propsData.modelExpression;\n }\n\n if (elAttr && !inst._expressInit) {\n inst._expressInit = true; // 子表每一行数据作用域所在的dom元素\n\n var _utils$getSubScopeElA = utils.getSubScopeElAndIndex(el),\n subScopeEl = _utils$getSubScopeElA.subScopeEl;\n\n var subname = null;\n var aliasElAttr = null; // 子表数据,需要找到配置了data-subname的元素\n\n if (subScopeEl) {\n subname = subScopeEl.dataset[\"subname\"];\n\n if (!subname) {\n throw \"无法获取到当前子表前缀\";\n }\n\n var elAttrAry = elAttr.split(\".\"),\n elAttrArySize = elAttrAry.length;\n\n if (elAttrArySize < 1) {\n throw \"\\u5B50\\u8868\\u4E2D\\u7684\\u6570\\u636E\\u7ED1\\u5B9A\\u8868\\u8FBE\\u5F0F\".concat(elAttr, \"\\u9519\\u8BEF\");\n }\n\n aliasElAttr = \"\".concat(subname, \".\").concat(elAttrAry[elAttrArySize - 1]);\n }\n\n var p = utils.getOnlineFormInstance(inst);\n\n if (p.watchMap && (p.watchMap.has(elAttr) || p.watchMap.has(aliasElAttr))) {\n if (!inst._watchers.some(function (m) {\n return m.expression === 'inputVal';\n })) {\n inst.$watch(\"inputVal\", function (newVal, oldVal, farewell) {\n if (newVal !== oldVal) {\n var elAttrExpList = p.watchMap.get(elAttr) || [];\n var aliasElAttrExpList = p.watchMap.get(aliasElAttr) || [];\n var unionExpList = elAttrExpList.concat(aliasElAttrExpList);\n var attrExpObj = {};\n unionExpList.forEach(function (item) {\n var result = 0;\n var t = item.target;\n var targetList = attrExpObj[t] || [];\n\n if (targetList.indexOf(item.exp) < 0) {\n targetList.push(item.exp);\n attrExpObj[t] = targetList;\n\n if (subScopeEl && t.split(\".\").length == 2) {\n var index = subScopeEl.dataset[\"index\"];\n\n if (index === undefined) {\n throw \"获取不到当前子表行的索引,无法完成计算.\";\n }\n\n result = FormMath.calcSubExpValue(item.exp, p, subname, index);\n p.$emit(t, {\n result: result,\n index: index\n });\n } else {\n result = FormMath.calcExpValue(item.exp, p);\n p.$emit(t, {\n result: result\n });\n }\n }\n });\n }\n }, {\n immediate: true\n });\n }\n }\n }\n }\n }); // 注册一个过滤器,将byte单位的数值转换为合适单位的数值返回\n\n Vue.filter(\"computerSize\", function renderSize(value) {\n if (null == value || value == '') {\n return \"0 Bytes\";\n }\n\n var unitArr = new Array(\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\");\n var index = 0;\n var srcsize = parseFloat(value);\n index = Math.floor(Math.log(srcsize) / Math.log(1024));\n var size = srcsize / Math.pow(1024, index);\n size = size.toFixed(2); //保留的小数位数\n\n return size + unitArr[index];\n });\n Vue.filter('dateformat', function (dataStr) {\n var pattern = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yyyy-MM-dd hh:mm:ss';\n\n if (dataStr) {\n if (pattern == 'yyyy-MM-dd hh:mm:ss') {\n pattern = 'YYYY-MM-DD HH:mm:ss';\n }\n\n return new Date(dataStr).format(pattern);\n } else {\n return \"\";\n }\n });\n};\n\nif (typeof window !== 'undefined' && window.Vue) {\n directive.install(window.Vue);\n}\n\nexport default directive;",null]}