Joe пре 3 година
родитељ
комит
5256f13680
2 измењених фајлова са 221 додато и 97 уклоњено
  1. 9 0
      src/api/label/label.js
  2. 212 97
      src/views/label/Label_Batch.vue

+ 9 - 0
src/api/label/label.js

@@ -137,4 +137,13 @@ export function delUserLabel(data) {
     method: 'post',
     data:data
   })
+}
+
+// 查询标签
+export function getConsume(data) {
+  return request({
+    url: '/station/order/selectUserPayOrderList',
+    method: 'get',
+    params: data
+  })
 }

+ 212 - 97
src/views/label/Label_Batch.vue

@@ -1,8 +1,10 @@
 <template>
   <div class="app-container">
-    <div class="container">
+  <div class="card card-body">
+  
+    <div class="container ">
       <div class="row">
-        <div class="col-sm col-md-3">
+        <div class="col-sm col-md-3 offset-md-1">
           <div class="input-group input-group-sm flex-nowrap">
             <div class="input-group-prepend" style="width: 80px"></div>
             <div class="input-group-prepend">
@@ -21,13 +23,36 @@
             </select>
           </div>
         </div>
+        <div class="col-sm col-md-7">
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-sm col-md-3 offset-md-1">
+          <div class="input-group input-group-sm flex-nowrap">
+            <div class="input-group-prepend" style="width: 80px"></div>
+            <div class="input-group-prepend">
+              <span class="input-group-text" id="addon-wrapping">标签:</span>
+            </div>
+            <select
+              class="custom-select"
+              id="inputGroupSelect01"
+              style="width: 80px"
+              v-model="queryParams.labelId"
+            >
+              <option selected>Choose...</option>
+              <option value="1">One</option>
+              <option value="2">Two</option>
+              <option value="3">Three</option>
+            </select>
+          </div>
+        </div>
         <div class="col-sm col-md-8">
           <div class="input-group input-group-sm flex-nowrap">
             <div class="input-group-prepend" style="width: 80px"></div>
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">日期:</span>
               <el-date-picker
-                v-model="dateRangeCreatedDate"
+                v-model="queryParams.data"
                 type="datetimerange"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 size="mini"
@@ -41,8 +66,8 @@
           </div>
         </div>
       </div>
-      <div class="row">
-        <div class="col-sm col-md-9">
+      <div class="row ">
+        <div class="col-sm col-md-9 offset-md-1">
           <div class="input-group input-group-sm flex-nowrap">
             <div class="input-group-prepend" style="width: 80px"></div>
             <div class="input-group-prepend">
@@ -55,13 +80,14 @@
               class="form-control"
               aria-label="Username"
               aria-describedby="addon-wrapping"
+              v-model.number="queryParams.startCountNum"
             />
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">次</span>
             </div>
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">
-                &lt; 加油次数 &lt;
+                &lt;= 加油次数 &lt;
               </span>
             </div>
             <input
@@ -69,6 +95,7 @@
               class="form-control"
               aria-label="Username"
               aria-describedby="addon-wrapping"
+              v-model.number="queryParams.endCountNum"
             />
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">次</span>
@@ -78,12 +105,13 @@
       </div>
 
       <div class="row">
-        <div class="col-sm col-md-9">
+        <div class="col-sm col-md-9 offset-md-1">
           <div class="input-group input-group-sm flex-nowrap">
             <div class="input-group-prepend" style="width: 80px">
               <select
                 class="custom-select custom-select-sm"
                 id="inputGroupSelect01"
+                v-model="queryParams.amtFlag"
               >
                 <option value="1">或者</option>
                 <option value="2">并且</option>
@@ -99,13 +127,14 @@
               class="form-control"
               aria-label="Username"
               aria-describedby="addon-wrapping"
+              v-model.number="queryParams.startAmt"
             />
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">元</span>
             </div>
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">
-                &lt; 加油金额 &lt;
+                &lt;= 加油金额 &lt;
               </span>
             </div>
             <input
