Просмотр исходного кода

Merge branch '11/24SAAS' of http://git.dayaedu.com/yonge/dy-admin-manager into 11/24SAAS

mo 3 лет назад
Родитель
Сommit
ed329cf761

+ 15 - 0
src/main.js

@@ -166,6 +166,21 @@ Vue.mixin({
     }
   },
   methods: {
+    isNumber (val, max) { // 只能输入正整数,且可以限制最大值,用法:@input="e => (form.cloud_room_up_limit = isNumber(e, 7))"
+      val = val.replace(/\b(0+)+[^0-9]*/gi, "");
+      if(val > max) {
+        val = max
+      }
+      return val;
+    },
+    keyupEvent(e,input){ // 正数,小数2位 @keyup.native='keyupEvent($event)'
+      e.target.value=e.target.value.replace(/[^\d.]/g, '');
+      e.target.value=e.target.value.replace(/\.{2,}/g, '.');
+      e.target.value=e.target.value.replace(/^\./g, '0.');
+      e.target.value=e.target.value.replace(/^\d*\.\d*\./g, e.target.value.substring(0,e.target.value.length-1));
+      e.target.value=e.target.value.replace(/^0[^\.]+/g, '0')
+      e.target.value=e.target.value.replace(/^(\d+)\.(\d\d).*$/, '$1.$2')
+    },
     changeHash(value) {
       const origin = window.location.origin
       history.replaceState("", "", `${origin}/#${this.$route.path}?opt=${value}`)

+ 0 - 12
src/views/baseRulesManager/special.vue

@@ -17,14 +17,6 @@
         </el-tab-pane>
 
         <el-tab-pane
-          label="网管&试听课规则"
-          lazy
-          name="2"
-            v-if="permission('/platformAccompanyBaseConfig')"
-        >
-          <accompanyBaseConfig :isPlatform='true' v-if="activeIndex==2"/>
-        </el-tab-pane>
-        <el-tab-pane
           label="商品库存规则"
           lazy
           name="3"
@@ -46,21 +38,17 @@
 </template>
 <script>
 import overallManager from "@/views/categroyManager/generalSettings/overallManager";
-
 import dayaTeamRules from "./components/dayaTeamRules";
 import goodsRules from "./components/goodsRules";
 import institutionRules from "./components/institutionRules";
-import accompanyBaseConfig from "@/views/categroyManager/accompanyBaseConfig";
 import otherRules from './components/otherRules'
 import { permission } from "@/utils/directivePage";
 export default {
   components: {
-
     goodsRules,
     institutionRules,
     overallManager,
     dayaTeamRules,
-    accompanyBaseConfig,
     otherRules
   },
   name: "baseRulersManager",

+ 15 - 20
src/views/organManager/components/memberSetting.vue

@@ -9,65 +9,60 @@
       ></el-alert>
       <el-form ref="form" label-position="top" :model="form" label-width="140px"  :inline="true">
         <el-form-item label="按天会员激活金额" prop="day_divide"
-          :rules="[{ required: true, message: '请输入按天会员激活金额', trigger: 'blur' },
-            { type: 'number', message: '按天会员激活金额必须为数字值' }]">
+          :rules="[{ required: true, message: '请输入按天会员激活金额', trigger: 'blur' }]">
           <el-input
             :disabled="isDisabled"
             placeholder="请输入按天会员激活金额"
-            v-model.number="form.day_divide"
-            type="number"
+            v-model="form.day_divide"
+            @keyup.native='keyupEvent($event)'
             style="width: 238px;"
           >
             <div slot="append">元/天</div>
           </el-input>
         </el-form-item>
         <el-form-item label="月度会员激活价" prop="month_divide"
-          :rules="[{ required: true, message: '请输入月度会员激活价', trigger: 'blur' },
-            { type: 'number', message: '月度会员激活价必须为数字值' }]">
+          :rules="[{ required: true, message: '请输入月度会员激活价', trigger: 'blur' }]">
           <el-input
             :disabled="isDisabled"
             placeholder="请输入月度会员激活价"
-            v-model.number="form.month_divide"
-            type="number"
+            v-model="form.month_divide"
+            @keyup.native='keyupEvent($event)'
             style="width: 238px;"
           >
             <div slot="append">元/月</div>
           </el-input>
         </el-form-item>
         <el-form-item label="季度会员激活价" prop="quarter_divide"
-          :rules="[{ required: true, message: '请输入月度会员激活价', trigger: 'blur' },
-            { type: 'number', message: '季度会员激活价必须为数字值' }]">
+          :rules="[{ required: true, message: '请输入月度会员激活价', trigger: 'blur' }]">
           <el-input
             :disabled="isDisabled"
             placeholder="请输入季度会员激活价"
