报告模版
This commit is contained in:
@@ -54,6 +54,32 @@
|
||||
<el-radio :value="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="关联报告模版" :label-width="100" prop='associateReport'>
|
||||
<el-radio-group v-model="formContent.associateReport">
|
||||
<el-radio :value="1">是</el-radio>
|
||||
<el-radio :value="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="模版名称" prop="reportTemplateName" :label-width="100" v-if="formContent.associateReport === 1">
|
||||
<el-select v-model="formContent.reportTemplateName" placeholder="请选择报告模版" autocomplete="off" :disabled="isSelectDisabled" @change="handleReportChange">
|
||||
<el-option
|
||||
v-for="(option, index) in pqReportName"
|
||||
:key="index"
|
||||
:label="option.name"
|
||||
:value="option.name"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="模版版本号" prop="reportTemplateVersion" :label-width="100" v-if="formContent.associateReport === 1">
|
||||
<el-select v-model="formContent.reportTemplateVersion" placeholder="请选择报告模版版本号" autocomplete="off" :disabled="isSelectDisabled">
|
||||
<el-option
|
||||
v-for="(option, index) in pqReportVersion"
|
||||
:key="index"
|
||||
:label="option.version"
|
||||
:value="option.version"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@@ -93,11 +119,7 @@
|
||||
import { type TestScript } from '@/api/device/interface/testScript';
|
||||
import { type ErrorSystem } from '@/api/device/interface/error';
|
||||
import { type Device } from '@/api/device/interface/device';
|
||||
import { Loading } from '@element-plus/icons-vue/dist/types';
|
||||
import { truncate } from 'lodash';
|
||||
|
||||
|
||||
|
||||
import {getPqReportAllName,getPqReportAllVersion} from '@/api/device/report/index.ts'
|
||||
const dictStore = useDictStore()
|
||||
// 定义弹出组件元信息
|
||||
const dialogFormRef = ref()
|
||||
@@ -108,6 +130,9 @@ import { truncate } from 'lodash';
|
||||
const pqErrSysList=ref<ErrorSystem.ErrorSystemList[]>([])//获取指定模式下所有检测源
|
||||
const pqDevList=ref<Device.ResPqDev[]>([])//获取指定模式下所有检测源
|
||||
|
||||
const pqReportName = ref<{ name: string }[]>([])
|
||||
const pqReportVersion = ref<{ version: string}[]>([])
|
||||
|
||||
const pqSourceArray = ref<{ label: string; value: string; }[]>()
|
||||
const pqScriptArray = ref<{ label: string; value: string; }[]>()
|
||||
const pqErrorArray = ref<{ label: string; value: string; }[]>()
|
||||
@@ -164,6 +189,9 @@ const filterMethod = (query: string, item: { label?: string }) => {
|
||||
devIds:[],
|
||||
sourceIds:'',
|
||||
datasourceIds:'',
|
||||
associateReport:0,
|
||||
reportTemplateName:'',
|
||||
reportTemplateVersion:'',
|
||||
})
|
||||
return { dialogVisible, titleType, formContent }
|
||||
}
|
||||
@@ -194,6 +222,9 @@ const filterMethod = (query: string, item: { label?: string }) => {
|
||||
devIds:[],
|
||||
sourceIds:'',
|
||||
datasourceIds:'',
|
||||
associateReport:0,
|
||||
reportTemplateName:'',
|
||||
reportTemplateVersion:'',
|
||||
}
|
||||
)
|
||||
|
||||
@@ -204,14 +235,27 @@ const filterMethod = (query: string, item: { label?: string }) => {
|
||||
})
|
||||
|
||||
|
||||
// 定义规则
|
||||
const formRuleRef = ref<FormInstance>()
|
||||
const rules: Ref<Record<string, Array<FormItemRule>>> = ref({
|
||||
name: [{ required: true, message: '检测计划名称必填!', trigger: 'blur' }],
|
||||
sourceIds: [{ required: true, message: '检测源必选!', trigger: 'blur' }],
|
||||
datasourceIds: [{ required: true, message: '数据源必选!', trigger: 'blur' }],
|
||||
scriptId: [{ required: true, message: '检测脚本必选!', trigger: 'blur' }],
|
||||
errorSysId: [{ required: true, message: '误差体系必选!', trigger: 'blur' }],
|
||||
|
||||
|
||||
// 定义表单校验规则
|
||||
const baseRules: Record<string, Array<FormItemRule>> = {
|
||||
name: [{ required: true, message: '检测计划名称必填!', trigger: 'blur' }],
|
||||
sourceIds: [{ required: true, message: '检测源必选!', trigger: 'change' }],
|
||||
datasourceIds: [{ required: true, message: '数据源必选!', trigger: 'change' }],
|
||||
scriptId: [{ required: true, message: '检测脚本必选!', trigger: 'change' }],
|
||||
errorSysId: [{ required: true, message: '误差体系必选!', trigger: 'change' }],
|
||||
};
|
||||
|
||||
// 使用计算属性根据 scene 动态生成规则
|
||||
const rules = computed(() => {
|
||||
const dynamicRules = { ...baseRules };
|
||||
|
||||
if (formContent.associateReport === 1){//只有关联报告模版时需要展示
|
||||
dynamicRules.reportTemplateName= [{ required: true, message: '报告模版名称必选!', trigger: 'change' }];
|
||||
dynamicRules.reportTemplateVersion= [{ required: true, message: '报告模版版本号必选!', trigger: 'change' }];
|
||||
}
|
||||
|
||||
return dynamicRules;
|
||||
});
|
||||
|
||||
// 关闭弹窗
|
||||
@@ -306,13 +350,23 @@ const open = async (sign: string,
|
||||
if(sign == 'add')
|
||||
{
|
||||
console.log('add',data)
|
||||
const [pqSource_Result, PqScript_Result, PqErrSys_Result,pqDevList_Result] = await Promise.all([
|
||||
const [pqSource_Result, PqScript_Result, PqErrSys_Result,pqDevList_Result,pqReportName_Result] = await Promise.all([
|
||||
getTestSourceList(data),
|
||||
getPqScriptList(data),
|
||||
getPqErrSysList(),
|
||||
getUnboundPqDevList(data)
|
||||
getUnboundPqDevList(data),
|
||||
getPqReportAllName(),
|
||||
|
||||
]);
|
||||
|
||||
|
||||
|
||||
if (Array.isArray(pqReportName_Result.data)) {
|
||||
pqReportName.value = pqReportName_Result.data.map(item => ({ name: item }));
|
||||
} else {
|
||||
pqReportName.value = [];
|
||||
console.error('pqReportName_Result.data is not an array:', pqReportName_Result.data);
|
||||
}
|
||||
pqSourceList.value = pqSource_Result.data as TestSource.ResTestSource[];
|
||||
pqScriptList.value = PqScript_Result.data as TestScript.ResTestScript[];
|
||||
pqErrSysList.value = PqErrSys_Result.data as unknown as ErrorSystem.ErrorSystemList[];
|
||||
@@ -321,14 +375,22 @@ const open = async (sign: string,
|
||||
unboundPqDevList.value = pqDevList.value
|
||||
boundPqDevList.value = [];
|
||||
}else{//编辑时先给表单赋值(这会没接收被检设备),需要手动再给被检设备复制后整体表单赋值
|
||||
const [pqSource_Result, PqScript_Result, PqErrSys_Result,boundPqDevList_Result, unboundPqDevList_Result] = await Promise.all([
|
||||
const [pqSource_Result, PqScript_Result, PqErrSys_Result,boundPqDevList_Result, unboundPqDevList_Result,pqReportName_Result] = await Promise.all([
|
||||
getTestSourceList(data),
|
||||
getPqScriptList(data),
|
||||
getPqErrSysList(),
|
||||
getBoundPqDevList({ 'planId': data.id }),
|
||||
getUnboundPqDevList(data)
|
||||
getUnboundPqDevList(data),
|
||||
getPqReportAllName(),
|
||||
]);
|
||||
|
||||
if (Array.isArray(pqReportName_Result.data)) {
|
||||
pqReportName.value = pqReportName_Result.data.map(item => ({ name: item }));
|
||||
} else {
|
||||
pqReportName.value = [];
|
||||
console.error('pqReportName_Result.data is not an array:', pqReportName_Result.data);
|
||||
}
|
||||
|
||||
pqSourceList.value = pqSource_Result.data as TestSource.ResTestSource[];
|
||||
pqScriptList.value = PqScript_Result.data as TestScript.ResTestScript[];
|
||||
pqErrSysList.value = PqErrSys_Result.data as unknown as ErrorSystem.ErrorSystemList[];
|
||||
@@ -400,9 +462,14 @@ const dataSourceType = computed(() => {
|
||||
default:
|
||||
return 'Datasource_Contrast'
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
const handleReportChange = async (value: string) => {
|
||||
formContent.reportTemplateVersion = ''
|
||||
const response = await getPqReportAllVersion({ name: value });
|
||||
pqReportVersion.value = response.data.map((item: { version: string }) => ({ version: item }));
|
||||
|
||||
};
|
||||
|
||||
// 对外映射
|
||||
defineExpose({ open })
|
||||
|
||||
Reference in New Issue
Block a user