瀏覽代碼

Merge branch '11/24SAAS' into 03/03GRADE

mo 3 年之前
父節點
當前提交
ddbf94fa71

文件差異過大導致無法顯示
+ 0 - 0
dist/index.html


+ 0 - 1
dist/static/css/chunk-0d319023.b7efbbfe.css

@@ -1 +0,0 @@
-.dialog-footer[data-v-07e9e40c]{display:block;text-align:right;margin-top:20px}.title[data-v-3b09448b]{margin-bottom:30px;font-size:16px;color:#000}.dialog-footer[data-v-4d102b4c]{display:block;text-align:right;margin-top:20px}.newBand[data-v-e4373e10]{display:inline-block;margin-right:10px}.right-code .title[data-v-e4373e10]{font-size:18px;text-align:center;padding-bottom:8px}[data-v-e4373e10] .studentInfo .multiple.el-select{width:185px!important}.red[data-v-e4373e10]{color:red}.demo-table-expand label[data-v-e4373e10]{width:150px;color:#99a9bf}.demo-table-expand .el-form-item[data-v-e4373e10]{margin-right:0;margin-bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;position:relative}.demo-table-expand .el-form-item__label[data-v-e4373e10]{z-index:100}[data-v-e4373e10] .el-table__expanded-cell[class*=cell]{padding:20px 0 20px 110px}.schoolWrap[data-v-e4373e10]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-1bc06ad3.7d75b883.css


+ 0 - 1
dist/static/css/chunk-665096e5.0dd0ad7d.css

@@ -1 +0,0 @@
-.chioseWrap[data-v-368e77bc]{text-align:center;font-size:16px}.chioseWrap>p[data-v-368e77bc]{font-weight:600;padding-bottom:15px;line-height:1.5}.chioseWrap>p span[data-v-368e77bc]{color:red;padding:0 3px}.dialog-footer[data-v-368e77bc]{text-align:right;display:block;padding-top:15px}.chioseWrap[data-v-20fbc19e]{font-size:16px}.chioseWrap>p[data-v-20fbc19e]{font-weight:500;padding-bottom:15px}.chioseWrap>p span[data-v-20fbc19e]{color:red;padding:0 3px}.dialog-footer[data-v-20fbc19e]{text-align:right;display:block;padding-top:15px}

文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-6a11f5e4.73566dfc.css


文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-77f3bfdc.7515c8b2.css


+ 1 - 0
dist/static/css/chunk-9adedfe6.c128b922.css

@@ -0,0 +1 @@
+.dialog-footer[data-v-07e9e40c]{display:block;text-align:right;margin-top:20px}.title[data-v-3b09448b]{margin-bottom:30px;font-size:16px;color:#000}.dialog-footer[data-v-4d102b4c]{display:block;text-align:right;margin-top:20px}.newBand[data-v-06126804]{display:inline-block;margin-right:10px}.right-code .title[data-v-06126804]{font-size:18px;text-align:center;padding-bottom:8px}[data-v-06126804] .studentInfo .multiple.el-select{width:185px!important}.red[data-v-06126804]{color:red}.demo-table-expand label[data-v-06126804]{width:150px;color:#99a9bf}.demo-table-expand .el-form-item[data-v-06126804]{margin-right:0;margin-bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;position:relative}.demo-table-expand .el-form-item__label[data-v-06126804]{z-index:100}[data-v-06126804] .el-table__expanded-cell[class*=cell]{padding:20px 0 20px 110px}.schoolWrap[data-v-06126804]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/chunk-f208cb18.650289d3.css


+ 1 - 0
dist/static/css/chunk-f518c388.4209f4c1.css

@@ -0,0 +1 @@
+.chioseWrap[data-v-368e77bc]{text-align:center;font-size:16px}.chioseWrap>p[data-v-368e77bc]{font-weight:600;padding-bottom:15px;line-height:1.5}.chioseWrap>p span[data-v-368e77bc]{color:red;padding:0 3px}.dialog-footer[data-v-368e77bc]{text-align:right;display:block;padding-top:15px}.chioseWrap[data-v-36506a1d]{font-size:16px}.chioseWrap>p[data-v-36506a1d]{font-weight:500;padding-bottom:15px}.chioseWrap>p span[data-v-36506a1d]{color:red;padding:0 3px}.dialog-footer[data-v-36506a1d]{text-align:right;display:block;padding-top:15px}

文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/app.7b521d0a.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-0d319023.036e946d.js


文件差異過大導致無法顯示
+ 1 - 1
dist/static/js/chunk-1bc06ad3.463dcdaf.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-2d2e5db1.f706084c.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-34f534da.5f80c4ea.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-598480c1.fe3baf17.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-665096e5.fadb9841.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-6a11f5e4.6918dcfc.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-77f3bfdc.6d36505a.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-9adedfe6.23f08e73.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-f208cb18.21530894.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-f518c388.e78486a1.js


+ 1 - 0
src/views/liveClassManager/newLiveClass.vue

@@ -540,6 +540,7 @@ export default {
           params: {
           params: {
             rows: 9999,
             rows: 9999,
             search: query,
             search: query,
+            lockFlag:0
           },
           },
           url,
           url,
         };
         };

+ 97 - 57
src/views/productService/model/rechargeModel.vue

@@ -1,7 +1,12 @@
 <template>
 <template>
   <div class="chioseWrap">
   <div class="chioseWrap">
     <el-form :inline="true" ref="payForm" :model="payForm">
     <el-form :inline="true" ref="payForm" :model="payForm">
-      <el-form-item prop="payType" :rules="[{required: true, message: '请选择支付方式', trigger: 'change'}]">
+      <el-form-item
+        prop="payType"
+        :rules="[
+          { required: true, message: '请选择支付方式', trigger: 'change' }
+        ]"
+      >
         <el-select
         <el-select
           v-model.trim="payForm.payType"
           v-model.trim="payForm.payType"
           style="width: 180px"
           style="width: 180px"