-            v-model.number="form.quarter_divide"
-            type="number"
+            v-model="form.quarter_divide"
+            @keyup.native='keyupEvent($event)'
             style="width: 238px;"
           >
             <div slot="append">元/季</div>
           </el-input>
         </el-form-item>
         <el-form-item label="半年会员激活价" prop="half_year_divide"
-          :rules="[{ required: true, message: '请输入月度会员激活价', trigger: 'blur' },
-            { type: 'number', message: '半年会员激活价必须为数字值' }]">
+          :rules="[{ required: true, message: '请输入月度会员激活价', trigger: 'blur' }]">
           <el-input
             :disabled="isDisabled"
             placeholder="请输入半年会员激活价"
-            type="number"
-            v-model.number="form.half_year_divide"
+            @keyup.native='keyupEvent($event)'
+            v-model="form.half_year_divide"
             style="width: 238px;"
           >
             <div slot="append">元/半年</div>
           </el-input>
         </el-form-item>
         <el-form-item label="年度会员激活价" prop="year_divide"
-          :rules="[{ required: true, message: '请输入月度会员激活价', trigger: 'blur' },
-            { type: 'number', message: '年度会员激活价必须为数字值' }]">
+          :rules="[{ required: true, message: '请输入月度会员激活价', trigger: 'blur' }]">
           <el-input
             :disabled="isDisabled"
             placeholder="请输入年度会员激活价"
-            type="number"
-            v-model.number="form.year_divide"
+            @keyup.native='keyupEvent($event)'
+            v-model="form.year_divide"
             style="width: 238px;"
           >
             <div slot="append">元/年</div>

+ 12 - 6
src/views/organManager/components/openService.vue

@@ -49,7 +49,7 @@
           <el-input
             :disabled="isDisabled"
             placeholder="请输入合同价"
-            oninput="value=value.indexOf('.') > -1?value.slice(0, value.indexOf('.') + 3):value"
+            @keyup.native='keyupEvent($event)'
             v-model="form.contractPrice"
             type="number"
           >
@@ -61,7 +61,7 @@
           <el-input
             placeholder="请输入原价"
             disabled
-            oninput="value=value.indexOf('.') > -1?value.slice(0, value.indexOf('.') + 3):value"
+            @keyup.native='keyupEvent($event)'
             v-model="form.originalPrice"
           >
             <div slot="append">元/{{ unitSuffix }}</div>
@@ -72,7 +72,7 @@
           <el-input
             :disabled="isDisabled"
             type="number"
-            onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
+            @input="e => (form.cloud_room_up_limit = isNumber(e))"
             v-model="form.expiryCount"
             placeholder="请输入有效期"
           >
@@ -84,7 +84,7 @@
           <el-input
             placeholder="请输入开通价格"
             type="number"
-            oninput="value=value.indexOf('.') > -1?value.slice(0, value.indexOf('.') + 3):value"
+            @keyup.native='keyupEvent($event)'
             v-model="form.payAmount"
             :disabled="isDisabled"
           >
