list.blade.php 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. @extends('layouts.base')
  2. @section('title', "题目设置")
  3. @section('content')
  4. <link rel="stylesheet" href="{{resource_get('plugins/answer-reward/views/admin/index.css')}}">
  5. <div class="all">
  6. <div id="app" v-cloak>
  7. <div class="vue-crumbs">
  8. 短视频积分 > 题目设置
  9. </div>
  10. <div class="vue-head">
  11. <div class="vue-main-title" style="margin-bottom:20px">
  12. <div class="vue-main-title-left"></div>
  13. <div class="vue-main-title-content">题目设置</div>
  14. <div class="vue-main-title-button">
  15. </div>
  16. </div>
  17. <div class="vue-search">
  18. <el-form :inline="true" :model="search_form" class="demo-form-inline">
  19. <el-form-item label="">
  20. <el-input v-model="search_form.title" placeholder="题目名称"></el-input>
  21. </el-form-item>
  22. <el-form-item label="">
  23. <el-select v-model="search_form.time" clearable placeholder="是否搜索时间" style="width:150px">
  24. <el-option label="搜索时间" value="1"></el-option>
  25. <el-option label="时间不限" value="0"></el-option>
  26. </el-select>
  27. </el-form-item>
  28. <el-form-item label="">
  29. <el-date-picker
  30. v-model="times"
  31. type="datetimerange"
  32. value-format="timestamp"
  33. range-separator="至"
  34. start-placeholder="开始日期"
  35. end-placeholder="结束日期"
  36. style="margin-left:5px;"
  37. align="right">
  38. </el-date-picker>
  39. </el-form-item>
  40. <el-form-item label="">
  41. <el-button type="primary" @click="search(1)">搜索</el-button>
  42. <el-upload class="el-button el-button-primary" action="{{ yzWebFullUrl('plugin.answer-reward.admin.excel.index') }}" accept=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" :show-file-list="false" :on-success="uploadSuccess" :before-upload="beforeUpload">
  43. 上传
  44. </el-upload>
  45. <el-button @click="down1()">下载模板</el-button>
  46. </el-form-item>
  47. </el-form>
  48. </div>
  49. </div>
  50. <div class="vue-main">
  51. <div>
  52. <div class="vue-main-title" style="margin-bottom:20px">
  53. <div class="vue-main-title-left"></div>
  54. <div class="vue-main-title-content" style="flex:0 0 120px">题目设置</div>
  55. <div class="vue-main-title-button">
  56. <el-button type="primary" plain icon="el-icon-plus" size="small" @click="addModal">添加题目</el-button>
  57. </div>
  58. </div>
  59. <el-table :data="list" style="width: 100%">
  60. <el-table-column label="ID" align="center" prop="id" width="100"></el-table-column>
  61. <el-table-column label="创建时间" align="center" prop="created_at"></el-table-column>
  62. <el-table-column label="题目" align="center" prop="title"></el-table-column>
  63. <el-table-column prop="refund_time" label="操作" align="center" width="320">
  64. <template slot-scope="scope">
  65. <el-link title="编辑题目" :underline="false" @click="gotoDetail(scope.row)" style="width:50px;">
  66. <i class="iconfont icon-ht_operation_edit"></i>
  67. </el-link>
  68. <el-link title="删除题目" :underline="false" @click="del(scope.row.id,scope.$index)" style="width:50px;">
  69. <i class="iconfont icon-ht_operation_delete"></i>
  70. </el-link>
  71. </template>
  72. </el-table-column>
  73. </el-table>
  74. </div>
  75. </div>
  76. <!-- 分页 -->
  77. <div class="vue-page" v-if="total>0">
  78. <el-row>
  79. <el-col align="right">
  80. <el-pagination layout="prev, pager, next,jumper" @current-change="search" :total="total"
  81. :page-size="per_page" :current-page="current_page" background
  82. ></el-pagination>
  83. </el-col>
  84. </el-row>
  85. </div>
  86. </div>
  87. </div>
  88. <script>
  89. var app = new Vue({
  90. el: "#app",
  91. delimiters: ['[[', ']]'],
  92. name: 'test',
  93. data() {
  94. return {
  95. search_form:{},
  96. times:[],
  97. list:[],
  98. rules: {},
  99. current_page:1,
  100. total:1,
  101. per_page:1,
  102. }
  103. },
  104. created() {
  105. },
  106. mounted() {
  107. this.getData(1);
  108. },
  109. methods: {
  110. getData(page) {
  111. let json = {
  112. page:page,
  113. search:{
  114. title:this.search_form.title,
  115. time:this.search_form.time,
  116. }
  117. }
  118. if(this.times.length>0) {
  119. json.search.start_time = this.times[0]/1000;
  120. json.search.end_time = this.times[1]/1000;
  121. }
  122. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  123. this.$http.post('{!! yzWebFullUrl('plugin.answer-reward.admin.subject.get-list') !!}',json).then(function(response) {
  124. if (response.data.result) {
  125. this.list = response.data.data.list.data;
  126. this.current_page=response.data.data.list.current_page;
  127. this.total=response.data.data.list.total;
  128. this.per_page=response.data.data.list.per_page;
  129. loading.close();
  130. } else {
  131. this.$message({
  132. message: response.data.msg,
  133. type: 'error'
  134. });
  135. }
  136. loading.close();
  137. }, function(response) {
  138. this.$message({
  139. message: response.data.msg,
  140. type: 'error'
  141. });
  142. loading.close();
  143. });
  144. },
  145. gotoDetail(item) {
  146. let link = `{!! yzWebFullUrl('plugin.answer-reward.admin.subject.get-view') !!}`+`&id=`+item.id;
  147. window.location.href = link;
  148. },
  149. search(val) {
  150. this.getData(val);
  151. },
  152. addModal() {
  153. let link = `{!! yzWebFullUrl('plugin.answer-reward.admin.subject.get-view') !!}`;
  154. console.log(link);
  155. window.location.href = link;
  156. },
  157. del(id,index) {
  158. console.log(id,index)
  159. this.$confirm('确定删除吗', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {
  160. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  161. this.$http.post('{!! yzWebFullUrl('plugin.answer-reward.admin.subject.delete-subject') !!}',{id:id}).then(function (response) {
  162. if (response.data.result) {
  163. this.list.splice(index,1);
  164. this.$message({type: 'success',message: '删除成功!'});
  165. }
  166. else{
  167. this.$message({type: 'error',message: response.data.msg});
  168. }
  169. loading.close();
  170. this.search(this.current_page)
  171. },function (response) {
  172. this.$message({type: 'error',message: response.data.msg});
  173. loading.close();
  174. }
  175. );
  176. }).catch(() => {
  177. this.$message({type: 'info',message: '已取消删除'});
  178. });
  179. },
  180. uploadSuccess(res, file) {
  181. if (res.result == 1) {
  182. // this.form.file = res.data.thumb;
  183. this.$message.success(res.msg);
  184. } else {
  185. this.$message.error(res.msg);
  186. }
  187. window.location.reload();
  188. // this.submit_loading = false;
  189. },
  190. beforeUpload(file) {
  191. // this.submit_loading = true;
  192. },
  193. down1() {
  194. var url = "{!! yzWebFullUrl('plugin.answer-reward.admin.excel.export-template') !!}";
  195. window.location.href = url;
  196. },
  197. },
  198. })
  199. </script>
  200. @endsection