{"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\\taskToComplete.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\flow\\task\\taskToComplete.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\r\nimport OpinionText from \"@/components/common/opinionText.vue\";\r\nimport FileUpload from \"@/components/common/fileUpload.vue\";\r\nimport flow from \"@/api/flow.js\";\r\nimport { mapState } from \"vuex\";\r\nimport { Base64 } from \"js-base64\";\r\nexport default {\r\n  name: \"taskToComplete\",\r\n  props: [\r\n    \"taskId\", \r\n    \"leaderId\", \r\n    \"opinion\",\r\n    \"action\",\r\n    \"instId\",\r\n    \"signatureField\", //自动签章字段\r\n    \"signatureCover\", //自动签章是否覆盖\r\n    \"secretFree\", //自动签章时是否免密\r\n    ],\r\n  components: {\r\n    OpinionText,\r\n    FileUpload\r\n  },\r\n  data() {\r\n    return {\r\n      dialogVisible: false,\r\n      dialogTitle: \"\",\r\n      text:\"\",\r\n      boData:{},\r\n      opinionField:\"\",\r\n      appendOpinion:false,\r\n      data:{},\r\n      appendStr:true,\r\n      wrap: \"\\n\",\r\n      initBoAttr:\"\",\r\n      signaturePassword:\"\",\r\n      isSignatureCallBack: false,\r\n      signatureLoading: null,\r\n    };\r\n  },\r\n  computed: mapState({\r\n    signatureStatus: state =>state.storeProcess.signatureConfig.status,\r\n  }),\r\n  watch: {\r\n    signatureStatus: function (newVal, oldVal) {\r\n      if(newVal != 'start'){\r\n        this.isSignatureCallBack = true;\r\n      }\r\n      if(newVal === 'success' && oldVal === 'ing' ){\r\n        this.doConfirm();\r\n      }else if(newVal === 'success' && oldVal === 'fail' ){\r\n\r\n      }\r\n      if(this.signatureLoading != null){\r\n        this.signatureLoading.close();\r\n      }\r\n    },\r\n  },\r\n  methods: {\r\n    showDialog(opinionField,boData,appendOpinion,completeData) {\r\n      this.dialogVisible = true;\r\n      if(this.action == \"agree\" || this.action == \"agreeTrans\"){\r\n        this.dialogTitle = \"审批同意\";\r\n      }else if(this.action == \"oppose\" || this.action == \"opposeTrans\"){\r\n        this.dialogTitle = \"审批反对\";\r\n      }\r\n      this.data = completeData;\r\n      this.opinionField = opinionField;\r\n      this.boData = boData;\r\n      this.appendOpinion = appendOpinion;\r\n      \r\n    },\r\n    afterOpen(){\r\n      if(this.opinionField){\r\n        let con = document.querySelector(\"[model-name='data.\"+this.opinionField+\"']\");\r\n        if(con && con.__vue__ && con.__vue__.isEditor){\r\n          this.wrap = \"<br>\";\r\n        }\r\n      }\r\n      let param = {instId:this.instId,taskId:this.taskId};\r\n      flow.getBpmSaveOpinionByTeam(param).then(resp=>{\r\n        if(resp.state && resp.value){\r\n          this.getOpinion(resp.value);\r\n        }else{\r\n          if(this.action == \"agree\" || this.action == \"agreeTrans\"){\r\n            this.getOpinion(\"同意\");\r\n          }else if(this.action == \"oppose\" || this.action == \"opposeTrans\"){\r\n            this.getOpinion(\"反对\");\r\n          }\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){\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]] == '<p><br/></p>'){\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 <boData[filed[0]][filed[1]].length ; i++) {\r\n            boData[filed[0]][filed[1]][i][filed[2]]=opinioValue;\r\n          }\r\n        }*/\r\n      }\r\n    },\r\n    cancel() {\r\n      this.dialogVisible = false;\r\n      this.getOpinion(\"\");\r\n    },\r\n    confirm(){\r\n      if(this.action == \"agree\" && this.signatureField){\r\n        let _this = this;\r\n        this.isSignatureCallBack = false;\r\n        this.$store.dispatch(\"storeProcess/initSignature\", {}).then(rep => {});//点同意按钮先初始化状态\r\n        this.$store.dispatch(\"storeProcess/doSignature\", {\r\n          status: 'start',\r\n          field: this.signatureField,\r\n          isCover: this.signatureCover,\r\n          secretFree: this.secretFree,\r\n          password: this.signaturePassword,\r\n        })\r\n        .then(rep => {\r\n          _this.signatureLoading = this.$loading({\r\n            lock: true,\r\n            text: '正在进行签章处理...',\r\n            spinner: 'el-icon-loading',\r\n            background: 'rgba(0, 0, 0, 0.7)'\r\n          });\r\n           // 设置5秒超时机制，如果超时则弹出提示\r\n            setTimeout(function () {\r\n              _this.signatureLoading.close();\r\n              if (_this.isSignatureCallBack == false) {\r\n                   _this.$message({type:\"warning\",message:\"签章处理超时，请联系管理员确定是否配置签章控件。\"})\r\n                   return ;\r\n              }\r\n            }, 5000);\r\n        });\r\n      }else{\r\n        this.doConfirm();\r\n      }\r\n    },\r\n    doConfirm(){\r\n      if (this.$refs.fileUpload.getFiles() != \"\") {\r\n        this.data.files = JSON.stringify(this.$refs.fileUpload.getFiles());\r\n      }\r\n      if(this.$refs.opinionText.getOpinion()){\r\n        this.data.opinion = this.$refs.opinionText.getOpinion();\r\n      }else{\r\n        this.$message({type:\"warning\",message:\"请输入审批意见\"})\r\n        return ;\r\n      }\r\n      this.data.data = Base64.encode(JSON.stringify(this.boData))\r\n      this.$store.dispatch(\"storeProcess/complete\", this.data).then(()=>{\r\n        //this.$parent.nextTask();\r\n        // this.$emit(\"nextTask\");\r\n        this.$router.go(-1)\r\n      })\r\n    }\r\n  },\r\n  mounted () {\r\n    \r\n  },\r\n};\r\n",null]}