123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- <script lang="ts">
- // 声明额外的选项
- export default {
- name: "AppVersion"
- };
- </script>
- <script setup lang="ts">
- import { provide, ref } from "vue";
- import { useAppVersion } from "./hook";
- import { hasAuth } from "@/router/utils";
- import { PureTableBar } from "@/components/RePureTableBar";
- import { useRenderIcon } from "@/components/ReIcon/src/hooks";
- import Add from "./components/add/index.vue";
- import EditUpdate from "./components/update/index.vue";
- import Search from "@iconify-icons/ep/search";
- import All from "@iconify-icons/ep/refresh-left";
- import Addicon from "@iconify-icons/ep/document-add";
- const formRef = ref();
- const {
- form,
- loading,
- columns,
- dataList,
- pagination,
- onSearch,
- handleSizeChange,
- handleCurrentChange,
- handleSelectionChange,
- handleAdd,
- addVisible,
- handleUpdate,
- editUpdateVisible,
- editUpdateFormData,
- handleDelete,
- } = useAppVersion();
- // 关闭添加
- const closeAddVisible = () => {
- addVisible.value = false
- }
- provide('closeAddVisible', closeAddVisible)
- // 关闭修改
- const closeEditUpdateVisible = () => {
- editUpdateVisible.value = false
- }
- provide('closeEditUpdateVisible', closeEditUpdateVisible)
- </script>
- <template lang="pug">
- .main
- div
- el-form.bg-bg_color.pl-8.pt-4.pr-8(
- label-position="left"
- label-width="100px"
- ref="formRef",
- :inline="true",
- :model="form",
- :rules="rules",
- class="w-[99/100]"
- )
- el-form-item(label='版本号' prop="versionNum")
- el-input(v-model='form.versionNum' autocomplete='off' class="!w-[230px]"
- placeholder="请输入版本号")
- el-form-item(label='标题' prop="title")
- el-input(v-model='form.title' autocomplete='off' class="!w-[230px]"
- placeholder="请输入标题")
- el-form-item
- el-button(
- type="primary",
- :icon="useRenderIcon(Search)",
- :loading="loading",
- @click="onSearch()"
- ) 查询
- el-form-item
- el-button(
- type="primary",
- :icon="useRenderIcon(All)",
- :loading="loading",
- @click="onSearch('all')"
- ) 全部
- //- 表格组件
- PureTableBar(title="app版本管理", @refresh="onSearch" )
- template(#buttons)
- el-button(type="primary" :icon="useRenderIcon(Addicon)" @click="handleAdd()") 新增
- template(v-slot="{ size, checkList }")
- pure-table(stripe
- border,
- align-whole="center",
- table-layout="auto",
- :loading="loading",
- :size="size",
- :data="dataList",
- :columns="columns",
- :checkList="checkList",
- :pagination="pagination",
- :paginationSmall="size === 'default' ? true : false",
- :header-cell-style="{ background: 'var(--el-table-row-hover-bg-color)', color: 'var(--el-text-color-primary)' }",
- @selection-change="handleSelectionChange",
- @size-change="handleSizeChange",
- @current-change="handleCurrentChange"
- )
- template(#operation="{ row }")
- .flex.flex-wrap.items-center
- el-dropdown(trigger="click", :hide-on-click="false")
- el-button(type="primary") 操作
- el-icon.el-icon--right
- arrow-down
- template(#dropdown)
- el-dropdown-menu
- el-dropdown-item
- el-button.reset-margin(
- link
- type="primary"
- :size="size"
- @click="handleUpdate(row)"
- :icon="useRenderIcon(EditPen)"
- v-if="hasAuth(['edit'])"
- ) 编辑
- el-button.reset-margin(
- link
- type="primary"
- :size="size"
- @click="handleDelete(row)"
- :icon="useRenderIcon(Delete)"
- v-if="hasAuth(['delete'])"
- ) 删除
- Add(:addVisible="addVisible")
- EditUpdate(:editVisible="editUpdateVisible" :formData="editUpdateFormData")
-
- </template>
- <style scoped lang="scss">
- :deep(.el-dropdown-menu__item i) {
- margin: 0;
- }
- :deep(.el-form-item__label) {
- font-weight: 700;
- }
- :deep(.el-pagination) {
- flex-flow: wrap;
- }
- :deep(.is-draggable) {
- max-height: 80vh;
- overflow: auto;
- }
- :deep(.el-dialog__header) {
- position: sticky;
- top: 0;
- z-index: 2;
- background: #fff;
- }
- :deep(.el-descriptions__header) {
- margin: 16px 0 !important;
- }
- </style>
|