소스 검색

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

lex-xin 3 년 전
부모
커밋
171050ced1

+ 3 - 3
src/App.vue

@@ -120,9 +120,9 @@ input[type="number"] {
 .el-form-item__content {
   font-size: 14px !important;
 }
-// .el-select {
-//   width: 180px !important;
-// }
+.el-select {
+  width: 180px !important;
+}
 
 .el-input__count{
   background-color: transparent!important;

+ 6 - 1
src/components/save-form/index.vue

@@ -2,7 +2,7 @@
   <el-form
     class="save-form"
     v-bind="{...$attrs, ...$props}"
-    
+
     v-on="$listeners"
     @submit.stop.native="submit"
     @reset.stop.native="reset"
@@ -100,6 +100,11 @@ export default {
 .save-form{
   /deep/ .el-input__inner{
     width: 180px;
+    overflow: hidden;
+    text-overflow: ellipsis;
+  }
+  /deep/.el-select {
+    width: 100%;
   }
   /deep/.el-date-editor.el-input{
     width: 180px;

+ 6 - 0
src/constant/guide.js

@@ -76,5 +76,11 @@ export const guideList = {
     desc: '可通过创建乐团活动在乐团报名缴费时销售VIP课',
     path: '/vipActiveManager/vipActiveList',
     permission: '/vipActiveList'
+  },
+  offline:{
+    name: '考勤规则设置',
+    desc: '系统默认为您创建了考勤及课酬扣减规则,请根据本机构实际规则进行修改。',
+    path: '/courseRulersManager?tabrouter=2',
+    permission: '/institutionOfflineTeamRules'
   }
 }

+ 14 - 0
src/views/buildVip/index.vue

@@ -689,6 +689,7 @@ import axios from "axios";
 import { getToken, getTenantId } from "@/utils/auth";
 import { diffTimerFormMinute, addTimerFormMinute } from "@/utils/date";
 import { queryOrganStudentList } from "@/api/studentManager";
+import { getSysTenantConfig } from "@/views/courseRulersManager/api";
 import merge from "webpack-merge";
 import dayjs from "dayjs";
 export default {
@@ -876,6 +877,7 @@ export default {
       chioseStudent: [],
       classTimeDis: false,
       studentRuleNum:0,
+        isFirst:false
     };
   },
   computed: {
@@ -1151,6 +1153,18 @@ export default {
       this.pickerOptions = this.beginDate();
       this.pickerOptions1 = this.processDate();
       this.courseOption = this.coursesDate();
+     this.getInstitutionRules()
+    },
+        async getInstitutionRules() {
+      try {
+        const res = await getSysTenantConfig({ group: "OFFLINE" });
+        this.isFirst = Boolean(res.data[0].createOn)
+        if(!this.isFirst){
+           this.$bus.$emit("showguide", ['offline']);
+        }
+      } catch (e) {
+        console.log(e);
+      }
     },
     onCourseNumChange(type) {
       // 折扣类型,并且设置的排课数有值

+ 3 - 3
src/views/categroyManager/modals/salaryInfo.vue

@@ -91,7 +91,7 @@
           prop="offlineSalarySettlement.settlementValue"
           v-if="
             salaryForm.offlineSalarySettlement.salarySettlementType ==
-              'FIXED_SALARY' && courseTeachModeOffline
+              'FIXED_SALARY'
           "
         >
           <el-input
@@ -187,7 +187,7 @@
           </el-input>
         </el-form-item>
       </el-row> -->
-      <el-row v-if="giveCourseTeachModeOffline">
+      <el-row v-if="payForm.giveCourseType == 'VIP'">
         <el-form-item
           label="赠送VIP课课酬"
           prop="giveVipOfflineSalarySettlement.salarySettlementType"
@@ -212,7 +212,7 @@
           prop="giveVipOfflineSalarySettlement.settlementValue"
           v-if="
             salaryForm.giveVipOfflineSalarySettlement.salarySettlementType ==
-              'FIXED_SALARY' && giveCourseTeachModeOffline
+              'FIXED_SALARY'
           "
         >
           <el-input

+ 2 - 2
src/views/categroyManager/specialSetup/typesManager.vue

@@ -82,8 +82,8 @@ export default {
       subjectList: [], // 声部列表
       formActionTitle: 'create',
       formTitle: {
-        create: '添加收费类型',
-        update: '修改收费类型'
+        create: '添加乐团类型',
+        update: '修改乐团类型'
       },
       typeStatus: false, // 添加教学点
       formLabelWidth: '100px',

+ 48 - 27
src/views/couponManager/couponUpdate.vue

@@ -109,13 +109,13 @@
         </el-col> -->
         <el-col style="width: 395px" v-if="form.type == 'FULL_REDUCTION'">
           <el-form-item
-            label="面值"
-            prop="faceValue"
-            :rules="[{ required: true, message: '请输入面值' }]"
+            label="满减金额"
+            prop="fullAmount"
+            :rules="[{ required: true, message: '请输入满减金额' }]"
           >
             <el-input
-              v-model="form.faceValue"
-              placeholder="请输入面值"
+              v-model="form.fullAmount"
+              placeholder="请输入满减金额"
               :disabled="isDisabled"
             >
               <template slot="append">元</template>
@@ -124,19 +124,20 @@
         </el-col>
         <el-col style="width: 395px" v-if="form.type == 'FULL_REDUCTION'">
           <el-form-item
-            label="满减金额"
-            prop="fullAmount"
-            :rules="[{ required: true, message: '请输入满减金额' }]"
+            label="面值"
+            prop="faceValue"
+            :rules="[{ required: true, message: '请输入面值' }]"
           >
             <el-input
-              v-model="form.fullAmount"
-              placeholder="请输入满减金额"
+              v-model="form.faceValue"
+              placeholder="请输入面值"
               :disabled="isDisabled"
             >
               <template slot="append">元</template>
             </el-input>
           </el-form-item>
         </el-col>
+
         <el-col style="width: 395px" v-if="form.type == 'DISCOUNT'">
           <el-form-item
             label="折扣"
@@ -230,19 +231,33 @@
       <el-row :gutter="20">
         <el-col style="width: 395px">
           <el-form-item
-            label="库存总量(-1为不限制)"
+            label="库存总量"
             prop="stockCount"
             :rules="[{ required: true, message: '请输入库存总量' }]"
           >
-            <el-input  :disabled='form.stockCount ==-1' v-model="form.stockCount" placeholder="请输入库存总量">
+            <el-input
+              :disabled="form.stockCount == -1"
+              v-model="form.stockCount"
+              placeholder="请输入库存总量"
+            >
               <template slot="append">张</template>
             </el-input>
-                         <el-checkbox   v-model="form.stockCount" :true-label='-1' false-label=''	 @change="(val)=>{checkNo(val,'stockCount')}" >不限制</el-checkbox>
+            <el-checkbox
+              v-model="form.stockCount"
+              :true-label="-1"
+              false-label=""
+              @change="
+                (val) => {
+                  checkNo(val, 'stockCount');
+                }
+              "
+              >不限制</el-checkbox
+            >
           </el-form-item>
         </el-col>
-        <el-col style="width: 395px">
+        <!-- <el-col style="width: 395px">
           <el-form-item
-            label="预警值(-1为不限制)"
+            label="预警值"
             prop="warningStockNum"
             :rules="[{ required: true, message: '请输入预警值' }]"
           >
@@ -251,12 +266,18 @@
             </el-input>
              <el-checkbox   v-model="form.warningStockNum" :true-label='-1' false-label=''	 @change="(val)=>{checkNo(val,'warningStockNum')}" >不限制</el-checkbox>
           </el-form-item>
-        </el-col>
+        </el-col> -->
         <el-col style="width: 395px">
           <el-form-item
             prop="limitExchangeNum"
-            :rules="[{ required: true, message: '请输入领取上限' },
-            {pattern:/^[1-9][0-9]?$/,message:'请输入1-99的正整数',trigger: 'blur'}]"
+            :rules="[
+              { required: true, message: '请输入领取上限' },
+              {
+                pattern: /^[1-9][0-9]?$/,
+                message: '请输入1-99的正整数',
+                trigger: 'blur',
+              },
+            ]"
           >
             <span style="color: #606266">
               <span style="color: #f56c6c">*</span> 领取上限
@@ -310,13 +331,13 @@
 </template>
 <script>
 import { addSysCoupon, resetSysCoupon } from "./api.js";
-import { couponTypeList ,coupontypeDetailList} from "@/utils/searchArray";
+import { couponTypeList, coupontypeDetailList } from "@/utils/searchArray";
 import { getTimes } from "@/utils";
 export default {
   data() {
     return {
       couponTypeList,
-      coupontypeDetail:coupontypeDetailList,
+      coupontypeDetail: coupontypeDetailList,
       form: {
         name: "",
         description: "",
@@ -333,7 +354,7 @@ export default {
       activeRow: null,
       isDisabled: false,
       title: "新增优惠券",
-      warningStockNum:'',
+      warningStockNum: "",
     };
   },
   mounted() {
@@ -457,13 +478,13 @@ export default {
         }
       });
     },
-    checkNo(val,type){
-      if(val){
-        this.form[type] =val
-      }else{
-         this.form[type] = null
+    checkNo(val, type) {
+      if (val) {
+        this.form[type] = val;
+      } else {
+        this.form[type] = null;
       }
-    }
+    },
   },
 };
 </script>

+ 4 - 4
src/views/couponManager/index.vue

@@ -185,7 +185,7 @@
               <div>{{ scope.row.fullAmount | hasMoneyFormat }}</div>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="cloudStudyUseStudentDuty">
+          <el-table-column align="center" prop="cloudStudyUseStudentDuty" width="100">
             <template slot="header" slot-scope="slot">
               <div class="titleCell">
                 <span>领取上限</span>
@@ -207,7 +207,7 @@
               <div>{{ scope.row.limitExchangeNum }}</div>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="cloudStudyUseStudentDuty">
+          <el-table-column align="center" prop="cloudStudyUseStudentDuty" width="120">
             <template slot="header" slot-scope="slot">
               <div class="titleCell">
                 <span>有效期天数</span>
@@ -308,7 +308,7 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column
+          <!-- <el-table-column
             align="center"
             prop="warningStockNum"
             label="库存预警值"
@@ -322,7 +322,7 @@
                 }}
               </div>
             </template>
-          </el-table-column>
+          </el-table-column> -->
           <el-table-column align="center" prop="status" label="状态">
             <template slot-scope="scope">
               <div>

+ 26 - 16
src/views/studentManager/studentList.vue

@@ -72,7 +72,7 @@
           </el-select>
         </el-form-item>
 
-        <el-form-item prop="isActive">
+        <el-form-item prop="isActive" >
           <el-select
             class="multiple"
             v-model.trim="searchForm.isActive"
@@ -95,7 +95,7 @@
             <el-option label="否" value="0"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="operatingTag">
+        <el-form-item prop="operatingTag" v-if="tenantId ==1">
           <el-select
             class="multiple"
             v-model.trim="searchForm.operatingTag"
@@ -106,7 +106,7 @@
             <el-option label="否" :value="0"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="serviceTag">
+        <el-form-item prop="serviceTag" v-if="tenantId==1">
           <el-select
             class="multiple"
             v-model.trim="searchForm.serviceTag"
@@ -205,7 +205,7 @@
         >
           <el-table-column type="expand">
             <template slot-scope="props">
-              <el-form label-position="left" class="demo-table-expand">
+              <el-form label-position="left" class="demo-table-expand" :inline='true'>
                 <el-row>
                   <el-col :span="6">
                     <el-form-item label="所属学校">
@@ -216,18 +216,18 @@
                         ></overflow-text>
                       </div> </el-form-item
                   ></el-col>
-                  <el-col :span="4">
+                  <el-col :span="4" >
                     <el-form-item>
                       <span slot="label"
                         >是否激活
                         <el-tooltip placement="top" popper-class="mTooltip">
                           <div slot="content">学员是否设置密码</div>
-                          <i
-                            class="el-icon-question"
-                            style="font-size: 18px; color: #f56c6c"
+                          <i @click="()=>{console.log('点击')}"
+                            class="el-icon-question question"
+                            style="font-size: 18px; color: #f56c6c;cursor:pointer;"
                           ></i> </el-tooltip
                       ></span>
-                      <span>{{ props.row.isActive ? "是" : "否" }}</span>
+                      <div>{{ props.row.isActive ? "是" : "否" }}</div>
                     </el-form-item></el-col
                   >
                   <el-col :span="4">
@@ -255,7 +255,7 @@
                     </el-form-item></el-col
                   >
                   <el-col :span="4">
-                    <el-form-item label="是否运营">
+                    <el-form-item label="是否运营" v-if="tenantId==1">
                       <span>{{ props.row.operatingTag ? "是" : "否" }}</span>
                     </el-form-item></el-col
                   >
@@ -377,7 +377,7 @@
               scope.row.operatingTag ? "是" : "否"
             }}</template>
           </el-table-column> -->
-          <el-table-column align="center" label="是否服务">
+          <el-table-column align="center" label="是否服务" v-if="tenantId==1">
             <template slot-scope="scope">{{
               scope.row.serviceTag ? "是" : "否"
             }}</template>
@@ -415,6 +415,8 @@
                 </div>
                 <!--
                 <div></div>
+
+
                 <p v-if="scope.row.hasNoStartCloudTeacher">
                   {{ scope.row.membershipEndTime | dayjsFormat }}
                 </p> -->
@@ -465,9 +467,10 @@
                   <div slot="content">
                     没有有效的VIP课程或未参与2020年双十一活动的用户为新用户
                   </div>
+
                   <i
                     class="el-icon-question"
-                    style="font-size: 18px; color: #f56c6c"
+                    style="font-size: 18px; color: #f56c6c;cursor:pointer;"
                   ></i>
                 </el-tooltip>
               </p>
@@ -697,7 +700,7 @@
           :closable="false"
           style="margin-bottom: 15px"
         ></el-alert>
-        <el-form-item label="是否运营" prop="operatingTag">
+        <el-form-item label="是否运营" prop="operatingTag" v-if="tenantId==1">
           <el-select
             class="multiple"
             v-model.trim="studentForm.operatingTag"
@@ -707,7 +710,7 @@
             <el-option :value="0" label="否"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="是否服务" prop="serviceTag">
+        <el-form-item label="是否服务" prop="serviceTag" v-if="tenantId==1">
           <el-select
             class="multiple"
             v-model.trim="studentForm.serviceTag"
@@ -987,6 +990,7 @@ export default {
       protocolVisible: false,
       protocolVersions: [],
       cooperationList: [],
+      tenantId:null
     };
   },
   mounted() {
@@ -1007,6 +1011,7 @@ export default {
     this.$store.dispatch("setBranchs");
     this.$store.dispatch("setTeachers");
     this.getList();
+        this.tenantId = this.$helpers.tenantId;
   },
   methods: {
     onSearch() {
@@ -1240,7 +1245,6 @@ export default {
     async getSubjectList() {
       await subjectListTree({
         delFlag: "NO",
-        tenantId: 1,
         rows: 9999,
       }).then((res) => {
         let result = res.data;
@@ -1262,6 +1266,7 @@ export default {
           });
           this.subjectList = tempArray;
         }
+        console.log(this.subjectList)
       });
     },
     async addStudent() {
@@ -1407,7 +1412,7 @@ export default {
   color: red;
 }
 .demo-table-expand {
-  font-size: 0;
+  // font-size: 0;
 }
 .demo-table-expand label {
   width: 150px;
@@ -1420,6 +1425,10 @@ export default {
   text-overflow: ellipsis;
   white-space: nowrap;
   padding-right: 10px;
+  position: relative;
+}
+.demo-table-expand .el-form-item__label {
+  z-index: 100;
 }
 /deep/.el-table__expanded-cell[class*="cell"] {
   padding: 20px 0 20px 110px;
@@ -1430,4 +1439,5 @@ export default {
   text-overflow: ellipsis;
   white-space: nowrap;
 }
+
 </style>

+ 8 - 2
src/views/teamBuild/components/teamBaseInfo.vue

@@ -224,7 +224,7 @@
 
           </el-select>
         </el-form-item> -->
-        <el-form-item label="机构类型" prop="ownershipType">
+        <el-form-item label="机构类型" prop="ownershipType" v-if="tenantId ==1">
           <el-select
             v-model.trim="topFrom.ownershipType"
             :disabled="basdisabled"
@@ -527,7 +527,7 @@ export default {
       codeStatus: false,
       qrCodeUrl: null,
       codeTitle: null,
-      teamid: "",
+      tenantId: "",
     };
   },
   created() {},
@@ -665,6 +665,7 @@ export default {
       }
       this.teamStatus = this.$route.query.type;
       this.team_status = this.$route.query.team_status;
+      this.tenantId = this.$helpers.tenantId
       // if (this.teamStatus == "newTeam") {
       //   this.$store.dispatch("buildIndex", 0);
       // }
@@ -756,6 +757,11 @@ export default {
           let arr = [];
           if (this.sectionList.length <= 0) {
             arr.push("organ");
+          }else{
+            if(!this.topFrom.section){
+               this.$set(this.topFrom,'section',this.sectionList[0].id)
+            }
+
           }
           if (this.typeList.length <= 0) {
             arr.push("teamPayType");

+ 6 - 2
src/views/teamBuild/forecastName.vue

@@ -419,8 +419,6 @@ export default {
         vaildStudentUrl() +
         "/project/forecastName/index.html?musicGroupId=" +
         query.id,
-      detailUrl:
-        vaildTeachingUrl() + "/#/preApplySubject?musicGroupId=" + query.id,
       searchForm: {
         name: null,
         subjectId: null,
@@ -457,9 +455,12 @@ export default {
       preLookVisible: false,
       sysMsg: "",
       subjectList: [],
+      tenantId:null
+
     };
   },
   async mounted() {
+    this.tenantId=   this.$helpers.tenantId
     await this.$store.dispatch("setSubjects");
     // 获取短信推送模板
     this.subjectList = [...this.selects.subjects];
@@ -605,6 +606,9 @@ export default {
         return ``;
       }
     },
+    detailUrl(){
+      return  vaildTeachingUrl() + "/#/preApplySubject?musicGroupId=" + this.$route.query.id+'&tenantId='+this.tenantId
+    }
   },
 };
 </script>

+ 2 - 1
src/views/teamDetail/components/modals/classroom-setting.vue

@@ -287,7 +287,8 @@ export default {
         const res1 = await getSysTenantConfig({
           group: "holiday",
         });
-        this.holidays = JSON.parse(res1.data[0].paranValue);
+
+        this.holidays = JSON.parse(res1.data[0].paranValue?res1.data[0].paranValue:'[]');
         this.prices = res.data;
         let arr = [];
         if (JSON.stringify(this.prices) == '{}') {

+ 15 - 0
src/views/teamDetail/components/resetClass.vue

@@ -740,6 +740,7 @@ import studentResetView from "./modals/student-reset-view";
 import qs from "qs";
 import { permission } from "@/utils/directivePage";
 import { getCourseType } from "@/utils/utils";
+import { getSysTenantConfig } from "@/views/courseRulersManager/api";
 
 const formatClassGroupTeacherMapperList = (core, ass) => {
   const list = [];
@@ -915,10 +916,13 @@ export default {
       activeList: [],
       courseViewType: "",
       tenantId: null,
+      isFirst:false
+
     };
   },
   created() {
     this.init();
+    this.getInstitutionRules()
   },
   // activated() {
   //   this.init();
@@ -929,6 +933,17 @@ export default {
     this.tenantId = tenantConfig.tenantId;
   },
   methods: {
+    async getInstitutionRules() {
+      try {
+        const res = await getSysTenantConfig({ group: "OFFLINE" });
+        this.isFirst = Boolean(res.data[0].createOn)
+        if(!this.isFirst){
+           this.$bus.$emit("showguide", ['offline']);
+        }
+      } catch (e) {
+        console.log(e);
+      }
+    },
     permission(val) {
       return permission(val);
     },