| | |
| | | </el-form> |
| | | |
| | | <el-row :gutter="20" style="margin: 5px 20px"> |
| | | <el-col :span="12" style="margin-left: 50%;"> |
| | | <el-col :span="12" style="margin-left: 50%"> |
| | | <el-button |
| | | type="primary" |
| | | class="btn" |
| | |
| | | submitforms() { |
| | | this.open2 = true; |
| | | }, |
| | | |
| | | base64ToBlob({ b64data = "", contentType = "", sliceSize = 512 } = {}) { |
| | | return new Promise((resolve, reject) => { |
| | | // 使用 atob() 方法将数据解码 |
| | | let byteCharacters = atob(b64data); |
| | | let byteArrays = []; |
| | | for ( |
| | | let offset = 0; |
| | | offset < byteCharacters.length; |
| | | offset += sliceSize |
| | | ) { |
| | | let slice = byteCharacters.slice(offset, offset + sliceSize); |
| | | let byteNumbers = []; |
| | | for (let i = 0; i < slice.length; i++) { |
| | | byteNumbers.push(slice.charCodeAt(i)); |
| | | } |
| | | // 8 位无符号整数值的类型化数组。内容将初始化为 0。 |
| | | // 如果无法分配请求数目的字节,则将引发异常。 |
| | | byteArrays.push(new Uint8Array(byteNumbers)); |
| | | } |
| | | let result = new Blob(byteArrays, { |
| | | type: contentType, |
| | | }); |
| | | result = Object.assign(result, { |
| | | // jartto: 这里一定要处理一下 URL.createObjectURL |
| | | preview: URL.createObjectURL(result), |
| | | // name: `图片示例.png`, |
| | | }); |
| | | resolve(result); |
| | | }); |
| | | }, |
| | | submitType() { |
| | | let cusIds = []; |
| | | this.selectList.forEach((item) => { |
| | |
| | | addPlOrderAndDetail(data).then((res) => { |
| | | this.open2 = false; |
| | | this.$modal.msgSuccess("签到成功"); |
| | | let base64 = res.file; |
| | | this.base64ToBlob({ |
| | | b64data: base64, |
| | | contentType: "application/pdf", |
| | | }).then((res) => { |
| | | this.dialogVisible = true; |
| | | // 转后后的blob对象 |
| | | console.log("blob", res.preview); |
| | | try { |
| | | this.url =res.preview; |
| | | } catch (error) { |
| | | this.url = window.webkitURL.createObjectURL(res.preview); |
| | | } |
| | | }); |
| | | |
| | | this.handleQuery(); |
| | | this.selectList = []; |
| | | }); |