@@ -21,26 +26,22 @@
     >
     >
       <el-table-column align="center" prop="name" label="产品名称">
       <el-table-column align="center" prop="name" label="产品名称">
       </el-table-column>
       </el-table-column>
-      <el-table-column
-        align="center"
-        label="充值金额(元)"
-      >
+      <el-table-column align="center" label="充值金额(元)">
         <template slot-scope="scope">
         <template slot-scope="scope">
           {{ scope.row.rechargeAmount | hasMoneyFormat }}
           {{ scope.row.rechargeAmount | hasMoneyFormat }}
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column
-        align="center"
-        label="支付价格(元)"
-      >
+      <el-table-column align="center" label="支付价格(元)">
         <template slot-scope="scope">
         <template slot-scope="scope">
-          <span style="color: red;">{{ scope.row.amount | hasMoneyFormat }}</span>
+          <span style="color: red;">{{
+            scope.row.amount | hasMoneyFormat
+          }}</span>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
 
 
     <span slot="footer" class="dialog-footer">
     <span slot="footer" class="dialog-footer">
-      <el-button @click="$listeners.close();">取 消</el-button>
+      <el-button @click="$listeners.close()">取 消</el-button>
       <el-button @click="onMemberPay" type="primary">确 定</el-button>
       <el-button @click="onMemberPay" type="primary">确 定</el-button>
     </span>
     </span>
 
 
@@ -52,21 +53,27 @@
       width="500px"
       width="500px"
       append-to-body
       append-to-body
     >
     >
-      <payment :tableList="tableList" :orderNo="orderNo" v-on="$listeners" :codeUrl="codeUrl" @close="onPaymentClose" />
+      <payment
+        :tableList="tableList"
+        :orderNo="orderNo"
+        v-on="$listeners"
+        :codeUrl="codeUrl"
+        @close="onPaymentClose"
+      />
     </el-dialog>
     </el-dialog>
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
-import { recharge } from '../api'
-import { vaildStudentUrl } from '@/utils/validate'
-import payment from '@/views/productService/model/payment'
+import { recharge } from "../api";
+import { vaildStudentUrl } from "@/utils/validate";
+import payment from "@/views/productService/model/payment";
 export default {
 export default {
   props: ["amount"],
   props: ["amount"],
   components: { payment },
   components: { payment },
   data() {
   data() {
     return {
     return {
       payForm: {
       payForm: {
-        payType: null,
+        payType: null
       },
       },
       pay_channel: null, //支付渠道
       pay_channel: null, //支付渠道
       selectStudentMoney: 0, // 选中学生金额
       selectStudentMoney: 0, // 选中学生金额
@@ -77,64 +84,97 @@ export default {
     };
     };
   },
   },
   async mounted() {
   async mounted() {
-    if(this.amount) {
-      this.tableList = [{
-        name: '云教室充值',
-        rechargeAmount: this.amount,
-        amount: this.amount
-      }]
+    if (this.amount) {
+      this.tableList = [
+        {
+          name: "云教室充值",
+          rechargeAmount: this.amount,
+          amount: this.amount
+        }
+      ];
     }
     }
   },
   },
   methods: {
   methods: {
     onMemberPay() {
     onMemberPay() {
-      this.$refs.payForm.validate(async (_) => {
-        if(_) {
+      this.$refs.payForm.validate(async _ => {
+        if (_) {
           try {
           try {
-            const res = await recharge({ amount: this.amount })
-            console.log(res.data.amount, res.data.orderNo)
-            if(res.data.amount == 0 && res.data.orderNo) {
-              this.$message.success('您已成功缴费')
-              this.onPaymentClose(true)
-              this.$listeners.getList()
-              return
+            const res = await recharge({ amount: this.amount });
+            console.log(res.data.amount, res.data.orderNo);
+            if (res.data.amount == 0 && res.data.orderNo) {
+              this.$message.success("您已成功缴费");
+              this.onPaymentClose(true);
+              this.$listeners.getList();
+              return;
             }
             }
-            const payForm = this.payForm
+            const payForm = this.payForm;
             // // 二维码页面, 唤起支付页面
             // // 二维码页面, 唤起支付页面
-            const { orderNo, sign, amount, orderBody, orderSubject } = res.data.payMap
-            this.orderNo = orderNo
-            this.codeUrl = vaildStudentUrl() + '/#/payCenter?orderNo=' + orderNo + '&sign=' + sign + '&amount=' + amount + '&payType=' + payForm.payType + '&orderBody=' + orderBody + '&orderSubject=' + orderSubject + '&platform=tenantRecharge'
-            console.log(this.codeUrl, 'codeUrl')
-            this.payMentVisible = true
-          } catch(e) {}
+            const {
+              orderNo,
+              sign,
+              amount,
+              orderBody,
+              orderSubject,
+              tenantId,
+              returnUrl,
+              notifyUrl
+            } = res.data.payMap;
+            this.orderNo = orderNo;
+            this.codeUrl =
+              vaildStudentUrl() +
+              "/#/payCenter?orderNo=" +
+              orderNo +
+              "&sign=" +
+              sign +
+              "&amount=" +
+              amount +
+              "&payType=" +
+              payForm.payType +
+              "&orderBody=" +
+              orderBody +
+              "&orderSubject=" +
+              orderSubject +
+              "&platform=tenantRecharge" +
+              "&tenantId" +
+              tenantId +
+              "&returnUrl=" +
+              returnUrl +
+              "&notifyUrl=" +
+              notifyUrl;
+            console.log(this.codeUrl, "codeUrl");
+            this.payMentVisible = true;
+          } catch (e) {}
         }
         }
-      })
+      });
     },
     },
     onClose(done) {
     onClose(done) {
-      this.onPaymentClose(false, done)
+      this.onPaymentClose(false, done);
     },
     },
     onPaymentClose(hideTip = false, callBack) {
     onPaymentClose(hideTip = false, callBack) {
-      if(hideTip) {
-        this.payMentVisible = false
-        this.$emit('close')
-        return
+      if (hideTip) {
+        this.payMentVisible = false;
+        this.$emit("close");
+        return;
       }
       }
       this.$confirm(`是否支付完成?`, "提示", {
       this.$confirm(`是否支付完成?`, "提示", {
         confirmButtonText: "已完成支付",
         confirmButtonText: "已完成支付",
         cancelButtonText: "未完成支付",
         cancelButtonText: "未完成支付",
-        type: "warning",
-      }).then(async (res) => {
-        if(typeof callBack == 'function') {
-          callBack()
-        }
-        this.payMentVisible = false
-      }).catch(e => {
-        if(typeof callBack == 'function') {
-          callBack()
-        }
-        this.payMentVisible = false
-      });
+        type: "warning"
+      })
+        .then(async res => {
+          if (typeof callBack == "function") {
+            callBack();
+          }
+          this.payMentVisible = false;
+        })
+        .catch(e => {
+          if (typeof callBack == "function") {
+            callBack();
+          }
+          this.payMentVisible = false;
+        });
     }
     }
-  },
+  }
 };
 };
 </script>
 </script>
 <style lang="less" scoped>
 <style lang="less" scoped>

+ 139 - 75
src/views/productService/model/serviceModel.vue

@@ -1,7 +1,12 @@
 <template>
 <template>
   <div class="chioseWrap">
   <div class="chioseWrap">
     <el-form :inline="true" ref="payForm" :model="payForm">
     <el-form :inline="true" ref="payForm" :model="payForm">
-      <el-form-item prop="payType" :rules="[{required: true, message: '请选择支付方式', trigger: 'change'}]">
+      <el-form-item
+        prop="payType"
+        :rules="[
+          { required: true, message: '请选择支付方式', trigger: 'change' }
+        ]"
+      >
         <el-select
         <el-select
           v-model.trim="payForm.payType"
           v-model.trim="payForm.payType"
           style="width: 180px"
           style="width: 180px"
