{"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\\control\\HtCheckbox.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\control\\HtCheckbox.vue","mtime":1667327529075},{"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\r\nimport utils from \"@/utils.js\";\r\n\r\nexport default {\r\n  name: \"ht-checkbox\",\r\n  props: [\"validate\", \"value\", \"name\", \"permission\", \"cklist\", \"linkage\" ,\"ganged\",\"styles\",\r\n          \"isVertical\",\"tooltipplacement\"],\r\n  data() {\r\n    return {\r\n      inputVal: [],\r\n      inputValnew: \"\",\r\n      options:[],\r\n      config:{}\r\n    };\r\n  },\r\n  watch: {\r\n    inputVal: function(newVal, oldVal) {\r\n      this.$emit(\"input\", newVal);\r\n    }\r\n  },\r\n  computed: {\r\n    inputWriteable: function() {\r\n      var getWriteable = utils.getWriteable(this.permission);\r\n      if (\r\n        !utils.getWriteable(this.permission) &&\r\n        this.inputVal.length > 0 &&\r\n        this.inputValnew == \"\"\r\n      ) {\r\n        var inputValArr = [];\r\n        for (var i = 0; i < this.inputVal.length; i++) {\r\n          for (var a = 0; a < this.options.length; a++) {\r\n            if (this.options[a].key == this.inputVal[i]) {\r\n              inputValArr.push(this.options[a].value);\r\n              break;\r\n            }\r\n          }\r\n        }\r\n        this.inputValnew = inputValArr.join(\",\");\r\n      }\r\n      return getWriteable;\r\n    },\r\n    inputValidate: function() {\r\n      var validateObj= this.$store.state.index.validate;\r\n      return utils.addRequiredOrNot(this.permission, this.validate ,validateObj ,this);\r\n    },\r\n    inputName: function() {\r\n      let labeldesc = \"\";\r\n      if(this.$slots && this.$slots.labeldesc && this.$slots.labeldesc[0].children && this.$slots.labeldesc[0].children[0].text){\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  },\r\n  mounted(){\r\n    const _me = this;\r\n    const exp = this.linkage;\r\n    if (exp && exp.length > 0 && (this.$parent.isView || this.$parent.$parent.$parent.isView)) {\r\n      const pInst = utils.getOnlineFormInstance(_me);\r\n      _me.traces = {};\r\n\r\n      exp.forEach(m => {\r\n          m.effect.forEach(m => {\r\n          const path = `permission.fields.${m.target}`;\r\n          const oldVal = utils.getValueByPath(pInst, path);\r\n          _me.traces[path] = oldVal;\r\n        });\r\n\r\n        _me.$watch(\r\n          \"inputVal\",\r\n          function(newVal, oldVal) {\r\n            if (newVal !== oldVal) {\r\n              // m.effect.forEach(ef => {\r\n              //     const p = `permission.fields.${ef.target}`;\r\n              //     let val = _me.traces[p];\r\n              //     _me.$store.dispatch(\"index/delValidate\",ef);\r\n              //     utils.setValueByPath(pInst, p, val);\r\n              //   });\r\n              newVal.forEach(newValue => {\r\n                if(newValue ===m.value){\r\n                  m.effect.forEach(ef => {\r\n                    const p = `permission.fields.${ef.target}`;\r\n                    let val = _me.traces[p];\r\n                    _me.$store.dispatch(\"index/linkageValidate\",ef);\r\n                    utils.setValueByPath(pInst, p, ef.type);\r\n                  });\r\n                }\r\n              });\r\n            }\r\n          },\r\n          { immediate: true }\r\n        );\r\n      });\r\n    }\r\n  },\r\n  created() {\r\n    this.options = this.cklist?JSON.parse(this.cklist):[];\r\n     if(this.ganged && this.ganged.alias && this.options.length<1){\r\n       this.$store.dispatch(\"form/getByAliasCq\", this.ganged.alias).then(res => {\r\n         this.config = res;\r\n         this.search();\r\n       });\r\n    }\r\n    if (this.value && this.value.indexOf(\"[\") != -1) {\r\n      var checkboxval = this.value.substr(0, this.value.length - 1);\r\n      checkboxval = checkboxval.substr(1);\r\n      var checkboxval2 = checkboxval.split(\",\");\r\n      var checkvalnew = [];\r\n      for (var i = 0; i < checkboxval2.length; i++) {\r\n        checkvalnew.push(checkboxval2[i].trim());\r\n      }\r\n      this.inputVal = checkvalnew;\r\n    }else if (this.value){\r\n      this.inputVal = [...this.value];\r\n    }\r\n    this.$validator = this.$root.$validator;\r\n  },methods:{\r\n    search(currentPage,param) {\r\n      if(!this.config)return;\r\n      var str = this.config;\r\n      const _this = this;\r\n      var ganged = this.ganged;\r\n      this.pageSize = str.pageSize;\r\n     // if(str.needPage === 1){\r\n        var pageBean = {\r\n          pageBean: { page: currentPage?currentPage:1, pageSize: str.pageSize, showTotal: \"true\" }\r\n        };\r\n        if(param){\r\n          if(str.dsType == \"dataSource\"){\r\n             let Base64 = require('js-base64').Base64;\r\n              str.currentPage = currentPage?currentPage:1;\r\n              if(JSON.stringify(ganged.bind) === '{}'){\r\n                str.queryData = Base64.encode(JSON.stringify([{\"key\":ganged.valueBind,\"value\":param}]));\r\n              }else{\r\n                var queryData=[];\r\n                  for(var key in ganged.bind){\r\n                    if(ganged.bind[key]){\r\n                      const pInst = utils.getOnlineFormInstance(_this);\r\n                      const val = utils.getValueByPath(pInst, ganged.bind[key]);\r\n                      if(val){\r\n                           queryData.push({\"key\":key,\"value\":val});\r\n                      }else{\r\n                        queryData.push({\"key\":key,\"value\":param});\r\n                      }\r\n                    }\r\n                  }\r\n                  str.queryData = Base64.encode(JSON.stringify(queryData));\r\n              }\r\n          }else{\r\n               var templatePa = this.config.dataParam;\r\n              if(this.config.requestType=='POST'&& templatePa){\r\n                var conditionfield=JSON.parse(str.conditionfield);\r\n                conditionfield.forEach(ele => {\r\n                       const pInst = utils.getOnlineFormInstance(_this);\r\n                      const val = utils.getValueByPath(pInst, ganged.bind[ele.field]);\r\n                      if(val){\r\n                          templatePa = templatePa.replace(new RegExp(\"\\\\{\"+ele.field+\"\\\\}\",\"g\"),val);\r\n                      }else{\r\n                        templatePa = templatePa.replace(new RegExp(\"\\\\{\"+ele.field+\"\\\\}\",\"g\"),param);\r\n                      }   \r\n                });\r\n              }else{\r\n\r\n              }\r\n            str.pageBean = utils.parseToJson(templatePa);\r\n          }\r\n        }else{\r\n          str.pageBean = pageBean;\r\n          str.currentPage = currentPage?currentPage:1;\r\n          str.queryData = \"\";\r\n        }\r\n      //}\r\n      this.$store.dispatch(\"form/selectQuery\", str).then(res => {\r\n       _this.total = res.total;\r\n       _this.options =[];\r\n                res.rows.forEach(m => {\r\n                    var option ={};\r\n                  if(_this.ganged.valueBind){\r\n                      option.value = m[ganged.valueBind];\r\n                  }\r\n                  if(_this.ganged.labelBind){\r\n                    option.key = m[ganged.labelBind];\r\n                  }\r\n                  _this.options.push(option);\r\n                });\r\n              });\r\n    }\r\n  }\r\n};\r\n",null]}