@@ -113,6 +142,7 @@
               class="form-control"
               aria-label="Username"
               aria-describedby="addon-wrapping"
+              v-model.number="queryParams.endAmt"
             />
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">元</span>
@@ -121,12 +151,13 @@
         </div>
       </div>
       <div class="row">
-        <div class="col-sm col-md-9">
+        <div class="col-sm col-md-9 offset-md-1">
           <div class="input-group input-group-sm flex-nowrap">
             <div class="input-group-prepend" style="width: 80px">
               <select
                 class="custom-select custom-select-sm"
                 id="inputGroupSelect01"
+                v-model="queryParams.litersFlag"
               >
                 <option value="1">或者</option>
                 <option value="2">并且</option>
@@ -142,13 +173,14 @@
               class="form-control"
               aria-label="Username"
               aria-describedby="addon-wrapping"
+              v-model.number="queryParams.startLiters"
             />
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">升</span>
             </div>
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">
-                &lt; 加油升数 &lt;
+                &lt;= 加油升数 &lt;
               </span>
             </div>
             <input
@@ -156,6 +188,7 @@
               class="form-control"
               aria-label="Username"
               aria-describedby="addon-wrapping"
+              v-model.number="queryParams.endLiters"
             />
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">升</span>
@@ -163,17 +196,27 @@
           </div>
         </div>
       </div>
+      <div class="row mb-0 mt-3" v-show="queryParams.secondFlag==0">
+        <div class="col-sm-4 offset-sm-3">
+          <el-button type="info" size="mini" icon="el-icon-arrow-down" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample" @click="toggleQuery">展开查询</el-button>
+        </div>
+        <div class="col-sm-4">
+           <el-button type="primary" size="mini" icon="el-icon-search" @click="getList">立刻查询</el-button>
+        </div>         
+      </div>
+
     </div>
-    <hr />
-    <div class="container">
+
+    <div class="container collapse " id="collapseExample">
+        <hr />
       <div class="row">
-        <div class="col-sm col-md-8">
+        <div class="col-sm col-md-8 offset-md-1">
           <div class="input-group input-group-sm flex-nowrap">
             <div class="input-group-prepend" style="width: 80px"></div>
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">时间:</span>
               <el-date-picker
-                v-model="dateRangeCreatedDate"
+                v-model="queryParams.secondDate"
                 type="datetimerange"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 size="mini"
@@ -188,7 +231,7 @@
         </div>
       </div>
       <div class="row">
-        <div class="col-sm col-md-9">
+        <div class="col-sm col-md-9 offset-md-1">
           <div class="input-group input-group-sm flex-nowrap">
             <div class="input-group-prepend" style="width: 80px"></div>
             <div class="input-group-prepend">
@@ -201,13 +244,14 @@
               class="form-control"
               aria-label="Username"
               aria-describedby="addon-wrapping"
+              v-model="queryParams.secondStartCountNum"
             />
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">次</span>
             </div>
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping"
-                >&lt; 加油次数 &lt;</span
+                >&lt; 加油次数 &lt;=</span
               >
             </div>
             <input
@@ -215,6 +259,7 @@
               class="form-control"
               aria-label="Username"
               aria-describedby="addon-wrapping"
+              v-model="queryParams.secondEndCountNum"
             />
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">次</span>
@@ -224,12 +269,13 @@
       </div>
 
       <div class="row">
-        <div class="col-sm col-md-9">
+        <div class="col-sm col-md-9 offset-md-1">
           <div class="input-group input-group-sm flex-nowrap">
             <div class="input-group-prepend" style="width: 80px">
               <select
                 class="custom-select custom-select-sm"
                 id="inputGroupSelect01"
+                v-model="queryParams.secondAmtFlag"
               >
                 <option value="1">或者</option>
                 <option value="2">并且</option>
@@ -245,13 +291,14 @@
               class="form-control"
               aria-label="Username"
               aria-describedby="addon-wrapping"
