|
@@ -11,15 +11,21 @@ |
|
@@ -11,15 +11,21 @@ |
11
|
<BasicForm @register="registerForm">
|
11
|
<BasicForm @register="registerForm">
|
12
|
|
12
|
|
13
|
</BasicForm>
|
13
|
</BasicForm>
|
|
|
14
|
+ <div class="footer">
|
|
|
15
|
+ <Button type="primary" @click="fnTest">
|
|
|
16
|
+ 测试链接
|
|
|
17
|
+ </Button>
|
|
|
18
|
+ </div>
|
14
|
</BasicDrawer>
|
19
|
</BasicDrawer>
|
15
|
</div>
|
20
|
</div>
|
16
|
</template>
|
21
|
</template>
|
17
|
<script lang="ts" setup name="sqlApi">
|
22
|
<script lang="ts" setup name="sqlApi">
|
18
|
import {
|
23
|
import {
|
19
|
getBigViewSql,
|
24
|
getBigViewSql,
|
20
|
- saveDataViewSql
|
25
|
+ saveDataViewSql, testDataViewSql
|
21
|
} from "/@/api/bigscreen/center/bigscreenCenter";
|
26
|
} from "/@/api/bigscreen/center/bigscreenCenter";
|
22
|
import {BasicDrawer, useDrawerInner} from "/@/components/Drawer";
|
27
|
import {BasicDrawer, useDrawerInner} from "/@/components/Drawer";
|
|
|
28
|
+import { Button } from 'ant-design-vue';
|
23
|
import {BasicForm, useForm} from "/@/components/Form";
|
29
|
import {BasicForm, useForm} from "/@/components/Form";
|
24
|
import {schemas} from "/@/views/dataview/sqlApi/config/config";
|
30
|
import {schemas} from "/@/views/dataview/sqlApi/config/config";
|
25
|
import {nextTick, ref} from "vue";
|
31
|
import {nextTick, ref} from "vue";
|
|
@@ -67,7 +73,7 @@ const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async ( |
|
@@ -67,7 +73,7 @@ const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async ( |
67
|
}
|
73
|
}
|
68
|
});
|
74
|
});
|
69
|
|
75
|
|
70
|
-const [registerForm, { resetFields, validate, setFieldsValue, updateSchema }] = useForm({
|
76
|
+const [registerForm, { resetFields, validate, setFieldsValue, updateSchema,getFieldsValue }] = useForm({
|
71
|
labelWidth: 160,
|
77
|
labelWidth: 160,
|
72
|
schemas: schemas(),
|
78
|
schemas: schemas(),
|
73
|
showActionButtonGroup: false,
|
79
|
showActionButtonGroup: false,
|
|
@@ -110,4 +116,44 @@ const handleSubmit = async () => { |
|
@@ -110,4 +116,44 @@ const handleSubmit = async () => { |
110
|
setDrawerProps({ loading: false });
|
116
|
setDrawerProps({ loading: false });
|
111
|
}
|
117
|
}
|
112
|
}
|
118
|
}
|
|
|
119
|
+const fnTest = async () => {
|
|
|
120
|
+ const values = getFieldsValue();
|
|
|
121
|
+ const {
|
|
|
122
|
+ ssh_ip,
|
|
|
123
|
+ ssh_port,
|
|
|
124
|
+ ssh_privateKey,
|
|
|
125
|
+ ssh_sshPassword,
|
|
|
126
|
+ ssh_verifyMethod,
|
|
|
127
|
+ ...restValues
|
|
|
128
|
+ } = values;
|
|
|
129
|
+
|
|
|
130
|
+// 2. 创建新对象时直接排除这些字段
|
|
|
131
|
+ const processedData: any = {
|
|
|
132
|
+ ...restValues, // 这里不包含 ssh_* 字段
|
|
|
133
|
+ id: putId.value || null,
|
|
|
134
|
+ ssl: sslId.value ? { id: sslId.value } : null,
|
|
|
135
|
+ ssh: {
|
|
|
136
|
+ id: sshId.value || null,
|
|
|
137
|
+ ip: ssh_ip,
|
|
|
138
|
+ port: ssh_port,
|
|
|
139
|
+ sshName: values.ssh_sshName,
|
|
|
140
|
+ privateKey: values.ssh_privateKey?.[0]?.url || '',
|
|
|
141
|
+ privateKeyFileName: values.ssh_privateKey?.[0]?.name || '',
|
|
|
142
|
+ sshPassword: ssh_sshPassword,
|
|
|
143
|
+ verifyMethod: ssh_verifyMethod
|
|
|
144
|
+ }
|
|
|
145
|
+ };
|
|
|
146
|
+ const res = await testDataViewSql(processedData);
|
|
|
147
|
+ if (res === false) {
|
|
|
148
|
+ createMessage.error('测试链接失败')
|
|
|
149
|
+ }else if (res === true){
|
|
|
150
|
+ createMessage.success('测试链接成功')
|
|
|
151
|
+ }
|
|
|
152
|
+}
|
113
|
</script>
|
153
|
</script>
|
|
|
154
|
+<style lang="less" scoped>
|
|
|
155
|
+.footer {
|
|
|
156
|
+ margin-top: 50px;
|
|
|
157
|
+ text-align: right;
|
|
|
158
|
+}
|
|
|
159
|
+</style> |