achievement-edit.php 5.2 KB

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