@@ -18,7 +23,11 @@
         :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
         :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
         :data="tableList"
         :data="tableList"
       >
       >
-        <el-table-column align="center" prop="platformServeName" label="产品名称">
+        <el-table-column
+          align="center"
+          prop="platformServeName"
+          label="产品名称"
+        >
         </el-table-column>
         </el-table-column>
         <el-table-column align="center" label="学员上限">
         <el-table-column align="center" label="学员上限">
           <template slot-scope="scope">
           <template slot-scope="scope">
@@ -32,34 +41,43 @@
         </el-table-column>
         </el-table-column>
         <el-table-column align="center" prop="num" label="数量">
         <el-table-column align="center" prop="num" label="数量">
         </el-table-column>
         </el-table-column>
-        <el-table-column
-          align="center"
-          label="原价(元)"
-        >
+        <el-table-column align="center" label="原价(元)">
           <template slot-scope="scope">
           <template slot-scope="scope">
             {{ scope.row.rechargeAmount | hasMoneyFormat }}
             {{ scope.row.rechargeAmount | hasMoneyFormat }}
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-        <el-table-column
-          align="center"
-          label="支付价格(元)"
-        >
+        <el-table-column align="center" label="支付价格(元)">
           <template slot-scope="scope">
           <template slot-scope="scope">
-            <span style="color: red;">{{ scope.row.value | hasMoneyFormat }}</span>
+            <span style="color: red;">{{
+              scope.row.value | hasMoneyFormat
+            }}</span>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
 
 
-      <el-form-item prop="checked" :rules="[{required: true, message: '请阅读并同意协议', trigger: 'change'}]">
+      <el-form-item
+        prop="checked"
+        :rules="[
+          { required: true, message: '请阅读并同意协议', trigger: 'change' }
+        ]"
+      >
         <el-checkbox v-model="payForm.checked" @change="onCheckChange">
         <el-checkbox v-model="payForm.checked" @change="onCheckChange">
         </el-checkbox>
         </el-checkbox>
-          <span style="color: #606266; padding-left: 5px;cursor: pointer;" @click="onCheckBox">我已阅读并同意</span>
-          <span @click.stop="onLookContract" style="color: #01C1B5;cursor: pointer;">《产品及服务协议》</span>
+        <span
+          style="color: #606266; padding-left: 5px;cursor: pointer;"
+          @click="onCheckBox"
+          >我已阅读并同意</span
+        >
+        <span
+          @click.stop="onLookContract"
+          style="color: #01C1B5;cursor: pointer;"
+          >《产品及服务协议》</span
+        >
       </el-form-item>
       </el-form-item>
     </el-form>
     </el-form>
 
 
     <span slot="footer" class="dialog-footer">
     <span slot="footer" class="dialog-footer">
-      <el-button @click="$listeners.close();">取 消</el-button>
+      <el-button @click="$listeners.close()">取 消</el-button>
       <el-button @click="onMemberPay" type="primary">确 定</el-button>
       <el-button @click="onMemberPay" type="primary">确 定</el-button>
     </span>
     </span>
 
 
@@ -85,17 +103,23 @@
       width="500px"
       width="500px"
       append-to-body
       append-to-body
     >
     >
-      <payment :tableList="tableList" :orderNo="orderNo" v-on="$listeners" :codeUrl="codeUrl" @close="onPaymentClose" />
+      <payment
+        :tableList="tableList"
+        :orderNo="orderNo"
+        v-on="$listeners"
+        :codeUrl="codeUrl"
+        @close="onPaymentClose"
+      />
     </el-dialog>
     </el-dialog>
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
 // import { recharge } from '../api'
 // import { recharge } from '../api'
