Files
pqs-9100_client/frontend/src/views/machine/testScript/index.vue
2024-11-20 15:13:50 +08:00

123 lines
3.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class='table-box'>
<ProTable
ref='proTable'
:columns='columns'
:request-api="getPqScriptList"
>
<!-- :data='testScriptData' 如果要显示静态数据就切换该配置 -->
<!-- 表格 header 按钮 -->
<template #tableHeader='scope'>
<el-button v-auth.testScript="'add'" type='primary' :icon='CirclePlus' @click="openDialog('add')">新增</el-button>
<el-button v-auth.testScript="'batchDelete'" type='danger' :icon='Delete' plain :disabled='!scope.isSelected'
@click='batchDelete(scope.selectedListIds)'>
批量删除
</el-button>
</template>
<!-- 表格操作 -->
<template #operation='scope'>
<el-button type='primary' link :icon='EditPen' :model-value="false" @click="openDialog('edit', scope.row)">编辑</el-button>
<el-button type='primary' link :icon='Delete' @click='handleDelete(scope.row)'>删除</el-button>
<el-button v-auth.testScript="'upgrade'" type='primary' v-if="scope.row.type !== 1" link :icon='Share' @click='updateType(scope.row)'>升级</el-button>
</template>
</ProTable>
</div>
</template>
<script setup lang='tsx' name='useRole'>
import { type TestScript } from '@/api/device/interface/testScript'
import { useHandleData } from '@/hooks/useHandleData'
import { useDownload } from '@/hooks/useDownload'
import { useAuthButtons } from '@/hooks/useAuthButtons'
import ProTable from '@/components/ProTable/index.vue'
import type{ ProTableInstance, ColumnProps } from '@/components/ProTable/interface'
import { CirclePlus, Delete, EditPen, Share } from '@element-plus/icons-vue'
import { useDictStore } from '@/stores/modules/dict'
import {
getPqScriptList,updatePqScript,deletePqScript,
} from '@/api/device/testScript/index'
import { reactive, ref } from 'vue'
const dictStore = useDictStore()
// ProTable 实例
const proTable = ref<ProTableInstance>()
const templateTypes = reactive([
{ id: 0, name: '脚本' },
{ id: 1, name: '模版' }
]);
// 表格配置项
const columns = reactive<ColumnProps<TestScript.ResTestScript>[]>([
{ type: 'selection', fixed: 'left', width: 70 },
{ type: 'index', fixed: 'left', width: 70, label: '序号' },
{
prop: 'name',
label: '名称',
minWidth: 350,
},
{
prop: 'standardName',
label: '参照标准名称',
minWidth: 150,
},
{
prop: 'standardTime',
label: '标准推行时间',
minWidth: 150,
},
{
prop: 'valueType',
label: '值类型',
enum: dictStore.getDictData('Script_Value_Type'),
fieldNames: { label: 'name', value: 'id' },
search: { el: 'select' },
minWidth: 150,
},
{
prop: 'type',
label: '模板类型',
minWidth: 150,
render: scope => {
return (
<el-tag type={scope.row.type ? 'success' : 'primary'} > {scope.row.type ? '模版' : '脚本'} </el-tag>
)
},
},
{ prop: 'operation', label: '操作', fixed: 'right', width: 250 },
])
// 打开 drawer(新增、编辑)
const openDialog = (titleType: string, row: Partial<TestScript.ResTestScript> = {}) => {
}
// 批量删除设备
const batchDelete = async (id: string[]) => {
await useHandleData(deletePqScript, id, '删除所选脚本')
proTable.value?.clearSelection()
proTable.value?.getTableList()
}
// 删除设备
const handleDelete = async (params: TestScript.ResTestScript) => {
await useHandleData(deletePqScript, [params.id], `删除【${params.name}】脚本`)
proTable.value?.getTableList()
}
// 升级为模版
const updateType = async (params: TestScript.ResTestScript) => {
await useHandleData(updatePqScript, params, `升级【${params.name}】为模版`)
proTable.value?.getTableList()
}
</script>