无故事王国
2023-10-12 1c1af90c0a80fe60477de9d0141aa79957cd7e38
修改BUG
18个文件已修改
3个文件已添加
363 ■■■■ 已修改文件
WanPai/Assets.xcassets/Icons/icon_woman.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_woman.imageset/icon_woman@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_woman.imageset/icon_woman@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Info.plist 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Model/CommonModels.swift 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Network/Services.swift 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/AddStudentVC.swift 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/AddStudentVC.xib 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/CourseInfoVC.swift 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/StudentExchangeVC.swift 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Course/VC/StudentExchangeVC.xib 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/CCell/CouponCCell.swift 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/CCell/CouponCCell.xib 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/TCell/StudentInfo_3_TCell.swift 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/VC/PaymentResultVC.swift 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Other/VC/PaymentResultVC.xib 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/SearchVC.swift 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Search/VC/SearchVC.xib 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/WelfareWeeklyDetailVC.swift 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Welfare/VC/WelfareWeeklyDetailVC.xib 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Root/Yard/VC/YardDetailVC.swift 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WanPai/Assets.xcassets/Icons/icon_woman.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "icon_woman@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "icon_woman@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
WanPai/Assets.xcassets/Icons/icon_woman.imageset/icon_woman@2x.png
WanPai/Assets.xcassets/Icons/icon_woman.imageset/icon_woman@3x.png
WanPai/Info.plist
@@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleAllowMixedLocalizations</key>
    <true/>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
WanPai/Model/CommonModels.swift
@@ -97,6 +97,8 @@
    var phone:String?
    var sex:GenderType = .man
    var weight:Double = 0
    var stuId:Int?
}
struct StudentProfile1Model:HandyJSON{
@@ -107,6 +109,9 @@
    var stuId = 0
    var stuName:String = ""
    var stuWeight:Double = 0
    var idCard:String = ""
    var stuPhone:String = ""
    var stuHeadImg:String = ""
}
struct StudentSimpleProfileModel:HandyJSON{
@@ -345,7 +350,7 @@
}
struct StartClouseHomeModel:HandyJSON{
    var bmi: Int = 0
    var bmi: Double = 0
    var courseList = [StartClouseListModel]()
    var deductedNums: Int = 0
    var exerciseVideoList = [StartClouseVideoListModel]()
@@ -505,7 +510,7 @@
struct CouponModelRuleModel:HandyJSON{
        /// 满X元 条件
    var conditionalAmount: Double = 0
        /// 抵扣金额
        /// (减)抵扣金额
    var deductionAmount: Double = 0
        /// 名称
@@ -703,7 +708,7 @@
    var cash: Float = 0.0
    var city: String = ""
    var cityCode: String = ""
    var content:CouponModelRuleModel?
    var content:String = ""
    var distributionMethod: Int = 0
    var endTime: String = ""
    var id: Int = 0
WanPai/Network/Services.swift
@@ -151,7 +151,7 @@
        let params = ParamsAppender.build(url: All_Url)
            .interface(url: "/account/base/appUser/addAppUser")
            .append(key: "phone", value: phone)
            .append(key: "password", value: password.jq_md5String().uppercased())
            .append(key: "password", value: password.jq_md5String().lowercased())
            .append(key: "code", value: code)
        return NetworkRequest.request(params: params, method: .post, progress: true)
    }
@@ -160,7 +160,7 @@
        let params = ParamsAppender.build(url: All_Url)
            .interface(url: "/account/base/appUser/updatePassword")
            .append(key: "phone", value: phone)
            .append(key: "password", value: password.jq_md5String().uppercased())
            .append(key: "password", value: password.jq_md5String().lowercased())
            .append(key: "code", value: code)
        return NetworkRequest.request(params: params, method: .post, progress: true)
    }
@@ -169,7 +169,7 @@
        let params = ParamsAppender.build(url: All_Url)
            .interface(url: "/account/base/appUser/forgetPassword")
            .append(key: "phone", value: phone)
            .append(key: "password", value: password.jq_md5String().uppercased())
            .append(key: "password", value: password.jq_md5String().lowercased())
            .append(key: "code", value: code)
        return NetworkRequest.request(params: params, method: .post, progress: true)
    }
