Blame view

src/components/work/selectStaff.vue 4.14 KB
b25b036d   wuxw   v1.9 优化日期
1
  <template>
0fb08017   wuxw   物品放行功能测试完成
2
3
4
    <el-dialog 
      :visible.sync="visible" 
      :title="$t('selectStaff.selectStaff')"
5760f7b9   wuxw   小区下的功能修改完成
5
6
7
8
      width="80%"
      @close="handleClose"
    >
      <el-row :gutter="20">
0fb08017   wuxw   物品放行功能测试完成
9
10
11
        <el-col :span="12">
          <div class="section-title">{{ $t('selectStaff.orgInfo') }}</div>
          <org-tree-show ref="orgTree" @switchOrg="handleSwitchOrg" />
5760f7b9   wuxw   小区下的功能修改完成
12
13
        </el-col>
        <el-col :span="12">
0fb08017   wuxw   物品放行功能测试完成
14
15
16
17
18
          <div class="section-title">{{ $t('selectStaff.staffInfo') }}</div>
          <div class="staff-list">
            <div 
              v-for="(item,index) in selectStaffInfo.staffs" 
              :key="index"
5760f7b9   wuxw   小区下的功能修改完成
19
              class="staff-item"
0fb08017   wuxw   物品放行功能测试完成
20
21
              :class="{ 'selected': selectStaffInfo.curStaffId === item.staffId }"
              @click="handleChangeStaff(item)"
5760f7b9   wuxw   小区下的功能修改完成
22
23
24
25
26
27
28
29
30
31
            >
              <div>
                <i class="el-icon-user"></i>
                {{ item.name }}
              </div>
              <div>{{ item.tel }}</div>
            </div>
          </div>
        </el-col>
      </el-row>
0fb08017   wuxw   物品放行功能测试完成
32
33
34
35
36
37
38
39
40
41
42
43
44
45
      <div slot="footer" class="dialog-footer">
        <el-button 
          v-if="staff.from === 'bpmn' || staff.from === 'purchase' || staff.from === 'contract'"
          @click="handleFirstUser"
        >
          {{ $t('selectStaff.submitter') }}
        </el-button>
        <el-button 
          v-if="staff.from === 'bpmn' || staff.from === 'purchase' || staff.from === 'contract'"
          @click="handleCustomUser"
        >
          {{ $t('selectStaff.dynamicAssign') }}
        </el-button>
        <el-button @click="visible = false">{{ $t('common.cancel') }}</el-button>
5760f7b9   wuxw   小区下的功能修改完成
46
47
48
49
50
      </div>
    </el-dialog>
  </template>
  
  <script>
0fb08017   wuxw   物品放行功能测试完成
51
  import OrgTreeShow from './OrgTreeShow'
5760f7b9   wuxw   小区下的功能修改完成
52
  import { getCommunityId } from '@/api/community/communityApi'
0fb08017   wuxw   物品放行功能测试完成
53
  import { queryStaffInfos } from '@/api/work/itemReleaseDetailApi'
