index.vue 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <template>
  2. <Modal
  3. width="1200px"
  4. :title="title"
  5. @cancel="$emit('update:open', false)"
  6. :open="open"
  7. :footer="null"
  8. >
  9. <Info
  10. :title="$t('case.name')"
  11. :data="caseProject"
  12. :label-map="tmLabelMap1"
  13. v-if="caseProject"
  14. />
  15. <Info
  16. :title="$t('case.tmName')"
  17. :data="caseProject.tmProject"
  18. :label-map="tmLabelMap2"
  19. v-if="caseProject?.tmProject"
  20. />
  21. </Modal>
  22. </template>
  23. <script setup lang="ts">
  24. import { Modal } from "ant-design-vue";
  25. import Info from "./info.vue";
  26. import { showRightPanoStack } from "@/env";
  27. import { useViewStack } from "@/hook";
  28. import router, { RoutesName } from "@/router";
  29. import { title } from "@/store";
  30. import { caseProject } from "@/store/case";
  31. import { ref } from "vue";
  32. import { lang } from "@/lang";
  33. defineProps<{ open: boolean }>();
  34. defineEmits<{ (e: "update:open", v: boolean): void }>();
  35. type LabelMap = Record<string, string | [string, (v: any) => any]>;
  36. const tmLabelMap1 = {
  37. ...lang.case.cols,
  38. homicideCase: [lang.case.cols.homicideCase, (v: any) => (v === null ? "" : v ? lang.case.yv : lang.case.nv)],
  39. criminalCase: [
  40. lang.case.cols.criminalCase,
  41. (v: any) => {
  42. console.error(v);
  43. return v === null ? "" : v ?lang.case.yv : lang.case.nv;
  44. },
  45. ],
  46. caseRegion: [lang.case.cols.caseRegion, (v: string[]) => v.join("-")],
  47. caseAddress: lang.case.cols.caseAddress,
  48. latAndLong: [lang.case.cols.latAndLong, (v: any) => (v ? v.split(",").reverse().join(",") : "")],
  49. } as LabelMap;
  50. const tmLabelMap2 = {
  51. ...lang.case.tmCols,
  52. times: [lang.case.tmCols.times, (v: string[]) => v.join("-")],
  53. } as LabelMap;
  54. </script>
  55. <style lang="scss" scoped></style>