Files
pqs-9100_client/frontend/src/views/system/base/index.vue
2024-11-20 11:02:50 +08:00

195 lines
8.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' >
<el-tabs type="border-card">
<el-tab-pane label="检测相关配置">
<div class="form-grid">
<el-divider >检测配置</el-divider>
<el-row :gutter="24" >
<el-col :span="8">
<el-form-item label='一键检测方式' prop='autoGenerate' :label-width="125">
<el-select v-model="TestConfigForm.autoGenerate" clearable placeholder="请选择一键检测方式" >
<el-option label="只检测,报告后续手动生成" :value="0"></el-option>
<el-option label="检测和生成报告同时进行" :value="1"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='复检最大次数' prop='maxTime' >
<el-input-number v-model='TestConfigForm.maxTime' :min='1' :max='999' />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label='数据处理原则' prop='dataRule' :label-width="125">
<el-select v-model="TestConfigForm.dataRule" clearable placeholder="请选择数据处理原则" >
<el-option
v-for="item in dictStore.getDictData('Data_Rule')"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form :model="RegResForm" ref='dialogFormRef' :rules='rules' >
<el-divider >有效数据配置</el-divider>
<el-row :gutter="24" >
<el-col :span="8">
<el-form-item label="录波数据有效组数" prop="waveRecord" :label-width="125">
<el-input v-model.number='RegResForm.waveRecord' placeholder="/" disabled/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实时数据有效组数" prop="realTime" :label-width="125" >
<el-input number v-model.number='RegResForm.realTime' placeholder="请输入实时数据有效组数"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="统计数据有效组数" prop="statistics" :label-width="125" >
<el-input number v-model.number='RegResForm.statistics' placeholder="请输入统计数据有效组数"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="闪变数据有效组数" prop="flicker" :label-width="125" >
<el-input number v-model.number='RegResForm.flicker' placeholder="请输入闪变数据有效组数"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm()">保存配置</el-button>
</div>
</el-tab-pane>
<el-tab-pane label="日志配置">
</el-tab-pane>
<el-tab-pane label="数据删除备份配置">
</el-tab-pane>
</el-tabs>
</div>
</template>
<script setup lang='tsx''>
import { type Dict } from '@/api/system/dictionary/interface'
import { ProTableInstance, ColumnProps } from '@/components/ProTable/interface'
import PqPopup from '@/views/system/dictionary/dictPq/components/pqPopup.vue'
import { useDictStore } from '@/stores/modules/dict'
import { useHandleData } from '@/hooks/useHandleData'
import { computed, onMounted, reactive, Ref, ref } from 'vue'
import {type Base } from '@/api/system/base/interface'
import {type VersionRegister } from '@/api/system/versionRegister/interface'
import {getTestConfig,updateTestConfig } from '@/api/system/base/index'
import {getRegRes,updateRegRes } from '@/api/system/versionRegister/index'
import { ElMessage, FormItemRule } from 'element-plus'
import { useModeStore } from '@/stores/modules/mode'; // 引入模式 store
const modeStore = useModeStore();
const dictStore = useDictStore()
const dialogFormRef = ref()
const mode = ref()
const TestConfigForm = ref<Base.ResTestConfig>({
id: '',
autoGenerate: 0,
maxTime: 3,
dataRule: '',
state: 1, //状态
})
const RegResForm = ref<VersionRegister.ResSys_Reg_Res>({
id: '', //版本注册表Id
type: '', //版本类型(模拟式、数字式、比对式)
code: '', //注册码
licenseKey: '', //密钥
expireDate: '', //到期时间
waveRecord: 0,
realTime: 20,
statistics: 5,
flicker: 1,
state: 1, //状态
})
const RegResForm2 = ref<VersionRegister.Sys_Reg_Res>({
id:'',
waveRecord: 0,
realTime: 20,
statistics: 5,
flicker: 1,
})
// 定义弹出组件元信息
const rules = computed(() =>{
const baseRules : Ref<Record<string, Array<FormItemRule>>> = ref({
realTime :[
{required:true,trigger:'blur',message:'实时数据有效组数必填!'},
{ pattern: /^[0-9]\d*$/, message: '实时数据有效组数为含0的正整数', trigger: 'blur' }
],
statistics :[
{required:true,trigger:'blur',message:'统计数据有效组数必填!'},
{ pattern: /^[0-9]\d*$/, message: '统计数据有效组数为含0的正整数', trigger: 'blur' }
],
flicker :[
{required:true,trigger:'blur',message:'闪变数据有效组数必填!'},
{ pattern: /^[0-9]\d*$/, message: '闪变数据有效组数为含0的正整数', trigger: 'blur' }
],
});
if(mode.value == '比对式'){
baseRules.value.waveRecord = [
{required:true,trigger:'blur',message:'录波数据有效组数必填!'},
{ pattern: /^[0-9]\d*$/, message: '录波数据有效组数为含0的正整数', trigger: 'blur' }
];
}
return baseRules;
})
const TestConfigList = ref<Base.ResTestConfig>()
const RegResList = ref<VersionRegister.ResSys_Reg_Res>()
// 初始化时获取
onMounted(async () => {
mode.value =modeStore.currentMode.replace('模块', '');//pinia中获取当前是那个模块进来的临时处理去除模块两字
const response = await getTestConfig()
TestConfigForm.value = response.data as unknown as Base.ResTestConfig
//console.log(mode)
const patternId = dictStore.getDictData('Pattern').find(item=>item.name=== mode.value)?.id//获取数据字典中对应的id
RegResForm.value.type = patternId || '';
const response2 = await getRegRes(RegResForm.value)
RegResForm.value = response2.data as unknown as VersionRegister.ResSys_Reg_Res
})
const submitForm = async () => {
try {
dialogFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
await updateTestConfig(TestConfigForm.value);
// 提取并传递 4 个参数
const { id,waveRecord, realTime, statistics, flicker } = RegResForm.value
RegResForm2.value = { id,waveRecord, realTime, statistics, flicker }
if(RegResForm.value.waveRecord == null){
RegResForm2.value.waveRecord = -1
}
await updateRegRes(RegResForm2.value);
ElMessage.success({ message: `保存配置成功!` })
}
})
} catch (err) {
console.error('验证过程中出现错误', err)
}
}
</script>
<style scoped>
.dialog-footer {
float: right;
}
</style>