+              v-model.number="queryParams.secondStartAmt"
             />
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">元</span>
             </div>
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">
-                &lt; 加油金额 &lt;
+                &lt; 加油金额 &lt;=
               </span>
             </div>
             <input
@@ -259,6 +306,7 @@
               class="form-control"
               aria-label="Username"
               aria-describedby="addon-wrapping"
+              v-model.number="queryParams.secondEndAmt"
             />
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">元</span>
@@ -267,12 +315,13 @@
         </div>
       </div>
       <div class="row">
-        <div class="col-sm col-md-9">
+        <div class="col-sm col-md-9 offset-md-1">
           <div class="input-group input-group-sm flex-nowrap">
             <div class="input-group-prepend" style="width: 80px">
               <select
                 class="custom-select custom-select-sm"
                 id="inputGroupSelect01"
+                v-model="queryParams.secondLitersFlag"
               >
                 <option value="1">或者</option>
                 <option value="2">并且</option>
@@ -288,13 +337,14 @@
               class="form-control"
               aria-label="Username"
               aria-describedby="addon-wrapping"
+              v-model.number="queryParams.secondStartLiters"
             />
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">元</span>
             </div>
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping"
-                >&lt; 加油升数 &lt;</span
+                >&lt; 加油升数 &lt;=</span
               >
             </div>
             <input
@@ -302,6 +352,7 @@
               class="form-control"
               aria-label="Username"
               aria-describedby="addon-wrapping"
+              v-model.number="queryParams.secondEndLiters"
             />
             <div class="input-group-prepend">
               <span class="input-group-text" id="addon-wrapping">元</span>
@@ -309,10 +360,17 @@
           </div>
         </div>
       </div>
+      <div class="row mb-0 mt-3" v-show="queryParams.secondFlag==1">
+        <div class="col-sm-4 offset-sm-3">
+          <el-button type="info" size="mini" icon="el-icon-arrow-up" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample" @click="toggleQuery">展开查询</el-button>
+        </div>
+        <div class="col-sm-4">
+           <el-button type="primary" size="mini" icon="el-icon-search" @click="getList">立刻查询</el-button>
+        </div>         
+      </div>
     </div>
-
-    <hr />
-    <el-table :data="userList" @selection-change="selectionChange">
+</div>
+    <el-table :data="userList" @selection-change="selectionChange" class="mt-5">
       <af-table-column align="center" prop="id" type="selection" />
       <af-table-column label="姓名" align="center" prop="customerName" />
       <af-table-column label="当前归属的标签" align="center" prop="labelName">
@@ -347,7 +405,7 @@
             icon="el-icon-search"
             class="underline btn24"
             size="mini"
-            @click="orderOpenMethod(scope.row)"
+            @click="getConsume(scope.row)"
             >查询</el-button
           >
         </template>
@@ -360,7 +418,7 @@
             </span>
             <el-dropdown-menu slot="dropdown">
               <el-dropdown-item
-                :command="ele.id"
+                :command="ele.id + '.' + scope.row.phone"
                 v-for="ele in labelList"
                 :key="ele.id"
                 >{{ ele.labelName }}</el-dropdown-item
@@ -396,6 +454,7 @@
       title="打标签"
       :visible.sync="toLabeledDialog"
       width="750px"
+      @close="toLabeledDialogClose"
       append-to-body
     >
       <div v-if="filterSelectedUser.length != 0">
@@ -452,7 +511,7 @@
                   icon="el-icon-circle-plus-outline"
                   class="underline btn24"
                   size="mini"
-                  @click="toClearLabel"
+                  @click="toClearLabel(scope.row)"
                   >删标签</el-button
                 >
               </template>
@@ -482,51 +541,20 @@
     </el-dialog>
 
     <el-dialog
-      title="1235555"
-      visible.sync="false"
+      title="近日订单"
+      :visible.sync="orderDialog"
       width="750px"
       append-to-body
     >
       <div class="app-container">
         <el-table :data="orderList">
