oilOrder.vue 8.4 KB

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