@@ -382,6 +382,21 @@
        return NetworkRequest.request(params: params, method: .post, progress: false)
    }
    class func editStu(_ model:StudentProfileModel)->Observable<BaseResponse<SimpleModel>>{
        let params = ParamsAppender.build(url: All_Url)
            .interface(url: "/account/api/startCource/commitEditStu")
            .append(key: "birthday", value: model.birthday)
            .append(key: "headImg", value: model.headImg)
            .append(key: "height", value: model.height.string)
            .append(key: "idCard", value: model.idCard)
            .append(key: "name", value: model.name)
            .append(key: "phone", value: model.phone)
            .append(key: "sex", value: model.sex.rawValue)
            .append(key: "weight", value: model.weight.string)
            .append(key: "stuId", value: model.stuId)
        return NetworkRequest.request(params: params, method: .post, progress: true)
    }
        /// 添加学员
    class func addStudent(_ model:StudentProfileModel)->Observable<BaseResponse<SimpleModel>>{
        let params = ParamsAppender.build(url: All_Url)
@@ -475,6 +490,14 @@
        return NetworkRequest.request(params: params, method: .post, progress: true)
    }
        /// 设置默认
    static func courseDefaultSet(id:Int)->Observable<BaseResponse<SimpleModel>>{
        let params = ParamsAppender.build(url: All_Url)
            .interface(url: "/account/api/startCource/editDefault")
            .append(key: "stuId", value: id)
        return NetworkRequest.request(params: params, method: .post, progress: true)
    }
        /// 上课首页
    static func startCourseHome()->Observable<BaseResponse<StartClouseHomeModel>>{
        let params = ParamsAppender.build(url: All_Url)
WanPai/Root/Course/VC/AddStudentVC.swift
@@ -12,7 +12,7 @@
class AddStudentVC: BaseVC {
    @IBOutlet weak var img_profile: UIImageView!
    @IBOutlet weak var tf_name: UITextField!
    @IBOutlet weak var tf_name: QMUITextField!
    @IBOutlet weak var tf_gender: UITextField!
    @IBOutlet weak var tf_idCard: UITextField!
    @IBOutlet weak var tf_height: QMUITextField!
@@ -23,14 +23,15 @@
    var profileImg:UIImage?
    var studentModel = StudentProfileModel()
    var studentInfo:StudentProfile1Model?
    var type:ItemType!
    var verifyIdCard:Bool = false
    init(type:ItemType) {
    init(type:ItemType,studentInfo:StudentProfile1Model? = nil) {
        super.init(nibName: nil, bundle: nil)
        self.type = type
        self.studentInfo = studentInfo
    }
    required init?(coder: NSCoder) {
@@ -41,6 +42,18 @@
        super.viewDidLoad()
        if type == .course{
            title = "添加学员"
            if studentInfo != nil{
                title = "编辑学员"
                tf_name.text = studentInfo!.stuName
                tf_idCard.text = studentInfo!.idCard
                tf_height.text = String(format: "%.0lf", studentInfo!.stuHeight)
                tf_weight.text = String(format: "%.0lf", studentInfo!.stuWeight)
                tf_phone.text = studentInfo!.stuPhone
                tf_birthday.text = studentInfo!.birthday
                img_profile.sd_setImage(with: URL(string: studentInfo!.stuHeadImg))
                studentModel.headImg = studentInfo!.stuHeadImg
                studentModel.stuId = studentInfo!.stuId
            }
        }else{
            title = "添加人员"
        }
@@ -70,7 +83,10 @@
    @IBAction func completeAction(_ sender: UIButton) {
        guard profileImg != nil else {alertError(msg: "请上传学员头像");return}
        if studentInfo == nil{
            guard profileImg != nil else {alertError(msg: "请上传学员头像");return}
        }
        guard !tf_name.text!.isEmpty else {alertError(msg: tf_name.placeholder!);return}
        guard !tf_birthday.text!.isEmpty else {alertError(msg: "请选择生日");return}
        guard !tf_height.text!.isEmpty else {alertError(msg: tf_height.placeholder!);return}
@@ -79,17 +95,12 @@
        guard tf_weight.text != "0" else {alertError(msg: "请输入正确的体重");return}
        if !tf_phone.isEmpty{
#if DEBUG
            guard tf_phone.text!.jq_isPhone else {alertError(msg: "请输入正确的手机号");return}
#endif
        }
        
        if !tf_idCard.isEmpty{
#if DEBUG
            guard tf_idCard.text!.jq_idCard() else {alertError(msg: "请输入正确的身份证号码");return}
#endif
        }
        studentModel.birthday = tf_birthday.text!
        studentModel.name = tf_name.text!
@@ -99,7 +110,7 @@
        studentModel.idCard = tf_idCard.text!
        studentModel.name = tf_name.text!
        if studentModel.headImg.isEmpty{
        if profileImg != nil{
            showHUD("正在上传头像")
            profileImg!.uploadImgToService().subscribe(onNext: { [weak self] imgUrl in
                guard let weakSelf = self else { return }
@@ -117,18 +128,27 @@
    private func addStudent(){
        if type == .course{
            Services.addStudent(studentModel).subscribe(onNext: { [weak self] data in
                self?.addStudentSuccess()
            }).disposed(by: disposeBag)
            if studentInfo == nil{
                Services.addStudent(studentModel).subscribe(onNext: { [weak self] data in
                    self?.addStudentSuccess(text: "编辑成功")
                }).disposed(by: disposeBag)
            }else{
                Services.editStu(studentModel).subscribe(onNext: {[weak self]data in
                    self?.addStudentSuccess(text: "添加成功")
                }) { error in
                }.disposed(by: disposeBag)
            }
        }else{
            Services.addParticipant(studentModel).subscribe(onNext: {[weak self] data in
                self?.addStudentSuccess()
                self?.addStudentSuccess(text: "添加成功")
            }).disposed(by: disposeBag)
        }
    }
    private func addStudentSuccess(){
        alertSuccess(msg: "添加成功")
    private func addStudentSuccess(text:String){
        alertSuccess(msg: text)
        DispatchQueue.main.asyncAfter(deadline: .now()+1) {
            self.navigationController?.popViewController()
            NotificationCenter.default.post(name: StudentUpdate_Nofi, object: nil)
WanPai/Root/Course/VC/AddStudentVC.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/>
        <capability name="Named colors" minToolsVersion="9.0"/>
        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
        <capability name="System colors in document resources" minToolsVersion="11.0"/>
@@ -63,10 +63,15 @@
                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入学员姓名" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="C9O-Cu-rp7">
                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入学员姓名" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="C9O-Cu-rp7" customClass="QMUITextField">
                                    <rect key="frame" x="120" y="0.0" width="263" height="50"/>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                                    <textInputTraits key="textInputTraits"/>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength">
                                            <integer key="value" value="6"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                </textField>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
@@ -156,7 +161,7 @@
                                    <textInputTraits key="textInputTraits"/>
                                </textField>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_down_arrow" translatesAutoresizingMaskIntoConstraints="NO" id="E8L-i6-F22">
                                    <rect key="frame" x="359" y="18.333333333333314" width="20" height="14"/>
                                    <rect key="frame" x="366" y="21.333333333333314" width="13" height="8"/>
                                </imageView>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
@@ -256,7 +261,7 @@
                                    <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
                                    <userDefinedRuntimeAttributes>
                                        <userDefinedRuntimeAttribute type="number" keyPath="maximumTextLength">
                                            <integer key="value" value="3"/>
                                            <integer key="value" value="5"/>
                                        </userDefinedRuntimeAttribute>
                                    </userDefinedRuntimeAttributes>
                                </textField>
@@ -402,7 +407,7 @@
    <resources>
        <image name="btn_add_large" width="108" height="108"/>
        <image name="icon_calendar" width="18" height="18"/>
        <image name="icon_down_arrow" width="20" height="14"/>
        <image name="icon_down_arrow" width="13" height="8"/>
        <image name="icon_item_p" width="12" height="12"/>
        <namedColor name="FE6E0D">
            <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
WanPai/Root/Course/VC/CourseInfoVC.swift
@@ -118,7 +118,7 @@
            label_stu_hei.attributedText = setAttribute(t1: "\(m.height)", t2: "cm")
            label_stu_wei.attributedText = setAttribute(t1: "\(m.weight)", t2: "kg")
            label_stu_BMI.attributedText = setAttribute(t1: "\(m.bmi)", t2: m.bodyStatus)
            label_stu_BMI.attributedText = setAttribute(t1: m.bmi.jq_formatFloat, t2: m.bodyStatus)
            if m.courseList.count > 0{
                pageMenu.frame = CGRect(origin: .zero, size: CGSize(width: JQ_ScreenW - 100, height: 25))
WanPai/Root/Course/VC/StudentExchangeVC.swift
@@ -7,6 +7,7 @@
import UIKit
import RxSwift
import QMUIKit
class StudentExchangeViewModel:RefreshModel<StudentProfile1Model>{
    override func api() -> (Observable<BaseResponse<[StudentProfile1Model]>>)? {
@@ -17,8 +18,8 @@
class StudentExchangeVC: BaseVC {
    @IBOutlet weak var tableView: BaseTableView!
    @IBOutlet weak var btn_add: QMUIButton!
    private var selectIndex:Int?
    private let viewModel = StudentExchangeViewModel()
    override func viewDidLoad() {
@@ -27,6 +28,8 @@
        viewModel.configure(tableView,needMore: false)
        viewModel.beginRefresh()
        btn_add.imagePosition = .right
        btn_add.spacingBetweenImageAndTitle = 5
    }
    override func setUI() {
@@ -47,10 +50,23 @@
        let studentVC = AddStudentVC(type: .course)
        push(vc: studentVC)
    }
    @IBAction func changeAction(_ sender: UIButton) {
        if let s = selectIndex{
            let id = viewModel.dataSource.value[s].stuId
            Services.startCourseSwitch(id: id).subscribe(onNext: { data in
                NotificationCenter.default.post(name: StudentUpdate_Nofi, object: nil)
                self.navigationController?.popViewController()
            }).disposed(by: disposeBag)
        }
    }
}
extension StudentExchangeVC:UITableViewDelegate{
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        selectIndex = indexPath.row
        tableView.reloadData()
    }
}
extension StudentExchangeVC:UITableViewDataSource{
@@ -58,6 +74,20 @@
        let model = viewModel.dataSource.value[indexPath.row]
        let cell = tableView.dequeueReusableCell(withIdentifier: "_StudentInfo_3_TCell") as! StudentInfo_3_TCell
        cell.studentProfile1Model = model
        if selectIndex != nil{
            if indexPath.row == selectIndex{
                cell.view_container.jq_borderColor = UIColor(hexStr: "#FD7902").withAlphaComponent(0.28)
            }else{
                cell.view_container.jq_borderColor = UIColor(hexStr: "#818080").withAlphaComponent(0.28)
            }
        }else{
            if model.isNot == 1{
                cell.view_container.jq_borderColor = UIColor(hexStr: "#FD7902").withAlphaComponent(0.28)
            }else{
                cell.view_container.jq_borderColor = UIColor(hexStr: "#818080").withAlphaComponent(0.28)
            }
        }
        return cell
    }
WanPai/Root/Course/VC/StudentExchangeVC.xib
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/>
        <capability name="Named colors" minToolsVersion="9.0"/>
        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
        <capability name="System colors in document resources" minToolsVersion="11.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -11,6 +12,7 @@
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="StudentExchangeVC" customModule="WanPai" customModuleProvider="target">
            <connections>
                <outlet property="btn_add" destination="m2J-0U-jyB" id="2Rr-tu-fun"/>
                <outlet property="tableView" destination="zbO-vE-sYi" id="Rhv-H4-rra"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
            </connections>
@@ -35,25 +37,51 @@
                    </connections>
                </button>
                <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="zbO-vE-sYi" customClass="BaseTableView" customModule="WanPai" customModuleProvider="target">
                    <rect key="frame" x="0.0" y="111" width="393" height="707"/>
                    <rect key="frame" x="0.0" y="111" width="393" height="634"/>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                </tableView>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9Ce-bh-Xch">
                    <rect key="frame" x="100" y="755" width="193" height="40"/>
                    <color key="backgroundColor" name="FE6E0D"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="40" id="lPu-J5-4rj"/>
                    </constraints>
                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                    <state key="normal" title="确认"/>
                    <userDefinedRuntimeAttributes>
                        <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                        <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                            <real key="value" value="20"/>
                        </userDefinedRuntimeAttribute>
                    </userDefinedRuntimeAttributes>
                    <connections>
                        <action selector="changeAction:" destination="-1" eventType="touchUpInside" id="SzB-Bh-Vxh"/>
                    </connections>
                </button>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <constraints>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="zbO-vE-sYi" secondAttribute="trailing" id="02v-gx-M1z"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="9Ce-bh-Xch" secondAttribute="bottom" constant="23" id="8ff-yE-DIq"/>
                <constraint firstItem="9Ce-bh-Xch" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="100" id="Tqh-He-bcG"/>
                <constraint firstItem="zbO-vE-sYi" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="Us0-HE-xhb"/>
                <constraint firstAttribute="trailing" secondItem="m2J-0U-jyB" secondAttribute="trailing" constant="14" id="WXD-v4-Ohj"/>
                <constraint firstItem="m2J-0U-jyB" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="topMargin" constant="25" id="ZhC-yd-G8L"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="zbO-vE-sYi" secondAttribute="bottom" id="grk-F8-P5g"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="9Ce-bh-Xch" secondAttribute="trailing" constant="100" id="aQ1-9X-Dxv"/>
                <constraint firstItem="9Ce-bh-Xch" firstAttribute="top" secondItem="zbO-vE-sYi" secondAttribute="bottom" constant="10" id="fji-wa-RcK"/>
                <constraint firstItem="zbO-vE-sYi" firstAttribute="top" secondItem="m2J-0U-jyB" secondAttribute="bottom" constant="7" id="mrU-Sp-3mg"/>
                <constraint firstItem="9Ce-bh-Xch" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="x7b-9p-bBH"/>
            </constraints>
            <point key="canvasLocation" x="139.69465648854961" y="20.422535211267608"/>
        </view>
    </objects>
    <resources>
        <image name="btn_add_1" width="16" height="16"/>
        <namedColor name="FE6E0D">
            <color red="0.99199998378753662" green="0.53299999237060547" blue="0.0080000003799796104" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
        </namedColor>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>
WanPai/Root/Other/CCell/CouponCCell.swift
@@ -6,6 +6,8 @@
//
import UIKit
import HandyJSON
import JQTools
class CouponCCell: UICollectionViewCell {
@@ -13,25 +15,30 @@
    @IBOutlet weak var label_name: UILabel!
    @IBOutlet weak var label_fullMinus: UILabel!
    @IBOutlet weak var label_vaildTime: UILabel!
    var showDetailClouse:(()->Void)?
    var courseCouponModel:CourseCouponModel!{
        didSet{
            if let m = courseCouponModel{
                label_money.text = m.name
                label_name.text = m.type.rawTitle
                let ruleModel = CouponModelRuleModel.deserialize(from: m.content)
                switch m.type {
                    case .discount:
                        label_money.text = "\(ruleModel?.deductionAmount.jq_formatFloat ?? "")元"
                        label_fullMinus.isHidden = false
                        label_fullMinus.text = String(format: "满%.2lf元可用", m.content?.conditionalAmount ?? 0)
                        label_fullMinus.text = String(format: "满%@元可用", ruleModel?.conditionalAmount.jq_formatFloat ?? "--")
                    case .voucher:
                        label_money.text = "\(ruleModel?.conditionalAmount.jq_formatFloat ?? "")元"
                        label_fullMinus.isHidden = true
                    case .experience:
                        label_money.text = ruleModel?.experienceName ?? ""
                        label_fullMinus.isHidden = true
                    case .none:
                        label_fullMinus.isHidden = true
                }
                label_vaildTime.text = String(format: "有效期:%@-%@", courseCouponModel.startTime,courseCouponModel.endTime)
                label_vaildTime.text = String(format: "有效期至%@-%@", courseCouponModel.startTime,courseCouponModel.endTime)
            }
        }
    }
@@ -40,4 +47,8 @@
        super.awakeFromNib()
    }
    @IBAction func showContentAction(_ sender: UIButton) {
        showDetailClouse?()
    }
}
WanPai/Root/Other/CCell/CouponCCell.xib
@@ -3,7 +3,7 @@
    <device id="retina6_12" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22129"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/>
        <capability name="Named colors" minToolsVersion="9.0"/>
        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
        <capability name="System colors in document resources" minToolsVersion="11.0"/>
@@ -23,13 +23,13 @@
                        <rect key="frame" x="14" y="10" width="389" height="103"/>
                        <subviews>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="icon_coupon_header" translatesAutoresizingMaskIntoConstraints="NO" id="OKL-S9-8uc">
                                <rect key="frame" x="0.0" y="0.0" width="100" height="103"/>
                                <rect key="frame" x="0.0" y="0.0" width="96" height="103"/>
                            </imageView>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_coupon_footer" translatesAutoresizingMaskIntoConstraints="NO" id="s4d-Hy-Gra">
                                <rect key="frame" x="100" y="0.0" width="289" height="103"/>
                                <rect key="frame" x="96" y="0.0" width="293" height="103"/>
                            </imageView>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0元" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="943-VV-dPw">
                                <rect key="frame" x="5" y="5" width="90" height="93"/>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="943-VV-dPw">
                                <rect key="frame" x="3" y="8" width="90" height="87"/>
                                <constraints>
                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="90" id="uhd-ts-dAs"/>
                                </constraints>
@@ -38,7 +38,7 @@
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OYF-uW-SFs">
                                <rect key="frame" x="115" y="18" width="16.333333333333343" height="25"/>
                                <rect key="frame" x="111" y="18" width="16.333333333333329" height="25"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="25" id="hj7-hG-ZQC"/>
                                </constraints>
@@ -47,7 +47,7 @@
                                <nil key="highlightedColor"/>
                            </label>
                            <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="3" translatesAutoresizingMaskIntoConstraints="NO" id="tzt-Qb-9Zd">
                                <rect key="frame" x="115.00000000000001" y="46" width="60.666666666666671" height="37"/>
                                <rect key="frame" x="111.00000000000001" y="46" width="60.666666666666671" height="37"/>
                                <subviews>
                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="满--元可用" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gEm-JU-PoK">
                                        <rect key="frame" x="0.0" y="0.0" width="60.666666666666664" height="17"/>
@@ -95,6 +95,9 @@
                                        <real key="value" value="1"/>
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                                <connections>
                                    <action selector="showContentAction:" destination="gTV-IL-0wX" eventType="touchUpInside" id="tE2-yA-Wuz"/>
                                </connections>
                            </button>
                        </subviews>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
@@ -103,19 +106,19 @@
                            <constraint firstItem="tzt-Qb-9Zd" firstAttribute="leading" secondItem="OYF-uW-SFs" secondAttribute="leading" id="5Xl-ko-The"/>
                            <constraint firstAttribute="trailing" secondItem="s4d-Hy-Gra" secondAttribute="trailing" id="7Pe-n1-Bgi"/>
                            <constraint firstItem="OKL-S9-8uc" firstAttribute="leading" secondItem="mnx-Jv-DFb" secondAttribute="leading" id="8o8-p8-KaY"/>
                            <constraint firstItem="943-VV-dPw" firstAttribute="top" secondItem="OKL-S9-8uc" secondAttribute="top" constant="5" id="CYz-xI-ZqO"/>
                            <constraint firstItem="943-VV-dPw" firstAttribute="top" secondItem="OKL-S9-8uc" secondAttribute="top" constant="8" id="CYz-xI-ZqO"/>
                            <constraint firstItem="OYF-uW-SFs" firstAttribute="top" secondItem="mnx-Jv-DFb" secondAttribute="top" constant="18" id="Hju-WD-yhZ"/>
                            <constraint firstItem="s4d-Hy-Gra" firstAttribute="top" secondItem="mnx-Jv-DFb" secondAttribute="top" id="MJ4-G1-ATN"/>
                            <constraint firstItem="OYF-uW-SFs" firstAttribute="leading" secondItem="OKL-S9-8uc" secondAttribute="trailing" constant="15" id="MXj-wy-eU3"/>
                            <constraint firstAttribute="bottom" secondItem="OKL-S9-8uc" secondAttribute="bottom" id="Nc3-7H-Jib"/>
                            <constraint firstAttribute="trailing" secondItem="DLn-XT-0Qj" secondAttribute="trailing" constant="9" id="ONW-N8-KWx"/>
                            <constraint firstItem="943-VV-dPw" firstAttribute="trailing" secondItem="OKL-S9-8uc" secondAttribute="trailing" constant="-5" id="WDa-vh-Zz9"/>
                            <constraint firstItem="943-VV-dPw" firstAttribute="trailing" secondItem="OKL-S9-8uc" secondAttribute="trailing" constant="-3" id="WDa-vh-Zz9"/>
                            <constraint firstItem="s4d-Hy-Gra" firstAttribute="leading" secondItem="OKL-S9-8uc" secondAttribute="trailing" id="bZg-Yq-qYQ"/>
                            <constraint firstItem="OKL-S9-8uc" firstAttribute="top" secondItem="mnx-Jv-DFb" secondAttribute="top" id="ctI-2Y-KVB"/>
                            <constraint firstItem="DLn-XT-0Qj" firstAttribute="centerY" secondItem="943-VV-dPw" secondAttribute="centerY" id="fg2-s8-8hM"/>
                            <constraint firstItem="943-VV-dPw" firstAttribute="bottom" secondItem="OKL-S9-8uc" secondAttribute="bottom" constant="-5" id="gDi-cg-pJq"/>
                            <constraint firstItem="943-VV-dPw" firstAttribute="bottom" secondItem="OKL-S9-8uc" secondAttribute="bottom" constant="-8" id="gDi-cg-pJq"/>
                            <constraint firstAttribute="bottom" secondItem="s4d-Hy-Gra" secondAttribute="bottom" id="pBu-iF-fVd"/>
                            <constraint firstItem="943-VV-dPw" firstAttribute="leading" secondItem="OKL-S9-8uc" secondAttribute="leading" constant="5" id="zzE-HG-7TH"/>
                            <constraint firstItem="943-VV-dPw" firstAttribute="leading" secondItem="OKL-S9-8uc" secondAttribute="leading" constant="3" id="zzE-HG-7TH"/>
                        </constraints>
                    </view>
                </subviews>
WanPai/Root/Other/TCell/StudentInfo_3_TCell.swift
@@ -43,18 +43,18 @@
    override func awakeFromNib() {
        super.awakeFromNib()
        selectionStyle = .none
        view_container.jq_borderColor = UIColor(hexStr: "#FD7902").withAlphaComponent(0.28)
        view_container.jq_borderWidth = 1
    }
    @IBAction func tobeDefaultAction(_ sender: UIButton) {
        guard studentProfile1Model.isNot == 2 else {return}
        Services.startCourseSwitch(id: studentProfile1Model.stuId).subscribe(onNext: { data in
        Services.courseDefaultSet(id: studentProfile1Model.stuId).subscribe(onNext: { data in
            NotificationCenter.default.post(name: StudentUpdate_Nofi, object: nil)
        }).disposed(by: disposeBag)
    }
    @IBAction func editAction(_ sender: UIButton) {
        let vc = AddStudentVC(type: .course, studentInfo: studentProfile1Model)
        JQ_currentViewController().jq_push(vc: vc)
    }
}
WanPai/Root/Other/VC/PaymentResultVC.swift
@@ -212,6 +212,12 @@
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_CouponCCell", for: indexPath) as! CouponCCell
        let model = models[indexPath.row]
        cell.courseCouponModel = model
        cell.showDetailClouse = {[weak self] () in
            self?.dismiss(animated:true){ [weak self] in
                let vc = WelfareCouponsListVC()
                self?.handleVC?.navigationController?.pushViewController(vc)
            }
        }
        return cell
    }
    
@@ -219,14 +225,14 @@
extension PaymentResultVC:UICollectionViewDelegateFlowLayout{
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
        return 5
        return 0
    }
    
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
        return 5
        return 0
    }
    
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return CGSize(width: JQ_ScreenW, height: 110)
        return CGSize(width: JQ_ScreenW, height: 120)
    }
}
WanPai/Root/Other/VC/PaymentResultVC.xib
@@ -41,7 +41,7 @@
                    <nil key="highlightedColor"/>
                </label>
                <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="6ci-0V-ZT4">
                    <rect key="frame" x="0.0" y="280" width="375" height="379"/>
                    <rect key="frame" x="0.0" y="314" width="375" height="454"/>
                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                    <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="7br-70-TUT">
                        <size key="itemSize" width="128" height="128"/>
@@ -140,13 +140,13 @@
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="6ci-0V-ZT4" secondAttribute="trailing" id="5Yg-0m-KVU"/>
                <constraint firstItem="RK0-X7-xSS" firstAttribute="top" secondItem="Fv7-HV-ioC" secondAttribute="bottom" constant="20" id="6Ii-mh-axn"/>
                <constraint firstItem="Fv7-HV-ioC" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="49" id="Fj8-kC-rK8"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="6ci-0V-ZT4" secondAttribute="bottom" constant="10" id="ISt-a8-fXg"/>
                <constraint firstItem="meY-wl-nNE" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="JNm-aR-XPU"/>
                <constraint firstItem="6ci-0V-ZT4" firstAttribute="top" secondItem="c1t-oI-xet" secondAttribute="bottom" constant="10" id="LuL-yl-IA1"/>
                <constraint firstItem="6ci-0V-ZT4" firstAttribute="top" secondItem="c1t-oI-xet" secondAttribute="bottom" constant="44" id="LuL-yl-IA1"/>
                <constraint firstItem="c1t-oI-xet" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="Pm4-Fl-Wha"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="meY-wl-nNE" secondAttribute="bottom" constant="71" id="UnI-Ey-Pc1"/>
                <constraint firstItem="tQo-2S-36p" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="topMargin" id="Vb5-4t-kwB"/>
                <constraint firstItem="RK0-X7-xSS" firstAttribute="centerX" secondItem="Fv7-HV-ioC" secondAttribute="centerX" id="XBX-DI-MSD"/>
                <constraint firstItem="meY-wl-nNE" firstAttribute="top" secondItem="6ci-0V-ZT4" secondAttribute="bottom" constant="10" id="Y9C-4j-R40"/>
                <constraint firstItem="Fv7-HV-ioC" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="aaQ-gG-s1W"/>
                <constraint firstItem="6ci-0V-ZT4" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="gBF-6S-2xb"/>
                <constraint firstItem="c1t-oI-xet" firstAttribute="top" secondItem="RK0-X7-xSS" secondAttribute="bottom" constant="54" id="ike-m8-wcL"/>
WanPai/Root/Search/VC/SearchVC.swift
@@ -14,6 +14,7 @@
    @IBOutlet weak var label_empty: UILabel!
    @IBOutlet weak var view_container: UIView!
    @IBOutlet weak var btn_special: UIButton!
    @IBOutlet weak var btn_userLocal: UIButton!
        //    @IBOutlet weak var cons_CollectionAspect: NSLayoutConstraint!
    private var models = [StartClouseExploreModel]()
@@ -70,6 +71,7 @@
        mapView.addAnnotations(points)
        mapView.showAnnotations(points, animated: true)
        mapView.selectAnnotation(points.first!, animated: true)
        view_container.bringSubviewToFront(btn_userLocal)
    }
    override func viewDidLayoutSubviews() {
@@ -86,6 +88,11 @@
        let vc = JoinMemberIntroduceVC()
        push(vc: vc)
    }
    @IBAction func userLocationAction(_ sender: Any) {
        let userCoordinate = mapView.userLocation.coordinate
        mapView.setCenter(userCoordinate, animated: true)
    }
    
    @IBAction func aboutMinProgram(_ sender: Any) {
WanPai/Root/Search/VC/SearchVC.xib
@@ -14,6 +14,7 @@
            <connections>
                <outlet property="banner_collectionView" destination="GVG-mQ-5A4" id="keS-lx-iWt"/>
                <outlet property="btn_special" destination="5WV-eT-XUG" id="OzE-I1-cJB"/>
                <outlet property="btn_userLocal" destination="G6c-mm-jtO" id="AS9-Qs-vFK"/>
                <outlet property="label_empty" destination="FYv-6M-gC5" id="SA6-TH-Aqp"/>
                <outlet property="scrollView" destination="Jbe-CY-MmI" id="MM5-aA-VjT"/>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
@@ -99,14 +100,24 @@
                                            <color key="textColor" red="0.20392156859999999" green="0.3411764706" blue="0.42352941179999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="G6c-mm-jtO">
                                            <rect key="frame" x="312" y="159.66666666666669" width="30" height="30"/>
                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                            <state key="normal" image="btn_map_local"/>
                                            <connections>
                                                <action selector="userLocationAction:" destination="-1" eventType="touchUpInside" id="yGj-0G-xcT"/>
                                            </connections>
                                        </button>
                                    </subviews>
                                    <color key="backgroundColor" systemColor="systemGroupedBackgroundColor"/>
                                    <constraints>
                                        <constraint firstItem="FYv-6M-gC5" firstAttribute="top" secondItem="kz4-Kz-Gzm" secondAttribute="top" id="6Qg-cL-kbh"/>
                                        <constraint firstAttribute="width" secondItem="kz4-Kz-Gzm" secondAttribute="height" multiplier="1:0.561" id="8hG-Ai-TyT"/>
                                        <constraint firstAttribute="bottom" secondItem="FYv-6M-gC5" secondAttribute="bottom" id="Q4a-4F-XMA"/>
                                        <constraint firstAttribute="trailing" secondItem="G6c-mm-jtO" secondAttribute="trailing" constant="5" id="f1j-Zi-1Aq"/>
                                        <constraint firstAttribute="trailing" secondItem="FYv-6M-gC5" secondAttribute="trailing" id="kb0-0U-Ri8"/>
                                        <constraint firstItem="FYv-6M-gC5" firstAttribute="leading" secondItem="kz4-Kz-Gzm" secondAttribute="leading" id="nwW-5i-AUH"/>
                                        <constraint firstAttribute="bottom" secondItem="G6c-mm-jtO" secondAttribute="bottom" constant="5" id="psO-W6-VUl"/>
                                    </constraints>
                                </view>
                                <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="W2A-PE-Zq8">
@@ -260,6 +271,7 @@
    </objects>
    <resources>
        <image name="bg_search" width="390" height="194"/>
        <image name="btn_map_local" width="30" height="30"/>
        <image name="icon_aboutUs" width="48" height="36"/>
        <image name="icon_customer" width="45" height="38"/>
        <namedColor name="FE6E0D">
WanPai/Root/Welfare/VC/WelfareWeeklyDetailVC.swift
@@ -13,7 +13,7 @@
class WelfareWeeklyDetailVC: BaseVC {
    @IBOutlet weak var img_cover: UIImageView!
    @IBOutlet weak var label_name: UILabel!
    @IBOutlet weak var btn_address: QMUIButton!
    @IBOutlet weak var label_address: UILabel!
    @IBOutlet weak var label_distance: UILabel!
    @IBOutlet weak var label_courseNum: UILabel!
    @IBOutlet weak var label_giftCourseNum: UILabel!
@@ -55,18 +55,16 @@
                weakSelf.weeklyItemDetailModel = model
                weakSelf.img_cover.sd_setImage(with: URL(string: model.coverDrawing))
                weakSelf.label_name.text = model.coursePackageName
                weakSelf.btn_address.setTitle(model.storeNameAddr, for: .normal)
                weakSelf.label_address.text = model.storeNameAddr
                weakSelf.label_courseNum.text = "\(model.classHours)课时"
                weakSelf.label_giftCourseNum.text = "\(model.freeClassHours)课时"
                weakSelf.view_giftCourseNum.isHidden = model.freeClassHours == 0
                weakSelf.label_attendWeeks.text = model.weekTime
                weakSelf.label_datetime.text = model.time
                weakSelf.label_distance.text = String(format: "%.2lfkm", model.distance)
                weakSelf.label_distance.text = String(format: "距离我%.2lfkm", model.distance)
                weakSelf.label_vip.isHidden  = model.discountPrice == 0
                weakSelf.label_coin.isHidden = model.wanpaiGold == 0
                weakSelf.label_originPrice.isHidden = model.costPrice == 0
                if model.discountPrice > 0{
                    weakSelf.label_price.text = model.discountPrice.currency()
WanPai/Root/Welfare/VC/WelfareWeeklyDetailVC.xib
@@ -12,13 +12,13 @@
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="WelfareWeeklyDetailVC" customModule="WanPai" customModuleProvider="target">
            <connections>
                <outlet property="btn_address" destination="W0q-KT-0kw" id="vaT-JY-9T2"/>
                <outlet property="btn_handle" destination="fo2-mD-30Z" id="cWq-FD-kkO"/>
                <outlet property="cons_imgIntro2Hei" destination="XcJ-9a-vwU" id="Oxh-8m-dZA"/>
                <outlet property="cons_imgIntroHei" destination="LTT-Lg-ST4" id="ISY-yQ-jZX"/>
                <outlet property="img_cover" destination="N0o-wc-kbY" id="FHX-0M-qxy"/>
                <outlet property="img_intro" destination="9fb-wg-pcf" id="CHi-xu-9ip"/>
                <outlet property="img_intro2" destination="rkq-O0-4a4" id="WTa-Wh-SEu"/>
                <outlet property="label_address" destination="h4W-X0-Pgw" id="0nc-FT-5XB"/>
                <outlet property="label_attendWeeks" destination="oZw-he-MSe" id="BMD-YM-tz3"/>
                <outlet property="label_coin" destination="ecn-wz-vwc" id="79x-GY-7Ib"/>
                <outlet property="label_courseNum" destination="Itx-UU-SPB" id="3eo-G9-llz"/>
@@ -42,7 +42,7 @@
                    <rect key="frame" x="0.0" y="59" width="393" height="684"/>
                    <subviews>
                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="Idk-Wv-zLx">
                            <rect key="frame" x="0.0" y="0.0" width="393" height="684.66666666666663"/>
                            <rect key="frame" x="0.0" y="0.0" width="393" height="696.33333333333337"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9x3-OB-26n">
                                    <rect key="frame" x="0.0" y="0.0" width="393" height="221.66666666666666"/>
@@ -61,17 +61,17 @@
                                    </constraints>
                                </view>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CN3-Y2-aPc">
                                    <rect key="frame" x="0.0" y="221.66666666666669" width="393" height="79"/>
                                    <rect key="frame" x="0.0" y="221.66666666666666" width="393" height="90.666666666666657"/>
                                    <subviews>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pCM-Dh-3k2">
                                            <rect key="frame" x="13" y="78" width="380" height="1"/>
                                            <rect key="frame" x="13" y="89.666666666666629" width="380" height="1"/>
                                            <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="1" id="Sk8-F7-YK6"/>
                                            </constraints>
                                        </view>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IRe-jL-GtL">
                                            <rect key="frame" x="14" y="14" width="365" height="25"/>
                                            <rect key="frame" x="14" y="14.000000000000004" width="365" height="39.333333333333343"/>
                                            <constraints>
                                                <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="25" id="Z4y-Nx-iqc"/>
                                            </constraints>
@@ -79,41 +79,46 @@
                                            <nil key="textColor"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="W0q-KT-0kw" customClass="QMUIButton">
                                            <rect key="frame" x="14" y="46" width="223" height="18"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="18" id="7qi-vi-rmt"/>
                                            </constraints>
                                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="12"/>
                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                            <state key="normal" title="玩湃-喜望店(天府新谷9号楼1005A)" image="icon_local_mini">
                                                <color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
                                            </state>
                                        </button>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="距离我0km" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bev-p1-KjK">
                                            <rect key="frame" x="316.33333333333331" y="47.666666666666629" width="62.666666666666686" height="14.333333333333336"/>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="距离我0km" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bev-p1-KjK">
                                            <rect key="frame" x="61.666666666666657" y="60.333333333333321" width="317.33333333333337" height="14.333333333333336"/>
                                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="12"/>
                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_local_mini" translatesAutoresizingMaskIntoConstraints="NO" id="fe2-0O-nbG">
                                            <rect key="frame" x="14" y="59.333333333333314" width="11" height="16"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="16" id="1dq-3P-Xbu"/>
                                                <constraint firstAttribute="width" constant="11" id="uJk-GO-oyl"/>
                                            </constraints>
                                        </imageView>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h4W-X0-Pgw">
                                            <rect key="frame" x="30.000000000000004" y="60.333333333333321" width="11.666666666666668" height="14.333333333333336"/>
                                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="calibratedRGB"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                    </subviews>
                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                                    <constraints>
                                        <constraint firstItem="W0q-KT-0kw" firstAttribute="leading" secondItem="CN3-Y2-aPc" secondAttribute="leading" constant="14" id="Icp-xB-4r1"/>
                                        <constraint firstItem="bev-p1-KjK" firstAttribute="centerY" secondItem="W0q-KT-0kw" secondAttribute="centerY" id="NSc-uF-9cI"/>
                                        <constraint firstItem="fe2-0O-nbG" firstAttribute="leading" secondItem="CN3-Y2-aPc" secondAttribute="leading" constant="14" id="0ne-a9-24I"/>
                                        <constraint firstItem="bev-p1-KjK" firstAttribute="centerY" secondItem="h4W-X0-Pgw" secondAttribute="centerY" id="AAV-0M-UN8"/>
                                        <constraint firstItem="h4W-X0-Pgw" firstAttribute="top" secondItem="IRe-jL-GtL" secondAttribute="bottom" constant="7" id="Ctd-5g-gts"/>
                                        <constraint firstItem="h4W-X0-Pgw" firstAttribute="leading" secondItem="fe2-0O-nbG" secondAttribute="trailing" constant="5" id="EQu-QN-yiy"/>
                                        <constraint firstItem="bev-p1-KjK" firstAttribute="leading" secondItem="h4W-X0-Pgw" secondAttribute="trailing" constant="20" id="I8J-xR-bAK"/>
                                        <constraint firstAttribute="trailing" secondItem="bev-p1-KjK" secondAttribute="trailing" constant="14" id="PeH-u6-Pk3"/>
                                        <constraint firstItem="IRe-jL-GtL" firstAttribute="top" secondItem="CN3-Y2-aPc" secondAttribute="top" constant="14" id="SCz-Y2-Odz"/>
                                        <constraint firstItem="W0q-KT-0kw" firstAttribute="top" secondItem="IRe-jL-GtL" secondAttribute="bottom" constant="7" id="SgU-WF-LVG"/>
                                        <constraint firstItem="pCM-Dh-3k2" firstAttribute="top" secondItem="W0q-KT-0kw" secondAttribute="bottom" constant="14" id="WTD-Ha-Eqa"/>
                                        <constraint firstAttribute="trailing" secondItem="pCM-Dh-3k2" secondAttribute="trailing" id="X3M-mW-fod"/>
                                        <constraint firstItem="h4W-X0-Pgw" firstAttribute="centerY" secondItem="fe2-0O-nbG" secondAttribute="centerY" id="bAT-hX-qIZ"/>
                                        <constraint firstItem="pCM-Dh-3k2" firstAttribute="leading" secondItem="CN3-Y2-aPc" secondAttribute="leading" constant="13" id="bRt-pj-4os"/>
                                        <constraint firstAttribute="trailing" secondItem="IRe-jL-GtL" secondAttribute="trailing" constant="14" id="clN-bX-09R"/>
                                        <constraint firstItem="IRe-jL-GtL" firstAttribute="leading" secondItem="CN3-Y2-aPc" secondAttribute="leading" constant="14" id="hyP-Ra-wS1"/>
                                        <constraint firstAttribute="bottom" secondItem="pCM-Dh-3k2" secondAttribute="bottom" id="qOj-Qm-p8j"/>
                                        <constraint firstItem="pCM-Dh-3k2" firstAttribute="top" secondItem="h4W-X0-Pgw" secondAttribute="bottom" constant="15" id="ubY-ir-3Ar"/>
                                    </constraints>
                                </view>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Evs-U2-JQo">
                                    <rect key="frame" x="0.0" y="300.66666666666669" width="393" height="49"/>
                                    <rect key="frame" x="0.0" y="312.33333333333331" width="393" height="49"/>
                                    <subviews>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gaj-iR-oGe">
                                            <rect key="frame" x="13" y="48" width="380" height="1"/>
@@ -154,7 +159,7 @@
                                    </constraints>
                                </view>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="He4-gs-Axl">
                                    <rect key="frame" x="0.0" y="349.66666666666669" width="393" height="49"/>
                                    <rect key="frame" x="0.0" y="361.33333333333331" width="393" height="49"/>
                                    <subviews>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Q7u-VG-gsT">
                                            <rect key="frame" x="13" y="48" width="380" height="1"/>
@@ -195,10 +200,10 @@
                                    </constraints>
                                </view>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hQc-bT-aln">
                                    <rect key="frame" x="0.0" y="398.66666666666669" width="393" height="86"/>
                                    <rect key="frame" x="0.0" y="410.33333333333331" width="393" height="86"/>
                                    <subviews>
                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hrq-r5-1M6">
                                            <rect key="frame" x="13" y="72.999999999999943" width="380" height="1"/>
                                            <rect key="frame" x="13" y="73.000000000000057" width="380" height="1"/>
                                            <color key="backgroundColor" red="0.59215686270000001" green="0.59215686270000001" blue="0.59215686270000001" alpha="0.22" colorSpace="custom" customColorSpace="sRGB"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="1" id="ahK-DF-ojc"/>
@@ -244,13 +249,13 @@
                                    </constraints>
                                </view>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="9fb-wg-pcf">
                                    <rect key="frame" x="0.0" y="484.66666666666663" width="393" height="100"/>
                                    <rect key="frame" x="0.0" y="496.33333333333337" width="393" height="100"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="100" id="LTT-Lg-ST4"/>
                                    </constraints>
                                </imageView>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="rkq-O0-4a4">
                                    <rect key="frame" x="0.0" y="584.66666666666663" width="393" height="100"/>
                                    <rect key="frame" x="0.0" y="596.33333333333337" width="393" height="100"/>
                                    <constraints>
                                        <constraint firstAttribute="height" constant="100" id="XcJ-9a-vwU"/>
                                    </constraints>
WanPai/Root/Yard/VC/YardDetailVC.swift
@@ -148,6 +148,8 @@
                weakSelf.view_banner.setImages(images: model.imgs.components(separatedBy: ","),type: .URL) { index in
                }
                weakSelf.view_yardType.isHidden = model.nextName.filter({!$0.isEmpty}).count == 0
            }
        }).disposed(by: disposeBag)
    }