mediaCom.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <!-- 报故记录 -->
  2. <template>
  3. <div class="mainContentBox">
  4. <avue-crud
  5. ref="crudRef2"
  6. v-model:search="search"
  7. v-model="form"
  8. :data="data"
  9. @size-change="dataList"
  10. @search-reset="resetChange"
  11. @current-change="dataList"
  12. :option="option"
  13. v-model:page="page"
  14. >
  15. <template #menu="{ row, index, type }">
  16. <el-button
  17. @click="openDialog(row)"
  18. icon="el-icon-link"
  19. text
  20. type="primary"
  21. >查看</el-button
  22. >
  23. </template>
  24. </avue-crud>
  25. <el-dialog
  26. v-model="dialog.visible"
  27. :title="dialog.title"
  28. width="60%"
  29. @close="dialog.visible = false"
  30. ><el-image :src="url" fit="contain" />
  31. </el-dialog>
  32. </div>
  33. </template>
  34. <script setup>
  35. import { ref, getCurrentInstance } from "vue";
  36. import { useCrud } from "@/hooks/userCrud";
  37. import dictDataUtil from "@/common/configs/dictDataUtil";
  38. import ButtonPermKeys from "@/common/configs/buttonPermission";
  39. import { useCommonStoreHook, useDictionaryStore } from "@/store";
  40. // 数据字典相关
  41. const { dicts } = useDictionaryStore();
  42. const dialog = reactive({
  43. title: "图片预览",
  44. visible: false,
  45. });
  46. const url = ref(null);
  47. // 传入一个url,后面不带/
  48. const {
  49. form,
  50. data,
  51. option,
  52. search,
  53. page,
  54. toDeleteIds,
  55. Methords,
  56. Utils,
  57. commonConfig,
  58. } = useCrud({
  59. src: "/api/v1/process/media",
  60. });
  61. const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
  62. Methords; //增删改查
  63. const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
  64. const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
  65. const crudRef = ref(null); //crudRef.value 获取avue-crud对象
  66. const openDialog = (row) => {
  67. dialog.visible = true;
  68. url.value = import.meta.env.VITE_APP_UPLOAD_URL + row.filePath;
  69. };
  70. const refreshTra = (row) => {
  71. commonConfig.value.params = {
  72. seqNo: row.seqNo,
  73. workOrderCode: row.workOrderCode,
  74. };
  75. dataList();
  76. };
  77. defineExpose({ refreshTra });
  78. onMounted(() => {});
  79. option.value = Object.assign(option.value, {
  80. selection: false,
  81. border: true,
  82. index: false,
  83. expandLevel: 3,
  84. headerAlign: "center",
  85. align: "center",
  86. labelWidth: 100,
  87. addBtn: false,
  88. menu: true,
  89. editBtn: false,
  90. delBtn: false,
  91. viewBtn: false,
  92. header: false,
  93. column: [
  94. {
  95. label: "上传工序",
  96. prop: "operationName",
  97. search: false,
  98. },
  99. {
  100. label: "上传人员",
  101. prop: "creator",
  102. type: "select",
  103. dicData: dicts.user_name_list,
  104. props: { label: "dictLabel", value: "dictValue" },
  105. search: false,
  106. },
  107. {
  108. label: "上传时间",
  109. prop: "created",
  110. search: false,
  111. },
  112. ],
  113. });
  114. </script>