潘志宝
2024-11-22 df90c0c5cfa4de114798015b92120ad8ba8b4826
提交 | 用户 | 时间
325d3d 1 <template>
L 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="instanceName">
12         <el-input
13           v-model="queryParams.instanceName"
14           placeholder="请输入实例名称"
15           clearable
16           @keyup.enter="handleQuery"
17           class="!w-240px"
18         />
19       </el-form-item>
20       <el-form-item>
21         <el-button @click="handleQuery">
24d32b 22           <Icon icon="ep:search" class="mr-5px"/>
325d3d 23           搜索
L 24         </el-button>
25         <el-button @click="resetQuery">
24d32b 26           <Icon icon="ep:refresh" class="mr-5px"/>
325d3d 27           重置
L 28         </el-button>
29         <el-button
30           type="primary"
31           plain
32           @click="openForm('create')"
24d32b 33           v-hasPermi="['data:channel-kio:create']"
325d3d 34         >
24d32b 35           <Icon icon="ep:plus" class="mr-5px"/>
325d3d 36           新增
L 37         </el-button>
38       </el-form-item>
39     </el-form>
40   </ContentWrap>
41
42   <!-- 列表 -->
43   <ContentWrap>
44     <el-table v-loading="loading" :data="list">
24d32b 45       <el-table-column label="实例名称" align="center" prop="instanceName"/>
46       <el-table-column label="IP地址" align="center" prop="address"/>
47       <el-table-column label="端口" align="center" prop="port"/>
48       <el-table-column label="用户名" align="center" prop="username"/>
325d3d 49       <el-table-column label="操作" align="center" min-width="110" fixed="right">
L 50         <template #default="scope">
51           <el-button
52             link
53             type="primary"
54             @click="openForm('update', scope.row.id)"
24d32b 55             v-hasPermi="['data:channel-kio:update']"
325d3d 56           >
L 57             编辑
58           </el-button>
59           <el-button
60             link
24d32b 61             type="primary"
dea4e4 62             @click="openTagList(scope.row.instanceName)"
24d32b 63             v-hasPermi="['data:channel-kio:update']"
64           >
65             TAG
66           </el-button>
67           <el-button
68             link
325d3d 69             type="danger"
L 70             @click="handleDelete(scope.row.id)"
24d32b 71             v-hasPermi="['data:channel-kio:delete']"
325d3d 72           >
L 73             删除
74           </el-button>
75         </template>
76       </el-table-column>
77     </el-table>
78     <!-- 分页 -->
79     <Pagination
80       :total="total"
81       v-model:page="queryParams.pageNo"
82       v-model:limit="queryParams.pageSize"
83       @pagination="getList"
84     />
85   </ContentWrap>
86
87   <!-- 表单弹窗:添加/修改 -->
24d32b 88   <KioDeviceForm ref="formRef" @success="getList"/>
89
90   <!-- TAG弹窗:添加/修改 -->
91   <TagList ref="tagRef" @success="getList" />
325d3d 92
L 93 </template>
94 <script lang="ts" setup>
24d32b 95   import * as KioApi from '@/api/data/channel/kio'
96   import KioDeviceForm from './KioDeviceForm.vue'
97   import TagList from './tag/index.vue'
325d3d 98
24d32b 99   defineOptions({name: 'DataKio'})
325d3d 100
L 101   const message = useMessage() // 消息弹窗
102   const {t} = useI18n() // 国际化
103
104   const loading = ref(true) // 列表的加载中
105   const total = ref(0) // 列表的总页数
106   const list = ref([]) // 列表的数据
107   const queryParams = reactive({
108     pageNo: 1,
109     pageSize: 10,
110     instanceName: undefined,
111     address: undefined
112   })
113   const queryFormRef = ref() // 搜索的表单
114   const exportLoading = ref(false) // 导出的加载中
115
116   /** 查询列表 */
117   const getList = async () => {
118     loading.value = true
119     try {
120       const page = await KioApi.getKioDevicePage(queryParams)
121       list.value = page.list
122       total.value = page.total
123     } finally {
124       loading.value = false
125     }
126   }
127
128   /** 搜索按钮操作 */
129   const handleQuery = () => {
130     queryParams.pageNo = 1
131     getList()
132   }
133
134   /** 重置按钮操作 */
135   const resetQuery = () => {
136     queryFormRef.value.resetFields()
137     handleQuery()
138   }
139
140   /** 添加/修改操作 */
141   const formRef = ref()
142   const openForm = (type: string, id?: number) => {
143     formRef.value.open(type, id)
144   }
145
24d32b 146   /** TAG操作 */
147   const tagRef = ref()
93ce03 148   const openTagList = (id?: string,name?: string) => {
D 149     tagRef.value.open(id,name)
24d32b 150   }
151
325d3d 152   /** 删除按钮操作 */
L 153   const handleDelete = async (id: number) => {
154     try {
155       // 删除的二次确认
156       await message.delConfirm()
157       // 发起删除
158       await KioApi.deleteKioDevice(id)
159       message.success(t('common.delSuccess'))
160       // 刷新列表
161       await getList()
162     } catch {
163     }
164   }
165
166   /** 初始化 **/
167   onMounted(async () => {
168     await getList()
169   })
170 </script>