releaseMessage.vue 4.22 KB
Newer Older
xulili's avatar
xulili committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14
<template>
    <div class="release-message-container">
        <van-nav-bar left-text="取消" right-text="发布"
                     @click-left="onClickLeft"
                     @click-right="onClickRight"
        />
        <div class="radio-group">
            <van-radio-group v-model="radio" direction="horizontal" @change="handleChangeRadio">
                <van-radio name="1">全员发送</van-radio>
                <van-radio name="2">部分可见</van-radio>
            </van-radio-group>
        </div>
        <div class="userlist">
            <van-checkbox-group v-model="checkIds">
xulili's avatar
xulili committed
15 16 17
                <van-checkbox :name="item.id" shape="square" v-for="(item,index) in userList" :key="index">
                    {{item.userName}}
                </van-checkbox>
xulili's avatar
xulili committed
18 19 20 21 22 23
            </van-checkbox-group>
        </div>
    </div>
</template>

<script>
xulili's avatar
xulili committed
24
  import {getClerkInfoBySupervisorUserId, newTask} from '@/utils/utils.Request.aApi'
xulili's avatar
xulili committed
25

xulili's avatar
xulili committed
26 27 28 29 30
  export default {
    name: 'releaseMessage',
    data() {
      return {
        radio: '1',
xulili's avatar
xulili committed
31 32 33
        checkIds: [],
        supervisorId: '',
        userList: []
xulili's avatar
xulili committed
34 35
      }
    },
xulili's avatar
xulili committed
36
    mounted() {
xulili's avatar
xulili committed
37
      this.supervisorUserId = sessionStorage.getItem('userId')
xulili's avatar
xulili committed
38
      this.getClerkInfoBySupervisorId()
xulili's avatar
xulili committed
39 40 41
    },
    methods: {
      // 根据主管id获取所属部门全部员工信息
xulili's avatar
xulili committed
42
      getClerkInfoBySupervisorId() {
xulili's avatar
xulili committed
43
        let _this = this
xulili's avatar
xulili committed
44
        getClerkInfoBySupervisorUserId({supervisorUserId: _this.supervisorUserId})
xulili's avatar
xulili committed
45 46 47
          .then(res => {
            if (res.result == 'success') {
              _this.userList = res.data
xulili's avatar
xulili committed
48 49
              _this.checkIds = res.data.map(v => {
                return v.id
xulili's avatar
xulili committed
50 51 52 53 54 55 56 57 58 59 60
              })
            } else {
              _this.userList = []
              _this.$toast(res.errorMsg);
            }
          })
          .catch(err => {

          })
      },
      onClickLeft() {
xulili's avatar
xulili committed
61
        this.$router.push('/addMessage')
xulili's avatar
xulili committed
62 63 64
      },
      onClickRight() {
        //发布  全员发送 获取全部id  部分可见 获取check 的id
xulili's avatar
xulili committed
65 66
        let title = this.$store.state.message.title
        let content = this.$store.state.message.content
xulili's avatar
xulili committed
67 68 69 70 71
        let supervisorUserId = this.supervisorUserId
        if(this.checkIds.length==0){
          _this.$toast("请选择转发人");
          return false
        }
xulili's avatar
xulili committed
72
        let clerkIds = this.checkIds + ""
xulili's avatar
xulili committed
73
        let requestParam = {
xulili's avatar
xulili committed
74 75
          title: title,
          content: content,
xulili's avatar
xulili committed
76
          supervisorUserId: supervisorUserId,
xulili's avatar
xulili committed
77
          clerkIds: clerkIds
xulili's avatar
xulili committed
78 79
        }
        let _this = this
xulili's avatar
xulili committed
80 81 82 83 84 85 86 87 88 89 90 91 92
        newTask(requestParam)
          .then(res => {
            if (res.result == 'success') {
              _this.$toast('发布成功');
              //清空store 值
              _this.$store.commit('message/title', "")
              _this.$store.commit('message/content', "")
              _this.$router.push('/message')
            } else {
              _this.$toast(res.errorMsg);
            }
          })
          .catch(err => {
xulili's avatar
xulili committed
93

xulili's avatar
xulili committed
94
          })
xulili's avatar
xulili committed
95 96

      },
xulili's avatar
xulili committed
97 98 99 100
      handleChangeRadio(val) {
        if (val == '1') {
          this.checkIds = this.userList.map(v => {
            return v.id
xulili's avatar
xulili committed
101 102 103 104 105 106 107
          })
        }
      },
    }
  }
</script>

xulili's avatar
xulili committed
108
<style lang="scss">
xulili's avatar
xulili committed
109 110 111 112 113 114
    .release-message-container {
        height: 100%;
        overflow: hidden;
        .van-nav-bar {
            padding: 0 20px;
            /*&:after{*/
xulili's avatar
xulili committed
115
            /*border: none;*/
xulili's avatar
xulili committed
116 117 118 119
            /*}*/
        }
        .radio-group {
            margin: 10px 0 20px 0;
xulili's avatar
xulili committed
120
            .van-radio-group--horizontal {
xulili's avatar
xulili committed
121 122 123
                padding: 0 20px;
                justify-content: space-around;
            }
xulili's avatar
xulili committed
124
            .van-radio__icon {
xulili's avatar
xulili committed
125 126 127 128 129 130 131
                font-size: 18px;
            }
            .van-radio__label {
                font-size: 14px;
            }

        }
xulili's avatar
xulili committed
132
        .userlist {
xulili's avatar
xulili committed
133 134 135
            height: calc(100% - 66px);
            overflow-x: hidden;
            overflow-y: scroll;
xulili's avatar
xulili committed
136
            .van-checkbox-group {
xulili's avatar
xulili committed
137
                padding: 0 30px;
xulili's avatar
xulili committed
138
                .van-checkbox {
xulili's avatar
xulili committed
139
                    margin-bottom: 10px;
xulili's avatar
xulili committed
140
                    .van-checkbox__icon {
xulili's avatar
xulili committed
141 142
                        font-size: 18px;
                    }
xulili's avatar
xulili committed
143
                    .van-checkbox__label {
xulili's avatar
xulili committed
144 145 146 147 148 149 150 151
                        font-size: 14px;
                    }
                }

            }
        }
    }
</style>