dongyukun
2024-11-06 2de83496f3ac13c63b45c5c93e37b4bb044522c3
提交 | 用户 | 时间
afc4d5 1 <template>
D 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="chartName">
12         <el-input
13           v-model="queryParams.chartName"
14           placeholder="请输入图表名称"
15           clearable
16           class="!w-240px"
17         />
18       </el-form-item>
0c184a 19       <el-form-item label="图表编码" prop="chartCode">
afc4d5 20         <el-input
D 21           v-model="queryParams.chartCode"
0c184a 22           placeholder="请输入图表编码"
afc4d5 23           clearable
D 24           class="!w-240px"
25         />
26       </el-form-item>
27       <el-form-item>
28         <el-button @click="handleQuery">
29           <Icon icon="ep:search" class="mr-5px"/>
30           搜索
31         </el-button>
32         <el-button @click="resetQuery">
33           <Icon icon="ep:refresh" class="mr-5px"/>
34           重置
35         </el-button>
36         <el-button
37           type="primary"
38           plain
39           @click="openForm('create')"
40           v-hasPermi="['model:chart:create']"
41         >
42           <Icon icon="ep:plus" class="mr-5px" />
43           新增
44         </el-button>
45
46       </el-form-item>
47     </el-form>
48   </ContentWrap>
49
50   <!-- 列表 -->
51   <ContentWrap>
52     <el-table
53       v-loading="loading"
54       :data="list"
55       row-key="id"
56     >
57       <el-table-column prop="chartName" label="图表名称"/>
58       <el-table-column prop="chartCode" label="图表编码"/>
59       <el-table-column prop="createTime" :formatter="dateFormatter" label="创建时间"/>
60       <el-table-column label="操作" align="center" width="200px">
61         <template #default="scope">
62           <div class="flex items-center justify-center">
63             <el-button
64               link
65               type="primary"
66               @click="openForm('update', scope.row.id)"
67               v-hasPermi="['model:chart:update']"
68             >
69               编辑
70             </el-button>
71             <el-button
72               link
73               type="primary"
74               @click="openChartParam(scope.row.id)"
75               v-hasPermi="['model:chart:update']"
76             >
77               参数
78             </el-button>
79             <el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['model:chart:delete']">
80               删除
81             </el-button>
82           </div>
83         </template>
84       </el-table-column>
85     </el-table>
86     <!-- 分页 -->
87     <Pagination
88       v-model:limit="queryParams.limit"
89       v-model:page="queryParams.page"
90       :total="total"
91       @pagination="getList"
92     />
93   </ContentWrap>
94
95   <!-- 表单弹窗:添加/修改 -->
96   <ChartForm ref="formRef" @success="getList" />
97
98   <!-- 分组列表 -->
99   <ChartParam ref="ChartParamRef" />
100
101 </template>
102 <script lang="ts" setup>
103 import {dateFormatter} from '@/utils/formatTime'
104 import * as ChartApi from '@/api/model/mpk/chart'
105 import ChartForm from './ChartForm.vue'
106 import ChartParam from './param/index.vue'
107
108
109 defineOptions({name: 'Chart'})
110
111 const message = useMessage() // 消息弹窗
112 const {t} = useI18n() // 国际化
113
114 const loading = ref(true) // 列表的加载中
115 const total = ref(0) // 列表的总页数
116 const list = ref([]) // 字典表格数据
117 const queryParams = reactive({
118   page: 1,
119   limit: 10,
120   chartName: '',
121   chartCode: ''
122 })
123 const queryFormRef = ref() // 搜索的表单
124
125 const getList = async () => {
126   loading.value = true
127   try {
128     const data = await ChartApi.getPage(queryParams)
129     list.value = data.list
130     total.value = data.total
131   } finally {
132     loading.value = false
133   }
134 }
135
136 /** 搜索按钮操作 */
137 const handleQuery = () => {
138   getList()
139 }
140
141 /** 重置按钮操作 */
142 const resetQuery = () => {
143   queryFormRef.value.resetFields()
144   handleQuery()
145 }
146
147 /** 添加/修改操作 */
148 const formRef = ref()
149 const openForm = (type: string, id?: string) => {
150   formRef.value.open(type, id)
151 }
152
153 /** 删除按钮操作 */
154 const handleDelete = async (id: string) => {
155   try {
156     // 删除的二次确认
157     await message.delConfirm()
158     // 发起删除
159     await ChartApi.del(id)
160     message.success(t('common.delSuccess'))
161     // 刷新列表
162     await getList()
163   } catch {
164   }
165 }
166
167 /** List操作 */
168 const ChartParamRef = ref()
169 const openChartParam = (id?: string) => {
170   ChartParamRef.value.open(id)
171 }
172
173 /** 初始化 **/
174 onMounted(async () => {
175   await getList()
176 })
177 </script>