Browse Source

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

mo 3 years ago
parent
commit
6b457d4217

+ 8 - 13
src/App.vue

@@ -67,6 +67,9 @@ body {
 .el-checkbox__input.is-checked + .el-checkbox__label {
   color: #606266;
 }
+.el-tabs__item {
+  font-size: 16px !important;
+}
 </style>
 <style lang="scss">
 .el-loading-spinner .circular{
@@ -282,37 +285,29 @@ input[type="number"] {
 // 公用编剧模板
 .m-container {
   box-sizing: border-box;
-  background-color: #fff;
-  padding: 18px 30px 40px;
-  // height: calc(100vh - 145px) !important;
-  // height: calc(100vh - 70px);
+  background-color: #eef4f9;
   width: 100%;
-  // min-width: 1440px;
-  // overflow: auto;
   min-height: 560px;
+  padding-top: 10px;
   .m-core {
-    margin-top: 10px;
+    padding: 18px 20px 40px;
+    margin-bottom: 20px;
     background-color: #fff;
     position: relative;
   }
-  // & > h2 {
-  //   display: none !important;
-  // }
   & > h2 {
     height: 48px;
     line-height: 48px;
     position: relative;
-    // padding-left: 20px;
     font-size: 26px;
     font-weight: 600;
     padding-bottom: 15px;
-    margin-bottom: 20px;
     display: flex;
     flex-direction: row;
     justify-content: flex-start;
     align-items: center;
     color: #212121;
-    border-bottom: 1px solid rgba(0, 0, 0, 0.25);
+    // border-bottom: 1px solid rgba(0, 0, 0, 0.25);
     .term {
       height: 32px;
       line-height: 32px;

BIN
src/assets/images/base/icon_balance.png


BIN
src/assets/images/base/icon_koufei.png


BIN
src/assets/images/base/icon_member.png


BIN
src/assets/images/base/icon_rule.png


+ 9 - 4
src/components/ImageCropper/index.vue

@@ -50,6 +50,10 @@ export default {
       type: String,
       default: '.png,.jpg,.jpeg'
     },
+    acceptArray: {
+      type: Array,
+      default: ['image/jpeg', 'image/png', 'image/jpg']
+    },
     disabled: {
       type: Boolean,
       default: false
@@ -88,10 +92,10 @@ export default {
         this.isStopRun = true
         return false
       }
-      const isJpgOrPng =
-        file.type === 'image/jpeg' ||
-        file.type === 'image/png' ||
-        file.type === 'image/jpg'
+      const isJpgOrPng = this.acceptArray.includes(file.type)
+        // file.type === 'image/jpeg' ||
+        // file.type === 'image/png' ||
+        // file.type === 'image/jpg'
       if (!isJpgOrPng) {
         this.$message.error('你上传图片格式不正确!')
         this.isStopRun = true
@@ -148,6 +152,7 @@ export default {
 ::v-deep .avatar-uploader.uploadDisabled {
   .el-upload--text {
     cursor: not-allowed;
+    background-color: #f7f7f7;
   }
   .el-upload:hover {
     border-color: #d9d9d9;

+ 1 - 1
src/store/modules/selects.js

@@ -197,7 +197,7 @@ export default {
               }
             }
           }
-          console.log(tempArr, 'tempArr')
+          // console.log(tempArr, 'tempArr')
           commit('commit_roles', tempArr)
         } catch (error) {}
         loadings.commit_roles = false

+ 4 - 5
src/utils/request2.js

@@ -73,12 +73,11 @@ const service = axios.create({
 // request interceptor
 service.interceptors.request.use(
  async config => {
-  await  showFullScreenLoading(store)
     // do something before request is sent
-    // let hideLoading = config.hideLoading || false
-    // if(!hideLoading) {
-
-    // }
+    let hideLoading = config.hideLoading || false
+    if(!hideLoading) {
+      await showFullScreenLoading(store)
+    }
     if (store.getters.token) {
       // let each request carry token
       // ['X-Token'] is a custom headers key

+ 2 - 2
src/views/organManager/components/organInfo.vue

@@ -41,7 +41,7 @@
               <img v-if="form.logo" :src="form.logo" class="avatar" />
               <i v-else class="el-icon-plus avatar-uploader-icon"></i>
             </el-upload> -->
-            <image-cropper :options="cropperOptions" :disabled="isDisabled" :imgSize="2" :accept="acceptUpload" :imageUrl="form.logo" @crop-upload-close="cropClose" @crop-upload-success="cropSuccess" />
+            <image-cropper :options="cropperOptions" :disabled="isDisabled" :imgSize="2" accept=".png" :acceptArray="['image/png']" :imageUrl="form.logo" @crop-upload-close="cropClose" @crop-upload-success="cropSuccess" />
             <div
               class="tips"
               v-show="!isDisabled"
@@ -426,7 +426,6 @@ export default {
         previewsCircle: false, //预览图是否是圆形
         title: '上传机构LOGO', //模态框上显示的标题
       },
-      acceptUpload: '.png', // 上传支持格式
     };
   },
   async mounted() {
@@ -630,6 +629,7 @@ export default {
 ::v-deep .avatar-uploader.uploadDisabled {
   .el-upload--text {
     cursor: not-allowed;
+    background-color: #f7f7f7;
   }
   .el-upload:hover {
     border-color: #d9d9d9;

+ 30 - 20
src/views/platformManager/serviceManager/form.vue

@@ -5,31 +5,31 @@
       <el-page-header @back="onCancel"
                       :content="(payType == 'create' ? '新增服务' : '修改服务')"></el-page-header>
     </h2>
-    <div class="m-core"
-         style="overflow: hidden">
+    <div class="m-core" style="overflow: hidden; background-color: #eef4f9;">
       <el-form :model="form"
                 ref="accountForm"
-                
                 :inline="true"
                 label-position="right"
                 label-width="120px">
-        <el-alert
-          title="服务信息"
-          type="info"
-          :closable="false"
-          style="margin-bottom: 20px"
-        ></el-alert>
-        <el-form-item label="服务名称" prop="name" :rules="[{ required: true, message: '请输入服务名称', trigger: 'blur' }]">
-          <el-input v-model="form.name" placeholder="请输入服务名称"></el-input>
-        </el-form-item>
-        <el-form-item label="产品服务" prop="productId" :rules="[{ required: true, message: '请选择产品服务', trigger: 'change' }]">
-          <el-select v-model="form.productId" multiple collapse-tags clearable placeholder="请选择产品服务">
-            <el-option v-for="(item, index) in productList"
-                        :key="index"
-                        :label="item.name"
-                        :value="item.id"></el-option>
-          </el-select>
-        </el-form-item>
+        <div style="background: #fff;">
+          <el-alert
+            title="服务信息"
+            type="info"
+            :closable="false"
+            class="smallTitle"
+          ></el-alert>
+          <el-form-item label="服务名称" prop="name" :rules="[{ required: true, message: '请输入服务名称', trigger: 'blur' }]">
+            <el-input v-model="form.name" placeholder="请输入服务名称"></el-input>
+          </el-form-item>
+          <el-form-item label="产品服务" prop="productId" :rules="[{ required: true, message: '请选择产品服务', trigger: 'change' }]">
+            <el-select v-model="form.productId" multiple collapse-tags clearable placeholder="请选择产品服务">
+              <el-option v-for="(item, index) in productList"
+                          :key="index"
+                          :label="item.name"
+                          :value="item.id"></el-option>
+            </el-select>
+          </el-form-item>
+        </div>
 
         <el-alert
           title="服务属性"
@@ -283,4 +283,14 @@ export default {
   }
 }
 
+.smallTitle {
+  background: #fff;
+  border-bottom: 1px solid #E8E8E8;
+  margin-bottom: 20px;
+  color: #393F3E;
+  .el-alert__title {
+    font-size: 16px;
+  }
+}
+
 </style>

+ 3 - 3
src/views/platformManager/serviceManager/index.vue

@@ -4,7 +4,8 @@
       <div class="squrt"></div>
       服务管理
     </h2>
-    <save-form
+    <div class="m-core">
+      <save-form
       :inline="true"
       class="searchForm"
       ref="searchForm"
@@ -40,14 +41,12 @@
               @click="openService('update', scope.row)"
               v-permission="'platformServe/update'"
               type="text"
-              
               >修改</el-button
             >
             <el-button
               @click="delService(scope.row)"
               v-permission="'platformServe/delete'"
               type="text"
-              
               >删除</el-button
             >
           </template>
@@ -63,6 +62,7 @@
         @pagination="getList"
       />
     </div>
+    </div>
   </div>
 </template>
 <script>

+ 28 - 15
src/views/productService/components/cloudRecharge.vue

@@ -2,7 +2,7 @@
   <div class="cloudRecharge">
     <div class="descriptions-container">
         <div class="descriptions">
-          <div class="title">云教室扣费规则</div>
+          <div class="title"><i class="icon_rule"></i>云教室扣费规则</div>
           <div class="tips" style="line-height: 30px;">
             1.系统根据线上课课程人数(含老师)进行扣费;<br />
             2.每节线上课平台赠送10分钟免费时长,分别为课前5分钟及课后5分钟,赠送时长不计算费用;<br />
@@ -13,7 +13,7 @@
         </div>
 
         <div class="descriptions">
-          <div class="title">云教室扣费标准</div>
+          <div class="title"><i class="icon_biaozhun"></i>云教室扣费标准</div>
           <div class="tips">
             <p style="padding-bottom: 10px">以1v1课程,即老师学员1对1教学,45分钟课程为例,每分钟收费标准{{ stand }}元,则该课程结束后将扣除云教室费用45分钟*{{ stand }}元/分钟={{ 45 * stand }}元</p>
             <el-table
@@ -22,7 +22,7 @@
               :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
               style="width: 100%;"
             >
-              <el-table-column align="center" label="云教室扣费标准" width="180">
+              <el-table-column align="center" label="云教室扣费标准">
                 <template slot-scope="scope">
                   {{ scope.row.num }}人
                 </template>
@@ -124,38 +124,51 @@ export default {
 
 <style lang="less" scoped>
 .descriptions-container {
-  display: flex;
-  // align-items: center;
-  justify-content: space-between;
-  margin-bottom: 15px;
   .descriptions {
-    width: 49%;
-    min-height: 170px;
     background-color: #f8f8f8;
     border-radius: 6px;
-    border: 1px solid rgba(0, 0, 0, 0.1);
+    margin-bottom: 15px;
 
     .title {
       display: flex;
       align-items: center;
-      justify-content: space-between;
       padding: 20px 0 15px;
       margin: 0 20px 5px;
       line-height: 30px;
-      font-size: 21px;
+      font-size: 20px;
       font-weight: 500;
-      border-bottom: 1px solid #979797;
+      color: #212121;
+      border-bottom: 1px solid #DEDEDE;
     }
   }
   .tips {
     padding: 10px 20px 18px;
-    font-size: 16px;
+    font-size: 14px;
     font-weight: 400;
     color: #212121;
     line-height: 22px;
   }
+  .el-table--medium th, .el-table--medium td {
+    padding: 5px 0;
+  }
+  .icon_rule {
+    display: inline-block;
+    width: 21px;
+    height: 21px;
+    background: url('../../../assets/images/base/icon_rule.png') no-repeat center;
+    background-size: contain;
+    margin-right: 10px;
+  }
+  .icon_biaozhun {
+    display: inline-block;
+    width: 21px;
+    height: 21px;
+    background: url('../../../assets/images/base/icon_koufei.png') no-repeat center;
+    background-size: contain;
+    margin-right: 10px;
+  }
 }
 .el-input, .el-select {
-  width: 300px !important;
+  width: 200px !important;
 }
 </style>

+ 8 - 44
src/views/productService/components/serviceRenew.vue

@@ -4,9 +4,8 @@
       <div class="descriptions">
         <div class="title">
           {{ tenantInfo.platformServeName }}
-          <span class="version" @click="versionVisible = true"><i class="icon_version"></i>版本对比</span>
         </div>
-        <el-row style="padding: 0 20px">
+        <el-row style="padding: 0 20px 20px">
           <el-col :span="6" class="border">
             <el-row>
               <el-col :span="24">学员上限:<span>{{ tenantInfo.studentUpLimit | numberFormat }}人</span></el-col>
@@ -48,34 +47,22 @@
       <serviceModel :value="form.val" :tenantInfo="tenantInfo" v-on="$listeners" @close="serviceVisible = false" />
     </el-dialog>
 
-    <el-dialog
-      title="版本对比"
-      :visible.sync="versionVisible"
-      width="1000px"
-      v-if="versionVisible"
-      append-to-body
-    >
-      <version @close="versionVisible = false" />
-    </el-dialog>
   </div>
 </template>
 
 <script>
 import serviceModel from '@/views/productService/model/serviceModel'
-import version from '@/views/productService/model/version'
 import { paymentMode } from '@/constant'
 export default {
   props: ['tenant'],
   name: 'serviceRenew',
   components: {
-    serviceModel,
-    version
+    serviceModel
   },
   data() {
     return {
       paymentMode,
       serviceVisible: false,
-      versionVisible: false,
       form: {
         val: null
       },
@@ -137,21 +124,20 @@ export default {
   margin-bottom: 15px;
   .descriptions {
     width: 100%;
-    min-height: 170px;
     background-color: #f8f8f8;
     border-radius: 6px;
-    border: 1px solid rgba(0, 0, 0, 0.1);
+    margin-bottom: 15px;
 
     .title {
       display: flex;
       align-items: center;
-      // justify-content: space-between;
       padding: 20px 0 15px;
       margin: 0 20px 5px;
       line-height: 30px;
-      font-size: 21px;
+      font-size: 20px;
       font-weight: 500;
-      border-bottom: 1px solid #979797;
+      color: #212121;
+      border-bottom: 1px solid #DEDEDE;
     }
   }
   .el-col {
@@ -173,7 +159,7 @@ export default {
       content: ' ';
       width: 1px;
       height: 36px;
-      background-color: #979797;
+      background-color: #DEDEDE;
       display: block;
       position: absolute;
       top: 25px;
@@ -181,28 +167,6 @@ export default {
     }
   }
 }
-.version {
-  margin-left: 12px;
-  cursor: pointer;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  width: 92px;
-  height: 26px;
-  line-height: 26px;
-  background: var(--color-primary);
-  border-radius: 7px 0px 7px 0px;
-  font-size: 14px;
-  color: #fff;
-  .icon_version {
-    display: inline-block;
-    background: url("../../../assets/images/icon_version.png") no-repeat center;
-    background-size: cover;
-    width: 14px;
-    height: 15px;
-    margin-right: 6px;
-  }
-}
 .tips {
   background: #f7f7f7;
   padding: 15px;
@@ -216,6 +180,6 @@ export default {
   }
 }
 .el-input, .el-select {
-  width: 300px !important;
+  width: 200px !important;
 }
 </style>

+ 104 - 78
src/views/productService/index.vue

@@ -7,56 +7,45 @@
       <!-- navMenu    -->
       <div class="descriptions-container">
         <div class="descriptions">
-          <div class="title">服务信息</div>
-          <el-row style="padding: 0 20px">
-            <el-col :span="12" class="border">
-              <el-row>
-                <el-col :span="24">当前版本:<span class="color">{{ dataInfo.serverName }}</span></el-col>
-                <el-col :span="24">服务有效期:<span class="color" v-if="dataInfo.expiryDateEnd">{{ dataInfo.expiryDateEnd }}</span></el-col>
-              </el-row>
-            </el-col>
-            <el-col :span="10" :offset="2">
-              <el-row>
-                <el-col :span="24">学员上限:<span><span class="color">{{ dataInfo.studentNum }}</span> / {{ dataInfo.studentUpLimit }}人</span></el-col>
-                <el-col :span="24">有效期剩余:<span class="color">{{ dataInfo.validRemaining }}天</span></el-col>
-              </el-row>
-            </el-col>
-          </el-row>
-        </div>
-
-        <div class="descriptions">
-          <div class="title">云教室余额 <el-button type="text" @click="onDetail">扣费记录 >></el-button></div>
-          <el-row style="padding: 0 20px">
-            <el-col :span="24">云教室总余额:<span class="color">{{ dataInfo.balance | hasMoneyFormat }}</span></el-col>
-            <!-- <el-col :span="24">冻结余额<el-tooltip placement="top" popper-class="mTooltip">
+          <!-- <el-button type="text" @click="onDetail">扣费记录 >></el-button> -->
+          <el-row>
+            <el-col :span="24"><span class="balance">{{ dataInfo.balance | moneyFormat }}</span><el-tooltip placement="top" popper-class="mTooltip">
                   <div slot="content">已排线上课预计服务费用总和,课程结束后扣减</div>
                   <i
-                    class="el-icon-question micon el-tooltip"
-                    style="
-                      font-size: 18px;
-                      color: #f56c6c;
-                      top: 2px;
-                      position: relative;
-                    "
-                  ></i>
-                </el-tooltip>:<span class="color">{{ dataInfo.frozenAmount | hasMoneyFormat }}</span></el-col>
-            <el-col :span="24">可用余额<el-tooltip placement="top" popper-class="mTooltip">
-                  <div slot="content">排线上课时系统计算预计服务费用,从该余额中进行冻结,若预计服务费用大于该余额则不可排线上课</div>
-                  <i
-                    class="el-icon-question micon el-tooltip"
+                    class="el-icon-warning-outline micon el-tooltip"
                     style="
                       font-size: 18px;
-                      color: #f56c6c;
+                      color: #3d3d3d;
                       top: 2px;
                       position: relative;
                     "
                   ></i>
-                </el-tooltip>:<span class="color">{{ dataInfo.balance | hasMoneyFormat }}</span></el-col> -->
+                </el-tooltip></el-col>
+            <el-col :span="24" class="subTitle"><i class="icon_balance"></i>云教室余额(元) <el-button plain round @click="onDetail" size="mini">扣费记录 <i class="el-icon-arrow-right"></i></el-button></el-col>
           </el-row>
         </div>
-      </div>
-
 
+        <div class="descriptions">
+          <el-row>
+            <el-col :span="24" style="display: flex;align-items: center;"><span class="balance" style="font-size: 26px; margin-right: 0;">{{ dataInfo.serverName }}</span><span class="version" @click="versionVisible = true"><i class="icon_version"></i>版本对比</span></el-col>
+            <el-col :span="24" class="lastTime"><i class="icon_member"></i>
+              剩余<span class="days">{{ dataInfo.validRemaining }}</span>天({{ dataInfo.expiryDateEnd }}到期)
+              <span style="padding-left: 50px">
+                (学员上限) <span class="color">{{ dataInfo.studentNum }}/{{ dataInfo.studentUpLimit }}</span>人
+              </span>
+            </el-col>
+          </el-row>
+        </div>
+      </div>
+      <el-dialog
+        title="版本对比"
+        :visible.sync="versionVisible"
+        width="1000px"
+        v-if="versionVisible"
+        append-to-body
+      >
+        <version @close="versionVisible = false" />
+      </el-dialog>
       <tab-router
         v-model="activeIndex"
         ref="tab"
@@ -87,12 +76,14 @@ import serviceRenew from '@/views/productService/components/serviceRenew'
 import { tenantInfoInfo } from '@/views/organManager/api'
 import { permission } from "@/utils/directivePage";
 import { queryTenantInfoSumm } from "./api";
+import version from '@/views/productService/model/version'
 import dayjs from 'dayjs'
 //    forecastName,
 export default {
   components: {
     cloudRecharge,
-    serviceRenew
+    serviceRenew,
+    version
   },
   name: "productService",
   data() {
@@ -109,6 +100,7 @@ export default {
         frozenAmount: 0,
         balance: 0
       },
+      versionVisible: false,
       tenantInfo: null, // 机构信息
     };
   },
@@ -143,29 +135,13 @@ export default {
   margin-bottom: 15px;
   .descriptions {
     width: 49%;
-    min-height: 170px;
-    background-color: #f8f8f8;
-    border-radius: 6px;
-    border: 1px solid rgba(0, 0, 0, 0.1);
-    // &.small {
-    //   margin-left: 15px;
-    //   width: 300px;
-    // }
-
-    .title {
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      padding: 20px 0 15px;
-      margin: 0 20px 5px;
-      line-height: 30px;
-      font-size: 21px;
-      font-weight: 500;
-      border-bottom: 1px solid #979797;
-    }
-  }
-  .el-row {
-    // padding: 0 20px;
+    min-height: 154px;
+    background-color: #fff;
+    border-radius: 10px;
+    border: 1px solid var(--color-primary);
+    padding: 26px 36px;
+    display: flex;
+    align-items: center;
   }
   .el-col {
     height: 22px;
@@ -173,26 +149,76 @@ export default {
     font-size: 16px;
     color: #212121;
     display: table;
-    span {
-      color: #6D7278;
+  }
+  .balance {
+    font-size: 32px;
+    color: var(--color-primary);
+    margin-right: 9px;
+  }
+  .subTitle {
+    font-size: 16px;
+    color: #212121;
+    margin-top: 30px;
+    display: flex;
+    align-items: center;
+    .el-button {
+      margin-left: 20px;
+      color: var(--color-primary);
+      border-color: var(--color-primary);
+      padding: 4px 9px;
     }
   }
-  .el-col-24 {
-    padding-top: 15px;
+  .lastTime {
+    font-size: 16px;
+    color: #545454;
+    margin-top: 30px;
+    display: flex;
+    align-items: center;
+    .days {
+      font-size: 22px;
+      color: #212121;
+    }
   }
-  .border {
-    position: relative;
-    &::after {
-      content: ' ';
-      width: 1px;
-      height: 36px;
-      background-color: #979797;
-      display: block;
-      position: absolute;
-      top: 25px;
-      right: 0;
+  .color {
+    color: var(--color-primary);
+  }
+  .version {
+    margin-left: 12px;
+    cursor: pointer;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 92px;
+    height: 22px;
+    line-height: 22px;
+    background: var(--color-primary);
+    border-radius: 7px 0px 7px 0px;
+    font-size: 14px;
+    color: #fff;
+    .icon_version {
+      display: inline-block;
+      background: url("../../assets/images/icon_version.png") no-repeat center;
+      background-size: cover;
+      width: 14px;
+      height: 15px;
+      margin-right: 6px;
     }
   }
+
+  .icon_member {
+    display: inline-block;
+    width: 24px;
+    height: 24px;
+    background: url('../../assets/images/base/icon_member.png') no-repeat center;
+    margin-right: 6px;
+  }
+  .icon_balance {
+    display: inline-block;
+    width: 24px;
+    height: 24px;
+    background: url('../../assets/images/base/icon_balance.png') no-repeat center;
+    margin-right: 6px;
+  }
 }
 </style>
 

+ 8 - 1
src/views/studentManager/api.js

@@ -15,9 +15,16 @@ export const add = (data) => request2({
   data
 })
 
-// 
+//
 export const cloudCoachPaymentProgramQueryPage = (data) => request2({
   url: '/api-web/cloudCoachPaymentProgram/queryPage',
   method: 'get',
   params: data
+})
+
+//
+export const cloudQueryPage = (data) => request2({
+  url: '/api-web/studentCloudCoachPaymentDetails/queryPage',
+  method: 'get',
+  params: data
 })

+ 2 - 3
src/views/studentManager/modals/createMember.vue

@@ -154,7 +154,7 @@ export default {
         });
 
         const rankInfo = await getmemberRankOrganizationFeeMapper({ page: 1, rows: 10, organId: this.organId })
-        console.log(rankInfo)
+        // console.log(rankInfo)
         const { rows } = rankInfo.data
         this.memberFeeSetting = rows[0]?.memberFeeSetting
       } catch(e) {
@@ -170,7 +170,7 @@ export default {
               userIds: this.userIds,
               organId: this.organId
             });
-            this.$message.success('添加会员成功')
+            this.$message.success('创建团练宝成功')
             this.$emit("close");
             this.$emit("submited");
           } catch (e) {
@@ -183,7 +183,6 @@ export default {
       const one = Number(value);
       let min = 0;
       let max = 0;
-      console.log(value)
       switch (this.memberForm?.period) {
         case "MONTH": {
           min =

+ 59 - 19
src/views/studentManager/modals/recordDetail.vue

@@ -1,44 +1,84 @@
 <template>
   <div>
-    <el-alert title="基础信息" :closable="false" class="alert" type="info" />
-    <descriptions :column="2">
-      <descriptions-item label="团练宝单位">121212</descriptions-item>
-      <descriptions-item label="周期数">梅赫梅特阿里通克fsdf</descriptions-item>
-      <descriptions-item label="缴费金额(元)">梅赫梅特阿里通克fsdf</descriptions-item>
-      <descriptions-item label="已缴费人数/总人数">梅赫梅特阿里通克fsdf</descriptions-item>
-      <descriptions-item label="创建人">梅赫梅特阿里通克fsdf</descriptions-item>
-      <descriptions-item label="创建时间">梅赫梅特阿里通克fsdf</descriptions-item>
-      <descriptions-item label="备注">梅赫梅特阿里通克fsdf</descriptions-item>
+    <!-- <el-alert title="基础信息" :closable="false" class="alert" type="info" /> -->
+    <descriptions :column="3" style="margin-bottom: 20px;">
+      <descriptions-item label="团练宝单位">{{ detail.period | memberEnumType }}</descriptions-item>
+      <descriptions-item label="周期数">{{ detail.memberNum }}</descriptions-item>
+      <descriptions-item label="缴费金额(元)">{{ detail.actualAmount | hasMoneyFormat }}</descriptions-item>
+      <descriptions-item label="已缴费人数/总人数">{{ detail.paymentUserNum }}/{{ detail.userNum }}</descriptions-item>
+      <descriptions-item label="创建人">{{ detail.operatorName }}</descriptions-item>
+      <descriptions-item label="创建时间">{{ detail.createTime }}</descriptions-item>
+      <descriptions-item label="备注">{{ detail.remark }}</descriptions-item>
     </descriptions>
 
-    <el-alert title="订单详情" :closable="false" class="alert" style="margin-top: 20px;" type="info" />
+    <!-- <el-alert title="订单详情" :closable="false" class="alert" style="margin-top: 20px;" type="info" /> -->
     <el-table
         :data="tableList"
         :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
       >
-      <el-table-column align="center" prop="id" label="产品名称">
+      <el-table-column align="center" prop="userId" label="学员编号">
       </el-table-column>
-      <el-table-column align="center" label="产品类型" prop="name">
+      <el-table-column align="center" label="学员姓名" prop="username">
       </el-table-column>
-      <el-table-column align="center" label="数量" prop="contacts">
+      <el-table-column align="center" label="手机号" prop="phone">
       </el-table-column>
-      <el-table-column align="center" label="单价" prop="phone">
-      </el-table-column>
-      <el-table-column align="center" label="支付价格" prop="payState">
+      <el-table-column align="center" label="缴费状态">
         <template slot-scope="scope">
-          {{ scope.row.payState | organPayState }}
+          {{ scope.row.paymentStatus == 1 ? '已缴费' : '未缴费' }}
         </template>
       </el-table-column>
+      <el-table-column align="center" label="缴费时间" prop="createTime">
+      </el-table-column>
     </el-table>
+    <pagination
+        sync
+        save-key="recordDetail"
+        :total.sync="rules.total"
+        :page.sync="rules.page"
+        :limit.sync="rules.limit"
+        :page-sizes="rules.page_size"
+        @pagination="getList"
+      />
   </div>
 </template>
 
 <script>
+import pagination from "@/components/Pagination/index";
+import { cloudQueryPage } from '../api'
 export default {
+  props: ['detail'],
+  components: { pagination },
   data() {
     return {
-      tableList: []
+      tableList: [],
+      rules: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
+      },
     }
+  },
+  mounted() {
+    console.log(this.detail)
+    this.getList()
+  },
+  methods: {
+    async getList() {
+      try {
+        const res = await cloudQueryPage({
+          paymentId: this.detail.id,
+          page: this.rules.page,
+          rows: this.rules.limit,
+        });
+        console.log(res)
+        this.rules.total = res.data.total;
+        this.tableList = res.data.rows;
+      } catch (e) {
+        console.log(e)
+      }
+    },
   }
 }
 </script>
@@ -47,7 +87,7 @@ export default {
 .alert {
   margin-bottom: 10px;
 }
-.description-title {
+/deep/.description-title {
   margin-bottom: 0;
 }
 .description-label {

+ 13 - 11
src/views/studentManager/studentGroupRecord.vue

@@ -5,7 +5,7 @@
       团练宝缴费记录
     </h2>
     <el-form :inline="true" :model="searchForm">
-      <el-form-item>
+      <el-form-item prop="period">
         <el-select
           placeholder="团练宝单位"
           clearable
@@ -77,11 +77,6 @@
         </el-table-column>
         <el-table-column
           align="center"
-          prop="remark"
-          label="备注"
-        ></el-table-column>
-        <el-table-column
-          align="center"
           label="创建人"
           prop="operatorName"
         >
@@ -91,6 +86,11 @@
           prop="createTime"
           label="创建时间"
         ></el-table-column>
+        <el-table-column
+          align="center"
+          prop="remark"
+          label="备注"
+        ></el-table-column>
         <el-table-column align="center"
                          label="操作">
           <template slot-scope="scope">
@@ -115,7 +115,7 @@
       v-if="recordVisible"
       append-to-body
     >
-      <recordDetail :tableList="selectStudentList" @getList="getList" @close="recordVisible = false" />
+      <recordDetail :detail="selectDetail"  @close="recordVisible = false" />
     </el-dialog>
   </div>
 </template>
@@ -134,7 +134,6 @@ export default {
         visitTime: [],
         period: null,
       },
-      soundList: [],
       tableList: [],
       rules: {
         // 分页规则
@@ -143,7 +142,7 @@ export default {
         total: 0, // 总条数
         page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
-      selectStudentList: [], // 选中的学生列表
+      selectDetail: null,
     };
   },
   mounted() {
@@ -162,17 +161,20 @@ export default {
         this.rules.total = res.data.total;
         this.tableList = res.data.rows;
       } catch (e) { }
-      queryInactive
     },
     search() {
       this.rules.page = 1;
       this.getList();
     },
     onReSet() {
-      this.searchForm = { search: "", subjectId: "" };
+      this.searchForm = {
+        visitTime: [],
+        period: null,
+      }
       this.search()
     },
     onDetail(row) {
+      this.selectDetail = row
       this.recordVisible = true
     }
   },

+ 2 - 2
src/views/tenantSetting/tenantInfo.vue

@@ -41,8 +41,8 @@ export default {
         const res = await tenantInfoInfo({ id: this.$helpers.tenantId })
         this.status = true
         const { config, productInfo, ...other } = res.data
-        const { theme, themeColor, id, ...con } = config
-        this.info = { ...other, theme, themeColor, configId: id }
+        const { theme, themeColor, corporateChops, corporateFinanceChops, id, ...con } = config
+        this.info = { ...other, theme, themeColor, corporateChops, corporateFinanceChops, configId: id }
       } catch (e) {}
     },
     async onNext() {