Manage.vue 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. <style lang="scss">
  2. .preview{
  3. .el-form-item{
  4. margin-bottom:15px;
  5. }
  6. label,p{
  7. line-height: 25px !important;
  8. }
  9. }
  10. .hotel{
  11. .el-dialog{
  12. margin-top: 30px !important;
  13. }
  14. }
  15. .desc{
  16. overflow: hidden;
  17. text-overflow: ellipsis;
  18. display: -webkit-box;
  19. -webkit-line-clamp: 3;
  20. -webkit-box-orient: vertical;
  21. white-space: normal;
  22. }
  23. </style>
  24. <template>
  25. <section>
  26. <p><span>会议系统></span>会议管理</p>
  27. <div class="content">
  28. <div class="filter">
  29. <el-form size="small" label-width="70px" :inline="true" label-position="left">
  30. <el-form-item label="">
  31. <el-input clearable placeholder="请输入标题" v-model="form.name"></el-input>
  32. </el-form-item>
  33. <el-form-item>
  34. <el-button @click="getData" type="primary">搜索</el-button>
  35. </el-form-item>
  36. <el-form-item style="float:right" >
  37. <el-button @click="addConference" type="primary">新增会议</el-button>
  38. </el-form-item>
  39. </el-form>
  40. </div>
  41. <el-table
  42. class="table"
  43. :data="list"
  44. height='59vh'
  45. border v-loading="loading"
  46. default-expand-all row-key="id"
  47. style="width: 100%">
  48. <el-table-column
  49. prop="name" width="200"
  50. label="会议名称">
  51. </el-table-column>
  52. <el-table-column
  53. prop="username"
  54. label="会议海报">
  55. <template slot-scope="scope"><img width="100" :src="scope.row.img" alt=""></template>
  56. </el-table-column>
  57. <el-table-column
  58. prop="username"
  59. label="主办方">
  60. </el-table-column>
  61. <el-table-column
  62. prop=""
  63. label="主讲人">
  64. </el-table-column>
  65. <el-table-column
  66. prop="" width="120"
  67. label="状态">
  68. <template slot-scope="scope">
  69. <el-tag v-if='scope.row.is_signup'>可报名</el-tag>
  70. <el-tag v-else type="info">不可报名</el-tag>
  71. </template>
  72. </el-table-column>
  73. <el-table-column
  74. width="220"
  75. label="会议时间">
  76. <template slot-scope="scope">
  77. 开始:{{scope.row.begin_time}} <br>
  78. 结束:{{scope.row.end_time}}
  79. </template>
  80. </el-table-column>
  81. <el-table-column
  82. prop="desc" width="300"
  83. label="会议简介">
  84. <template slot-scope="scope">
  85. <div class="desc">{{scope.row.desc}}</div>
  86. </template>
  87. </el-table-column>
  88. <el-table-column
  89. prop=""
  90. label="酒店信息">
  91. </el-table-column>
  92. <el-table-column
  93. prop="zip" width="220" fixed="right"
  94. label="操作">
  95. <template slot-scope="scope">
  96. <el-button @click="dialogVisible1=true,cur_id=scope.row.id,name=scope.row.name,getHotel(scope.row.id)" type="text" >管理酒店</el-button>
  97. <!-- <el-button @click="dialogVisible=true,status='bind',cur_id=scope.row.id,name=scope.row.name" type="text" >添加酒店</el-button> -->
  98. <el-button @click="$router.push({path:'/conference/conference/add',query:{id:scope.row.id}})" class="edit" type="text">编辑会议</el-button>
  99. <el-button @click="del(scope.row.id)" type="text" class="del">删除会议</el-button>
  100. </template>
  101. </el-table-column>
  102. </el-table>
  103. <Page ref="pageButton" :current='form.page' :page_size='form.page_size' :total='total' @pageChange='gopage'/>
  104. </div>
  105. <el-dialog width="80%" class="hotel"
  106. title="酒店列表" :close-on-click-modal='false'
  107. :visible.sync="dialogVisible1">
  108. 会议名称:{{name}}
  109. <el-button size="small" @click="dialogVisible=true,status='bind'" type="primary">添加酒店</el-button>
  110. <el-table
  111. class="table"
  112. :data="hotel_list" height="400"
  113. default-expand-all
  114. style="width: 100%;margin-top:10px;">
  115. <el-table-column prop="name" label="酒店名称">
  116. </el-table-column>
  117. <el-table-column prop="telephone" label="电话">
  118. </el-table-column>
  119. <el-table-column prop="address" label="地址">
  120. </el-table-column>
  121. <el-table-column prop="ctime" label="创建时间">
  122. </el-table-column>
  123. <el-table-column
  124. prop="zip" width="220"
  125. label="操作">
  126. <template slot-scope="scope">
  127. <el-button @click="dialogVisible=true,dialogTitle='编辑酒店',status='edit',h_id=scope.row.id" type="text">编辑</el-button>
  128. <el-button @click="delHotel(scope.row.id)" type="text" class="del">删除</el-button>
  129. <el-button @click="updown(scope.row.id,'up')" type="text" class="edit">上移</el-button>
  130. <el-button @click="updown(scope.row.id,'down')" type="text" class="edit">下移</el-button>
  131. </template>
  132. </el-table-column>
  133. </el-table>
  134. </el-dialog>
  135. <el-dialog width="80%" class="hotel"
  136. :title="dialogTitle" :close-on-click-modal='false'
  137. :visible.sync="dialogVisible">
  138. <Hotel :status='status' :huiyi_name='name' :huiyi_id='cur_id' :cur_id='h_id' @addSuccess='add'/>
  139. </el-dialog>
  140. </section>
  141. </template>
  142. <script>
  143. import Page from '../../components/Page';
  144. import Hotel from '../../components/hotel';
  145. export default {
  146. components:{
  147. Page,Hotel
  148. },
  149. data(){
  150. return{
  151. edit:0,
  152. cur_id:'',
  153. h_id:'',
  154. name:'',
  155. status:'',
  156. form:{name:'',page:1,page_size:20},
  157. form1:{},
  158. total:1,
  159. list:[{name:'2333'}],
  160. loading:false,
  161. input:'',
  162. dialogVisible:false,
  163. dialogVisible1:false,
  164. dialogTitle:"添加酒店",
  165. defaultProps:{},
  166. data: [],
  167. hotel_list:[]
  168. }
  169. },
  170. methods:{
  171. addConference(){
  172. this.$router.push({path:'/conference/conference/add'})
  173. },
  174. //添加酒店
  175. add(){
  176. this.dialogVisible=false;
  177. this.getHotel(this.cur_id)
  178. },
  179. gopage(size){
  180. if(size){
  181. this.form.page_size=size
  182. }
  183. this.form.page=this.$refs.pageButton.page
  184. this.getData()
  185. },
  186. getPermissions(){
  187. this.$api.getUserPermissions().then(res=>{
  188. this.data = res.data.data
  189. })
  190. },
  191. getHotel(id){
  192. this.$api.getConferenceHotel({conference_id:id}).then(res=>{
  193. this.hotel_list=res.data.data;
  194. })
  195. },
  196. updown(id,type){
  197. this.$api.updown({rank:type,hotel_id:id,conference_id:this.cur_id}).then(res=>{
  198. if(res.data.code==0){
  199. this.getHotel(this.cur_id)
  200. }else{
  201. this.$message({
  202. message: res.data.message,
  203. type: 'error'
  204. })
  205. }
  206. })
  207. },
  208. getData(){
  209. var parm=this.form;
  210. this.loading=true
  211. this.$api.getConferenceList(parm).then(res=>{
  212. this.list=res.data.data.list;
  213. this.total=res.data.data.total
  214. this.loading=false
  215. })
  216. },
  217. del(id){
  218. this.$confirm('确定删除吗', '提示', {
  219. type: 'warning'
  220. }).then(() => {
  221. this.$api.deleteConference({id:id}).then((res)=>{
  222. this.$message({
  223. message: '删除成功',
  224. type: 'success'
  225. })
  226. this.getData()
  227. })
  228. })
  229. },
  230. delHotel(id){
  231. this.$confirm('确定删除吗', '提示', {
  232. type: 'warning'
  233. }).then(() => {
  234. this.$api.deleteConferenceHotel({hotel_id:id,conference_id:this.cur_id}).then((res)=>{
  235. this.$message({
  236. message: '删除成功',
  237. type: 'success'
  238. })
  239. this.getHotel(this.cur_id)
  240. })
  241. })
  242. },
  243. },
  244. created(){
  245. // this.getPermissions()
  246. this.getData()
  247. }
  248. }
  249. </script>