-          <af-table-column label="油站" align="center" prop="stationName" />
+          <!-- <af-table-column label="油站" align="center" prop="stationName" /> -->
           <af-table-column label="订单号" align="center" prop="orderNo" />
           <af-table-column label="油品名称" align="center" prop="oilName" />
           <af-table-column label="油品价格" align="center" prop="oilPirce" />
           <af-table-column label="加油升数" align="center" prop="orderLiters" />
           <af-table-column label="实付金额" align="center" prop="amt" />
-          <af-table-column
-            label="消费者昵称"
-            width="120"
-            align="center"
-            prop="consumer"
-          />
-          <af-table-column
-            label="加油员"
-            width="120"
-            align="center"
-            prop="oilPersonnel"
-          />
-          <af-table-column label="加油枪号" align="center" prop="oilGun" />
-          <af-table-column
-            label="油站名称"
-            width="120"
-            align="center"
-            prop="stationName"
-            v-if="false"
-          />
-          <af-table-column
-            label="用户id(消费者)"
-            align="center"
-            prop="consumerId"
-            v-if="false"
-          />
-          <af-table-column
-            label="油站id"
-            align="center"
-            prop="stationId"
-            v-if="false"
-          />
+          <!-- <af-table-column label="加油枪号" align="center" prop="oilGun" /> -->
           <af-table-column
             label="支付完成时间"
             align="center"
@@ -539,25 +567,13 @@
               }}</span>
             </template>
           </af-table-column>
-          <af-table-column
-            label="订单创建时间"
-            align="center"
-            prop="createdDate"
-            width="160px"
-          >
-            <template slot-scope="scope">
-              <span>{{
-                parseTime(scope.row.createdDate, "{y}-{m}-{d} {h}:{i}:{s}")
-              }}</span>
-            </template>
-          </af-table-column>
         </el-table>
         <pagination
-          v-show="totalInfo > 0"
-          :total="totalInfo"
-          :page.sync="query.pageNum"
-          :limit.sync="query.pageSize"
-          @pagination="getList"
+          v-show="orderList.length>0"
+          :total="orderTotal"
+          :page.sync="orderQuery.pageNum"
+          :limit.sync="orderQuery.pageSize"
+          @pagination="getOrderList"
         />
       </div>
     </el-dialog>
