Order_Lng.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  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="orderCount">
  10. <label >{{ !lngData.countNum ? 0 : lngData.countNum}}</label>
  11. </el-form-item>
  12. <el-form-item label="金额:" prop="orderAmt">
  13. <label >{{ !lngData.amt ? 0 : lngData.amt}}</label>
  14. </el-form-item>
  15. <el-form-item label="订单号" prop="orderNo">
  16. <el-input
  17. v-model="queryParams.orderNo"
  18. placeholder="请输入订单号"
  19. clearable
  20. size="small"
  21. @keyup.enter.native="handleQuery"
  22. />
  23. </el-form-item>
  24. <!-- <el-form-item label="客户姓名" prop="likeConsumer">
  25. <el-input
  26. v-model="queryParams.likeConsumer"
  27. placeholder="请输入客户姓名"
  28. clearable
  29. size="small"
  30. @keyup.enter.native="handleQuery"
  31. />
  32. </el-form-item> -->
  33. <el-form-item label="创建时间" prop="createdDate">
  34. <el-date-picker
  35. style="width: 350px"
  36. v-model="dateRangeCreatedDate"
  37. size="mini"
  38. value-format="yyyy-MM-dd HH:mm:ss"
  39. type="datetimerange"
  40. range-separator="至"
  41. start-placeholder="开始日期"
  42. end-placeholder="结束日期"
  43. >
  44. </el-date-picker>
  45. </el-form-item>
  46. <el-form-item>
  47. <el-button
  48. type="cyan"
  49. icon="el-icon-search"
  50. size="mini"
  51. @click="handleQuery"
  52. >搜索</el-button
  53. >
  54. <el-button
  55. type="info"
  56. icon="el-icon-refresh"
  57. size="mini"
  58. @click="resetQuery"
  59. >重置</el-button
  60. >
  61. <el-button
  62. type="warning"
  63. icon="el-icon-download"
  64. size="mini"
  65. @click="handleExport"
  66. >导出</el-button
  67. >
  68. </el-form-item>
  69. </el-form>
  70. <el-table :data="orderList">
  71. <af-table-column label="油站名" align="center" prop="stationName" v-if="jiBie==0||jiBie==1"/>
  72. <af-table-column label="订单id" align="center" prop="orderId" v-if="false"/>
  73. <af-table-column label="订单号" align="center" prop="orderNo" />
  74. <af-table-column label="油品名称" align="center" prop="oilName" />
  75. <af-table-column label="枪标价" align="center" prop="oilPirce" />
  76. <af-table-column label="结算价" align="center" prop="sellOilPrice" />
  77. <af-table-column label="司机价" align="center" prop="driverOilPrice" v-if="jiBie==0||jiBie==1"/>
  78. <af-table-column label="加油升数" align="center" prop="orderLiters" />
  79. <af-table-column label="应付金额" align="center" prop="receivableAmt" />
  80. <af-table-column label="结算金额" align="center" prop="sellAmt" />
  81. <af-table-column label="结算优惠金额" align="center" prop="sellDiscountAmt" />
  82. <af-table-column label="司机金额" align="center" prop="amt" v-if="jiBie==0||jiBie==1"/>
  83. <af-table-column label="司机优惠金额" align="center" prop="driverDiscountAmt" v-if="jiBie==0||jiBie==1"/>
  84. <af-table-column label="总优惠金额" align="center" prop="discountAmt" v-if="jiBie==0||jiBie==1"/>
  85. <!-- <af-table-column label="客户姓名" align="center" prop="consumer" /> -->
  86. <af-table-column label="手机号" align="center" prop="mobilePhone" />
  87. <!-- <af-table-column label="加油员" align="center" prop="oilPersonnel" /> -->
  88. <!-- <af-table-column label="加油枪号" align="center" prop="oilGun" /> -->
  89. <af-table-column label="支付时间" align="center" prop="payDate">
  90. <template slot-scope="scope">
  91. <span>{{
  92. parseTime(scope.row.payDate, "{y}-{m}-{d} {h}:{i}:{s}")
  93. }}</span>
  94. </template>
  95. </af-table-column>
  96. <af-table-column label="支付状态" align="center" prop="status" :formatter="statusFotmat">
  97. </af-table-column>
  98. <af-table-column label="操作" align="center" prop="payDate">
  99. <template slot-scope="scope">
  100. <el-button
  101. size="mini"
  102. type="text"
  103. icon="el-icon-edit"
  104. @click="handlerefund(scope.row)"
  105. >退款</el-button>
  106. <el-button
  107. size="mini"
  108. type="text"
  109. icon="el-icon-edit"
  110. @click="handlereback(scope.row)"
  111. >回退</el-button>
  112. </template>
  113. </af-table-column>
  114. <!-- <af-table-column label="创建时间" align="center" prop="createdDate">
  115. <template slot-scope="scope">
  116. <span>{{
  117. parseTime(scope.row.createdDate, "{y}-{m}-{d} {h}:{i}:{s}")
  118. }}</span>
  119. </template>
  120. </af-table-column> -->
  121. </el-table>
  122. <pagination
  123. v-show="total > 0"
  124. :total="total"
  125. :page.sync="queryParams.pageNum"
  126. :limit.sync="queryParams.pageSize"
  127. @pagination="getList"
  128. />
  129. </div>
  130. </template>
  131. <script>
  132. import { listOrder, exportOrder, exportLngOrderGroup, exportLngOrderStation, queryGroupOrder, queryStationOrder,refund,reback, } from "@/api/station/order";
  133. import { stationinfo } from "@/api/station/gun";
  134. import { listPrice, getPrice } from "@/api/station/price";
  135. import { listSum,listAllSum } from "@/api/dataSource/saleReport";
  136. export default {
  137. name: "Order_Lng",
  138. data() {
  139. return {
  140. //创建订单时间间隔
  141. dateRangeCreatedDate: [],
  142. // 总条数
  143. total: 0,
  144. // 订单支付表格数据
  145. orderList: [],
  146. oilNameOptions: [],
  147. // 字典
  148. payTypeOptions: [],
  149. // 下拉油站
  150. stationOptions: [],
  151. // 弹出层标题
  152. title: "",
  153. // 是否显示弹出层
  154. open: false,
  155. // 查询参数
  156. queryParams: {
  157. levelId:this.levelId,
  158. pageNum: 1,
  159. pageSize: 10,
  160. oilGun: null,
  161. oilName: null,
  162. stationId: null,
  163. orderType: 1,
  164. oilPersonnel: null,
  165. createdDate: null,
  166. likeConsumer: null,
  167. orderNo:null
  168. },
  169. // 表单校验
  170. rules: {},
  171. lngData:{},
  172. };
  173. },
  174. created() {
  175. this.getList();
  176. //字典
  177. this.getDicts("pay_type").then((response) => {
  178. this.payTypeOptions = response.data;
  179. });
  180. stationinfo().then((response) => {
  181. this.stationOptions = response.rows;
  182. });
  183. this.getDicts("oil_name").then((response) => {
  184. this.oilNameOptions = response.data;
  185. });
  186. },
  187. methods: {
  188. payTypeFotmat(row, column) {
  189. if (row.payType === "wx") {
  190. return "微信支付";
  191. } else if (row.payType === "zfb") {
  192. return "支付宝支付";
  193. } else if (row.payType === "xj") {
  194. return "现金支付";
  195. } else if (row.payType === "dzk") {
  196. return "电子卡支付";
  197. } else if (row.payType === "POS") {
  198. return "POS机支付";
  199. } else if (row.payType === "yzf") {
  200. return "预支付";
  201. } else if (row.payType === "kbzf") {
  202. return "卡包支付";
  203. }
  204. },
  205. statusFotmat(row, column) {
  206. if (row.status === "0") {
  207. return "未支付";
  208. } else if (row.status === "1") {
  209. return "已支付";
  210. }else if (row.status === "2") {
  211. return "线下退款";
  212. }else if (row.status === "3") {
  213. return "线上退款";
  214. }
  215. },
  216. /** 查询订单支付列表 */
  217. getList() {
  218. this.queryParams.levelId = this.levelId
  219. let arrPro
  220. const query = {
  221. stationId: null,
  222. createdDate: null,
  223. stationName: null,
  224. beginTime: null,
  225. endTime: null,
  226. levelId: this.levelId
  227. };
  228. if(this.jiBie == 1){
  229. arrPro = queryGroupOrder(
  230. this.addDateRange(this.queryParams, this.dateRangeCreatedDate)
  231. );
  232. query.beginTime=this.dateRangeCreatedDate[0];
  233. query.endTime=this.dateRangeCreatedDate[1];
  234. listSum(query).then((response) => {
  235. if(response.data !=null) {
  236. this.lngData=response.data;
  237. }else{
  238. throw new Error("")
  239. }
  240. }).catch(() => {
  241. this.msgError("拉取overview不同油品的数据失败")
  242. });
  243. }else if(this.jiBie == 2){
  244. arrPro = queryStationOrder(
  245. this.addDateRange(this.queryParams, this.dateRangeCreatedDate)
  246. );
  247. query.beginTime=this.dateRangeCreatedDate[0];
  248. query.endTime=this.dateRangeCreatedDate[1];
  249. listSum(query).then((response) => {
  250. if(response.data !=null) {
  251. this.lngData=response.data;
  252. }else{
  253. throw new Error("")
  254. }
  255. }).catch(() => {
  256. this.msgError("拉取overview不同油品的数据失败")
  257. });
  258. }else{
  259. arrPro = queryGroupOrder(
  260. this.addDateRange(this.queryParams, this.dateRangeCreatedDate)
  261. );
  262. listAllSum(query).then((response) => {
  263. if(response.data !=null) {
  264. this.lngData=response.data;
  265. }else{
  266. throw new Error("")
  267. }
  268. }).catch(() => {
  269. this.msgError("拉取overview不同油品的数据失败")
  270. });
  271. }
  272. arrPro.then((response) => {
  273. this.orderList = response.rows;
  274. this.total = response.total;
  275. });
  276. },
  277. /** 搜索按钮操作 */
  278. handleQuery() {
  279. this.queryParams.pageNum = 1;
  280. this.getList();
  281. },
  282. /** 重置按钮操作 */
  283. resetQuery() {
  284. this.dateRangeCreatedDate = [];
  285. this.resetForm("queryForm");
  286. this.handleQuery();
  287. },
  288. /** 导出按钮操作 */
  289. handleExport() {
  290. const that = this;
  291. const queryParams = this.queryParams;
  292. this.$confirm("是否确认导出所有订单支付数据项?", "警告", {
  293. confirmButtonText: "确定",
  294. cancelButtonText: "取消",
  295. type: "warning",
  296. })
  297. .then(function () {
  298. if(that.jiBie == 1){
  299. return exportLngOrderGroup(queryParams);
  300. }else if(that.jiBie == 2){
  301. return exportLngOrderStation(queryParams)
  302. }
  303. })
  304. .then((response) => {
  305. this.download(response.msg);
  306. });
  307. },
  308. //退款方法接口
  309. handlerefund(row) {
  310. this.$confirm('是否进行退款"', "警告", {
  311. confirmButtonText: "确定",
  312. cancelButtonText: "取消",
  313. type: "warning"
  314. }).then(() => {
  315. return refund(row.orderId)
  316. }).then((res) => {
  317. // this.getList();
  318. this.getList();
  319. this.msgSuccess("退款成功");
  320. })
  321. },
  322. //回退方法
  323. handlereback(row) {
  324. this.$confirm('是否对退款账单进行回退"', "警告", {
  325. confirmButtonText: "确定",
  326. cancelButtonText: "取消",
  327. type: "warning"
  328. }).then(() => {
  329. return reback(row.orderId)
  330. }).then((res) => {
  331. // this.getList();
  332. this.getList();
  333. this.msgSuccess("回退成功");
  334. })
  335. },
  336. },
  337. };
  338. </script>