huangyinfeng
6 天以前 a9a03d64cf190188d3db04d14970fc0908b03491
src/views/email/components/ListPage/pageHeadLeft.vue
@@ -5,16 +5,24 @@
      <template #title>
        <span>分发</span>
      </template>
      <ExportOutlined v-show="checked" class="icon" />
      <ExportOutlined class="icon" />
    </a-tooltip>
    <!-- 时间 -->
    <ClockCircleOutlined class="icon" v-show="checked" />
    <!-- 待处理 -->
    <TooltipAndDropdown
      class="icon"
      v-show="checked"
      :tooltipTitle="'待处理邮件'"
      :initialDropdownOpen="false"
      :initialTooltipOpen="false"
      :showTooltip="false"
      :docCodeS="getSelectAllBocCode"
    />
    <!-- 删除 -->
    <a-tooltip placement="bottom">
      <template #title>
        <span>删除</span>
      </template>
      <DeleteOutlined v-show="checked" class="icon" />
      <DeleteOutlined v-show="checked" class="icon" @click="fuDeleteEmail" />
    </a-tooltip>
    <!-- 收藏 -->
@@ -39,31 +47,32 @@
      </template>
      <a-dropdown :arrow="{ pointAtCenter: true }" placement="bottom" :trigger="['click']">
        <template #overlay>
          <a-menu>
          <a-menu v-if="checked">
            <a-menu-item key="2" @click="fnSelectAllRead(true)"> 标为已读</a-menu-item>
            <a-menu-item key="3" @click="fnSelectAllRead(false)"> 标为未读</a-menu-item>
            <a-menu-item key="4"> 设为置顶</a-menu-item>
            <a-divider style="margin: 2px; padding: 2px" />
            <a-menu-item key="5"> 标记为垃圾邮件</a-menu-item>
          </a-menu>
        </template>
        <MoreOutlined v-show="checked" class="icon" />
          <!-- </template>
        <MoreOutlined v-if="checked" class="icon" />
      </a-dropdown>
      <a-dropdown :arrow="{ pointAtCenter: true }" placement="bottom" :trigger="['click']">
        <template #overlay>
          <a-menu>
        <template #overlay> -->
          <a-menu v-else>
            <a-menu-item key="1" @click="fnAllRead">全部标记为已读</a-menu-item>
            <a-divider style="margin: 2px; padding: 2px" />
            <p style="color: #999; font-size: 12px">勾选邮件即可查看更多操作</p>
          </a-menu>
        </template>
        <MoreOutlined v-show="!checked" class="icon" />
        <MoreOutlined class="icon" />
      </a-dropdown>
    </a-tooltip>
  </div>
</template>
<script lang="ts" setup>
  import TooltipAndDropdown from './TooltipAndDropdown .vue';
  import {
    ExportOutlined,
    ClockCircleOutlined,
@@ -77,12 +86,16 @@
    checked: boolean;
    handleId?: number;
    selectAllRow?: Array<any>;
    parentTableList: Array<any>;
    parentTableList?: Array<any>;
  }
  const props = defineProps<Props>();
  const checked = computed(() => props.checked);
  import { updateReadApi } from '@/api/email/userList';
  const props = defineProps<Props>();
  const checked = computed(() => props.checked);
  import { updateReadApi, deleteEmailAPi } from '@/api/email/userList';
  import { useMessage } from '@/hooks/web/useMessage';
  const { createMessage } = useMessage();
  const getDataList = inject('getDataList');
  function fnSelectAllRead(is) {
    const data = {
@@ -91,6 +104,19 @@
    };
    pushUpdateReadApi(data);
  }
  const getSelectAllBocCode = computed(() => {
    try {
      if (props.parentTableList?.length == 0) {
        return [];
      }
      let data = props.selectAllRow.map((item) => item.docCode);
      console.log(data, '00003');
      return data;
    } catch (error) {
      return [];
    }
  });
  function pushUpdateReadApi(data) {
    updateReadApi(data).then((res) => {
      if (res.code == 0) {
@@ -106,16 +132,36 @@
  function fnGetTableList() {
    const data = {
      status: true,
      list:getReadId(),
      list: getReadId(),
    };
    pushUpdateReadApi(data);
  }
  function getReadId(){
    const ids = [];
    props.parentTableList.forEach((item: Record<string, any>) => {
      ids.push(item.docCode);
  function getReadId() {
    try {
      const ids = [];
      if (props.parentTableList?.length == 0) {
        return [];
      }
      props.parentTableList.forEach((item: Record<string, any>) => {
        ids.push(item.docCode);
      });
      return ids;
    } catch (error) {
      return [];
    }
  }
  const emit = defineEmits(['nextNum']);
  function fuDeleteEmail() {
    deleteEmailAPi(getSelectAllBocCode.value).then((res) => {
      if (res.code == 0) {
        createMessage.success(res.msg);
        // 区分操作
        getDataList({});
        if (!props.parentTableList) {
          emit('nextNum');
        }
      }
    });
    return ids
  }
</script>