xdd 4 дней назад
Родитель
Сommit
9cf8e38bf5
1 измененных файлов с 121 добавлено и 67 удалено
  1. 121 67
      src/views/live/liveOrder/index.vue

+ 121 - 67
src/views/live/liveOrder/index.vue

@@ -2,7 +2,7 @@
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item label="公司名" prop="companyId">
-        <el-select filterable  v-model="queryParams.companyId" placeholder="请选择公司名"  @change="companyChange" clearable size="small">
+        <el-select filterable v-model="queryParams.companyId" placeholder="请选择公司名" @change="companyChange" clearable size="small">
           <el-option
             v-for="item in companys"
             :key="item.companyId"
@@ -12,8 +12,8 @@
         </el-select>
       </el-form-item>
 
-      <el-form-item >
-        <treeselect style="width: 220px" :clearable="false"  v-model="queryParams.deptId"  :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+      <el-form-item>
+        <treeselect style="width: 220px" :clearable="false" v-model="queryParams.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
       </el-form-item>
       <el-form-item label="订单号" prop="orderCode">
         <el-input
@@ -105,22 +105,35 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="支付时间" prop="payTime">
-        <el-date-picker clearable size="small"
-          v-model="queryParams.payTime"
-          type="date"
-          value-format="yyyy-MM-dd hh:mm:ss"
-          placeholder="选择支付时间">
-        </el-date-picker>
+
+      <!-- 修改支付时间为范围选择 -->
+      <el-form-item label="支付时间" prop="payTimeRange">
+        <el-date-picker
+          v-model="payTimeRange"
+          type="daterange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          value-format="yyyy-MM-dd"
+          size="small"
+          @change="handlePayTimeChange"
+        />
       </el-form-item>
-      <el-form-item label="完成时间" prop="finishTime">
-        <el-date-picker clearable size="small"
-          v-model="queryParams.finishTime"
-          type="date"
+
+      <!-- 修改完成时间为范围选择 -->
+      <el-form-item label="完成时间" prop="finishTimeRange">
+        <el-date-picker
+          v-model="finishTimeRange"
+          type="daterange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
           value-format="yyyy-MM-dd"
-          placeholder="选择完成时间">
-        </el-date-picker>
+          size="small"
+          @change="handleFinishTimeChange"
+        />
       </el-form-item>
+
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -128,7 +141,6 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-
       <el-col :span="1.5">
         <el-button
           type="warning"
@@ -142,13 +154,14 @@
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
+
     <el-tabs type="card" v-model="actName" @tab-click="handleClickX">
       <el-tab-pane label="全部订单" name="10"></el-tab-pane>
       <el-tab-pane v-for="(item,index) in orderOptions" :label="item.dictLabel" :name="item.dictValue"></el-tab-pane>
     </el-tabs>
+
     <el-table border v-loading="loading" :data="liveOrderList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-<!--      <el-table-column label="订单ID" align="center" prop="orderId"/>-->
       <el-table-column label="订单号" align="center" prop="orderCode" />
       <el-table-column label="所属公司" align="center" prop="companyName" />
       <el-table-column label="所属员工" align="center" prop="companyUserName" />
@@ -163,23 +176,19 @@
       <el-table-column label="物流单号" align="center" prop="deliverySn" />
       <el-table-column label="物流状态" align="center" prop="deliveryStatus">
         <template slot-scope="item">
-        <dict-tag :options="deliveryStatusOptions" :value="item.row.deliveryStatus"/>
-      </template></el-table-column>
+          <dict-tag :options="deliveryStatusOptions" :value="item.row.deliveryStatus"/>
+        </template>
+      </el-table-column>
       <el-table-column label="物流跟踪状态" align="center" prop="deliveryType">
         <template slot-scope="item">
           <dict-tag :options="deliveryTypeOptions" :value="item.row.deliveryType"/>
         </template>
-        </el-table-column>
+      </el-table-column>
       <el-table-column label="支付时间" align="center" prop="payTime" width="180">
         <template slot-scope="scope">
           <span>{{ scope.row.payTime }}</span>
         </template>
       </el-table-column>
-<!--      <el-table-column label="完成时间" align="center" prop="finishTime" width="180">-->
-<!--        <template slot-scope="scope">-->
-<!--          <span>{{ parseTime(scope.row.finishTime, '{y}-{m}-{d}') }}</span>-->
-<!--        </template>-->
-<!--      </el-table-column>-->
       <el-table-column label="状态" align="center" prop="status" :formatter="orderStatusFormatter"/>
       <el-table-column label="备注" align="center" prop="remark" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -202,13 +211,13 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
+
     <el-drawer
       :with-header="false"
       size="75%"
       :title="show.title" :visible.sync="show.open">
-      <liveOrderDetails  ref="Details" />
+      <liveOrderDetails ref="Details" />
     </el-drawer>
-
   </div>
 </template>
 
