{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\flow\\FlowNodeBtns.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\flow\\FlowNodeBtns.vue","mtime":1675071991803},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\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//\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//\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//\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 req from \"@/request.js\";\r\nimport { mapState, mapActions } from \"vuex\";\r\nimport { Message } from 'element-ui';\r\nexport default {\r\n  name:\"FlowNodeBtns\",\r\n  components: {},\r\n  props: {\r\n    //任务节点信息\r\n    node:{\r\n      type: Object,\r\n      required: true\r\n    },\r\n    //流程配置信息\r\n    defConfigData:{\r\n      type: Object,\r\n      required: true\r\n    },\r\n  },\r\n  data() {\r\n    return {\r\n      titleSetting:\"设置按钮\",//某个节点按钮的标题\r\n      nodeBtns:[],//单个节点按钮的配置信息\r\n      dialogVisibleSetting:false,//是否显示设置节点按钮侧边栏\r\n      buttonList:[],//节点按钮已有的按钮\r\n      buttonNoInitList:[],//节点按钮可新增的按钮\r\n      btn:{},//单个节点按钮的配置信息\r\n      cmOptions1: {\r\n          value: \"\",\r\n          mode: \"vue\",\r\n          readOnly: false,\r\n          smartIndent:true,\r\n          tabSize: 1,\r\n          theme: 'base16-light',\r\n          lineNumbers: true,\r\n          line: true,\r\n        },\r\n      cmOptions2: {\r\n          value: \"\",\r\n          mode: \"groovy\",\r\n          readOnly: false,\r\n          smartIndent:true,\r\n          tabSize: 1,\r\n          theme: 'base16-light',\r\n          lineNumbers: true,\r\n          line: true,\r\n        },\r\n      showCodeEdie:true,\r\n      codemirrorStyle:'width:'+((document.body.clientWidth*0.7-40)*0.63-180)+'px',\r\n    };\r\n  },\r\n  methods: {\r\n    //判断按钮是否已经存在。\r\n    isAliasExist(nBtn){\r\n        for(let i=0,btn;btn=this.buttonList[i++];){\r\n            if(btn.alias==nBtn.alias && this.btn !== btn){\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    },\r\n    //选择节点按钮可新增的按钮时\r\n    changeButtonType(obj){\r\n        if(obj.alias){\r\n            let rtn=this.isAliasExist(obj);\r\n            if(rtn){\r\n                obj.alias=\"\";\r\n                Message.warning(\"新增的按钮已存在\");\r\n                return;\r\n            }\r\n            obj.status=1;\r\n            obj.name=this.getName(obj.alias);\r\n        }\r\n        else{\r\n            obj.status=2;\r\n        }\r\n    },\r\n    //根据按钮别名获取按钮名称\r\n    getName(alias){\r\n        for(let i=0;i<this.buttonNoInitList.length;i++){\r\n            let obj=this.buttonNoInitList[i];\r\n            if(alias==obj.alias){\r\n                return obj.name;\r\n            }\r\n        }\r\n        return \"\";\r\n    },\r\n    //点击列表某一条数据时触发  groovyScript beforeScript\r\n    orgRowClick(row, column, event) {\r\n      if(column.label !=\"操作\"){\r\n        row.groovyScript =  row.groovyScript || '';\r\n        row.beforeScript =  row.beforeScript || '';\r\n        let this_ =this;\r\n        this.showCodeEdie = false;\r\n        setTimeout(function(){\r\n           this_.$set(this_,'btn',row);\r\n           this_.showCodeEdie = true;\r\n        },50)\r\n      }\r\n    },\r\n    //保存按钮\r\n    saveButton(){\r\n      const this_ = this;\r\n      this_.$validator.validateAll(\"settingSave\").then(result => {\r\n        if (result) {\r\n          let param = {\r\n            nodeId:this_.node.nodeId,\r\n            defId:this_.defConfigData.initData.bpmDefLayout.defId//流程定义ID\r\n          };\r\n          param.btns = this_.buttonList;//任务的节点按钮\r\n          let btnArr=[]\r\n          for(let i=0,b;b=param.btns[i++];){\r\n              if(b.alias && b.name){\r\n                if(b.alias == 'reject' && !b.rejectMode ){\r\n                  Message.warning(\"驳回按钮中的驳回模式至少选择一种\");\r\n                  return ;\r\n                }\r\n                  delete b.status;\r\n                  btnArr.push(b);\r\n              }\r\n          }\r\n          param.btns=btnArr;\r\n          //保存节点按钮\r\n          req.post(\"${bpmModel}/flow/def/v1/saveNodeBtns\",param).then(res=>{\r\n            if(res.data.state){\r\n              Message.success(res.data.message);\r\n              this_.dialogVisibleSetting = false;//关闭侧边栏\r\n              this_.nodeBtns = [...btnArr];\r\n            }\r\n          });\r\n        } else {\r\n          let arr = this_.$validator.errors.items.filter(item=>item.scope==\"settingSave\");\r\n          let errorLength = arr.length;\r\n          this_.$message({\r\n            showClose: true,\r\n            message: `有${errorLength}个字段未通过校验，请正确填写表单内容。`,\r\n            type: \"warning\"\r\n          });\r\n        }\r\n       });\r\n    },\r\n    //新增按钮\r\n    addButton(){\r\n      let btn = {name:\"\",alias:\"\",status:2,supportScript:true};\r\n      this.buttonList.push(btn);\r\n      this.btn =btn;\r\n    },\r\n    //编辑任务节点按钮\r\n    editBtns(nodeId){\r\n      this.dialogVisibleSetting = true;//显示设置节点按钮侧边栏\r\n      this.titleSetting = \"设置按钮-\"+this.node.name+\"(\"+this.node.nodeId+\")\";//设置某个节点按钮的标题\r\n      this.getButtons(1);//获取已有的按钮\r\n      this.getButtons(2);//获取节点按钮可新增的按钮\r\n    },\r\n    //获取节点按钮  type：0-初始化的按钮，1-已有的按钮，2-可新增的按钮\r\n    getButtons(action){\r\n      const this_ = this;\r\n      let defId = this_.defConfigData.initData.bpmDefLayout.defId;//流程定义ID\r\n      req.post(\"${bpmModel}/flow/def/v1/getNodeSet?defId=\"+defId+\"&nodeId=\"+this_.node.nodeId+\"&action=\"+action).then(function(data){\r\n        data = data.data\r\n        //屏蔽一些多余的按钮配置\r\n        for(let i=data.length-1;i>=0;i--){\r\n            if(data[i].alias==\"commu\" || data[i].alias==\"startCommu\"\r\n                || data[i].alias==\"instanceTrans\" || data[i].alias==\"backToStart\"){\r\n                data.splice(i,1);\r\n            }\r\n        }\r\n        if(action==2){\r\n            this_.setStatus(data,2);\r\n            this_.buttonNoInitList=data;\r\n        }else if(action==1){\r\n            this_.setStatus(data,1);\r\n            this_.buttonList=data;\r\n        }else if(action==0){\r\n            this_.setStatus(data,0);\r\n            this_.buttonList=data;\r\n            this_.btn={};//清空单个节点按钮的配置信息\r\n            Message.success(\"初始化成功\");\r\n        }\r\n      });\r\n    },\r\n    //按钮状态 0-初始化的按钮，1-已有的按钮，2-可新增的按钮\r\n    setStatus(data,status){\r\n        for(let i=0;i<data.length;i++){\r\n            data[i].status=status;\r\n        }\r\n    },\r\n    //关闭设置节点按钮列弹框\r\n    close(){\r\n       this.dialogVisibleSetting=false;\r\n    },\r\n    //删除按钮\r\n    deleteSetting(list,index){\r\n      list.splice(index,1);\r\n      this.btn={};//清空单个节点按钮的配置信息\r\n    },\r\n  },\r\n  mounted() {\r\n    this.$validator = this.$root.$validator;\r\n    this.nodeBtns = this.defConfigData.nodeSetData.nodeBtnMap[this.node.nodeId];//获取单个节点按钮的配置信息\r\n  }\r\n};\r\n",null]}