5760f7b9   wuxw   小区下的功能修改完成
54
55
56
57
58
59
60
61
62
  
  export default {
    name: 'SelectStaff',
    components: {
      OrgTreeShow
    },
    data() {
      return {
        visible: false,
0fb08017   wuxw   物品放行功能测试完成
63
        communityId: '',
5760f7b9   wuxw   小区下的功能修改完成
64
        staff: {},
0fb08017   wuxw   物品放行功能测试完成
65
66
67
68
69
        selectStaffInfo: {
          staffs: [],
          curStaffId: '',
          curStaffName: ''
        }
5760f7b9   wuxw   小区下的功能修改完成
70
71
72
73
74
75
76
77
78
79
80
81
82
83
      }
    },
    created() {
      this.communityId = getCommunityId()
    },
    methods: {
      open(staff) {
        this.staff = staff || {}
        this.visible = true
        this.$nextTick(() => {
          this.$refs.orgTree.refreshTree()
        })
      },
      handleClose() {
0fb08017   wuxw   物品放行功能测试完成
84
85
        this.selectStaffInfo.staffs = []
        this.selectStaffInfo.curStaffId = ''
5760f7b9   wuxw   小区下的功能修改完成
86
87
88
      },
      async handleSwitchOrg(org) {
        try {
0fb08017   wuxw   物品放行功能测试完成
89
          const { data } = await queryStaffInfos({
5760f7b9   wuxw   小区下的功能修改完成
90
91
            page: 1,
            rows: 50,
0fb08017   wuxw   物品放行功能测试完成
92
93
94
95
96
97
            orgId: org.orgId,
            communityId: this.communityId
          })
          this.selectStaffInfo.staffs = data.staffs
          if (data.staffs.length > 0) {
            this.selectStaffInfo.curStaffId = data.staffs[0].orgId
5760f7b9   wuxw   小区下的功能修改完成
98
99
          }
        } catch (error) {
0fb08017   wuxw   物品放行功能测试完成
100
          console.error('获取员工信息失败:', error)
5760f7b9   wuxw   小区下的功能修改完成
101
102
        }
      },
0fb08017   wuxw   物品放行功能测试完成
103
104
105
106
      handleChangeStaff(item) {
        this.staff.staffId = item.userId
        this.staff.staffName = item.userName
        this.staff.staffTel = item.tel
5760f7b9   wuxw   小区下的功能修改完成
107
        this.visible = false
0fb08017   wuxw   物品放行功能测试完成
108
109
110
111
        
        if (typeof this.staff.call === 'function') {
          this.staff.call(this.staff)
        }
5760f7b9   wuxw   小区下的功能修改完成
112
      },
0fb08017   wuxw   物品放行功能测试完成
113
114
115
      handleFirstUser() {
        this.staff.staffId = '${startUserId}'
        this.staff.staffName = this.$t('selectStaff.submitter')
5760f7b9   wuxw   小区下的功能修改完成
116
        this.visible = false
0fb08017   wuxw   物品放行功能测试完成
117
118
119
120
        
        if (typeof this.staff.call === 'function') {
          this.staff.call(this.staff)
        }
5760f7b9   wuxw   小区下的功能修改完成
121
      },
0fb08017   wuxw   物品放行功能测试完成
122
123
124
      handleCustomUser() {
        this.staff.staffId = '${nextUserId}'
        this.staff.staffName = this.$t('selectStaff.dynamicAssign')
5760f7b9   wuxw   小区下的功能修改完成
125
        this.visible = false
0fb08017   wuxw   物品放行功能测试完成
126
127
128
129
        
        if (typeof this.staff.call === 'function') {
          this.staff.call(this.staff)
        }
5760f7b9   wuxw   小区下的功能修改完成
130
131
132
133
134
      }
    }
  }
  </script>
  
0fb08017   wuxw   物品放行功能测试完成
135
136
137
138
139
140
  <style lang="scss" scoped>
  .section-title {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 15px;
    text-align: center;
5760f7b9   wuxw   小区下的功能修改完成
141
  }
0fb08017   wuxw   物品放行功能测试完成
142
143
144
  
  .staff-list {
    max-height: 400px;
5760f7b9   wuxw   小区下的功能修改完成
145
    overflow-y: auto;
5760f7b9   wuxw   小区下的功能修改完成
146
  }
0fb08017   wuxw   物品放行功能测试完成
147
  
5760f7b9   wuxw   小区下的功能修改完成
148
149
150
151
152
153
  .staff-item {
    padding: 10px;
    margin-bottom: 10px;
    border: 1px solid #ebeef5;
    border-radius: 4px;
    cursor: pointer;
0fb08017   wuxw   物品放行功能测试完成
154
155
156
157
158
159
160
161
162
163
164
165
166
167
    transition: all 0.3s;
    
    &:hover {
      background-color: #f5f7fa;
    }
    
    &.selected {
      background-color: #ecf5ff;
      border-color: #d9ecff;
    }
    
    .el-icon-user {
      margin-right: 5px;
    }
5760f7b9   wuxw   小区下的功能修改完成
168
  }
0fb08017   wuxw   物品放行功能测试完成
169
170
171
  
  .dialog-footer {
    text-align: right;
5760f7b9   wuxw   小区下的功能修改完成
172
173
  }
  </style>