ny
昨天 282fbc6488f4e8ceb5fda759f963ee88fbf7b999
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<script lang="ts" setup>
import { ref } from 'vue';
 
import { useGlobSetting } from '@jnpf/hooks';
import { BasicModal, useModalInner } from '@jnpf/ui/modal';
import { formatToDateTime } from '@jnpf/utils';
 
import { getCirculateList } from '#/api/workFlow/task';
 
const [registerModal] = useModalInner(init);
const globSetting = useGlobSetting();
const apiUrl = ref(globSetting.apiURL);
const list = ref<any[]>([]);
const loading = ref<boolean>(false);
 
function init(data) {
  loading.value = true;
  list.value = [];
  getCirculateList(data.taskId, data.nodeId).then((res) => {
    list.value = res.data || [];
    loading.value = false;
  });
}
</script>
<template>
  <BasicModal v-bind="$attrs" @register="registerModal" title="抄送人员" :width="400" :footer="null" destroy-on-close class="circulateUser-modal">
    <div class="circulateUser-body">
      <div v-for="item in list" :key="item">
        <div class="circulate-item circulate-item-user">
          <div class="circulate-item-main">
            <a-avatar :size="36" :src="apiUrl + item.headIcon" class="circulate-item-headIcon" />
            <div class="circulate-item-text">
              <p class="name">{{ item.userName }}</p>
              <p class="time">{{ formatToDateTime(item.creatorTime) }}</p>
            </div>
          </div>
        </div>
      </div>
    </div>
  </BasicModal>
</template>
<style lang="scss">
.circulateUser-modal {
  .ant-modal-body > .scrollbar {
    padding: 20px;
  }
 
  .circulateUser-body {
    font-size: 14px;
    border-radius: var(--radius);
 
    .circulate-item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      padding: 0 12px;
 
      &.circulate-item-user {
        &:last-child {
          .selected-item-main {
            border-bottom-color: transparent;
          }
        }
 
        .circulate-item-main {
          box-sizing: border-box;
          display: flex;
          align-items: center;
          width: 100%;
          height: 50px;
          border-bottom: 1px solid var(--border-color-base1);
        }
 
        .circulate-item-headIcon {
          flex-shrink: 0;
        }
 
        .circulate-item-text {
          flex: 1;
          min-width: 0;
          margin-left: 16px;
 
          .name {
            height: 20px;
            margin-bottom: 2px;
            overflow: hidden;
            text-overflow: ellipsis;
            font-size: 14px;
            line-height: 20px;
            white-space: nowrap;
          }
 
          .time {
            height: 17px;
            overflow: hidden;
            text-overflow: ellipsis;
            font-size: 12px;
            line-height: 17px;
            color: #999;
            white-space: nowrap;
          }
        }
      }
    }
  }
}
</style>