Переглянути джерело

admin前端bug提交 8.10 zyp

阿拉蕾 1 рік тому
батько
коміт
3e8d865779

+ 9 - 1
src/api/store/storeCoupon.js

@@ -33,6 +33,14 @@ export function publishCoupon(data) {
   })
 }
 
+export function batchPublishCoupon(data) {
+  return request({
+    url: '/store/storeCoupon/batchPublish',
+    method: 'post',
+    data: data
+  })
+}
+
 
 
 // 修改优惠券
@@ -59,4 +67,4 @@ export function exportStoreCoupon(query) {
     method: 'get',
     params: query
   })
-}
+}

+ 36 - 1
src/api/store/storeOrder.js

@@ -16,6 +16,14 @@ export function listPromotionOrder(query) {
     params: query
   })
 }
+// 查询健康商城订单列表
+export function listHealthStoreOrder(query) {
+  return request({
+    url: '/store/storeOrder/healthList',
+    method: 'get',
+    params: query
+  })
+}
 export function getCustomerOrderList(query) {
   return request({
     url: '/store/storeOrder/getCustomerOrderList',
@@ -36,7 +44,7 @@ export function getStoreOrder(id) {
   })
 }
 
- 
+
 export function getExpress(id) {
   return request({
     url: '/store/storeOrder/getExpress/' + id,
@@ -62,6 +70,15 @@ export function updateStoreOrder(data) {
   })
 }
 
+// 修改物流编号
+export function updateDeliveryId(data) {
+  return request({
+    url: '/store/storeOrder/editDeliveryId',
+    method: 'put',
+    data: data
+  })
+}
+
 // 删除订单
 export function delStoreOrder(id) {
   return request({
@@ -79,6 +96,15 @@ export function exportStoreOrder(query) {
   })
 }
 
+// 导出订单
+export function exportHealthStoreOrder(query) {
+  return request({
+    url: '/store/storeOrder/healthExport',
+    method: 'get',
+    params: query
+  })
+}
+
 // 导出付尾款订单
 export function exportStorePayRemainOrder(query) {
   return request({
@@ -97,6 +123,15 @@ export function exportStoreOrderItems(query) {
   })
 }
 
+// 导出订单
+export function exportHealthStoreOrderItems(query) {
+  return request({
+    url: '/store/storeOrder/healthExportItems',
+    method: 'get',
+    params: query
+  })
+}
+
 export function createUserOrder(data) {
   return request({
     url: '/store/storeOrder/createUserOrder',

+ 1 - 1
src/views/company/companyMoneyLogs/index.vue

@@ -107,7 +107,7 @@
       <el-table-column label="企业" align="center" prop="companyName" />
       <el-table-column label="金额" align="center" prop="money" />
       <el-table-column label="余额" align="center" prop="balance" />
-
+      <el-table-column label="付款单号" align="center" prop="payCode"  v-if="queryParams.logsType==4 || queryParams.logsType==5 || queryParams.logsType==8 || queryParams.logsType==9 " />
       <el-table-column label="商城订单号" align="center" prop="orderCode"  v-if="queryParams.logsType==4 || queryParams.logsType==5"  />
       <el-table-column label="交易单号" align="center" prop="bankTransactionId"  v-if="queryParams.logsType==4 || queryParams.logsType==5 || queryParams.logsType==8 || queryParams.logsType==9 " />
       <el-table-column label="支付类型" align="center" prop="payTypeCode"  v-if="queryParams.logsType==4 || queryParams.logsType==5 || queryParams.logsType==8 || queryParams.logsType==9 " />

+ 9 - 4
src/views/company/companySms/index.vue

@@ -11,7 +11,7 @@
               />
         </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>
@@ -35,10 +35,15 @@
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="ID" align="center" prop="smsId" />
       <el-table-column label="公司" align="center" prop="companyName" />
-      <el-table-column label="剩余短信" align="center" prop="remainSmsCount" />
       <el-table-column label="总短信数" align="center" prop="totalSmsCount" />
+      <el-table-column label="发送条数" align="center" prop="sendSmsCount" />
+      <el-table-column label="成功条数" align="center" prop="successSmsCount" />
+      <el-table-column label="失败条数" align="center" prop="failSmsCount" />
+      <el-table-column label="扣费条数" align="center" prop="debitSmsCount" />
+      <el-table-column label="剩余短信" align="center" prop="remainSmsCount" />
+
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -112,7 +117,7 @@ export default {
   created() {
     getCompanyList().then(response => {
       this.companys = response.data;
-       
+
     });
     this.getList();
   },

+ 12 - 10
src/views/company/components/companyProfit.vue

@@ -16,7 +16,7 @@
         <span class="color-danger">当前状态:
            <el-tag prop="status" v-for="(item, index) in statusOptions"    v-if="profit.profitStatus==item.dictValue">{{item.dictLabel}}</el-tag>
         </span>
-       
+
         <div class="operate-button-container" >
           <el-button size="mini" @click="handleAudit(1)" v-if="profit.profitStatus==1"  v-hasPermi="['company:companyProfit:audit1']" >商务审核</el-button>
         </div>
@@ -26,12 +26,12 @@
         <div class="operate-button-container" >
           <el-button size="mini" @click="handleAudit(3)" v-if="profit.profitStatus==3"  v-hasPermi="['company:companyProfit:audit3']" >付款</el-button>
         </div>
-         
+
       </div>
       <div style="margin-top: 20px"  v-if="profit!=null">
         <svg-icon icon-class="marker" style="color: #606266"></svg-icon>
         <span class="font-small">基本信息
-      
+
         </span>
       </div>
       <div class="table-layout"  v-if="profit!=null">
@@ -65,7 +65,7 @@
         </el-row>
         <el-row>
           <el-col :span="12" class="table-cell">{{profit.remark}}</el-col>
-          <el-col :span="12" class="table-cell"> 
+          <el-col :span="12" class="table-cell">
             <el-popover
             placement="right"
             title=""
@@ -130,7 +130,7 @@
         <el-button type="primary" @click="submitForm">确 定</el-button>
       </div>
     </el-dialog>
-      
+
   </div>
 </template>
 
@@ -157,6 +157,7 @@ export default {
       form:{
         status:1,
         imgUrl:null,
+        remark:null,
       }
     };
   },
@@ -173,7 +174,7 @@ export default {
         else{
           this.msgError(res.msg);
         }
-        
+
     },
     beforeUpload(file) {
       const isLt1M = file.size / 1024 / 1024 < 1;
@@ -185,6 +186,7 @@ export default {
     handleAudit(auditType) {
       this.type=auditType;
       this.open = true;
+      this.form.remark = null;
       this.title = "审核提现";
     },
     /** 提交按钮 */
@@ -194,7 +196,7 @@ export default {
           this.form.profitId=this.profitId
           console.log(this.type)
           if(this.type==1){
-           
+
             audit1(this.form).then(response => {
               if (response.code === 200) {
                 this.msgSuccess("审核成功");
@@ -221,7 +223,7 @@ export default {
               }
             });
           }
-          
+
         }
       });
     },
@@ -231,10 +233,10 @@ export default {
       getCompanyProfit(profitId).then(response => {
         this.profit = response.profit;
         this.logs = response.logs;
-       
+
       });
     },
-    
+
   }
 };
 </script>

+ 59 - 0
src/views/company/statistics/smsLogs.vue

@@ -40,6 +40,15 @@
                       </el-option>
                     </el-select>
                 </el-form-item>
+                <el-form-item label="筛选日期" prop="createTime">
+                  <el-date-picker clearable size="small" style="width: 205.4px"
+                    v-model="dateRange"
+                    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"   @click="smsLogs">搜索</el-button>
                 </el-form-item>
@@ -48,6 +57,29 @@
                   <div class="echart-box">
                     <div id="echart-customer"></div>
                   </div>
+                  <div class="table-box">
+                        <el-table
+                        :data="list"
+                        border
+                        :summary-method="getSummaries"
+                        show-summary
+                        max-height="500"
+                        style="width: 100%;">
+                        <el-table-column
+                          prop="nickName"
+                          label="员工姓名">
+                        </el-table-column>
+                        <el-table-column
+                          prop="smsCount"
+                          label="发送数量">
+                        </el-table-column>
+                        <el-table-column
+                          prop="successCount"
+                          label="成功数量">
+                        </el-table-column>
+
+                      </el-table>
+                  </div>
               </div>
             </div>
 
@@ -79,6 +111,7 @@ export default {
        deptId:undefined,
        userIds:undefined,
        users:[],
+       dateRange:[],
        chart: null,
        options: [{
           value: '1',
@@ -236,6 +269,32 @@ export default {
         this.chart=echarts.init(document.getElementById("echart-customer"));
         this.chart.setOption(option,true);
       },
+      getSummaries(param) {
+        const { columns, data } = param;
+        const sums = [];
+        columns.forEach((column, index) => {
+          if (index === 0) {
+            sums[index] = '总计';
+            return;
+          }
+          const values = data.map(item => Number(item[column.property]));
+          if (!values.every(value => isNaN(value))) {
+            sums[index] = values.reduce((prev, curr) => {
+              const value = Number(curr);
+              if (!isNaN(value)) {
+                return prev + curr;
+              } else {
+                return prev;
+              }
+            }, 0);
+            sums[index] += ' ';
+          } else {
+            sums[index] = '';
+          }
+        });
+
+        return sums;
+      }
 
   }
 }

+ 10 - 0
src/views/company/statistics/voiceLogs.vue

@@ -38,6 +38,15 @@
                       </el-option>
                     </el-select>
                 </el-form-item>
+                <el-form-item label="筛选日期" prop="startTime">
+                  <el-date-picker clearable size="small" style="width: 205.4px"
+                    v-model="dateRange"
+                    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"   @click="getVoiceLogs">搜索</el-button>
                 </el-form-item>
@@ -112,6 +121,7 @@ export default {
        deptId:undefined,
        userIds:undefined,
        users:[],
+       dateRange:[],
        chart: null,
        options: [{
           value: '1',

+ 34 - 7
src/views/crm/components/customerAssignList.vue

@@ -11,7 +11,34 @@
               />
         </el-select>
       </el-form-item>
-        
+      <el-form-item label="操作人(平台)" prop="sysUserName">
+        <el-input
+          v-model="queryParams.sysUserName"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作人(公司)" prop="companyUserName">
+        <el-input
+          v-model="queryParams.companyUserName"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作时间" prop="createTime">
+        <el-date-picker clearable size="small" style="width: 205.4px"
+          v-model="dateRange"
+          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>
@@ -62,7 +89,7 @@
       </el-dialog>
     </div>
   </template>
-  
+
   <script>
   import { listCustomerAssign,   cancelCustomerAssign } from "@/api/crm/customerAssign";
   import { getCompanyList } from "@/api/company/company";
@@ -77,6 +104,7 @@
         },
         customers:[],
         companys:[],
+        dateRange:[],
         // 遮罩层
         loading: true,
         // 选中数组
@@ -105,7 +133,7 @@
           sysUserId: null,
           assignType: null,
         },
-        
+
       };
     },
     created() {
@@ -133,13 +161,13 @@
         /** 查询客户分配记录列表 */
         getList() {
             this.loading = true;
-            listCustomerAssign(this.queryParams).then(response => {
+            listCustomerAssign(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
             this.customerAssignList = response.rows;
             this.total = response.total;
             this.loading = false;
             });
         },
-         
+
         /** 搜索按钮操作 */
         handleQuery() {
             this.queryParams.pageNum = 1;
@@ -169,8 +197,7 @@
                 this.msgSuccess("操作成功");
             }).catch(function() {});
         },
-         
+
     }
   };
   </script>
-  

+ 5 - 5
src/views/crm/components/customerLogsList.vue

@@ -3,6 +3,7 @@
         <el-table v-loading="loading" :data="list" >
             <el-table-column label="ID" align="center" prop="logsId" />
             <el-table-column label="标题" align="center" prop="title" />
+            <el-table-column label="用户创建人" align="center" prop="userName" />
             <el-table-column label="备注" align="center" prop="remark" />
             <el-table-column label="时间" align="center" prop="createTime" />
         </el-table>
@@ -16,14 +17,14 @@
 
     </div>
 </template>
-  
+
 <script>
     import { listCustomerLogs, getCustomerLogs, delCustomerLogs, addCustomerLogs, updateCustomerLogs, exportCustomerLogs } from "@/api/crm/customerLogs";
     export default {
         name: "customerVisit",
         data() {
             return {
-        
+
                 // 遮罩层
                 loading: true,
                 // 总条数
@@ -38,7 +39,7 @@
             };
         },
         created() {
-          
+
         },
         methods: {
             getData(customerId){
@@ -57,6 +58,5 @@
         }
     };
 </script>
-<style lang="scss" scoped> 
+<style lang="scss" scoped>
 </style>
- 

+ 20 - 2
src/views/crm/customer/index.vue

@@ -77,6 +77,17 @@
           start-placeholder="开始日期" end-placeholder="结束日期">
         </el-date-picker>
       </el-form-item>
+      <el-form-item label="领取时间" prop="receiveTimeRange">
+        <el-date-picker
+          style="width:205.4px"
+          clearable size="small"
+          v-model="receiveTimeRange"
+          type="daterange"
+          value-format="yyyy-MM-dd"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
       <el-form-item label="客户来源" prop="source">
         <el-select multiple v-model="sourceArr" placeholder="请选择客户来源" clearable size="small">
            <el-option
@@ -186,9 +197,9 @@
       </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="receiveTime" />
       <el-table-column label="创建时间" align="center" prop="createTime" />
-      <el-table-column label="最后一次跟进时间" align="center" prop="receiveTime" width="180">
+      <el-table-column label="最后一次跟进时间" align="center" prop="lastTime" width="180">
       </el-table-column>
       <el-table-column label="入公海时间" align="center" prop="poolTime" width="180">
       </el-table-column>
@@ -359,6 +370,7 @@ export default {
         open:false,
       },
       deptOptions:[],
+      receiveTimeRange:[],
       tagId:null,
       deptId:undefined,
       companyId:undefined,
@@ -550,6 +562,12 @@ export default {
     /** 查询客户列表 */
     getList() {
       this.loading = true;
+      if(this.receiveTimeRange!=null&&this.receiveTimeRange.length==2){
+        this.queryParams.receiveTimeRange=this.receiveTimeRange[0]+"--"+this.receiveTimeRange[1]
+      }
+      else{
+        this.queryParams.receiveTimeRange=null;
+      }
       if(this.ctsTypeArr.length>0){
         this.queryParams.customerType=this.ctsTypeArr.toString();
       }

+ 36 - 5
src/views/crm/customer/line.vue

@@ -54,6 +54,16 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="multiple"
+          @click="handleEditSource"
+          v-hasPermi="['crm:customer:editSource']"
+        >修改客户来源</el-button>
+      </el-col>
       <el-col :span="1.5">
         <el-button
           type="primary"
@@ -174,7 +184,7 @@
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -307,10 +317,14 @@
        <assign-company  ref="assignCompany" @close="closeAssign"   />
     </el-dialog>
 
-    <el-dialog :title="assignList.title" :visible.sync="assignList.open" width="1000px" append-to-body>
+    <el-dialog :title="assignList.title" :visible.sync="assignList.open" width="1200px" append-to-body>
       <customer-assign-list  ref="assignList" @close="closeAssignList"></customer-assign-list>
     </el-dialog>
 
+    <el-dialog :title="source.title" :visible.sync="source.open" width="600px" append-to-body>
+      <edit-customer-source  ref="editSource" @close="closeSource"></edit-customer-source>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -319,14 +333,15 @@ import { assignCustomer,importLineTemplate,listLineCustomer, getLineCustomer, de
 import {getCitys} from "@/api/store/city";
 import { getToken } from "@/utils/auth";
 import { isAdmin } from "@/api/system/user";
+import editCustomerSource from '../components/editCustomerSource.vue';
 
 import customerAssignList from '../components/customerAssignList.vue';
 import assignCompany from '../components/assignCompany.vue';
 
 export default {
   name: "Customer",
-  components: { customerAssignList,assignCompany },
-  
+  components: { customerAssignList,assignCompany,editCustomerSource },
+
   data() {
     return {
       assignList:{
@@ -341,6 +356,10 @@ export default {
       companys:[],
       noAssignCount:0,
       assignCount:0,
+      source:{
+        title:"修改客户来源",
+        open:false,
+      },
       assign:{
         title:"分配客户",
         open:false,
@@ -466,6 +485,18 @@ export default {
     this.getList();
   },
   methods: {
+    handleEditSource(){
+      this.source.open=true;
+      var that=this;
+      setTimeout(() => {
+        that.$refs.editSource.handleEdit(that.ids);
+      }, 200);
+
+    },
+    closeSource(){
+      this.source.open=false;
+      this.getList();
+    },
     handleAssignList(){
       this.assignList.open=true;
       var that=this;
@@ -604,7 +635,7 @@ export default {
       // }else{
       //      this.msgError("无权限操作!");
       // }
-      
+
       // //获取所有CUSTOMER列表
       // var cutsomers=[];
       // this.customerList.forEach(function(value,index,array){

+ 60 - 6
src/views/crm/customerVisit/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 v-model="queryParams.companyId" placeholder="请选择公司名" clearable size="small">
               <el-option
@@ -31,7 +31,24 @@
               />
         </el-select>
       </el-form-item>
-      
+      <el-form-item label="客户名称" prop="customerName">
+        <el-input
+          v-model="queryParams.customerName"
+          placeholder="请输入客户名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="手机" prop="mobile">
+        <el-input
+          v-model="queryParams.mobile"
+          placeholder="请输入手机"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"/>
+      </el-form-item>
+
       <el-form-item label="跟进时间" prop="createTime">
         <el-date-picker clearable size="small" style="width: 205.4px"
           v-model="dateRange"
@@ -41,6 +58,28 @@
            >
         </el-date-picker>
       </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="receiveTimeRange">
+        <el-date-picker
+          style="width:205.4px"
+          clearable size="small"
+          v-model="receiveTimeRange"
+          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>
@@ -91,18 +130,19 @@
             <template slot-scope="scope">
               <el-image  v-for="(img) in parsePhoto(scope.row.photos)"
                 style="width: 30px; height: 30px;margin-right:5px"
-                :src="img" 
+                :src="img"
                 :preview-src-list="parsePhoto(scope.row.photos)">
               </el-image>
             </template>
           </el-table-column>
       <el-table-column label="跟进时间" align="center" prop="createTime" />
+      <el-table-column label="客户创建时间" align="center" prop="customerCreateTime" />
       <el-table-column label="下次联系时间" align="center" prop="nextTime" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.nextTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      
+
       <el-table-column label="操作" fixed="right" width="100px" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -121,7 +161,7 @@
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -130,7 +170,7 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"/>
 
-    
+
     <el-drawer
      size="75%"
       :title="show.title" :visible.sync="show.open">
@@ -151,6 +191,7 @@ export default {
     return {
       customerUserStatusOptions:[],
       typeOptions:[],
+      receiveTimeRange:[],
       show:{
         title:"客户详情",
         open:false,
@@ -171,6 +212,7 @@ export default {
       total: 0,
       // 跟进表格数据
       customerVisitList: [],
+      createTimeRange:[],
       // 弹出层标题
       title: "",
       // 是否显示弹出层
@@ -237,6 +279,18 @@ export default {
     },
     /** 查询跟进列表 */
     getList() {
+      if(this.createTimeRange!=null&&this.createTimeRange.length==2){
+        this.queryParams.createTimeRange=this.createTimeRange[0]+"--"+this.createTimeRange[1]
+      }
+      else{
+        this.queryParams.createTimeRange=null;
+      }
+      if(this.receiveTimeRange!=null&&this.receiveTimeRange.length==2){
+        this.queryParams.receiveTimeRange=this.receiveTimeRange[0]+"--"+this.receiveTimeRange[1]
+      }
+      else{
+        this.queryParams.receiveTimeRange=null;
+      }
       this.loading = true;
       listCustomerVisit(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
         this.customerVisitList = response.rows;

+ 109 - 0
src/views/store/components/addBatchPublish.vue

@@ -0,0 +1,109 @@
+<template>
+    <div>
+            <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+                <el-form-item label="优惠券数量" >
+                    {{ids.length}}个
+                </el-form-item>
+                <el-form-item label="优惠券开始时间" prop="startTime">
+                <el-date-picker clearable size="small" style="width: 200px"
+                    v-model="form.startTime"
+                    type="date"
+                    value-format="yyyy-MM-dd"
+                    placeholder="选择开始时间">
+                </el-date-picker>
+                </el-form-item>
+                <el-form-item label="优惠券结束时间" prop="limitTime">
+                <el-date-picker clearable size="small" style="width: 200px"
+                    v-model="form.limitTime"
+                    type="date"
+                    value-format="yyyy-MM-dd"
+                    placeholder="选择结束时间">
+                </el-date-picker>
+                </el-form-item>
+                <el-form-item label="优惠券领取数量" prop="totalCount">
+                <el-input-number v-model="form.totalCount" :min="0" placeholder="请输入优惠券领取数量" />
+                </el-form-item>
+            </el-form>
+             <div   class="footer">
+            <el-button type="primary" @click="submitForm">确 定</el-button>
+            <el-button @click="cancel">取 消</el-button>
+        </div>
+    </div>
+</template>
+
+<script>
+    import { batchPublishCoupon  } from "@/api/store/storeCoupon";
+export default {
+        name: "batchPublish",
+        data() {
+            return {
+                statusOptions:[],
+                ids:[],
+                // 表单参数
+                form: {},
+                // 表单校验
+                rules: {
+                    totalCount: [
+                    { required: true, message: "数量不能为空", trigger: "blur" }
+                    ],
+                    startTime: [
+                    { required: true, message: "开始时间不能为空", trigger: "blur" }
+                    ],
+                    limitTime: [
+                    { required: true, message: "结束时间不能为空", trigger: "blur" }
+                    ],
+                }
+            };
+        },
+        created() {
+
+        },
+        methods: {
+            cancel(){
+                this.$emit('close');
+            },
+            handleBatch(ids) {
+                console.log(ids)
+                this.ids=ids;
+
+            },
+            /** 提交按钮 */
+            submitForm() {
+                this.$refs["form"].validate(valid => {
+                    if (valid) {
+                        this.myloading = this.$loading({
+                            lock: true,
+                            text: '处理中...',
+                            spinner: 'el-icon-loading',
+                            background: 'rgba(0, 0, 0, 0.7)'
+                        });
+                        this.form.ids=this.ids.toString();
+                        batchPublishCoupon(this.form).then(response => {
+                            this.myloading.close()
+                            if (response.code === 200) {
+                                this.msgSuccess("发布成功");
+                                this.$emit('close');
+                            }
+                        });
+                    }
+                });
+            },
+        }
+    };
+</script>
+<style lang="scss" scoped>
+.contents{
+    height: 100%;
+    background-color: #fff;
+    padding: 20px;
+
+}
+.footer{
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
+}
+</style>
+
+
+

+ 61 - 13
src/views/store/components/productOrder.vue

@@ -43,6 +43,9 @@
         <div class="operate-button-container" v-if="order.isPayRemain!=null&&order.isPayRemain==1"  v-hasPermi="['store:storeOrder:auditPayRemain']"  >
           <el-button size="mini" @click="auditPayRemain()" >尾款审核</el-button>
         </div>
+        <div class="operate-button-container" >
+          <el-button size="mini" @click="editDelivery()"  v-hasPermi="['store:storeOrder:editDeliveryId']" >修改物流单号</el-button>
+        </div>
         <!-- <div class="operate-button-container" v-show="order.status===2">
           <el-button size="mini"  >去发货</el-button>
           <el-button size="mini" >备注订单</el-button>
@@ -245,7 +248,7 @@
               </span>
           </el-descriptions-item>
       </el-descriptions>
-      
+
       <div style="margin-top: 20px">
         <span class="font-small">支付信息</span>
       </div>
@@ -262,7 +265,7 @@
           <el-table-column label="创建时间" align="center" prop="createTime" />
           <el-table-column label="支付时间" align="center" prop="payTime" />
       </el-table>
-      
+
       <div style="margin-top: 20px">
         <!-- <svg-icon icon-class="marker" style="color: #606266"></svg-icon> -->
         <span class="font-small">分佣信息</span>
@@ -317,6 +320,19 @@
         <el-button type="primary" @click="submitEditForm">确 定</el-button>
       </div>
     </el-dialog>
+
+    <el-dialog :title="editDy.title" :visible.sync="editDy.open" width="600px" append-to-body>
+      <el-form ref="editDyForm" :model="editDyForm" :rules="editDyRules" label-width="100px">
+        <el-form-item label="物流单号" prop="deliveryId"  >
+          <el-input v-model="editDyForm.deliveryId" placeholder="请输入物流单号" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitEditDyForm">确 定</el-button>
+        <el-button @click="editDy.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+
     <el-dialog :title="expressDialog.title" :visible.sync="expressDialog.open" width="600px" append-to-body>
       <div  v-hasPermi="['store:storeOrder:syncExpress']"  >
         <el-button size="mini" @click="syncExpress()" >同步快递鸟物流状态</el-button>
@@ -346,7 +362,7 @@
         <el-button size="mini" @click="updateExpress()" >同步物流发货</el-button>
       </div>
       <div class="table-layout"  v-if="erpOrder!=null">
-       
+
         <el-row>
           <el-col :span="6" class="table-cell-title">订单编号</el-col>
           <el-col :span="6" class="table-cell-title">是否代收</el-col>
@@ -356,7 +372,7 @@
         <el-row>
           <el-col :span="6" class="table-cell">
             {{erpOrder.code}}
-            
+
           </el-col>
           <el-col :span="6" class="table-cell">
             {{erpOrder.cod?'是':'否'}}
@@ -367,7 +383,7 @@
           <el-col :span="6" class="table-cell">
             {{erpOrder.express_name}}
           </el-col>
-          
+
         </el-row>
         <el-row>
           <el-col :span="6" class="table-cell-title">收货人</el-col>
@@ -378,7 +394,7 @@
         <el-row>
           <el-col :span="6" class="table-cell">
             {{erpOrder.receiver_name}}
-            
+
           </el-col>
           <el-col :span="6" class="table-cell">
             {{erpOrder.receiver_mobile}}
@@ -389,7 +405,7 @@
           <el-col :span="6" class="table-cell">
             {{erpOrder.deliverys!=null&&erpOrder.deliverys.length>0?erpOrder.deliverys[0].mail_no:''}}
           </el-col>
-          
+
         </el-row>
       </div>
     </el-dialog>
@@ -397,7 +413,7 @@
 </template>
 
 <script>
-import {auditPayRemain,addTuiMoney,syncExpress,updateExpress,getEroOrder,refundOrderMoney, editTuiMoney,getExpress,finishOrder,listStoreOrder, getStoreOrder, delStoreOrder, addStoreOrder, updateStoreOrder, exportStoreOrder } from "@/api/store/storeOrder";
+import {auditPayRemain,addTuiMoney,syncExpress,updateExpress,getEroOrder,refundOrderMoney, editTuiMoney,getExpress,finishOrder,listStoreOrder, getStoreOrder, delStoreOrder, addStoreOrder, updateStoreOrder, exportStoreOrder,updateDeliveryId } from "@/api/store/storeOrder";
 export default {
   name: "order",
   data() {
@@ -418,10 +434,23 @@ export default {
         title:"",
         open:false,
       },
+      editDy:{
+        title:"修改物流单号",
+        open:false,
+      },
+      editDyForm:{
+        deliveryId:null,
+      },
       editForm:{
         orderType:null,
         mark:"",
       },
+
+      editDyRules:{
+        deliveryId: [
+          { required: true, message: "物流单号不能为空", trigger: "blur" }
+        ],
+      },
       editRules:{
 
       },
@@ -498,7 +527,7 @@ export default {
             this.erpOrder=response.data.orders[0]
           }
           console.log(this.erpOrder)
-          
+
       });
     },
     showExpress(){
@@ -508,7 +537,7 @@ export default {
           if(this.express!=null&&this.express.Traces!=null){
               this.traces=this.express.Traces
           }
-          
+
       });
 
     },
@@ -522,7 +551,21 @@ export default {
               this.getOrder(this.order.id);
             }
           });
-       
+
+        }
+      });
+    },
+    submitEditDyForm(){
+        this.$refs["editDyForm"].validate(valid => {
+        if (valid) {
+          updateDeliveryId(this.editDyForm).then(response => {
+            if (response.code === 200) {
+              this.msgSuccess("操作成功");
+              this.editDy.open = false;
+              this.getOrder(this.order.id);
+            }
+          });
+
         }
       });
     },
@@ -616,6 +659,11 @@ export default {
         this.editForm.orderType=this.order.orderType.toString();
         this.editForm.id=this.order.id;
     },
+    editDelivery(){
+      this.editDy.open = true;
+      this.editDyForm.id = this.order.id;
+      this.editDyForm.deliveryId = this.order.deliveryId;
+    },
     getOrder(orderId){
         this.orderId=orderId;
         getStoreOrder(orderId).then(response => {
@@ -633,9 +681,9 @@ export default {
 <style scoped>
 .order-content{
   margin: 10px;
-  
+
 }
- 
+
 .operate-container {
   background: #F2F6FC;
   height: 60px;

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

@@ -38,6 +38,15 @@
                       </el-option>
                     </el-select>
                 </el-form-item>
+                <el-form-item label="筛选日期" prop="createTime">
+                  <el-date-picker clearable size="small" style="width: 205.4px"
+                    v-model="dateRange"
+                    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"   @click="storeOrder">搜索</el-button>
                 </el-form-item>
@@ -77,6 +86,7 @@ export default {
        deptId:undefined,
        userIds:undefined,
        users:[],
+       dateRange:[],
        chart: null,
        options: [{
           value: '1',

+ 10 - 0
src/views/store/statistics/storePayment.vue

@@ -38,6 +38,15 @@
                 </el-option>
               </el-select>
           </el-form-item>
+          <el-form-item label="筛选日期" prop="createTime">
+                  <el-date-picker clearable size="small" style="width: 205.4px"
+                    v-model="dateRange"
+                    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"   @click="storePayment">搜索</el-button>
           </el-form-item>
@@ -77,6 +86,7 @@ return {
  deptId:undefined,
  userIds:undefined,
  users:[],
+ dateRange:[],
  chart: null,
  options: [{
     value: '1',

+ 79 - 8
src/views/store/storeCoupon/index.vue

@@ -10,6 +10,37 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="优惠券面值" prop="couponPrice">
+        <el-input
+          v-model="queryParams.couponPrice"
+          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="item in couponTypeOptions"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+              />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="套餐分类" v-if="queryParams.type==1" prop="packageCateIds">
+          <el-select v-model="queryParams.packageCateIds" clearable placeholder="请选择套餐分类" size="small">
+            <el-option
+              v-for="item in cateOptions"
+              :key="item.dictValue"
+              :label="item.dictLabel"
+              :value="item.dictValue">
+            </el-option>
+          </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>
@@ -26,7 +57,27 @@
           v-hasPermi="['store:storeCoupon:add']"
         >新增</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="['store:storeCoupon:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          size="mini"
+          :disabled="multiple"
+          @click="handleBatchPublish"
+          v-hasPermi="['store:storeCoupon:batchPublish']"
+        >批量发布</el-button>
+      </el-col>
+
 	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -75,7 +126,7 @@
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -106,7 +157,7 @@
             <el-radio-group v-model="form.type">
               <el-radio :label="item.dictValue" v-for="item in couponTypeOptions" >{{item.dictLabel}}</el-radio>
             </el-radio-group>
-        </el-form-item> 
+        </el-form-item>
         <el-form-item label="套餐分类" v-if="form.type=='1'" prop="packageCateIds">
           <el-select v-model="form.packageCateIds" multiple placeholder="请选择">
             <el-option
@@ -152,7 +203,7 @@
         <el-form-item label="优惠券领取数量" prop="totalCount">
           <el-input-number v-model="publishForm.totalCount" :min="0" placeholder="请输入优惠券领取数量" />
         </el-form-item>
-      
+
         <el-form-item label="状态">
             <el-radio-group v-model="publishForm.status">
               <el-radio :label="item.dictValue" v-for="item in statusOptions" >{{item.dictLabel}}</el-radio>
@@ -164,14 +215,18 @@
         <el-button @click="cancelPublish">取 消</el-button>
       </div>
     </el-dialog>
+    <el-dialog :title="batchPublish.title" :visible.sync="batchPublish.open" width="500px" append-to-body>
+       <add-batch-publish ref="batchPublish" @close="closeBatchPublish()"></add-batch-publish>
+    </el-dialog>
   </div>
 </template>
 
 <script>
 import { publishCoupon,listStoreCoupon, getStoreCoupon, delStoreCoupon, addStoreCoupon, updateStoreCoupon, exportStoreCoupon } from "@/api/store/storeCoupon";
-
+import addBatchPublish from "../components/addBatchPublish.vue";
 export default {
   name: "StoreCoupon",
+  components:{addBatchPublish},
   data() {
     return {
       cateOptions:[],
@@ -180,6 +235,10 @@ export default {
         title:"发布",
         open:false,
       },
+      batchPublish:{
+        title:"批量发布",
+        open:false,
+      },
       statusOptions:[],
       // 遮罩层
       loading: true,
@@ -252,7 +311,7 @@ export default {
           { required: true, message: "是否删除不能为空", trigger: "blur" }
         ]
 
-        
+
       },
       publishForm: {
         totalCount:0,
@@ -284,7 +343,7 @@ export default {
     this.getDicts("store_coupon_type").then((response) => {
       this.couponTypeOptions = response.data;
     });
-    
+
     this.getList();
   },
   methods: {
@@ -386,6 +445,17 @@ export default {
         }
       });
     },
+    handleBatchPublish(){
+      this.batchPublish.open = true;
+      var that = this;
+      setTimeout(() => {
+        that.$refs.batchPublish.handleBatch(that.ids);
+      }, 200);
+    },
+    closeBatchPublish(){
+      this.batchPublish.open = false;
+      this.getList();
+    },
     handlePublish(row){
       this.publish.open=true;
       this.publishForm.title=row.title;
@@ -433,7 +503,8 @@ export default {
         }).then(response => {
           this.download(response.msg);
         }).catch(function() {});
-    }
+    },
+
   }
 };
 </script>

+ 35 - 2
src/views/store/storeCouponIssue/index.vue

@@ -1,6 +1,39 @@
 <template>
   <div class="app-container">
-
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="优惠券名称" prop="couponName">
+        <el-input
+          v-model="queryParams.couponName"
+          placeholder="请输入优惠券名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="优惠券面值" prop="couponPrice">
+        <el-input
+          v-model="queryParams.couponPrice"
+          placeholder="请输入优惠券面值"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="优惠券类型" prop="couponType">
+        <el-select   v-model="queryParams.couponType" placeholder="请选择优惠券类型" clearable size="small" >
+         <el-option
+                v-for="item in couponTypeOptions"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+              />
+        </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>
+      </el-form-item>
+    </el-form>
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
         <el-button
@@ -59,7 +92,7 @@
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"

+ 25 - 3
src/views/store/storeCouponUser/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
-      
+
       <el-form-item label="优惠券名称" prop="couponTitle">
         <el-input
           v-model="queryParams.couponTitle"
@@ -26,6 +26,28 @@
         <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="['company:companySmsLogs: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:storeCouponUser:export']"
+        >导出</el-button>
+      </el-col>
+	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
 
     <el-table   height="500" border   v-loading="loading" :data="storeCouponUserList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
@@ -47,7 +69,7 @@
           </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -55,7 +77,7 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
- 
+
   </div>
 </template>
 

+ 1039 - 0
src/views/store/storeOrder/healthStoreList.vue

@@ -0,0 +1,1039 @@
+<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="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
+
+          v-model="queryParams.companyUserNickName"
+          placeholder="请输入员工姓名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <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="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="payType">
+         <el-select style="width: 200px" v-model="queryParams.payType" placeholder="请选择支付方式" clearable size="small" >
+         <el-option
+                v-for="item in payTypeOptions"
+                :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:healthStoreOrder: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:healthStoreOrder: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="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="payPrice" >
+          <template slot-scope="scope">
+              <span v-if="scope.row.payPrice!=null">{{scope.row.payPrice.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="orderType" >
+          <template slot-scope="scope">
+              <el-tag prop="status" v-for="(item, index) in orderTypeOptions"    v-if="scope.row.orderType==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="物流结算状态" align="center" prop="deliveryPayStatus" >
+          <template slot-scope="scope">
+              <el-tag prop="status" v-for="(item, index) in deliveryPayStatusOptions"    v-if="scope.row.deliveryPayStatus==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,exportHealthStoreOrderItems,createUserOrder,listHealthStoreOrder, getStoreOrder, delStoreOrder, addStoreOrder, updateStoreOrder, exportHealthStoreOrder } 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;
+      }
+
+      listHealthStoreOrder(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 exportHealthStoreOrder(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 exportHealthStoreOrderItems(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>
+

+ 17 - 31
src/views/store/storeOrder/promotionList.vue

@@ -1,20 +1,6 @@
 <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
@@ -45,10 +31,10 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-     
+
       <el-form-item label="员工姓名" prop="companyUserNickName">
         <el-input
-          
+
           v-model="queryParams.companyUserNickName"
           placeholder="请输入员工姓名"
           clearable
@@ -166,7 +152,7 @@
           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">
@@ -203,7 +189,7 @@
                   <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> -->
@@ -237,7 +223,7 @@
           </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
@@ -255,7 +241,7 @@
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -423,7 +409,7 @@
        <div class="import-msg" v-html="importMsg">
        </div>
     </el-dialog>
-    
+
   </div>
 </template>
 
@@ -565,7 +551,7 @@ export default {
         isRemind: null,
         isSysDel: null,
         deptId:null,
-     
+
       },
       // 表单参数
       form: {
@@ -580,7 +566,7 @@ export default {
         addressId: [
           { required: true, message: "收货信息不能为空" }
         ],
-        
+
       },
       upload: {
         // 是否显示弹出层(用户导入)
@@ -624,7 +610,7 @@ export default {
     this.getDicts("store_delivery_pay_status").then((response) => {
       this.deliveryPayStatusOptions = response.data;
     });
-    
+
     this.getList();
   },
   methods: {
@@ -763,7 +749,7 @@ export default {
       else{
         this.queryParams.deliverySendTimeRange=null;
       }
-      
+
       listPromotionOrder(this.queryParams).then(response => {
         this.storeOrderList = response.rows;
         this.total = response.total;
@@ -780,7 +766,7 @@ export default {
       this.form = {
         addressId:null,
         userId:null,
-        
+
       };
       this.resetForm("form");
     },
@@ -829,7 +815,7 @@ export default {
               this.getList();
             }
           });
-       
+
         }
       });
     },
@@ -837,7 +823,7 @@ export default {
     handleDelete(row) {
        this.products.splice(this.products.findIndex(item => item.id === row.id), 1)
        this.compute();
-       
+
     },
     /** 导出按钮操作 */
     handleExport() {
@@ -934,7 +920,7 @@ export default {
       //   });
       this.getList();
     },
-     
+
         /** 查询部门下拉树结构 */
     getTreeselect() {
         var that=this;
@@ -976,7 +962,7 @@ export default {
     max-width: 200px;
     text-align: left;
     .goods-title{
-      
+
       overflow:hidden;
       white-space: nowrap;
       text-overflow: ellipsis;
@@ -999,4 +985,4 @@ export default {
   }
 
 </style>
- 
+