nocarRec.vue 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. <template>
  2. <div class="sefCarRec_container">
  3. <div class="title">
  4. <el-row>
  5. <el-col :span="24">
  6. <div class="top">
  7. <el-input placeholder="公司名称" class="input-demo" v-model="companyName"></el-input>
  8. <el-input placeholder="车牌号" class="input-demo" v-model="carNum"></el-input>
  9. <el-button type="success" style="margin-left: 1%;" @click="loadData">查询</el-button>
  10. <el-button type="primary" style="margin-left: 1%;" @click="exportExcel">导出报表</el-button>
  11. </div>
  12. </el-col>
  13. </el-row>
  14. </div>
  15. <!-- 表格部分 -->
  16. <template>
  17. <el-table
  18. class="table"
  19. v-loading="loading"
  20. ref="multipleTable"
  21. :data="nocarRecCarTable"
  22. height="370px"
  23. border
  24. tooltip-effect="dark">
  25. <el-table-column
  26. label="客户名称"
  27. prop="customerName"
  28. show-overflow-tooltip>
  29. </el-table-column>
  30. <el-table-column
  31. prop="companyName"
  32. label="公司名称"
  33. show-overflow-tooltip>
  34. </el-table-column>
  35. <el-table-column
  36. prop="businessType"
  37. label="业务类型"
  38. show-overflow-tooltip>
  39. <template slot-scope="scope">
  40. <span v-if="scope.row.businessType == 0">自有车</span>
  41. <span v-if="scope.row.businessType == 1">外协车</span>
  42. <span v-if="scope.row.businessType == 2">无车</span>
  43. </template>
  44. </el-table-column>
  45. <el-table-column
  46. prop="carNum"
  47. label="车牌号"
  48. show-overflow-tooltip>
  49. </el-table-column>
  50. <el-table-column
  51. prop="carColor"
  52. label="车辆颜色"
  53. show-overflow-tooltip>
  54. <template slot-scope="scope">
  55. <span v-if="scope.row.carColor == 0" style="color: green">蓝色</span>
  56. <span v-else-if="scope.row.carColor == 1" >黄色</span>
  57. <span v-else-if="scope.row.carColor == 2" >黑色</span>
  58. <span v-else-if="scope.row.carColor == 3" >白色</span>
  59. <span v-else-if="scope.row.carColor == 4" >渐变绿色</span>
  60. <span v-else-if="scope.row.carColor == 5" >黄绿渐变色</span>
  61. <span v-else-if="scope.row.carColor == 6" >蓝白渐变色</span>
  62. <span v-else-if="scope.row.carColor == 7" >未确定</span>
  63. <span v-else-if="scope.row.carColor == 8" >未确定</span>
  64. <span v-else-if="scope.row.carColor == 9" >未确定</span>
  65. </template>
  66. </el-table-column>
  67. <el-table-column
  68. prop="custPhone"
  69. label="手机号"
  70. show-overflow-tooltip>
  71. </el-table-column>
  72. <el-table-column
  73. prop="etcNum"
  74. label="ETC卡号"
  75. show-overflow-tooltip>
  76. </el-table-column>
  77. <el-table-column
  78. prop="recStatus"
  79. label="备案状态"
  80. show-overflow-tooltip>
  81. <template slot-scope="scope">
  82. <span v-if="scope.row.recStatus == 1" style="color: green">备案成功</span>
  83. <span v-else-if="scope.row.recStatus == 0" style="color: red">备案失败</span>
  84. </template>
  85. </el-table-column>
  86. <el-table-column
  87. prop="succTime"
  88. label="成功时间"
  89. show-overflow-tooltip>
  90. </el-table-column>
  91. <el-table-column
  92. prop="failTime"
  93. label="失败时间"
  94. show-overflow-tooltip>
  95. </el-table-column>
  96. <el-table-column
  97. prop="failReason"
  98. label="失败原因"
  99. show-overflow-tooltip>
  100. </el-table-column>
  101. </el-table>
  102. </template>
  103. <!-- 分页 -->
  104. <div class="block">
  105. <el-pagination
  106. @size-change="handleSizeChange"
  107. @current-change="handleCurrentChange"
  108. :current-page="current"
  109. :page-sizes="[6, 8, 10, 20, 50, 100]"
  110. :page-size="pagesize"
  111. layout="total, sizes, prev, pager, next, jumper"
  112. :total="total">
  113. </el-pagination>
  114. </div>
  115. </div>
  116. </template>
  117. <script type="text/javascript">
  118. import FileSaver from "file-saver";
  119. import XLSX from "xlsx";
  120. export default {
  121. data(){
  122. return{
  123. nocarRecCarTable:[],
  124. companyName:'',
  125. carNum:'',
  126. current: 1,
  127. pagesize: 8,
  128. total:''
  129. }
  130. },
  131. created() {
  132. this.loadData();
  133. },
  134. methods:{
  135. // 列表展示
  136. async loadData() {
  137. const formData = new FormData();
  138. formData.append('current', this.current);
  139. formData.append('size', this.pagesize);
  140. formData.append('companyName', this.companyName);
  141. formData.append('carNum', this.carNum);
  142. formData.append('businessType', 2);
  143. const response = await this.$http.post(`noCar/findCarRec`, formData);
  144. if (response.data.code === 0) {
  145. this.nocarRecCarTable = response.data.data.records;
  146. this.total = response.data.data.total;
  147. }
  148. },
  149. // 分页方法
  150. handleSizeChange(val) {
  151. this.pagesize = val;
  152. this.loadData();
  153. console.log(`每页 ${val} 条`);
  154. },
  155. handleCurrentChange(val) {
  156. this.current = val;
  157. this.loadData();
  158. // console.log(`当前页: ${val}`);
  159. },
  160. exportExcel() {
  161. // 设置当前日期
  162. let time = new Date();
  163. //console.log(time);
  164. let year = time.getFullYear();
  165. let month = time.getMonth() + 1;
  166. let day = time.getDate();
  167. let name = "无车车辆备案查询列表_"+year + "" + month + "" + day;
  168. // console.log(name)
  169. /* generate workbook object from table */
  170. // .table要导出的是哪一个表格
  171. var wb = XLSX.utils.table_to_book(document.querySelector(".table"));
  172. /* get binary string as output */
  173. var wbout = XLSX.write(wb, {
  174. bookType: "xlsx",
  175. bookSST: true,
  176. type: "array"
  177. });
  178. try {
  179. // name+'.xlsx'表示导出的excel表格名字
  180. FileSaver.saveAs(
  181. new Blob([wbout], { type: "application/octet-stream" }),
  182. name + ".xlsx"
  183. );
  184. } catch (e) {
  185. if (typeof console !== "undefined") console.log(e, wbout);
  186. }
  187. return wbout;
  188. },
  189. }
  190. };
  191. </script>
  192. <style>
  193. .sefCarRec_container {
  194. border: 1px solid #d9d9d9;
  195. border-radius: 10px;
  196. }
  197. .sefCarRec_container .title {
  198. font-size: 5px;
  199. margin-bottom: 20px;
  200. }
  201. .sefCarRec_container .top {
  202. padding-top: 20px;
  203. padding-left: 20px;
  204. }
  205. .sefCarRec_container .text {
  206. display: inline-block;
  207. color: #000;
  208. font-size: 16px ;
  209. margin-left: 1%;
  210. }
  211. .sefCarRec_container .input-demo {
  212. display: inline-block;
  213. width: 20%;
  214. margin-left: 1%;
  215. }
  216. .sefCarRec_container .block {
  217. font-size: 5px;
  218. text-align: center;
  219. margin-top: 25px;
  220. margin-bottom: 25px;
  221. }
  222. .sefCarRec_container .el-dialog {
  223. width: 60%;
  224. }
  225. .sefCarRec_container .el-dialog__header, .el-dialog__body {
  226. padding: 0 20px;
  227. }
  228. .sefCarRec_container .tou {
  229. font-size: 20px;
  230. height: 30px;
  231. line-height: 30px;
  232. padding-top: 15px;
  233. }
  234. .sefCarRec_container .line {
  235. margin-top: 15px;
  236. margin-bottom: 15px;
  237. width: 100%;
  238. height: 2px;
  239. background-color: #d9d9d9;
  240. }
  241. .sefCarRec_container .xinxi {
  242. text-align: center;
  243. margin: 15px auto;
  244. font-size: 18px;
  245. }
  246. </style>