Blame view

src/components/oa/selectStaff.vue 3.46 KB
a99eb7a5   wuxw   开发完成办公下功能
1
  <template>
d4a6b78f   wuxw   OA 中考勤功能开发完成
2
3
4
    <el-dialog 
      :title="$t('selectStaff.title')" 
      :visible.sync="visible" 
a99eb7a5   wuxw   开发完成办公下功能
5
      width="70%"
d4a6b78f   wuxw   OA 中考勤功能开发完成
6
7
      :close-on-click-modal="false"
    >
a99eb7a5   wuxw   开发完成办公下功能
8
9
      <el-row :gutter="20">
        <el-col :span="12" class="border-right">
d4a6b78f   wuxw   OA 中考勤功能开发完成
10
11
          <div class="text-center mb-20">
            <h4>{{ $t('selectStaff.orgInfo') }}</h4>
a99eb7a5   wuxw   开发完成办公下功能
12
          </div>
d4a6b78f   wuxw   OA 中考勤功能开发完成
13
14
15
16
          <org-tree-show 
            ref="orgTree" 
            @switchOrg="handleSwitchOrg"
          ></org-tree-show>
a99eb7a5   wuxw   开发完成办公下功能
17
        </el-col>
d4a6b78f   wuxw   OA 中考勤功能开发完成
18
  
a99eb7a5   wuxw   开发完成办公下功能
19
        <el-col :span="12">
d4a6b78f   wuxw   OA 中考勤功能开发完成
20
21
          <div class="text-center mb-20">
            <h4>{{ $t('selectStaff.staffInfo') }}</h4>
a99eb7a5   wuxw   开发完成办公下功能
22
          </div>
d4a6b78f   wuxw   OA 中考勤功能开发完成
23
          <div class="staff-list">
a99eb7a5   wuxw   开发完成办公下功能
24
            <div 
d4a6b78f   wuxw   OA 中考勤功能开发完成
25
              v-for="(staff, index) in staffList" 
a99eb7a5   wuxw   开发完成办公下功能
26
27
              :key="index" 
              class="staff-item" 
d4a6b78f   wuxw   OA 中考勤功能开发完成
28
29
30
              :class="{ 'selected': currentStaffId === staff.staffId }"
              @click="handleSelectStaff(staff)"
            >
a99eb7a5   wuxw   开发完成办公下功能
31
              <div>
d4a6b78f   wuxw   OA 中考勤功能开发完成
32
33
                <i class="el-icon-user"></i>
                {{ staff.name }}
a99eb7a5   wuxw   开发完成办公下功能
34
              </div>
d4a6b78f   wuxw   OA 中考勤功能开发完成
35
              <div>{{ staff.tel }}</div>
a99eb7a5   wuxw   开发完成办公下功能
36
37
38
39
            </div>
          </div>
        </el-col>
      </el-row>
d4a6b78f   wuxw   OA 中考勤功能开发完成
40
  
a99eb7a5   wuxw   开发完成办公下功能
41
      <div 
d4a6b78f   wuxw   OA 中考勤功能开发完成
42
43
44
45
46
47
        v-if="staffData.from === 'bpmn' || staffData.from === 'purchase' || staffData.from === 'contract'"
        slot="footer" 
        class="dialog-footer"
      >
        <el-button @click="handleFirstUser">{{ $t('selectStaff.submitter') }}</el-button>
        <el-button @click="handleCustomUser">{{ $t('selectStaff.dynamicAssign') }}</el-button>
a99eb7a5   wuxw   开发完成办公下功能
48
49
50
51
52
      </div>
    </el-dialog>
  </template>
  
  <script>
d4a6b78f   wuxw   OA 中考勤功能开发完成
53
54
  import OrgTreeShow from './OrgTreeShow'
  import { queryStaffInfos } from '@/api/oa/addAttendanceClassesStaffApi'