-import { vaildStudentUrl } from '@/utils/validate'
-import payment from '@/views/productService/model/payment'
+import { vaildStudentUrl } from "@/utils/validate";
+import payment from "@/views/productService/model/payment";
 import previewProtocol from "@/views/tenantSetting/model/previewProtocol";
 import previewProtocol from "@/views/tenantSetting/model/previewProtocol";
-import { tenantInfoRePay, getContract } from '../api'
-import { getTenantId } from '@/utils/auth'
+import { tenantInfoRePay, getContract } from "../api";
+import { getTenantId } from "@/utils/auth";
 export default {
 export default {
   props: ["value", "tenantInfo"],
   props: ["value", "tenantInfo"],
   components: { payment, previewProtocol },
   components: { payment, previewProtocol },
@@ -103,7 +127,7 @@ export default {
     return {
     return {
       payForm: {
       payForm: {
         payType: null,
         payType: null,
-        checked: null,
+        checked: null
       },
       },
       fileContent: null,
       fileContent: null,
       lookVisible: false,
       lookVisible: false,
@@ -116,90 +140,130 @@ export default {
     };
     };
   },
   },
   async mounted() {
   async mounted() {
-    if(this.value) {
-      const { contractPrice, originalPrice, ...res } = this.tenantInfo
-      this.tableList = [{
-        ...res,
-        num: this.value,
-        rechargeAmount: this.value * originalPrice,
-        value: this.value * contractPrice
-      }]
+    if (this.value) {
+      const { contractPrice, originalPrice, ...res } = this.tenantInfo;
+      this.tableList = [
+        {
+          ...res,
+          num: this.value,
+          rechargeAmount: this.value * originalPrice,
+          value: this.value * contractPrice
+        }
+      ];
     }
     }
   },
   },
   methods: {
   methods: {
     onCheckChange() {
     onCheckChange() {
-      if(!this.payForm.checked) {
-        this.payForm.checked = null
+      if (!this.payForm.checked) {
+        this.payForm.checked = null;
       }
       }
     },
     },
     onCheckBox() {
     onCheckBox() {
-      if(this.payForm.checked) {
-        this.payForm.checked = null
+      if (this.payForm.checked) {
+        this.payForm.checked = null;
       } else {
       } else {
-        this.payForm.checked = true
+        this.payForm.checked = true;
       }
       }
     },
     },
     onMemberPay() {
     onMemberPay() {
-      this.$refs.payForm.validate(async (_) => {
-        if(_) {
+      this.$refs.payForm.validate(async _ => {
+        if (_) {
           try {
           try {
-            console.log(this.value, 'this.value')
-            const res = await tenantInfoRePay({ id: getTenantId(), val: this.value })
+            console.log(this.value, "this.value");
+            const res = await tenantInfoRePay({
+              id: getTenantId(),
+              val: this.value
+            });
             // console.log(res)
             // console.log(res)
-            if(res.data.amount == 0 && res.data.orderNo) {
-              this.$message.success('您已成功缴费')
-              this.onPaymentClose(true)
-              this.$listeners.getList()
-              return
+            if (res.data.amount == 0 && res.data.orderNo) {
+              this.$message.success("您已成功缴费");
+              this.onPaymentClose(true);
+              this.$listeners.getList();
+              return;
             }
             }
-            const payForm = this.payForm
+            const payForm = this.payForm;
             // 二维码页面, 唤起支付页面
             // 二维码页面, 唤起支付页面
-            const { orderNo, sign, amount, orderBody, orderSubject } = res.data.payMap
-            this.orderNo = orderNo
-            this.codeUrl = vaildStudentUrl() + '/#/payCenter?orderNo=' + orderNo + '&sign=' + sign + '&amount=' + amount + '&payType=' + payForm.payType + '&orderBody=' + orderBody + '&orderSubject=' + orderSubject + '&platform=tenant'
-            console.log(this.codeUrl, 'codeUrl')
-            this.payMentVisible = true
-          } catch(e) {}
+            const {
+              orderNo,
+              sign,
+              amount,
+              orderBody,
+              orderSubject,
+              tenantId,
+              returnUrl,
+              notifyUrl
+            } = res.data.payMap;
+            this.orderNo = orderNo;
+            this.codeUrl =
+              vaildStudentUrl() +
+              "/#/payCenter?orderNo=" +
+              orderNo +
+              "&sign=" +
+              sign +
+              "&amount=" +
+              amount +
+              "&payType=" +
+              payForm.payType +
+              "&orderBody=" +
+              orderBody +
+              "&orderSubject=" +
+              orderSubject +
+              "&platform=tenant" +
+              "&tenantId=" +
+              tenantId +
+              "&returnUrl=" +
+              returnUrl +
+              "&notifyUrl=" +
+              notifyUrl;
+            console.log(this.codeUrl, "codeUrl");
+            this.payMentVisible = true;
+          } catch (e) {}
         }
         }
-      })
+      });
     },
     },
     onClose(done) {
     onClose(done) {
-      this.onPaymentClose(false, done)
+      this.onPaymentClose(false, done);
     },
     },
     async onLookContract() {
     async onLookContract() {
       // 如果有协议则不需要重新请求
       // 如果有协议则不需要重新请求
-      if(!this.fileContent) {
+      if (!this.fileContent) {
         try {
         try {
-          const tenantId = this.$helpers.tenantId
-          const res = await getContract({ id: tenantId, type: 1, renewCount: this.value })
-          this.fileContent = res.data
-        } catch(e) {}
+          const tenantId = this.$helpers.tenantId;
+          const res = await getContract({
+            id: tenantId,
+            type: 1,
+            renewCount: this.value
+          });
+          this.fileContent = res.data;
+        } catch (e) {}
       }
       }
-      this.lookVisible = true
+      this.lookVisible = true;
     },
     },
     onPaymentClose(hideTip = false, callBack) {
     onPaymentClose(hideTip = false, callBack) {
-      if(hideTip) {
-        this.payMentVisible = false
-        this.$emit('close')
-        return
+      if (hideTip) {
+        this.payMentVisible = false;
+        this.$emit("close");
+        return;
       }
       }
       this.$confirm(`是否支付完成?`, "提示", {
       this.$confirm(`是否支付完成?`, "提示", {
         confirmButtonText: "已完成支付",
         confirmButtonText: "已完成支付",
         cancelButtonText: "未完成支付",
         cancelButtonText: "未完成支付",
-        type: "warning",
-      }).then(async (res) => {
-        if(typeof callBack == 'function') {
-          callBack()
-        }
-        this.payMentVisible = false
-      }).catch(e => {
-        if(typeof callBack == 'function') {
-          callBack()
-        }
-        this.payMentVisible = false
-      });
+        type: "warning"
+      })
+        .then(async res => {
+          if (typeof callBack == "function") {
+            callBack();
+          }
+          this.payMentVisible = false;
+        })
+        .catch(e => {
+          if (typeof callBack == "function") {
+            callBack();
+          }
+          this.payMentVisible = false;
+        });
     }
     }
-  },
+  }
 };
 };
 </script>
 </script>
 <style lang="less" scoped>
 <style lang="less" scoped>

