Merge branch 'master' of http://192.168.1.22:3000/frontend/pqs-9100_client
This commit is contained in:
@@ -34,6 +34,7 @@ export namespace Plan {
|
|||||||
Check_By?:string;//计划检测人
|
Check_By?:string;//计划检测人
|
||||||
progress?: number; // 进度百分比,例如 75
|
progress?: number; // 进度百分比,例如 75
|
||||||
children?: ResPlan[];
|
children?: ResPlan[];
|
||||||
|
testConfig?: PlanTestConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检测计划 + 分页
|
// 检测计划 + 分页
|
||||||
@@ -42,6 +43,7 @@ export namespace Plan {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export interface ReqPlan extends ResPlan {
|
export interface ReqPlan extends ResPlan {
|
||||||
datasourceIds:string;
|
datasourceIds:string;
|
||||||
sourceIds: string | null;
|
sourceIds: string | null;
|
||||||
@@ -54,5 +56,14 @@ export namespace Plan {
|
|||||||
devIds: string[];
|
devIds: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface PlanTestConfig {
|
||||||
|
planId: string;
|
||||||
|
waveRecord: number;
|
||||||
|
realTime: number;
|
||||||
|
statistics: number;
|
||||||
|
flicker: number;
|
||||||
|
maxTime: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -174,10 +174,10 @@ function handleFatalError(stepRef: any, logRef: any, message: string) {
|
|||||||
stepRef.value = 'error';
|
stepRef.value = 'error';
|
||||||
ts.value = 'error';
|
ts.value = 'error';
|
||||||
step5.value = 'error';
|
step5.value = 'error';
|
||||||
logRef.value = [{
|
logRef.value.push({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
log: message
|
log: message
|
||||||
}];
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -349,10 +349,10 @@ watch(webMsgSend, function (newValue, oldValue) {
|
|||||||
|
|
||||||
} else if (newValue.code == 10201) {
|
} else if (newValue.code == 10201) {
|
||||||
step4.value = 'process'
|
step4.value = 'process'
|
||||||
step4InitLog.value = [{
|
step4InitLog.value.push({
|
||||||
type: 'wait',
|
type: 'wait',
|
||||||
log: '源参数下发中.....',
|
log: '源参数下发中.....',
|
||||||
}];
|
});
|
||||||
} else if (newValue.code == 10552) {
|
} else if (newValue.code == 10552) {
|
||||||
ElMessage.error("存在已经初始化步骤,已经自动关闭,请重新发起检测!")
|
ElMessage.error("存在已经初始化步骤,已经自动关闭,请重新发起检测!")
|
||||||
handleFatalError(step4, step4InitLog, '存在已经初始化步骤,执行自动关闭,请重新发起检测!')
|
handleFatalError(step4, step4InitLog, '存在已经初始化步骤,执行自动关闭,请重新发起检测!')
|
||||||
@@ -373,10 +373,10 @@ watch(webMsgSend, function (newValue, oldValue) {
|
|||||||
})
|
})
|
||||||
} else if (newValue.code == 10201) {
|
} else if (newValue.code == 10201) {
|
||||||
step4.value = 'process'
|
step4.value = 'process'
|
||||||
step4InitLog.value = [{
|
step4InitLog.value.push({
|
||||||
type: 'wait',
|
type: 'wait',
|
||||||
log: '获取数据相序校验数据!',
|
log: '获取数据相序校验数据!',
|
||||||
}];
|
});
|
||||||
} else if (newValue.code == 25003) {
|
} else if (newValue.code == 25003) {
|
||||||
handleFatalError(step4, step4InitLog, '相序校验未通过!')
|
handleFatalError(step4, step4InitLog, '相序校验未通过!')
|
||||||
} else if (newValue.code == 25001) {
|
} else if (newValue.code == 25001) {
|
||||||
|
|||||||
@@ -1,55 +1,55 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- 基础信息弹出框 -->
|
<!-- 基础信息弹出框 -->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
:title="dialogTitle"
|
|
||||||
v-if="dialogVisible"
|
v-if="dialogVisible"
|
||||||
v-model="dialogVisible"
|
v-model="dialogVisible"
|
||||||
@close="close"
|
:title="dialogTitle"
|
||||||
v-bind="dialogBig"
|
|
||||||
align-center
|
align-center
|
||||||
|
v-bind="dialogBig"
|
||||||
|
@close="close"
|
||||||
>
|
>
|
||||||
<el-row :gutter="24">
|
<el-form ref="dialogFormRef" :model="formContent" :rules="rules">
|
||||||
<el-col :span="10">
|
<el-row :gutter="24">
|
||||||
<el-form :model="formContent" ref="dialogFormRef" :rules="rules">
|
<el-col :span="10">
|
||||||
<el-form-item label="名称" prop="name" :label-width="110">
|
<el-form-item :label-width="110" label="名称" prop="name">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="formContent.name"
|
v-model="formContent.name"
|
||||||
placeholder="请输入名称"
|
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
maxlength="32"
|
maxlength="32"
|
||||||
|
placeholder="请输入名称"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="标准设备" prop="standardDevIds" :label-width="110" v-if="selectByMode" >
|
<el-form-item v-if="selectByMode" :label-width="110" label="标准设备" prop="standardDevIds">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formContent.standardDevIds"
|
v-model="formContent.standardDevIds"
|
||||||
multiple
|
|
||||||
filterable
|
|
||||||
collapse-tags
|
|
||||||
:max-collapse-tags="2"
|
|
||||||
placeholder="请选择标准设备"
|
|
||||||
clearable
|
|
||||||
:disabled="planType == 2"
|
:disabled="planType == 2"
|
||||||
|
:max-collapse-tags="2"
|
||||||
|
clearable
|
||||||
|
collapse-tags
|
||||||
|
filterable
|
||||||
|
multiple
|
||||||
|
placeholder="请选择标准设备"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="option in pqStandardDevArray"
|
v-for="option in pqStandardDevArray"
|
||||||
:key="option.value"
|
:key="option.value"
|
||||||
|
:disabled="subPlanBindStandardDev.includes(option.label)"
|
||||||
:label="option.label"
|
:label="option.label"
|
||||||
:value="option.value"
|
:value="option.value"
|
||||||
:disabled="subPlanBindStandardDev.includes(option.label)"
|
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="测试项" prop="testItems" :label-width="110" v-if="selectByMode">
|
<el-form-item v-if="selectByMode" :label-width="110" label="测试项" prop="testItems">
|
||||||
<el-select
|
<el-select
|
||||||
filterable
|
|
||||||
v-model="formContent.testItems"
|
v-model="formContent.testItems"
|
||||||
multiple
|
|
||||||
collapse-tags
|
|
||||||
:max-collapse-tags="3"
|
|
||||||
:disabled="planType != 0"
|
:disabled="planType != 0"
|
||||||
placeholder="请选择测试项"
|
:max-collapse-tags="3"
|
||||||
clearable
|
clearable
|
||||||
|
collapse-tags
|
||||||
|
filterable
|
||||||
|
multiple
|
||||||
|
placeholder="请选择测试项"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(option, index) in secondLevelOptions"
|
v-for="(option, index) in secondLevelOptions"
|
||||||
@@ -59,14 +59,14 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="检测源" prop="sourceIds" :label-width="110" v-if="!selectByMode">
|
<el-form-item v-if="!selectByMode" :label-width="110" label="检测源" prop="sourceIds">
|
||||||
<el-select
|
<el-select
|
||||||
filterable
|
|
||||||
v-model="formContent.sourceIds"
|
v-model="formContent.sourceIds"
|
||||||
:multiple="selectByMode"
|
:multiple="selectByMode"
|
||||||
collapse-tags
|
|
||||||
placeholder="请选择检测源"
|
|
||||||
clearable
|
clearable
|
||||||
|
collapse-tags
|
||||||
|
filterable
|
||||||
|
placeholder="请选择检测源"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(option, index) in pqSourceArray"
|
v-for="(option, index) in pqSourceArray"
|
||||||
@@ -76,17 +76,17 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="数据源" prop="datasourceIds" :label-width="110">
|
<el-form-item :label-width="110" label="数据源" prop="datasourceIds">
|
||||||
<el-select
|
<el-select
|
||||||
filterable
|
|
||||||
v-model="formContent.datasourceIds"
|
v-model="formContent.datasourceIds"
|
||||||
:multiple="selectByMode"
|
|
||||||
:max-collapse-tags="2"
|
|
||||||
:disabled="planType != 0"
|
:disabled="planType != 0"
|
||||||
collapse-tags
|
:max-collapse-tags="2"
|
||||||
placeholder="请选择数据源"
|
:multiple="selectByMode"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
clearable
|
clearable
|
||||||
|
collapse-tags
|
||||||
|
filterable
|
||||||
|
placeholder="请选择数据源"
|
||||||
@change="handleDataSourceChange"
|
@change="handleDataSourceChange"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@@ -97,13 +97,13 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="检测脚本" prop="scriptId" :label-width="110" v-if="!selectByMode">
|
<el-form-item v-if="!selectByMode" :label-width="110" label="检测脚本" prop="scriptId">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formContent.scriptId"
|
v-model="formContent.scriptId"
|
||||||
placeholder="请选择检测脚本"
|
|
||||||
autocomplete="off"
|
|
||||||
:disabled="isSelectDisabled"
|
:disabled="isSelectDisabled"
|
||||||
|
autocomplete="off"
|
||||||
clearable
|
clearable
|
||||||
|
placeholder="请选择检测脚本"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(option, index) in pqScriptArray"
|
v-for="(option, index) in pqScriptArray"
|
||||||
@@ -113,14 +113,14 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="误差体系" prop="errorSysId" :label-width="110">
|
<el-form-item :label-width="110" label="误差体系" prop="errorSysId">
|
||||||
<el-select
|
<el-select
|
||||||
filterable
|
|
||||||
v-model="formContent.errorSysId"
|
v-model="formContent.errorSysId"
|
||||||
placeholder="请选择误差体系"
|
|
||||||
autocomplete="off"
|
|
||||||
:disabled="isSelectDisabled"
|
:disabled="isSelectDisabled"
|
||||||
|
autocomplete="off"
|
||||||
clearable
|
clearable
|
||||||
|
filterable
|
||||||
|
placeholder="请选择误差体系"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(option, index) in pqErrorArray"
|
v-for="(option, index) in pqErrorArray"
|
||||||
@@ -130,13 +130,13 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="数据处理原则" prop="dataRule" :label-width="110">
|
<el-form-item :label-width="110" label="数据处理原则" prop="dataRule">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formContent.dataRule"
|
v-model="formContent.dataRule"
|
||||||
placeholder="请选择数据处理原则"
|
|
||||||
autocomplete="off"
|
|
||||||
:disabled="isSelectDisabled"
|
:disabled="isSelectDisabled"
|
||||||
|
autocomplete="off"
|
||||||
clearable
|
clearable
|
||||||
|
placeholder="请选择数据处理原则"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in dictStore.getDictData('Data_Rule')"
|
v-for="item in dictStore.getDictData('Data_Rule')"
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="守时检测" :label-width="110" prop="timeCheck">
|
<el-form-item :label-width="110" label="守时检测" prop="timeCheck">
|
||||||
<el-radio-group v-model="formContent.timeCheck" :disabled="planType != 0">
|
<el-radio-group v-model="formContent.timeCheck" :disabled="planType != 0">
|
||||||
<el-radio :value="1">是</el-radio>
|
<el-radio :value="1">是</el-radio>
|
||||||
<el-radio :value="0">否</el-radio>
|
<el-radio :value="0">否</el-radio>
|
||||||
@@ -159,16 +159,16 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
|
v-if="formContent.associateReport === 1"
|
||||||
|
:label-width="110"
|
||||||
label="模版名称"
|
label="模版名称"
|
||||||
prop="reportTemplateName"
|
prop="reportTemplateName"
|
||||||
:label-width="110"
|
|
||||||
v-if="formContent.associateReport === 1"
|
|
||||||
>
|
>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formContent.reportTemplateName"
|
v-model="formContent.reportTemplateName"
|
||||||
placeholder="请选择报告模版"
|
|
||||||
autocomplete="off"
|
|
||||||
:disabled="planType != 0"
|
:disabled="planType != 0"
|
||||||
|
autocomplete="off"
|
||||||
|
placeholder="请选择报告模版"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(option, index) in pqReportName"
|
v-for="(option, index) in pqReportName"
|
||||||
@@ -178,83 +178,186 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-col>
|
||||||
</el-col>
|
<el-col :span="14">
|
||||||
<el-col :span="14">
|
<el-transfer
|
||||||
<el-transfer
|
v-model="value"
|
||||||
v-model="value"
|
:data="allData"
|
||||||
filterable
|
:filter-method="filterMethod"
|
||||||
:filter-method="filterMethod"
|
:titles="['未绑定被检设备', '已绑定被检设备']"
|
||||||
filter-placeholder="请输入内容搜索"
|
filter-placeholder="请输入内容搜索"
|
||||||
:data="allData"
|
filterable
|
||||||
:titles="['未绑定被检设备', '已绑定被检设备']"
|
>
|
||||||
>
|
<template #default="{ option }">
|
||||||
<template #default="{ option }">
|
<div style="display: flex; align-items: center; justify-content: space-between">
|
||||||
<div style="display: flex; align-items: center; justify-content: space-between">
|
<span>
|
||||||
<span>
|
{{ JSON.parse(option.label).manufacturer }} - {{ JSON.parse(option.label).name }}
|
||||||
{{ JSON.parse(option.label).manufacturer }} - {{ JSON.parse(option.label).name }}
|
</span>
|
||||||
</span>
|
<el-tooltip effect="light" placement="top">
|
||||||
<el-tooltip placement="top" effect="light">
|
<template #content>
|
||||||
<template #content>
|
<el-descriptions border size="small" title="被检设备详情">
|
||||||
<el-descriptions size="small" title="被检设备详情" border>
|
<el-descriptions-item label="设备名称">
|
||||||
<el-descriptions-item label="设备名称">
|
{{ JSON.parse(option.label).name }}
|
||||||
{{ JSON.parse(option.label).name }}
|
</el-descriptions-item>
|
||||||
</el-descriptions-item>
|
<el-descriptions-item label="设备厂家">
|
||||||
<el-descriptions-item label="设备厂家">
|
{{ JSON.parse(option.label).manufacturer }}
|
||||||
{{ JSON.parse(option.label).manufacturer }}
|
</el-descriptions-item>
|
||||||
</el-descriptions-item>
|
<el-descriptions-item label="所属地市">
|
||||||
<el-descriptions-item label="所属地市">
|
{{ JSON.parse(option.label).cityName }}
|
||||||
{{ JSON.parse(option.label).cityName }}
|
</el-descriptions-item>
|
||||||
</el-descriptions-item>
|
<el-descriptions-item label="所属供电公司">
|
||||||
<el-descriptions-item label="所属供电公司">
|
{{ JSON.parse(option.label).gdName }}
|
||||||
{{ JSON.parse(option.label).gdName }}
|
</el-descriptions-item>
|
||||||
</el-descriptions-item>
|
<el-descriptions-item label="所属电站">
|
||||||
<el-descriptions-item label="所属电站">
|
{{ JSON.parse(option.label).subName }}
|
||||||
{{ JSON.parse(option.label).subName }}
|
</el-descriptions-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions>
|
||||||
</el-descriptions>
|
</template>
|
||||||
</template>
|
<el-icon>
|
||||||
<el-icon><Warning /></el-icon>
|
<Warning />
|
||||||
</el-tooltip>
|
</el-icon>
|
||||||
</div>
|
</el-tooltip>
|
||||||
</template>
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
<template #left-footer v-if="planType === 0">
|
<template v-if="planType === 0" #left-footer>
|
||||||
<el-button
|
<el-button
|
||||||
class="transfer-footer"
|
v-if="modeStore.currentMode !== '比对式'"
|
||||||
v-if="modeStore.currentMode !== '比对式'"
|
v-auth.plan="'import'"
|
||||||
size="small"
|
:icon="Download"
|
||||||
type="primary"
|
class="transfer-footer"
|
||||||
v-auth.plan="'import'"
|
size="small"
|
||||||
:icon="Download"
|
type="primary"
|
||||||
@click="importFile('')"
|
@click="importFile('')"
|
||||||
>
|
>
|
||||||
导入被检设备
|
导入被检设备
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
class="transfer-footer"
|
v-if="modeStore.currentMode === '比对式'"
|
||||||
v-if="modeStore.currentMode === '比对式'"
|
v-auth.plan="'import'"
|
||||||
size="small"
|
:icon="Download"
|
||||||
type="primary"
|
class="transfer-footer"
|
||||||
v-auth.plan="'import'"
|
size="small"
|
||||||
:icon="Download"
|
type="primary"
|
||||||
@click="importFile('比对式')"
|
@click="importFile('比对式')"
|
||||||
>
|
>
|
||||||
导入被检设备
|
导入被检设备
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
<template #right-footer v-if="planType === 0">
|
<template v-if="planType === 0" #right-footer>
|
||||||
<el-text></el-text>
|
<el-text></el-text>
|
||||||
</template>
|
</template>
|
||||||
<template #left-empty>
|
<template #left-empty>
|
||||||
<el-empty :image-size="60" description="暂无被检设备" />
|
<el-empty :image-size="60" description="暂无被检设备" />
|
||||||
</template>
|
</template>
|
||||||
<template #right-empty>
|
<template #right-empty>
|
||||||
<el-empty :image-size="60" description="暂无被检设备" />
|
<el-empty :image-size="60" description="暂无被检设备" />
|
||||||
</template>
|
</template>
|
||||||
</el-transfer>
|
</el-transfer>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
<el-row v-if="modeStore.currentMode === '比对式'">
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-collapse v-model="activeNames">
|
||||||
|
<el-collapse-item name="1" title="检测配置">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item
|
||||||
|
:label-width="140"
|
||||||
|
label="检测最大次数"
|
||||||
|
label-position="right"
|
||||||
|
prop="testConfig.maxTime"
|
||||||
|
>
|
||||||
|
<el-input-number
|
||||||
|
:disabled="isSelectDisabled"
|
||||||
|
style="width: 240px"
|
||||||
|
v-model="formContent.testConfig.maxTime"
|
||||||
|
:precision="0"
|
||||||
|
:step="1"
|
||||||
|
:min="1"
|
||||||
|
placeholder="请输入检测最大次数"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item
|
||||||
|
:label-width="140"
|
||||||
|
label="录波数据有效组数"
|
||||||
|
label-position="right"
|
||||||
|
prop="testConfig.waveRecord"
|
||||||
|
>
|
||||||
|
<el-input-number
|
||||||
|
:disabled="isSelectDisabled"
|
||||||
|
style="width: 240px"
|
||||||
|
v-model="formContent.testConfig.waveRecord"
|
||||||
|
:precision="0"
|
||||||
|
:step="1"
|
||||||
|
:min="1"
|
||||||
|
placeholder="请输入录波数据有效组数"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item
|
||||||
|
:label-width="140"
|
||||||
|
label="实时数据有效组数"
|
||||||
|
label-position="right"
|
||||||
|
prop="testConfig.realTime"
|
||||||
|
>
|
||||||
|
<el-input-number
|
||||||
|
:disabled="isSelectDisabled"
|
||||||
|
style="width: 240px"
|
||||||
|
v-model="formContent.testConfig.realTime"
|
||||||
|
:precision="0"
|
||||||
|
:step="1"
|
||||||
|
:min="1"
|
||||||
|
placeholder="请输入实时数据有效组数"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item
|
||||||
|
:label-width="140"
|
||||||
|
label="统计数据有效组数"
|
||||||
|
label-position="right"
|
||||||
|
prop="testConfig.statistics"
|
||||||
|
>
|
||||||
|
<el-input-number
|
||||||
|
:disabled="isSelectDisabled"
|
||||||
|
style="width: 240px"
|
||||||
|
v-model="formContent.testConfig.statistics"
|
||||||
|
:precision="0"
|
||||||
|
:step="1"
|
||||||
|
:min="1"
|
||||||
|
placeholder="请输入统计数据有效组数"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item
|
||||||
|
:label-width="140"
|
||||||
|
label="闪变数据有效组数"
|
||||||
|
label-position="right"
|
||||||
|
prop="testConfig.flicker"
|
||||||
|
>
|
||||||
|
<el-input-number
|
||||||
|
:disabled="isSelectDisabled"
|
||||||
|
style="width: 240px"
|
||||||
|
v-model="formContent.testConfig.flicker"
|
||||||
|
:precision="0"
|
||||||
|
:step="1"
|
||||||
|
:min="1"
|
||||||
|
placeholder="请输入闪变数据有效组数"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-collapse>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button @click="close()">取 消</el-button>
|
<el-button @click="close()">取 消</el-button>
|
||||||
@@ -265,36 +368,38 @@
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script lang="ts" setup>
|
||||||
import { CascaderOption, ElMessage, type FormItemRule } from 'element-plus'
|
import {CascaderOption, ElMessage, type FormItemRule} from 'element-plus'
|
||||||
import { computed, defineProps, reactive, ref } from 'vue'
|
import {computed, defineProps, reactive, ref} from 'vue'
|
||||||
import { dialogBig } from '@/utils/elementBind'
|
import {dialogBig} from '@/utils/elementBind'
|
||||||
import { type Plan } from '@/api/plan/interface'
|
import {type Plan} from '@/api/plan/interface'
|
||||||
import {
|
import {
|
||||||
addPlan,
|
addPlan,
|
||||||
getBoundPqDevList,
|
getBoundPqDevList,
|
||||||
getBoundStandardDevAllList,
|
getBoundStandardDevAllList,
|
||||||
getPqErrSysList,
|
getPqErrSysList,
|
||||||
getPqScriptList,
|
getPqScriptList,
|
||||||
getTestSourceList,
|
getTestSourceList,
|
||||||
getUnboundPqDevList,
|
getUnboundPqDevList,
|
||||||
updatePlan
|
updatePlan
|
||||||
} from '@/api/plan/plan.ts'
|
} from '@/api/plan/plan.ts'
|
||||||
import { useDictStore } from '@/stores/modules/dict'
|
import {useDictStore} from '@/stores/modules/dict'
|
||||||
import { type TestSource } from '@/api/device/interface/testSource'
|
import {type TestSource} from '@/api/device/interface/testSource'
|
||||||
import { type TestScript } from '@/api/device/interface/testScript'
|
import {type TestScript} from '@/api/device/interface/testScript'
|
||||||
import { type ErrorSystem } from '@/api/device/interface/error'
|
import {type ErrorSystem} from '@/api/device/interface/error'
|
||||||
import { type Device } from '@/api/device/interface/device'
|
import {type Device} from '@/api/device/interface/device'
|
||||||
import { getPqReportAllName } from '@/api/device/report/index.ts'
|
import {getPqReportAllName} from '@/api/device/report/index.ts'
|
||||||
import { useAppSceneStore, useModeStore } from '@/stores/modules/mode'
|
import {useAppSceneStore, useModeStore} from '@/stores/modules/mode'
|
||||||
import { Download } from '@element-plus/icons-vue'
|
import {Download} from '@element-plus/icons-vue'
|
||||||
import { getAllPqStandardDev } from '@/api/device/standardDevice/index.ts'
|
import {getAllPqStandardDev} from '@/api/device/standardDevice/index.ts'
|
||||||
import { StandardDevice } from '@/api/device/interface/standardDevice'
|
import {StandardDevice} from '@/api/device/interface/standardDevice'
|
||||||
import { Dict } from '@/api/system/dictionary/interface'
|
import {Dict} from '@/api/system/dictionary/interface'
|
||||||
import { getDictTreeByCode } from '@/api/system/dictionary/dictTree'
|
import {getDictTreeByCode} from '@/api/system/dictionary/dictTree'
|
||||||
import { getAllUser } from '@/api/user/user'
|
import {getAllUser} from '@/api/user/user'
|
||||||
import ImportExcel from '@/components/ImportExcel/index.vue'
|
import ImportExcel from '@/components/ImportExcel/index.vue'
|
||||||
import { downloadTemplate, importPqDev } from '@/api/device/device/index'
|
import {downloadTemplate, importPqDev} from '@/api/device/device/index'
|
||||||
|
import {getTestConfig} from '@/api/system/base'
|
||||||
|
import {getRegRes} from '@/api/system/versionRegister'
|
||||||
|
|
||||||
const modeStore = useModeStore()
|
const modeStore = useModeStore()
|
||||||
const AppSceneStore = useAppSceneStore()
|
const AppSceneStore = useAppSceneStore()
|
||||||
@@ -326,6 +431,7 @@ const allData = ref<[any[], any[]]>([])
|
|||||||
const isSelectDisabled = ref(false)
|
const isSelectDisabled = ref(false)
|
||||||
const planType = ref<number>(0)
|
const planType = ref<number>(0)
|
||||||
const subPlanBindStandardDev = ref<any>([]) //哪些标准设备已经被子计划绑定
|
const subPlanBindStandardDev = ref<any>([]) //哪些标准设备已经被子计划绑定
|
||||||
|
const activeNames = ref(['1'])
|
||||||
|
|
||||||
const generateData = () => {
|
const generateData = () => {
|
||||||
const manufacturerDict = dictStore.getDictData('Dev_Manufacturers')
|
const manufacturerDict = dictStore.getDictData('Dev_Manufacturers')
|
||||||
@@ -408,7 +514,15 @@ function useMetaInfo() {
|
|||||||
standardDevIds: [],
|
standardDevIds: [],
|
||||||
standardDevMap: new Map<string, number>(),
|
standardDevMap: new Map<string, number>(),
|
||||||
testItems: [],
|
testItems: [],
|
||||||
Check_By: ''
|
Check_By: '',
|
||||||
|
testConfig: {
|
||||||
|
planId: '',
|
||||||
|
waveRecord: 0,
|
||||||
|
realTime: 0,
|
||||||
|
statistics: 0,
|
||||||
|
flicker: 0,
|
||||||
|
maxTime: 3
|
||||||
|
}
|
||||||
})
|
})
|
||||||
return { dialogVisible, titleType, formContent }
|
return { dialogVisible, titleType, formContent }
|
||||||
}
|
}
|
||||||
@@ -447,7 +561,15 @@ const resetFormContent = () => {
|
|||||||
standardDevMap: new Map<string, number>(),
|
standardDevMap: new Map<string, number>(),
|
||||||
testItemNameStr: '',
|
testItemNameStr: '',
|
||||||
testItems: [],
|
testItems: [],
|
||||||
Check_By: ''
|
Check_By: '',
|
||||||
|
testConfig: {
|
||||||
|
planId: '',
|
||||||
|
waveRecord: 0,
|
||||||
|
realTime: 0,
|
||||||
|
statistics: 0,
|
||||||
|
flicker: 0,
|
||||||
|
maxTime: 3
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -470,7 +592,12 @@ const baseRules: Record<string, Array<FormItemRule>> = {
|
|||||||
errorSysId: [{ required: true, message: '误差体系必选!', trigger: 'change' }],
|
errorSysId: [{ required: true, message: '误差体系必选!', trigger: 'change' }],
|
||||||
dataRule: [{ required: true, message: '数据处理原则必选!', trigger: 'change' }],
|
dataRule: [{ required: true, message: '数据处理原则必选!', trigger: 'change' }],
|
||||||
standardDevIds: [{ required: true, message: '标准设备必选!', trigger: 'change' }],
|
standardDevIds: [{ required: true, message: '标准设备必选!', trigger: 'change' }],
|
||||||
testItems: [{ required: true, message: '测试项必选!', trigger: 'change' }]
|
testItems: [{ required: true, message: '测试项必选!', trigger: 'change' }],
|
||||||
|
'testConfig.maxTime': [{ required: true, message: '检测最大次数必填!', trigger: 'blur' }],
|
||||||
|
'testConfig.waveRecord': [{ required: true, message: '录波数据有效组数必填!', trigger: 'blur' }],
|
||||||
|
'testConfig.realTime': [{ required: true, message: '实时数据有效组数必填!', trigger: 'blur' }],
|
||||||
|
'testConfig.statistics': [{ required: true, message: '统计数据有效组数必填!', trigger: 'blur' }],
|
||||||
|
'testConfig.flicker': [{ required: true, message: '闪变数据有效组数必填!', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
|
|
||||||
// 使用计算属性根据 scene 动态生成规则
|
// 使用计算属性根据 scene 动态生成规则
|
||||||
@@ -615,20 +742,36 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
|||||||
PqErrSys_Result,
|
PqErrSys_Result,
|
||||||
pqDevList_Result,
|
pqDevList_Result,
|
||||||
pqReportName_Result,
|
pqReportName_Result,
|
||||||
pqStandardDev_Result
|
pqStandardDev_Result,
|
||||||
|
sysTestConfig_Result,
|
||||||
|
sysRegRes_Result
|
||||||
|
|
||||||
if (mode.value === '比对式') {
|
if (mode.value === '比对式') {
|
||||||
const commonResults = await Promise.all([
|
const commonResults = await Promise.all([
|
||||||
getPqErrSysList(),
|
getPqErrSysList(),
|
||||||
getUnboundPqDevList(data),
|
getUnboundPqDevList(data),
|
||||||
getPqReportAllName(),
|
getPqReportAllName(),
|
||||||
getAllPqStandardDev()
|
getAllPqStandardDev(),
|
||||||
|
getTestConfig(),
|
||||||
|
getRegRes({ type: patternId })
|
||||||
])
|
])
|
||||||
;[PqErrSys_Result, pqDevList_Result, pqReportName_Result, pqStandardDev_Result] = commonResults
|
;[
|
||||||
|
PqErrSys_Result,
|
||||||
|
pqDevList_Result,
|
||||||
|
pqReportName_Result,
|
||||||
|
pqStandardDev_Result,
|
||||||
|
sysTestConfig_Result,
|
||||||
|
sysRegRes_Result
|
||||||
|
] = commonResults
|
||||||
|
|
||||||
// 比对式下这两个接口不需要
|
// 比对式下这两个接口不需要
|
||||||
pqSource_Result = { data: [] }
|
pqSource_Result = { data: [] }
|
||||||
PqScript_Result = { data: [] }
|
PqScript_Result = { data: [] }
|
||||||
|
formContent.testConfig.maxTime = sysTestConfig_Result.data?.maxTime
|
||||||
|
formContent.testConfig.waveRecord = sysRegRes_Result.data?.waveRecord
|
||||||
|
formContent.testConfig.realTime = sysRegRes_Result.data?.realTime
|
||||||
|
formContent.testConfig.statistics = sysRegRes_Result.data?.statistics
|
||||||
|
formContent.testConfig.flicker = sysRegRes_Result.data?.flicker
|
||||||
} else {
|
} else {
|
||||||
const commonResults = await Promise.all([
|
const commonResults = await Promise.all([
|
||||||
getTestSourceList(data),
|
getTestSourceList(data),
|
||||||
@@ -822,6 +965,7 @@ const convertToOptions = (dictTree: Dict.ResDictTree[]): CascaderOption[] => {
|
|||||||
remark: item.remark
|
remark: item.remark
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
function pqToArray() {
|
function pqToArray() {
|
||||||
const sourceArray1 = Array.isArray(pqSourceList.value) ? pqSourceList.value : []
|
const sourceArray1 = Array.isArray(pqSourceList.value) ? pqSourceList.value : []
|
||||||
// 将 pqSource_Result 转换成 { label, value } 数组
|
// 将 pqSource_Result 转换成 { label, value } 数组
|
||||||
@@ -949,7 +1093,7 @@ const props = defineProps<{
|
|||||||
}>()
|
}>()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style lang="scss" scoped>
|
||||||
// :deep(.dialog-small .el-dialog__body){
|
// :deep(.dialog-small .el-dialog__body){
|
||||||
// max-height: 330px !important;
|
// max-height: 330px !important;
|
||||||
// }
|
// }
|
||||||
@@ -957,13 +1101,15 @@ const props = defineProps<{
|
|||||||
--el-transfer-panel-width: 250px;
|
--el-transfer-panel-width: 250px;
|
||||||
--el-transfer-panel-body-height: 315px;
|
--el-transfer-panel-body-height: 315px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.transfer-footer {
|
.transfer-footer {
|
||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
padding: 6px 5px;
|
padding: 6px 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.el-transfer-panel__footer) {
|
:deep(.el-transfer-panel__footer) {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user