index.vue 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
  4. <el-form-item label="客户姓名" prop="customerName">
  5. <el-input
  6. v-model="queryParams.customerName"
  7. placeholder="请输入客户姓名"
  8. clearable
  9. size="small"
  10. @keyup.enter.native="handleQuery"
  11. />
  12. </el-form-item>
  13. <el-form-item label="联系电话" prop="phoneNumber">
  14. <el-input
  15. v-model="queryParams.phoneNumber"
  16. placeholder="请输入"
  17. clearable
  18. size="small"
  19. @keyup.enter.native="handleQuery"
  20. />
  21. </el-form-item>
  22. <el-form-item label="会员等级" prop="memberGrade">
  23. <el-input
  24. v-model="queryParams.memberGrade"
  25. placeholder="请输入会员等级"
  26. clearable
  27. size="small"
  28. @keyup.enter.native="handleQuery"
  29. />
  30. </el-form-item>
  31. <el-form-item label="油品" prop="oilName">
  32. <el-select
  33. v-model="queryParams.oilName"
  34. placeholder="请选择油品"
  35. clearable
  36. size="small">
  37. <el-option
  38. v-for="dict in oilNameOptions"
  39. :key="dict.dictLabel"
  40. :label="dict.dictLabel"
  41. :value="dict.dictLabel"
  42. ></el-option>
  43. </el-select>
  44. </el-form-item>
  45. <el-form-item>
  46. <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  47. <el-button type="info" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  48. </el-form-item>
  49. </el-form>
  50. <el-table :data="manageList">
  51. <af-table-column label="会员id" align="center" prop="memberId" />
  52. <af-table-column label="" align="center" prop="unionId" v-if="false"/>
  53. <af-table-column label="" align="center" prop="minaUserId" v-if="false"/>
  54. <af-table-column label="客户姓名" align="center" prop="customerName" />
  55. <af-table-column label="会员等级" align="center" prop="grade" />
  56. <af-table-column label="手机号" align="center" prop="phoneNumber" />
  57. <af-table-column label="油品" align="center" prop="oilName" />
  58. <af-table-column label="汽油余额" align="center" prop="qyAmt" />
  59. <af-table-column label="柴油余额" align="center" prop="cyAmt" />
  60. <af-table-column label="积分" align="center" prop="integral" />
  61. <af-table-column label="操作" align="center" class-name="small-padding fixed-width">
  62. <template slot-scope="scope">
  63. <el-button
  64. size="mini"
  65. type="text"
  66. icon="el-icon-search"
  67. @click="lookinfo(scope.row)"
  68. >订单查询</el-button>
  69. </template>
  70. </af-table-column>
  71. </el-table>
  72. <pagination
  73. v-show="total>0"
  74. :total="total"
  75. :page.sync="queryParams.pageNum"
  76. :limit.sync="queryParams.pageSize"
  77. @pagination="getList"
  78. />
  79. <el-dialog :title="titleOrderInfo" :visible.sync="openOrderInfo" width="700px" append-to-body>
  80. <el-table :data="orderList" >
  81. <af-table-column v-if="false" label="订单id" align="center" prop="orderId" />
  82. <af-table-column label="订单号" width="200" align="center" prop="orderNo" />
  83. <af-table-column label="油品名称" align="center" prop="oilName" />
  84. <af-table-column label="油品价格" align="center" prop="oilPirce" />
  85. <af-table-column label="加油升数" align="center" prop="orderLiters" />
  86. <af-table-column label="金额" align="center" prop="amt" />
  87. <af-table-column label="消费者" width="120" align="center" prop="consumer" />
  88. <af-table-column label="加油员" width="120" align="center" prop="oilPersonnel" />
  89. <af-table-column label="加油枪号" align="center" prop="oilGun" />
  90. <af-table-column label="支付类型" align="center" prop="payType" :formatter="payTypeFotmat"/>
  91. <af-table-column label="油站名称" width="120" align="center" prop="stationName" v-if="false"/>
  92. <af-table-column label="用户id(消费者)" align="center" prop="consumerId" v-if="false" />
  93. <af-table-column label="油站id" align="center" prop="stationId" v-if="false" />
  94. <af-table-column label="状态" align="center" prop="status" :formatter="statusFotmat"/>
  95. <af-table-column label="支付时间" align="center" prop="payDate" width="150">
  96. <template slot-scope="scope">
  97. <span>{{ parseTime(scope.row.payDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
  98. </template>
  99. </af-table-column>
  100. <af-table-column label="创建时间" align="center" prop="createdDate" width="150">
  101. <template slot-scope="scope">
  102. <span>{{ parseTime(scope.row.createdDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
  103. </template>
  104. </af-table-column>
  105. <af-table-column label="订单类型" align="center" prop="orderType" v-if="false" />
  106. </el-table>
  107. <pagination
  108. v-show="totalOrder>0"
  109. :total="totalOrder"
  110. :page.sync="queryOrder.pageNum"
  111. :limit.sync="queryOrder.pageSize"
  112. @pagination="listPage"
  113. />
  114. </el-dialog>
  115. </div>
  116. </template>
  117. <script>
  118. import { listManage, getOrderInfo } from "@/api/customer/manage";
  119. import {stationinfo} from "@/api/station/gun";
  120. import { listPrice } from "@/api/station/price";
  121. export default {
  122. name: "Manage",
  123. data() {
  124. return {
  125. // 总条数
  126. total: 0,
  127. totalOrder: 0,
  128. // 客户管理表格数据
  129. manageList: [],
  130. //油站信息
  131. stationOptions:[],
  132. orderList:[],
  133. // 是否显示弹出层
  134. openOrderInfo: false,
  135. titleOrderInfo:"",
  136. oilNameOptions:[],
  137. // 查询参数
  138. queryParams: {
  139. pageNum: 1,
  140. pageSize: 10,
  141. customerName: null,
  142. commendMan: null,
  143. memberGrade: null,
  144. phoneNumber: null,
  145. oilName: null
  146. },
  147. queryOrder:{
  148. pageNum: 1,
  149. pageSize: 10,
  150. oilName: null,
  151. stationId: null,
  152. consumerId: null
  153. },
  154. };
  155. },
  156. created() {
  157. this.getList();
  158. stationinfo().then(response => {
  159. this.stationOptions = response.rows;
  160. });
  161. listPrice().then((response) => {
  162. this.oilNameOptions = response.rows;
  163. });
  164. },
  165. methods: {
  166. payTypeFotmat(row, column){
  167. if(row.payType === 'sxf'){
  168. return '随行付'
  169. }else if(row.payType === 'dzk'){
  170. return '电子卡'
  171. }else if(row.payType === 'wx'){
  172. return '微信'
  173. }else if(row.payType === 'zfb'){
  174. return '支付宝'
  175. }else if(row.payType === 'xj'){
  176. return '现金'
  177. }
  178. },
  179. statusFotmat(row, column){
  180. if(row.status === '0'){
  181. return '未支付'
  182. }else if(row.status === '1'){
  183. return '已支付'
  184. }
  185. },
  186. /** 查询客户管理列表 */
  187. getList() {
  188. listManage(this.queryParams).then(response => {
  189. this.manageList = response.rows;
  190. this.total = response.total;
  191. });
  192. },
  193. /** 搜索按钮操作 */
  194. handleQuery() {
  195. this.queryParams.pageNum = 1;
  196. this.getList();
  197. },
  198. /** 重置按钮操作 */
  199. resetQuery() {
  200. this.resetForm("queryForm");
  201. this.handleQuery();
  202. },
  203. lookinfo(row){
  204. row.page= this.queryOrder.pageNum;
  205. row.limit= this.queryOrder.pageSize;
  206. this.listPage(row);
  207. },
  208. listPage(row){
  209. this.queryOrder.consumerId=row.minaUserId;
  210. this.queryOrder.pageNum=row.page;
  211. this.queryOrder.pageSize =row.limit;
  212. getOrderInfo(this.queryOrder).then(response => {
  213. this.orderList = response.rows;
  214. this.openOrderInfo = true;
  215. this.totalOrder = response.total;
  216. this.titleOrderInfo = "查看客户订单信息";
  217. });
  218. }
  219. }
  220. };
  221. </script>