{"remainingRequest":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/src/components/form_flowpanel.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/src/components/form_flowpanel.vue","mtime":1740130327256},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/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//\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\nimport { Toast } from \"mint-ui\";\n// import { Toast } from \"vant\";\nimport { Indicator } from \"mint-ui\";\nimport { MessageBox } from 'mint-ui';\nimport API from \"@/api.js\";\n // \"buildFormData\"\nexport default {\n props: [\n \"stateId\", \n \"act\", \n \"approverName\", \n \"submitTo\", \n \"nextUserId\",\n \"subFlowApproverData\", //子流程-并行流程的数据\n \"subFlowGroup\",\n \"openParams\"\n ],\n inject: ['getBuildFormData'],\n data: function() {\n return {\n showPicker: false,\n nextNodeIds: undefined,\n selectData: [],\n isSplit: true,\n signMode: \"TEXT\", //意见填写模式,SIGN:手写 TEXT:文本输入\n suggestBoxVisible: false,\n attitude: \"\",//意见的值\n input: \"\", //单选框数据\n\n showInput: false, //是否展示添加常见意见框 开始false\n showEditFirst: false, //展示编辑意见框\n\n showDelAndEdit: false, //开始false\n allSuggests: [],\n showEditSecond: false, //开始false\n inputSecond: \"\",\n opinionId: \"\", //更新意见信息的ID\n flowId: \"\", //当前流程ID\n currentNodeId: \"\",\n existCanvas: false, //是否存在手写签名\n popupVisible: true,\n isToPerson: \"\",\n processType: \"\", //流程类型\n firstSubmission: true,\n isAppentCirculator: \"\", //是否抄送\n isAppentData:{},\n documentData:'',\n htmlExparams:'',\n selectFlowType: '', //当前选中的流程的类型\n processNodes: [], //流程启动按钮的节点\n currentProcessNodes: [],\n selectProcessNode: \"\", //流程启动按钮下拉框选择的值\n selectProcessNodeUserRadio: \"\",\n buildFormData:'',\n canvasHeight: window.innerHeight*0.6 - 82 - 42, //弹框占屏幕60% 82为提交至和审批节点的高度 42为手签重写确认按钮的高度\n canvasWidth: window.innerWidth,\n };\n },\n\n watch: {\n submitTo() {\n this.newSelectData();\n },\n subFlowApproverData() {\n this.setSubflowselectData();\n },\n },\n created() {\n let saveAttitude = localStorage.getItem(\"saveAttitude\")//获取缓存中提交面板的意见数据\n if(saveAttitude) {\n saveAttitude = JSON.parse(saveAttitude)\n this.attitude = saveAttitude.attitude\n }\n },\n destroyed() {\n let obj = {\n attitude: this.attitude,\n selectData: this.selectData\n } \n localStorage.setItem(\"saveAttitude\", JSON.stringify(obj)) //提交面板消失前保存意见的数据到缓存中\n },\n mounted() {\n let act = this.act;\n if(act.type == 33) {\n this.setNodes(this.act.type);\n }else {\n this.getSubmission();\n this.show()\n // this.$nextTick(() => {\n // setTimeout(() => {\n // this.show()\n // }, 2000)\n // })\n }\n this.getSuggest();\n },\n updated(){\n let act = this.act;\n if(act.type != 33) {\n // this.resizeCanvas();\n }\n },\n methods: {\n onClickFlowStart() {\n if (!this.selectProcessNode) {\n Toast(\"未选择数据\");\n } else {\n let nextId = this.selectProcessNodeUserRadio;\n let formData = this.buildFormData;\n formData.stateId = this.stateId;\n let docId = formData.id,\n id = formData.id;\n let formId = formData.formId;\n let appId = this.openParams.appId;\n let document = {\n applicationId: appId,\n actId: this.act.id,\n docId: docId,\n document: formData,\n flowId: this.selectProcessNode,\n formId: formId,\n id: id,\n nextId,\n parentId: \"\",\n templateForm: \"\",\n viewId: \"\",\n };\n this.$api.InitiateWorkFlow(appId, docId, document, {\n onSucess: (response) => {\n let status;\n if (response.data.errcode == 0) {\n status = \"SUCCESS\";\n this.$emit(\"closePopup\", status);\n let prompt = response.data.data;\n Toast({\n message: prompt,\n iconClass: 'fa fa-check fa-2x'\n });\n // this.runAfterAction(status, prompt);\n // this.$emit(\"closePopup\", status);\n } else if (response.data.errcode == 4001) {\n status = \"ERROR\";\n this.$emit(\"closePopup\", status);\n }\n },\n });\n }\n },\n onConfirm(value) {\n let cpn = value.firstNodeList;\n this.currentProcessNodes = cpn;\n this.selectProcessNode = value.id;\n if(cpn.length > 0) {\n this.selectProcessNodeUserRadio = cpn[0].id;\n }\n this.showPicker = false;\n },\n //催办数据\n setNodes() {\n let appId = this.openParams.appId;\n let formData = this.getBuildFormData()//this.$parent.$parent.$parent.buildFormData();\n this.buildFormData = formData;\n // let formData = this.buildFormData;\n formData.stateId = this.stateId;\n let docId = formData.id,\n id = formData.id;\n let formId = formData.formId;\n let document = {\n applicationId: appId,\n docId: docId,\n document: formData,\n formId: formId,\n id: id,\n parentId: \"\",\n templateForm: \"\",\n viewId: \"\",\n };\n this.$api.getPanelsInitiate(appId, docId, document, {\n onSucess: (res) => {\n let list = res.data.data.map(item => {\n return {\n id: item.id,\n firstNodeList: item.firstNodeList,\n text: item.subject\n };\n });\n this.processNodes = list;\n },\n });\n },\n\n show() {\n // 准备手写签名画布\n this.canvas = this.$refs.canvas; //指定canvas\n this.ctx = this.canvas.getContext(\"2d\"); //设置2D渲染区域\n // this.ctx.fillStyle = \"#fff\";\n this.ctx.fillStyle = \"#f6f6f6\";\n let w = window.innerWidth\n let h = window.innerHeight*0.6 - 82 - 42 //弹框占屏幕60% 82为提交至和审批节点的高度 42为手签重写确认按钮的高度\n this.ctx.fillRect(0, 0, w, h);\n //this.ctx.lineWidth = 1;//设置线的宽度\n },\n\n setSubflowselectData() {\n for (let i = 0; i < this.selectData.length; i++) {\n if (this.selectData[i].id == this.subFlowApproverData.nodeid) {\n this.selectData[i].approverName = this.approverName;\n this.selectData[i].subFlowApproverData = this.subFlowApproverData;\n }\n }\n this.$forceUpdate() //重新渲染数据\n },\n\n newSelectData() {\n for (let i = 0; i < this.selectData.length; i++) {\n if (this.selectData[i].id == this.submitTo.nodeid) {\n this.selectData[i].approverName = this.approverName;\n this.selectData[i].submitTo = this.submitTo;\n }\n }\n if(this.submitTo.isAppentCirculator) {\n this.isAppentData.approverName = this.approverName;\n this.isAppentData.circulatorInfo = this.submitTo.userids;\n this.isAppentData.submitTo = this.submitTo;\n }\n this.$forceUpdate() //重新渲染数据\n },\n \n resizeCanvas(){\n this.canvas.width = window.innerWidth;\n },\n\n handleSelectionChange(e, item) {\n this.selectFlowType = item.type;\n },\n\n select() {\n let isFreeFlow = true;\n this.$emit(\"action\", \"\", \"\", isFreeFlow); //调用父组件designatedApprover()方法\n },\n\n //指定审批人\n selectApprovers(isToPerson, nodeid, submitTo , approverNumType, isAppentCirculator, groupNum, item) {\n if((groupNum && groupNum>1) || groupNum == -1) { //子流程分组\n let approversObj = {\n isToPerson: isToPerson,\n nodeid:nodeid,\n groupNum:groupNum,\n }\n if(isAppentCirculator) {\n approversObj.isAppentCirculator = isAppentCirculator;\n }\n let saveApprover = submitTo;\n let subFlowGroup = [];\n if(this.subFlowGroup && this.subFlowGroup.length > 0) {\n subFlowGroup = [...this.subFlowGroup];\n } \n this.$emit(\"showSubFlow\",approversObj, this.flowId, \"\", saveApprover, approverNumType, isAppentCirculator, groupNum, subFlowGroup);\n }else {\n let approversObj = {\n isToPerson: isToPerson,\n nodeid:nodeid,\n }\n if(isAppentCirculator) {\n approversObj.isAppentCirculator = isAppentCirculator;\n }\n let saveApprover = submitTo;\n this.$emit(\"action\",approversObj, this.flowId, \"\", saveApprover, approverNumType, isAppentCirculator, item); //调用父组件designatedApprover()方法\n }\n \n //清除画布数据\n },\n \n clear() {\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.existCanvas = false;\n },\n\n touchStart(ev) {\n ev = ev || event;\n ev.preventDefault();\n this.canvasMoveUse = true;\n let rect = this.$refs.canvas.getBoundingClientRect();\n if (ev.touches.length == 1) {\n let obj = {\n x: ev.targetTouches[0].clientX,\n y: ev.targetTouches[0].clientY\n };\n const canvasX = obj.x - this.$refs.canvas.offsetLeft;\n const canvasY = obj.y - rect.top;\n this.ctx.beginPath(); // 移动的起点\n this.ctx.moveTo(canvasX, canvasY);\n }\n },\n\n touchMove(ev) {\n if (this.canvasMoveUse) {\n // 只有允许移动时调用\n let rect = this.$refs.canvas.getBoundingClientRect();\n if (ev.touches.length == 1) {\n let obj = {\n x: ev.targetTouches[0].clientX,\n y: ev.targetTouches[0].clientY\n };\n let canvasX;\n let canvasY;\n canvasX = obj.x - this.$refs.canvas.offsetLeft;\n canvasY = obj.y - rect.top;\n this.ctx.lineTo(canvasX, canvasY);\n this.ctx.stroke();\n }\n }\n },\n\n touchEnd(ev) {\n this.existCanvas = true;\n this.canvasMoveUse = false;\n },\n\n getSignImageData() {\n if (this.existCanvas) {\n //判断是否存在手写签名\n let pJson;\n let canvas = document.getElementById(\"canvas\");\n let signature = canvas.toDataURL(\"image/png\");\n let str = signature.replace(\"data:image/png;base64,\", \"\");\n pJson = {\n type: \"image/png;base64\",\n data: str\n };\n return pJson;\n } else {\n return false;\n }\n },\n\n //提交\n onSubmit() {\n let appId = this.openParams.appId || this.$root.appid;\n let arrayIuput = document.getElementsByTagName('input');\n let arrayTextA = document.getElementsByTagName('textarea');\n let htmlArr = [];\n if(arrayIuput.length > 0) {\n for(let i=0; i 0) {\n for(let i=0; i 0) {\n for(let i=0; i 0 || this.act.workFlowType == 1) {\n if (this.firstSubmission) { //当提交时,确定按钮禁止再次点击提交\n this.firstSubmission = false;\n let status = \"\";\n if (this.isToPerson) { //当要选择指定审批人时\n if (this.isSplit) {\n //多选\n if (this.nextNodeIds.length > 0) {\n for (let i = 0; i < this.nextNodeIds.length; i++) {\n for (let j = 0; j < this.selectData.length; j++) {\n if (this.nextNodeIds[i] == this.selectData[j].id) {\n if (this.selectData[j].type != \"CompleteNode\") {\n if (!this.selectData[j].submitTo) {\n if(this.selectData[j].isToPerson) {\n Toast({\n message: this.$t('noReviewer'),\n iconClass: \"fa fa-close fa-2x\"\n });\n status = \"ERROR\";\n this.$emit(\"closePopup\", status);\n return;\n }\n }\n }\n }\n }\n }\n } else if (this.nextNodeIds.length == 0) {\n Toast({\n message: this.$t('noReviewer'),\n iconClass: \"fa fa-close fa-2x\"\n });\n status = \"ERROR\";\n this.$emit(\"closePopup\", status);\n return;\n }\n } else {\n //单选\n if (this.nextNodeIds) {\n for (let y = 0; y < this.selectData.length; y++) {\n if (this.nextNodeIds == this.selectData[y].id) {\n if (this.selectData[y].type != \"CompleteNode\") {\n if (!this.selectData[y].submitTo && !this.selectData[y].subFlowApproverData) {\n if(this.selectData[y].isToPerson) {\n Toast({\n message: this.$t('noReviewer'),\n iconClass: \"fa fa-close fa-2x\"\n });\n status = \"ERROR\";\n this.$emit(\"closePopup\", status);\n return;\n }\n }\n }\n }\n }\n } else {\n Toast({\n message: this.$t('noReviewer'),\n iconClass: \"fa fa-close fa-2x\"\n });\n status = \"ERROR\";\n this.$emit(\"closePopup\", status);\n return;\n }\n }\n }\n\n if (this.nextNodeIds instanceof Array) { //多选但没有指定审批人没有选择审批人时\n if(this.nextNodeIds.length < 1) {\n Toast(this.$t('selectApprover'));\n this.firstSubmission = true;\n return;\n }\n }\n\n if (this.act.workFlowType == 1) {\n if (!this.nextUserId) {\n Toast({\n message: this.$t('noReviewer'),\n iconClass: \"fa fa-close fa-2x\"\n });\n status = \"ERROR\";\n this.$emit(\"closePopup\", status);\n return;\n }\n }\n\n let pJson = this.getSignImageData();\n //let formData = this.$parent.$parent.$parent.$parent.$parent.buildFormData();\n let formData = this.buildFormData;\n formData.stateId = this.stateId;\n if(this.htmlExparams) {\n formData.exparams = this.htmlExparams;\n }\n let docId = formData.id,\n id = formData.id;\n let formId = formData.formId;\n let document = {\n applicationId: appId,\n currentNodeId: this.currentNodeId,\n docId: docId,\n document: formData,\n flowId: this.flowId,\n formId: formId,\n id: id,\n parentId: \"\",\n templateForm: \"\",\n viewId: \"\"\n };\n\n if(this.isAppentCirculator) { //判断是否抄送\n if(this.isAppentData.circulatorInfo) {\n document.circulatorInfo = this.isAppentData.circulatorInfo;\n }\n }\n\n Indicator.open({\n text: this.$t('submitting'),\n spinnerType: \"fading-circle\"\n });\n \n if (pJson) {\n //手写签名\n document.signatureJson = JSON.stringify(pJson);\n }\n this.documentData = document; //保存值放到执行后脚本\n document.attitude = this.attitude;\n let isRelate = '';\n let _flowType = this.act.flowType; //提交为80\n //非自由流程\n document.subFlowApprover = []; //多种流程处理方式,此数据为完善未完善\n document.submitTo = [];\n //流程单选或多选\n if (this.nextNodeIds instanceof Array) {\n //多选\n let checkArr = [];\n document.nextNodeIds = this.nextNodeIds;\n for (let j = 0; j < this.nextNodeIds.length; j++) {\n for (let y = 0; y < this.selectData.length; y++) {\n if (\n this.nextNodeIds[j] == this.selectData[y].id &&\n this.selectData[y].submitTo\n ) {\n delete this.selectData[y].submitTo.row;\n document.submitTo.push(this.selectData[y].submitTo);\n if (this.selectData[y].type == \"SubFlow\") {\n //主子流程\n // let checkObj = Object.assign({}, this.selectData[y].submitTo);\n // delete checkObj.isToPerson;\n // checkArr.push(checkObj);\n let checkSubmit = this.selectData[y].submitTo;\n let approver = [];\n if(checkSubmit.userids) {\n let list = checkSubmit.userids.replace(/^(\\s|;)+|(\\s|;)+$/g, '')\n let useridList = list.split(\";\");\n for(let z=0; z {\n if (response.data.errcode == 0) {\n if(response.data.data) {\n let resData = response.data.data\n if(!resData.type) { //没有type值,但是有返回数据,把数据放进document\n if(resData.changedField) {\n let items = document.document.items;\n let resDataItem = resData.changedField;\n if(resDataItem) {\n for(let key in items) {\n for(let i=0; i { \n //this.$emit(\"closePopup\", status);\n Indicator.open({\n text: this.$t('submitting'),\n spinnerType: \"fading-circle\"\n });\n this.submitFlowData(document, pJson);\n }).catch(() =>{\n\n });\n }else {\n Indicator.close();\n Toast({\n message: response.data.data.content,\n iconClass: \"fa fa-close fa-2x\"\n });\n status = \"ERROR\";\n this.$emit(\"closePopup\", status);\n }\n }else {\n this.submitFlowData(document, pJson);\n }\n }\n }\n }\n );\n }\n }\n },\n\n submitFlowData(allData, pJson) {\n //let formData = this.$parent.$parent.$parent.$parent.$parent.buildFormData();\n let formData = this.buildFormData;\n let appId = this.openParams.appId || this.$root.appid;\n let docId = formData.id;\n let document = allData;\n if (pJson) {\n //手写签名\n document.signatureJson = JSON.stringify(pJson);\n }\n\n if(this.htmlExparams) {\n document.document.exparams = this.htmlExparams;\n }\n\n //document.attitude = this.attitude;\n\n if (this.act.workFlowType == 1) {\n //自由流程\n document.nextUserId = this.nextUserId;\n delete document.currentNodeId;\n delete document.flowId;\n API.submitFreeFlow(appId, docId, document, {\n onSucess: response => {\n Indicator.close();\n this.firstSubmission = true;\n let status;\n let prompt;\n if (response.data.errcode == 0) {\n status = \"SUCCESS\";\n prompt = response.data.data;\n this.runAfterAction(status, prompt);\n } else if (response.data.errcode == 4001) {\n status = \"ERROR\";\n this.$emit(\"closePopup\", status);\n if (response.data.errors && response.data.errors.length > 0) {\n Toast({\n message: response.data.errors[0].errmsg,\n iconClass: \"fa fa-close fa-2x\"\n });\n }\n }\n }\n });\n } else {\n // //非自由流程\n // document.subFlowApprover = []; //多种流程处理方式,此数据为完善未完善\n // document.submitTo = [];\n // //流程单选或多选\n // if (this.nextNodeIds instanceof Array) {\n // //多选\n // let checkArr = [];\n // document.nextNodeIds = this.nextNodeIds;\n // for (let j = 0; j < this.nextNodeIds.length; j++) {\n // for (let y = 0; y < this.selectData.length; y++) {\n // if (\n // this.nextNodeIds[j] == this.selectData[y].id &&\n // this.selectData[y].submitTo\n // ) {\n // delete this.selectData[y].submitTo.row;\n // document.submitTo.push(this.selectData[y].submitTo);\n // if (this.selectData[y].type == \"SubFlow\") {\n // //主子流程\n // // let checkObj = Object.assign({}, this.selectData[y].submitTo);\n // // delete checkObj.isToPerson;\n // // checkArr.push(checkObj);\n // let checkSubmit = this.selectData[y].submitTo;\n // let approver = [];\n // if(checkSubmit.userids) {\n // let list = checkSubmit.userids.replace(/^(\\s|;)+|(\\s|;)+$/g, '')\n // let useridList = list.split(\";\");\n // for(let z=0; z {\n Indicator.close();\n this.firstSubmission = true;\n let status;\n let prompt;\n if (response.data.errcode == 0) {\n status = \"SUCCESS\";\n prompt = response.data.data;\n this.runAfterAction(status, prompt);\n //this.$emit(\"closePopup\", status);\n // Toast({\n // message: response.data.data,\n // iconClass: \"fa fa-check fa-2x\"\n // });\n } else if (response.data.errcode == 4001) {\n //保留了审批人和意见在本地缓存中\n let obj = {\n attitude: this.attitude,\n selectData: this.selectData\n }\n localStorage.setItem(\"flowsubmitToData\", JSON.stringify(obj))\n status = \"ERROR\";\n this.$emit(\"closePopup\", status);\n let prompt = response.data.errors[0].errmsg\n ? response.data.errors[0].errmsg\n : response.data.errmsg;\n Toast({\n message: prompt,\n iconClass: \"fa fa-close fa-2x\"\n });\n }\n }\n });\n }\n },\n\n //执行脚本后\n runAfterAction(status, prompt) {\n let appId = this.openParams.appId || this.$root.appid;\n let document = this.documentData;\n let isRelate = '';\n let _flowType = this.act.flowType; //提交为80\n this.$api.submitRrunAfterActionScript( \n appId,\n this.act.id,\n document,\n document.docId,\n document.viewId,\n document.formId,\n document.templateForm,\n document.parentId,\n isRelate,\n _flowType,\n {\n onSucess: response => {\n if (response.data.errcode == 0 && !response.data.data) {\n this.$emit(\"closePopup\", status);\n Toast({\n message: prompt,\n iconClass: \"fa fa-check fa-2x\"\n });\n }else if(response.data.errcode == 0 && response.data.data) {\n let sta = \"ERROR\";\n let isClose = true;\n this.$emit(\"closePopup\", sta, isClose);\n Toast({\n message: response.data.data.content.content,\n iconClass: \"fa fa-close fa-2x\"\n });\n }\n }\n }\n );\n },\n\n //保存重新编辑的意见\n updateSuggestion() {\n let opId = this.opinionId,\n opinion = this.inputSecond;\n API.updateOpinion(this.$root.user.id, opId, opinion, {\n onSucess: response => {\n if (response.data.data) {\n let id = response.data.data.id;\n let content = response.data.data.content;\n for (let i = 0; i < this.allSuggests.length; i++) {\n if (this.allSuggests[i].id == id) {\n this.allSuggests[i].content = content;\n this.inputSecond = \"\";\n }\n }\n }\n }\n });\n },\n\n //重新编辑意见\n editSuggestion(id, content) {\n this.inputSecond = content;\n this.opinionId = id;\n },\n\n //删除意见\n deleteSuggestion(id) {\n let opId = id;\n API.deleteComments(this.$root.user.id, opId, {\n onSucess: response => {\n //后台返回500,未执行以下步骤\n if (response.data.data) {\n let delId = response.data.data.id;\n let allSug = this.allSuggests;\n for (let i = 0; i < allSug.length; i++) {\n if (allSug[i].id == delId) {\n allSug.splice(i, 1);\n i--;\n }\n }\n this.allSuggest = allSug;\n }\n }\n });\n },\n //添加意见\n addSuggestion() {\n let opinion = this.input;\n API.addCommonOpinions(this.$root.user.id, opinion, {\n onSucess: response => {\n let newSuggest = response.data.data;\n this.allSuggests.push(newSuggest);\n this.input = \"\";\n }\n });\n },\n // 选中的数据放进文本框中\n putData(content) {\n if (this.showDelAndEdit == false) {\n if (!this.attitude) {\n this.attitude = content;\n } else if (this.attitude) {\n this.attitude = this.attitude + \",\" + content;\n }\n }\n },\n editSuggest() {\n this.showInput = true;\n this.showEditFirst = false;\n this.showEditSecond = true;\n this.showDelAndEdit = true;\n },\n cancelAddSuggest(num) {\n if (num == 1) {\n this.showInput = false;\n this.showDelAndEdit = false;\n this.showEditFirst = false;\n } else if (num == 2) {\n this.showInput = false;\n this.showDelAndEdit = false;\n this.showEditSecond = false;\n }\n },\n showInputBox() {\n this.showInput = true;\n this.showEditFirst = true;\n },\n //点击常用意见框以外的地方隐藏\n hiddenSuggest: function() {\n this.suggestBoxVisible = false;\n },\n //隐藏小意见框\n isHiddenSuggest() {\n this.suggestBoxVisible = !this.suggestBoxVisible;\n },\n changeSignMode() {\n if (this.signMode == \"TEXT\") {\n this.signMode = \"SIGN\";\n } else {\n this.signMode = \"TEXT\";\n }\n },\n\n //获取返回的数据\n getSuggest() {\n this.$api.getCommonOpinions(this.$root.user.id, {\n onSucess: response => {\n this.allSuggests = response.data.data;\n }\n });\n },\n\n //节点数据\n getSubmission() {\n // let formData = this.buildFormData;\n let formData = this.getBuildFormData()//this.$parent.$parent.$parent.buildFormData(); //特殊情况下使用props获取数据会无限循环,未知原因造成,只能使用这个\n this.buildFormData = formData;\n formData.stateId = this.stateId;\n let appId = this.openParams.appId || this.$root.appid;\n let docId = formData.id,\n id = formData.id;\n let formId = formData.formId;\n let document = {\n applicationId: appId,\n docId: docId,\n document: formData,\n formId: formId,\n id: id,\n parentId: \"\",\n templateForm: \"\",\n viewId: \"\"\n };\n API.getFlowPanel(appId, docId, document, {\n onSucess: response => {\n let nodesArr = response.data.data.nextNodes;\n let min;\n for (let i = 0; i < nodesArr.length; i++) {\n for (var j = i; j < nodesArr.length; j++) {\n if (nodesArr[j].orderNum) {\n if (nodesArr[i].orderNum > nodesArr[j].orderNum) {\n min = nodesArr[j];\n nodesArr[j] = nodesArr[i];\n nodesArr[i] = min;\n }\n }\n }\n }\n this.selectData = nodesArr;\n nodesArr.forEach(item => {\n if (item.isToPerson) {\n this.isToPerson = item.isToPerson;\n }\n if(item.checkedOnMultiplePerson) { //当后台设置了选中下一步审批人,默认选中全部人\n \n let flowId = response.data.data.flowId, \n nodeId = item.id, \n type = 0, \n selectId = '', \n pageNum = 1, \n pageSize = 10;\n this.$api.getSelectApprovers(\n appId, \n docId, \n flowId, \n nodeId, \n type, \n encodeURIComponent(selectId), \n pageNum, \n pageSize,\n {\n onSucess: res => {\n let list = res.data.data.datas;\n let name = '', userids = '';\n let submitTo = {};\n if(list && list.length) {\n list.forEach(el => {\n name += el.name + \";\";\n userids += el.id + \";\";\n });\n name = name.replace(/^(\\s|;)+|(\\s|;)+$/g, '');\n userids = userids.replace(/^(\\s|;)+|(\\s|;)+$/g, '');\n submitTo = {\n isToPerson: item.isToPerson,\n nodeid: item.id,\n userids: userids,\n row:res.data.data.datas,\n }\n item.approverName = name;\n item.submitTo = submitTo;\n // item.isARole = true;\n this.$forceUpdate();\n }\n \n }\n }\n );\n }else if(item.checkedOnSinglePerson) { //当后台设置了下一步审批人只有一人,默认选中该人时\n let flowId = response.data.data.flowId, \n nodeId = item.id, \n type = 0, \n selectId = '', \n pageNum = 1, \n pageSize = 10;\n this.$api.selectApprovers(\n appId, \n docId, \n flowId, \n nodeId, \n type, \n encodeURIComponent(selectId), \n pageNum, \n pageSize,\n {\n onSucess: res => {\n let list = res.data.data.datas;\n let name = '', userids = '';\n let submitTo = {};\n if(list && list.length == 1) {\n list.forEach(el => {\n name += el.name + \";\";\n userids += el.id + \";\";\n });\n name = name.replace(/^(\\s|;)+|(\\s|;)+$/g, '');\n userids = userids.replace(/^(\\s|;)+|(\\s|;)+$/g, '');\n submitTo = {\n nodeid: item.id,\n userids: userids\n }\n item.approverName = name;\n item.submitTo = submitTo;\n item.isARole = true;\n this.$forceUpdate();\n }\n }\n }\n );\n }\n });\n this.isSplit = response.data.data.isSplit;\n this.currentNodeId = response.data.data.currentNodeId; //当前节点ID\n this.isAppentCirculator = response.data.data.isAppentCirculator; //是否抄送;\n this.flowId = response.data.data.flowId;\n if (this.isSplit) {\n //复选\n this.nextNodeIds = [];\n this.selectData.forEach(item => {\n if (item.checked == true) {\n this.nextNodeIds.push(item.id);\n }\n });\n } else {\n //单选\n this.selectData.every(item => {\n if (item.checked == true) {\n this.nextNodeIds = item.id;\n }\n return false;\n });\n }\n let ft = localStorage.getItem(\"flowsubmitToData\");\n if(ft) {\n ft = JSON.parse(ft)\n //判断选中的selectdata是否和本地缓存保留的selectdata一致\n for(let i = 0; i < this.selectData.length; i++) {\n if(ft.selectData[i].id === this.selectData[i].id) {\n this.attitude = ft.attitude;\n this.selectData = ft.selectData;\n return;\n } \n }\n }\n }\n });\n }\n }\n};\n",null]}