|
|
@ -1,5 +1,5 @@ |
|
|
<script lang="ts" setup> |
|
|
<script lang="ts" setup> |
|
|
import { reactive, ref } from 'vue' |
|
|
import {reactive, ref, watch} from 'vue' |
|
|
import {Card, Divider, Steps} from 'ant-design-vue' |
|
|
import {Card, Divider, Steps} from 'ant-design-vue' |
|
|
import ModalTable from '../model/ModelTable.vue' |
|
|
import ModalTable from '../model/ModelTable.vue' |
|
|
import PointTable from '../model/PointTable.vue' |
|
|
import PointTable from '../model/PointTable.vue' |
|
|
@ -13,6 +13,14 @@ import { createInstant } from '@/api/alert/run/instant/index' |
|
|
import {useMessage} from '@/hooks/web/useMessage' |
|
|
import {useMessage} from '@/hooks/web/useMessage' |
|
|
|
|
|
|
|
|
const emit = defineEmits(['success']) |
|
|
const emit = defineEmits(['success']) |
|
|
|
|
|
|
|
|
|
|
|
const props = defineProps({ |
|
|
|
|
|
isDisabled: { |
|
|
|
|
|
type: Boolean, |
|
|
|
|
|
default: true, |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
const {createMessage} = useMessage() |
|
|
const {createMessage} = useMessage() |
|
|
const {t} = useI18n() |
|
|
const {t} = useI18n() |
|
|
|
|
|
|
|
|
@ -21,12 +29,19 @@ const [registerCreateModal, { setModalProps, closeModal }] = useModalInner(async |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
const current = ref<number>(0) |
|
|
const current = ref<number>(0) |
|
|
|
|
|
|
|
|
function next() { |
|
|
function next() { |
|
|
current.value++ |
|
|
current.value++ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function prev() { |
|
|
function prev() { |
|
|
current.value-- |
|
|
current.value-- |
|
|
|
|
|
if (current.value == 0) { |
|
|
|
|
|
console.log(state.selectedRowKeys) |
|
|
|
|
|
console.log(state.selectedData) |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
const steps = [ |
|
|
const steps = [ |
|
|
{ |
|
|
{ |
|
|
title: '壹', |
|
|
title: '壹', |
|
|
@ -39,7 +54,7 @@ const steps = [ |
|
|
] |
|
|
] |
|
|
const items = steps.map(item => ({key: item.title, title: item.title})) |
|
|
const items = steps.map(item => ({key: item.title, title: item.title})) |
|
|
|
|
|
|
|
|
const [registerForm, { validate, setFieldsValue, updateSchema, setProps }] = useForm({ |
|
|
const [registerForm, {validate, resetFields, setFieldsValue, updateSchema, setProps}] = useForm({ |
|
|
labelWidth: 100, |
|
|
labelWidth: 100, |
|
|
schemas: createInstantForm, |
|
|
schemas: createInstantForm, |
|
|
showSubmitButton: false, |
|
|
showSubmitButton: false, |
|
|
@ -54,18 +69,37 @@ interface instantForms { |
|
|
modelId?: string |
|
|
modelId?: string |
|
|
mpName?: string |
|
|
mpName?: string |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const instantForm = reactive<instantForms>({ |
|
|
const instantForm = reactive<instantForms>({ |
|
|
modelId: '', |
|
|
modelId: '', |
|
|
mpName: '', |
|
|
mpName: '', |
|
|
|
|
|
|
|
|
}) |
|
|
}) |
|
|
|
|
|
// 本地isDisabled变量 |
|
|
const isDisabled = ref<boolean>(true) |
|
|
const isDisabled = ref<boolean>(true) |
|
|
|
|
|
|
|
|
|
|
|
// 监听父组件传递的isDisabled属性变化 |
|
|
|
|
|
watch(() => props.isDisabled, (newVal) => { |
|
|
|
|
|
if (newVal !== undefined) { |
|
|
|
|
|
isDisabled.value = newVal |
|
|
|
|
|
} |
|
|
|
|
|
}, {immediate: true}) // immediate设置为true,确保组件初始化时也会执行一次 |
|
|
|
|
|
|
|
|
const state = reactive<any>({ |
|
|
const state = reactive<any>({ |
|
|
|
|
|
selectedRowKeys: [], |
|
|
|
|
|
selectedData: [], |
|
|
pointInfo: [], |
|
|
pointInfo: [], |
|
|
type: false, |
|
|
type: false, |
|
|
}) |
|
|
}) |
|
|
async function updatempName(selectedRowKeys, selectedRows) { |
|
|
|
|
|
console.log(selectedRows.length) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async function updatempName(selectedRowKeys, selectedRows) { |
|
|
|
|
|
console.log(selectedRowKeys) |
|
|
|
|
|
console.log(selectedRows) |
|
|
|
|
|
console.log(instantForm) |
|
|
|
|
|
resetFields() |
|
|
|
|
|
state.selectedRowKeys = selectedRowKeys; |
|
|
|
|
|
state.selectedData = selectedRows; |
|
|
|
|
|
//读出模型中的点号信息 |
|
|
if (selectedRows.length !== 0) { |
|
|
if (selectedRows.length !== 0) { |
|
|
state.type = selectedRows[0].algorithm === 'ANN' |
|
|
state.type = selectedRows[0].algorithm === 'ANN' |
|
|
console.log(state.type) |
|
|
console.log(state.type) |
|
|
@ -76,9 +110,9 @@ async function updatempName(selectedRowKeys, selectedRows) { |
|
|
p.algorithm = selectedRows[0].algorithm |
|
|
p.algorithm = selectedRows[0].algorithm |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 下一步按钮的禁用与启用 |
|
|
// 下一步按钮的禁用与启用 |
|
|
isDisabled.value = selectedRows.length === 0 |
|
|
isDisabled.value = selectedRows.length === 0 |
|
|
console.log(isDisabled) |
|
|
|
|
|
if (selectedRows.length === 0) |
|
|
if (selectedRows.length === 0) |
|
|
setProps({disabled: true}) |
|
|
setProps({disabled: true}) |
|
|
|
|
|
|
|
|
@ -94,7 +128,7 @@ async function updatempName(selectedRowKeys, selectedRows) { |
|
|
const versionList = [] as any |
|
|
const versionList = [] as any |
|
|
// // 组名下拉框问题 |
|
|
// // 组名下拉框问题 |
|
|
versionData.forEach((item) => { |
|
|
versionData.forEach((item) => { |
|
|
versionList.push({ label: item.version, value: item.id }) |
|
|
versionList.push({label: `${item.version} (${item.conditionName})`, value: item.id}) |
|
|
}) |
|
|
}) |
|
|
const calcGroupData = selectedRows.length !== 0 ? await getCalcGroupList({unitId: selectedRows[0].unitId}) : [] |
|
|
const calcGroupData = selectedRows.length !== 0 ? await getCalcGroupList({unitId: selectedRows[0].unitId}) : [] |
|
|
const calcGroupList = [] as any |
|
|
const calcGroupList = [] as any |
|
|
@ -122,8 +156,10 @@ function onCanel() { |
|
|
current.value = 0 |
|
|
current.value = 0 |
|
|
closeModal() |
|
|
closeModal() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const loading = ref<boolean>(false) |
|
|
const loading = ref<boolean>(false) |
|
|
const pointRef = ref() |
|
|
const pointRef = ref() |
|
|
|
|
|
|
|
|
async function CompleteCreate() { |
|
|
async function CompleteCreate() { |
|
|
try { |
|
|
try { |
|
|
loading.value = true |
|
|
loading.value = true |
|
|
@ -132,6 +168,7 @@ async function CompleteCreate() { |
|
|
setModalProps({confirmLoading: true, loading: true}) |
|
|
setModalProps({confirmLoading: true, loading: true}) |
|
|
|
|
|
|
|
|
const values = await validate() |
|
|
const values = await validate() |
|
|
|
|
|
console.log(values) |
|
|
// if (unref(isUpdate)) { |
|
|
// if (unref(isUpdate)) { |
|
|
// await updateDemo02Category(values) |
|
|
// await updateDemo02Category(values) |
|
|
// } else { |
|
|
// } else { |
|
|
@ -146,8 +183,7 @@ async function CompleteCreate() { |
|
|
|
|
|
|
|
|
emit('success') |
|
|
emit('success') |
|
|
createMessage.success(t('common.saveSuccessText')) |
|
|
createMessage.success(t('common.saveSuccessText')) |
|
|
} |
|
|
} finally { |
|
|
finally { |
|
|
|
|
|
closeModal() |
|
|
closeModal() |
|
|
loading.value = false |
|
|
loading.value = false |
|
|
|
|
|
|
|
|
@ -158,21 +194,24 @@ async function CompleteCreate() { |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<template> |
|
|
<template> |
|
|
<BasicModal v-bind="$attrs" title="新增模型实例" width="80%" @cancel="onCanel" @register="registerCreateModal"> |
|
|
<BasicModal v-bind="$attrs" title="新增模型实例" width="80%" @cancel="onCanel" |
|
|
|
|
|
@register="registerCreateModal"> |
|
|
<Card title="实例信息"> |
|
|
<Card title="实例信息"> |
|
|
<BasicForm @register="registerForm" /> |
|
|
<BasicForm @register="registerForm" ref="instantFormRef"/> |
|
|
</Card> |
|
|
</Card> |
|
|
<Divider/> |
|
|
<Divider/> |
|
|
|
|
|
|
|
|
<Steps :current="current" :items="items"/> |
|
|
<Steps :current="current" :items="items"/> |
|
|
<div class="steps-content"> |
|
|
<div class="steps-content"> |
|
|
<ModalTable v-if="current === 0" @success="updatempName" /> |
|
|
<ModalTable v-if="current === 0" :selectedRowKeys="state.selectedRowKeys" |
|
|
|
|
|
:selected-data="state.selectedData" @success="updatempName"/> |
|
|
<PointTable v-if="current === 1" ref="pointRef" :data="state.pointInfo" :type="state.type"/> |
|
|
<PointTable v-if="current === 1" ref="pointRef" :data="state.pointInfo" :type="state.type"/> |
|
|
</div> |
|
|
</div> |
|
|
<!-- modal 底部区域插槽实现--替换原按钮 --> |
|
|
<!-- modal 底部区域插槽实现--替换原按钮 --> |
|
|
<template #footer> |
|
|
<template #footer> |
|
|
<div class="steps-action"> |
|
|
<div class="steps-action"> |
|
|
<a-button v-if="current < steps.length - 1 " :disabled="isDisabled" type="primary" @click="next"> |
|
|
<a-button v-if="current < steps.length - 1 " :disabled="isDisabled" type="primary" |
|
|
|
|
|
@click="next"> |
|
|
下一步 |
|
|
下一步 |
|
|
</a-button> |
|
|
</a-button> |
|
|
<a-button |
|
|
<a-button |
|
|
@ -183,9 +222,9 @@ async function CompleteCreate() { |
|
|
> |
|
|
> |
|
|
完成 |
|
|
完成 |
|
|
</a-button> |
|
|
</a-button> |
|
|
<!-- <a-button v-if="current > 0" style="margin-left: 8px" @click="prev"> |
|
|
<a-button v-if="current > 0" style="margin-left: 8px" @click="prev"> |
|
|
上一步+ |
|
|
上一步 |
|
|
</a-button> --> |
|
|
</a-button> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
</BasicModal> |
|
|
</BasicModal> |
|
|
|