Parcourir la source

Merge remote-tracking branch 'remotes/origin/developerB' into developer

plf il y a 3 ans
Parent
commit
ff9a2bbb20

+ 13 - 0
src/main/java/com/caimei/www/pojo/page/ProductDetail.java

@@ -4,6 +4,7 @@ import com.caimei.www.pojo.order.LadderPrice;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -50,4 +51,16 @@ public class ProductDetail extends ProductList {
 	private Integer ladderFlag;
 	/** 阶梯价 */
 	List<LadderPrice> ladderPrices;
+	/**
+	 * 仪器培训方式:1线上培训,2线下培训
+	 */
+	private Integer trainingMethod;
+	/**
+	 * 售价是否包含:1售价未包含,2售价已包含
+	 */
+	private Integer trainingType;
+	/**
+	 * 培训费用(售价未包含)
+	 */
+	private BigDecimal trainingFee;
 }

+ 18 - 3
src/main/java/com/caimei/www/service/page/impl/DocumentAuthServiceImpl.java

@@ -1,5 +1,6 @@
 package com.caimei.www.service.page.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSSClientBuilder;
 import com.aliyun.oss.model.GetObjectRequest;
@@ -14,7 +15,6 @@ import com.caimei.www.service.page.DocumentAuthService;
 import com.caimei.www.service.redis.RedisService;
 import com.caimei.www.utils.ImageUtil;
 import com.caimei.www.utils.RandomCodeGenerator;
-import com.caimei.www.utils.SMSUtils;
 import com.caimei.www.utils.VerifyCodeUtils;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -24,7 +24,10 @@ import org.springframework.http.*;
 import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.http.server.reactive.ServerHttpResponse;
 import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
 import org.springframework.util.StringUtils;
+import org.springframework.web.client.RestTemplate;
 import reactor.core.publisher.Mono;
 
 import javax.annotation.Resource;
