阿拉蕾 vor 1 Jahr
Ursprung
Commit
aef6ef5edc

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

@@ -71,6 +71,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({

+ 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="100px" >
                         <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" width="120px" class-name="small-padding fixed-width">
                     <template slot-scope="scope">
                         <el-button
                         size="mini"

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

@@ -87,6 +87,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>
@@ -170,6 +176,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>

+ 1 - 1
src/views/oms/purchaseOrder/index.vue

@@ -212,7 +212,7 @@
       </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" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
             size="mini"

+ 2 - 2
src/views/oms/supplierProduct/index.vue

@@ -449,8 +449,8 @@ export default {
         taxunitPrice: null,
         unitPrice: null,
         taxRate: null,
-        packagingFlag: 1,
-        shippingFlag: 1,
+        packagingFlag: null,
+        shippingFlag: null,
         image: null,
         spuCode: null,
         skuId: null,

+ 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>

+ 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="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="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() {});
+    },
      
   }
 };

+ 4 - 1
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>