@@ -570,6 +586,7 @@ import {
   getLabelList,
   delUserLabel,
   addAndDelCustomerLabel,
+  getConsume
 } from "@/api/label/label";
 
 export default {
@@ -584,12 +601,40 @@ export default {
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        // orderNo: null,
-        // customerNo: null,
-        // customerName: null,
-        // usageType: null,
-        // payType: null,
-        // cardOilsType: null,
+
+        oilName: null,
+        labelId:null,
+        data:null,
+        beginDate: null,
+        endDate: null,
+        
+        startCountNum:null,
+        endCountNum:null,
+        
+        amtFlag:'1',
+        startAmt:null,
+        endAmt:null,
+        
+        litersFlag:'1',
+        startLiters:null,
+        endLiters:null,
+
+
+        secondFlag:0,
+        secondDate:null,
+        secondBeginDate:null,
+        secondEndDate:null,
+
+        secondStartCountNum: null,
+        secondEndCountNum: null,
+
+        secondAmtFlag:'1',
+        secondStartAmt:null,
+        secondEndAmt:null,
+
+        secondLitersFlag:'1',
+        secondStartLiters:null,
+        secondEndLiters:null,
       },
       orderList: [{}],
       orderOpen: false,
@@ -611,7 +656,16 @@ export default {
       toLabeledDialog: false,
       labelList: [],
       currentLabelId: undefined,
+      orderDialog: false,
+      orderTotal:0,
+      orderQuery:{
+        pageNum: 1,
+        pageSize: 10,
+        customerPhone:undefined,
+      },
+      showQuery: false,
     };
+
   },
   computed: {
     filterSelectedUser() {
@@ -624,7 +678,6 @@ export default {
     this.getList();
     getLabelList()
       .then((res) => {
-        console.log(res);
         if (res.code == 200) {
           this.labelList = res.rows;
         } else {
@@ -636,6 +689,28 @@ export default {
       });
   },
   methods: {
+    getConsume(row){
+      this.orderQuery.customerPhone = row.phone;
+      this.getOrderList();
+    },
+    getOrderList(){
+      getConsume(this.orderQuery).then((res)=>{
+        if(res.code == 200){
+          this.orderList = res.rows
+          this.orderTotal = res.total
+          console.log(res);
+          this.orderDialog =  true;
+        }else{
+          throw new Error("");
+        }
+      }).catch(() => {
+        this.msgError("查询近日订单~")
+      })
+    },
+    toLabeledDialogClose() {
+      this.selectedUser = []
+      this.checkedUser = []
+    },
     handleSubmitLable() {
       const addArr = [];
       this.selectedUser.map((ele) => {
@@ -701,15 +776,19 @@ export default {
           this.msgError("删除用户标签状态失败,请刷新后重试~");
         });
     },
-    toClearLabel() {
+    toClearLabel(row) {
+      console.log(row);
+      const delArr = [];
       if (this.checkedUser.length == 0) {
-        this.msgError("请先选择用户后再进行删除标签~");
-        return;
+        this.checkedUser = [row]
+        delArr.push(row.phone);
+        console.log(this.checkedUser)
+      } else {
+        this.checkedUser.map((ele) => {
+          delArr.push(ele.phone);
+        });
       }
-      const delArr = [];
-      this.checkedUser.map((ele) => {
-        delArr.push(ele.phone);
-      });
+
       delUserLabel({ phoneList: delArr })
         .then((res) => {
           if (res.code == 200) {
@@ -757,6 +836,21 @@ export default {
     },
     /** 查询客户电子会员卡充值消费记录列表 */
     getList() {
+      if(this.queryParams.data === null){
+        this.queryParams.beginDate = null
+        this.queryParams.endDate = null
+      }else{
+        this.queryParams.beginDate = this.queryParams.data[0]
+        this.queryParams.endDate = this.queryParams.data[1]
+      }
+      if(this.queryParams.secondDate === null){
+        this.queryParams.secondBeginDate = null
+        this.queryParams.secondEndDate = null
+      }else{
+        this.queryParams.secondBeginDate = this.queryParams.secondDate[0]
+        this.queryParams.secondEndDate = this.queryParams.secondDate[1]
+      }
+      console.log(this.queryParams);
       getLabelUser(this.queryParams).then((response) => {
         this.userList = response.rows;
         this.total = response.total;
@@ -775,16 +869,37 @@ export default {
     orderOpenMethod() {
       this.orderOpen = true;
     },
-    toLabeled(id, e, w, uu) {
-      console.log("---------");
-      console.log(id, e, w, uu);
-      if (this.selectedUser.length == 0) {
-        this.msgError("请先选择用户后再打标签");
+    toLabeled(idAndPhone) {
+      console.log(11111111);
+      const idAndPhoneArr = idAndPhone.match(/\d{1,}/g);
+      const id = idAndPhoneArr[0];
+      const phone = idAndPhoneArr[1];
+
+      if (!id || !phone) {
+        this.msgError("打标签失败,刷新重试~");
         return;
       }
+
+      if (this.selectedUser.length == 0) {
+        const user = this.userList.find((ele) => {
+          return ele.phone == phone;
+        });
+        if (user === undefined) {
+          this.msgError("打标签失败,刷新重试~");
+          return;
+        }
+        this.selectedUser = [user];
+      }
       this.currentLabelId = id;
       this.toLabeledDialog = true;
     },
+    toggleQuery(){
+      if(this.queryParams.secondFlag == 0){
+        this.queryParams.secondFlag = 1;
+      }else{
+        this.queryParams.secondFlag = 0;
+      }
+    }
   },
 };
 </script>