{"remainingRequest":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\examine-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\examine-fvue\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\examine-fvue\\src\\directive.js","dependencies":[{"path":"D:\\jenkins\\workspace\\examine-fvue\\src\\directive.js","mtime":1667280204592},{"path":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es7.array.includes\";\nimport _defineProperty from \"D:/jenkins/workspace/examine-fvue/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport Vue from \"vue\";\nimport utils from \"@/hotent-ui-util.js\";\nimport FormMath from \"@/math.js\";\nimport dialog from \"@/api/dialogApi.js\";\nimport CustomQuery from \"@/components/eipControl/bus/CustomQuery.js\";\nimport _ from \"lodash\";\nimport req from \"@/request.js\";\nimport app from \"@/main.js\"; // 表单tr中根据隐藏字段动态合并单元格的指令\n\nVue.directive('pinyin', {\n // 指令的定义\n componentUpdated: function componentUpdated(el, binding, vnode) {\n var context = vnode.context; // 防抖\n\n var debounceGetPinyin = _.debounce(function (newVal) {\n // disabled 或者 readonly 时 不需要请求\n if (el.__vue__.disabled || el.__vue__.readonly) return;\n req.request({\n url: \"\".concat(window.context.uc, \"/base/tools/v1/getPinyin\"),\n method: \"GET\",\n params: {\n chinese: newVal,\n type: \"\".concat(binding.modifiers.full ? 1 : 0)\n }\n }).then(function (res) {\n if (res.data.state) {\n var modelExp = vnode.data.model.expression.replace(/\\[\\w+.?\\$\\w+\\]/g, \"[\" + binding.arg + \"]\");\n utils.setValueByPath(context, modelExp, res.data.value);\n app.$nextTick(function () {\n app.$validator.validate();\n });\n }\n }).finally(function () {});\n }, 300);\n\n if (binding.value && binding.value != binding.oldValue) {\n debounceGetPinyin(binding.value);\n } // context.$watch(watchExp(), function (newVal, oldVal) {\n // \tif (newVal && newVal != oldVal) {\n // \t\tdebounceGetPinyin(newVal);\n // \t}\n // }, {\n // \tdeep: true,\n // \timmediate: false\n // });\n\n }\n});\nVue.directive('permit', {\n componentUpdated: function componentUpdated(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 }\n}); // 表单指令,会在表单的vue实例上添加一个map,用以存放数学运算的表达式\n\nVue.directive('form', {\n bind: function bind(el, binding, vnode) {\n var inst = vnode.context;\n\n if (inst && !inst.hasOwnProperty(\"watchMap\")) {\n inst[\"watchMap\"] = new Map();\n }\n }\n}); // 判断输入框是否作为计算字段,是则添加监听\n\nVue.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.componentOptions.propsData.modelExpression;\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 expList = p.watchMap.get(elAttr) || p.watchMap.get(aliasElAttr);\n expList.forEach(function (item) {\n var result = 0;\n var t = item.target; // 当在子表单行中时,而且不是对子表进行列运算时,判定为子表当前行内运算\n\n if (subScopeEl && !/.*?\\[\\{.*?\\}\\].*?/.test(item.exp)) {\n // 组件销毁时,不再计算子表单行的公式\n if (farewell) {\n return;\n }\n\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 immediate: true\n });\n }\n }\n }\n }\n}); // 自定义对话框 v-auth-set-event\n\nVue.directive('auth-set-event', {\n bind: function bind(el, bindings, vnode) {\n var htAuthSetEvent = el.getAttribute(\"attr\");\n if (!htAuthSetEvent) return;\n var defaultPermissionList = [];\n dialog.getPermissionList(function (result) {\n defaultPermissionList = result;\n });\n /**\r\n * 设置设置权限。\r\n * ownerNameJson 格式。\r\n * [{type:\"everyone\",title:\"所有人\"},{type:\"user\",title:\"用户\",id:\"1,2\",name:\"ray,tom\"}]\r\n */\n\n var setAuth = function setAuth() {\n var conf = {\n right: ownerNameJson,\n permissionList: defaultPermissionList\n }; //授权选择器\n\n vnode.child.AuthSettingShow(conf);\n };\n\n var ownerNameJson = [];\n var initData = bindings.value;\n\n if (initData) {\n ownerNameJson = JSON.parse(initData);\n ; // showLable(ownerNameJson);\n } //对话框初始化监听\n\n\n el.childNodes[2].onclick = function () {\n setAuth();\n };\n }\n});\nVue.directive('parseTemplete', {\n bind: function bind(el, binding, vnode) {\n var s = JSON.stringify;\n el.innerHTML = 'name: ' + s(binding.name) + '
' + 'value: ' + s(binding.value) + '
' + 'expression: ' + s(binding.expression) + '
' + 'argument: ' + s(binding.arg) + '
' + 'modifiers: ' + s(binding.modifiers) + '
' + 'vnode keys: ' + Object.keys(vnode).join(', ');\n }\n});\nVue.directive('alsCharts', {\n inserted: function inserted(el, binding, vnode) {\n var inst = binding.context;\n\n function init(data) {\n var _option;\n\n if (!(data.value && data.value !== true && data.value.constructor == Array && data.value[0].legend)) {\n return;\n }\n\n var options = data.value[0];\n var height = getDivHeight(el) - 35;\n var wrap = $('
').css({\n width: '100%',\n height: height\n });\n $(el).css({\n display: 'block',\n width: '100%',\n height: height\n }); // const echarts = require('echarts');\n // var myChart = echarts.init(el);\n // inst.$root.$on(\"resize\", () => {\n // myChart.resize();//监测图表自适应\n // });\n\n var option = (_option = {\n title: {\n text: options.name,\n subtext: options.subtext,\n top: 12\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'shadow'\n }\n },\n calculable: true,\n legend: {\n x: 'right',\n data: options.legend\n },\n toolbox: {\n show: true,\n orient: 'vertical',\n y: 'center',\n right: 20,\n itemGap: 13,\n feature: _defineProperty({\n mark: {\n show: true\n },\n dataView: {\n show: true,\n readOnly: false\n },\n magicType: {\n show: true,\n type: ['line', 'bar', 'stack', 'tiled']\n },\n restore: {\n show: true\n },\n saveAsImage: {\n show: true\n },\n dataZoom: {\n yAxisIndex: 'none'\n }\n }, \"dataView\", {\n show: true,\n readOnly: true,\n optionToContent: function optionToContent(opt) {\n //console.info(opt);\n var axisData = opt.xAxis[0].data;\n var series = opt.series;\n var tdHeaders = ''; //表头\n\n series.forEach(function (item) {\n tdHeaders += '' + item.name + ''; //组装表头\n });\n var table = '
' + tdHeaders + '';\n var tdBodys = ''; //数据\n\n var colors = ['#FFFFFF', '#F5F5F5'];\n\n for (var i = 0, l = axisData.length; i < l; i++) {\n for (var j = 0; j < series.length; j++) {\n tdBodys += ''; //组装表数据\n }\n\n var curColor = colors[i % 2];\n table += '' + tdBodys + '';\n tdBodys = '';\n }\n\n table += '
' + series[j].data[i] + '
' + axisData[i] + '
';\n return table;\n }\n })\n }\n }, _defineProperty(_option, \"calculable\", true), _defineProperty(_option, \"grid\", {\n y: 80,\n y2: 40,\n x2: 40\n }), _defineProperty(_option, \"xAxis\", [{\n type: 'category',\n data: options.xAxis\n }]), _defineProperty(_option, \"yAxis\", [{\n type: 'value'\n }]), _defineProperty(_option, \"series\", options.series), _option); // myChart.setOption(option, true);\n } //获取当前栏目的高度\n\n\n function getDivHeight(el) {\n if (el) {\n var pHeight = $(el).parent().height();\n\n if (pHeight < 1) {\n return getDivHeight($(el).parent());\n }\n } else {\n return 340;\n }\n\n return pHeight;\n }\n\n init(binding);\n }\n});\nVue.directive('opinion', {\n bind: function bind(el, binding, vnode) {\n if (binding.value) {\n while (binding.value.indexOf(\"\\n\") != -1) {\n binding.value = binding.value.replace(\"\\n\", \"
\");\n }\n\n el.innerHTML = binding.value;\n }\n }\n});\nVue.directive('iframetrigger', {\n bind: function bind(el, binding, vnode) {\n el.onload = function () {\n $(\"body\").trigger(\"formLoaded\");\n };\n\n $(\"body\").bind(\"formLoaded\", function (e) {\n var frm = $(\"#frmFrame\")[0];\n window.addEventListener('message', function (e) {\n if (e.data && e.data.constructor == Object && e.data.type == 'height') {\n frm.style.visibility = 'hidden'; // 提前还原高度\n\n frm.setAttribute('height', 'auto');\n setTimeout(function () {\n frm.setAttribute('height', e.data.height);\n frm.style.visibility = 'visible';\n $(frm).trigger(\"mouseover\");\n }, 0);\n }\n });\n });\n }\n});\nVue.directive('methodauth', {\n bind: function bind(el, binding, vnode) {\n var allMethod = window.sessionStorage.allMethod;\n var methodAuth = window.sessionStorage.methodAuth;\n var elAuth = binding.expression;\n var allMethodArray = allMethod.split(',');\n var methodAuthArray = methodAuth.split(','); // 无权限则隐藏按钮\n\n if ($.inArray(elAuth, methodAuthArray) == -1 && $.inArray(elAuth, allMethodArray)) {\n $(el).css('display', 'none');\n }\n }\n}); // 注册全局公式计算组件\n\nVue.directive(\"formula\", {\n bind: function bind(el, binding, vnode) {\n var propsData = vnode.context.$options.propsData; //初始化的时候,如果没有值,则用公式的计算结果来赋值给当前字段\n\n var oldVal = utils.getValueByPath(propsData, binding.value.bindPath);\n\n if (propsData && !oldVal) {\n utils.setValueByPath(propsData, binding.value.bindPath, binding.value.value);\n vnode.context.$forceUpdate();\n }\n },\n update: function update(el, binding, vnode, oldVnode) {\n if (binding.oldValue.value instanceof Date) {\n if (binding.oldValue.value.getTime() !== binding.value.value.getTime()) {\n utils.setValueByPath(vnode.context.$options.propsData, binding.value.bindPath, binding.value.value);\n vnode.context.$forceUpdate();\n }\n } else {\n if (binding.oldValue.value != binding.value.value) {\n utils.setValueByPath(vnode.context.$options.propsData, binding.value.bindPath, binding.value.value);\n vnode.context.$forceUpdate();\n }\n }\n }\n});\nVue.directive(\"mapping\", {\n update: function update(el, binding, vnode, oldVnode) {\n if (binding.oldValue !== binding.value) {\n Vue.set(el.__vue__, \"inputVal\", binding.value);\n }\n }\n});\nVue.directive(\"dynamic-options\", {\n bind: function bind(el, binding, vnode) {\n var exp = null;\n\n if (binding.expression) {\n exp = utils.parseToJson(binding.expression);\n }\n\n var inst = vnode.context;\n\n if (inst) {\n // 上一次动态选项查询条件\n inst.preDynamicLoadParams = null;\n inst.$on(\"dynamic-options:load\", function (alias, params) {\n params = params || {}; // 是否执行查询\n\n var doLoad = true;\n\n if (exp && exp.cache) {\n // 相比上一次,查询参数是否有变化\n var changed = !utils.objectEquals(inst.preDynamicLoadParams, params);\n\n if (changed) {\n doLoad = true;\n inst.preDynamicLoadParams = params;\n } else {\n doLoad = false;\n }\n }\n\n doLoad && CustomQuery.load(alias, params).then(function (data) {\n inst.$emit(\"dynamic-options:update\", alias, data);\n });\n });\n }\n }\n}); //用于上级值变化后,下级内容需要清空\n\nVue.directive(\"watch-parent\", {\n update: function update(el, binding, vnode) {\n if (binding.value && binding.value.pid) {\n var _loop = function _loop() {\n var inst = vnode.context;\n var instParent = utils.getOnlineFormInstance(inst);\n instParent.$watch(function () {\n return utils.getValueByPath(instParent, binding.value.pid[key], binding.value.index);\n }, function (newVal, oldVal, farewell) {\n if (newVal !== oldVal) {\n inst.inputVal = \"\";\n }\n });\n };\n\n for (var key in binding.value.pid) {\n _loop();\n }\n }\n }\n});\nVue.directive(\"related-query\", {\n bind: function bind(el, binding, vnode) {\n var inst = vnode.context;\n var exp = null;\n\n if (binding.expression) {\n exp = utils.parseToJson(binding.expression);\n }\n\n if (inst) {\n // 上一次关联查询条件(一个组件可以绑定多个关联查询,)\n inst.preRelatedQueryParams = {};\n inst.$on(\"related-query:load\", function (alias, params, resultBind) {\n params = params || {}; // 是否执行查询\n\n var doLoad = true;\n\n if (exp && exp.cache) {\n // 相比上一次,查询参数是否有变化\n var changed = !utils.objectEquals(inst.preRelatedQueryParams[alias], params);\n\n if (changed) {\n doLoad = true;\n inst.preRelatedQueryParams[alias] = params;\n } else {\n doLoad = false;\n }\n }\n\n doLoad && CustomQuery.load(alias, params).then(function (data) {\n if (data && data.constructor == Array && data.length > 0 && resultBind && resultBind.constructor == Object) {\n // 获取当前控件是否在子表某行中\n var _utils$getSubScopeElA2 = utils.getSubScopeElAndIndex(el),\n index = _utils$getSubScopeElA2.index;\n\n var pInst = utils.getOnlineFormInstance(inst); // 关联查询值回绑时,默认获取返回的第一条记录\n\n var singleData = data[0];\n Object.keys(resultBind).forEach(function (k) {\n var path = resultBind[k]; // 主表\n\n if (index == null) {\n utils.setValueByPath(pInst, path, singleData[k]);\n } // 子表\n else {\n utils.setValueByPath(pInst, path, singleData[k], index);\n }\n });\n }\n });\n });\n }\n }\n}); //表格横向拖拽\n\nVue.directive('tableDrag', {\n inserted: function inserted(el) {\n var currentElement = el.getElementsByClassName('el-table__body-wrapper')[0] || el;\n var tagNames = ['span', 'input', 'textarea', 'aside'];\n\n if (currentElement) {\n currentElement.onmousedown = function (event) {\n var currentTagNames = event.target.tagName.toLowerCase();\n if (tagNames.includes(currentTagNames)) return;\n currentElement.style.cursor = 'grab';\n var gapX = event.clientX;\n var startX = el.scrollLeft;\n\n document.onmousemove = function (e) {\n var x = e.clientX - gapX;\n currentElement.scrollLeft = startX - x;\n return false;\n };\n\n document.onmouseup = function (e) {\n document.onmousemove = null;\n document.onmouseup = null;\n };\n };\n }\n }\n}); //用于控制子表或孙表单行permission\n\nVue.directive(\"permission-line\", {\n bind: function bind(el, binding, vnode) {\n if (binding.value) {\n var inst = vnode.context;\n var idxObj = utils.getSubScopeElAndIndex(el);\n var paths = binding.value.split('_');\n var boType = paths[0];\n var idStr = binding.value + '_' + idxObj.index; //孙表时,获取孙表所属子表序号\n\n if (boType == 'sun' && idxObj.subScopeEl) {\n var subIdxObj = utils.getSubScopeElAndIndex(idxObj.subScopeEl.parentElement);\n idStr = binding.value + '_' + subIdxObj.index + '_' + idxObj.index;\n }\n\n if (inst.permission && inst.permission['subFields'] && inst.permission['subFields'][idStr]) {\n setTimeout(function () {\n if (el.__vue__) {\n el.__vue__.permission_sub = inst.permission['subFields'][idStr];\n el.__vue__.sub_work = true;\n }\n }, 0);\n }\n }\n },\n update: function update(el, binding, vnode) {\n if (binding.value) {\n var inst = vnode.context;\n var idxObj = utils.getSubScopeElAndIndex(el);\n var paths = binding.value.split('_');\n var boType = paths[0];\n var idStr = binding.value + '_' + idxObj.index; //孙表时,获取孙表所属子表序号\n\n if (boType == 'sun' && idxObj.subScopeEl) {\n var subIdxObj = utils.getSubScopeElAndIndex(idxObj.subScopeEl.parentElement);\n idStr = binding.value + '_' + subIdxObj.index + '_' + idxObj.index;\n }\n\n if (inst.permission && inst.permission['subFields'] && inst.permission['subFields'][idStr]) {\n setTimeout(function () {\n if (el.__vue__) {\n el.__vue__.permission_sub = inst.permission['subFields'][idStr];\n }\n }, 0);\n }\n }\n }\n}); //用于控制子表或孙表单行permission lable标签\n\nVue.directive(\"permission-line-lable\", {\n bind: function bind(el, binding, vnode) {\n if (binding.value) {\n var inst = vnode.context;\n var idxObj = utils.getSubScopeElAndIndex(el);\n var paths = binding.value.split('_');\n var boType = paths[0];\n var idStr = binding.value + '_' + idxObj.index; //孙表时,获取孙表所属子表序号\n\n if (boType == 'sun' && idxObj.subScopeEl) {\n var subIdxObj = utils.getSubScopeElAndIndex(idxObj.subScopeEl.parentElement);\n idStr = binding.value + '_' + subIdxObj.index + '_' + idxObj.index;\n }\n\n if (inst.permission && inst.permission['subFields'] && inst.permission['subFields'][idStr]) {\n setTimeout(function () {\n el.parentElement.hidden = inst.permission['subFields'][idStr] == 'n' ? true : false;\n }, 0);\n }\n }\n },\n update: function update(el, binding, vnode) {\n if (binding.value) {\n var inst = vnode.context;\n var idxObj = utils.getSubScopeElAndIndex(el);\n var paths = binding.value.split('_');\n var boType = paths[0];\n var idStr = binding.value + '_' + idxObj.index; //孙表时,获取孙表所属子表序号\n\n if (boType == 'sun' && idxObj.subScopeEl) {\n var subIdxObj = utils.getSubScopeElAndIndex(idxObj.subScopeEl.parentElement);\n idStr = binding.value + '_' + subIdxObj.index + '_' + idxObj.index;\n }\n\n if (inst.permission && inst.permission['subFields'] && inst.permission['subFields'][idStr]) {\n setTimeout(function () {\n el.parentElement.hidden = inst.permission['subFields'][idStr] == 'n' ? true : false;\n }, 0);\n }\n }\n }\n}); // 用于点击指定区域外执行某功能 \n\nVue.directive(\"click-outside\", {\n bind: function bind(el, bindings, vnode) {\n el.handler = function (e) {\n if (!el.contains(e.target)) {\n var method = bindings.expression;\n vnode.context[method]();\n }\n };\n\n document.addEventListener('click', el.handler);\n },\n unbind: function unbind(el) {\n // 可用于解除事件绑定\n document.removeEventListener('click', el.handler);\n }\n});\nvar directive = {};\nexport default directive;",null]}