user-edit.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <template id="user-edit">
  2. <el-dialog :visible.sync="edit.visible" width="30%" title="添加用户" center>
  3. <el-form @submit.native.prevent size="small" label-width="80px">
  4. <el-form-item label="用户昵称" required>
  5. <el-autocomplete size="small" v-model="edit.nickname" value-key="nickname" @keyup.enter.native="keyUp"
  6. :fetch-suggestions="querySearchAsync" placeholder="请输入用户昵称/id/手机号"
  7. @select="shareClick"></el-autocomplete>
  8. </el-form-item>
  9. <el-form-item prop="name" label="公司名称">
  10. <el-input type="text" v-model="edit.name" class="member-money" placeholder="请输入公司名称" style="width: 200px;margin-right: 20px;"></el-input>
  11. </el-form-item>
  12. </el-form>
  13. <span slot="footer" class="dialog-footer">
  14. <el-button @click="editCancel" type="default" size="small">取消</el-button>
  15. <el-button type="primary" :loading="edit.btnLoading" style="margin-bottom: 10px;" size="small"
  16. @click="editSave">保存</el-button>
  17. </span>
  18. </el-dialog>
  19. </template>
  20. <script>
  21. Vue.component('user-edit', {
  22. template: '#user-edit',
  23. props: {
  24. value: {
  25. type: Boolean,
  26. default: false
  27. }
  28. },
  29. data() {
  30. return {
  31. edit: {
  32. visible: false,
  33. keyword: '',
  34. nickname: '',
  35. id: '',
  36. user_id:"",
  37. btnLoading: false,
  38. name:'',
  39. },
  40. listLoading:false,
  41. list:[],
  42. page:1,
  43. pageCount:0,
  44. radioSelection:0,
  45. keyword:'',
  46. selectUser:null,
  47. default_level:null,
  48. }
  49. },
  50. watch: {
  51. value() {
  52. this.radioSelection=0;
  53. this.keyword='';
  54. this.selectUser=null;
  55. if (this.value) {
  56. this.edit.visible = true;
  57. this.getUser();
  58. } else {
  59. this.edit.id = '';
  60. this.edit.nickname = '';
  61. this.edit.keyword = '';
  62. this.edit.visible = false;
  63. }
  64. }
  65. ,
  66. 'edit.visible'() {
  67. if (!this.edit.visible) {
  68. this.editCancel();
  69. }
  70. },
  71. keyword(val){//监听用户昵称的输入框 如果为空(选择后删除了用户)则重新请求用户的数据 改为实时请求
  72. this.page = 1;
  73. this.pageCount = 0;
  74. this.getUser();
  75. }
  76. },
  77. created() {
  78. },
  79. methods: {
  80. getUser(){//请求用户的列表
  81. this.listLoading = true;
  82. request({
  83. params: {
  84. r: 'sales-company/default/search-user',
  85. page:this.page,
  86. limit:20,
  87. keyword:this.keyword
  88. },
  89. method: 'get',
  90. }).then(response => {
  91. this.listLoading = false;
  92. if (response.data.code == 0) {
  93. this.list = response.data.data.list;
  94. this.pageCount = response.data.data.page_count;
  95. } else {
  96. this.$message.error(response.data.msg);
  97. }
  98. }).catch(response => {
  99. this.listLoading = false;
  100. });
  101. },
  102. pagination(currentPage) {
  103. this.page = currentPage;
  104. this.getUser();
  105. },
  106. selectionChange(e){
  107. this.selectUser = e;
  108. this.keyword = this.selectUser.id;
  109. },
  110. querySearchAsync(queryString, cb) {
  111. this.edit.keyword = queryString;
  112. this.get_user(cb);
  113. },
  114. get_user(cb) {
  115. request({
  116. params: {
  117. r: 'sales-company/default/search-user',
  118. keyword: this.edit.keyword
  119. }
  120. }).then(res => {
  121. if (res.data.code == 0) {
  122. cb(res.data.data.list)
  123. } else {
  124. this.$message.error(res.data.msg);
  125. }
  126. });
  127. },
  128. shareClick(row) {
  129. this.edit.user_id = row.id
  130. },
  131. editCancel() {
  132. /* 重置表单中原来填入的数据 */
  133. this.level = '';
  134. this.selectUser = null;
  135. this.keyword = '';
  136. this.edit.user_id = '';
  137. this.$emit('input', false);
  138. },
  139. editSave() {
  140. if(!this.edit.user_id){
  141. return this.$message.error('请选择下拉列表里的会员!');
  142. }
  143. this.edit.btnLoading = true;
  144. request({
  145. params: {
  146. r: 'sales-company/default/edit'
  147. },
  148. method: 'post',
  149. data: {
  150. user_id:this.edit.user_id,
  151. name:this.edit.name,
  152. }
  153. }).then(response => {
  154. this.edit.btnLoading = false;
  155. if (response.data.code == 0) {
  156. this.$message.success('添加成功');
  157. this.$emit('savesuccess')
  158. this.editCancel();
  159. } else {
  160. this.$message.error(response.data.msg);
  161. }
  162. }).catch(response => {
  163. this.edit.btnLoading = false;
  164. });
  165. },
  166. keyUp() {
  167. console.log('key up')
  168. },
  169. }
  170. });
  171. </script>