{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\eipControl\\EipTextarea.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\eipControl\\EipTextarea.vue","mtime":1667327529309},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport utils from \"@/utils.js\";\r\nimport hotentUiUtils from '@/hotent-ui-util.js';\r\nimport { Base64 } from \"js-base64\";\r\nimport sub_pio_mixin from \"@/sub-permission-mixin.js\";\r\nexport default {\r\n  name: \"eip-textarea\",\r\n  props: [\r\n    \"validate\",\r\n    \"value\",\r\n    \"name\",\r\n    \"permission\",\r\n    \"atter\",\r\n    \"type\",\r\n    \"initialFrameHeight\" ,\r\n    \"initialFrameWidth\" ,\r\n    \"placeholder\",\r\n    \"isEditor\",\r\n    \"noToolbar\",\r\n    \"isInputEdit\",\r\n    \"textValue\",\r\n    \"precision\",\r\n    \"textAlign\",\r\n  ],\r\n  mixins: [sub_pio_mixin],//混入方式引入表单组件中公共属性，处理子表、孙表行内联动（切面修改permission_sub）\r\n  data() {\r\n    return {\r\n      config_text:{\r\n\t\t\t\tinitialFrameHeight: 50,\r\n\t\t\t\tUEDITOR_HOME_URL: window.location.origin +'/'+ window.location.pathname.split('/')[1]+'/static/ueditor/',\r\n\t\t\t\ttoolbars:[],\r\n        elementPathEnabled:false,//是否启用元素路径，默认是true显示　\r\n        wordCount:false,          //是否开启字数统计\r\n\t\t\t\t// 初始容器宽度\r\n\t\t\t\tinitialFrameWidth: \"100%\",\r\n\t\t\t\tzIndex:99,\r\n\t\t\t\tenableAutoSave: false,\r\n\t\t\t\treadonly : true\r\n\t\t\t},\r\n      width:\"100%\",\r\n      unwatchAry: [],\r\n      newValidate:null,\r\n      data: {}\r\n    };\r\n  },\r\n  methods:{\r\n    getObjectValue(text, t, v){\r\n      let start = \"\";\r\n      let end = \"\";\r\n      if(!text && v){\r\n        return v;\r\n      }\r\n      //start = text.substring(0, text.indexOf(\"{\"));\r\n      //end = text.substring(text.lastIndexOf(\"}\") + 1, text.length);\r\n      let val2 = text.substring(text.indexOf(\"{\") +2, text.indexOf(\"}\")).split(\".\");\r\n      if(val2.length == 1){\r\n        return text;\r\n      }\r\n      let rtn = \"\";\r\n      let regVal = null;\r\n      let reg = /\\{\\{[\\.\\d\\w]+\\}\\}/;\r\n      let check = new RegExp(\"[\\u4e00-\\u9fa5]\");\r\n      //从左到右遍历text，将匹配到的bo数据替换到返回值中\r\n      while((regVal = reg.exec(text)) != null){\r\n        rtn += text.substr(0,regVal.index);\r\n        let val = regVal[0];\r\n        if(check.test(val.replace(/(\\{\\{)|(\\}\\})/g,\"\")) || !val.startsWith(\"{{data.\")){\r\n          rtn += val;\r\n          text = text.substr(regVal.index + val.length);\r\n          continue;\r\n        }\r\n        let length = val.length;\r\n        val = val.replace(/(\\{\\{)|(\\}\\})/g,\"\");\r\n        let arr = val.split(\".\").splice(1);\r\n        if(arr.length == 2){\r\n          //主表     [\"mainEnt\", \"field\"]\r\n          if(t.data[arr[0]][arr[1]]){\r\n            rtn += t.data[arr[0]][arr[1]];\r\n          }\r\n          text = text.substr(regVal.index + length);\r\n        }else if(arr.length == 3){\r\n          //子表     [\"mainEnt\", \"sub_\"+\"subEnt\", \"field\"]\r\n          let subIndex = utils.getSomeAttributeFromParentElement(t.$el,\"sub-index\"); //子表下标\r\n          let curData = t.data[arr[0]][arr[1]][subIndex] //子表单行数据\r\n          if(curData[arr[2]]){\r\n            rtn += curData[arr[2]];\r\n          }\r\n          text = text.substr(regVal.index + length);\r\n        }\r\n      }\r\n      //添加剩下的数据到返回值中\r\n      if(text){\r\n        rtn += text;\r\n      }\r\n      return rtn;\r\n      // let check = new RegExp(\"[\\u4e00-\\u9fa5]\");\r\n      // val = val.filter(v =>{\r\n      //   return v != \"data\";\r\n      // })\r\n      // if(check.test(val)){\r\n      //   return text;\r\n      // }\r\n      // if(val.length==2){//主表\r\n      //   if(t.data[val[0]][val[1]]){\r\n      //     return start + t.data[val[0]][val[1]] + end;\r\n      //   }else if(!start && !end){\r\n      //     return \"''\";\r\n      //   }\r\n      //   return start + \"\" + end;\r\n      // }else  if(val.length==3){//子表\r\n      //   //获取子表的下标\r\n      //   let subIndex = utils.getSomeAttributeFromParentElement(t.$el,\"sub-index\");\r\n      //   let attrArr = t.atter.split(\".\");\r\n      //   let attr = attrArr[attrArr.length -1];\r\n      //   let data = t.data[val[0]][val[1]];\r\n      //   data.forEach(v =>{\r\n      //     if(v[val[2]] != v[attr]){\r\n      //       v[attr] = start +v[val[2]] + end;\r\n      //     }\r\n      //   })\r\n      //   if (start + data[subIndex][val[2]] + end) {\r\n      //     return start + data[subIndex][val[2]] + end;\r\n      //   }else if(!start && !end){\r\n      //     return \"''\";\r\n      //   }\r\n      // }\r\n    },\r\n    getField(data,fieldArr){\r\n      if(!data || !fieldArr || fieldArr.length < 3 || fieldArr[0] != 'data'){\r\n        return \"\";\r\n      }\r\n      if(fieldArr.length == 3){\r\n        //子表\r\n\r\n      }\r\n    }\r\n  },\r\n  computed: {\r\n    inputVal:{\r\n      get() {\r\n        let _this = this;\r\n        _this.data = _this.$parent.$vnode.context.$vnode.context.data;\r\n        let text = '';\r\n        if (this.textValue) {\r\n          text = Base64.decode(this.textValue);\r\n        }\r\n        if(!this.value){\r\n          let moment = require(\"moment\");\r\n          if(text){\r\n            setTimeout(() => {\r\n              let isJoin = false;\r\n              if(text.indexOf(\"{发起时间:startDate}\") != -1){\r\n                text=text.replace(/\\{发起时间:startDate}/g,\"发起时间:\"+moment().format(\"YYYY-MM-DD\")+\" \");\r\n                isJoin = true;\r\n              }\r\n              if(text.indexOf(\"{发起人:startUser}\") != -1){\r\n                let currentUser= this.$store.state.user.currentUserDetail.user;\r\n                text=text.replace(/\\{发起人:startUser}/g,\"发起人:\"+currentUser.fullname+\" \");\r\n                isJoin = true;\r\n              }\r\n              if(text.indexOf(\"{所在部门:userOrg}\") != -1){\r\n                let currentOrg=this.$store.state.user.currentOrgDetail;\r\n                var name=\"无\";\r\n                if(currentOrg && currentOrg.name){\r\n                  name=currentOrg.name;\r\n                }\r\n                text=text.replace(/\\{所在部门:userOrg}/g,\"所在部门:\"+name+\" \");\r\n                isJoin = true;\r\n              }\r\n              if(!isJoin){\r\n                text = _this.getObjectValue(text, _this);\r\n              }\r\n              this.$emit(\"input\", text);\r\n              return text;\r\n            },900);\r\n          }\r\n        }else{\r\n          return _this.getObjectValue(text,_this,this.value);\r\n        }\r\n      },\r\n      set(val) {\r\n        this.$emit(\"input\", val);\r\n      }\r\n    },\r\n    text: function(){\r\n      if(this.textValue){\r\n        return Base64.decode(this.text);\r\n      }\r\n    },\r\n    inputName: function() {\r\n      let labeldesc = \"\";\r\n      if (\r\n        this.$slots &&\r\n        this.$slots.labeldesc &&\r\n        this.$slots.labeldesc[0].children &&\r\n        this.$slots.labeldesc[0].children[0].text\r\n      ) {\r\n        labeldesc = this.$slots.labeldesc[0].children[0].text;\r\n        return this.name ? this.name : utils.getName() + \"-\" + labeldesc;\r\n      } else {\r\n        return this.name ? this.name : utils.getName();\r\n      }\r\n    },\r\n    inputValidate: function() {\r\n      if(this.newValidate){\r\n        return this.newValidate;\r\n      }\r\n      return this.validate;\r\n    },\r\n    config:function(){\r\n      let  configTemp ={\r\n        initialFrameHeight: 240,\r\n        UEDITOR_HOME_URL: window.location.origin +'/'+ window.location.pathname.split('/')[1]+'/static/ueditor/',\r\n        toolbars: [\r\n          [\r\n            // 'source', //源代码\r\n            'undo', //撤销\r\n            'bold', //加粗\r\n            'indent', //首行缩进\r\n            'italic', //斜体\r\n            'underline', //下划线\r\n            'strikethrough', //删除线\r\n            'subscript', //下标\r\n            'fontborder', //字符边框\r\n            'superscript', //上标\r\n            'formatmatch', //格式刷\r\n            'forecolor',//字体颜色\r\n            'justifyleft', //居左对齐\r\n            'justifycenter', //居中对齐\r\n            'justifyright', //居右对齐\r\n            'justifyjustify', //两端对齐\r\n            'fontfamily', //字体\r\n            'fontsize', //字号\r\n            'insertorderedlist', //有序列表\r\n            'insertunorderedlist', //无序列表\r\n            'lineheight',//行间距\r\n            'inserttable', //插入表格\r\n            'link', //超链接\r\n            'simpleupload', //单图上传\r\n            'insertimage', //多图上传\r\n            'attachment', //附件\r\n          ]\r\n        ],\r\n        elementPathEnabled:false,//是否启用元素路径，默认是true显示　\r\n        wordCount:false,          //是否开启字数统计\r\n        // 初始容器宽度\r\n        initialFrameWidth: \"100%\",\r\n        zIndex:90,\r\n        enableAutoSave: false,\r\n        readonly : false\r\n      };\r\n      //是否显示工具栏\r\n      if(this.noToolbar || this.permission_sub=='r'){\r\n        configTemp.toolbars = [];\r\n      }\r\n      return configTemp;\r\n    }\r\n  },\r\n  async mounted() {\r\n\r\n    const { subScopeEl, index } = hotentUiUtils.getSubScopeElAndIndex(this.$el);\r\n    //如果是编辑或者必填的情况下。但是该行不允许编辑，则将权限修改为只读\r\n    if (subScopeEl && (subScopeEl.getAttribute(\"row_readonly\") == 'true' || subScopeEl.getAttribute(\"row_readonly\") === true) && (this.permission_sub =='w'|| this.permission_sub =='b' )) {\r\n      this.permission_sub = 'r';\r\n    }\r\n\r\n    if(this.initialFrameHeight){\r\n      this.config.initialFrameHeight=this.initialFrameHeight;\r\n    }\r\n    if(this.initialFrameWidth){\r\n      this.config.initialFrameWidth=this.initialFrameWidth;\r\n    }\r\n    if(this.isInputEdit||this.permission_sub=='r'){\r\n      this.config.readonly=true;\r\n    }\r\n  },\r\n  created() {\r\n    this.$validator = this.$root.$validator;\r\n  }\r\n};\r\n",null]}