exportPhotos.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <el-form
  3. ref="form"
  4. :model="caseFile"
  5. label-width="90px"
  6. class="camera-from dispatch-file-from jm-file-upload"
  7. >
  8. <el-form-item label="排版:" class="mandatory">
  9. <el-radio-group v-model="exportInfo.paperType">
  10. <el-radio value="four">4联卡纸</el-radio>
  11. <el-radio value="a4">A4纸</el-radio>
  12. <el-radio value="a3">A3纸</el-radio>
  13. </el-radio-group>
  14. </el-form-item>
  15. <el-form-item label="格式:" class="mandatory">
  16. <el-radio-group v-model="exportInfo.fileType">
  17. <el-radio value="pdf">pdf</el-radio>
  18. <el-radio value="jpg">jpg</el-radio>
  19. </el-radio-group>
  20. </el-form-item>
  21. </el-form>
  22. </template>
  23. <script setup lang="ts">
  24. import { maxFileSize } from "@/constant/caseFile";
  25. import { useUpload } from "@/hook/upload";
  26. import { ElMessage } from "element-plus";
  27. import { computed, ref, watchEffect, onMounted } from "vue";
  28. import { addCaseScenes } from "./quisk";
  29. import { QuiskExpose } from "@/helper/mount";
  30. import { updateSelectByTreeFileLists } from "@/store/case";
  31. const props = defineProps<{
  32. showPagesRef: any;
  33. title: string
  34. }>();
  35. const exportInfo = ref({
  36. paperType: "four",
  37. fileType: "pdf",
  38. })
  39. onMounted(async () => {
  40. });
  41. defineExpose<QuiskExpose>({
  42. async submit() {
  43. if (!props.showPagesRef) {
  44. ElMessage.error("加载异常,请刷新浏览器");
  45. throw "加载异常,请刷新浏览器";
  46. }else{
  47. await props.showPagesRef.exportToPDF(exportInfo.value.paperType,props.title, exportInfo.value.fileType)
  48. }
  49. },
  50. });
  51. </script>
  52. <style scoped lang="scss">
  53. .upload-demo {
  54. overflow: hidden;
  55. }
  56. .file {
  57. display: flex;
  58. justify-content: space-between;
  59. align-items: center;
  60. > div {
  61. display: flex;
  62. align-items: center;
  63. }
  64. .name {
  65. margin-left: 10px;
  66. }
  67. }
  68. .jm-file-upload {
  69. // .mtk {
  70. // position: absolute;
  71. // right: 0;
  72. // top: 0;
  73. // }
  74. }
  75. </style>