@@ -226,7 +235,7 @@ export default {
   components: {Treeselect, liveOrderDetails },
   data() {
     return {
-      //字典
+      // 字典
       orderStatusOptions: [],
       // 遮罩层
       loading: true,
@@ -244,8 +253,13 @@ export default {
       total: 0,
       // 订单表格数据
       liveOrderList: [],
-      deliveryStatusOptions:[],
-      deliveryTypeOptions:[],
+      deliveryStatusOptions: [],
+      deliveryTypeOptions: [],
+
+      // 支付时间范围选择器绑定的值
+      payTimeRange: [],
+      // 完成时间范围选择器绑定的值
+      finishTimeRange: [],
 
       // 查询参数
       queryParams: {
@@ -262,23 +276,26 @@ export default {
         deliveryCode: null,
         deliveryName: null,
         deliverySn: null,
-        payTime: null,
-        finishTime: null,
+        // 移除单个时间字段,改为范围字段
+        payStartTime: null,
+        payEndTime: null,
+        finishTimeStart: null,
+        finishTimeEnd: null,
         status: null,
       },
-      orderOptions:[],
-      actName:"10",
-      show:{
-        title:"订单详情",
-        open:false,
+      orderOptions: [],
+      actName: "10",
+      show: {
+        title: "订单详情",
+        open: false,
       },
     };
   },
   created() {
     getCompanyList().then(response => {
       this.companys = response.data;
-      if(this.companys!=null&&this.companys.length>0){
-        this.companyId=this.companys[0].companyId;
+      if(this.companys != null && this.companys.length > 0){
+        this.companyId = this.companys[0].companyId;
         this.getTreeselect();
       }
     });
@@ -290,7 +307,6 @@ export default {
     this.getDicts("sys_order_status").then(response => {
       this.orderOptions = response.data;
     });
-
     this.getDicts("store_order_delivery_status").then(response => {
       this.deliveryStatusOptions = response.data;
     });
@@ -300,23 +316,48 @@ export default {
   },
   methods: {
     parseTime,
+
+    // 支付时间范围选择变化处理
+    handlePayTimeChange(value) {
+      if (value && value.length === 2) {
+        this.queryParams.payStartTime = value[0] + ' 00:00:00';
+        this.queryParams.payEndTime = value[1] + ' 23:59:59';
+      } else {
+        this.queryParams.payStartTime = null;
+        this.queryParams.payEndTime = null;
+      }
+    },
+
+    // 完成时间范围选择变化处理
+    handleFinishTimeChange(value) {
+      if (value && value.length === 2) {
+        this.queryParams.finishTimeStart = value[0] + ' 00:00:00';
+        this.queryParams.finishTimeEnd = value[1] + ' 23:59:59';
+      } else {
+        this.queryParams.finishTimeStart = null;
+        this.queryParams.finishTimeEnd = null;
+      }
+    },
+
     // 查看详情
     handledetails(row){
-      this.show.open=true;
+      this.show.open = true;
       setTimeout(() => {
-        this.$refs.Details.getDetails(row.orderId,row.nickName,row.storeName);
+        this.$refs.Details.getDetails(row.orderId, row.nickName, row.storeName);
       }, 1);
     },
+
     // 订单tab切换
-    handleClickX(tab, event) {
+    handleClickX(tab) {
       this.orderStatus = tab.name;
-      if(tab.name=="10"){
-        this.queryParams.status=null;
-      }else{
-        this.queryParams.status=tab.name;
+      if(tab.name == "10"){
+        this.queryParams.status = null;
+      } else {
+        this.queryParams.status = tab.name;
       }
       this.handleQuery();
     },
+
     /** 查询订单列表 */
     getList() {
       this.loading = true;
@@ -326,58 +367,71 @@ export default {
         this.loading = false;
       });
     },
+
     orderStatusFormatter(row, column) {
       return this.selectDictLabel(this.orderStatusOptions, row.status);
     },
+
     /** 搜索按钮操作 */
     handleQuery() {
       this.queryParams.pageNum = 1;
       this.getList();
     },
+
     /** 重置按钮操作 */
     resetQuery() {
       this.resetForm("queryForm");
+      // 同时清空范围选择器的值
+      this.payTimeRange = [];
+      this.finishTimeRange = [];
+      // 清空时间范围参数
+      this.queryParams.payStartTime = null;
+      this.queryParams.payEndTime = null;
+      this.queryParams.finishTimeStart = null;
+      this.queryParams.finishTimeEnd = null;
       this.handleQuery();
     },
+
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.orderId)
-      this.single = selection.length!==1
+      this.single = selection.length !== 1
       this.multiple = !selection.length
     },
+
     /** 导出按钮操作 */
     handleExport() {
       const queryParams = this.queryParams;
       this.$confirm('是否确认导出所有订单数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportLiveOrder(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        this.exportLoading = true;
+        return exportLiveOrder(queryParams);
+      }).then(response => {
+        this.download(response.msg);
+        this.exportLoading = false;
+      }).catch(() => {});
     },
+
     getTreeselect() {
-      var param={companyId:this.companyId}
+      var param = {companyId: this.companyId}
       treeselect(param).then((response) => {
         this.deptOptions = response.data;
-        console.log(this.deptOptions)
-        if(response.data!=null&&response.data.length>0){
-          //this.queryParams.deptId=response.data[0].id;
+        if(response.data != null && response.data.length > 0){
+          // this.queryParams.deptId = response.data[0].id;
         }
       });
     },
+
     companyChange(val){
-      console.log(val);
-      this.companyId=val;
+      this.companyId = val;
       this.getTreeselect();
     },
+
     currDeptChange(val){
-      console.log(val)
-      this.queryParams.deptId=val;
+      this.queryParams.deptId = val;
       this.getList();
     },
   }