|
@@ -0,0 +1,161 @@
|
|
|
+<script lang="ts">
|
|
|
+// 声明额外的选项
|
|
|
+export default {
|
|
|
+ name: "KxsCamp"
|
|
|
+};
|
|
|
+</script>
|
|
|
+<script setup lang="ts">
|
|
|
+import { provide } from "vue";
|
|
|
+import { useKxsCamp } from "./hook";
|
|
|
+import { http } from "@/utils/http";
|
|
|
+import { useRenderIcon, hasAuth, PureTableBar } from "@/utils/importUsed"
|
|
|
+import Add from "./components/add/index.vue";
|
|
|
+import EditChangeStatus from "./components/changeStatus/index.vue";
|
|
|
+import Search from "@iconify-icons/ep/search";
|
|
|
+import Addicon from "@iconify-icons/ep/document-add";
|
|
|
+import Delete from "@iconify-icons/ep/delete";
|
|
|
+import EditPen from "@iconify-icons/ep/edit-pen";
|
|
|
+
|
|
|
+const {
|
|
|
+ form,
|
|
|
+ loading,
|
|
|
+ columns,
|
|
|
+ dataList,
|
|
|
+ pagination,
|
|
|
+ onSearch,
|
|
|
+ handleSizeChange,
|
|
|
+ handleCurrentChange,
|
|
|
+ handleSelectionChange,
|
|
|
+ ruleFormRef,
|
|
|
+ handleAdd,
|
|
|
+ addVisible,
|
|
|
+ handleAdd,
|
|
|
+ addVisible,
|
|
|
+ handleDelete,
|
|
|
+ handleChangeStatus,
|
|
|
+ editChangeStatusVisible,
|
|
|
+ editChangeStatusFormData,
|
|
|
+
|
|
|
+} = useKxsCamp();
|
|
|
+// 关闭添加
|
|
|
+const closeAddVisible = () => {
|
|
|
+ addVisible.value = false
|
|
|
+}
|
|
|
+provide('closeAddVisible', closeAddVisible)
|
|
|
+// 关闭添加
|
|
|
+const closeAddVisible = () => {
|
|
|
+ addVisible.value = false
|
|
|
+}
|
|
|
+provide('closeAddVisible', closeAddVisible)
|
|
|
+// 关闭修改
|
|
|
+const closeEditChangeStatusVisible = () => {
|
|
|
+ editChangeStatusVisible.value = false
|
|
|
+}
|
|
|
+provide('closeEditChangeStatusVisible', closeEditChangeStatusVisible)
|
|
|
+
|
|
|
+</script>
|
|
|
+
|
|
|
+<template lang="pug">
|
|
|
+.main
|
|
|
+ div
|
|
|
+ //- 搜索表格组件条件
|
|
|
+ el-form.bg-bg_color.pl-8.pt-4.pr-8(
|
|
|
+ label-position="left"
|
|
|
+ label-width="100px"
|
|
|
+ :inline="true",
|
|
|
+ :model="form",
|
|
|
+ class="w-[99/100]"
|
|
|
+ ref="ruleFormRef"
|
|
|
+ :rules="rules"
|
|
|
+ )
|
|
|
+
|
|
|
+ el-form-item
|
|
|
+ el-button(
|
|
|
+ type="primary",
|
|
|
+ :icon="useRenderIcon(Search)",
|
|
|
+ :loading="loading",
|
|
|
+ @click="onSearch(ruleFormRef)"
|
|
|
+ ) 查询
|
|
|
+ //- 表格组件
|
|
|
+ PureTableBar(title="训练营", @refresh="onSearch(ruleFormRef)" )
|
|
|
+ template(#buttons)
|
|
|
+ el-button(type="primary" :icon="useRenderIcon(Addicon)" @click="handleAdd()" v-if="hasAuth(['add'])") 新增
|
|
|
+ el-button(type="primary" :icon="useRenderIcon(Addicon)" @click="handleAdd()" v-if="hasAuth(['add'])") 新增
|
|
|
+
|
|
|
+ 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-button.reset-margin(
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ @click="handleDelete(row)"
|
|
|
+ :icon="useRenderIcon(Delete)"
|
|
|
+ v-if="hasAuth(['delete'])"
|
|
|
+ ) 删除
|
|
|
+ el-dropdown-item
|
|
|
+ el-button.reset-margin(
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ @click="handleChangeStatus(row)"
|
|
|
+ :icon="useRenderIcon(EditPen)"
|
|
|
+ v-if="hasAuth(['changeStatus'])"
|
|
|
+ ) 训练营-开启/结束活动
|
|
|
+
|
|
|
+ Add(:addVisible="addVisible")
|
|
|
+ Add(:addVisible="addVisible")
|
|
|
+ EditChangeStatus(:editVisible="editChangeStatusVisible" :formData="editChangeStatusFormData")
|
|
|
+
|
|
|
+
|
|
|
+</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>
|