huangyinfeng
6 天以前 a9a03d64cf190188d3db04d14970fc0908b03491
src/views/email/components/ListPage/table.vue
@@ -23,7 +23,7 @@
                <div
                  v-if="row.mailType != 0"
                  class="dot"
                  :class="row.readFlag ? 'dot-color' : ''"
                  :class="fnIsItHighlighted(row) ? 'dot-color' : ''"
                  @click.stop="fnRowUpdateRead(row)"
                ></div>
                <a-tooltip placement="bottom">
@@ -45,7 +45,7 @@
                    >
                      <a-avatar size="small" style="margin-right: 8px" :src="row.avatar" />
                      <span style="color: #000; font-weight: 700">{{ row.sender }}</span>
                      <CopyOutlined />
                      <CopyOutlined @click="copyText(row.sender)" />
                    </div>
                    <div class="display-flex p-2">
                      <a-button type="link" size="small">新建客户</a-button>
@@ -78,7 +78,7 @@
                      <a-button type="link" size="small">往来邮件</a-button></div
                    >
                  </template>
                  <div class="title-dot" :class="row.readFlag ? 'title-dot-color' : ''">
                  <div class="title-dot" :class="fnIsItHighlighted(row) ? 'title-dot-color' : ''">
                    <span style="font-weight: 700">{{ row.senderName }}</span
                    ><span style="padding: 0 8px">|</span>
                    <span style="font-weight: 500">{{ row.sender }}</span>
@@ -97,7 +97,7 @@
            <template #default="{ row }">
              <span
                class="title-dot"
                :class="row.readFlag ? 'title-dot-color' : ''"
                :class="fnIsItHighlighted(row) ? 'title-dot-color' : ''"
                style="font-weight: 500"
                >{{ row.subject || '(无主题)' }}</span
              >
@@ -126,11 +126,10 @@
              </span>
            </template>
          </vxe-column>
        </vxe-table>
        </div
        </vxe-table> </div
    ></div>
    <div v-else style="height: 70vh; display: flex; align-items: center; justify-content: center">
    <div v-else style="display: flex; align-items: center; justify-content: center; height: 70vh">
      <a-empty />
    </div>
    <DrawerDetail
@@ -139,6 +138,7 @@
      :mailId="rowMailId"
      :selectAllRow="selectRow"
      :allList="dataSource"
      :isDrafts="isDrafts"
    />
    <a-dropdown :trigger="['click']" placement="bottomLeft" ref="dropdownRefs"> </a-dropdown>
  </div>
@@ -158,6 +158,7 @@
  // 定义属性
  interface Props {
    pageList: [];
    isDrafts?: boolean;
  }
  const props = defineProps<Props>();
@@ -316,11 +317,21 @@
    }
  }
  const vxeTableRef = ref();
  function fnIsItHighlighted(row) {
    return row.readFlag && props.isDrafts;
  }
  function fnSelectAll(is) {
    vxeTableRef.value.forEach((row) => {
      row.setAllCheckboxRow(is);
    });
    selectChangeEvent();
    try {
      if (!vxeTableRef.value) {
        return;
      }
      vxeTableRef.value.forEach((row) => {
        row.setAllCheckboxRow(is);
      });
      selectChangeEvent();
    } catch (error) {
      console.log(error);
    }
  }
  function selectChangeEvent() {
@@ -360,12 +371,12 @@
    selectRow.value = [];
    rowMailId.value = event.row.docCode;
    selectRow.value.push({ docCode: event.row.docCode });
    fnRowUpdateRead(event.row);
    openDrawerDetail.value = true;
  };
  // 更新祖父组件数据
  const getDataList = inject('getDataList');
  console.log(getDataList, '0000004');
  import { updateReadApi, updateHandleAPi } from '@/api/email/userList';
  // 标志未读/经读
@@ -384,6 +395,19 @@
      }
    });
  }
  import { useMessage } from '@/hooks/web/useMessage';
  const { createMessage } = useMessage();
  const copyText = async (value) => {
    try {
      await navigator.clipboard.writeText(value);
      setTimeout(() => {
        createMessage.success('复制成功');
      }, 500);
    } catch (err) {
      console.error('复制失败: ', err);
    }
  };
  const emit = defineEmits(['selectAll', 'updateSelectAll']);
  defineExpose({
    fnSelectAll,