a99eb7a5   wuxw   开发完成办公下功能
55
56
57
58
59
60
61
62
  
  export default {
    name: 'SelectStaff',
    components: {
      OrgTreeShow
    },
    data() {
      return {
d4a6b78f   wuxw   OA 中考勤功能开发完成
63
64
65
66
67
        visible: false,
        staffData: {},
        staffList: [],
        currentStaffId: '',
        currentOrgId: ''
a99eb7a5   wuxw   开发完成办公下功能
68
69
      }
    },
a99eb7a5   wuxw   开发完成办公下功能
70
71
    methods: {
      open(staff) {
d4a6b78f   wuxw   OA 中考勤功能开发完成
72
73
74
75
76
        this.staffData = staff
        this.visible = true
        this.$nextTick(() => {
          this.$refs.orgTree.refreshTree()
        })
a99eb7a5   wuxw   开发完成办公下功能
77
      },
d4a6b78f   wuxw   OA 中考勤功能开发完成
78
79
      async handleSwitchOrg(org) {
        this.currentOrgId = org.orgId
a99eb7a5   wuxw   开发完成办公下功能
80
81
82
83
84
85
86
        try {
          const params = {
            page: 1,
            row: 50,
            orgId: org.orgId
          }
          const res = await queryStaffInfos(params)
d4a6b78f   wuxw   OA 中考勤功能开发完成
87
88
89
          this.staffList = res.data.staffs
          if (this.staffList.length > 0) {
            this.currentStaffId = this.staffList[0].staffId
a99eb7a5   wuxw   开发完成办公下功能
90
91
          }
        } catch (error) {
d4a6b78f   wuxw   OA 中考勤功能开发完成
92
          this.$message.error(this.$t('selectStaff.loadStaffFailed'))
a99eb7a5   wuxw   开发完成办公下功能
93
94
        }
      },
d4a6b78f   wuxw   OA 中考勤功能开发完成
95
96
97
98
99
100
101
      handleSelectStaff(staff) {
        this.$emit('change', {
          staffId: staff.userId,
          staffName: staff.userName,
          staffTel: staff.tel
        })
        this.visible = false
a99eb7a5   wuxw   开发完成办公下功能
102
      },
d4a6b78f   wuxw   OA 中考勤功能开发完成
103
104
105
106
107
108
      handleFirstUser() {
        this.$emit('change', {
          staffId: '${startUserId}',
          staffName: this.$t('selectStaff.submitter')
        })
        this.visible = false
a99eb7a5   wuxw   开发完成办公下功能
109
      },
d4a6b78f   wuxw   OA 中考勤功能开发完成
110
111
112
113
114
115
      handleCustomUser() {
        this.$emit('change', {
          staffId: '${nextUserId}',
          staffName: this.$t('selectStaff.dynamicAssign')
        })
        this.visible = false
a99eb7a5   wuxw   开发完成办公下功能
116
117
118
119
120
121
122
123
124
125
      }
    }
  }
  </script>
  
  <style lang="scss" scoped>
  .border-right {
    border-right: 1px solid #ebeef5;
  }
  
d4a6b78f   wuxw   OA 中考勤功能开发完成
126
127
  .text-center {
    text-align: center;
a99eb7a5   wuxw   开发完成办公下功能
128
129
  }
  
d4a6b78f   wuxw   OA 中考勤功能开发完成
130
131
  .mb-20 {
    margin-bottom: 20px;
a99eb7a5   wuxw   开发完成办公下功能
132
133
  }
  
d4a6b78f   wuxw   OA 中考勤功能开发完成
134
135
  .staff-list {
    max-height: 500px;
a99eb7a5   wuxw   开发完成办公下功能
136
    overflow-y: auto;
a99eb7a5   wuxw   开发完成办公下功能
137
138
139
140
141
142
143
144
  }
  
  .staff-item {
    padding: 10px;
    margin-bottom: 5px;
    border: 1px solid #ebeef5;
    border-radius: 4px;
    cursor: pointer;
d4a6b78f   wuxw   OA 中考勤功能开发完成
145
  
a99eb7a5   wuxw   开发完成办公下功能
146
147
148
    &:hover {
      background-color: #f5f7fa;
    }
d4a6b78f   wuxw   OA 中考勤功能开发完成
149
  
a99eb7a5   wuxw   开发完成办公下功能
150
151
152
153
154
    &.selected {
      background-color: #ecf5ff;
      border-color: #d9ecff;
    }
  }
a99eb7a5   wuxw   开发完成办公下功能
155
  </style>