offlineModel.vue 4.3 KB
<template>
  <BasicModal
    width="70%"
    v-bind="$attrs"
    @register="registerModal"
    :title="getTitle"
    @ok="handleSubmit"
  >
    <Alert type="warning" show-icon message="任务流存在依赖或引用,请确认是否继续该操作?" />
    <Row :gutter="16">
      <Col :span="8">
        <List>
          <template v-for="item in delList1" :key="item.id">
            <List.Item
              style="cursor: pointer"
              @click="handleChange(item)"
              :style="{ backgroundColor: selectId === item.id ? '#DCEFFF' : null }"
            >
              <List.Item.Meta>
                <template #avatar>
                  <BranchesOutlined />
                </template>
                <template #title>
                  <span>{{ item.title }}</span>
                </template>
              </List.Item.Meta>
            </List.Item>
          </template>
        </List>
      </Col>
      <Col :span="8">
        <BasicTable @register="registerTable" :searchInfo="searchInfo">
          <template #headerCell="{ column }">
            <template v-if="column.key === 'task'">
              <span>下游依赖({{ getDataSource().length }}</span>
            </template>
          </template>
        </BasicTable>
      </Col>
      <Col :span="8">
        <BasicTable @register="rightTable" :searchInfo="searchInfo">
          <template #headerCell="{ column }">
            <template v-if="column.key === 'task'">
              <span>被引入({{ getRightList().length }}</span>
            </template>
          </template>
        </BasicTable>
      </Col>
    </Row>
  </BasicModal>
</template>
<script lang="ts" setup>
  import { useTable, TableAction, BasicTableProps } from '@/components/Table';
  import {ref, computed, unref, reactive, defineEmits} from 'vue';
  import Icon from '@/components/Icon/Icon.vue';
  import { Select, Alert, List, Row, Col } from 'ant-design-vue';
  import { BranchesOutlined } from '@ant-design/icons-vue';
  import { BasicModal, useModalInner } from '@/components/Modal';
  import { BasicForm, useForm } from '@/components/Form';
  import BasicTable from '@/components/Table/src/BasicTable.vue';
  import { connectionData } from '@/views/dataWarehousePlanning/logicalModel/modelDetail/modelData';
  import {
    connectionFormSchema,
    connectionTable,
  } from '@/views/dataWarehousePlanning/logicalModel/modelDetail/model.data';
  import {
    delTableColumn1,
    infoFormSchema,
    uploadModelSchema,
    upstreamTaskColumn,
  } from '@/views/taskScheduling/taskFlowDesign/design.data';
  import { useMessage } from '@/hooks/web/useMessage';
  import { delList1, delList2, delList3 } from './designData.ts';

  const emit = defineEmits(['setUploadFlag']);
  const getTitle = '任务流依赖/引用提醒';
  //初始化弹框
  const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
    setModalProps({ confirmLoading: false });
  });
  const searchInfo = reactive<Recordable>({});
  const selectId = ref(1);
  function handleChange(data) {
    selectId.value = data.id;
    let list = [...delList2];
    setTableData([...list.filter((item) => item.fid === data.id)]);
  }
  const { createMessage } = useMessage();
  const [registerTable, { getDataSource, setTableData }] = useTable({
    title: '',
    // 数据
    api: async (params) => {
      console.log('params:', params);
      const response = {
        code: '',
        message: '',
        data: delList2,
      };
      return { ...response };
    },
    rowKey: 'businessId',
    // 列
    columns: delTableColumn1,
    striped: false,
    showTableSetting: false,
    showIndexColumn: false,
    pagination: false,
  } as BasicTableProps);
  const [rightTable, { getDataSource: getRightList, setTableData: setRightList }] = useTable({
    title: '',
    // 数据
    api: async (params) => {
      console.log('params:', params);
      const response = {
        code: '',
        message: '',
        data: delList3,
      };
      return { ...response };
    },
    rowKey: 'businessId',
    // 列
    columns: delTableColumn1,
    striped: false,
    showTableSetting: false,
    showIndexColumn: false,
    pagination: false,
  } as BasicTableProps);
  async function handleSubmit() {
    closeModal();
    emit('setUploadFlag', false);
    createMessage.success('下线成功');
  }
</script>