干燥机配套车间生产管理系统/云平台服务端
baoshiwei
2024-05-27 fa3ac93010bea3805438ee3ab0a182bfbf7423da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<template>
  <a-dropdown v-if="syncToApp && syncToLocal">
    <a-button type="primary" preIcon="ant-design:sync-outlined">同步{{ name }}</a-button>
    <template #overlay>
      <a-menu @click="handleMenuClick">
        <a-menu-item v-if="syncToApp" key="to-app">同步到{{ name }}</a-menu-item>
        <a-menu-item v-if="getSyncToLocal" key="to-local">同步到本地</a-menu-item>
      </a-menu>
    </template>
  </a-dropdown>
  <a-button v-else-if="syncToApp" type="primary" preIcon="ant-design:sync-outlined" @click="handleMenuClick({ key: 'to-app' })"
    >同步{{ name }}</a-button
  >
  <a-button v-else type="primary" preIcon="ant-design:sync-outlined" @click="handleMenuClick({ key: 'to-local' })">同步{{ name }}到本地</a-button>
</template>
 
<script lang="ts" setup>
  /* JThirdAppButton 的子组件,不可单独使用 */
  import { computed } from 'vue';
 
  const props = defineProps({
    type: String,
    name: String,
    syncToApp: Boolean,
    syncToLocal: Boolean,
  });
  // 声明Emits
  const emit = defineEmits(['to-app', 'to-local']);
 
  const getSyncToLocal = computed(() => {
    // 由于企业微信接口变更,将不再支持同步到本地
    if (props.type === 'wechatEnterprise') {
      return false;
    }
    return props.syncToLocal;
  });
 
  function handleMenuClick(event) {
    emit(event.key, { type: props.type });
  }
</script>
 
<style scoped></style>