@@ -73,6 +76,9 @@ public class DocumentAuthServiceImpl implements DocumentAuthService {
     @Value("${spring.profiles.active}")
     private String active;
 
+    @Value("${caimei.coreServer}")
+    private String coreServer;
+
     @Override
     public Boolean getAuthorizationCookie(String authorizationMobile) {
         if (!StringUtils.isEmpty(authorizationMobile)) {
@@ -116,8 +122,17 @@ public class DocumentAuthServiceImpl implements DocumentAuthService {
         String content = "采美资料库访问授权验证码:" + mobileCode + ",30分钟内有效";
         if (!StringUtils.isEmpty(code) && code.equalsIgnoreCase(imgCode)) {
             log.info("采美资料库访问授权验证码>>>>>" + mobileCode);
-            boolean sms = SMSUtils.sendSms(mobile, content);
-            if (sms) {
+            //boolean sms = SMSUtils.sendSms(mobile, content);
+            RestTemplate restTemplate = new RestTemplate();
+            String uri = coreServer + "/tools/sms/send";
+            // 发起Post请求
+            MultiValueMap<String, String> paramMap = new LinkedMultiValueMap<>();
+            paramMap.add("mobile", mobile);
+            paramMap.add("content", content);
+            String result = restTemplate.postForObject(uri, paramMap, String.class);
+            log.info(result);
+            JSONObject json = (JSONObject) JSONObject.parse(result);
+            if (null != json && json.getInteger("code") == 0) {
                 return Mono.just(JsonModel.success());
             }
         } else {

+ 3 - 0
src/main/resources/mapper/ProductMapper.xml

@@ -19,6 +19,9 @@
 			p.step as step,
 			p.recommendType as recommendType,
 			p.visibility as visibility,
+			p.trainingMethod,
+			p.trainingType,
+			p.trainingFee,
 
 			d.detailInfo as detailInfo,
 			d.orderInfo as orderInfo,

+ 1 - 1
src/main/resources/static/css/base/base.h5.css

@@ -63,7 +63,7 @@
 .baseHeadCenter .search .jqSelect select{width:27vw;height:9.6vw;line-height:9.6vw;border:none;font-size:3.7vw;color:#4A4F58;padding:0 6vw 0 3vw}
 .baseHeadCenter .search .jqSelect:before{right:4vw;line-height:9.6vw}
 .baseHeadCenter .search .jqSelect:after{content:'';position:absolute;right:0;top:3.4vw;width:.5vw;height:2.8vw;background:#BEC2C9}
-.baseHeadCenter .search .keyword{position:absolute;right:0;top:0;border:none;outline:none;width:66.4vw;height:9.6vw;line-height:9.6vw;font-size:3.7vw;color:#4A4F58;text-indent:2.6vw}
+.baseHeadCenter .search .keyword{position:absolute;right:0;top:0;border:none;outline:none;width:66.4vw;height:8.6vw;line-height:8.6vw;font-size:3.7vw;color:#4A4F58;text-indent:2.6vw}
 .baseHeadCenter .search .searchBtn{position:absolute;right:1.2vw;top:0}
 .baseHeadCenter .search .searchBtn:before{content:'';display:block;width:9.6vw;height:9.6vw;background-position:-24vw 1.5vw}
 .baseHeadCenter.account{height:13.4vw;border-bottom:solid 1px #ebecef}

+ 1 - 0
src/main/resources/static/css/product/detail.pc.css

@@ -137,6 +137,7 @@ input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appear
 .comment-right{float:right;color:#93979f}
 .tabCon .item div p{line-height: 26px;text-align: left;}
 .tabCon .item div p.tl{line-height: 40px;text-align: left; font-weight: bold;}
+.tabCon .item div p.tl .sm{line-height: 40px;text-align: left; font-weight: normal;}
 .noprice{color: #e15616;}
 .noprice .icon::before{width: 25px;height: 25px;background-position: -91px -545px;position: relative;top: 6px}
 .WeChat{float: right;font-size: 12px;cursor: pointer}

+ 2 - 2
src/main/resources/static/css/supplier-center/setting/information.css

@@ -11,8 +11,8 @@
    .container{background: #fff;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07); padding-top: 19px}
    .container .forget-form{width: 500px; margin: 0 auto;padding: 20px 0}
    .formLine select[name="cityID"]{margin: 0 14px}
-   .formLine p:nth-child(1){padding-left: 12px;color: #627386;}
-   .formLine.rightTxt p{padding-left: 17px;}
+   .formLine p:nth-child(1){padding-left: 0;color: #627386;}
+   .formLine.rightTxt p{padding-left: 0;}
    .formLine p em{margin: 0}
    input[type="text"]::placeholder,textarea::placeholder{color: #9aa5b5;}
    .formLine .diyBox.second{width: 111px}

+ 7 - 0
src/main/resources/static/css/supplier-center/shop/release.css

@@ -24,6 +24,9 @@ div{box-sizing: border-box;}
 .release-from .release-label{width: 100%;float: left;text-align: left;height: 32px;color: #627386;}
 .release-from .release-label span{color: #FF0000;}
 .release-from .release-input{width: 100%;height: auto;float: left;position: relative;}
+.release-from .release-input.expen{margin-top:10px;}
+.release-from .release-input.expen .input{padding-left:30px;}
+.release-from .release-input.expen .span{width:30px;height:36px;display:block;position:absolute;top:0;left:0;text-align:center;line-height:36px;font-size:14px;color:#22272e;}
 .release-from .release-input .input{width: 100%;height: 36px;padding: 0 10px;border-radius: 2px;border: 1px solid #b8bfca;float: left;font-size: 13px;box-sizing: border-box;}
 .release-from .release-input .input.price{padding-left: 30px;}
 .release-from .release-input .yang{width: 30px;height: 36px;position: absolute;left: 0;top: 0;line-height: 36px;text-align: center;}
@@ -184,6 +187,10 @@ textarea::placeholder{color: #9aa5b5}  .popup-button{padding: 10px;}
 .release-from .release-input .yang{width: 8vw;position: absolute;left: 0;top: 0;line-height:13vw;text-align: center}
 .release-from .release-input .input.price{padding-left: 7vw}
 .release-from .release-input{position: relative}
+.release-from .release-input.expen{margin-top:5.5vw;}
+.release-from .release-input.expen .input{padding-left:6vw;}
+.release-from .release-input.expen .span{width:6vw;height:11.8vw;display:block;position:absolute;top:0;left:0;text-align:center;line-height:11.8vw;font-size:3.4vw;color:#22272e;}
+
 /*销售信息*/
 input[type="radio"]{opacity:0;}
 .release-from .release-input .release-props{width: 100%;height: 36px;}

+ 8 - 0
src/main/resources/static/js/product/detail.js

@@ -32,8 +32,11 @@ var productDetail = new Vue({
         disabledText:'',
         isNoneDisabled:false,
         isServiceInfo:false,
+        isTrainingMethod:false,
         productTypeName:"",
         beautyActFlag:'',
+        trainingMethodText:'',
+        trainingType:''
     },
     computed: {},
     methods: {
@@ -81,6 +84,11 @@ var productDetail = new Vue({
                     if(product.productDetail.orderInfo!='' && product.productDetail.serviceInfo!=''){
                         _self.isServiceInfo = true;
                     }
+                    if(product.commodityType == 2){
+                        _self.isTrainingMethod = true;
+                        _self.trainingMethodText = product.trainingMethod == 1 ? '线上培训' : '线下培训';
+                        _self.trainingType = product.trainingType == 1 ? '¥'+product.trainingFee : '售价已包含';
+                    }
                     if(product.validFlag =='3' || product.validFlag =='9' || product.validFlag =='0' ||  product.validFlag =='10' || product.stock == 0 ){
                         _self.isNoneDisabled = true;
                     }else{

+ 0 - 1
src/main/resources/static/js/shopping/confirm.js

@@ -623,7 +623,6 @@ var shoppingConfirm = new Vue({
             OrderApi.ConfirmOrder({'params':JSON.stringify(params)},function (r) {
                 if(r.code === 0){
                     var _data = r.data;
-                    debugger
                     if(Number(_data.code) === 1){//余额抵扣全部订单金额
                         var data = { payableAmount: _self.deductMoney };
                         CAIMEI.Storage.removeItem('confirmOrderInfo');

+ 64 - 9
src/main/resources/static/js/supplier-center/shop/release.js

@@ -54,7 +54,10 @@ var releaseContainer = new Vue({
             twoClassifyName:'',
             threeClassifyName:'',
             brandName:'',
-            commodityType:1
+            commodityType:1,
+            trainingMethod:0,// 线上培训方式
+            trainingType:0,// 售价包含培训费用
+            trainingFee:''
         },
         params:{
             param:[],//相关参数
@@ -131,19 +134,13 @@ var releaseContainer = new Vue({
         vShow_detailInfoEditor:true,
         vShow_orderInfoEditor:true,
         vShow_attribute:false,
+        vShow_trainingMethod:false,
+        vShow_trainingType:false,
     },
     computed: {
 
     },
     methods: {
-        getclass:function(val){
-            this.selectText.bigTypeID='请选择一级分类';
-            this.selectText.smallTypeID = '请选择二级分类';
-            this.releaseParams.bigTypeId ='';
-            this.classificationTwoList=[];
-            this.classificationThreeList =[];
-            this.GetFistClassFn(val);
-        },
         GetEditReleaseProductInfo: function(productId){
             var _this = this;
             SupplierApi.EditReleaseProductInfo({productId:productId},function(response){
@@ -154,6 +151,9 @@ var releaseContainer = new Vue({
                     _this.releaseParams.name = data.name;
                     _this.releaseParams.aliasName = data.aliasName;
                     _this.releaseParams.productType = data.productType;
+                    _this.releaseParams.trainingMethod = data.trainingMethod;
+                    _this.releaseParams.trainingType = data.trainingType;
+                    _this.releaseParams.trainingFee = data.trainingFee;
                     _this.releaseParams.machineType = data.machineType;
                     _this.releaseParams.qualificationImg = data.qualificationImg;
                     _this.releaseParams.unit = data.unit;
@@ -223,6 +223,14 @@ var releaseContainer = new Vue({
                 }
             })
         },
+        getclass:function(val){
+            this.selectText.bigTypeID='请选择一级分类';
+            this.selectText.smallTypeID = '请选择二级分类';
+            this.releaseParams.bigTypeId ='';
+            this.classificationTwoList=[];
+            this.classificationThreeList =[];
+            this.GetFistClassFn(val);
+        },
         EchoProductFn : function(type) {
             switch (type) {
                 case 0 && null:
@@ -249,6 +257,14 @@ var releaseContainer = new Vue({
                     break;
             }
         },
+        choiceTrain : function(val){
+            var _this = this;
+            _this.releaseParams.trainType = Number(val);
+        },
+        choiceTrainOutlay : function(val){
+            var _this = this;
+            _this.releaseParams.expensesType = Number(val);
+        },
         EchoGoodsImagesListFn: function(arr){//处理商品主图回显
             var newArray =[];
             arr.forEach( function(el){ newArray.push(el.image) });
@@ -683,6 +699,37 @@ var releaseContainer = new Vue({
                 },2000);
                 return;
             }
+            if(_this.releaseParams.commodityType == 2){
+                if(_this.releaseParams.trainingMethod == 0){
+                    _this.vShow_trainingMethod=true;
+                    _this.fromMessage = '请选择培训方式';
+                    _this.scrollIntoView();
+                    setTimeout(function(){
+                        _this.vShow_trainingMethod = false;
+                    },2000);
+                    return;
+                }
+                if(_this.releaseParams.trainingType == 0){
+                    _this.vShow_trainingType=true;
+                    _this.fromMessage = '请选择培训费用';
+                    _this.scrollIntoView();
+                    setTimeout(function(){
+                        _this.vShow_trainingType = false;
+                    },2000);
+                    return;
+                }
+                if(_this.releaseParams.trainingType == 1){
+                    if(_this.releaseParams.trainingFee == ''){
+                        _this.vShow_trainingType=true;
+                        _this.fromMessage = '请填写包含食宿,交通等各项费用的培训总金额';
+                        _this.scrollIntoView();
+                        setTimeout(function(){
+                            _this.vShow_trainingType = false;
+                        },2000);
+                        return;
+                    }
+                }
+            }
             if(_this.releaseParams.bigTypeId == ''){
                 _this.vShow_TinyTypeID = true;
                 _this.fromMessage = '请选择商品分类';
@@ -1055,6 +1102,14 @@ var releaseContainer = new Vue({
         input_price1: function(e){
             this.vShow_Price1 = false;
         },
+        input_trainingFee: function(event){
+            var E_Number = event.target.value;
+            if(E_Number!=''){
+                this.releaseParams.trainingFee = parseInt(E_Number.replace(/[^0-9]/g,''));
+            }else{
+                this.releaseParams.trainingFee = '';
+            }
+        },
         input_minBuyNumber: function(event){
             this.vShow_MinBuyNumber = false;
             var E_Number = event.target.value;

+ 3 - 3
src/main/resources/templates/account/register-club.html

@@ -73,19 +73,19 @@
             <!--机构注册表单-->
             <form>
                 <div class="formLine">
-                    <p><em>*</em>邮箱(<span>邮箱可用作登录账号,请使用公司邮箱或法人邮箱</span>):</p>
+                    <p><em>*</em>邮箱<span>(邮箱可用作登录账号,请使用公司邮箱或法人邮箱)</span>:</p>
                     <input type="text" v-model.trim="clubUpgradeUser.contractEmail" placeholder="请输入邮箱地址" :rule="rule.email" maxlength="32" @blur="blurHandle($event)" needverify>
                     <i class="checked icon mIcon"></i>
                     <span class="errTips icon mIcon" tips="请输入正确的邮箱地址"></span>
                 </div>
                 <div class="formLine">
-                    <p><em>*</em>机构名称(<span>示例:深圳市美丽人生医疗美容有限公司</span>):</p>
+                    <p><em>*</em>机构名称<span>(示例:深圳市美丽人生医疗美容有限公司)</span>:</p>
                     <input type="text" v-model.trim="clubUpgradeUser.name" placeholder="请输入与营业执照的注册名称保持一致的机构名称" :rule="rule.name" maxlength="30" @blur="blurHandle($event)" needverify>
                     <i class="checked icon mIcon"></i>
                     <span class="errTips icon mIcon" tips="请输入机构名称"></span>
                 </div>
                 <div class="formLine">
-                    <p>机构简称(<span>示例:美丽人生</span>):</p>
+                    <p>机构简称<span>(示例:美丽人生)</span>:</p>
                     <input type="text" v-model.trim="clubUpgradeUser.shortName" placeholder="请输入姓名或常用名" maxlength="10" >
                 </div>
                 <div class="formLine">

+ 3 - 3
src/main/resources/templates/account/register-supplier.html

@@ -65,7 +65,7 @@
                     </div>
                     <h6 class="tit">基本信息</h6>
                     <div class="formLine">
-                        <p><em>*</em>公司名称(<span>示例:华熙生物科技股份有限公司</span>):</p>
+                        <p><em>*</em>公司名称<span>(示例:华熙生物科技股份有限公司)</span>:</p>
                         <input type="text" v-model.trim="supplierUser.name" placeholder="请与营业执照的注册名称保持一致" :rule="rule.name" maxlength="30" @blur="blurHandle($event)" needverify>
                         <i class="checked icon mIcon"></i>
                         <span class="errTips icon mIcon" tips="请输入正确的公司名称"></span>
@@ -77,13 +77,13 @@
                         <span class="errTips icon mIcon" tips="请输入正确的联系人姓名"></span>
                     </div>
                     <div class="formLine">
-                        <p>邮箱(<span>邮箱可用作登录账号,请使用公司邮箱或法人邮箱</span>):</p>
+                        <p>邮箱<span>(邮箱可用作登录账号,请使用公司邮箱或法人邮箱)</span>:</p>
                         <input type="text" v-model.trim="supplierUser.email" placeholder="请输入邮箱地址" maxlength="40">
                         <span class="errTips"></span>
                     </div>
                     <h6 class="tit">详细信息</h6>
                     <div class="formLine">
-                        <p>公司简称(<span>示例:华熙生物</span>):</p>
+                        <p>公司简称<span>(示例:华熙生物)</span>:</p>
                         <input type="text" v-model.trim="supplierUser.shortName" placeholder="请输入公司简称" maxlength="10">
                         <span class="errTips"></span>
                     </div>

+ 3 - 3
src/main/resources/templates/account/supplier-information.html

@@ -21,7 +21,7 @@
                 <form>
                     <h6 class="tit">基本信息</h6>
                     <div class="formLine">
-                        <p><em>*</em>公司名称(<span>示例:华熙生物科技股份有限公司</span>):</p>
+                        <p><em>*</em>公司名称<span>(示例:华熙生物科技股份有限公司)</span>:</p>
                         <input type="text" v-model.trim="supplierUser.name" placeholder="请与营业执照的注册名称保持一致" :rule="rule.name" maxlength="30" @blur="blurHandle($event)" needverify>
                         <i class="checked icon mIcon"></i>
                         <span class="errTips icon mIcon" tips="请输入正确的公司名称"></span>
@@ -33,13 +33,13 @@
                         <span class="errTips icon mIcon" tips="请输入正确的联系人姓名"></span>
                     </div>
                     <div class="formLine">
-                        <p>邮箱(<span>邮箱可用作登录账号,请使用公司邮箱或法人邮箱</span>):</p>
+                        <p>邮箱<span>(邮箱可用作登录账号,请使用公司邮箱或法人邮箱)</span>:</p>
                         <input type="text" v-model.trim="supplierUser.contractEmail" placeholder="请输入邮箱地址" maxlength="40">
                         <span class="errTips"></span>
                     </div>
                     <h6 class="tit">详细信息</h6>
                     <div class="formLine">
-                        <p>公司简称(<span>示例:华熙生物</span>):</p>
+                        <p>公司简称<span>(示例:华熙生物)</span>:</p>
                         <input type="text" v-model.trim="supplierUser.shortName" placeholder="请输入公司简称" maxlength="10">
                         <span class="errTips"></span>
                     </div>

+ 2 - 2
src/main/resources/templates/account/upgrade.html

@@ -27,13 +27,13 @@
                     <span class="errTips icon mIcon" tips="请输入正确的邮箱地址"></span>
                 </div>
                 <div class="formLine">
-                    <p><em>*</em>机构名称(<span>示例:深圳市美丽人生医疗美容有限公司</span>):</p>
+                    <p><em>*</em>机构名称<span>(示例:深圳市美丽人生医疗美容有限公司)</span>:</p>
                     <input type="text" v-model.trim="clubUser.name" placeholder="请与营业执照的注册名称保持一致" :rule="rule.name" maxlength="50" @blur="blurHandle($event)" needverify>
                     <i class="checked icon mIcon"></i>
                     <span class="errTips icon mIcon" tips="请输入正确的联系人姓名"></span>
                 </div>
                 <div class="formLine">
-                    <p>机构简称(<span>示例:美丽人生</span>):</p>
+                    <p>机构简称<span>(示例:美丽人生)</span>:</p>
                     <input type="text" v-model.trim="clubUser.name" placeholder="请输入机构简称" :rule="rule.name" maxlength="50" needverify>
                 </div>
                 <div class="formLine">

+ 6 - 1
src/main/resources/templates/product/detail.html

@@ -218,7 +218,8 @@
                 <span :class="tabsIndex == 0 ? 'on' : ''" @click="detailsClicktab(0)">商品详情</span>
                 <span :class="tabsIndex == 1 ? 'on' : ''" v-if="parameters.length>0 && !isNoneDisabled" @click="detailsClicktab(1)">相关参数</span>
                 <span :class="tabsIndex == 2 ? 'on' : ''" v-if="isServiceInfo && !isNoneDisabled" @click="detailsClicktab(2)">服务项目</span>
-<!--            <span>评价</span>-->
+                <span :class="tabsIndex == 3 ? 'on' : ''" v-if="isTrainingMethod" @click="detailsClicktab(3)">培训方案</span>
+                <!--<span>评价</span>-->
             </div>
             <div class="tabCon">
                 <div class="item" v-if="tabsIndex == 0">
@@ -243,6 +244,10 @@
                     <div><p class="tl">服务详情:</p></div>
                     <div th:utext="${product.serviceInfo}"></div>
                 </div>
+                <div class="item" v-if="tabsIndex == 3">
+                    <div><p class="tl">培训方式: <span class="sm">{{ trainingMethodText }}</span></p></div>
+                    <div><p class="tl">培训费用: <span class="sm">{{ trainingType }}</span></p></div>
+                </div>
 <!--                <div class="item">-->
 <!--                <div style="text-align: left;margin: 10px 0">-->
 <!--                        <span>商品评分:</span>-->

+ 1 - 1
src/main/resources/templates/supplier-center/operation/list.html

@@ -64,7 +64,7 @@
                                 <div class="td td-1">{{item.linkName}}</div>
                                 <div class="td td-2">{{item.mobile}}</div>
                                 <div class="td td-3">
-                                    <p>{{item.invitationCode}}</p>
+                                    <p>{{ item.invitationCode ? item.invitationCode : '无'}}</p>
                                     <p :style="{color: ColorFn(item.effectiveFlag)}">{{item.effectiveFlag | stateTextExp}}</p>
                                 </div>
                                 <div class="td td-4">{{item.effectiveDays > 0 ? item.effectiveDays+'天': '- -'}}</div>

+ 2 - 2
src/main/resources/templates/supplier-center/setting/information.html

@@ -42,13 +42,13 @@
                     <div class="forget-form"  v-if="tabCurrentIndex == 1">
                         <form>
                             <div class="formLine" >
-                                <p><em>*</em>公司名称(<span>示例:华熙生物科技股份有限公司</span>):</p>
+                                <p><em>*</em>公司名称<span>(示例:华熙生物科技股份有限公司)</span>:</p>
                                 <input  class="massageBtn"  type="text" v-model.trim="params.name" placeholder="请与营业执照的注册名称保持一致" :rule="rule.name" @blur="blurHandle($event)" maxlength="30" needverify>
                                 <i class="checked icon mIcon"></i>
                                 <span class="errTips icon mIcon" tips="请输入公司名称"></span>
                             </div>
                             <div class="formLine rightTxt" >
-                                <p>公司简称(<span>示例:华熙生物</span>):</p>
+                                <p>公司简称<span>(示例:华熙生物)</span>:</p>
                                 <input  class="massageBtn"  type="text" v-model.trim="params.shortName"  placeholder="请与营业执照的注册名称保持一致"  maxlength="10" >
                                 <span class="errTips"></span>
                             </div>

+ 25 - 1
src/main/resources/templates/supplier-center/shop/release.html

@@ -62,7 +62,7 @@
                                 <div class="release-input"><input class="input" v-model="releaseParams.aliasName" maxlength="40" type="text" placeholder="请输入该商品在您公司内部的名称" @blur="blur_aliasName"></div>
                                 <div class="release-tips" v-show="vShow_AliasName">{{fromMessage}}</div>
                             </div>
-                             <div class="release-from clear">
+                            <div class="release-from clear">
                                  <div class="release-label"><span class="star">*</span>商品属性:</div>
                                     <div class="release-input">
                                         <div class="release-props">
@@ -72,6 +72,30 @@
                                     </div>
                                 <div class="release-tips" v-show="vShow_attribute">{{fromMessage}}</div>
                              </div>
+                            <div class="release-from clear" v-if="releaseParams.commodityType == 2">
+                                 <div class="release-label"><span class="star">*</span>培训方式:</div>
+                                    <div class="release-input">
+                                        <div class="release-props">
+                                            <label class="release-radio" @click="choiceTrain(1)"><input type="radio" name="trainingMethod" v-model="releaseParams.trainingMethod" value="1"><i class="icon mIcon">线上培训</i></label>
+                                            <label class="release-radio" @click="choiceTrain(2)"><input type="radio" name="trainingMethod" v-model="releaseParams.trainingMethod" value="2" checked><i class="icon mIcon">线下培训</i></label>
+                                        </div>
+                                    </div>
+                                <div class="release-tips" v-show="vShow_trainingMethod">{{fromMessage}}</div>
+                             </div>
+                            <div class="release-from clear" v-if="releaseParams.commodityType == 2">
+                                 <div class="release-label"><span class="star">*</span>培训费用:</div>
+                                    <div class="release-input">
+                                        <div class="release-props">
+                                            <label class="release-radio" @click="choiceTrainOutlay(1)"><input type="radio" name="trainingType" v-model="releaseParams.trainingType" value="1"><i class="icon mIcon">售价未包含</i></label>
+                                            <label class="release-radio" @click="choiceTrainOutlay(2)"><input type="radio" name="trainingType" v-model="releaseParams.trainingType" value="2" checked><i class="icon mIcon">售价已包含</i></label>
+                                        </div>
+                                    </div>
+                                    <div class="release-input expen" v-if="releaseParams.trainingType == 1">
+                                        <span class="span">¥</span>
+                                        <input class="input" v-model="releaseParams.trainingFee" maxlength="40" type="number" placeholder="请填写包含食宿,交通等各项费用的培训总金额" @input="input_trainingFee">
+                                    </div>
+                                <div class="release-tips" v-show="vShow_trainingType">{{fromMessage}}</div>
+                             </div>
                             <div class="release-from clear">
                                 <div class="release-label"><span class="star">*</span>商品分类:</div>
                                 <div class="release-input">

+ 2 - 2
src/main/resources/templates/user-center/setting/information.html

@@ -43,7 +43,7 @@
                         <template v-if="userIdentity === 2">
                             <div class="title">升级信息</div>
                             <div class="formLine">
-                                <p><em>*</em>机构名称(<span>示例:深圳市美丽人生医疗美容有限公司</span>):</p>
+                                <p><em>*</em>机构名称<span>(示例:深圳市美丽人生医疗美容有限公司)</span>:</p>
                                 <input type="text" v-model.trim="clubUpgradeUser.name" placeholder="请与营业执照的注册名称保持一致" :rule="rule.name" maxlength="30" @blur="blurHandle($event)" needverify>
                                 <i class="checked icon mIcon"></i>
                                 <span class="errTips icon mIcon" tips="请输入机构名称"></span>
@@ -55,7 +55,7 @@
                                 <span class="errTips icon mIcon" tips="请输入正确的邮箱地址"></span>
                             </div>
                             <div class="formLine">
-                                <p>机构简称(<span>示例:美丽人生</span>):</p>
+                                <p>机构简称<span>(示例:美丽人生)</span>:</p>
                                 <input type="text" v-model.trim="clubUpgradeUser.shortName" placeholder="请输入机构简称" maxlength="10" >
                             </div>
                             <div class="formLine">

+ 2 - 2
src/main/resources/templates/user-center/setting/upgrade.html

@@ -40,13 +40,13 @@
                                 <span class="errTips icon mIcon" tips="请输入正确的邮箱地址"></span>
                             </div>
                             <div class="formLine">
-                                <p><em>*</em>机构名称:</p>
+                                <p><em>*</em>机构名称<span>(示例:深圳市美丽人生医疗美容有限公司)</span>:</p>
                                 <input type="text" v-model.trim="clubUpgradeUser.name" placeholder="请与营业执照的注册名称保持一致" :rule="rule.name" maxlength="50" @blur="blurHandle($event)" needverify>
                                 <i class="checked icon mIcon"></i>
                                 <span class="errTips icon mIcon" tips="请输入机构名称"></span>
                             </div>
                             <div class="formLine">
-                                <p>机构简称:</p>
+                                <p>机构简称<span>(示例:美丽人生)</span>:</p>
                                 <input type="text" v-model.trim="clubUpgradeUser.shortName" placeholder="请输入机构简称" :rule="rule.name" maxlength="50" needverify>
                             </div>
                             <div class="formLine">