Browse Source

feat: 添加模型编辑权限控制,非草稿版本不可修改训练时间、清除训练结果和编辑测点参数

pull/64/head
chenjiale 1 month ago
parent
commit
53dbfd6966
  1. 60
      src/views/model/train/index.vue

60
src/views/model/train/index.vue

@ -475,6 +475,10 @@ export default defineComponent({
}, 500)
function handleDeleteTrainTime(index: number) {
if (!canEditModel.value) {
createMessage.warning('非草稿版本不可修改训练时间')
return
}
if (!model.value?.trainTime)
return
//
@ -500,12 +504,20 @@ export default defineComponent({
updateModelInfoDebounced()
}
async function clearModel() {
if (!canEditModel.value) {
createMessage.warning('非草稿版本不可清除训练结果')
return
}
model.value.para = null
updateModelInfoDebounced()
await getHistory()
}
async function trainModel() {
if (!canEditModel.value) {
createMessage.warning('非草稿版本不可训练模型')
return
}
const modelInfo = model.value
if (!modelInfo || !modelInfo.id) {
console.error('模型信息不完整,无法训练')
@ -612,7 +624,6 @@ export default defineComponent({
dayjs(sorted[0].st),
dayjs(sorted[sorted.length - 1].et),
]
historyTime.value = trainRange
await getTestData(trainRange)
}
else {
@ -664,6 +675,10 @@ export default defineComponent({
}
function openPointModal(index, record) {
if (!canEditModel.value) {
createMessage.warning('非草稿版本不可编辑测点参数')
return
}
// index
const pageIndex = index
// index
@ -672,14 +687,21 @@ export default defineComponent({
)
openEditPointModal.value = true
pointEditRecord = record
const normalizeBool = (val: any) => {
if (val === true || val === '是' || val === 1 || val === '1')
return true
if (val === false || val === '否' || val === 0 || val === '0')
return false
return !!val
}
editForm.value = {
index: globalIndex,
Upper: record?.Upper ?? '',
Lower: record?.Lower ?? '',
lowerBound: record?.lowerBound ?? '',
upperBound: record?.upperBound ?? '',
dead: !!record?.dead,
limit: !!record?.limit,
dead: normalizeBool(record?.dead),
limit: normalizeBool(record?.limit),
}
}
@ -690,6 +712,10 @@ export default defineComponent({
const openEditModeModal = ref<boolean>(false)
function openEditMode() {
if (!canEditModel.value) {
createMessage.warning('非草稿版本不可修改模式')
return
}
openEditModeModal.value = true
mode.value = {
alarmcondition: model.value?.alarmmodelset?.alarmcondition || '1=1',
@ -754,6 +780,10 @@ export default defineComponent({
}
function openEditModel() {
if (!canEditModel.value) {
createMessage.warning('非草稿版本不可修改模型')
return
}
editModelForm.value.sampling = model.value?.sampling || 0
editModelForm.value.rate = model.value?.rate || 0
editModelForm.value.selectedKeys = (model.value?.pointInfo || []).map(item => `${item.description}|${item.pointId}|${item.unit}|${item.Lower}|${item.Upper}`)
@ -765,6 +795,10 @@ export default defineComponent({
openEditModelModal.value = true
}
function handleEditModelOk() {
if (!canEditModel.value) {
createMessage.warning('非草稿版本不可修改模型')
return
}
model.value.sampling = editModelForm.value.sampling
model.value.rate = editModelForm.value.rate
model.value.pointInfo = editModelForm.value.selectedKeys.map((key) => {
@ -797,6 +831,10 @@ export default defineComponent({
const isVTestVersion = computed(
() => (model.value?.Cur_Version || model.value?.version) === 'v-test',
)
const canEditModel = computed(() => {
const version = selectedVersion.value || model.value?.Cur_Version || model.value?.version
return version === 'v-test'
})
const isBottomed = computed(() => model.value?.btmState === '已下装')
const reportColumns = [
{ title: '评估时间', dataIndex: 'assessTime' },
@ -982,9 +1020,7 @@ export default defineComponent({
createMessage.error('创建草稿版本失败')
}
}
const showTrainActions = computed(
() => !isBottomed.value || isVTestVersion.value || selectedVersion.value === 'v-test',
)
const showTrainActions = computed(() => canEditModel.value)
function goAssessReport(reportId?: number | null | Event) {
// PointerEvent
@ -1055,6 +1091,7 @@ export default defineComponent({
createDraftVersion,
goAssessReport,
showTrainActions,
canEditModel,
}
},
})
@ -1161,7 +1198,7 @@ export default defineComponent({
:bordered="false"
style="margin-top: 16px; margin-bottom: -20px"
>
<a-button size="large" @click="openEditMode">
<a-button size="large" :disabled="!canEditModel" @click="openEditMode">
{{ model?.alarmmodelset?.alarmname || '全工况运行' }}
</a-button>
</a-card>
@ -1172,21 +1209,28 @@ export default defineComponent({
<BasicTable @register="trainTimeTable">
<template #action="{ record, index }">
<a-button
v-if="showTrainActions"
type="link"
danger
@click="handleDeleteTrainTime(index)"
>
删除
</a-button>
<span v-else>--</span>
</template>
</BasicTable>
</a-tab-pane>
<a-tab-pane key="2" tab="测点参数">
<BasicTable @register="pointTable">
<template #action="{ record, index }">
<a-button type="primary" @click="openPointModal(index, record)">
<a-button
v-if="showTrainActions"
type="primary"
@click="openPointModal(index, record)"
>
编辑
</a-button>
<span v-else>--</span>
</template>
</BasicTable>
</a-tab-pane>

Loading…
Cancel
Save