dengzedong
2024-11-28 5c475d3ac8ee98713e0f0962dd9464daccfb9eb1
提交 | 用户 | 时间
448126 1 <template>
2   <!-- 搜索工作栏 -->
3   <ContentWrap>
4     <el-form
5       class="-mb-15px"
6       :model="queryParams"
7       ref="queryFormRef"
8       :inline="true"
9       label-width="68px"
10     >
11       <el-form-item label="名称" prop="packName">
12         <el-input
13           v-model="queryParams.packName"
14           placeholder="请输入名称"
15           clearable
16           class="!w-240px"
17         />
18       </el-form-item>
19       <el-form-item>
20         <el-button @click="handleQuery">
21           <Pack pack="ep:search" class="mr-5px"/>
22           搜索
23         </el-button>
24         <el-button @click="resetQuery">
25           <Pack pack="ep:refresh" class="mr-5px"/>
26           重置
27         </el-button>
28         <el-button
29           type="primary"
30           plain
31           @click="openForm('create')"
32           v-hasPermi="['mpk:pack:create']"
33         >
34           <Pack pack="ep:plus" class="mr-5px" />
35           新增
36         </el-button>
37
38       </el-form-item>
39     </el-form>
40   </ContentWrap>
41
42   <!-- 列表 -->
43   <ContentWrap>
44     <el-table
45       v-loading="loading"
46       :data="list"
47       row-key="id"
48     >
49       <el-table-column prop="packName" label="名称"/>
50       <el-table-column prop="packDesc" label="描述"/>
51       <el-table-column prop="modelPath" label="模型路径"/>
52       <el-table-column prop="sort" label="排序"/>
53       <el-table-column label="操作" align="center" width="200px">
54         <template #default="scope">
55           <div class="flex items-center justify-center">
56             <el-button
57               link
58               type="primary"
59               @click="openForm('update', scope.row.id)"
60               v-hasPermi="['mpk:pack:update']"
61             >
62               编辑
63             </el-button>
64             <el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['mpk:pack:delete']">
65               <Pack pack="ep:delete"/>删除
66             </el-button>
67           </div>
68         </template>
69       </el-table-column>
70     </el-table>
71     <!-- 分页 -->
72     <Pagination
73       v-model:limit="queryParams.pageSize"
74       v-model:page="queryParams.pageNo"
75       :total="total"
76       @pagination="getList"
77     />
78   </ContentWrap>
79
80   <!-- 表单弹窗:添加/修改 -->
81   <PackForm ref="formRef" @success="getList" />
82 </template>
83 <script lang="ts" setup>
84 import {dateFormatter} from '@/utils/formatTime'
85 import * as MpkPackApi from '@/api/model/mpk/pack'
86 import PackForm from './PackForm.vue'
87
88 defineOptions({name: 'MpkPack'})
89
90 const message = useMessage() // 消息弹窗
91 const {t} = useI18n() // 国际化
92
93 const loading = ref(true) // 列表的加载中
94 const total = ref(0) // 列表的总页数
95 const list = ref([]) // 字典表格数据
96 const queryParams = reactive({
97   pageNo: 1,
98   pageSize: 10,
99   packName: ''
100 })
101 const queryFormRef = ref() // 搜索的表单
102
103 const getList = async () => {
104   loading.value = true
105   try {
106     const data = await MpkPackApi.getPage(queryParams)
107     list.value = data.list
108     total.value = data.total
109   } finally {
110     loading.value = false
111   }
112 }
113
114 /** 搜索按钮操作 */
115 const handleQuery = () => {
116   getList()
117 }
118
119 /** 重置按钮操作 */
120 const resetQuery = () => {
121   queryParams.pageNo = 1
122   queryFormRef.value.resetFields()
123   handleQuery()
124 }
125
126 /** 添加/修改操作 */
127 const formRef = ref()
128 const openForm = (type: string, id?: string) => {
129   formRef.value.open(type, id)
130 }
131
132 /** 删除按钮操作 */
133 const handleDelete = async (id: string) => {
134   try {
135     // 删除的二次确认
136     await message.delConfirm()
137     // 发起删除
138     await MpkPackApi.deletePack(id)
139     message.success(t('common.delSuccess'))
140     // 刷新列表
141     await getList()
142   } catch {
143   }
144 }
145
146 /** 初始化 **/
147 onMounted(async () => {
148   await getList()
149 })
150 </script>
151 <style scoped>
152 .mpk-pack-list {
153   height: 30px;
154   margin: 0;
155 }
156
157 </style>