apply.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <template>
  2. <section>
  3. <p><span>活动预告></span>报名详情</p>
  4. <div class="content">
  5. <div style="line-height:35px;color:#666;margin-bottom:20px;">
  6. <div style="float:right;padding-right:30%;">
  7. <img width="150" :src="info.img" alt=""><br>
  8. </div>
  9. <p>活动名称:{{info.name}}</p>
  10. <p>活动地址:{{info.address}}</p>
  11. <p>活动时间:{{info.begin_time}}--{{info.end_time}}</p>
  12. <p>活动简介:{{info.desc}}</p>
  13. <el-button @click="sendmsg" size='small' type="primary">发送短信</el-button>
  14. </div>
  15. <el-table
  16. class="table"
  17. :data="list"
  18. height='38vh'
  19. @selection-change="handleSelectionChange"
  20. border v-loading="loading"
  21. default-expand-all row-key="id"
  22. style="width: 100%">
  23. <el-table-column
  24. type="selection"
  25. width="55">
  26. </el-table-column>
  27. <el-table-column
  28. prop="name"
  29. label="姓名">
  30. </el-table-column>
  31. <el-table-column
  32. prop="phone" width="120"
  33. label="手机号">
  34. </el-table-column>
  35. <el-table-column
  36. prop="phone"
  37. label="单位">
  38. </el-table-column>
  39. <el-table-column
  40. prop="age"
  41. label="年龄">
  42. </el-table-column>
  43. <el-table-column
  44. prop="idcard"
  45. label="身份证号">
  46. </el-table-column>
  47. <el-table-column
  48. prop=""
  49. label="性别">
  50. <template slot-scope="scope">
  51. {{scope.row.sex==0?'男':'女'}}
  52. </template>
  53. </el-table-column>
  54. <el-table-column width="250"
  55. prop="tax_company"
  56. label="发票单位">
  57. </el-table-column>
  58. <el-table-column
  59. prop="user_nickname"
  60. label="昵称">
  61. </el-table-column>
  62. <el-table-column
  63. prop="email"
  64. label="邮箱">
  65. </el-table-column>
  66. <el-table-column
  67. prop="title"
  68. label="职称">
  69. </el-table-column>
  70. </el-table>
  71. <Page
  72. ref="pageButton"
  73. :current="form.page"
  74. :page_size="form.page_size"
  75. :total="total"
  76. @pageChange="gopage"
  77. />
  78. </div>
  79. </section>
  80. </template>
  81. <script>
  82. import Page from '../../components/Page';
  83. export default {
  84. components:{
  85. Page
  86. },
  87. data(){
  88. return{
  89. form:{order_status:'-2',type:'activity'},
  90. conferenceList:[],
  91. hotelList:[],
  92. list:[{}],
  93. reason:{},
  94. invoice:{},
  95. total:0,
  96. loading:false,
  97. dialogVisible:false,
  98. dialogVisible1:false,
  99. dialogVisible2:false,
  100. dialogVisible3:false,
  101. proof_img:'',
  102. info:{},
  103. signup_ids:[]
  104. }
  105. },
  106. methods:{
  107. sendmsg(){
  108. if(this.signup_ids.length<=0){
  109. this.$message({
  110. message: "请选择需要发送短信的用户",
  111. type: "error",
  112. });
  113. return
  114. }
  115. this.$confirm("确定发送短信吗", "提示", {
  116. type: "warning",
  117. }).then(() => {
  118. this.$api.sendMsg({ signup_ids: this.signup_ids.join(',') }).then((res) => {
  119. if(res.data.code == 0){
  120. this.$message({
  121. message: "发送成功",
  122. type: "success",
  123. });
  124. }
  125. });
  126. });
  127. },
  128. handleSelectionChange(val) {
  129. console.log(val)
  130. var ids=[]
  131. val.forEach(item => {
  132. ids.push(item.id)
  133. });
  134. this.signup_ids=ids;
  135. },
  136. download(){
  137. this.$api.getSignupData().then(res=>{
  138. var elink = document.createElement("a");
  139. let blob = new Blob([res.data], {
  140. type: "application/vnd.ms-excel,charset=UTF-8",
  141. });
  142. let objUrl = URL.createObjectURL(blob);
  143. let file_name = decodeURIComponent(
  144. res.headers["content-disposition"].split("=")[1]
  145. );
  146. console.log(file_name);
  147. elink.download = file_name;
  148. elink.style.display = "none";
  149. elink.href = objUrl;
  150. document.body.appendChild(elink);
  151. elink.click();
  152. document.body.removeChild(elink);
  153. })
  154. },
  155. gopage(size){
  156. if(size){
  157. this.form.page_size=size
  158. }
  159. this.form.page=this.$refs.pageButton.page
  160. this.getData()
  161. },
  162. tabClick(){
  163. this.getData()
  164. },
  165. getReason(data){
  166. if(data.reject_reason){
  167. data.reject_reason=JSON.parse(data.reject_reason);
  168. }else{
  169. data.reject_reason=[]
  170. }
  171. this.reason=data
  172. },
  173. getData(){
  174. var parm={...this.form};
  175. if(parm.order_status==-2){parm.order_status=''}
  176. this.loading=true
  177. this.$api.getSignupList(parm).then(res=>{
  178. this.list=res.data.data.list;
  179. this.total=res.data.data.total
  180. this.loading=false;
  181. })
  182. this.$api.getConferenceList().then(res=>{
  183. this.conferenceList=res.data.data.list;
  184. })
  185. this.$api.getHotelList().then(res=>{
  186. this.hotelList=res.data.data.list;
  187. })
  188. },
  189. check(status){
  190. this.$api.putSignup({signup_status:status,reject_reason:this.invoice.reject_reason,id:this.invoice.id}).then(res=>{
  191. this.$message({
  192. message: '操作成功',
  193. type: 'success'
  194. })
  195. this.dialogVisible2=false
  196. this.getData()
  197. })
  198. }
  199. },
  200. created(){
  201. this.form.conference_id=this.$route.query.id
  202. this.getData();
  203. this.$api.getActivity({id:this.$route.query.id}).then(res=>{
  204. if(res.data.code != 0){
  205. this.$message({
  206. message: res.data.message,
  207. type: 'error'
  208. })
  209. return
  210. }
  211. this.info=res.data.data
  212. })
  213. }
  214. }
  215. </script>