Explorar el Código

Merge branch 'master' of https://gitee.com/vansfa/rt_adminUI

wansfa hace 1 año
padre
commit
bbc5955566

+ 9 - 0
src/api/oms/apply.js

@@ -60,3 +60,12 @@ export function listProduct(query) {
     params: query
   })
 }
+
+// 修改采购申请单状态
+export function updateApplyStatus(data) {
+  return request({
+    url: '/oms/apply/status',
+    method: 'put',
+    data: data
+  })
+}

+ 53 - 0
src/api/oms/purchaseOrder.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询oms采购单列表
+export function listPurchaseOrder(query) {
+  return request({
+    url: '/oms/purchaseOrder/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询oms采购单详细
+export function getPurchaseOrder(id) {
+  return request({
+    url: '/oms/purchaseOrder/' + id,
+    method: 'get'
+  })
+}
+
+// 新增oms采购单
+export function addPurchaseOrder(data) {
+  return request({
+    url: '/oms/purchaseOrder',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改oms采购单
+export function updatePurchaseOrder(data) {
+  return request({
+    url: '/oms/purchaseOrder',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除oms采购单
+export function delPurchaseOrder(id) {
+  return request({
+    url: '/oms/purchaseOrder/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出oms采购单
+export function exportPurchaseOrder(query) {
+  return request({
+    url: '/oms/purchaseOrder/export',
+    method: 'get',
+    params: query
+  })
+}

+ 8 - 0
src/api/oms/supplier.js

@@ -50,4 +50,12 @@ export function exportSupplier(query) {
     method: 'get',
     params: query
   })
+}
+
+export function listSupplierByStatus(query) {
+  return request({
+    url: '/oms/supplier/byStatus',
+    method: 'get',
+    params: query
+  })
 }

+ 8 - 0
src/api/oms/warehouse.js

@@ -59,4 +59,12 @@ export function exportWarehouse(query) {
     method: 'get',
     params: query
   })
+}
+
+export function listWarehouseName(query) {
+  return request({
+    url: '/oms/warehouse/name',
+    method: 'get',
+    params: query
+  })
 }

+ 17 - 0
src/api/store/storeOrder.js

@@ -8,6 +8,14 @@ export function listStoreOrder(query) {
     params: query
   })
 }
+// 查询推广订单列表
+export function listPromotionOrder(query) {
+  return request({
+    url: '/store/storeOrder/Plist',
+    method: 'get',
+    params: query
+  })
+}
 export function getCustomerOrderList(query) {
   return request({
     url: '/store/storeOrder/getCustomerOrderList',
@@ -71,6 +79,15 @@ export function exportStoreOrder(query) {
   })
 }
 
+// 导出付尾款订单
+export function exportStorePayRemainOrder(query) {
+  return request({
+    url: '/store/storeOrder/payRemainExport',
+    method: 'get',
+    params: query
+  })
+}
+
 // 导出订单
 export function exportStoreOrderItems(query) {
   return request({

+ 53 - 0
src/api/store/storeProductYuyue.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询商品预约列表
+export function listStoreProductYuyue(query) {
+  return request({
+    url: '/store/storeProductYuyue/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询商品预约详细
+export function getStoreProductYuyue(id) {
+  return request({
+    url: '/store/storeProductYuyue/' + id,
+    method: 'get'
+  })
+}
+
+// 新增商品预约
+export function addStoreProductYuyue(data) {
+  return request({
+    url: '/store/storeProductYuyue',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改商品预约
+export function updateStoreProductYuyue(data) {
+  return request({
+    url: '/store/storeProductYuyue',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除商品预约
+export function delStoreProductYuyue(id) {
+  return request({
+    url: '/store/storeProductYuyue/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出商品预约
+export function exportStoreProductYuyue(query) {
+  return request({
+    url: '/store/storeProductYuyue/export',
+    method: 'get',
+    params: query
+  })
+}

+ 82 - 5
src/views/company/companyVoiceLogs/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
       <el-form-item label="公司名" prop="companyId">
           <el-select filterable style="width: 220px" v-model="queryParams.companyId" placeholder="请选择公司名" @change="companyChange" clearable size="small">
               <el-option
@@ -45,9 +45,51 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="状态" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择" clearable size="small">
+          <el-option
+            v-for="dict in statusOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="来源渠道" prop="source">
+        <el-select v-model="queryParams.source" placeholder="请选择" clearable size="small">
+          <el-option
+            v-for="dict in sourceOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="时长" prop="times">
+        <el-select v-model="queryParams.times" placeholder="请选择" clearable size="small">
+          <el-option
+            v-for="dict in timesOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="开始时间" prop="startTime">
          <el-date-picker v-model="dateRange" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
       </el-form-item>
+
+      <el-form-item label="客户创建时间" prop="createTime">
+        <el-date-picker
+          style="width:205.4px"
+          clearable size="small"
+          v-model="createTimeRange"
+          type="daterange"
+          value-format="yyyy-MM-dd"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -90,9 +132,9 @@
       </el-table-column>
       <el-table-column label="主叫" align="center" prop="callerPhone" />
       <el-table-column label="被叫" align="center" prop="calleePhone" />
-      <el-table-column label="时长(秒)" align="center" prop="times" width="180">
+      <el-table-column label="时长" align="center" prop="times" width="180">
         <template slot-scope="scope">
-          <span v-if="scope.row.voiceUrl!=null">{{ scope.row.times}} </span>
+          <span v-if="scope.row.voiceUrl!=null">{{ formatTime(scope.row.times)}} </span>
         </template>
       </el-table-column>
       <el-table-column label="计费时长(分)" align="center" prop="billingTime" width="180">
@@ -141,6 +183,7 @@ export default {
   },
   data() {
     return {
+      timesOptions:[],
       statusOptions:[],
       companys:[],
       deptOptions:[],
@@ -161,6 +204,8 @@ export default {
       // 弹出层标题
       title: "",
       dateRange: [],
+      createTimeRange:[],
+      sourceOptions:[],
       // 是否显示弹出层
       open: false,
       // 查询参数
@@ -190,9 +235,15 @@ export default {
     };
   },
   created() {
+    this.getDicts("crm_customer_source").then((response) => {
+      this.sourceOptions = response.data;
+    });
     this.getDicts("company_voice_logs_status").then((response) => {
       this.statusOptions = response.data;
     });
+    this.getDicts("company_voice_logs_times").then((response) => {
+      this.timesOptions = response.data;
+    });
     getCompanyList().then(response => {
        this.companys = response.data;
        if(this.companys!=null&&this.companys.length>0){
@@ -203,11 +254,37 @@ export default {
     this.getList();
   },
   methods: {
+    formatTime(value) {
+      const hours = Math.floor(value / 3600);
+      const minutes = Math.floor((value % 3600) / 60);
+      const seconds = value % 60;
+      if(hours == 0 && minutes == 0 ){
+        return `${seconds}秒`;
+      }else if(hours == 0 && minutes != 0 ){
+        return `${minutes}分钟${seconds}秒`;
+      }else{
+        return `${hours}小时${minutes}分钟${seconds}秒`;
+      }
+      
+    },
     /** 查询通话记录列表 */
     getList() {
       this.loading = true;
-      listCompanyVoiceLogs(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-        this.companyVoiceLogsList = response.rows;
+      if(this.createTimeRange!=null&&this.createTimeRange.length==2){
+        this.queryParams.createTimeRange=this.createTimeRange[0]+"--"+this.createTimeRange[1]
+      }
+      else{
+        this.queryParams.createTimeRange=null;
+      }
+      if(this.dateRange!=null&&this.dateRange.length==2){
+        this.queryParams.dateRange=this.dateRange[0]+"--"+this.dateRange[1]
+      }
+      else{
+        this.queryParams.dateRangee=null;
+      }
+
+      listCompanyVoiceLogs(this.queryParams).then(response => {
+        this.companyVoiceLogsList = response.rows;       
         this.total = response.total;
         this.loading = false;
       });

+ 3 - 3
src/views/crm/components/assignCompany.vue

@@ -21,17 +21,17 @@
                     <el-table-column label="ID" align="center" prop="companyId" />
                     <el-table-column width="200px" label="公司名称" align="center" prop="companyName" />
                     <el-table-column label="公司联系人" align="center" prop="linkName" />
-                    <el-table-column label="公司电话" align="center" prop="companyMobile" />
+                    <el-table-column label="公司电话" align="center" prop="companyMobile" v-if="false"/>
                     <!-- <el-table-column label="公司地址" align="center" prop="companyAddress" width="120" /> -->
                     <el-table-column label="今日分配数" align="center" prop="nowDayCustomerCount"   />
-                    <el-table-column label="分配数量" align="center"  prop="count" width="200px" >
+                    <el-table-column label="分配数量" align="center"  prop="count" width="150px" >
                         <template slot-scope="scope">
                         <div>
                             <el-input-number ref="stepTxtNum" :min="0" v-model="scope.row.count"  @change="changeVal(scope.row)"   size="mini"></el-input-number>
                         </div>
                     </template>
                     </el-table-column>
-                    <el-table-column label="操作"   align="center" fixed="right" width="120px" class-name="small-padding fixed-width">
+                    <el-table-column label="操作"   align="center"  class-name="small-padding fixed-width">
                     <template slot-scope="scope">
                         <el-button
                         size="mini"

+ 7 - 0
src/views/crm/customer/index.vue

@@ -84,6 +84,12 @@
               />
         </el-select>
       </el-form-item>
+      <el-form-item label="是否下单" prop="isBuy">
+            <el-select style="width:220px" filterable v-model="queryParams.isBuy" placeholder="请选择是否下单" clearable size="small">
+              <el-option key="1"  label="已下单" value="1" />
+              <el-option key="0"  label="未下单" value="0" />
+            </el-select>
+          </el-form-item>
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -167,6 +173,7 @@
       </el-table-column>
 
       <el-table-column label="认领人" align="center" prop="companyUserNickName" />
+      <el-table-column label="领取时间" align="center" prop="startTime" />
       <el-table-column label="创建时间" align="center" prop="createTime" />
       <el-table-column label="最后一次跟进时间" align="center" prop="receiveTime" width="180">
       </el-table-column>

+ 43 - 38
src/views/oms/apply/index.vue

@@ -20,7 +20,7 @@
         />
       </el-form-item>
       <el-form-item label="要求到货时间" prop="expectedTime">
-        <el-date-picker clearable size="small" style="width: 200px"
+        <el-date-picker clearable size="small" style="width: 215px"
           v-model="queryParams.expectedTime"
           type="date"
           value-format="yyyy-MM-dd"
@@ -38,7 +38,7 @@
         </el-select>
       </el-form-item>
       <el-form-item label="创建时间" prop="createTime">
-        <el-date-picker clearable size="small" style="width: 200px"
+        <el-date-picker clearable size="small" style="width: 215px"
           v-model="queryParams.createTime"
           type="date"
           value-format="yyyy-MM-dd"
@@ -63,7 +63,7 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item>
+      <el-form-item style="margin-left: 47px;">
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
       </el-form-item>
@@ -141,6 +141,7 @@
       </el-table-column>
       <el-table-column label="已下采购数量" align="center" prop="alreadyNum" />
       <el-table-column label="未下采购数量" align="center" prop="waitNum" />
+      <el-table-column label="创建人" align="center" prop="createBy" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -248,6 +249,11 @@
             <el-input v-model.number="scope.row.planNum" type="number"></el-input>
           </template>          
         </el-table-column>
+        <el-table-column label="已下采购" align="center">
+          <template slot-scope="scope">
+            <el-input v-model.number="scope.row.alreadyNum" type="number"></el-input>
+          </template>          
+        </el-table-column>
         <el-table-column label="操作">
             <template slot-scope="scope">
               <el-button type="danger" icon="el-icon-delete" @click="removeSelected(scope.$index)">删除</el-button>
@@ -350,13 +356,13 @@
     <el-drawer size="60%" :title="show.title" :visible.sync="show.open">
       <div>
         <div style="margin-left:20px ">
-          <el-card shadow="never" style="margin-top: 15px">
+          <el-card shadow="never" style="margin: 15px 0 20px 0">
             <div class="operate-container" >
               <span style="margin-left: 20px" class="color-danger">申请单状态:
                 <el-tag prop="status" v-for="(item, index) in statusOptions"    v-if="form.status==item.dictValue">{{item.dictLabel}}</el-tag>
               </span>
             </div>
-            <el-descriptions :column="3" border style="margin:20px 20px ">
+            <el-descriptions :column="3" border style="margin:20px 0 0 0 ">
             <el-descriptions-item label="申请数量"  >
               {{ form.planNum }}
             </el-descriptions-item>
@@ -369,26 +375,6 @@
             </el-descriptions>            
           </el-card>
         </div>
-        <el-descriptions :column="3" border style="margin:20px 20px ">
-            <el-descriptions-item label="采购申请单号"  >
-              {{ form.code }}
-            </el-descriptions-item>
-            <el-descriptions-item label="要求收货仓库" >
-                <el-tag prop="status" v-for="(item, index) in statusOptions"    v-if="form.status==item.dictValue">{{item.dictLabel}}</el-tag>
-            </el-descriptions-item>
-            <el-descriptions-item label="要求到货时间"  >
-              {{ form.expectedTime }}
-            </el-descriptions-item>
-            <el-descriptions-item label="创建时间"  >
-              {{ form.createTime }}
-            </el-descriptions-item>
-            <el-descriptions-item label="审核时间"  >
-              {{ form.auditTime }}
-            </el-descriptions-item>
-            <el-descriptions-item label="备注"  >              
-              {{form.mark}}             
-            </el-descriptions-item>
-      </el-descriptions>
       </div>
       <div>
         <div style="margin-left:20px ">
@@ -448,7 +434,7 @@
 </template>
 
 <script>
-import { listApply, getApply, delApply, addApply, updateApply, exportApply ,listProduct,listProducts} from "@/api/oms/apply";
+import { listApply, getApply, delApply, addApply, updateApply, exportApply ,listProduct,updateApplyStatus} from "@/api/oms/apply";
 import {listWarehouse} from "@/api/oms/warehouse";
 export default {
   name: "Apply",
@@ -479,6 +465,7 @@ export default {
       productOptions:[],
       selectProducts:[],
       selection:[],
+      selectStatus:{},
       show:{
         open:false,
         title:"采购申请单请详情"
@@ -613,7 +600,7 @@ export default {
     },
     handleDetails(row){
       this.show.open=true;
-      const id = row.id || this.idsd
+      const id = row.id || this.ids
       getApply(id).then(response => {
         this.form = response.data;
         this.selectProducts = response.selectProucts;
@@ -650,16 +637,33 @@ export default {
       this.open = true;
       this.title = "添加采购申请单";
     },
-    // handleUpdateStatus(){
-    
-    // updateApply(this.form).then(response => {
-    //   if (response.code === 200) {
-    //       this.msgSuccess("修改成功");
-    //       this.open = false;
-    //       this.getList();
-    //       }
-    //   });      
-    // },
+    //审核按钮
+    handleUpdateStatus(row){
+    this.selectStatus.id = row.id;
+    if(row.status == 0){
+      this.selectStatus.status = 1;
+    };
+     if(row.status == 1){
+      this.selectStatus.status = 2;
+    };
+    if(row.status == 2){
+      this.selectStatus.status = 3;
+    };
+    const selectStatus = this.selectStatus;
+    const code = row.code;
+    this.$confirm('是否确认审核采购申请单号为"' + code + '"的申请单?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return updateApplyStatus(selectStatus)
+        }).then(response => {
+        if (response.code === 200) {
+          this.msgSuccess("修改成功");
+          this.getList();
+          }
+      }).catch(function() {});      
+    },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
@@ -677,7 +681,8 @@ export default {
       const jsonData = JSON.stringify(data);
       this.form.products = jsonData;
       this.form.planNum = this.selectProducts.reduce((total, item) => total + item.planNum, 0);
-      this.form.waitNum = this.selectProducts.reduce((total, item) => total + item.waitNum, 0);    
+      this.form.alreadyNum = this.selectProducts.reduce((total, item) => total + item.alreadyNum, 0);
+      this.form.waitNum = this.form.planNum - this.form.alreadyNum;
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.id != null) {

+ 24 - 0
src/views/oms/product/index.vue

@@ -283,6 +283,26 @@
                     <el-input type="text" v-model="scope.row.otPrice"/>
                   </template>
                 </el-table-column>
+                <el-table-column prop="activityPrice" label="营销价" align="center">
+                  <template slot-scope="scope">
+                    <el-input type="text" v-model="scope.row.activityPrice"/>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="marketPrice" label="市场价" align="center">
+                  <template slot-scope="scope">
+                    <el-input type="text" v-model="scope.row.marketPrice"/>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="clearingPrice" label="结算价" align="center">
+                  <template slot-scope="scope">
+                    <el-input type="text" v-model="scope.row.clearingPrice"/>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="innerPrice" label="内部分摊价" align="center">
+                  <template slot-scope="scope">
+                    <el-input type="text" v-model="scope.row.innerPrice"/>
+                  </template>
+                </el-table-column>
                 <el-table-column prop="barCode" label="商品编号" width="130px" align="center">
                   <template slot-scope="scope">
                     <el-input type="text" v-model="scope.row.barCode"/>
@@ -698,6 +718,10 @@ export default {
               price: 0,
               cost: 0,
               otPrice: 0,
+              activityPrice: 0,
+              marketPrice: 0,
+              clearingPrice: 0,
+              innerPrice: 0,
               barCode: '',
               weight: 0,
               volume: 0

+ 917 - 0
src/views/oms/purchaseOrder/index.vue

@@ -0,0 +1,917 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="采购单号" prop="code">
+        <el-input
+          v-model="queryParams.code"
+          placeholder="请输入采购单号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="供应商" prop="supplierName">
+        <el-input
+          v-model="queryParams.supplierName"
+          placeholder="请输入供应商"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="采购类型" prop="type">
+        <el-select v-model="queryParams.type" placeholder="请选择" clearable size="small">
+          <el-option
+            v-for="dict in purchaseTypeOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="收货仓库" prop="warehouseName">
+        <el-select v-model="queryParams.warehouseNeme" placeholder="请选择" clearable size="small">
+          <el-option v-for="item in warehouseOptions" 
+                    :label="item.warehouseName"
+                    :value="item.warehouseName"/>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="采购单状态" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择" clearable size="small">
+          <el-option
+            v-for="dict in statusOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="入库状态" prop="stockinStatus">
+        <el-select v-model="queryParams.stockinStatus" placeholder="请选择" clearable size="small">
+          <el-option
+            v-for="dict in stockinStatusOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createTime">
+        <el-date-picker clearable size="small" style="width: 215px"
+          v-model="queryParams.createTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="预计到货时间" prop="expectedTime">
+        <el-date-picker clearable size="small" style="width: 215px"
+          v-model="queryParams.expectedTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择预计到货时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="完成日期" prop="finishTime">
+        <el-date-picker clearable size="small" style="width: 215px"
+          v-model="queryParams.finishTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择完成时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="采购员" prop="purchaseUserId">
+        <el-input
+          v-model="queryParams.purchaseUserId"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item style="margin-left: 30px;">
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['oms:purchaseOrder:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['oms:purchaseOrder:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['oms:purchaseOrder:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['oms:purchaseOrder:export']"
+        >导出</el-button>
+      </el-col>
+	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="purchaseOrderList" @selection-change="handleSelectionChange">
+      <el-table-column label="序号"  width="55" type="index" align="center" />
+      <el-table-column type="selection" width="55" align="center" />     
+      <el-table-column label="id" prop="id" v-if="false"></el-table-column>
+      <el-table-column label="采购单号" align="center" prop="code" />
+      <el-table-column label="采购类型" align="center" prop="type" >
+          <template slot-scope="scope">
+              <el-tag prop="type" v-for="(item, index) in purchaseTypeOptions"    v-if="scope.row.type==item.dictValue">{{item.dictLabel}}</el-tag>
+          </template>
+      </el-table-column>
+      <el-table-column label="供应商id" align="center" prop="supplierId" v-if="false" />
+      <el-table-column label="供应商编码" align="center" prop="supplierCode" />
+      <el-table-column label="供应商名称" align="center" prop="supplierName" />
+      <el-table-column label="要求收货仓库id" align="center" prop="warehouseId" v-if="false"/>
+      <el-table-column label="收货仓库" align="center" prop="warehouseName" />
+      <el-table-column label="采购单状态" align="center" prop="status" >
+          <template slot-scope="scope">
+              <el-tag prop="status" v-for="(item, index) in statusOptions"    v-if="scope.row.status==item.dictValue">{{item.dictLabel}}</el-tag>
+          </template>
+      </el-table-column>
+      <el-table-column label="入库状态" align="center" prop="stockinStatus" >
+          <template slot-scope="scope">
+              <el-tag prop="stockinStatus" v-for="(item, index) in stockinStatusOptions"    v-if="scope.row.stockinStatus==item.dictValue">{{item.dictLabel}}</el-tag>
+          </template>
+      </el-table-column>
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime)}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="预计到货时间" align="center" prop="expectedTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.expectedTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="结算方式" align="center" prop="paymentType" />
+      <el-table-column label="采购数量" align="center" prop="planNum" />
+      <el-table-column label="总金额" align="center" prop="amount" />
+      <el-table-column label="入库数量" align="center" prop="alreadyNum" />
+      <el-table-column label="未入库数量" align="center" prop="waitNum" />
+      <el-table-column label="停止等待数量" align="center" prop="cancelNum" />
+      <el-table-column label="是否含包装" width="100" align="center" prop="packagingFlag" >
+          <template slot-scope="scope">
+              <el-tag prop="packagingFlag" v-for="(item, index) in packagingFlagOptions"    v-if="scope.row.packagingFlag==item.dictValue">{{item.dictLabel}}</el-tag>
+          </template>
+      </el-table-column>
+      <el-table-column label="是否包邮" width="100" align="center" prop="shippingFlag" >
+          <template slot-scope="scope">
+              <el-tag prop="shippingFlag" v-for="(item, index) in shippingFlagOptions"    v-if="scope.row.shippingFlag==item.dictValue">{{item.dictLabel}}</el-tag>
+          </template>
+      </el-table-column>
+      <el-table-column label="物流id" align="center" prop="logisticsId" v-if="false"/>
+      <el-table-column label="物流公司" align="center" prop="logisticsBn" />
+      <el-table-column label="运单号" align="center" prop="logisticsNo" />
+      <el-table-column label="运费" align="center" prop="logisticsAmount" />
+      <el-table-column label="溢装比例" align="center" prop="overfillRate" >
+        <template v-slot="scope">
+          {{ scope.row.overfillRate }} %
+        </template>
+      </el-table-column>
+      <el-table-column label="采购员ID" align="center" prop="purchaseUserId" />
+      <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column label="创建人" align="center" prop="createBy" />
+      <el-table-column label="完成时间" align="center" prop="finishTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.finishTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="审核时间" align="center" prop="auditTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.auditTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="采购申请单id" align="center" prop="applyId" v-if="false"/>
+      <el-table-column label="来源单号" align="center" prop="applyCode" />
+      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['oms:purchaseOrder:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['oms:purchaseOrder:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改oms采购单对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body>
+      <div style="margin:10px 0 10px 10px">
+        <span class="font-small" >采购单基本信息</span>
+      </div>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="采购单号" prop="code">
+              <el-input v-model="form.code" placeholder="自动生成" disabled />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="供应商" prop="supplierName">
+              <el-select v-model="form.supplierName" @change="selectSupplier">
+                <el-option v-for="item in supplierOptions" 
+                    :label="item.name"
+                    :value="item.name"/>            
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="采购类型" prop="type">
+              <el-select v-model="form.type" placeholder="请选择">
+                <el-option
+                v-for="dict in purchaseTypeOptions"
+                :key="dict.dictValue"
+                :label="dict.dictLabel"
+                :value="parseInt(dict.dictValue)"
+              ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="采购员" prop="purchaseUserId">
+              <el-input v-model="form.purchaseUserId" placeholder="请输入采购员ID" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="收货仓库" prop="warehouseName" >
+              <el-select v-model="form.warehouseName"  @change="selectWarehouse">
+                <el-option v-for="item in warehouseOptions" 
+                    :label="item.warehouseName"
+                    :value="item.warehouseName"/>            
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="结算方式" prop="paymentType">
+              <el-input v-model="form.paymentType" placeholder="请输入" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="预计到货时间" prop="expectedTime">
+              <el-date-picker clearable size="small" style="width: 185px"
+                v-model="form.expectedTime"
+                type="date"
+                value-format="yyyy-MM-dd"
+                placeholder="选择预计到货时间">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="溢装比例" prop="overfillRate">
+              <el-input v-model="form.overfillRate" placeholder="请输入" >
+                <template slot="append">%</template>
+              </el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="发票类型" prop="invoiceType">
+              <el-select v-model="form.invoiceType" placeholder="请选择">
+                <el-option
+                  v-for="dict in invoiceTypeOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="parseInt(dict.dictValue)"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="是否含包装" prop="packagingFlag">
+              <el-radio-group v-model="form.packagingFlag">
+                <el-radio :label="item.dictValue" v-for="item in packagingFlagOptions" >{{item.dictLabel}}</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="是否包邮" prop="shippingFlag">
+              <el-radio-group v-model="form.shippingFlag">
+                <el-radio :label="item.dictValue" v-for="item in shippingFlagOptions" >{{item.dictLabel}}</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">            
+            <el-form-item label="运费" prop="logisticsAmount">
+              <el-input v-model="form.logisticsAmount" placeholder="请输入" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="物流公司" prop="name" >
+              <el-select v-model="form.logisticsBn">
+                <el-option v-for="item in expressOptions" 
+                    :label="item.name"
+                    :value="item.name"/>            
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="物流单号" prop="logisticsNo">
+              <el-input v-model="form.logisticsNo" placeholder="请输入" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="收货人" prop="userName">
+              <el-input v-model="form.userName" placeholder="请输入" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="收货手机" prop="userPhone">
+              <el-input v-model="form.userPhone" placeholder="请输入" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        
+            <el-form-item  label-width="100px" label="所属省市区" prop="cityIds">
+              <el-cascader
+              ref="citySelect"
+              v-model="cityIds"
+              :options="citys"
+              @change="handleCityChange"></el-cascader>
+            </el-form-item>
+          
+          
+            <el-form-item  prop="address">
+              <el-input v-model="form.address" placeholder="请输入详情地址" />
+            </el-form-item>
+        
+        
+            <el-form-item label="备注" prop="remark">
+              <el-input v-model="form.remark" type="textarea" :rows="2" placeholder="请输入" />
+            </el-form-item>
+          
+        <el-form-item label="物流id" prop="logisticsId" v-if="false">
+          <el-input v-model="form.logisticsId" placeholder="请输入物流id" />
+        </el-form-item>
+        <el-form-item label="采购申请单id" prop="applyId" v-if="false">
+          <el-input v-model="form.applyId" placeholder="请输入采购申请单id" />
+        </el-form-item>
+        <el-form-item label="供应商id" prop="supplierId" v-if="false">
+          <el-input v-model="form.supplierId" placeholder="请输入供应商id" />
+        </el-form-item>
+        <el-form-item label="要求收货仓库id" prop="warehouseId" v-if="false">
+          <el-input v-model="form.warehouseId" placeholder="请输入要求收货仓库id" />
+        </el-form-item>
+        
+        <el-form-item label="采购商品信息" prop="products" v-if="false">
+          <el-input v-model="form.products" placeholder="请输入采购商品信息" />
+        </el-form-item>
+        <el-form-item label="总金额" prop="amount" v-if="false">
+          <el-input v-model="form.amount" placeholder="请输入总金额" />
+        </el-form-item>
+        
+        <el-form-item label="已下采购数量/入库数量" prop="alreadyNum" v-if="false">
+          <el-input v-model="form.alreadyNum" placeholder="请输入已下采购数量/入库数量" />
+        </el-form-item>
+        <el-form-item label="未下采购数量/未入库数量" prop="waitNum" v-if="false">
+          <el-input v-model="form.waitNum" placeholder="请输入未下采购数量/未入库数量" />
+        </el-form-item>
+        <el-form-item label="采购数量" prop="planNum" v-if="false">
+          <el-input v-model="form.planNum" placeholder="请输入采购数量" />
+        </el-form-item>
+      </el-form>
+      <div style="margin:10px 0 10px 10px">
+        <span class="font-small" >商品信息</span>
+        <el-button style="margin-left: 20px;" type="primary" plain @click="showDialog">添加商品</el-button>
+      </div>  
+      <el-table border :data="selectProducts" v-model="form.products">
+        <el-table-column label="序号"  width="55" type="index" align="center" /> 
+        <el-table-column label="商品图片" align="center" width="160">
+        <template slot-scope="scope">
+          <el-popover
+            placement="right"
+            title=""
+            trigger="hover"
+          >
+            <img slot="reference" :src="scope.row.image" width="100">
+            <img :src="scope.row.image" style="max-width: 150px;">
+            </el-popover>
+          </template>
+        </el-table-column>       
+        <el-table-column label="商品编码"  align="center" prop="spuCode" />
+        <el-table-column label="商品名称"  align="center" prop="spuName" />
+        <el-table-column label="SKU编码"  align="center" prop="skuCode" />
+        <el-table-column label="SKU名称" align="center" prop="skuName" />
+        <el-table-column label="下单数量" align="center">
+          <template slot-scope="scope">
+            <el-input v-model.number="scope.row.planNum" type="number"></el-input>
+          </template>          
+        </el-table-column>
+        <el-table-column label="含税下单价"  align="center" prop="taxunitPrice" />
+        <el-table-column label="税率"  align="center" prop="taxRate" >
+          <template v-slot="scope">
+            {{ scope.row.taxRate }} %
+          </template>
+        </el-table-column>
+        <el-table-column label="含税金额"  align="center" prop="taxPrice" />
+        <el-table-column label="供应商商品编码"  align="center" prop="supplierSpucode" />
+        <el-table-column label="供应商SKU编码"  align="center" prop="supplierSkucode" />
+        <el-table-column label="操作">
+            <template slot-scope="scope">
+              <el-button type="danger" icon="el-icon-delete" @click="removeSelected(scope.$index)">删除</el-button>
+            </template>
+          </el-table-column>
+      </el-table>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+
+    <el-dialog :visible.sync="dialogVisible"  title="选择商品" width="1200px" @selection-change="handleSelectionChange">
+      <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="供应商名称" prop="supplierName">
+        <el-input
+          v-model="queryParams.supplierName"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuerys"
+        />
+      </el-form-item>
+      <el-form-item label="供应商编码" prop="supplierCode">
+        <el-input
+          v-model="queryParams.supplierCode"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuerys"
+        />
+      </el-form-item>
+      <el-form-item label="商品名称" prop="spuName">
+        <el-input
+          v-model="queryParams.spuName"
+          placeholder="请输入商品名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuerys"
+        />
+      </el-form-item>
+       <el-form-item label="商品编号" prop="spuCode">
+        <el-input
+          v-model="queryParams.spuCode"
+          placeholder="请输入商品编号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuerys"
+        />
+      </el-form-item>
+      <el-form-item label="SKU编号" prop="skuCode">
+        <el-input
+          v-model="queryParams.skuCode"
+          placeholder="请输入SKU编号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuerys"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuerys">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys">重置</el-button>
+      </el-form-item>
+    </el-form>
+      <el-table border ref="dataList" v-loading="loading" :data="productOptions">
+        <el-table-column label="序号"  width="55" type="index" align="center" />
+        <el-table-column type="selection" width="55" align="center"/>
+        <el-table-column label="供应商编码"  align="center" prop="supplierCode" />
+        <el-table-column label="商品图片" align="center" width="160" v-if="false">
+        <template slot-scope="scope">
+          <el-popover
+            placement="right"
+            title=""
+            trigger="hover"
+          >
+            <img slot="reference" :src="scope.row.image" width="100">
+            <img :src="scope.row.image" style="max-width: 150px;">
+            </el-popover>
+          </template>
+        </el-table-column>
+        <el-table-column label="供应商名称"  align="center" prop="supplierName" />
+        <el-table-column label="商品编码"  align="center" prop="spuCode" />
+        <el-table-column label="商品名称"  align="center" prop="spuName" />
+        <el-table-column label="SKU编码"  align="center" prop="skuCode" />
+        <el-table-column label="SKU名称" align="center" prop="skuName" />
+        <el-table-column label="供应商商品编码"  align="center" prop="supplierSpucode" />
+        <el-table-column label="含税价"  align="center" prop="taxunitPrice" />
+        <el-table-column label="税率"  align="center" prop="taxRate" >
+        <template v-slot="scope">
+          {{ scope.row.taxRate }} %
+        </template>
+      </el-table-column>
+      </el-table>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取消</el-button>
+        <el-button type="primary" @click="productAdd">添加</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPurchaseOrder, getPurchaseOrder, delPurchaseOrder, addPurchaseOrder, updatePurchaseOrder, exportPurchaseOrder } from "@/api/oms/purchaseOrder";
+import {listWarehouseName} from "@/api/oms/warehouse";
+import { listExpress } from "@/api/store/express";
+import {listSupplierByStatus} from "@/api/oms/supplier";
+import {listProduct} from "@/api/oms/apply";
+import {getCitys} from "@/api/store/city";
+export default {
+  name: "PurchaseOrder",
+  data() {
+    return {
+      dialogVisible: false,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // oms采购单表格数据
+      purchaseOrderList: [],
+      warehouseOptions:[],
+      productOptions:[],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 发票类型 0无 1电子发票 2增值税普通发票 3增值税专用发票字典
+      invoiceTypeOptions: [],
+      purchaseTypeOptions:[],
+      // 是否含包装 0否  1是字典
+      packagingFlagOptions: [],
+      // 是否包邮 0否  1是字典
+      shippingFlagOptions: [],
+      // 状态 0待审核  1已审核待入库 2已完成 3已取消 4待通知WMS 5通知WMS失败字典
+      statusOptions: [],
+      // 入库状态 0未入库  1部分入库 2整单入库 3超收入库字典
+      stockinStatusOptions: [],
+      supplierOptions:[],
+      expressOptions:[],
+      cityIds:[],
+        citys:[],
+      selectProducts:[],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        code: null,
+        applyId: null,
+        supplierId: null,
+        warehouseId: null,
+        expectedTime: null,
+        type: null,
+        purchaseUserId: null,
+        overfillRate: null,
+        products: null,
+        amount: null,
+        invoiceType: null,
+        packagingFlag: null,
+        shippingFlag: null,
+        alreadyNum: null,
+        waitNum: null,
+        planNum: null,
+        auditUserId: null,
+        auditTime: null,
+        finishTime: null,
+        status: null,
+        stockinStatus: null,
+        cancelNum: null,
+        logisticsId: null,
+        paymentType: null,
+        createUserId: null,
+        updateUserId: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getDicts("oms_invoice_type").then(response => {
+      this.invoiceTypeOptions = response.data;
+    });
+    this.getDicts("oms_packaging_flag").then(response => {
+      this.packagingFlagOptions = response.data;
+    });
+    this.getDicts("oms_shipping_flag").then(response => {
+      this.shippingFlagOptions = response.data;
+    });
+    this.getDicts("oms_purchase_order_status").then(response => {
+      this.statusOptions = response.data;
+    });
+    this.getDicts("oms_stockin_status").then(response => {
+      this.stockinStatusOptions = response.data;
+    });
+    this.getDicts("oms_purchase_type").then(response => {
+      this.purchaseTypeOptions = response.data;
+    });
+  },
+  methods: {
+    removeSelected(index) {
+      this.selectProducts.splice(index, 1);
+    },
+    productAdd(){
+     // 获取 dataList 中选中的数据
+     const selectedRows = this.$refs.dataList.selection;
+      // 遍历选中的数据,添加到 selectedList 列表
+      selectedRows.forEach(row => {
+        // 判断 selectedData 中是否已存在该行数据
+        const index = this.selectProducts.findIndex(item => item.spuCode === row.spuCode && item.supplierCode === row.supplierCode)
+        if (index === -1) {
+          this.selectProducts.push(row)
+        }
+      })
+      this.dialogVisible=false;
+    },
+    showDialog() {
+      this.loading = true;     
+      listProduct(this.queryParams).then(response =>{
+        this.productOptions = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+      this.dialogVisible = true;
+    },
+    handleCityChange(value) {
+          console.log(value);
+          var nodes=this.$refs.citySelect.getCheckedNodes();
+          this.form.cityIds=nodes[0].pathLabels[0]+"-"+nodes[0].pathLabels[1]+"-"+nodes[0].pathLabels[2];
+          this.form.cityIdsStr=value.toString();
+          console.log(this.form.cityIdsStr);
+    },
+    selectWarehouse(){   
+      console.log('warehouseOptions',this.warehouseOptions)
+      const item = this.warehouseOptions.find(item1=> item1.warehouseName === this.form.warehouseName)
+      console.log(item)
+      this.form.warehouseId = item.warehouseId
+    },
+    selectSupplier(){   
+      console.log('supplierOptions',this.warehouseOptions)
+      const item = this.supplierOptions.find(item1=> item1.name === this.form.supplierName)
+      console.log(item)
+      this.form.supplierId = item.id
+    },
+    /** 查询oms采购单列表 */
+    getList() {
+      this.loading = true;
+      listPurchaseOrder(this.queryParams).then(response => {
+        this.purchaseOrderList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 发票类型 0无 1电子发票 2增值税普通发票 3增值税专用发票字典翻译
+    invoiceTypeFormat(row, column) {
+      return this.selectDictLabel(this.invoiceTypeOptions, row.invoiceType);
+    },
+    // 是否含包装 0否  1是字典翻译
+    packagingFlagFormat(row, column) {
+      return this.selectDictLabel(this.packagingFlagOptions, row.packagingFlag);
+    },
+    // 是否包邮 0否  1是字典翻译
+    shippingFlagFormat(row, column) {
+      return this.selectDictLabel(this.shippingFlagOptions, row.shippingFlag);
+    },
+    // 状态 0待审核  1已审核待入库 2已完成 3已取消 4待通知WMS 5通知WMS失败字典翻译
+    statusFormat(row, column) {
+      return this.selectDictLabel(this.statusOptions, row.status);
+    },
+    // 入库状态 0未入库  1部分入库 2整单入库 3超收入库字典翻译
+    stockinStatusFormat(row, column) {
+      return this.selectDictLabel(this.stockinStatusOptions, row.stockinStatus);
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.selectProducts = [];
+      this.form = {
+        id: null,
+        code: null,
+        applyId: null,
+        supplierId: null,
+        warehouseId: null,
+        expectedTime: null,
+        type: null,
+        purchaseUserId: null,
+        overfillRate: null,
+        products: null,
+        amount: null,
+        invoiceType: null,
+        packagingFlag: null,
+        shippingFlag: null,
+        alreadyNum: null,
+        waitNum: null,
+        planNum: null,
+        auditUserId: null,
+        auditTime: null,
+        finishTime: null,
+        status: null,
+        stockinStatus: null,
+        cancelNum: null,
+        logisticsId: null,
+        paymentType: null,
+        createUserId: null,
+        createTime: null,
+        updateUserId: null,
+        updateTime: null,
+        remark: null,
+        supplierCode:null,
+        supplierName:null,
+        warehouseName:null,
+        logisticsAmount:null,
+        logisticsBn:null,
+        logisticsNo:null,
+        cityIds:null,
+        userName:null,
+        userPhone:null,
+        cityIds: null,
+        address: null
+      };
+      this.resetForm("form");
+    },
+    handleQuerys() {
+      this.queryParams.pageNum = 1;
+      listProduct(this.queryParams).then(response =>{
+        this.productOptions = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    resetQuerys(){
+      this.resetForm("queryForm");
+      this.handleQuerys;
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      listWarehouseName(this.queryParams).then(response =>{
+        this.warehouseOptions = response.data;
+      });
+      listExpress(this.queryParams).then(response =>{
+        this.expressOptions = response.rows;
+      });
+      listSupplierByStatus(this.queryParams).then(response =>{
+        this.supplierOptions = response.data;
+      });
+      getCitys().then(res => {
+            this.loading = false;
+            this.citys=res.data;
+        });
+      this.open = true;
+      this.title = "添加oms采购单";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getPurchaseOrder(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改oms采购单";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      const data = this.selectProducts;
+      const jsonData = JSON.stringify(data);
+      this.form.products = jsonData;
+      this.form.planNum = this.selectProducts.reduce((total, item) => total + item.planNum, 0);
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updatePurchaseOrder(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              }
+            });
+          } else {
+            addPurchaseOrder(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              }
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除oms采购单编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPurchaseOrder(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有oms采购单数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPurchaseOrder(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        }).catch(function() {});
+    }
+  }
+};
+</script>
+
+<style>
+.font-small{
+  font-size: 20px;
+  font-weight: bold;
+}
+
+
+</style>

+ 22 - 20
src/views/oms/supplier/index.vue

@@ -164,50 +164,50 @@
     <el-dialog :title="title" :visible.sync="open" width="1080px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-row>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="供应商编码" prop="code">
               <el-input v-model="form.code" placeholder="请输入" />
             </el-form-item>
           </el-col>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="供应商名称" prop="name">
               <el-input v-model="form.name" placeholder="请输入" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="供应商分类" prop="type">
               <el-input v-model="form.type" placeholder="请输入" />
             </el-form-item>
           </el-col>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="供应商等级" prop="level">
               <el-input v-model="form.level" placeholder="请输入" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="公司全称" prop="fullName">
               <el-input v-model="form.fullName" placeholder="请输入" />
             </el-form-item>
           </el-col>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="助记码" prop="mnemonic">
               <el-input v-model="form.mnemonic" placeholder="请输入" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="送货周期" prop="cycleDay">
               <el-input v-model="form.cycleDay" placeholder="请输入" >
                 <template slot="append">天</template>
               </el-input>
             </el-form-item>
           </el-col>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="溢装比例" prop="overfillRate">
               <el-input v-model="form.overfillRate" placeholder="请输入" >
                 <template slot="append">%</template>
@@ -216,7 +216,7 @@
           </el-col>
         </el-row>        
         <el-row>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="默认开票" prop="invoiceType">
               <el-select v-model="form.invoiceType" placeholder="请选择">
                 <el-option
@@ -228,7 +228,7 @@
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="默认税率" prop="taxRate">
               <el-input v-model="form.taxRate" placeholder="请输入默认税率" >
                 <template slot="append">%</template>
@@ -237,12 +237,12 @@
           </el-col>
         </el-row>
         <el-row>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="默认结算方式" prop="paymentType">
               <el-input v-model="form.paymentType" placeholder="请输入默认结算方"/>
             </el-form-item>
           </el-col>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="合作日期" prop="cooperationTime">
               <el-date-picker clearable size="small" style="width: 200px"
               v-model="form.cooperationTime"
@@ -254,24 +254,24 @@
           </el-col>
         </el-row>
         <el-row>
-          <el-col span="8">
+          <el-col :span="8">
             <el-form-item label="联系人" prop="contactName">
               <el-input v-model="form.contactName" placeholder="请输入联系人" />
             </el-form-item>
           </el-col>
-          <el-col span="8">
+          <el-col :span="8">
             <el-form-item label="联系人电话" prop="contractTel">
               <el-input v-model="form.contractTel" placeholder="请输入联系人电话" />
             </el-form-item>
           </el-col>
-          <el-col span="8">
+          <el-col :span="8">
             <el-form-item label="联系人手机" prop="contactPhone">
               <el-input v-model="form.contactPhone" placeholder="请输入联系人手机" />
             </el-form-item>
           </el-col>
         </el-row> 
         <el-row>
-          <el-col span="8">
+          <el-col :span="8">
             <el-form-item  label-width="100px" label="所属省市区" prop="cityIds">
               <el-cascader
               ref="citySelect"
@@ -280,19 +280,19 @@
               @change="handleCityChange"></el-cascader>
             </el-form-item>
           </el-col>
-          <el-col span="10">
+          <el-col :span="8">
             <el-form-item label="详情地址" prop="address">
               <el-input v-model="form.address" placeholder="请输入详情地址" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="账户名称" prop="bankName">
               <el-input v-model="form.bankName" placeholder="请输入账户名称" />
             </el-form-item>
           </el-col>
-          <el-col span="12">
+          <el-col :span="12">
             <el-form-item label="开户银行" prop="bankDeposit">
               <el-input v-model="form.bankDeposit" placeholder="请输入开户银行" />
             </el-form-item>
@@ -454,7 +454,9 @@ export default {
         createUserId: null,
         updateUserId: null,
         createTime: null,
-        updateTime: null
+        updateTime: null,
+        cityIds: null,
+        address: null
       };
       this.resetForm("form");
     },

+ 48 - 22
src/views/oms/supplierProduct/index.vue

@@ -272,34 +272,52 @@
           <el-button type="primary" plain @click="showDialog">添加商品</el-button>
         </el-form-item>
         <!-- <el-button @click="showDialog">添加商品</el-button> -->
-       <el-row>
-        <el-col :span="12">
-            <el-form-item label="商品名称" prop="spuName">
+       
+        
+            <el-form-item label="商品名称" prop="spuName" v-if="false">
               <el-input v-model="form.spuName" placeholder="请输入" />
             </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="商品编码" prop="spuCode">
+        
+          <el-form-item label="商品编码" prop="spuCode" v-if="false">
             <el-input v-model="form.spuCode" placeholder="请输入商品编码" />
           </el-form-item>
-        </el-col>
-      </el-row> 
-      <el-row>
-          <el-col :span="12">
-            <el-form-item label="SKU编码" prop="skuCode">
+        
+            <el-form-item label="SKU编码" prop="skuCode" v-if="false">
           <el-input v-model="form.skuCode" placeholder="请输入" />
         </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="SKU名称" prop="skuName">
+          
+            <el-form-item label="SKU名称" prop="skuName" v-if="false">
               <el-input v-model="form.skuName" placeholder="请输入" />
             </el-form-item>
-          </el-col>
-      </el-row>
-      <el-form-item label="商品图片" prop="image">
-          <Material v-model="imageArr" type="image" :num="1" :width="150" :height="150" />
+          
+      <el-form-item label="商品图片" prop="image" v-if="false">
+        <el-input v-model="form.image" placeholder="请输入" />
         </el-form-item> 
+      <el-table border :data="selectProducts">
+        <el-table-column label="商品图片" align="center" width="160" >
+        <template slot-scope="scope">
+          <el-popover
+            placement="right"
+            title=""
+            trigger="hover"
+          >
+            <img slot="reference" :src="scope.row.image" width="100">
+            <img :src="scope.row.image" style="max-width: 150px;">
+            </el-popover>
+          </template>
+        </el-table-column>
+        <el-table-column label="商品编码"   align="center" prop="spuCode" />
+        <el-table-column label="商品名称"   align="center" prop="spuName" />
+        <el-table-column label="SKU编码"   align="center" prop="skuCode" />
+        <el-table-column label="SKU名称"  align="center" prop="skuName" />
+        <el-table-column label="操作">
+            <template slot-scope="scope">
+              <el-button type="danger" icon="el-icon-delete" @click="removeSelected(scope.$index)">删除</el-button>
+            </template>
+          </el-table-column>
+      </el-table>
       </el-form>
+      
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
@@ -418,6 +436,7 @@ export default {
       supplierOptions:[],
       imageArr:[],
       productOptions:[],
+      selectProducts:[],
       
       // 查询参数
       queryParams: {
@@ -465,11 +484,13 @@ export default {
     });
   },
   methods: {
+    removeSelected(index) {
+      this.selectProducts.splice(index, 1);
+    },
     selectItem(row){
-      this.form.spuName=row.spuName;
-      this.form.spuCode=row.spuCode;
-      this.form.skuName=row.skuName;
-      this.dialogVisible=false;
+      this.form = row;
+      this.selectProducts.push(row); 
+      this.dialogVisible = false;
     },
     showDialog() {
       this.dialogVisible = true;
@@ -519,6 +540,7 @@ export default {
     },
     // 表单重置
     reset() {
+      this.selectProducts = [];
       this.form = {
         id: null,
         name:null,
@@ -584,12 +606,16 @@ export default {
       const id = row.id || this.ids
       getSupplierProduct(id).then(response => {
         this.form = response.data;
+        this.form.shippingFlag = response.data.shippingFlag.toString();
+        this.form.packagingFlag = response.data.packagingFlag.toString();
+        this.selectProducts = response.selectProucts;
         this.open = true;
         this.title = "修改供应商商品";
       });
     },
     /** 提交按钮 */
     submitForm() {
+      console.log(this.form)
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.id != null) {

+ 40 - 1
src/views/store/components/productAfterSalesOrder.vue

@@ -17,6 +17,7 @@
             <el-tag prop="status" v-for="(item, index) in salesStatusOptions"    v-if="afterSales.salesStatus==item.dictValue">{{item.dictLabel}}</el-tag>
           </span>
           <div class="operate-button-container"  >
+            <el-button size="mini" v-show="afterSales.salesStatus==0&&afterSales.status===1"  @click="addDelivery">添加物流</el-button>
             <el-button size="mini"  v-hasPermi="['store:storeAfterSales:audit1']" v-show="afterSales.salesStatus==0&&afterSales.status===0" @click="handleAudit1">平台审核</el-button>
             <el-button size="mini"  v-hasPermi="['store:storeAfterSales:audit2']" v-show="afterSales.salesStatus==0&&afterSales.status===2" @click="handleAudit2">仓库审核</el-button>
             <el-button size="mini"  v-hasPermi="['store:storeAfterSales:refund']" @click="handleRefund"  v-show="afterSales.salesStatus==0&&afterSales.status===3">财务审核</el-button>
@@ -188,12 +189,29 @@
       >
       <product-order  ref="productOrder" />
     </el-drawer>
+    <el-dialog :title="add.title" :visible.sync="add.open" width="500px" append-to-body>
     
+      <div slot="footer" class="dialog-footer">
+        <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+          <el-form-item label="id" prop="id" v-if="false">
+            <el-input v-model="form.id" placeholder="请输入"  />
+          </el-form-item>
+          <el-form-item label="快递公司" prop="deliveryName">
+            <el-input v-model="form.deliveryName" placeholder="请输入"  />
+          </el-form-item>
+          <el-form-item label="运单号" prop="deliverySn">
+            <el-input v-model="form.deliverySn" placeholder="请输入"  />
+          </el-form-item>
+        </el-form>
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel1">取 消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import {getStoreAfterSales,cancel,refund,audit1,audit2 } from "@/api/store/storeAfterSales";
+import {getStoreAfterSales,cancel,refund,audit1,audit2,updateStoreAfterSales} from "@/api/store/storeAfterSales";
 
 import productOrder from "./productOrder";
 export default {
@@ -209,6 +227,10 @@ export default {
           title:"财务审核",
           open:false,
       },
+      add:{
+        open:false,
+        title:"添加物流"
+      },
       order:null,
       user:null,
       serviceTypeOptions:[],
@@ -243,6 +265,23 @@ export default {
     });
   },
   methods: {
+    submitForm() {
+      var id=this.afterSales.id;
+      this.form.id = id;
+      updateStoreAfterSales(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("添加成功");
+                this.add.open = false;
+                this.getStoreAfterSales(id);
+              }
+            });
+    },
+    cancel1(){
+      this.open = false;
+    },
+    addDelivery(){
+      this.add.open = true;
+    },
     showOrder(){
       this.show.open=true;
       const orderId = this.order.id ;

+ 55 - 4
src/views/store/storeAfterSales/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="请选择公司名" 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"
@@ -11,6 +11,11 @@
               />
         </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>
+
       <el-form-item label="订单单号" prop="orderCode">
         <el-input
           v-model="queryParams.orderCode"
@@ -29,6 +34,16 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="手机号" prop="consigneePhone">
+        <el-input
+          v-model="queryParams.consigneePhone"
+          placeholder="请输入手机号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+     
 
     
        <el-form-item label="退款类型" prop="serviceType">
@@ -199,17 +214,28 @@
 import { listStoreAfterSales, getStoreAfterSales, delStoreAfterSales, addStoreAfterSales, updateStoreAfterSales, exportStoreAfterSales } from "@/api/store/storeAfterSales";
 import productAfterSalesOrder from "../components/productAfterSalesOrder";
 import { getCompanyList } from "@/api/company/company";
+import { treeselect } from "@/api/company/companyDept";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
 export default {
-  components: { productAfterSalesOrder },
+  watch: {
+    // 监听deptId
+    'deptId': 'currDeptChange'
+  },
+  components: { productAfterSalesOrder,Treeselect },
   name: "StoreAfterSales",
   data() {
     return {
+      companyId:undefined,
+      deptId:undefined,
       orderStatusOptions:[],
       companys:[],
       deliveryStatusOptions:[],
       serviceTypeOptions:[],
       salesStatusOptions:[],
       statusOptions:[],
+      deptOptions:[],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -259,7 +285,11 @@ export default {
   },
   created() {
     getCompanyList().then(response => {
-        this.companys = response.data;
+      this.companys = response.data;
+         if(this.companys!=null&&this.companys.length>0){
+          this.companyId=this.companys[0].companyId;
+          this.getTreeselect();
+        }
     });
     this.getDicts("store_after_sales_sales_status").then((response) => {
         this.salesStatusOptions = response.data;
@@ -416,7 +446,28 @@ export default {
         }).then(response => {
           this.download(response.msg);
         }).catch(function() {});
-    }
+    },
+    getTreeselect() {
+        var that=this;
+        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;
+          }
+        });
+    },
+    companyChange(val){
+      console.log(val);
+      this.companyId=val;
+      this.getTreeselect();
+    },
+     currDeptChange(val){
+          console.log(val)
+          this.queryParams.deptId=val;
+          this.getList();
+    },
   }
 };
 </script>

+ 10 - 0
src/views/store/storeOrder/index.vue

@@ -45,6 +45,16 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="收件人" prop="realName">
+        <el-input
+          
+          v-model="queryParams.realName"
+          placeholder="请输入收件人姓名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
      
       <el-form-item label="员工姓名" prop="companyUserNickName">
         <el-input

+ 41 - 3
src/views/store/storeOrder/payRemainList.vue

@@ -66,6 +66,16 @@
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+            type="warning"
+          icon="el-icon-download"
+          size="mini"
+            @click="handleExport"
+        >导出</el-button>
+      </el-col>
+    </el-row>
     <el-tabs type="card" v-model="activeName" @tab-click="handleClick">
       <el-tab-pane label="已付款待审核" name="1"></el-tab-pane>
       <el-tab-pane label="已审核" name="2"></el-tab-pane>
@@ -75,12 +85,12 @@
       <el-table-column label="订单号" align="center" prop="orderCode" width="200px" />
       <el-table-column label="所属公司" align="center" prop="companyName" />
       <el-table-column label="所属员工" align="center" prop="companyUserNickName" />
-      <el-table-column label="用户昵称" align="center" prop="nickname" width="150px" >
+      <el-table-column label="用户昵称" align="center" prop="nickname" width="150px" v-if="false">
           <template slot-scope="scope">
               <span>{{scope.row.nickname}} </span>
           </template>
       </el-table-column>
-      <el-table-column label="收件人" align="center" prop="realName" width="150px" >
+      <el-table-column label="收件人" align="center" prop="realName" width="150px" v-if="false">
           <template slot-scope="scope">
               <span>{{scope.row.realName}} </span>
           </template>
@@ -95,6 +105,12 @@
               <span v-if="scope.row.payPrice!=null">{{scope.row.payPrice.toFixed(2)}}</span>
           </template>
       </el-table-column>
+      <el-table-column label="尾款支付金额" align="center" prop="lastPayMoney" >
+          <template slot-scope="scope">
+              <span v-if="scope.row.lastPayMoney!=null">{{scope.row.lastPayMoney}}</span>
+          </template>
+      </el-table-column>
+      <el-table-column label="物流单号" align="center" prop="deliveryId" />
       <el-table-column label="下单时间" align="center" prop="createTime" />
       <el-table-column label="支付方式" align="center" prop="payType" >
           <template slot-scope="scope">
@@ -143,7 +159,7 @@
 </template>
 
 <script>
-import {  listStoreOrder } from "@/api/store/storeOrder";
+import {  listStoreOrder,exportStorePayRemainOrder } from "@/api/store/storeOrder";
 import productOrder from "../components/productOrder";
 import { getCompanyList } from "@/api/company/company";
 export default {
@@ -328,6 +344,28 @@ export default {
       this.single = selection.length!==1
       this.multiple = !selection.length
     },
+    /** 导出按钮操作 */
+    handleExport() {
+      if(this.queryParams.status=='00'){
+        this.queryParams.status=null;
+      }
+      if(this.createTimeRange!=null&&this.createTimeRange.length==2){
+        this.queryParams.createTimeRange=this.createTimeRange[0]+"--"+this.createTimeRange[1]
+      }
+      else{
+        this.queryParams.createTimeRange=null;
+      }
+      const queryParams = this.addDateRange(this.queryParams, this.dateRange);
+      this.$confirm('是否确认导出所有售后记录数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportStorePayRemainOrder(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        }).catch(function() {});
+    },
      
   }
 };

+ 1002 - 0
src/views/store/storeOrder/promotionList.vue

@@ -0,0 +1,1002 @@
+<template>
+  <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-option
+                v-for="item in companys"
+                :key="item.companyId"
+                :label="item.companyName"
+                :value="item.companyId"
+              />
+        </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>
+
+      <el-form-item label="订单号" prop="orderCode">
+        <el-input
+          v-model="queryParams.orderCode"
+          placeholder="请输入订单号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+       <el-form-item label="运单号" prop="deliveryId">
+        <el-input
+          v-model="queryParams.deliveryId"
+          placeholder="请输入运单号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+      <el-form-item label="手机号" prop="userPhone">
+        <el-input
+          v-model="queryParams.userPhone"
+          placeholder="请输入手机号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+     
+      <el-form-item label="员工姓名" prop="companyUserNickName">
+        <el-input
+          
+          v-model="queryParams.companyUserNickName"
+          placeholder="请输入员工姓名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="订单类型" prop="orderType">
+         <el-select   v-model="queryParams.orderType" placeholder="请选择订单类型" clearable size="small" >
+         <el-option
+                v-for="item in orderTypeOptions"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+              />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="物流状态" prop="deliveryStatus">
+         <el-select   v-model="queryParams.deliveryStatus" placeholder="请选择物流状态" clearable size="small" >
+         <el-option
+                v-for="item in deliveryStatusOptions"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+              />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="结算状态" prop="deliveryPayStatus">
+         <el-select style="width: 200px" v-model="queryParams.deliveryPayStatus" placeholder="请选择物流结算状态" clearable size="small" >
+         <el-option
+                v-for="item in deliveryPayStatusOptions"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+              />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="下单时间" prop="createTimeRange">
+        <el-date-picker
+          style="width:205.4px"
+          clearable size="small"
+          v-model="createTimeRange"
+          type="daterange"
+          value-format="yyyy-MM-dd"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="支付时间" prop="payTimeRange">
+        <el-date-picker
+          style="width:205.4px"
+          clearable size="small"
+          v-model="payTimeRange"
+          type="daterange"
+          value-format="yyyy-MM-dd"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="发货时间" prop="deliverySendTimeRange">
+        <el-date-picker
+          style="width:205.4px"
+          clearable size="small"
+          v-model="deliverySendTimeRange"
+          type="daterange"
+          value-format="yyyy-MM-dd"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="回单时间" prop="deliveryImportTimeRange">
+        <el-date-picker
+          style="width:205.4px"
+          clearable size="small"
+          v-model="deliveryImportTimeRange"
+          type="daterange"
+          value-format="yyyy-MM-dd"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+    <el-row :gutter="10" class="mb8">
+      <!-- <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['store:storeOrder:add']"
+        >创建订单</el-button>
+      </el-col> -->
+      <el-col :span="1.5">
+            <el-button  plain type="info" icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['store:storeOrder:importExpress']">导入银行回单</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+            type="warning"
+          icon="el-icon-download"
+          size="mini"
+            @click="handleExport"
+          v-hasPermi="['store:storeOrder:export']"
+        >导出订单</el-button>
+      </el-col>
+        <el-col :span="1.5">
+        <el-button
+            type="warning"
+          icon="el-icon-download"
+          size="mini"
+            @click="handleExportItems"
+          v-hasPermi="['store:storeOrder:exportItems']"
+        >导出订单明细</el-button>
+      </el-col>
+      
+	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+    <el-tabs type="card" v-model="activeName" @tab-click="handleClick">
+      <el-tab-pane label="全部订单" name="00"></el-tab-pane>
+      <el-tab-pane label="待支付" name="0"></el-tab-pane>
+      <el-tab-pane label="待发货" name="1"></el-tab-pane>
+      <el-tab-pane label="待收货" name="2"></el-tab-pane>
+      <el-tab-pane label="交易完成" name="3"></el-tab-pane>
+      <el-tab-pane label="退款中" name="-1"></el-tab-pane>
+      <el-tab-pane label="已退款" name="-2"></el-tab-pane>
+      <el-tab-pane label="已取消" name="-3"></el-tab-pane>
+    </el-tabs>
+    <el-table  height="500" border v-loading="loading" :data="storeOrderList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="订单号" align="center" prop="orderCode" width="200px" />
+      <el-table-column label="发起人" align="center" prop="initiator" />
+      <el-table-column label="推广人昵称" align="center" prop="tuiNickName" />
+      <el-table-column label="用户昵称" align="center" prop="nickname" width="150px" >
+          <template slot-scope="scope">
+              <span>{{scope.row.nickname}} </span>
+          </template>
+      </el-table-column>
+      <el-table-column label="收件人" align="center" prop="realName" width="150px" >
+          <template slot-scope="scope">
+              <span>{{scope.row.realName}} </span>
+          </template>
+      </el-table-column>
+      <!-- <el-table-column label="商品" align="center" width="300px" >
+          <template slot-scope="scope">
+              <div  v-for="(item, index) in scope.row.items" class="items"  >
+                <img class="pic" :src="JSON.parse(item.jsonInfo).image" />
+                <div class="goods-content">
+                  <div class="goods-title">{{ JSON.parse(item.jsonInfo).productName}}</div>
+                  <div class="sku">{{ JSON.parse(item.jsonInfo).sku}}</div>
+                  <div class="price">¥{{JSON.parse(item.jsonInfo).price}}×{{item.num}}</div>
+                </div>
+                
+              </div>
+          </template>
+      </el-table-column> -->
+      <el-table-column label="订单金额" align="center" prop="totalPrice" >
+          <template slot-scope="scope">
+              <span v-if="scope.row.totalPrice!=null">{{scope.row.totalPrice.toFixed(2)}}</span>
+          </template>
+      </el-table-column>
+       <el-table-column label="实付金额" align="center" prop="payMoney" >
+          <template slot-scope="scope">
+              <span v-if="scope.row.payMoney!=null">{{scope.row.payMoney.toFixed(2)}}</span>
+          </template>
+      </el-table-column>
+      <el-table-column label="下单时间" align="center" prop="createTime" />
+      <!-- <el-table-column label="支付状态" align="center" prop="paid" /> -->
+      <el-table-column label="支付时间" align="center" prop="payTime" width="180">
+      </el-table-column>
+      <el-table-column label="支付方式" align="center" prop="payType" >
+          <template slot-scope="scope">
+              <el-tag prop="payType" v-for="(item, index) in payTypeOptions"    v-if="scope.row.payType==item.dictValue">{{item.dictLabel}}</el-tag>
+          </template>
+      </el-table-column>
+      <el-table-column label="订单状态" align="center" prop="status" >
+          <template slot-scope="scope">
+              <el-tag prop="status" v-for="(item, index) in statusOptions"    v-if="scope.row.status==item.dictValue">{{item.dictLabel}}</el-tag>
+          </template>
+      </el-table-column>
+      <el-table-column label="物流状态" align="center" prop="deliveryStatus" >
+          <template slot-scope="scope">
+              <el-tag prop="status" v-for="(item, index) in deliveryStatusOptions"    v-if="scope.row.deliveryStatus==item.dictValue">{{item.dictLabel}}</el-tag>
+          </template>
+      </el-table-column>
+
+    
+      <el-table-column label="操作" fixed="right" width="80px" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            @click="handleDetails(scope.row)"
+            v-hasPermi="['store:storeOrder:query']"
+          >查看</el-button>
+          <!-- <el-button
+            size="mini"
+            type="text"
+            @click="handleGenPayUrl(scope.row)"
+            v-hasPermi="['store:storeOrder:genPayUrl']"
+          >生成付款链接</el-button> -->
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+    <el-drawer
+     size="75%"
+      :title="show.title" :visible.sync="show.open"
+      >
+      <product-order  ref="order" />
+    </el-drawer>
+
+
+     <el-dialog :title="title" v-if="open" :visible.sync="open" width="1000px" append-to-body>
+        <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+           <el-form-item label="会员信息" prop="userId">
+                <el-row  >
+                  <el-col >
+                      <el-input placeholder="请输入会员手机号" style="width:240px;cursor:pointer" v-model="phone">
+                      </el-input>
+                      <el-button plain style="margin-left:10px;"    @click="searchUser()">查询</el-button>
+                      <el-button plain style="margin-left:10px;" icon="el-icon-plus"  type="primary" @click="handleAddUser()">添加会员</el-button>
+                  </el-col>
+                </el-row>
+                <el-table border style="margin-top:5px;"  v-loading="userloading" :data="users">
+                  <el-table-column label="ID" align="center" prop="userId" />
+                  <el-table-column label="会员头像" align="center" width="80">
+                    <template slot-scope="scope">
+                      <el-popover
+                        placement="right"
+                        title=""
+                        trigger="hover"
+                      >
+                        <img slot="reference" :src="scope.row.avatar" width="50" >
+                        <img :src="scope.row.avatar" style="max-width: 120px;">
+                      </el-popover>
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="昵称" align="center" prop="nickname" />
+                  <el-table-column label="手机号" align="center" prop="phone" />
+                  <el-table-column label="状态" align="center" prop="status" >
+                      <template slot-scope="scope">
+                          <el-tag prop="status" v-for="(item, index) in userStatusOptions"    v-if="scope.row.status==item.dictValue">{{item.dictLabel}}</el-tag>
+                      </template>
+                  </el-table-column>
+                </el-table>
+            </el-form-item>
+            <el-form-item label="收货信息" prop="addressId">
+              <el-row  >
+                <el-col >
+                      <el-button plain  type="primary" icon="el-icon-plus"  @click="handleAddUserAddress()">添加收货地址</el-button>
+                </el-col>
+              </el-row>
+              <el-radio-group v-model="form.addressId" style="width:100%">
+              <el-table border  style="margin-top:5px;"  v-loading="addressloading" :data="address">
+                <el-table-column label="ID" align="center"  >
+                    <template slot-scope="scope">
+                       <el-radio :label="scope.row.id"></el-radio>
+                    </template>
+                </el-table-column>
+                <el-table-column label="收货人姓名" align="center" prop="realName" />
+                <el-table-column label="收货人电话" align="center" prop="phone" />
+                <el-table-column label="地址" align="center" prop="detail" >
+                    <template slot-scope="scope">
+                       {{scope.row.province}} {{scope.row.city}} {{scope.row.district}} {{scope.row.detail}}
+                    </template>
+                </el-table-column>
+              </el-table>
+              </el-radio-group>
+            </el-form-item>
+            <el-form-item label="商品列表" >
+              <el-row  >
+                <el-col >
+                      <el-button plain  type="primary" icon="el-icon-plus" @click="handleAddProduct">添加商品</el-button>
+                </el-col>
+              </el-row>
+              <el-table border :key = "tablekey" width="100%" style="margin-top:5px;"  :data="products">
+                <el-table-column label="商品编号" align="center" prop="barCode" />
+                <el-table-column label="商品图片" align="center" width="100">
+                  <template slot-scope="scope">
+                    <el-popover
+                      placement="right"
+                      title=""
+                      trigger="hover"
+                    >
+                      <img slot="reference" :src="scope.row.image" width="50">
+                      <img :src="scope.row.image" style="max-width: 50px;">
+                    </el-popover>
+                  </template>
+                </el-table-column>
+                <el-table-column label="商品名称" show-overflow-tooltip align="center" prop="productName" />
+                <el-table-column label="商品规格" align="center" prop="sku" />
+                <el-table-column label="库存" align="center" prop="stock" />
+                <el-table-column label="单价" align="center" prop="price" />
+                <el-table-column label="数量" align="center"  prop="count" width="200px" :key="tablekey">
+                   <template slot-scope="scope">
+                    <div>
+                        <el-input-number v-model="scope.row.count"  @change="handleProductCountChange(scope.row)"  size="mini" :min="1" :max="scope.row.stock"  ></el-input-number>
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column label="小计" align="center" prop="money"   />
+                <el-table-column label="操作" align="center" width="100px" >
+                  <template slot-scope="scope">
+                    <el-button
+                      size="mini"
+                      type="text"
+                      icon="el-icon-delete"
+                      @click="handleDelete(scope.row)"
+                    >删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <el-row>
+                <el-col>
+                      <span>商品合计:{{products.length}}</span><span style="margin-left:10px;">商品总价:{{totalMoney.toFixed(2)}}</span>
+                </el-col>
+              </el-row>
+            </el-form-item>
+            <el-form-item label="订单备注" prop="mark">
+              <el-input  type="textarea" rows="2" v-model="form.mark" placeholder="" />
+            </el-form-item>
+        </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog :title="product.title" v-if="product.open"  :visible.sync="product.open" width="1000px" append-to-body>
+        <product-select  @selectProduct="selectProduct" />
+    </el-dialog>
+    <el-dialog :title="user.title" v-if="user.open"  :visible.sync="user.open" width="500px" append-to-body>
+        <add-user @addUser="addUser" />
+    </el-dialog>
+    <el-dialog :title="userAddress.title" v-if="userAddress.open"  :visible.sync="userAddress.open" width="800px" append-to-body>
+        <add-user-address ref="addUserAddress"   @addUserAddress="addUserAddress" />
+    </el-dialog>
+    <el-dialog :title="payQr.title" v-if="payQr.open"  :visible.sync="payQr.open" width="240px" append-to-body>
+        <div style="padding-bottom:15px;" >
+            <div  class="qrcode" ref="qrCodeUrl"></div>
+        </div>
+    </el-dialog>
+
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          将文件拖到此处,或
+          <em>点击上传</em>
+        </div>
+        <div class="el-upload__tip" slot="tip">
+          <!-- <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据 -->
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog title="导入结果" :close-on-press-escape="false" :close-on-click-modal="false" :visible.sync="importMsgOpen" width="500px" append-to-body>
+       <div class="import-msg" v-html="importMsg">
+       </div>
+    </el-dialog>
+    
+  </div>
+</template>
+
+<script>
+import { importTemplate,exportStoreOrderItems,createUserOrder,listPromotionOrder, getStoreOrder, delStoreOrder, addStoreOrder, updateStoreOrder, exportStoreOrder } from "@/api/store/storeOrder";
+import { getUserList } from "@/api/store/user";
+import { getAddressList } from "@/api/store/userAddress";
+import productOrder from "../components/productOrder";
+import productSelect from "../components/productSelect";
+import addUser from "../components/addUser";
+import addUserAddress from "../components/addUserAddress";
+import { getToken } from "@/utils/auth";
+import QRCode from 'qrcodejs2'
+import { getCompanyList } from "@/api/company/company";
+
+import { treeselect } from "@/api/company/companyDept";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  components: { productOrder,productSelect,addUser,addUserAddress,Treeselect },
+  name: "StoreOrder",
+  watch: {
+    // 监听deptId
+    'deptId': 'currDeptChange'
+  },
+  data() {
+    return {
+      importMsgOpen:false,
+      importMsg:"",
+      deliveryPayStatusOptions:[],
+      deliveryStatusOptions:[],
+      companys:[],
+      deptOptions:[],
+      companyId:undefined,
+      deptId:undefined,
+      orderTypeOptions:[],
+      payTypeOptions:[],
+      payQr:{
+        open:false,
+        title:"付款二维码"
+      },
+      user:{
+        open:false,
+        title:"创建会员"
+      },
+      userAddress:{
+        open:false,
+        title:"创建收货地址"
+      },
+      tablekey:false,
+      totalMoney:0.00,
+      products:[],
+      product:{
+        open:false,
+        title:"商品选择"
+      },
+      userStatusOptions:[],
+      phone:null,
+      address:[],
+      addressloading: false,
+      userloading: false,
+      users:[],
+      userStatusOptions:[],
+      show:{
+        open:false,
+        title:"订单详情"
+      },
+      activeName:"00",
+      statusOptions:[],
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 订单表格数据
+      storeOrderList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      createTimeRange:[],
+      payTimeRange:[],
+      deliveryImportTimeRange:[],
+      deliverySendTimeRange:[],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        orderCode: null,
+        extendOrderId: null,
+        userId: null,
+        realName: null,
+        userPhone: null,
+        userAddress: null,
+        cartId: null,
+        freightPrice: null,
+        totalNum: null,
+        totalPrice: null,
+        totalPostage: null,
+        payPrice: null,
+        payPostage: null,
+        deductionPrice: null,
+        couponId: null,
+        couponPrice: null,
+        paid: null,
+        payTime: null,
+        payType: null,
+        status: null,
+        refundStatus: null,
+        refundReasonWapImg: null,
+        refundReasonWapExplain: null,
+        refundReasonTime: null,
+        refundReasonWap: null,
+        refundReason: null,
+        refundPrice: null,
+        deliverySn: null,
+        deliveryName: null,
+        deliveryType: null,
+        deliveryId: null,
+        gainIntegral: null,
+        useIntegral: null,
+        payIntegral: null,
+        backIntegral: null,
+        mark: null,
+        isDel: null,
+        cost: null,
+        verifyCode: null,
+        storeId: null,
+        shippingType: null,
+        isChannel: null,
+        isRemind: null,
+        isSysDel: null,
+        deptId:null,
+     
+      },
+      // 表单参数
+      form: {
+        addressId:null,
+        userId:null,
+      },
+      // 表单校验
+      rules: {
+        userId: [
+          { required: true, message: "会员信息不能为空" }
+        ],
+        addressId: [
+          { required: true, message: "收货信息不能为空" }
+        ],
+        
+      },
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/store/storeOrder/importExpress",
+      },
+    };
+  },
+  created() {
+    getCompanyList().then(response => {
+        this.companys = response.data;
+         if(this.companys!=null&&this.companys.length>0){
+          this.companyId=this.companys[0].companyId;
+          this.getTreeselect();
+        }
+    });
+    this.getDicts("store_order_type").then((response) => {
+      this.orderTypeOptions = response.data;
+    });
+    this.getDicts("user_status").then((response) => {
+      this.userStatusOptions = response.data;
+    });
+    this.getDicts("store_pay_type").then((response) => {
+      this.payTypeOptions = response.data;
+    });
+    this.getDicts("store_order_status").then((response) => {
+      this.statusOptions = response.data;
+    });
+    this.getDicts("store_order_delivery_status").then((response) => {
+      this.deliveryStatusOptions = response.data;
+    });
+    this.getDicts("store_delivery_pay_status").then((response) => {
+      this.deliveryPayStatusOptions = response.data;
+    });
+    
+    this.getList();
+  },
+  methods: {
+    handleGenPayUrl(row){
+      this.payQr.open=true;
+      setTimeout(() => {
+        var qrcode = new QRCode(this.$refs.qrCodeUrl, {
+            text: config.payQRUrl+row.id, // 需要转换为二维码的内容
+            width: 200,
+            height: 200,
+            colorDark: '#000000',
+            colorLight: '#ffffff',
+            correctLevel: QRCode.CorrectLevel.H
+        })
+      }, 200);
+    },
+    handleAddUser(){
+      this.user.open=true;
+    },
+    handleAddUserAddress(){
+      if(this.form.userId==null){
+        this.msgError("请选择会员");
+        return;
+      }
+      this.userAddress.open=true;
+      setTimeout(() => {
+        this.$refs.addUserAddress.init(this.form.userId);
+      }, 500);
+    },
+    addUser(){
+      this.user.open=false;
+    },
+    addUserAddress(){
+      this.userAddress.open=false;
+      //获取地址
+      this.getAddressList(this.form.userId);
+    },
+    compute(){
+      this.totalMoney=0;
+      var that=this;
+      this.products.forEach (function (value) {
+          that.totalMoney += value.money;
+      });
+      console.log(that.totalMoney)
+    },
+    handleProductCountChange(row){
+      this.tablekey = !this.tablekey
+      console.log(row)
+      row.money=row.count*row.price;
+      this.$forceUpdate();
+      this.compute();
+    },
+    selectProduct(row){
+      console.log(row);
+      for(var i=0;i<this.products.length;i++){
+        if(this.products[i].id==row.id){
+          return;
+        }
+      }
+      row.count=1;
+      row.money=row.count*row.price;
+      this.products.push(row);
+      this.compute();
+    },
+    handleAddProduct(){
+      this.product.open=true;
+    },
+    searchUser(){
+      if(this.phone==null||this.phone==""){
+        return;
+      }
+      var data={phone:this.phone}
+      this.userloading = true;
+      this.users=[];
+      this.address=[];
+      getUserList(data).then(response => {
+        this.users = response.data;
+        this.userloading = false;
+        if(this.users!=null&&this.users.length==1){
+          this.form.userId=this.users[0].userId;
+          this.getAddressList(this.form.userId)
+        }
+      });
+    },
+    getAddressList(userId){
+      var data={userId:userId}
+      this.addressloading = true;
+      this.address=[];
+      getAddressList(data).then(response => {
+        this.address = response.data;
+        this.addressloading = false;
+      });
+    },
+    handleDetails(row){
+      this.show.open=true;
+      const orderId = row.id ;
+      setTimeout(() => {
+        this.$refs.order.getOrder(orderId);
+      }, 500);
+    },
+    handleClick(tab, event) {
+      this.activeName=tab.name;
+      this.queryParams.status=tab.name
+      console.log(this.queryParams.status)
+      this.getList();
+    },
+    /** 查询订单列表 */
+    getList() {
+      this.loading = true;
+      if(this.queryParams.status=='00'){
+        this.queryParams.status=null;
+      }
+
+      if(this.createTimeRange!=null&&this.createTimeRange.length==2){
+        this.queryParams.createTimeRange=this.createTimeRange[0]+"--"+this.createTimeRange[1]
+      }
+      else{
+        this.queryParams.createTimeRange=null;
+      }
+
+      if(this.payTimeRange!=null&&this.payTimeRange.length==2){
+        this.queryParams.payTimeRange=this.payTimeRange[0]+"--"+this.payTimeRange[1]
+      }
+      else{
+        this.queryParams.payTimeRange=null;
+      }
+      if(this.deliveryImportTimeRange!=null&&this.deliveryImportTimeRange.length==2){
+        this.queryParams.deliveryImportTimeRange=this.deliveryImportTimeRange[0]+"--"+this.deliveryImportTimeRange[1]
+      }
+      else{
+        this.queryParams.deliveryImportTimeRange=null;
+      }
+      if(this.deliverySendTimeRange!=null&&this.deliverySendTimeRange.length==2){
+        this.queryParams.deliverySendTimeRange=this.deliverySendTimeRange[0]+"--"+this.deliverySendTimeRange[1]
+      }
+      else{
+        this.queryParams.deliverySendTimeRange=null;
+      }
+      
+      listPromotionOrder(this.queryParams).then(response => {
+        this.storeOrderList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        addressId:null,
+        userId:null,
+        
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "创建订单";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getStoreOrder(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改订单";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        this.form.products=this.products;
+        if (valid) {
+          console.log(this.form);
+          createUserOrder(this.form).then(response => {
+            if (response.code === 200) {
+              this.msgSuccess("创建成功");
+              this.open = false;
+              this.getList();
+            }
+          });
+       
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+       this.products.splice(this.products.findIndex(item => item.id === row.id), 1)
+       this.compute();
+       
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      if(this.queryParams.status=='00'){
+        this.queryParams.status=null;
+      }
+      if(this.createTimeRange!=null&&this.createTimeRange.length==2){
+        this.queryParams.createTimeRange=this.createTimeRange[0]+"--"+this.createTimeRange[1]
+      }
+      else{
+        this.queryParams.createTimeRange=null;
+      }
+      if(this.payTimeRange!=null&&this.payTimeRange.length==2){
+        this.queryParams.payTimeRange=this.payTimeRange[0]+"--"+this.payTimeRange[1]
+      }
+      else{
+        this.queryParams.payTimeRange=null;
+      }
+      if(this.deliveryImportTimeRange!=null&&this.deliveryImportTimeRange.length==2){
+        this.queryParams.deliveryImportTimeRange=this.deliveryImportTimeRange[0]+"--"+this.deliveryImportTimeRange[1]
+      }
+      else{
+        this.queryParams.deliveryImportTimeRange=null;
+      }
+      const queryParams = this.addDateRange(this.queryParams, this.dateRange);
+      this.$confirm('是否确认导出所有订单数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportStoreOrder(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        }).catch(function() {});
+    },
+    handleExportItems() {
+      if(this.queryParams.status=='00'){
+        this.queryParams.status=null;
+      }
+      if(this.createTimeRange!=null&&this.createTimeRange.length==2){
+        this.queryParams.createTimeRange=this.createTimeRange[0]+"--"+this.createTimeRange[1]
+      }
+      else{
+        this.queryParams.createTimeRange=null;
+      }
+      if(this.payTimeRange!=null&&this.payTimeRange.length==2){
+        this.queryParams.payTimeRange=this.payTimeRange[0]+"--"+this.payTimeRange[1]
+      }
+      else{
+        this.queryParams.payTimeRange=null;
+      }
+      if(this.deliveryImportTimeRange!=null&&this.deliveryImportTimeRange.length==2){
+        this.queryParams.deliveryImportTimeRange=this.deliveryImportTimeRange[0]+"--"+this.deliveryImportTimeRange[1]
+      }
+      else{
+        this.queryParams.deliveryImportTimeRange=null;
+      }
+      const queryParams = this.addDateRange(this.queryParams, this.dateRange);
+      this.$confirm('是否确认导出所有订单明细数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportStoreOrderItems(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        }).catch(function() {});
+    },
+    handleImport() {
+      this.upload.title = "导入银行回单";
+      this.upload.open = true;
+    },
+    submitFileForm() {
+      this.$refs.upload.submit();
+    },
+    importTemplate() {
+      importTemplate().then((response) => {
+        this.download(response.msg);
+      });
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.importMsgOpen=true;
+      this.importMsg=response.msg
+      // this.$alert(response.msg, '导入结果', {
+      //     dangerouslyUseHTMLString: true
+      //   });
+      this.getList();
+    },
+     
+        /** 查询部门下拉树结构 */
+    getTreeselect() {
+        var that=this;
+        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;
+          }
+        });
+    },
+     companyChange(val){
+      console.log(val);
+      this.companyId=val;
+      this.getTreeselect();
+    },
+     currDeptChange(val){
+          console.log(val)
+          this.queryParams.deptId=val;
+          this.getList();
+    },
+  }
+};
+</script>
+<style scoped lang="scss">
+.items{
+  margin: 5px 0px;
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: flex-start;
+  .pic{
+    width:60px;
+    height:60px;
+  }
+  .goods-content{
+    margin-left: 10px;
+    max-width: 200px;
+    text-align: left;
+    .goods-title{
+      
+      overflow:hidden;
+      white-space: nowrap;
+      text-overflow: ellipsis;
+      -o-text-overflow:ellipsis;
+    }
+  }
+}
+.el-message-box__message p{
+  max-height: 400px;
+  overflow:scroll;
+}
+.import-msg{
+  height: 500px;
+  overflow: auto;
+}
+</style>
+<style>
+  .el-descriptions-item__label.is-bordered-label{
+    font-weight: normal;
+  }
+
+</style>
+ 

+ 354 - 0
src/views/store/storeProductYuyue/index.vue

@@ -0,0 +1,354 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="商品名称" prop="productName">
+        <el-input
+          v-model="queryParams.productName"
+          placeholder="请输入商品名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+<!--      <el-form-item label="状态" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择状态 " clearable size="small">
+          <el-option
+            v-for="dict in statusOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item> -->
+
+      <el-form-item label="创建时间" prop="createTime">
+         <el-date-picker v-model="createTime" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="change"></el-date-picker>
+      </el-form-item>
+
+
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['store:storeProductYuyue:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['store:storeProductYuyue:export']"
+        >导出</el-button>
+      </el-col>
+	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+    <el-tabs type="card" v-model="queryParams.status" @tab-click="handleClick">
+      <el-tab-pane label="待处理" name="0"></el-tab-pane>
+      <el-tab-pane label="已处理" name="1"></el-tab-pane>
+    </el-tabs>
+    <el-table v-loading="loading" :data="storeProductYuyueList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="预约ID" align="center" prop="id" />
+      <el-table-column label="用户ID" align="center" prop="userId" />
+      <el-table-column label="会员昵称" align="center" prop="nickname" />
+      <el-table-column label="会员电话" align="center" prop="phone" width="150px"/>
+      <el-table-column label="状态 " align="center" prop="status" >
+        <template slot-scope="scope">
+            <el-tag prop="status" v-for="(item, index) in statusOptions"    v-if="scope.row.status==item.dictValue">{{item.dictLabel}}</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="商品ID" align="center" prop="productId" />
+      <el-table-column label="商品图片" align="center" width="120">
+        <template slot-scope="scope">
+          <el-popover
+            placement="right"
+            title=""
+            trigger="hover"
+          >
+            <img slot="reference" :src="scope.row.image" width="100">
+            <img :src="scope.row.image" style="max-width: 150px;">
+          </el-popover>
+        </template>
+      </el-table-column>
+      <el-table-column label="商品名称" show-overflow-tooltip align="center" prop="productName" />
+      <el-table-column label="分类" align="center" prop="cateName" />
+      <el-table-column label="售价" align="center" prop="price" >
+          <template slot-scope="scope" >
+              <span v-if="scope.row.price!=null">{{scope.row.price.toFixed(2)}}</span>
+          </template>
+      </el-table-column>
+      <el-table-column label="库存" align="center" prop="stock" />
+      <el-table-column label="类型" align="center" prop="productType" >
+          <template slot-scope="scope">
+              <el-tag prop="productType" v-for="(item, index) in productTypeOptions"    v-if="scope.row.productType==item.dictValue">{{item.dictLabel}}</el-tag>
+          </template>
+      </el-table-column>
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150px">
+        <template slot-scope="scope">
+          <el-button v-if="scope.row.status==0"
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleChuLi(scope.row)"
+            v-hasPermi="['store:storeProductYuyue:edit']"
+          >处理</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['store:storeProductYuyue:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改商品预约对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="商品id" prop="productId">
+          <el-input v-model="form.productId" placeholder="请输入商品id" />
+        </el-form-item>
+        <el-form-item label="用户id" prop="userId">
+          <el-input v-model="form.userId" placeholder="请输入用户id" />
+        </el-form-item>
+        <el-form-item label="状态 ">
+          <el-radio-group v-model="form.status">
+            <el-radio
+              v-for="dict in statusOptions"
+              :key="dict.dictValue"
+              :label="parseInt(dict.dictValue)"
+            >{{dict.dictLabel}}</el-radio>
+          </el-radio-group>
+        </el-form-item>
+
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listStoreProductYuyue, getStoreProductYuyue, delStoreProductYuyue, addStoreProductYuyue, updateStoreProductYuyue, exportStoreProductYuyue } from "@/api/store/storeProductYuyue";
+
+export default {
+  name: "StoreProductYuyue",
+  data() {
+    return {
+
+      createTime:[],
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 商品预约表格数据
+      storeProductYuyueList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 0待处理1已处理 字典
+      statusOptions: [],
+      productTypeOptions: [],
+      isShowOptions: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        productName: null,
+        status: 0,
+        startTime: null,
+        endTime:null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getDicts("fs_store_yuyue").then(response => {
+      this.statusOptions = response.data;
+    });
+    this.getDicts("store_product_type").then((response) => {
+      this.productTypeOptions = response.data;
+    });
+    this.getDicts("store_product_is_show").then((response) => {
+      this.isShowOptions = response.data;
+    });
+  },
+  methods: {
+    change(){
+      if(this.createTime!=null){
+        this.queryParams.startTime=this.createTime[0];
+        this.queryParams.endTime=this.createTime[1];
+      }
+    },
+    /** 查询商品预约列表 */
+    getList() {
+      this.loading = true;
+      console.log(this.createTime)
+      listStoreProductYuyue(this.queryParams).then(response => {
+        this.storeProductYuyueList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        productName: null,
+        status: 0,
+        startTime: null,
+        endTime:null
+      };
+      this.createTime=null;
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    handleClick(){
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加商品预约";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getStoreProductYuyue(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改商品预约";
+      });
+    },
+    handleChuLi(row){
+        this.$confirm('是否确认已处理完成?', "警告", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          }).then(function() {
+            var fo={
+              id:row.id,
+              status:1,
+            }
+            return updateStoreProductYuyue(fo);
+          }).then(() => {
+           this.msgSuccess("修改成功");
+           this.getList();
+          }).catch(function() {});
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateStoreProductYuyue(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              }
+            });
+          } else {
+            addStoreProductYuyue(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              }
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除商品预约编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delStoreProductYuyue(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有商品预约数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportStoreProductYuyue(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 8 - 5
src/views/store/user/index.vue

@@ -111,7 +111,10 @@
       <el-table-column label="用户余额" align="center" prop="nowMoney" />
       <el-table-column label="推广佣金" align="center" prop="brokeragePrice" />
       <el-table-column label="积分" align="center" prop="integral" />
-      <el-table-column label="连续签到天数" align="center" prop="signNum" />
+      <el-table-column label="会员注册时间" align="center" prop="createTime" />
+      <el-table-column label="累计消费金额" align="center" prop="totalAmount" />
+      <el-table-column label="上次消费时间" align="center" prop="lastBuyTime" />
+      <el-table-column label="上次消费金额(元)" align="center" prop="number" />
       <el-table-column label="会员等级" align="center" prop="level" >
           <template slot-scope="scope">
               <el-tag prop="status" v-for="(item, index) in userLevelOptions"    v-if="scope.row.level==item.dictValue">{{item.dictLabel}}</el-tag>
@@ -128,10 +131,10 @@
           </template>
       </el-table-column>
       <el-table-column label="创建时间" align="center" prop="createTime" />
-      <el-table-column label="进线日期" align="center" prop="registerDate" />
-      <el-table-column label="推线编码" align="center" prop="registerCode" />
-      <el-table-column label="渠道" align="center" prop="source" />
-      <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column label="累计佣金" align="center" prop="registerDate" />
+      <el-table-column label="可提现佣金" align="center" prop="registerCode" />
+      <el-table-column label="冻结佣金" align="center" prop="source" />
+      <el-table-column label="已提现佣金" align="center" prop="remark" />
       <el-table-column label="操作" align="center" fixed="right" width="150px" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button