+ 104 - 57
src/views/resetTeaming/modals/giveMemberModel.vue

@@ -1,8 +1,19 @@
 <template>
 <template>
   <div class="chioseWrap">
   <div class="chioseWrap">
-    <p>您将为以下<span>{{tableList.length}}</span>位学员激活云教练,激活金额<span>{{ selectStudentMoney | moneyFormat }}</span>元</p>
+    <p>
+      您将为以下<span>{{ tableList.length }}</span
+      >位学员激活云教练,激活金额<span>{{
+        selectStudentMoney | moneyFormat
+      }}</span
+      >元
+    </p>
     <el-form :inline="true" ref="payForm" :model="payForm">
     <el-form :inline="true" ref="payForm" :model="payForm">
-      <el-form-item prop="payType" :rules="[{required: true, message: '请选择支付方式', trigger: 'change'}]">
+      <el-form-item
+        prop="payType"
+        :rules="[
+          { required: true, message: '请选择支付方式', trigger: 'change' }
+        ]"
+      >
         <el-select
         <el-select
           v-model.trim="payForm.payType"
           v-model.trim="payForm.payType"
           style="width: 180px"
           style="width: 180px"
@@ -24,11 +35,7 @@
       </el-table-column>
       </el-table-column>
       <el-table-column align="center" prop="phone" label="手机号">
       <el-table-column align="center" prop="phone" label="手机号">
       </el-table-column>
       </el-table-column>
-      <el-table-column
-        align="center"
-        prop="type"
-        label="云教练类型"
-      >
+      <el-table-column align="center" prop="type" label="云教练类型">
         <template slot-scope="scope">
         <template slot-scope="scope">
           {{ scope.row.type | memberEnumType }}
           {{ scope.row.type | memberEnumType }}
         </template>
         </template>
@@ -38,10 +45,7 @@
         prop="time"
         prop="time"
         label="数量"
         label="数量"
       ></el-table-column>
       ></el-table-column>
-      <el-table-column
-        align="center"
-        label="缴费金额(元)"
-      >
+      <el-table-column align="center" label="缴费金额(元)">
         <template slot-scope="scope">
         <template slot-scope="scope">
           {{ scope.row.amount | hasMoneyFormat }}
           {{ scope.row.amount | hasMoneyFormat }}
         </template>
         </template>
@@ -49,7 +53,13 @@
     </el-table>
     </el-table>
 
 
     <span slot="footer" class="dialog-footer">
     <span slot="footer" class="dialog-footer">
-      <el-button @click="$listeners.close();$listeners.getList()">取 消</el-button>
+      <el-button
+        @click="
+          $listeners.close();
+          $listeners.getList();
+        "
+        >取 消</el-button
+      >
       <el-button @click="onMemberPay" type="primary">确 定</el-button>
       <el-button @click="onMemberPay" type="primary">确 定</el-button>
     </span>
     </span>
 
 
@@ -61,86 +71,123 @@
       width="500px"
       width="500px"
       append-to-body
       append-to-body
     >
     >
