quanwei
18 hours ago c441dea81bd86bdfb12dff35821fed51f4cc91c2
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<template>
  <!--
          作者:luoyiming
          时间:2020-06-01
          描述:插件中心-分销-分销商用户-编辑
      -->
  <el-dialog title="新增股东" :visible.sync="dialogVisible" @close="cancelFunc" :close-on-click-modal="false" :close-on-press-escape="false" width="30%">
    <el-form ref="form" :model="formData">
      <el-form-item label="选择用户" prop="user_id" :label-width="formLabelWidth" :rules="[{required: true,message: '请选择用户'}]">
        <el-row>
          <el-button @click="selectUser" icon="el-icon-plus">选择会员</el-button>
          <div v-if="formData.user_id!=''" class="img">
            <img :src="user_info.avatarUrl" width="100" height="100" />
          </div>
        </el-row>
      </el-form-item>
      <el-form-item label="姓名" :label-width="formLabelWidth">
        <el-input type="text" v-model="formData.real_name" autocomplete="off"></el-input>
      </el-form-item>
      <el-form-item label="手机号" :label-width="formLabelWidth">
        <el-input type="text" v-model="formData.mobile" autocomplete="off"></el-input>
      </el-form-item>
      <el-form-item label="等级" prop="grade_id" :label-width="formLabelWidth" :rules="[{required: true,message: '请选择等级'}]">
        <el-select v-model="formData.grade_id" placeholder="-请选择等级-">
          <el-option v-for="(item,index) in gradeList" :key="index" :label="item.name" :value="item.grade_id"></el-option>
        </el-select>
      </el-form-item>
    </el-form>
    <div slot="footer" class="dialog-footer">
      <el-button @click="cancelFunc">取 消</el-button>
      <el-button type="primary" @click="confirmFunc">确 定</el-button>
    </div>
    <!--选择用户-->
    <GetUser :is_open="open_getuser" @close="closeGetuserFunc"></GetUser>
  </el-dialog>
</template>
 
<script>
import PlusApi from '@/api/plus/shareholder.js';
import GetUser from '@/components/user/GetUser.vue';
export default {
    components: {
    GetUser
  },
  data() {
    return {
      /*左边长度*/
      formLabelWidth: '100px',
      /*是否显示*/
      dialogVisible: false,
      /*表单数据模型*/
      formData: {
          user_id: '',
          real_name: '',
          mobile: '',
          grade_id: ''
      },
      gradeList: [],
      open_getuser: false,
    };
  },
  props: ['open_add'],
  created() {
    this.dialogVisible = this.open_add;
    this.getData();
  },
  methods: {
    getData(){
      let self = this;
      PlusApi.toShareholderUserAdd({}, true)
        .then(res => {
          self.gradeList = res.data.gradeList;
        })
        .catch(error => {});
    },
    /*新增股东*/
    confirmFunc() {
      let self = this;
      let form = self.formData;
        self.$refs.form.validate((valid) => {
          if (valid) {
            PlusApi.shareholderUserAdd(self.formData, true)
                .then(data => {
                self.$message({
                    message: '恭喜你,股东已添加成功',
                    type: 'success'
                });
                self.cancelFunc(true);
                })
                .catch(error => {});
          }
        });
    },
 
    /*打开选择会员弹出层*/
      selectUser() {
        this.open_getuser = true;
      },
 
      /*关闭获取用户弹窗*/
      closeGetuserFunc(e) {
        if (e.type != 'error') {
          this.user_info = e.params[0];
          this.formData.user_id = e.params[0].user_id;
          this.formData.real_name = e.params[0].real_name;
          this.formData.mobile = e.params[0].mobile;
        }
        this.open_getuser = false;
      },
 
    /*关闭弹窗*/
    cancelFunc(e) {
      let type='cancel';
      if(e){
        type='success';
      }
      this.$emit('close', {
        type:type
      });
    }
  }
};
</script>
 
<style lang="scss" scoped>
  .img {
    margin-top: 10px;
  }
</style>