|
|
@ -14,62 +14,48 @@ import {useMessage} from '@/hooks/web/useMessage' |
|
|
|
|
|
|
|
|
const emit = defineEmits(['success']) |
|
|
const emit = defineEmits(['success']) |
|
|
|
|
|
|
|
|
// const props = defineProps({ |
|
|
|
|
|
// isDisabled: { |
|
|
|
|
|
// type: Boolean, |
|
|
|
|
|
// default: true, |
|
|
|
|
|
// } |
|
|
|
|
|
// }) |
|
|
|
|
|
const current = ref<number>(0) |
|
|
|
|
|
const {createMessage} = useMessage() |
|
|
const {createMessage} = useMessage() |
|
|
const {t} = useI18n() |
|
|
const {t} = useI18n() |
|
|
|
|
|
const current = ref<number>(0) |
|
|
const state = reactive<any>({ |
|
|
const state = reactive<any>({ |
|
|
selectedRowKeys: [], |
|
|
selectedRowKeys: [], |
|
|
selectedData: [], |
|
|
selectedData: [], |
|
|
pointInfo: [], |
|
|
pointInfo: [], |
|
|
type: false, |
|
|
type: false, |
|
|
}) |
|
|
}) |
|
|
|
|
|
// 本地isDisabled变量-表征下一步按钮的启用与禁用 |
|
|
|
|
|
const isDisabled = ref<boolean>(true) |
|
|
|
|
|
|
|
|
const [registerCreateModal, {setModalProps, closeModal}] = useModalInner(async (data) => { |
|
|
const [registerCreateModal, {setModalProps, closeModal}] = useModalInner(async (data) => { |
|
|
|
|
|
alert(444) |
|
|
await resetFields() |
|
|
await resetFields() |
|
|
current.value=0; |
|
|
current.value=0; |
|
|
state.selectedRowKeys=[]; |
|
|
state.selectedData=[]; |
|
|
state.selectedData=[]; |
|
|
state.selectedRowKeys=[]; |
|
|
setModalProps({destroyOnClose: true, showCancelBtn: false, showOkBtn: false}) |
|
|
|
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 = [ |
|
|
{ |
|
|
{ key: '壹', title: '壹' }, |
|
|
title: '壹', |
|
|
{ key: '贰', title: '贰' }, |
|
|
content: 'First-content', |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
title: '贰', |
|
|
|
|
|
content: 'Second-content', |
|
|
|
|
|
}, |
|
|
|
|
|
] |
|
|
] |
|
|
const items = steps.map(item => ({key: item.title, title: item.title})) |
|
|
const [registerForm, {validate, resetFields,getFieldsValue, setFieldsValue, updateSchema, setProps}] = useForm({ |
|
|
|
|
|
|
|
|
const [registerForm, {validate, resetFields, setFieldsValue, updateSchema, setProps}] = useForm({ |
|
|
|
|
|
labelWidth: 100, |
|
|
labelWidth: 100, |
|
|
schemas: createInstantForm, |
|
|
schemas: createInstantForm, |
|
|
showSubmitButton: false, |
|
|
showSubmitButton: false, |
|
|
showResetButton: false, |
|
|
showResetButton: false, |
|
|
layout: 'horizontal', |
|
|
layout: 'horizontal', |
|
|
actionColOptions: {span: 2}, |
|
|
actionColOptions: { |
|
|
disabled: true, |
|
|
span: 0, // 不占任何列 |
|
|
|
|
|
style: { display: 'none' }, |
|
|
|
|
|
}, |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
interface instantForms { |
|
|
interface instantForms { |
|
|
@ -82,28 +68,13 @@ const instantForm = reactive<instantForms>({ |
|
|
mpName: '', |
|
|
mpName: '', |
|
|
|
|
|
|
|
|
}) |
|
|
}) |
|
|
// 本地isDisabled变量 |
|
|
|
|
|
// const isDisabled = ref<boolean>(true) |
|
|
|
|
|
|
|
|
|
|
|
// 监听父组件传递的isDisabled属性变化 |
|
|
|
|
|
// watch(() => props.isDisabled, (newVal) => { |
|
|
|
|
|
// if (newVal !== undefined) { |
|
|
|
|
|
// isDisabled.value = newVal |
|
|
|
|
|
// } |
|
|
|
|
|
// }, {immediate: true}) // immediate设置为true,确保组件初始化时也会执行一次 |
|
|
|
|
|
// |
|
|
|
|
|
|
|
|
|
|
|
async function updatempName(selectedRowKeys, selectedRows) { |
|
|
async function updatempName(selectedRowKeys, selectedRows) { |
|
|
console.log(selectedRowKeys) |
|
|
|
|
|
console.log(selectedRows) |
|
|
|
|
|
console.log(instantForm) |
|
|
|
|
|
resetFields() |
|
|
resetFields() |
|
|
state.selectedRowKeys = selectedRowKeys; |
|
|
state.selectedRowKeys = selectedRowKeys; |
|
|
state.selectedData = selectedRows; |
|
|
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) |
|
|
|
|
|
state.pointInfo = JSON.parse(selectedRows[0].modelInfo).pointInfo |
|
|
state.pointInfo = JSON.parse(selectedRows[0].modelInfo).pointInfo |
|
|
for (const p of state.pointInfo) { |
|
|
for (const p of state.pointInfo) { |
|
|
p.modelName = selectedRows[0].modelName |
|
|
p.modelName = selectedRows[0].modelName |
|
|
@ -115,15 +86,12 @@ async function updatempName(selectedRowKeys, selectedRows) { |
|
|
// 下一步按钮的禁用与启用 |
|
|
// 下一步按钮的禁用与启用 |
|
|
isDisabled.value = selectedRows.length === 0 |
|
|
isDisabled.value = selectedRows.length === 0 |
|
|
if (selectedRows.length === 0) |
|
|
if (selectedRows.length === 0) |
|
|
await setProps({disabled: true}) |
|
|
setProps({disabled: true}) |
|
|
|
|
|
|
|
|
else |
|
|
else |
|
|
await setProps({disabled: false}) |
|
|
setProps({disabled: false}) |
|
|
|
|
|
|
|
|
instantForm.modelId = selectedRows.length !== 0 ? `${selectedRows[0].modelId}` : `` |
|
|
|
|
|
|
|
|
|
|
|
instantForm.mpName = selectedRows.length !== 0 ? `${selectedRows[0].modelName}-实例` : `` |
|
|
|
|
|
setFieldsValue(instantForm) |
|
|
|
|
|
|
|
|
|
|
|
const versionData = selectedRows.length !== 0 ? await getModelVersionList({modelId: selectedRows[0].modelId}) : [] |
|
|
const versionData = selectedRows.length !== 0 ? await getModelVersionList({modelId: selectedRows[0].modelId}) : [] |
|
|
const versionList = [] as any |
|
|
const versionList = [] as any |
|
|
@ -145,65 +113,62 @@ async function updatempName(selectedRowKeys, selectedRows) { |
|
|
componentProps: { |
|
|
componentProps: { |
|
|
options: versionList, |
|
|
options: versionList, |
|
|
}, |
|
|
}, |
|
|
|
|
|
defaultValue: versionList[0]?.value |
|
|
}) |
|
|
}) |
|
|
updateSchema({ |
|
|
updateSchema({ |
|
|
field: 'calcGroup', |
|
|
field: 'calcGroup', |
|
|
componentProps: { |
|
|
componentProps: { |
|
|
options: calcGroupList, |
|
|
options: calcGroupList, |
|
|
}, |
|
|
}, |
|
|
|
|
|
defaultValue: calcGroupList[0]?.value |
|
|
}) |
|
|
}) |
|
|
|
|
|
instantForm.modelId = selectedRows.length !== 0 ? `${selectedRows[0].modelId}` : `` |
|
|
|
|
|
instantForm.mpName = selectedRows.length !== 0 ? `${selectedRows[0].modelName}-实例` : `` |
|
|
|
|
|
|
|
|
|
|
|
setFieldsValue(instantForm) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function onCanel() { |
|
|
function onCanel() { |
|
|
current.value = 0 |
|
|
state.selectedData=[]; |
|
|
|
|
|
state.selectedRowKeys=[]; |
|
|
closeModal() |
|
|
closeModal() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const loading = ref<boolean>(false) |
|
|
const loading = ref<boolean>(false) |
|
|
const pointRef = ref() |
|
|
const pointRef = ref() |
|
|
|
|
|
|
|
|
async function CompleteCreate() { |
|
|
async function handleSubmit() { |
|
|
try { |
|
|
try { |
|
|
loading.value = true |
|
|
loading.value = true |
|
|
|
|
|
console.log(getFieldsValue()) |
|
|
// 由于自定义按钮的,所以confirmLoading失效 |
|
|
|
|
|
setModalProps({confirmLoading: true, loading: true}) |
|
|
|
|
|
|
|
|
|
|
|
const values = await validate() |
|
|
const values = await validate() |
|
|
console.log(values) |
|
|
console.log(values) |
|
|
// if (unref(isUpdate)) { |
|
|
|
|
|
// await updateDemo02Category(values) |
|
|
|
|
|
// } else { |
|
|
|
|
|
// await createDemo02Category(values) |
|
|
|
|
|
// } |
|
|
|
|
|
// 插入数据库 |
|
|
|
|
|
// 获取子组件的测点列表数据 |
|
|
// 获取子组件的测点列表数据 |
|
|
const pointInfoNew = pointRef.value.getPointTableData() |
|
|
const pointInfoNew = pointRef.value.getPointTableData() |
|
|
values.pointInfo = pointInfoNew |
|
|
values.pointInfo = pointInfoNew |
|
|
console.log(values) |
|
|
|
|
|
await createInstant(values) |
|
|
await createInstant(values) |
|
|
|
|
|
|
|
|
emit('success') |
|
|
emit('success') |
|
|
createMessage.success(t('common.saveSuccessText')) |
|
|
createMessage.success(t('common.saveSuccessText')) |
|
|
} finally { |
|
|
|
|
|
closeModal() |
|
|
closeModal() |
|
|
|
|
|
} |
|
|
|
|
|
catch (e) { |
|
|
|
|
|
}finally { |
|
|
loading.value = false |
|
|
loading.value = false |
|
|
|
|
|
|
|
|
// 由于自定义按钮的,所以confirmLoading失效 |
|
|
|
|
|
setModalProps({confirmLoading: false, loading: false}) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<template> |
|
|
<template> |
|
|
<BasicModal v-bind="$attrs" title="新增模型实例" width="60%" height="500px" @cancel="onCanel" |
|
|
<BasicModal v-bind="$attrs" title="新增模型实例" width="65%" |
|
|
|
|
|
:body-style="{ height: '500px', overflowY: 'auto' }" |
|
|
|
|
|
|
|
|
|
|
|
@cancel="onCanel" |
|
|
@register="registerCreateModal"> |
|
|
@register="registerCreateModal"> |
|
|
<Card title="实例信息"> |
|
|
<Card title="实例信息"> |
|
|
<BasicForm @register="registerForm" ref="instantFormRef"/> |
|
|
<BasicForm @register="registerForm" ref="instantFormRef"/> |
|
|
</Card> |
|
|
</Card> |
|
|
<Divider/> |
|
|
<Divider/> |
|
|
|
|
|
|
|
|
<Steps :current="current" :items="items"/> |
|
|
<Steps :current="current" :items="steps"/> |
|
|
<div class="steps-content"> |
|
|
<div class="steps-content"> |
|
|
<ModalTable v-if="current === 0" :selectedRowKeys="state.selectedRowKeys" |
|
|
<ModalTable v-if="current === 0" :selectedRowKeys="state.selectedRowKeys" |
|
|
:selected-data="state.selectedData" @success="updatempName"/> |
|
|
:selected-data="state.selectedData" @success="updatempName"/> |
|
|
@ -220,7 +185,7 @@ async function CompleteCreate() { |
|
|
v-if="current === steps.length - 1" |
|
|
v-if="current === steps.length - 1" |
|
|
type="primary" |
|
|
type="primary" |
|
|
:loading="loading" |
|
|
:loading="loading" |
|
|
@click="CompleteCreate" |
|
|
@click="handleSubmit" |
|
|
> |
|
|
> |
|
|
完成 |
|
|
完成 |
|
|
</a-button> |
|
|
</a-button> |
|
|
@ -234,7 +199,7 @@ async function CompleteCreate() { |
|
|
|
|
|
|
|
|
<style scoped> |
|
|
<style scoped> |
|
|
.steps-content { |
|
|
.steps-content { |
|
|
margin-top: 16px; |
|
|
margin-top: 5px; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
background-color: #fafafa; |
|
|
background-color: #fafafa; |
|
|
border: 1px dashed #e9e9e9; |
|
|
border: 1px dashed #e9e9e9; |
|
|
@ -242,11 +207,16 @@ async function CompleteCreate() { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.steps-action { |
|
|
.steps-action { |
|
|
margin-top: 24px; |
|
|
margin-top: 16px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
[data-theme='dark'] .steps-content { |
|
|
[data-theme='dark'] .steps-content { |
|
|
background-color: #2f2f2f; |
|
|
background-color: #2f2f2f; |
|
|
border: 1px dashed #404040; |
|
|
border: 1px dashed #404040; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
:deep(.ant-card-body){ |
|
|
|
|
|
padding:12px |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
</style> |
|
|
</style> |
|
|
|