潘志宝
2024-09-26 d3ee81e33f92f23ee579f3d72c26e011523e166b
提交 | 用户 | 时间
7462da 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     >
6e7f22 11       <el-form-item label="编号" prop="itemno">
7462da 12         <el-input
6e7f22 13           v-model="queryParams.itemno"
14           placeholder="请输入编号"
15           clearable
16           @keyup.enter="handleQuery"
17           class="!w-240px"
18         />
19       </el-form-item>
20       <el-form-item label="预测项名" prop="itemname">
21         <el-input
22           v-model="queryParams.itemname"
23           placeholder="请输入预测项名"
7462da 24           clearable
L 25           @keyup.enter="handleQuery"
26           class="!w-240px"
27         />
28       </el-form-item>
29       <el-form-item>
30         <el-button @click="handleQuery">
6e7f22 31           <Icon icon="ep:search" class="mr-5px"/>
7462da 32           搜索
L 33         </el-button>
34         <el-button @click="resetQuery">
6e7f22 35           <Icon icon="ep:refresh" class="mr-5px"/>
7462da 36           重置
L 37         </el-button>
38         <el-button
39           type="primary"
40           plain
41           @click="openForm('create')"
cd9f11 42           v-hasPermi="['model:pre-item:create']"
7462da 43         >
6e7f22 44           <Icon icon="ep:plus" class="mr-5px"/>
7462da 45           新增
L 46         </el-button>
47       </el-form-item>
48     </el-form>
49   </ContentWrap>
50
51   <!-- 列表 -->
52   <ContentWrap>
53     <el-table v-loading="loading" :data="list">
6e7f22 54       <el-table-column label="编号" align="center" prop="itemno"/>
d3ee81 55       <el-table-column label="预测项名" header-align="center" align="left" min-width="200" prop="itemname"/>
56       <el-table-column label="类型名称" align="center" prop="itemtypename">
57         <template #default="scope">
58           <el-tag v-if="scope.row.itemtypename === 'NormalItem'" size="small" type="success">{{scope.row.itemtypename}}</el-tag>
59           <el-tag v-else size="small" type="primary">{{scope.row.itemtypename}}</el-tag>
60         </template>
61       </el-table-column>
62       <el-table-column label="预测长度" align="center" prop="predictlength"/>
63       <el-table-column label="粒度" align="center" prop="granularity">
64         <template #default="scope">
65           <dict-tag :type="DICT_TYPE.TIME_GRANULARITY" :value="scope.row.granularity" />
66         </template>
67       </el-table-column>
68       <el-table-column label="是否融合" align="center" prop="isfuse">
69         <template #default="scope">
70           <dict-tag :type="DICT_TYPE.COM_IS_INT" :value="scope.row.isfuse" />
71         </template>
72       </el-table-column>
73       <el-table-column label="是否检查" align="center" prop="workchecked">
74         <template #default="scope">
75           <dict-tag :type="DICT_TYPE.COM_IS_INT" :value="scope.row.workchecked" />
76         </template>
77       </el-table-column>
78       <el-table-column label="是否启用" align="center" prop="status">
79         <template #default="scope">
80           <dict-tag :type="DICT_TYPE.COM_IS_INT" :value="scope.row.status" />
81         </template>
82       </el-table-column>
6e7f22 83       <el-table-column label="数据点名称" align="center" prop="tagname"/>
84       <el-table-column label="存放表" align="center" prop="tablename"/>
7462da 85       <el-table-column label="操作" align="center" min-width="110" fixed="right">
L 86         <template #default="scope">
87           <el-button
88             link
89             type="primary"
6e7f22 90             @click="openForm('update', scope.row.id, scope.row.itemtypename)"
cd9f11 91             v-hasPermi="['model:pre-item:update']"
7462da 92           >
L 93             编辑
94           </el-button>
95           <el-button
96             link
97             type="danger"
98             @click="handleDelete(scope.row.id)"
cd9f11 99             v-hasPermi="['model:pre-item:delete']"
7462da 100           >
L 101             删除
102           </el-button>
103         </template>
104       </el-table-column>
105     </el-table>
106     <!-- 分页 -->
107     <Pagination
108       :total="total"
109       v-model:page="queryParams.pageNo"
110       v-model:limit="queryParams.pageSize"
111       @pagination="getList"
112     />
113   </ContentWrap>
114
115   <!-- 表单弹窗:添加/修改 -->
6e7f22 116   <MmPredictItemForm ref="formRef" @success="getList"/>
7462da 117
L 118 </template>
119 <script lang="ts" setup>
6e7f22 120 import MmPredictItemForm from './MmPredictItemForm.vue'
121 import * as MmPredictItem from '@/api/model/pre/predict'
d3ee81 122 import {DICT_TYPE} from "@/utils/dict";
7462da 123
6e7f22 124 defineOptions({name: 'DataMmPredictItem'})
7462da 125
6e7f22 126 const message = useMessage() // 消息弹窗
127 const {t} = useI18n() // 国际化
7462da 128
6e7f22 129 const loading = ref(true) // 列表的加载中
130 const total = ref(0) // 列表的总页数
131 const list = ref([]) // 列表的数据
132 const queryParams = reactive({
133   pageNo: 1,
134   pageSize: 10,
135   itemno: undefined,
136   itemname: undefined,
137 })
138 const isList = ref([
139   {
140     code: 0,
141     name: '否'
142   },
143   {
144     code: 1,
145     name: '是'
146   }])
147 const queryFormRef = ref() // 搜索的表单
148 const exportLoading = ref(false) // 导出的加载中
7462da 149
6e7f22 150 /** 查询列表 */
151 const getList = async () => {
152   loading.value = true
153   try {
154     const page = await MmPredictItem.getMmPredictItemPage(queryParams)
155     list.value = page.list
156     total.value = page.total
157   } finally {
158     loading.value = false
7462da 159   }
6e7f22 160 }
7462da 161
6e7f22 162 /** 搜索按钮操作 */
163 const handleQuery = () => {
164   queryParams.pageNo = 1
165   getList()
166 }
7462da 167
6e7f22 168 /** 重置按钮操作 */
169 const resetQuery = () => {
170   queryFormRef.value.resetFields()
171   handleQuery()
172 }
7462da 173
6e7f22 174 /** 添加/修改操作 */
175 const formRef = ref()
176 const openForm = (type: string, id?: number, itemtypename?: string) => {
177   formRef.value.open(type, id, itemtypename)
178 }
7462da 179
6e7f22 180 /** 删除按钮操作 */
181 const handleDelete = async (id: number) => {
182   try {
183     // 删除的二次确认
184     await message.delConfirm()
185     // 发起删除
186     await MmPredictItem.deleteMmPredictItem(id)
187     message.success(t('common.delSuccess'))
188     // 刷新列表
7462da 189     await getList()
6e7f22 190   } catch {
191   }
192 }
193
194 /** 初始化 **/
195 onMounted(async () => {
196   await getList()
197 })
7462da 198 </script>