1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <template>
- <q-page>
- <div
- v-if="renderComponent"
- id="container"
- style="width: 100%"
- ref="pay"
- ></div>
- </q-page>
- </template>
- <script>
- import { onMounted, nextTick, ref } from "vue";
- import { orderPaymentParamStore } from "stores/orderPaymentParamStore";
- export default {
- name: "AlipayPage",
- setup() {
- const oStore = orderPaymentParamStore();
- const codeUrl = ref("");
- const orderId = ref("");
- const price = ref("");
- const htmlContent = ref("");
- const renderComponent = ref(true);
- function b64_to_utf8(str) {
- return window.atob(str);
- }
- const forceRerender = async () => {
- renderComponent.value = false;
- // Wait for the change to get flushed to the DOM
- await nextTick();
- // Add the component back in
- renderComponent.value = true;
- };
- onMounted(async () => {
- var allParamsFromPreviousPage = oStore.getPaymentDetail;
- console.log("what I got from book form:");
- console.log(allParamsFromPreviousPage);
- codeUrl.value = allParamsFromPreviousPage.codeUrl;
- console.log("decoded");
- htmlContent.value = b64_to_utf8(codeUrl.value);
- console.log(htmlContent.value);
- orderId.value = allParamsFromPreviousPage.orderId;
- price.value = allParamsFromPreviousPage.price;
- // forceRerender();
- var container = document.getElementById("container");
- container.innerHTML += htmlContent.value;
- // container.innerHTML += "<p>this is a test text</p>";
- // document.write(htmlContent.value);
- forceRerender();
- });
- return {
- renderComponent,
- htmlContent,
- };
- },
- };
- </script>
|