Checker.vue 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. <style lang='scss'>
  2. .checker{
  3. .el-dialog__footer{
  4. text-align: right;
  5. }
  6. }
  7. </style>
  8. <template>
  9. <section class="checker">
  10. <p><span>会议管理></span>核销员管理</p>
  11. <div class="content">
  12. <div class="filter">
  13. <el-form size="small" label-width="70px" :inline="true" label-position="left">
  14. <el-form-item label="">
  15. <el-select v-model="form.conference_id" clearable placeholder="请选择会议">
  16. <el-option
  17. v-for="(item, index) in conference_list"
  18. :key="index"
  19. :label="item.name"
  20. :value="item.id"
  21. ></el-option>
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="">
  25. <el-input clearable placeholder="请输入姓名" v-model="form.user_name">
  26. </el-input>
  27. </el-form-item>
  28. <el-form-item>
  29. <el-button @click="getData" type="primary">搜索</el-button>
  30. </el-form-item>
  31. <el-form-item style="float:right" >
  32. <el-button @click="dialogVisible=true" icon="el-icon-plud" type="primary">添加核销员</el-button>
  33. <el-button plain icon="el-icon-download" type="primary">导出Excel</el-button>
  34. </el-form-item>
  35. </el-form>
  36. </div>
  37. <el-table
  38. class="table"
  39. :data="list"
  40. height='59vh'
  41. border v-loading="loading"
  42. default-expand-all row-key="id"
  43. style="width: 100%">
  44. <el-table-column
  45. prop="name"
  46. label="核销员头像">
  47. <template slot-scope="scope"><img width="100" :src="scope.row.user_avatar" alt=""></template>
  48. </el-table-column>
  49. <el-table-column
  50. prop="user_name"
  51. label="核销员昵称">
  52. </el-table-column>
  53. <el-table-column
  54. prop="conference_name"
  55. label="所属会议">
  56. </el-table-column>
  57. <el-table-column
  58. prop="ctime"
  59. label="加入时间">
  60. </el-table-column>
  61. <el-table-column
  62. prop=""
  63. label="核销详细">
  64. </el-table-column>
  65. <el-table-column
  66. prop="zip" width="100" fixed="right"
  67. label="操作">
  68. <template slot-scope="scope">
  69. <el-button @click="del(scope.row.id)" class="edit" type="text" >解除核销员</el-button>
  70. </template>
  71. </el-table-column>
  72. </el-table>
  73. <Page ref="pageButton" :current='form.page' :page_size='form.page_size' :total='total' @pageChange='gopage'/>
  74. </div>
  75. <el-dialog width="70%"
  76. title="添加核销员" :close-on-click-modal='false'
  77. :visible.sync="dialogVisible">
  78. <el-table
  79. class="table"
  80. :data="conference_list"
  81. default-expand-all
  82. style="width: 100%">
  83. <el-table-column
  84. width="55">
  85. <template slot-scope="scope"><el-radio v-model="check" :label="scope.row.id">&nbsp;</el-radio></template>
  86. </el-table-column>
  87. <el-table-column
  88. prop="name"
  89. label="会议名称">
  90. </el-table-column>
  91. <el-table-column
  92. prop="name"
  93. label="会议头像">
  94. <template slot-scope="scope"><img width="100" :src="scope.row.img" alt=""></template>
  95. </el-table-column>
  96. <el-table-column
  97. prop="ctime"
  98. label="创建时间">
  99. </el-table-column>
  100. </el-table>
  101. <span slot="footer" class="dialog-footer">
  102. <el-button @click="sure" size="small" type="primary">确 定</el-button>
  103. </span>
  104. </el-dialog>
  105. <el-dialog width="70%"
  106. title="备选核销员列表" :close-on-click-modal='false'
  107. :visible.sync="dialogVisible1">
  108. <el-input @change="getUser" clearable placeholder="请输入姓名" v-model="name">
  109. <el-button @click="getUser" slot="append" icon="el-icon-search"></el-button>
  110. </el-input>
  111. <el-table
  112. class="table"
  113. :data="user_list" height="400"
  114. default-expand-all
  115. style="width: 100%;margin-top:10px;">
  116. <el-table-column
  117. width="55">
  118. <template slot-scope="scope"><el-radio v-model="check1" :label="scope.row.id">&nbsp;</el-radio></template>
  119. </el-table-column>
  120. <el-table-column
  121. prop="nickname"
  122. label="用户昵称">
  123. </el-table-column>
  124. <el-table-column
  125. prop=""
  126. label="用户头像">
  127. <template slot-scope="scope"><img width="100" :src="scope.row.avatar" alt=""></template>
  128. </el-table-column>
  129. </el-table>
  130. <span slot="footer" class="dialog-footer">
  131. <el-button @click="dialogVisible1=false" size="small">返回</el-button>
  132. <el-button @click="add" size="small" type="primary">确认选择</el-button>
  133. </span>
  134. </el-dialog>
  135. </section>
  136. </template>
  137. <script>
  138. import Page from '../../components/Page';
  139. export default {
  140. components:{
  141. Page
  142. },
  143. data(){
  144. return{
  145. form:{},
  146. list:[{}],
  147. dialogVisible:false,
  148. dialogVisible1:false,
  149. conference_list:[],
  150. user_list:[],
  151. loading:false,
  152. total:0,
  153. check:'',
  154. check1:'',
  155. name:''
  156. }
  157. },
  158. methods:{
  159. gopage(size){
  160. if(size){
  161. this.form.page_size=size
  162. }
  163. this.form.page=this.$refs.pageButton.page
  164. this.getData()
  165. },
  166. add(){
  167. this.$api.addVerifier({conference_id:this.check,user_id:this.check1}).then(res=>{
  168. if(res.data.code == 0){
  169. this.$message({
  170. message: '添加成功',
  171. type: 'success'
  172. })
  173. this.dialogVisible=false;
  174. this.dialogVisible1=false;
  175. this.getData();
  176. }else{
  177. this.$message({
  178. message: res.data.message,
  179. type: 'error'
  180. })
  181. }
  182. })
  183. },
  184. del(id){
  185. this.$confirm('确定解除', '提示', {
  186. type: 'warning'
  187. }).then(() => {
  188. this.$api.deleteVerifier({id:id}).then((res)=>{
  189. if(res.data.code==0){
  190. this.$message({
  191. message: '解除成功',
  192. type: 'success'
  193. })
  194. this.getData()
  195. }else{
  196. this.$message.error(res.data.message);
  197. }
  198. })
  199. })
  200. },
  201. getData(){
  202. var parm=this.form;
  203. this.loading=true
  204. this.$api.getVerifierList(parm).then(res=>{
  205. this.list=res.data.data.list;
  206. this.total=res.data.data.total
  207. this.loading=false
  208. })
  209. this.$api.getConferenceList().then(res=>{
  210. this.conference_list=res.data.data.list;
  211. })
  212. },
  213. getUser(){
  214. this.$api.getUserinfoList({name:this.name}).then(res=>{
  215. this.user_list=res.data.data.list;
  216. })
  217. },
  218. sure(){
  219. if(this.check){
  220. this.dialogVisible1=true
  221. }else{
  222. this.$message({
  223. message: '请选择会议',
  224. type: 'error'
  225. })
  226. }
  227. }
  228. },
  229. created(){
  230. this.getData();
  231. this.getUser();
  232. }
  233. }
  234. </script>