-      <giveMemberPayment :tableList="tableList" v-on="$listeners" :orderNo="orderNo" :codeUrl="codeUrl" @close="onPaymentClose" />
+      <giveMemberPayment
+        :tableList="tableList"
+        v-on="$listeners"
+        :orderNo="orderNo"
+        :codeUrl="codeUrl"
+        @close="onPaymentClose"
+      />
     </el-dialog>
     </el-dialog>
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
-import { cloudPay } from '../api'
-import { vaildStudentUrl } from '@/utils/validate'
-import giveMemberPayment from '@/views/resetTeaming/modals/giveMemberPayment'
+import { cloudPay } from "../api";
+import { vaildStudentUrl } from "@/utils/validate";
+import giveMemberPayment from "@/views/resetTeaming/modals/giveMemberPayment";
 export default {
 export default {
   props: ["tableList"],
   props: ["tableList"],
   components: { giveMemberPayment },
   components: { giveMemberPayment },
   data() {
   data() {
     return {
     return {
       payForm: {
       payForm: {
-        payType: null,
+        payType: null
       },
       },
       pay_channel: null, //支付渠道
       pay_channel: null, //支付渠道
       selectStudentMoney: 0, // 选中学生金额
       selectStudentMoney: 0, // 选中学生金额
       payMentVisible: false,
       payMentVisible: false,
       codeUrl: null,
       codeUrl: null,
-      orderNo: null,
+      orderNo: null
     };
     };
   },
   },
   async mounted() {
   async mounted() {
-    let tableList = this.tableList || []
-    for(let i of tableList) {
-      this.selectStudentMoney += parseFloat(i.amount)
+    let tableList = this.tableList || [];
+    for (let i of tableList) {
+      this.selectStudentMoney += parseFloat(i.amount);
     }
     }
   },
   },
   methods: {
   methods: {
     onMemberPay() {
     onMemberPay() {
-      this.$refs.payForm.validate(async (_) => {
-        if(_) {
+      this.$refs.payForm.validate(async _ => {
+        if (_) {
           try {
           try {
-            const res = await cloudPay(this.tableList)
-            console.log(res)
-            if(res.data.amount == 0 && res.data.orderNo) {
-              this.$message.success('您已成功缴费')
-              this.onPaymentClose(true)
-              this.$listeners.getList()
-              return
+            const res = await cloudPay(this.tableList);
+            console.log(res);
+            if (res.data.amount == 0 && res.data.orderNo) {
+              this.$message.success("您已成功缴费");
+              this.onPaymentClose(true);
+              this.$listeners.getList();
+              return;
             }
             }
-            const payForm = this.payForm
+            const payForm = this.payForm;
             // // 二维码页面, 唤起支付页面
             // // 二维码页面, 唤起支付页面
-            const { orderNo, sign, amount, orderBody, orderSubject } = res.data.payMap
-            this.orderNo = orderNo
-            this.codeUrl = vaildStudentUrl() + '/#/payCenter?orderNo=' + orderNo + '&sign=' + sign + '&amount=' + amount + '&payType=' + payForm.payType + '&orderBody=' + orderBody + '&orderSubject=' + orderSubject + '&platform=cloudTeacherOrder'
-            console.log(this.codeUrl, 'codeUrl')
-            this.payMentVisible = true
-          } catch(e) {}
+            const {
+              orderNo,
+              sign,
+              amount,
+              orderBody,
+              orderSubject,
+              tenantId,
+              returnUrl,
+              notifyUrl
+            } = res.data.payMap;
+            this.orderNo = orderNo;
+            this.codeUrl =
+              vaildStudentUrl() +
+              "/#/payCenter?orderNo=" +
+              orderNo +
+              "&sign=" +
+              sign +
+              "&amount=" +
+              amount +
+              "&payType=" +
+              payForm.payType +
+              "&orderBody=" +
+              orderBody +
+              "&orderSubject=" +
+              orderSubject +
+              "&platform=cloudTeacherOrder" +
+              "&tenantId=" +
+              tenantId +
+              "&returnUrl=" +
+              returnUrl +
+              "&notifyUrl=" +
+              notifyUrl;
+            console.log(this.codeUrl, "codeUrl");
+            this.payMentVisible = true;
+          } catch (e) {}
         }
         }
-      })
+      });
     },
     },
     onClose(done) {
     onClose(done) {
-      this.onPaymentClose(false, done)
+      this.onPaymentClose(false, done);
     },
     },
     onPaymentClose(hideTip = false, callBack) {
     onPaymentClose(hideTip = false, callBack) {
-      if(hideTip) {
-        this.payMentVisible = false
-        this.$emit('close')
-        this.$emit('getList')
-        return
+      if (hideTip) {
+        this.payMentVisible = false;
+        this.$emit("close");
+        this.$emit("getList");
+        return;
       }
       }
       this.$confirm(`是否支付完成?`, "提示", {
       this.$confirm(`是否支付完成?`, "提示", {
         confirmButtonText: "已完成支付",
         confirmButtonText: "已完成支付",
         cancelButtonText: "未完成支付",
         cancelButtonText: "未完成支付",
-        type: "warning",
-      }).then(async (res) => {
-        if(typeof callBack == 'function') {
-          callBack()
-        }
-        this.payMentVisible = false
-      }).catch(e => {
-        if(typeof callBack == 'function') {
-          callBack()
-        }
-        this.payMentVisible = false
-      });
+        type: "warning"
+      })
+        .then(async res => {
+          if (typeof callBack == "function") {
+            callBack();
+          }
+          this.payMentVisible = false;
+        })
+        .catch(e => {
+          if (typeof callBack == "function") {
+            callBack();
+          }
+          this.payMentVisible = false;
+        });
     }
     }
-  },
+  }
 };
 };
 </script>
 </script>
 <style lang="less" scoped>
 <style lang="less" scoped>

+ 93 - 26
src/views/setQuestions/operation.vue

@@ -90,7 +90,7 @@
             >
             >
               <template slot="label">
               <template slot="label">
                 <p style="position: relative" class="titleCell">
                 <p style="position: relative" class="titleCell">
-                  <span style="color: #f56c6c; margin-right: 4px">*</span>
+                  <!-- <span style="color: #f56c6c; margin-right: 4px">*</span> -->
                   是否逐题提交
                   是否逐题提交
                   <el-tooltip placement="top" popper-class="mTooltip">
                   <el-tooltip placement="top" popper-class="mTooltip">
                     <div slot="content">逐题模式下,所有问题默认必填</div>
                     <div slot="content">逐题模式下,所有问题默认必填</div>
@@ -119,6 +119,80 @@
           </el-col>
           </el-col>
         </el-row>
         </el-row>
         <el-row>
         <el-row>
