| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <script lang="tsx">
- import {
- computed,
- defineComponent,
- ref,
- onMounted,
- watchEffect,
- watch
- } from "vue";
- import { useExposeDialogArgs } from "@qomo-platform/core";
- import SqlStatement from "@/components/SqlStatement";
-
- export default defineComponent({
- name: "dbOutput",
- props: {
- nodeDetail: {
- type: Object
- }
- },
- setup(props, { attrs, expose, slots = {} }) {
- const nodeDetail = computed(() => props?.nodeDetail);
- const baseFormRef = ref({});
- const baseMonacoEditorRef = ref();
- const { findNodesPrev, findNodesNext, getNodeData } = attrs;
- const submit = () => {
- let params = baseFormRef.value.formData;
- return {
- params
- };
- };
-
- const open = () => {
- init(nodeDetail.value);
- baseMonacoEditorRef.value?.restLayout();
- };
-
- // onMounted(()=>{
- // init(nodeDetail.value)
- // })
-
- // watch(nodeDetail,(v)=>{
- // init(v)
- // },{
- // deep:true
- // })
- watch(
- () => baseFormRef.value.formData,
- val => {},
- {
- deep: true
- }
- );
-
- const init = v => {
- const data = findNodesNext(props?.nodeDetail.id);
- baseFormRef.value.setFormData(
- JSON.parse(v?.taskParams || "{}")?.params || {}
- );
- };
-
- const handleOK = value => {};
-
- expose({
- submit,
- open
- });
-
- return () => (
- <base-form
- ref={baseFormRef}
- v-slots={{
- default: ({ model }) => (
- <div class={"flex gap-[10px] w-full"}>
- <div class={"w-[300px] overflow-auto flex flex-col"}>
- <SqlStatement
- baseFormRef={baseFormRef}
- model={model}
- ></SqlStatement>
- </div>
- <div class={"flex flex-1 flex-col"}>
- <base-form-item label="SQL语句:" prop="test" span={8}>
- <div class={"w-full h-[200px]"}>
- <BaseMonacoEditor
- ref={baseMonacoEditorRef}
- v-model={model.code}
- language="sql"
- customReminders={{
- test: ["liaoqiuyu"]
- }}
- ></BaseMonacoEditor>
- </div>
- </base-form-item>
- </div>
- </div>
- )
- }}
- />
- );
- }
- });
- </script>
- <style scoped lang="scss"></style>
|