@@ -133,8 +133,7 @@ export default {
   },
   computed: {
     isDisabled() {
-      //  || this.payState == 1
-      return this.type == 'setting'  ? true : false
+      return this.type == 'setting' || this.payState == 1 ? true : false
     },
     unitSuffix() {
       // 后辍默认为年
@@ -153,6 +152,13 @@ export default {
       try {
         const res = await platformServeQueryModeDetail({ id: val })
         this.modeList = res.data || []
+        // 更新服务时重置数据
+        this.form.serveMode = null
+        this.form.serveDetailId = null
+        this.form.studentUpLimit = null
+        this.form.expiryUnit = null
+        this.form.contractPrice = null
+        this.form.originalPrice = null
       } catch(e) {  }
     },
     onSubmit() {

+ 1 - 1
src/views/organManager/components/rateSetting.vue

@@ -13,7 +13,7 @@
           <el-input
             :disabled="isDisabled"
             v-model="form.chargeRate"
-            oninput="value=value.indexOf('.') > -1?value.slice(0, value.indexOf('.') + 3):value"
+            @keyup.native='keyupEvent($event)'
             placeholder="请输入手续费费率"
             style="width: 238px;"
             type="number"

+ 13 - 2
src/views/organManager/components/roomRules.vue

@@ -13,7 +13,7 @@
           <el-input
             placeholder="请输入云教室人数上限"
             v-model="form.cloud_room_up_limit"
-            onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
+            @input="e => (form.cloud_room_up_limit = isNumber(e, 7))"
             :disabled="isDisabled"
             @blur="onUpLimitChange"
             type="number"
@@ -30,7 +30,18 @@
           </el-table-column>
           <el-table-column prop="price" label="每分钟扣费标准">
             <template slot-scope="scope">
-              <el-input-number style="width: 150px !important;" v-model.number="scope.row.price" :disabled="isDisabled" :min="0" :controls="false" placeholder="请输入合同价" ></el-input-number>元
+              <!-- <el-input-number style="width: 150px !important;" v-model.number="scope.row.price" :disabled="isDisabled" :min="0" :controls="false" placeholder="请输入合同价" ></el-input-number>元 -->
+              <!-- oninput="value=value.indexOf('.') > -1?value.slice(0, value.indexOf('.') + 3):value" -->
+              <el-input
+                :disabled="isDisabled"
+                placeholder="请输入合同价"
+                style="width: 180px !important;"
+                @keyup.native='keyupEvent($event)'
+                v-model="scope.row.price"
+                type="number"
+              >
+                <div slot="append">元</div>
+              </el-input>
             </template>
           </el-table-column>
         </el-table>

+ 15 - 2
src/views/organManager/organOperation.vue

@@ -1,7 +1,7 @@
 <!--  -->
 <template>
   <div class="m-container" id="header">
-    <h2>
+    <h2 class="tenant-header">
       <el-page-header @back="onCancel" :content="title"></el-page-header>
     </h2>
     <div class="m-core" style="overflow: hidden">
@@ -25,7 +25,7 @@
           <rateSetting ref="rateSetting" :data="config" :type="getType" />
         </div>
         <div style="padding-left: 0;display: flex;width: 100%;" v-if="payType != 'look'">
-          <el-button type="primary"  v-if="active > 0" @click="active -= 1">上一步</el-button>
+          <el-button type="primary"  v-if="active > 0" @click="onPrev">上一步</el-button>
           <el-button type="primary"  @click="onNext">{{ active >= 2 ? '提交' : '下一步' }}</el-button>
         </div>
       </div>
@@ -88,6 +88,7 @@ export default {
       if(this.active == 0) {
         const organStatus = await this.$refs.organInfo.onSubmit()
         if(organStatus) {
+          this.goTo()
           this.active += 1
         }
       } else if(this.active == 1) {
@@ -96,6 +97,7 @@ export default {
         const ruleStatus = await this.$refs.roomRules.onSubmit()
         const rateStatus = await this.$refs.rateSetting.onSubmit()
         if(openStatus && memberStatus && ruleStatus && rateStatus) {
+          this.goTo()
           this.active += 1
         }
       } else if(this.active == 2) {
@@ -137,6 +139,17 @@ export default {
         } catch(e) {}
       }
     },
+    onPrev () {
+      this.active -= 1
+      this.goTo()
+    },
+    goTo() {
+      let isError = document.getElementsByClassName("tenant-header");
+      isError[0].scrollIntoView({
+        block: "center",
+        behavior: "smooth",
+      });
+    },
     onCancel () {
       this.$store.dispatch('delVisitedViews', this.$route)
       this.$router.push({

+ 10 - 0
src/views/platformManager/platformCourseDeault/index.vue

@@ -56,6 +56,14 @@
         >
           <serverMinitor :isPlatform='true'  v-if="activeIndex==6"/>
         </el-tab-pane>
+        <el-tab-pane
+          label="网管&试听课规则"
+          lazy
+          name="7"
+            v-if="permission('/platformAccompanyBaseConfig')"
+        >
+          <accompanyBaseConfig :isPlatform='true' v-if="activeIndex==7"/>
+        </el-tab-pane>
       </tab-router>
     </div>
   </div>
@@ -67,6 +75,7 @@ import offlineTeamRules from "@/views/courseRulersManager/components/offlineTeam
 import onlineCloudRules from "@/views/courseRulersManager/components/onlineCloudRules";//
 import studentAttRules from "@/views/courseRulersManager/components/studentAttRules";//
 import serverMinitor from "@/views/courseRulersManager/components/serverMinitor";//
+import accompanyBaseConfig from "@/views/categroyManager/accompanyBaseConfig";
 import { permission } from "@/utils/directivePage";
 export default {
   components: {
@@ -76,6 +85,7 @@ export default {
     onlineCloudRules,
     studentAttRules,
     serverMinitor,
+    accompanyBaseConfig
   },
   name: "baseRulersManager",
   data() {

+ 1 - 1
src/views/productService/components/cloudRecharge.vue

@@ -49,7 +49,7 @@
         </el-input>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" @click="onRecharge">确认充值</el-button>
+        <el-button type="primary" @click="onRecharge" v-if="$helpers.permission('tenantInfo/recharge')">确认充值</el-button>
       </el-form-item>
     </el-form>
 

+ 1 - 1
src/views/productService/components/serviceRenew.vue

@@ -35,7 +35,7 @@
         </el-input>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" @click="onRecharge">确认续费</el-button>
+        <el-button type="primary" @click="onRecharge" v-if="$helpers.permission('tenantInfo/renew')">确认续费</el-button>
       </el-form-item>
     </el-form>
 

+ 4 - 2
src/views/productService/model/payment.vue

@@ -28,7 +28,8 @@ export default {
         payType: null,
       },
       selectStudentMoney: 0, // 选中学生金额
-      orderTimer: null
+      orderTimer: null,
+      initTimer: null,
     };
   },
   async mounted() {
@@ -36,7 +37,7 @@ export default {
     for(let i of tableList) {
       this.selectStudentMoney += parseFloat(i.amount)
     }
-    setTimeout(() => {
+    this.initTimer = setTimeout(() => {
       this.getPaymentStatus()
     }, 3000)
   },
@@ -58,6 +59,7 @@ export default {
     }
   },
   beforeDestroy() {
+    clearTimeout(this.initTimer)
     clearInterval(this.orderTimer)
   }
 };

+ 8 - 3
src/views/resetTeaming/modals/giveMemberModel.vue

@@ -118,15 +118,20 @@ export default {
         this.$emit('getList')
         return
       }
-      this.$confirm(`是否放弃支付`, "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
+      this.$confirm(`是否支付完成?`, "提示", {
+        confirmButtonText: "已完成支付",
+        cancelButtonText: "未完成支付",
         type: "warning",
       }).then(async (res) => {
         if(typeof callBack == 'function') {
           callBack()
         }
         this.payMentVisible = false
+      }).catch(e => {
+        if(typeof callBack == 'function') {
+          callBack()
+        }
+        this.payMentVisible = false
       });
     }
   },

+ 2 - 1
src/views/resetTeaming/modals/giveMemberPayment.vue

@@ -37,7 +37,7 @@ export default {
     for(let i of tableList) {
       this.selectStudentMoney += parseFloat(i.amount)
     }
-    setTimeout(() => {
+    this.initTimer = setTimeout(() => {
       this.getPaymentStatus()
     }, 3000)
   },
@@ -59,6 +59,7 @@ export default {
     }
   },
   beforeDestroy() {
+    clearTimeout(this.initTimer)
     clearInterval(this.orderTimer)
   }
 };