Jelajahi Sumber

Merge remote-tracking branch 'origin/master_bly' into master_bly

lxb 6 hari lalu
induk
melakukan
8f25769562

+ 35 - 4
src/views/course/courseWatchLog/index.vue

@@ -66,6 +66,11 @@
         <el-date-picker v-model="updateTime" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange"
                         range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="updateChange"></el-date-picker>
       </el-form-item>
+      <el-form-item label="完课时间" prop="finishTime">
+        <el-date-picker v-model="finishTime" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange"
+                        range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="finishTimeChange"></el-date-picker>
+      </el-form-item>
+
 
 
       <el-form-item>
@@ -174,6 +179,7 @@ export default {
       activeName:"00",
       createTime:null,
       updateTime:null,
+      finishTime:null,
       courseLists:[],
       videoList:[],
       logTypeOptions:[],
@@ -221,6 +227,8 @@ export default {
         eTime:null,
         upSTime:null,
         upETime:null,
+        finishSTime:null,
+        finishETime:null,
         scheduleStartTime: null,
         scheduleEndTime: null,
         sourceType: 1
@@ -401,6 +409,23 @@ export default {
         this.queryParams.upETime = null;
       }
     },
+    finishTimeChange(finishTime){
+      if (finishTime && finishTime.length >= 2) {
+        if(!this.checkDateRangeLimit(finishTime)){
+          this.finishTime = null;
+          this.queryParams.finishSTime=null;
+          this.queryParams.finishETime=null;
+          return;
+        }
+
+        this.queryParams.finishSTime = finishTime[0] || null;
+        this.queryParams.finishETime = finishTime[1] || null;
+      } else {
+        this.finishTime = [];
+        this.queryParams.finishSTime = null;
+        this.queryParams.finishETime = null;
+      }
+    },
     handleClickX(tab,event){
       this.activeName=tab.name;
       if(tab.name=="00"){
@@ -416,8 +441,9 @@ export default {
       // xgb 看课数据量太大必须限制时间if (this.isEmptyArray(this.createTime) &&
       if (this.isEmptyArray(this.createTime) &&
         this.isEmptyArray(this.updateTime) &&
-        this.isEmptyArray(this.scheduleTime)) {
-        this.$message.warning('请选择创建时间或营期时间或最新更新时间');
+        this.isEmptyArray(this.scheduleTime) &&
+        this.isEmptyArray(this.finishTime)) {
+        this.$message.warning('请选择创建时间或营期时间或最新更新时间或完课时间');
         return;
       }
       this.loading = true;
@@ -448,6 +474,7 @@ export default {
         logType: null,
         createTime: null,
         updateTime: null,
+        finishTime:null,
         qwExternalContactId: null,
         externalUserName:null,
         duration: null,
@@ -475,10 +502,13 @@ export default {
       // this.queryParams.eTime = null;
       this.queryParams.upSTime = null;
       this.queryParams.upETime = null;
+      this.queryParams.finishSTime = null;
+      this.queryParams.finishETime = null;
       this.queryParams.scheduleStartTime = null;
       this.queryParams.scheduleEndTime = null;
       this.scheduleTime=null;
       this.updateTime=null;
+      this.finishTime=null;
       // 重置时间当天
       this.setToday();
 
@@ -550,8 +580,9 @@ export default {
       // xgb 看课数据量太大必须限制时间
       if (this.isEmptyArray(this.createTime) &&
         this.isEmptyArray(this.updateTime) &&
-        this.isEmptyArray(this.scheduleTime)) {
-        this.$message.warning('请选择创建时间或营期时间或最新更新时间');
+        this.isEmptyArray(this.scheduleTime) &&
+        this.isEmptyArray(this.finishTime)) {
+        this.$message.warning('请选择创建时间或营期时间或最新更新时间或完课时间');
         return;
       }
       const queryParams = this.queryParams;

+ 1 - 2
src/views/his/company/index.vue

@@ -954,8 +954,7 @@ export default {
       this.maAppList = []
       this.miniAppList = []
       this.customAppList = []
-      const key = 'courseMa.config'
-      listAll(key).then(response => {
+      listAll().then(response => {
         const { code, data } = response
         if (code === 200) {
           if (data) {

+ 28 - 1
src/views/hisStore/components/productOrder.vue

@@ -377,6 +377,21 @@
                     />
             </el-select>
         </el-form-item>-->
+        <el-form-item label="订单手机号" prop="userPhone"  >
+          <el-input v-model="editForm.userPhone" placeholder="请输入手机号" style="width:200px"/>
+        </el-form-item>
+        <!--  线下支付金额      -->
+        <el-form-item label="线下支付金额" prop="offlinePayAmount"  >
+          <el-input
+            v-model.number="editForm.offlinePayAmount"
+            type="number"
+            step="0.01"
+            placeholder="请输入"
+            :min="0"
+            @blur="formatAmount"
+            style="width:200px"
+          />
+        </el-form-item>
          <el-form-item label="详情地址" prop="userAddress"  >
           <el-input v-model="editForm.userAddress" placeholder="请输入" />
         </el-form-item>
@@ -535,6 +550,8 @@ export default {
         // extendOrderId:null,
         scheduleId:null,
         mark:"",
+        userPhone:null,
+        offlinePayAmount: 0.00,
       },
 
       editDyRules:{
@@ -549,7 +566,10 @@ export default {
         userAddress: [
           { required: true, message: "收货地址不能为空", trigger: "blur" }
         ],
-
+        userPhone: [
+          { required: false, message: '请输入手机号', trigger: 'blur' },
+          { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号格式', trigger: 'blur' }
+        ]
       },
       orderTypeOptions:[],
       payTypeOptions:[],
@@ -593,6 +613,11 @@ export default {
     });
   },
   methods: {
+    formatAmount() {
+      if (typeof this.editForm.offlinePayAmount === 'number') {
+        this.editForm.offlinePayAmount = parseFloat(this.editForm.offlinePayAmount.toFixed(2));
+      }
+    },
     handleAddress(){
         const id = this.order.id;
         getStoreOrderAddress(id).then(response =>{
@@ -788,6 +813,8 @@ export default {
     },
     editOrder(){
         this.edit.open=true;
+        this.editForm.userPhone=null;
+        this.editForm.offlinePayAmount=this.order.offlinePayAmount;
         this.editForm.id=this.order.id;
         this.editForm.mark=this.order.mark
         this.editForm.orderType=this.order.orderType.toString();

+ 39 - 13
src/views/hisStore/statistics/storeProduct.vue

@@ -53,19 +53,37 @@
 
 
 
-
-
-        <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="storeProduct">搜索</el-button>
-        </el-form-item>
+        <el-row :gutter="20">
+          <el-col :span="6">
+            <el-form-item label="下单时间:">
+              <el-select v-model="queryType" placeholder="查询方式" size="small">
+                <el-option
+                  v-for="item in queryTypes"
+                  :key="item.dictLabel"
+                  :label="item.dictLabel"
+                  :value="item.dictValue">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <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-col>
+          <el-col :span="6">
+          </el-col>
+          <el-col :span="6">
+            <el-form-item>
+              <el-button type="cyan" icon="el-icon-search" @click="storeProduct">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
 
       <div class="data-box">
@@ -169,6 +187,11 @@ export default {
   },
   data() {
     return {
+      queryTypes:[
+        { dictLabel: '下单时间', dictValue: 1 },
+        { dictLabel: '发货时间', dictValue: 2 }
+      ],
+      queryType: 2,
       companys: [],
       deptOptions: [],
       companyId: undefined,
@@ -288,6 +311,9 @@ export default {
         data.startTime = this.dateRange[0]
         data.endTime = this.dateRange[1]
       }
+      if(this.queryType){
+        data.queryType = this.queryType
+      }
 
       storeProduct(data).then((response) => {
         this.dates = response.dates;

+ 5 - 0
src/views/hisStore/storeOrder/index.vue

@@ -307,6 +307,11 @@
               <span v-if="scope.row.payPrice!=null">{{scope.row.payPrice.toFixed(2)}}</span>
           </template>
       </el-table-column>
+      <el-table-column label="线下支付金额" align="center" prop="offlinePayAmount" >
+        <template slot-scope="scope">
+          <span v-if="scope.row.offlinePayAmount!=null">{{scope.row.offlinePayAmount.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">

+ 5 - 0
src/views/hisStore/storeOrderAudit/audit.vue

@@ -220,6 +220,11 @@
           {{ scope.row.totalPrice ? parseFloat(scope.row.totalPrice).toFixed(2) : '0.00' }}
         </template>
       </el-table-column>
+      <el-table-column label="线下支付金额" align="center" prop="offlinePayAmount" >
+        <template slot-scope="scope">
+          <span v-if="scope.row.offlinePayAmount!=null">{{scope.row.offlinePayAmount.toFixed(2)}}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="手机号" align="center" prop="userPhone"  width="120"/>
       <el-table-column label="审核时间" align="center" prop="companyAuditTime"  width="160"/>
       <el-table-column label="审核人" align="center" prop="companyAuditUserName" />