liriming
3 天以前 ebc552900444d25b1158bf53d07f24c9ee36cc75
提交 | 用户 | 时间
ebc552 1 <template>
L 2   <!-- 搜索 -->
3   <ContentWrap>
4     <el-form
5       class="-mb-15px"
6       ref="queryFormRef"
7       :inline="true"
8       label-width="68px"
9     >
10       <el-form-item>
11         <el-button
12           type="primary"
13           plain
14           @click="openForm('create')"
15           v-hasPermi="['item:accuracy-rate:create']"
16         >
17           <Icon icon="ep:plus" class="mr-5px" />
18           新增
19         </el-button>
20       </el-form-item>
21     </el-form>
22   </ContentWrap>
23
24   <!-- 列表 -->
25   <ContentWrap>
26     <el-table v-loading="loading" :data="list">
27       <el-table-column label="预测项ID" header-align="center" align="center" min-width="150" prop="itemId" fixed/>
28       <el-table-column label="输出ID" header-align="center" align="center" min-width="150" prop="outId" />
29       <el-table-column label="取样长度" header-align="center" align="center" min-width="100" prop="sampleLength" />
30       <el-table-column label="值类型" header-align="center" align="center" min-width="50" prop="valueType" />
31       <el-table-column label="开始统计时间" header-align="center" align="center" min-width="50" prop="beginTime" />
32       <el-table-column label="精准误差" header-align="center" align="center" min-width="50" prop="inDeviation" />
33       <el-table-column label="精准度" header-align="center" align="center" min-width="100" prop="inAccuracyRate" />
34       <el-table-column label="不可信误差" header-align="center" align="center" min-width="100" prop="outDeviation" />
35       <el-table-column label="不可信率" header-align="center" align="center" min-width="100" prop="outAccuracyRate" />
36       <el-table-column label="是否启用" header-align="center" align="center" min-width="100" prop="isEnable" >
37         <template #default="scope">
38           <dict-tag :type="DICT_TYPE.COM_IS_INT" :value="scope.row.isEnable" />
39         </template>
40       </el-table-column>
41       <el-table-column label="创建时间" header-align="center" align="center" min-width="100" prop="createTime" />
42       <el-table-column label="操作" align="center" min-width="180" fixed="right">
43         <template #default="scope">
44           <el-button
45             link
46             type="primary"
47             @click="openForm('update', scope.row.id)"
48             v-hasPermi="['item:accuracy-rate:update']"
49           >
50             编辑
51           </el-button>
52           <el-button
53             link
54             type="danger"
55             @click="handleDelete(scope.row.id)"
56             v-hasPermi="['item:accuracy-rate:delete']"
57           >
58             删除
59           </el-button>
60           <el-button
61             link
62             type="danger"
63             @click="handleView(scope.row.id)"
64           >
65             查看历史
66           </el-button>
67         </template>
68       </el-table-column>
69     </el-table>
70     <!-- 分页 -->
71     <Pagination
72       :total="total"
73       v-model:page="queryParams.pageNo"
74       v-model:limit="queryParams.pageSize"
75       @pagination="getList"
76     />
77   </ContentWrap>
78
79   <!-- 表单弹窗:添加/修改 -->
80   <MmItemAccuracyRateForm ref="formRef" @success="getList" />
81   <MmItemAccuracyHis ref="MessageRef" />
82
83 </template>
84 <script lang="ts" setup>
85 import MmItemAccuracyRateForm from './MmItemAccuracyRateForm.vue'
86 import MmItemAccuracyHis from './MmItemAccuracyHisForm.vue'
87 import * as MmItemAccuracyRate from '@/api/model/pre/accuracy/rate'
88 import {DICT_TYPE} from "@/utils/dict";
89
90 defineOptions({name: 'DataMmItemAccuracyRate'})
91
92 const message = useMessage() // 消息弹窗
93 const {t} = useI18n() // 国际化
94
95 const loading = ref(true) // 列表的加载中
96 const total = ref(0) // 列表的总页数
97 const list = ref([]) // 列表的数据
98 const queryParams = reactive({
99   pageNo: 1,
100   pageSize: 10,
101 })
102 const queryFormRef = ref() // 搜索的表单
103
104 /** 查询列表 */
105 const getList = async () => {
106   loading.value = true
107   try {
108     const page = await MmItemAccuracyRate.getMmItemAccuracyRatePage(queryParams)
109     list.value = page.list
110     total.value = page.total
111   } finally {
112     loading.value = false
113   }
114 }
115
116 /** 添加/修改操作 */
117 const formRef = ref()
118 const openForm = (type: string, id?: number) => {
119   formRef.value.open(type, id)
120 }
121
122 /** 删除按钮操作 */
123 const handleDelete = async (id: number) => {
124   try {
125     // 删除的二次确认
126     await message.delConfirm()
127     // 发起删除
128     await MmItemAccuracyRate.deleteMmItemAccuracyRate(id)
129     message.success(t('common.delSuccess'))
130     // 刷新列表
131     await getList()
132   } catch {
133   }
134 }
135
136 /** 查看历史按钮操作 */
137 const MessageRef = ref()
138 const handleView = (id?: string) => {
139   MessageRef.value.open(id)
140 }
141
142 /** 初始化 **/
143 onMounted(async () => {
144   await getList()
145 })
146 </script>