index.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
  4. <el-form-item label="客户姓名" prop="consumer">
  5. <el-input
  6. v-model="queryParams.likeConsumer"
  7. placeholder="请输入客户姓名"
  8. clearable
  9. size="small"
  10. @keyup.enter.native="handleQuery"
  11. />
  12. </el-form-item>
  13. <el-form-item label="联系电话" prop="orderNo">
  14. <el-input
  15. v-model="queryParams.likeCustomerPhone"
  16. placeholder="请输入订单号"
  17. clearable
  18. size="small"
  19. @keyup.enter.native="handleQuery"
  20. />
  21. </el-form-item>
  22. <el-form-item label="油品名称" prop="oilName">
  23. <el-select v-model="queryParams.oilName" placeholder="油品名称" clearable size="small">
  24. <el-option
  25. v-for="dict in oilNameOptions"
  26. :key="dict.dictLabel"
  27. :label="dict.dictLabel"
  28. :value="dict.dictLabel"
  29. />
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item label="加油员" prop="oilPersonnel">
  33. <el-input
  34. v-model="queryParams.oilPersonnel"
  35. placeholder="请输入加油员"
  36. clearable
  37. size="small"
  38. @keyup.enter.native="handleQuery"
  39. />
  40. </el-form-item>
  41. <el-form-item label="油枪" prop="oilGun">
  42. <el-input
  43. v-model="queryParams.oilGun"
  44. placeholder="请输入油枪"
  45. clearable
  46. size="small"
  47. @keyup.enter.native="handleQuery"
  48. />
  49. </el-form-item>
  50. <el-form-item label="创建时间" prop="createdDate">
  51. <el-date-picker style="width: 350px"
  52. v-model="dateRangeCreatedDate" size="mini" value-format="yyyy-MM-dd HH:mm:ss"
  53. type="datetimerange"
  54. range-separator="至"
  55. start-placeholder="开始日期"
  56. end-placeholder="结束日期">
  57. </el-date-picker>
  58. </el-form-item>
  59. <el-form-item>
  60. <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  61. <el-button type="info" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  62. <el-button type="warning" icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['station:order:export']">导出</el-button>
  63. </el-form-item>
  64. </el-form>
  65. <el-table v-loading="loading" :data="orderList" >
  66. <el-table-column v-if="false" label="订单id" align="center" prop="orderId" />
  67. <el-table-column label="订单号" width="200" align="center" prop="orderNo" />
  68. <el-table-column label="油品名称" align="center" prop="oilName" />
  69. <el-table-column label="油品价格" align="center" prop="oilPirce" />
  70. <el-table-column label="加油升数" align="center" prop="orderLiters" />
  71. <el-table-column label="应付金额" align="center" prop="receivableAmt" />
  72. <el-table-column label="实付金额" align="center" prop="amt" />
  73. <el-table-column label="优惠金额" align="center" prop="discountAmt" />
  74. <el-table-column label="客户姓名" width="120" align="center" prop="consumer" />
  75. <el-table-column label="加油员" width="120" align="center" prop="oilPersonnel" />
  76. <el-table-column label="加油枪号" align="center" prop="oilGun" />
  77. <el-table-column label="支付类型" align="center" prop="payType" :formatter="payTypeFotmat"/>
  78. <el-table-column label="油站名称" width="120" align="center" v-if="false" prop="stationName" />
  79. <el-table-column v-if="false" label="用户id(消费者)" align="center" prop="consumerId" />
  80. <el-table-column v-if="false" label="油站id" align="center" prop="stationId" />
  81. <el-table-column label="状态" align="center" prop="status" :formatter="statusFotmat"/>
  82. <el-table-column label="支付方式" align="center" prop="payWay" :formatter="payWayFotmat"/>
  83. <el-table-column label="支付时间" align="center" prop="payDate" width="150">
  84. <template slot-scope="scope">
  85. <span>{{ parseTime(scope.row.payDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
  86. </template>
  87. </el-table-column>
  88. <el-table-column label="创建时间" align="center" prop="createdDate" width="150">
  89. <template slot-scope="scope">
  90. <span>{{ parseTime(scope.row.createdDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
  91. </template>
  92. </el-table-column>
  93. <el-table-column label="订单类型" align="center" prop="orderType" v-if="false" />
  94. </el-table>
  95. <pagination
  96. v-show="total>0"
  97. :total="total"
  98. :page.sync="queryParams.pageNum"
  99. :limit.sync="queryParams.pageSize"
  100. @pagination="getList"
  101. />
  102. </div>
  103. </template>
  104. <script>
  105. import { listOrder, exportOrder } from "@/api/station/order";
  106. import {stationinfo} from "@/api/station/gun";
  107. export default {
  108. name: "Order",
  109. data() {
  110. return {
  111. //创建订单时间间隔
  112. dateRangeCreatedDate:[],
  113. // 遮罩层
  114. loading: true,
  115. // 选中数组
  116. ids: [],
  117. // 非单个禁用
  118. single: true,
  119. // 非多个禁用
  120. multiple: true,
  121. // 显示搜索条件
  122. showSearch: true,
  123. // 总条数
  124. total: 0,
  125. // 订单支付表格数据
  126. orderList: [],
  127. oilNameOptions: [],
  128. //字典
  129. payTypeOptions:[],
  130. payWayOptions:[],
  131. //下拉油站
  132. stationOptions:[],
  133. // 弹出层标题
  134. title: "",
  135. // 是否显示弹出层
  136. open: false,
  137. // 查询参数
  138. queryParams: {
  139. pageNum: 1,
  140. pageSize: 10,
  141. orderNo: null,
  142. oilGun: null,
  143. oilName: null,
  144. consumerId: null,
  145. consumer: null,
  146. amt: null,
  147. stationId: null,
  148. status: null,
  149. orderLiters: null,
  150. payType: null,
  151. payWay: null,
  152. stationName: null,
  153. payDate: null,
  154. payMaxDate: null,
  155. payMinDate: null,
  156. createdMaxDate: null,
  157. createdMinDate: null,
  158. oilPersonnel: null,
  159. createdDate: null,
  160. orderType: 1,
  161. likeConsumer: null,
  162. likeCustomerPhone: null,
  163. likeCarNo: null
  164. },
  165. // 表单参数
  166. form: {},
  167. // 表单校验
  168. rules: {
  169. }
  170. };
  171. },
  172. created() {
  173. this.getList();
  174. //字典
  175. this.getDicts("pay_type").then(response => {
  176. this.payTypeOptions = response.data;
  177. });
  178. this.getDicts("pay_way").then(response => {
  179. this.payWayOptions = response.data;
  180. });
  181. stationinfo().then(response => {
  182. this.stationOptions = response.rows;
  183. });
  184. this.getDicts("oil_name").then(response => {
  185. this.oilNameOptions = response.data;
  186. });
  187. },
  188. methods: {
  189. payTypeFotmat(row, column){
  190. if(row.payType === 'wx'){
  191. return '微信支付'
  192. }else if(row.payType === 'zfb'){
  193. return '支付宝支付'
  194. }else if(row.payType === 'xj'){
  195. return '现金支付'
  196. }else if(row.payType === 'dzk'){
  197. return '电子卡支付'
  198. }
  199. else if(row.payType === 'POS'){
  200. return 'POS机支付'
  201. }
  202. else if(row.payType === 'yzf'){
  203. return '预支付'
  204. }
  205. else if(row.payType === 'kbzf'){
  206. return '卡包支付'
  207. }
  208. },
  209. payWayFotmat(row, column){
  210. if(row.payWay === '02'){
  211. return '公众号'
  212. }else if(row.payWay === '03'){
  213. return '小程序'
  214. }
  215. },
  216. statusFotmat(row, column){
  217. if(row.status === '0'){
  218. return '未支付'
  219. }else if(row.status === '1'){
  220. return '已支付'
  221. }
  222. },
  223. //orderTypeFotmat
  224. // orderTypeFotmat(row, column){
  225. // if(row.orderType === '1'){
  226. // return '柴油'
  227. // }else if(row.orderType === '2'){
  228. // return '汽油'
  229. // }
  230. // },
  231. /** 查询订单支付列表 */
  232. getList() {
  233. this.loading = true;
  234. this.queryParams.stationId= this.$store.selectDeptId;
  235. if(this.queryParams.stationId==null || this.queryParams.stationId==""){
  236. this.queryParams.stationId =this.$store.state.user.deptId;
  237. }
  238. listOrder(this.addDateRange(this.queryParams, this.dateRangeCreatedDate)).then(response => {
  239. this.orderList = response.rows;
  240. this.total = response.total;
  241. this.loading = false;
  242. });
  243. },
  244. onInstitutionChang(e){
  245. let obj = {};
  246. obj = this.stationOptions.find((item)=>{//这里的userList就是上面遍历的数据源
  247. return item.stationId === e;//筛选出匹配数据
  248. })
  249. this.form.stationName=obj.stationName;
  250. },
  251. // 取消按钮
  252. cancel() {
  253. this.open = false;
  254. this.reset();
  255. },
  256. // 表单重置
  257. reset() {
  258. this.form = {
  259. orderId: null,
  260. orderNo: null,
  261. oilGun: null,
  262. oilName: null,
  263. consumerId: null,
  264. consumer: null,
  265. amt: null,
  266. stationId: null,
  267. status: "0",
  268. orderLiters: null,
  269. payType: null,
  270. payWay: null,
  271. payDate: null,
  272. oilPersonnel: null,
  273. createdDate: null,
  274. orderType: null
  275. };
  276. this.resetForm("form");
  277. },
  278. /** 搜索按钮操作 */
  279. handleQuery() {
  280. this.queryParams.pageNum = 1;
  281. this.getList();
  282. },
  283. /** 重置按钮操作 */
  284. resetQuery() {
  285. this.dateRangeCreatedDate =[];
  286. this.resetForm("queryForm");
  287. this.handleQuery();
  288. },
  289. /** 导出按钮操作 */
  290. handleExport() {
  291. const queryParams = this.queryParams;
  292. this.$confirm('是否确认导出所有订单支付数据项?', "警告", {
  293. confirmButtonText: "确定",
  294. cancelButtonText: "取消",
  295. type: "warning"
  296. }).then(function() {
  297. return exportOrder(queryParams);
  298. }).then(response => {
  299. this.download(response.msg);
  300. })
  301. }
  302. }
  303. };
  304. </script>