+          <el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
+            <el-form-item
+              label="分享标题"
+              prop="shareTitle"
+              :rules="[
+                { required: true, message: '请输入分享标题', trigger: 'blur' },
+              ]"
+            >
+              <template slot="label">
+                <p style="position: relative" class="titleCell">
+                  <!-- <span style="color: #f56c6c; margin-right: 4px">*</span> -->
+                  分享标题
+                  <el-tooltip placement="top" popper-class="mTooltip">
+                    <div slot="content">
+                      问卷链接分享到微信时,显示的链接标题
+                    </div>
+                    <i
+                      class="el-icon-question"
+                      style="
+                        font-size: 18px;
+                        color: #f56c6c;
+                        position: relative;
+                        top: 2px;
+                      "
+                    ></i>
+                  </el-tooltip>
+                </p>
+              </template>
+              <el-input
+                v-model="form.shareTitle"
+                placeholder="请输入分享标题"
+                :disabled="disabled"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
+            <el-form-item
+              label="分享描述"
+              prop="shareDescribe"
+              :rules="[
+                { required: true, message: '请输入分享描述', trigger: 'blur' },
+              ]"
+            >
+              <template slot="label">
+                <p style="position: relative" class="titleCell">
+                  <!-- <span style="color: #f56c6c; margin-right: 4px">*</span> -->
+                  分享描述
+                  <el-tooltip placement="top" popper-class="mTooltip">
+                    <div slot="content">
+                      问卷链接分享到微信时,显示的链接描述
+                    </div>
+                    <i
+                      class="el-icon-question"
+                      style="
+                        font-size: 18px;
+                        color: #f56c6c;
+                        position: relative;
+                        top: 2px;
+                      "
+                    ></i>
+                  </el-tooltip>
+                </p>
+              </template>
+              <el-input
+                v-model="form.shareDescribe"
+                placeholder="请输入分享描述"
+                :disabled="disabled"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
           <el-form-item
           <el-form-item
             label="问卷模板"
             label="问卷模板"
             prop="templateType"
             prop="templateType"
@@ -236,7 +310,7 @@
             </el-col>
             </el-col>
             <el-col :span="12" style="text-align: right; padding-right: 15px">
             <el-col :span="12" style="text-align: right; padding-right: 15px">
               <el-tooltip
               <el-tooltip
-              key="moveDown"
+                key="moveDown"
                 class="item"
                 class="item"
                 effect="dark"
                 effect="dark"
                 content="向下移动"
                 content="向下移动"
@@ -250,7 +324,7 @@
                 ></el-button>
                 ></el-button>
               </el-tooltip>
               </el-tooltip>
               <el-tooltip
               <el-tooltip
-              key="moveUp"
+                key="moveUp"
                 class="item"
                 class="item"
                 effect="dark"
                 effect="dark"
                 content="向上移动"
                 content="向上移动"
@@ -338,21 +412,16 @@
         </el-col>
         </el-col>
       </el-row>
       </el-row>
       <el-row>
       <el-row>
