{"remainingRequest":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\eipControl\\EipSignature.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\eipControl\\EipSignature.vue","mtime":1667804639071},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-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\r\nimport { mapState } from \"vuex\";\r\nimport req from \"@/request.js\";\r\nimport utils from \"@/utils.js\";\r\nimport { Base64 } from \"js-base64\";\r\nimport sub_pio_mixin from \"@/sub-permission-mixin.js\";\r\nexport default {\r\n name: \"eip-signature\",\r\n props:[\"maxPeople\",\"permission\",\"value\",\"fieldPath\"],\r\n data() {\r\n return {\r\n dialogVisible: false,\r\n inputVal:\"\",\r\n password:\"\",\r\n signatureList:[],\r\n showSignatureBtn: true,\r\n showSignatureMap: {},\r\n };\r\n },\r\n mixins: [sub_pio_mixin],//混入方式引入表单组件中公共属性,处理子表、孙表行内联动(切面修改permission_sub)\r\n computed: mapState({\r\n userId: state => {\r\n if (state.login && state.login.currentUser) {\r\n return state.login.currentUser.userId;\r\n }\r\n return '';\r\n },\r\n userName: state => {\r\n if (state.login && state.login.currentUser) {\r\n return state.login.currentUser.username;\r\n }\r\n return '';\r\n },\r\n signatureConfig: state =>state.storeProcess.signatureConfig,\r\n signatureStatus: state =>state.storeProcess.signatureConfig.status,\r\n }),\r\n watch: {\r\n inputVal: function(newVal, oldVal) {\r\n this.$emit(\"input\", newVal);\r\n },\r\n signatureList: {\r\n handler: function (newVal, oldValue) {\r\n if(!newVal || newVal.length==0){\r\n this.showSignatureBtn = true;\r\n this.$emit(\"input\", '');\r\n }else if (newVal && newVal.length >= 1) {\r\n let _this = this;\r\n let signatures = JSON.parse(JSON.stringify(newVal));\r\n signatures.forEach(item =>{\r\n if(item.userId==_this.userId){\r\n _this.showSignatureBtn = false;\r\n }\r\n });\r\n this.$emit(\"input\", JSON.stringify(signatures));\r\n }\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n signatureConfig: {\r\n handler: function (newVal, oldVal) {\r\n if(this.signatureConfig.field == this.fieldPath){\r\n if(newVal.status === 'start'){\r\n this.submitSignature('ing');//发出消息,开始签章处理\r\n if(this.signatureConfig.isCover){\r\n this.signatureList = [];\r\n }else{\r\n let index = this.getCurrentIndex(null);\r\n if(index>=0){\r\n this.signatureList.splice(index, 1);\r\n }\r\n }\r\n this.getSignature(this.signatureConfig.password);\r\n }\r\n }else if(newVal.status === 'start' && !this.fieldPath){\r\n this.$message.warning(\"未获取到签章字段路径,请初始化表单模板后重新保存表单!\");\r\n }\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n doSignature() {\r\n this.password = '';\r\n this.dialogVisible = true;\r\n },\r\n submitSignature(status){\r\n this.$store.dispatch(\"storeProcess/setSignatureStatus\",status).then(rep => {});\r\n },\r\n getSignature(password){\r\n let _this = this;\r\n const url = window.context.uc + '/uc/electronicSeal/v1/getElectronicSeal?password='+password+'&secretFree='+this.signatureConfig.secretFree;\r\n req.get(url).then(resp=>{\r\n if(resp.data.state){\r\n _this.dialogVisible = false;\r\n _this.reloadSignatures(resp.data.value);\r\n setTimeout(function(){\r\n _this.submitSignature('success');\r\n },300);\r\n }else{\r\n this.submitSignature('fail');\r\n }\r\n })\r\n },\r\n getShowSignature(fileId){\r\n let _this = this;\r\n if(!this.showSignatureMap ||!this.showSignatureMap[fileId]){\r\n let imgUrl = '';\r\n req.get(window.context.portal+'/file/onlinePreviewController/v1/getFileById_'+fileId,'arraybuffer').then(response=>{\r\n let type = response.headers['content-type'];\r\n \r\n if(type){\r\n imgUrl = window.URL.createObjectURL(new Blob([response.data], { type: type }));\r\n }else{\r\n imgUrl = window.URL.createObjectURL(new Blob([response.data]));\r\n }\r\n _this.showSignatureMap[fileId] = imgUrl;\r\n try {\r\n _this.$refs['signature_'+fileId][0].src = imgUrl;\r\n } catch (error) {\r\n return imgUrl;\r\n }\r\n });\r\n return imgUrl;\r\n }else{\r\n setTimeout(function(){\r\n try {\r\n if(_this.$refs['signature_'+fileId]){\r\n _this.$refs['signature_'+fileId][0].src = _this.showSignatureMap[fileId];\r\n }else{\r\n _this.getShowSignature(fileId);\r\n }\r\n } catch (error) {\r\n return _this.showSignatureMap[fileId];\r\n }\r\n },100);\r\n }\r\n },\r\n reloadSignatures(fileId){\r\n if(fileId){\r\n this.showSignatureMap[fileId] = null;\r\n }\r\n let index = this.getCurrentIndex(fileId);\r\n if(index<0){\r\n this.signatureList.push({index:this.signatureList.length+1,userId:this.userId,name:this.userName,signature:fileId,createTime:utils.formatDate(new Date())})\r\n }\r\n },\r\n getCurrentIndex(fileId){\r\n let _this = this;\r\n let rindex = -1;\r\n if(this.signatureList.length>0){\r\n let index = 0;\r\n this.signatureList.forEach(f =>{\r\n if(f.userId==_this.userId){\r\n if(fileId){\r\n f.signature = fileId;\r\n _this.showSignatureBtn = false;\r\n }\r\n rindex = index;\r\n return rindex;\r\n }\r\n index++;\r\n });\r\n }\r\n return rindex;\r\n },\r\n handleSort(){\r\n this.signatureList.sort(function (a, b) {\r\n var x = 'index'//要排序字段\r\n if (a[x] < b[x]) {\r\n return -1\r\n }\r\n if (a[x] > b[x]) {\r\n return 1\r\n }\r\n return 0;\r\n });\r\n },\r\n getImgFit(item){\r\n return item.name+' 于 '+item.createTime+' 进行了签章';\r\n },\r\n handleRemove(item){\r\n let index = 0;\r\n let rIdx = 0;\r\n this.signatureList.forEach(sn =>{\r\n if(sn.userId == item.userId){\r\n rIdx = index;\r\n }\r\n index++;\r\n })\r\n this.signatureList.splice(rIdx,1);\r\n this.showSignatureBtn = true;\r\n },\r\n onConfirm(){\r\n if(!this.password){\r\n this.$message.error(\"请填写获取签章密码!\");\r\n return ;\r\n }\r\n this.getSignature(this.password);\r\n },\r\n handleClose(){\r\n this.dialogVisible = false;\r\n this.submitSignature('fail');\r\n },\r\n },\r\n mounted() {\r\n this.$validator = this.$root.$validator;\r\n if(this.value){\r\n this.signatureList = JSON.parse(this.value);\r\n // let list = JSON.parse(this.value);\r\n // let _this = this;\r\n // list.forEach(item =>{\r\n // _this.showCurSignature(item.userId, item.name, item.signature);\r\n // })\r\n }\r\n },\r\n};\r\n",null]}