{"remainingRequest":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xypm-web\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xypm-web\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\xypm-web\\src\\directive.js","dependencies":[{"path":"D:\\jenkins\\workspace\\xypm-web\\src\\directive.js","mtime":1675214577667},{"path":"D:\\jenkins\\workspace\\xypm-web\\babel.config.js","mtime":1675214572901},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es7.array.includes\";\nimport _defineProperty from \"D:/jenkins/workspace/xypm-web/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\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) + '<br>' + 'value: ' + s(binding.value) + '<br>' + 'expression: ' + s(binding.expression) + '<br>' + 'argument: ' + s(binding.arg) + '<br>' + 'modifiers: ' + s(binding.modifiers) + '<br>' + '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 = $('<div></div>').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 = '<th></th>'; //表头\n\n              series.forEach(function (item) {\n                tdHeaders += '<th style=\"padding: 8px 10px;background-color:#F5F5F5;\">' + item.name + '</th>'; //组装表头\n              });\n              var table = '<div><table cellspacing=\"20\" cellspacing=\"0\"  style=\"text-align:center;border:1px solid black;border-collapse:collapse;\" rules=\"all\"><tbody><tr>' + tdHeaders + '</tr>';\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 += '<td>' + series[j].data[i] + '</td>'; //组装表数据\n                }\n\n                var curColor = colors[i % 2];\n                table += '<tr style=\"background-color:' + curColor + '\"><td style=\"padding: 8px 10px;\">' + axisData[i] + '</td>' + tdBodys + '</tr>';\n                tdBodys = '';\n              }\n\n              table += '</tbody></table></div>';\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\", \"<br>\");\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.value;\n    var allMethodArray = allMethod && allMethod.split(',');\n    var methodAuthArray = methodAuth && 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});\nvar directive = {};\nexport default directive;",null]}