{"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\\flow\\task\\taskToReject.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\flow\\task\\taskToReject.vue","mtime":1667327529466},{"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//\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 { mapState, mapActions } from \"vuex\";\r\nimport { Message } from \"element-ui\";\r\nimport OpinionText from \"@/components/common/opinionText.vue\";\r\nimport FileUpload from \"@/components/common/fileUpload.vue\";\r\nimport utils from \"@/utils.js\";\r\nimport req from \"@/request.js\";\r\nexport default {\r\n name: \"taskToReject\",\r\n props: [\"taskId\", \"leaderId\", \"opinion\",\"opinionField\",\"appendOpinion\",\"instId\"],\r\n components: { OpinionText,FileUpload },\r\n data() {\r\n return {\r\n rejectTaskId:\"\",//要驳回的任务ID\r\n rejectDialog: false,\r\n radio: \"\",\r\n nodeId: \"\",\r\n backHandMode: \"normal\",\r\n token: utils.getUrlKey(\"token\"),\r\n canRejectNode: [],\r\n rejectConf: {},\r\n isSameNode: true,\r\n title: \"驳回\",\r\n fullscreenLoading: true,\r\n flowThis:\"\",//flowAction的this,\r\n boData:{},\r\n wrap: \"\\n\",\r\n initBoAttr:\"\",\r\n appendStr:true\r\n };\r\n },\r\n computed: {},\r\n watch: {\r\n backHandMode: function(n, o) {\r\n if (this.rejectConf.inSubProcess) {\r\n if (n == \"normal\") {\r\n this.radio = \"backToStart\";\r\n } else {\r\n this.radio = \"reject\";\r\n }\r\n }\r\n if (!this.isSameNode) {\r\n if (n == \"normal\") {\r\n this.canRejectNode = this.rejectConf.allowNormalNode;\r\n } else {\r\n this.canRejectNode = this.rejectConf.allowDirectNode;\r\n }\r\n let flag = false;\r\n this.canRejectNode.forEach(n => {\r\n if (n.nodeId == this.nodeId) {\r\n flag = true;\r\n return;\r\n }\r\n });\r\n if (!flag) {\r\n this.nodeId = \"\";\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n //鼠标点击页面其他其他位置不关闭弹框\r\n handleClose() {\r\n this.rejectDialog = true;\r\n },\r\n //执行前置脚本\r\n runBeforeScript(){\r\n let _this = this;\r\n let item = utils.indexOfList(_this.flowThis.rowsBtn, \"alias\", _this.flowThis.btnAlias);\r\n return _this.tempScript(item.beforeScript);\r\n },\r\n //执行前置脚本\r\n tempScript(script) {\r\n let _this = this;\r\n let _req = req;\r\n let boData = _this.flowThis.$refs.formContent.data;\r\n let tempScript = \"var tempFunction = function(_req,data,_this){ \" + script + \"};\";\r\n let result = eval(tempScript + \"tempFunction(_req,boData,_this);\");\r\n if (result && result.then && typeof result.then == \"function\") {\r\n return result;\r\n }\r\n if (result === false) return false;\r\n return true;\r\n },\r\n //打开驳回设置页面\r\n handleOpen(parentTaskId,_this) {\r\n if(this.opinionField && document.querySelector(\"[model-name='data.\"+this.opinionField+\"']\")){\r\n let con = document.querySelector(\"[model-name='data.\"+this.opinionField+\"']\").__vue__;\r\n if(con && con.isEditor){\r\n this.wrap = \"
\";\r\n }\r\n }\r\n this.boData = _this.$refs.formContent.data;\r\n if(parentTaskId){\r\n this.rejectTaskId = parentTaskId;\r\n }\r\n this.flowThis = _this;\r\n let data = { taskId: this.taskId, backModel: \"reject\" };\r\n let this_ = this;\r\n this.$store\r\n .dispatch(\"storeProcess/taskToReject\", data)\r\n .then(function(resp) {\r\n this_.rejectConf = resp;\r\n let normalNodeIds = [];\r\n resp.allowNormalNode.forEach(element => {\r\n normalNodeIds.push(element.nodeId);\r\n });\r\n if (resp.allowNormalNode) {\r\n resp.allowDirectNode.forEach(element => {\r\n if (normalNodeIds.indexOf(element.nodeId) < 0) {\r\n this_.isSameNode = false;\r\n }\r\n });\r\n }\r\n if (resp.inGateway) {\r\n this_.backHandMode = \"direct\";\r\n }\r\n if (this_.backHandMode == \"normal\") {\r\n this_.canRejectNode = resp.allowNormalNode;\r\n } else {\r\n this_.canRejectNode = resp.allowDirectNode;\r\n }\r\n\r\n // 只有驳回发起人的情况\r\n if (\r\n this_.rejectConf.canRejectToStart &&\r\n !this_.rejectConf.canRejectPreAct &&\r\n !this_.rejectConf.canRejectToAnyNode\r\n ) {\r\n this_.radio = \"backToStart\";\r\n this_.rejectDialog = true;\r\n this_.fullscreenLoading = false;\r\n return;\r\n }\r\n // 只有驳回上一步的情况\r\n if (\r\n !this_.rejectConf.canRejectToStart &&\r\n this_.rejectConf.canRejectPreAct &&\r\n !this_.rejectConf.canRejectToAnyNode\r\n ) {\r\n this_.radio = \"rejectPre\";\r\n this_.rejectDialog = true;\r\n this_.fullscreenLoading = false;\r\n return;\r\n }\r\n\r\n // 只有驳回指定节点的情况并且指定节点只有一个\r\n if (\r\n !this_.rejectConf.canRejectToStart &&\r\n !this_.rejectConf.canRejectPreAct &&\r\n this_.rejectConf.canRejectToAnyNode &&\r\n this_.canRejectNode.length == 1\r\n ) {\r\n this_.nodeId = this_.canRejectNode[0].nodeId;\r\n this_.radio = \"reject\";\r\n this_.rejectDialog = true;\r\n this_.fullscreenLoading = false;\r\n return;\r\n }\r\n if(this_.rejectConf.canRejectToStart && (this_.backHandMode =='normal' || !this_.rejectConf.inSubProcess)){\r\n this_.radio = \"backToStart\";\r\n }else if(!this_.rejectConf.afterGateway && !this_.rejectConf.inGateway && !this_.rejectConf.inSubProcess && this_.rejectConf.canRejectPreAct){\r\n this_.radio = \"rejectPre\";\r\n }else if(this_.rejectConf.canRejectToAnyNode && (!this_.rejectConf.inSubProcess || this_.backHandMode !='normal' )){\r\n this_.radio = \"reject\";\r\n this_.isNode = true;\r\n }\r\n this_.title = \"驳回设置\";\r\n this_.rejectDialog = true;\r\n this_.fullscreenLoading = false;\r\n });\r\n },\r\n //取消\r\n cancel() {\r\n this.rejectDialog = false;\r\n this.$refs.opinionText.opinion = \"\";\r\n },\r\n //确认\r\n confirm() {\r\n if (!this.radio) {\r\n Message.warning(\"请选择驳回方式\");\r\n return;\r\n }\r\n if (this.radio == \"reject\" && !this.nodeId) {\r\n Message.warning(\"请选择驳回节点\");\r\n return;\r\n }\r\n if (!this.opinion && this.$refs.opinionText.getOpinion() == \"\") {\r\n Message.warning(\"请填写驳回意见\");\r\n return;\r\n }\r\n utils\r\n .getOnlineFormData(true)\r\n .then(formDataStr => this.submitConfirm(formDataStr))\r\n .catch(reason =>\r\n utils.handleGetFormDataReject(reason).then(() => this.submitConfirm())\r\n );\r\n },\r\n submitConfirm(formDataStr) {\r\n let _this = this;\r\n let scriptResult = this.runBeforeScript();\r\n //执行前置脚本返回false时终止按钮操作\r\n if (scriptResult === false) return;\r\n //执行前置脚本返回的接口时先执行前置事件接口\r\n if (scriptResult.then && typeof scriptResult.then == \"function\") {\r\n scriptResult.then(() => {\r\n //接口返回成功则正常执行按钮操作\r\n _this.funcDoNext(formDataStr);\r\n }, (fail) => {\r\n //接口返回失败则终止按钮操作,并给与提示\r\n _this.$message.warning(fail);\r\n return;\r\n }\r\n );\r\n } else {\r\n //执行前置脚本返回true时正常执行按钮操作\r\n _this.funcDoNext(formDataStr);\r\n }\r\n },\r\n funcDoNext(formDataStr){\r\n utils.closeAllNotification();\r\n if (formDataStr && formDataStr.constructor != String) {\r\n formDataStr = JSON.stringify(formDataStr);\r\n }\r\n if (this.radio == \"rejectPre\") {\r\n this.nodeId = \"\";\r\n }\r\n let files = this.$refs.FileUpload.getFiles();\r\n if(files != \"\"){\r\n files = JSON.stringify(files);\r\n } \r\n this.$refs.FileUpload.isFinishUpload();\r\n let data = {\r\n taskId: this.taskId,\r\n rejectTaskId:this.rejectTaskId,\r\n actionName: this.radio == \"rejectPre\" ? \"reject\" : this.radio,\r\n backHandMode: this.backHandMode,\r\n opinion: this.opinion || this.$refs.opinionText.getOpinion(),\r\n destination: this.nodeId,\r\n agentLeaderId: this.leaderId,\r\n files: files\r\n };\r\n if (window.urgentStateValue) {\r\n data.urgentStateValue = window.urgentStateValue;\r\n }\r\n if (formDataStr) {\r\n data.data = Base64.encode(formDataStr);\r\n }\r\n data.formKey=this.flowThis.$refs.formContent.formKey\r\n\r\n this.$loading();\r\n this.$store.dispatch(\"storeProcess/rejectComplete\", data).then(() => {\r\n this.$loading().close();\r\n this.rejectDialog = false;\r\n if (this.token != null) {\r\n window.close();\r\n } else {\r\n this.$parent.nextTask();\r\n //this.$router.go(-1);\r\n }\r\n });\r\n },\r\n //获取意见\r\n getOpinion(opinion) {\r\n this.text = opinion;\r\n let opinioValue=this.$refs.opinionText.getOpinion();\r\n if(this.opinionField && document.querySelector(\"[model-name='data.\"+this.opinionField+\"']\")){\r\n let currentUser= this.$store.state.user.currentUserDetail.user;\r\n let moment = require(\"moment\");\r\n\r\n let boData = this.boData;\r\n let filed=this.opinionField.split(\".\");\r\n if(boData[filed[0]][filed[1]] == '


'){\r\n boData[filed[0]][filed[1]] = \"\";\r\n }\r\n //是否覆盖审批意见\r\n if (this.appendOpinion){\r\n if (opinioValue){boData[filed[0]][filed[1]]=opinioValue+this.wrap+currentUser.fullname+\" \"+moment().format(\"YYYY-MM-DD HH:mm:ss\");\r\n }\r\n }else{\r\n if (opinioValue){\r\n opinioValue+=this.wrap+currentUser.fullname+\" \"+moment().format(\"YYYY-MM-DD HH:mm:ss\");\r\n }\r\n if (this.appendStr){\r\n this.initBoAttr=boData[filed[0]][filed[1]];\r\n }\r\n if (filed.length==2){\r\n if(this.initBoAttr){\r\n if(opinion){\r\n boData[filed[0]][filed[1]]=this.initBoAttr+this.wrap+this.wrap+opinioValue;\r\n }else{\r\n boData[filed[0]][filed[1]]=this.initBoAttr\r\n }\r\n }else{\r\n boData[filed[0]][filed[1]]=opinioValue;\r\n }\r\n }\r\n this.appendStr=false;\r\n }\r\n /*else if (filed.length==3 &&boData[filed[0]][filed[1]].length>0){//处理子表\r\n for (let i = 0; i