-        <el-col :xs="24"
-          :sm="24"
-          :md="24"
-          :lg="18"
-          :xl="18">
-                            <el-alert
-        v-if="disabled"
-        style="margin: 10px 0"
-        title="该问卷已存在提交数据,不可修改"
-        :closable="false"
-        type="error"
-      >
-      </el-alert>
-          </el-col>
-
+        <el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
+          <el-alert
+            v-if="disabled"
+            style="margin: 10px 0"
+            title="该问卷已存在提交数据,不可修改"
+            :closable="false"
+            type="error"
+          >
+          </el-alert>
+        </el-col>
       </el-row>
       </el-row>
 
 
       <el-button type="primary" :disabled="disabled" @click="onSubmit">{{
       <el-button type="primary" :disabled="disabled" @click="onSubmit">{{
@@ -414,7 +483,7 @@ export default {
         title: null,
         title: null,
         againCommitFlag: 1,
         againCommitFlag: 1,
         questionnaireQuestionList: [{ questionnaireQuestionItemList: [{}] }],
         questionnaireQuestionList: [{ questionnaireQuestionItemList: [{}] }],
-        commitType:null
+        commitType: null,
       },
       },
       disabled: false,
       disabled: false,
       questionStatus: false,
       questionStatus: false,
@@ -467,7 +536,7 @@ export default {
         console.log(validateResult);
         console.log(validateResult);
         if (validateResult) {
         if (validateResult) {
           this.setResultSort();
           this.setResultSort();
-          console.log(this.form)
+          console.log(this.form);
           try {
           try {
             if (this.type == "create") {
             if (this.type == "create") {
               await questionnaireTopicAdd(this.form);
               await questionnaireTopicAdd(this.form);
@@ -528,24 +597,23 @@ export default {
     },
     },
     // 向上移动
     // 向上移动
     moveUp(arr, index) {
     moveUp(arr, index) {
-      console.log('向上移动')
+      console.log("向上移动");
       arr.splice(index, 1, ...arr.splice(index + 1, 1, arr[index]));
       arr.splice(index, 1, ...arr.splice(index + 1, 1, arr[index]));
     },
     },
     // 向下移动
     // 向下移动
     moveDown(arr, index) {
     moveDown(arr, index) {
-      console.log('向下移动')
+      console.log("向下移动");
       arr.splice(index - 1, 1, ...arr.splice(index, 1, arr[index - 1]));
       arr.splice(index - 1, 1, ...arr.splice(index, 1, arr[index - 1]));
     },
     },
     // 删除选项
     // 删除选项
     onDelete(arr, index) {
     onDelete(arr, index) {
       if (!this.disabled) {
       if (!this.disabled) {
         if (this.form.delQuestionnaireQuestionIdList) {
         if (this.form.delQuestionnaireQuestionIdList) {
-
           this.form.delQuestionnaireQuestionIdList.push(arr[index].id);
           this.form.delQuestionnaireQuestionIdList.push(arr[index].id);
-             console.log( this.form.delQuestionnaireQuestionIdList)
+          console.log(this.form.delQuestionnaireQuestionIdList);
         } else {
         } else {
           this.form.delQuestionnaireQuestionIdList = [arr[index].id];
           this.form.delQuestionnaireQuestionIdList = [arr[index].id];
-            console.log( this.form.delQuestionnaireQuestionIdList)
+          console.log(this.form.delQuestionnaireQuestionIdList);
         }
         }
       }
       }
       arr.splice(index, 1);
       arr.splice(index, 1);
@@ -586,7 +654,6 @@ export default {
       if (!val) {
       if (!val) {
         this.form.commitType = 0;
         this.form.commitType = 0;
       }
       }
-
     },
     },
   },
   },
 };
 };

+ 12 - 11
src/views/studentManager/studentList.vue

@@ -11,6 +11,7 @@
         class="searchForm"
         class="searchForm"
         @submit="onSearch"
         @submit="onSearch"
         @reset="onReSet"
         @reset="onReSet"
+        ref="saveForm"
         :model.sync="searchForm"
         :model.sync="searchForm"
       >
       >
         <el-form-item>
         <el-form-item>
@@ -20,6 +21,7 @@
             @keydown.enter.native="
             @keydown.enter.native="
               (e) => {
               (e) => {
                 e.target.blur();
                 e.target.blur();
+                $refs.saveForm.save();
                 onSearch();
                 onSearch();
               }
               }
             "
             "
@@ -173,7 +175,7 @@
           <el-button native-type="reset" type="primary">重置</el-button>
           <el-button native-type="reset" type="primary">重置</el-button>
           <el-button
           <el-button
             type="primary"
             type="primary"
-            v-permission="'export/studentHasCourse'"
+            v-if="$helpers.permission('export/studentHasCourse')"
             @click="downLoadStudent"
             @click="downLoadStudent"
             >导出名单</el-button
             >导出名单</el-button
           >
           >
@@ -187,7 +189,7 @@
         >创建云教练缴费</el-button
         >创建云教练缴费</el-button
       >
       >
       <el-button
       <el-button
-        v-permission="'studentManage/register'"
+        v-if="$helpers.permission('studentManage/register')"
         @click="addStudent"
         @click="addStudent"
         type="primary"
         type="primary"
         icon="el-icon-plus"
         icon="el-icon-plus"
@@ -540,7 +542,7 @@
           <el-table-column align="center" width="180px" label="操作">
           <el-table-column align="center" width="180px" label="操作">
             <template slot-scope="scope">
             <template slot-scope="scope">
               <router-link
               <router-link
-                v-permission="'/studentDetail'"
+               v-if="$helpers.permission('/studentDetail')"
                 class="el-button--text"
                 class="el-button--text"
                 :to="{
                 :to="{
                   path: `/business/studentDetail`,
                   path: `/business/studentDetail`,
@@ -560,22 +562,24 @@
               <el-button
               <el-button
                 type="text"
                 type="text"
                 style="padding-left: 10px"
                 style="padding-left: 10px"
-                v-permission="'studentManage/studentUpdate'"
+                v-if="$helpers.permission('studentManage/studentUpdate')"
                 @click="resetStudent(scope.row)"
                 @click="resetStudent(scope.row)"
                 >修改</el-button
                 >修改</el-button
               >
               >
               <!-- api-auth/user/updatePassword2 -->
               <!-- api-auth/user/updatePassword2 -->
               <el-button
               <el-button
-                v-permission="'api-auth/user/updatePassword2'"
+                v-if="$helpers.permission('api-auth/user/updatePassword2')"
                 @click="resetPassWrod(scope.row)"
                 @click="resetPassWrod(scope.row)"
                 type="text"
                 type="text"
                 >修改密码</el-button
                 >修改密码</el-button
               >
               >
               <el-button
               <el-button
-                v-if="scope.row.isSignedContract"
+                v-if="
+                  scope.row.isSignedContract &&
+                  $helpers.permission('sysUserContracts/getLatest')
+                "
                 type="text"
                 type="text"
                 @click="lookContracts(scope.row)"
                 @click="lookContracts(scope.row)"
-                v-permission="'sysUserContracts/getLatest'"
                 >下载协议</el-button
                 >下载协议</el-button
               >
               >
             </template>
             </template>
@@ -702,7 +706,7 @@
             ></el-option>
             ></el-option>
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
-          <el-form-item prop="school" label="所属学校">
+        <el-form-item prop="school" label="所属学校">
           <el-select
           <el-select
             v-model.trim="studentForm.school"
             v-model.trim="studentForm.school"
             filterable
             filterable
@@ -735,7 +739,6 @@
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
         <el-form-item label="学员班级" prop="currentClass">
         <el-form-item label="学员班级" prop="currentClass">
-
           <el-select
           <el-select
             placeholder="班级"
             placeholder="班级"
             filterable
             filterable
@@ -783,7 +786,6 @@
             <el-option label="38班" value="38班"></el-option>
             <el-option label="38班" value="38班"></el-option>
             <el-option label="39班" value="39班"></el-option>
             <el-option label="39班" value="39班"></el-option>
             <el-option label="40班" value="40班"></el-option>
             <el-option label="40班" value="40班"></el-option>
-
           </el-select>
           </el-select>
           <!-- <el-input
           <!-- <el-input
             v-model.trim="maskForm.course"
             v-model.trim="maskForm.course"
@@ -791,7 +793,6 @@
           ></el-input> -->
           ></el-input> -->
         </el-form-item>
         </el-form-item>
 
 
-
         <el-form-item label="指导老师" prop="teacherId">
         <el-form-item label="指导老师" prop="teacherId">
           <el-select
           <el-select
             class="multiple"
             class="multiple"

部分文件因文件數量過多而無法顯示