index.vue 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px">
  4. <el-form-item label="文件id:" prop="asyncTaskId">
  5. <el-input
  6. v-model.trim="queryParams.asyncTaskId"
  7. placeholder="请输入文件id"
  8. clearable
  9. size="small"
  10. style="width: 180px"
  11. @keyup.enter.native="handleQuery"
  12. />
  13. </el-form-item>
  14. <el-form-item label="文件名称:" prop="userName">
  15. <el-input
  16. v-model.trim="queryParams.userName"
  17. placeholder="请输入文件名称"
  18. clearable
  19. size="small"
  20. style="width: 180px"
  21. @keyup.enter.native="handleQuery"
  22. />
  23. </el-form-item>
  24. <!-- <el-form-item label="时间:">
  25. <el-date-picker
  26. v-model="dateRange"
  27. size="small"
  28. value-format="yyyy-MM-dd HH:mm:ss"
  29. type="datetimerange"
  30. range-separator="-"
  31. start-placeholder="开始日期"
  32. end-placeholder="结束日期"
  33. ></el-date-picker>
  34. </el-form-item> -->
  35. <!-- <el-form-item label="文件类型" prop="type">
  36. <el-select v-model="queryParams.type" placeholder="文件类型" size="small">
  37. <el-option label="文件" :value="file"/>
  38. </el-select>
  39. </el-form-item> -->
  40. <el-form-item style="margin-left:100px">
  41. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  42. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  43. <!-- <el-button
  44. type="warning"
  45. plain
  46. icon="el-icon-download"
  47. size="mini"
  48. :loading="exportLoading"
  49. @click="handleExport"
  50. v-hasPermi="['system:admin:export']"
  51. >导出</el-button> -->
  52. </el-form-item>
  53. </el-form>
  54. <el-table v-loading="loading" :data="adminList">
  55. <el-table-column label="id" align="center" prop="id" />
  56. <el-table-column label="类别" align="center" prop="resultType" />
  57. <el-table-column label="文件名称" align="center" prop="funcType" />
  58. <el-table-column label="开始时间" align="center" prop="startTime" />
  59. <el-table-column label="结束时间" align="center" prop="endTime" />
  60. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  61. <template slot-scope="scope">
  62. <el-button v-if ="scope.row.isSuccess == true"
  63. size="mini"
  64. type="text"
  65. icon="el-icon-bottom"
  66. @click="handleExport(scope.row)"
  67. >下载</el-button>
  68. <span v-if="scope.row.isSuccess == false">
  69. <span v-if="scope.row.result == '' || scope.row.result == null">文件整理中...请稍后查看</span>
  70. <span else>{{scope.row.result}}</span>
  71. </span>
  72. </template>
  73. </el-table-column>
  74. </el-table>
  75. <pagination
  76. v-show="total>0"
  77. :total="total"
  78. :page.sync="queryParams.current"
  79. :limit.sync="queryParams.size"
  80. @pagination="getList"
  81. />
  82. </div>
  83. </template>
  84. <script>
  85. import { filelist } from "@/api/recharge/fileExport";
  86. import { getFile } from "@/api/system/product";
  87. export default {
  88. name: "admin",
  89. data() {
  90. return {
  91. // 导出遮罩层
  92. exportLoading: false,
  93. // 显示搜索条件
  94. showSearch: true,
  95. // 总条数
  96. total: 0,
  97. // 参数表格数据
  98. adminList: [],
  99. // 日期范围
  100. dateRange: [],
  101. // 查询参数
  102. queryParams: {
  103. current: 1,
  104. size: 10,
  105. type: 1,
  106. asyncTaskId:undefined,
  107. // asyncTaskId:'1451438997761200140',
  108. userName: undefined,
  109. fileType: "File"
  110. },
  111. // 表单参数
  112. form: {},
  113. };
  114. },
  115. created() {
  116. if(localStorage.getItem("fileExportId")){
  117. this.loading = false
  118. let asyncTaskId = localStorage.getItem("fileExportId")
  119. this.queryParams.asyncTaskId = asyncTaskId
  120. this.getList();
  121. localStorage.removeItem('fileExportId')
  122. }else{
  123. this.loading = false
  124. this.getList();
  125. // this.$message.error('请从人员信息充值入口进入该页面')
  126. // setTimeout(() =>{
  127. // this.$router.push({path:'personnel'})
  128. // },1500)
  129. }
  130. },
  131. methods: {
  132. /** 查询参数列表 */
  133. getList() {
  134. this.loading = true;
  135. filelist(this.addDateRange(this.queryParams,this.dateRange,'section')).then(response => {
  136. if(response.data.records.length>0){
  137. this.total = response.data.total;
  138. let arrBig = response.data.records
  139. let arr = []
  140. arr = response.data.records.map(item =>{
  141. return {
  142. batchNos:[item.result]
  143. }
  144. })
  145. for(let i=1;i<response.data.records.length; i++){
  146. arr[0].batchNos.push(response.data.records[i].result)
  147. }
  148. getFile(arr[0]).then(response =>{
  149. const reverse = response.data.reverse()
  150. for(let i=0;i<response.data.length;i++){
  151. arrBig[i].url = reverse[i].url
  152. }
  153. })
  154. this.loading = false;
  155. this.adminList = arrBig;
  156. this.total = response.data.total;
  157. }
  158. // let has = response.data.records
  159. // this.total = response.data.total;
  160. // if(has.length>0){
  161. // let arr = has
  162. // let a = []
  163. // for(let i = 0;i<has.length;i++){
  164. // if(has[i].isSuccess == true){
  165. // a.push(has[i].result)
  166. // }
  167. // }
  168. // a = a.map(item =>{
  169. // return {
  170. // batchNos:[item]
  171. // }
  172. // })
  173. // // for(let i=1;i<response.data.records.length; i++){
  174. // // arr[0].batchNos.push(response.data.records[i].result)
  175. // // }
  176. // getFile(a).then(response =>{
  177. // const reverse = response.data.reverse()
  178. // for(let i=0;i<response.data.length;i++){
  179. // arr[i] = reverse[i]
  180. // }
  181. // this.adminList = arr;
  182. // this.loading = false;
  183. // })
  184. // }
  185. }).catch(err =>{
  186. this.loading = false;
  187. })
  188. // filelist(this.addDateRange(this.queryParams,this.dateRange)).then(response => {
  189. // // let has = response.data.records
  190. // // this.total = response.data.total;
  191. // // if(has.length>0){
  192. // // let arr = []
  193. // // for(let i = 0;i<has.length;i++){
  194. // // if(has[i].isSuccess == true){
  195. // // arr.push(has[i].result)
  196. // // }
  197. // // }
  198. // // arr = arr.map(item =>{
  199. // // return {
  200. // // batchNos:[item]
  201. // // }
  202. // // })
  203. // // for(let i=1;i<response.data.records.length; i++){
  204. // // arr[0].batchNos.push(response.data.records[i].result)
  205. // // }
  206. // // getFile(arr[0]).then(response =>{
  207. // // const reverse = response.data.reverse()
  208. // // for(let i=0;i<response.data.length;i++){
  209. // // arr[i] = reverse[i]
  210. // // }
  211. // // this.adminList = arr;
  212. // // this.loading = false;
  213. // // })
  214. // // }
  215. // }).catch(err =>{
  216. // this.loading = false;
  217. // })
  218. },
  219. /** 搜索按钮操作 */
  220. handleQuery() {
  221. this.getList();
  222. },
  223. /** 重置按钮操作 */
  224. resetQuery() {
  225. this.queryParams.current = 1;
  226. this.queryParams.startTime = undefined;
  227. this.queryParams.endTime = undefined;
  228. this.queryParams.endTime = undefined;
  229. this.queryParams.type = 1
  230. this.dateRange = [];
  231. this.resetForm("queryForm");
  232. this.handleQuery();
  233. },
  234. /** 导出按钮操作 */
  235. handleExport(row) {
  236. var a = document.createElement("a"); //创建一个<a></a>标签
  237. a.href = row.url; // 给a标签的href属性值加上地址,注意,这里是绝对路径,不用加 点.
  238. a.download = row.oriName; //设置下载文件文件名,这里加上.xlsx指定文件类型,pdf文件就指定.fpd即可
  239. a.style.display = "none"; // 障眼法藏起来a标签
  240. document.body.appendChild(a); // 将a标签追加到文档对象中
  241. a.click(); // 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
  242. a.remove();
  243. },
  244. }
  245. };
  246. </script>