微调
This commit is contained in:
@@ -25,6 +25,7 @@ export default {
|
||||
personalData: "Personal Data",
|
||||
changePassword: "Change Password",
|
||||
changeMode:"Change Mode",
|
||||
versionRegister:"Version Register",
|
||||
logout: "Logout"
|
||||
}
|
||||
};
|
||||
|
||||
@@ -25,6 +25,7 @@ export default {
|
||||
personalData: "个人信息",
|
||||
changePassword: "修改密码",
|
||||
changeMode:"模式切换",
|
||||
versionRegister:"版本注册",
|
||||
logout: "退出登录"
|
||||
}
|
||||
};
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
<el-dropdown-item @click="changeMode">
|
||||
<el-icon><Edit /></el-icon>{{ $t("header.changeMode") }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item @click="openDialog('versionRegisterRef')">
|
||||
<el-icon><SetUp /></el-icon>{{ $t("header.versionRegister") }}
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
@@ -29,6 +32,8 @@
|
||||
<InfoDialog ref="infoRef"></InfoDialog>
|
||||
<!-- passwordDialog -->
|
||||
<PasswordDialog ref="passwordRef"></PasswordDialog>
|
||||
<!-- versionRegisterDialog -->
|
||||
<VersionDialog ref="versionRegisterRef"></VersionDialog>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
@@ -40,6 +45,7 @@ import { useUserStore } from "@/stores/modules/user";
|
||||
import { ElMessageBox, ElMessage } from "element-plus";
|
||||
import InfoDialog from "./InfoDialog.vue";
|
||||
import PasswordDialog from "./PasswordDialog.vue";
|
||||
import VersionDialog from "@/views/system/versionRegister/index.vue";
|
||||
import { computed } from "vue";
|
||||
import { Avatar } from "@element-plus/icons-vue";
|
||||
import AssemblySize from "./components/AssemblySize.vue";
|
||||
@@ -75,9 +81,12 @@ const logout = () => {
|
||||
// 打开修改密码和个人信息弹窗
|
||||
const infoRef = ref<InstanceType<typeof InfoDialog> | null>(null);
|
||||
const passwordRef = ref<InstanceType<typeof PasswordDialog> | null>(null);
|
||||
const versionRegisterRef = ref<InstanceType<typeof VersionDialog> | null>(null);
|
||||
|
||||
const openDialog = (ref: string) => {
|
||||
if (ref == "infoRef") infoRef.value?.openDialog();
|
||||
if (ref == "passwordRef") passwordRef.value?.openDialog();
|
||||
if (ref == "versionRegisterRef") versionRegisterRef.value?.openDialog();
|
||||
};
|
||||
//模式切换
|
||||
const changeMode = () => {
|
||||
|
||||
26
frontend/src/stores/modules/mode.ts
Normal file
26
frontend/src/stores/modules/mode.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
// src/stores/modules/mode.ts
|
||||
import { defineStore } from 'pinia';
|
||||
|
||||
// export const useModeStore = defineStore('mode', {
|
||||
// state: () => ({
|
||||
// currentMode: '' as string,
|
||||
// }),
|
||||
// actions: {
|
||||
// setCurrentMode(modeName: string) {
|
||||
// this.currentMode = modeName;
|
||||
// },
|
||||
// },
|
||||
// });
|
||||
|
||||
|
||||
export const useModeStore = defineStore('mode', {
|
||||
state: () => ({
|
||||
currentMode: localStorage.getItem('currentMode') || '' as string,
|
||||
}),
|
||||
actions: {
|
||||
setCurrentMode(modeName: string) {
|
||||
this.currentMode = modeName;
|
||||
localStorage.setItem('currentMode', modeName); // 保存到 localStorage
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -124,12 +124,21 @@ const resetFormContent = () => {
|
||||
const formRuleRef = ref<FormInstance>()
|
||||
const rules : Ref<Record<string, Array<FormItemRule>>> = ref({
|
||||
name :[{required:true,trigger:'blur',message:'菜单名称必填!'}],
|
||||
path :[{required:true,trigger:'blur',message:'菜单路径必填!'}],
|
||||
type :[{required:true,trigger:'change',message:'菜单类型必选!'}],
|
||||
component :[{required:true,trigger:'blur',message:'组件地址必填!'}],
|
||||
code :[{required:true,trigger:'blur',message:'编码必填!'}]
|
||||
})
|
||||
|
||||
watch(() => formContent.value.type, (newVal) => {
|
||||
if (newVal === 1) {
|
||||
// 选择按钮时,路由地址和组件地址无需校验
|
||||
rules.value.path = [];
|
||||
rules.value.component = [];
|
||||
} else {
|
||||
// 其他情况下,路由地址和组件地址需要校验
|
||||
rules.value.path = [{ required: true, trigger: 'blur', message: '路由地址必填!' }];
|
||||
rules.value.component = [{ required: true, trigger: 'blur', message: '组件地址必填!' }];
|
||||
}
|
||||
});
|
||||
|
||||
// 关闭弹窗
|
||||
const close = () => {
|
||||
dialogVisible.value = false
|
||||
@@ -155,7 +164,7 @@ const displayPid = computed({
|
||||
const save = () => {
|
||||
try {
|
||||
dialogFormRef.value?.validate(async (valid: boolean) => {
|
||||
console.log(formContent.value)
|
||||
|
||||
if (formContent.value.pid === undefined || formContent.value.pid === null || formContent.value.pid === '') {
|
||||
formContent.value.pid = '0';
|
||||
}
|
||||
|
||||
@@ -160,7 +160,6 @@
|
||||
LoginNameIsShow.value = true
|
||||
formContent.value = { ...data }
|
||||
|
||||
console.log(formContent.value,111);
|
||||
|
||||
} else {
|
||||
IsPasswordShow.value = true
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
import { useRouter } from "vue-router";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { useAuthStore } from "@/stores/modules/auth";
|
||||
|
||||
import model from "./tabs/model.vue";
|
||||
import dashboard from "./tabs/dashboard.vue";
|
||||
import { onMounted } from "vue";
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="handelOpen(item.isActive)"
|
||||
@click="handelOpen(item)"
|
||||
:disabled="item.isActive == false"
|
||||
>进入检测</el-button
|
||||
>
|
||||
@@ -33,7 +33,9 @@
|
||||
import { useRouter } from "vue-router";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { useAuthStore } from "@/stores/modules/auth";
|
||||
import { useModeStore } from "@/stores/modules/mode"; // 引入模式 store
|
||||
const authStore = useAuthStore();
|
||||
const modeStore = useModeStore(); // 使用模式 store
|
||||
const activeIndex = ref("1-1");
|
||||
const router = useRouter();
|
||||
const modeList = [
|
||||
@@ -56,8 +58,10 @@ const modeList = [
|
||||
isActive: false,
|
||||
},
|
||||
];
|
||||
const handelOpen = async (isActive: any) => {
|
||||
const handelOpen = async (item: any) => {
|
||||
|
||||
await authStore.setShowMenu();
|
||||
modeStore.setCurrentMode(item.name); // 将模式名称存入 store
|
||||
return;
|
||||
if (isActive) {
|
||||
router.push({ path: "/static" });
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<el-divider >检测配置</el-divider>
|
||||
<el-row :gutter="24" >
|
||||
<el-col :span="8">
|
||||
<el-form-item label='一键检测方式' prop='autoGenerate' :label-width="100">
|
||||
<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>
|
||||
@@ -14,12 +14,12 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label='复检最大次数' prop='maxTime' :label-width="100">
|
||||
<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="100">
|
||||
<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')"
|
||||
@@ -32,6 +32,7 @@
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-form :model="RegResForm" ref='dialogFormRef' :rules='rules' >
|
||||
<el-divider >有效数据配置</el-divider>
|
||||
<el-row :gutter="24" >
|
||||
<el-col :span="8">
|
||||
@@ -40,22 +41,22 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="实时数据有效组数" prop="realTime" :label-width="125">
|
||||
<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-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-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>
|
||||
@@ -77,14 +78,18 @@
|
||||
import PqPopup from '@/views/system/dictionary/dictPq/components/pqPopup.vue'
|
||||
import { useDictStore } from '@/stores/modules/dict'
|
||||
import { useHandleData } from '@/hooks/useHandleData'
|
||||
import { onMounted, reactive, ref } from 'vue'
|
||||
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 } from 'element-plus'
|
||||
import { el } from 'element-plus/es/locale'
|
||||
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,
|
||||
@@ -106,23 +111,53 @@ import { el } from 'element-plus/es/locale'
|
||||
state: 1, //状态
|
||||
})
|
||||
|
||||
const RegResForm2 = ref<VersionRegister.Sys_Reg_Res>({
|
||||
waveRecord: 0,
|
||||
realTime: 20,
|
||||
statistics: 5,
|
||||
flicker: 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
|
||||
|
||||
const patternId = dictStore.getDictData('Pattern').find(item=>item.name==='模拟式')?.id
|
||||
//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
|
||||
@@ -131,7 +166,8 @@ const RegResForm2 = ref<VersionRegister.Sys_Reg_Res>({
|
||||
|
||||
const submitForm = async () => {
|
||||
try {
|
||||
if (TestConfigForm.value.id) {
|
||||
dialogFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
await updateTestConfig(TestConfigForm.value);
|
||||
|
||||
// 提取并传递 4 个参数
|
||||
@@ -145,6 +181,7 @@ const RegResForm2 = ref<VersionRegister.Sys_Reg_Res>({
|
||||
|
||||
ElMessage.success({ message: `保存配置成功!` })
|
||||
}
|
||||
})
|
||||
} catch (err) {
|
||||
console.error('验证过程中出现错误', err)
|
||||
}
|
||||
|
||||
54
frontend/src/views/system/versionRegister/index.vue
Normal file
54
frontend/src/views/system/versionRegister/index.vue
Normal file
@@ -0,0 +1,54 @@
|
||||
<template>
|
||||
<el-dialog v-model="dialogVisible" title="程序激活" width="500px" draggable>
|
||||
<el-form :model="formContent">
|
||||
<el-form-item label="程序版本号" prop="pid" :label-width="100">
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="模拟式模块" prop="pid" :label-width="100">
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="数字式模块" prop="pid" :label-width="100">
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="比对式模块" prop="pid" :label-width="100">
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="序列号" prop="pid" :label-width="100">
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="注册码" prop="pid" :label-width="100">
|
||||
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="dialogVisible = false">激活</el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
const formContent = ref<Function.ResFunction>({
|
||||
id: '',//资源表Id
|
||||
pid:'',//节点(0为根节点)
|
||||
pids:'',//节点上层所有节点
|
||||
name: '',//名称
|
||||
code:'',//资源标识
|
||||
path:'',//路径
|
||||
component:'',
|
||||
icon:undefined as string | undefined, // 图标
|
||||
sort:100,//排序
|
||||
type:0,//资源类型0-菜单、1-按钮、2-公共资源、3-服务间调用资源
|
||||
remark: '',//权限资源描述
|
||||
state:1,//权限资源状态
|
||||
})
|
||||
const dialogVisible = ref(false);
|
||||
const openDialog = () => {
|
||||
dialogVisible.value = true;
|
||||
};
|
||||
|
||||
defineExpose({ openDialog });
|
||||
</script>
|
||||
Reference in New Issue
Block a user