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

Loading…
Cancel
Save