index.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <template>
  2. <com-head :options="headOptions" v-model="pageHook.pagging.state.query.type">
  3. <el-form label-width="94px" inline>
  4. <slot name="header" />
  5. <el-form-item label="版本号">
  6. <el-input
  7. v-model="pageHook.pagging.state.query.version"
  8. placeholder="请输入"
  9. ></el-input>
  10. </el-form-item>
  11. <el-form-item class="searh-btns" style="grid-area: 1 / 4 / 2 / 4">
  12. <el-button type="primary" @click="pageHook.pagging.refresh"
  13. >查询</el-button
  14. >
  15. <el-button type="primary" plain @click="pageHook.pagging.queryReset"
  16. >重置</el-button
  17. >
  18. </el-form-item>
  19. </el-form>
  20. </com-head>
  21. <div class="body-layer" style="padding-top: 8px">
  22. <div class="body-but">
  23. <el-button type="primary" v-pdpath="'add'" @click="addHandler"
  24. >新增固件</el-button
  25. >
  26. </div>
  27. <el-table
  28. :data="pageHook.pagging.state.table.rows"
  29. tooltip-effect="dark"
  30. style="width: 100%"
  31. size="large"
  32. >
  33. <el-table-column label="版本号" prop="version"></el-table-column>
  34. <el-table-column
  35. label="版本更新说明"
  36. prop="description"
  37. ></el-table-column>
  38. <el-table-column label="最低版本号" prop="minVersion"></el-table-column>
  39. <el-table-column label="创建人" prop="createName"></el-table-column>
  40. <el-table-column
  41. label="创建时间"
  42. prop="createTime"
  43. v-slot:default="{ row }"
  44. >
  45. {{ dayjs(row.createTime).format("YYYY-MM-DD HH:MM:ss") }}
  46. </el-table-column>
  47. <el-table-column label="状态" prop="status" v-slot:default="{ row }">
  48. <el-switch
  49. v-model:model-value="row.status"
  50. active-text="启用"
  51. inactive-text="禁用"
  52. inline-prompt
  53. @update:model-value="handleStatusupdate(row)"
  54. active-value="A"
  55. inactive-value="I"
  56. ></el-switch>
  57. </el-table-column>
  58. <el-table-column
  59. label="操作"
  60. v-slot:default="{ row }: { row: CameraVersionEntity }"
  61. :width="240"
  62. >
  63. <span class="oper-span" @click="editHandler(row)" v-pdpath="['view']"
  64. >编辑</span
  65. >
  66. <span
  67. class="oper-span"
  68. @click="delHandler(row)"
  69. style="color: var(--primaryColor)"
  70. v-pdpath="['del']"
  71. >
  72. 删除
  73. </span>
  74. </el-table-column>
  75. </el-table>
  76. <com-pagination
  77. @size-change="pageHook.pagging.changPageSize"
  78. @current-change="pageHook.pagging.changPageCurrent"
  79. :current-page="pageHook.pagging.state.pag.currentPage"
  80. :page-size="pageHook.pagging.state.pag.size"
  81. :total="pageHook.pagging.state.pag.total"
  82. />
  83. </div>
  84. </template>
  85. <script lang="ts" setup>
  86. import { computed, ref } from "vue";
  87. import comHead from "@/components/head/index.vue";
  88. import comPagination from "@/components/pagination/index.vue";
  89. import { useScenePaggingParams } from "./paging";
  90. import { CameraType } from "@/store/camera";
  91. import { addCameraVersion, editCameraVersion } from "./quisk";
  92. import {
  93. CameraVersionEntity,
  94. delCameraVersion,
  95. editCameraVersion as EditCameraVersion,
  96. } from "@/store/cameraVersion";
  97. import { dayjs, ElMessage, ElMessageBox } from "element-plus";
  98. const headOptions = [
  99. { value: CameraType.SWKJ, name: "双目转台" },
  100. { value: CameraType.SWSS1, name: "激光转台" },
  101. { value: CameraType.SWSS2, name: "激光移动" },
  102. ];
  103. const pageHook = useScenePaggingParams();
  104. const addHandler = async () => {
  105. (await addCameraVersion({ type: pageHook.pagging.state.query.type })) &&
  106. pageHook.pagging.refresh();
  107. };
  108. const editHandler = async (row: CameraVersionEntity) => {
  109. await editCameraVersion({
  110. type: pageHook.pagging.state.query.type,
  111. entity: row,
  112. });
  113. pageHook.pagging.refresh();
  114. };
  115. const delHandler = async (row: CameraVersionEntity) => {
  116. const confirm = await ElMessageBox.confirm("是否确定删除?", "温馨提示", {
  117. confirmButtonText: "确定",
  118. cancelButtonText: "取消",
  119. type: "warning",
  120. });
  121. if (confirm) {
  122. row.id && delCameraVersion(row.id);
  123. pageHook.pagging.refresh();
  124. }
  125. };
  126. const handleStatusupdate = async (row: CameraVersionEntity) => {
  127. console.log("row", row);
  128. await EditCameraVersion({
  129. ...row,
  130. type: pageHook.pagging.state.query.type,
  131. });
  132. pageHook.pagging.refresh();
  133. };
  134. </script>