diff --git a/app.json b/app.json
index 649a598..af1bfdb 100644
--- a/app.json
+++ b/app.json
@@ -1,9 +1,10 @@
 {
     "pages": [
+        "pages/login/loginNew/loginNew",
         "pages/login/codeLogin/codeLogin",
+        "pages/index/achievement/achievement",
         "pages/index/rank/rank",
         "pages/index/index",
-        "pages/index/achievement/achievement",
         "pages/index/newPunch/newPunch",
         "pages/mine/record/record",
         "pages/mine/index",
diff --git a/img/login_img.png b/img/login_img.png
new file mode 100644
index 0000000..bff1ee0
Binary files /dev/null and b/img/login_img.png differ
diff --git a/pages/index/achievement/achievement.js b/pages/index/achievement/achievement.js
index b030469..f50e196 100644
--- a/pages/index/achievement/achievement.js
+++ b/pages/index/achievement/achievement.js
@@ -1,52 +1,148 @@
 // pages/index/achievement/achievement.js
+// 引入插件安装器
+import plugin from '../../../component/v2/plugins/index'
+import week from '../../../component/v2/plugins/week'
+import todo from '../../../component/v2/plugins/todo'
+import request from '../../../api/request.js'
+import moment from 'moment';
+plugin
+    .use(week)
+    .use(todo)
 Page({
 
-  /**
-   * 页面的初始数据
-   */
-  data: {
-    calendarConfig: {
-      // theme: 'elegant',
-      weekMode: true, // 周视图模式
-      // highlightToday: true, // 是否高亮显示当天
-      // hideHeader: true, // 隐藏日历头部操作栏
-    },
-    isDisplay:false
-  },
-  takeoverTap(e) {
-    console.log('takeoverTap', e.detail)
-  },
-  //获取信息
-  getInfo(e) {
-    // 切换为周视图
-    const calendar = this.selectComponent('#calendar').calendar
-    console.log(calendar.getCurrentYM())
-    calendar.switchView('week', '#calendar').then(() => {})
-    return
-    // 切换为周视图
-    this.setData({
-      isDisplay: !this.data.isDisplay
-    })
-    if (this.data.isDisplay) {
-      calendar.switchView('month').then(() => {})
-    } else {
-      calendar.switchView('week').then(() => {})
-    }
-  },
-  /**
-   * 生命周期函数--监听页面加载
-   */
-  onLoad(options) {
-
-  },
-  // 统一返回
-  handleBack() {
-    wx.navigateBack()
-  },
-  /**
-   * 用户点击右上角分享
-   */
-  onShareAppMessage() {
-
-  }
+    /**
+     * 页面的初始数据
+     */
+    data: {
+        calendarConfig: {
+            theme: 'elegant',
+            weekMode: true, // 周视图模式
+            // highlightToday: true, // 是否高亮显示当天
+            hideHeader: true, // 隐藏日历头部操作栏
+            autoChoosedWhenJump: true, // 设置默认日期及跳转到指定日期后是否需要自动选中
+            defaultDate: moment(new Date().getTime()).format('YYYY-MM-DD'), // 默认选中指定某天,如需选中需配置 autoChoosedWhenJump: true
+        },
+        isDisplay: false,
+        calendar: {}, //日历
+        valueId: '', //任务ID
+        taskVo: {
+            allowRepairCard: 0,
+            hasData: 0,
+            id: 0,
+            releaseTime: "",
+            signTotal: 0,
+            taskCycle: 0,
+            taskDesc: "",
+            taskFrequency: "",
+            taskTitle: "",
+            weekDay: ""
+        },
+        resData: [], //成果数据
+        recordVo: {
+            commitTime: "",
+            files: [],
+            signDate: "",
+            taskRecordDesc: "",
+            taskStatisticsParam: ""
+        }, //成果数据当天
+        recordVoShow: false,
+        dayMoment: 0 , //数据月份
+    },
+    /**
+     * 选择日期后执行的事件
+     */
+    afterTapDate(e) {
+        let date = e.detail.date
+        // let month = e.detail.month
+        // let year = e.detail.year
+        let recordVo = this.data.resData.eventDetails[date - 1].recordVo
+        if (recordVo != null) {
+            console.log('复制',recordVo)
+            this.setData({
+                recordVo: recordVo
+            })
+            this.setData({
+                recordVoShow: true
+            })
+        }else {
+            this.setData({
+                recordVoShow: false
+            })
+        }
+    },
+    //获取信息
+    getInfo(doday,isOne=0) {
+        request({
+            url: `/wx/task/getSignRecord`,
+            method: 'get',
+            data: {
+                // wx.getStorageSync('userInfo_id'),
+                "taskId": this.data.valueId,
+                "signDate": doday
+            },
+        }).then(res => {
+            if (res.code == 0) {
+                this.setData({
+                    resData: res.data
+                })
+                this.getV2(res.data)
+                if(isOne ==1) {
+                    let e = {
+                        detail: {
+                            date: moment().date(),
+                            month: moment().month() + 1,
+                            year: moment().year()
+                        }
+                    }
+                    this.afterTapDate(e)
+                }
+            } else {
+                wx.showToast({
+                    title: res.msg,
+                    icon: 'none'
+                })
+            }
+        })
+    },
+    //初始化日历
+    initialize() {
+        // 设置待办
+        this.setData({
+            'calendar': this.selectComponent('#calendar').calendar
+        })
+    },
+    //显示日历
+    getV2(resData) {
+        this.setData({
+            taskVo: resData.taskVo
+        })
+        // const calendar = this.selectComponent('#calendar').calendar
+        this.data.calendar.setTodos({
+            // 待办点标记设置
+            pos: 'bottom', // 待办点标记位置 ['top', 'bottom']
+            dotColor: 'red', // 待办点标记颜色
+            circle: false, // 待办圆圈标记设置(如圆圈标记已签到日期),该设置与点标记设置互斥
+            showLabelAlways: true, // 点击时是否显示待办事项(圆点/文字),在 circle 为 true 及当日历配置 showLunar 为 true 时,此配置失效
+            dates: resData.eventDetails
+        })
+    },
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad(options) {
+        this.setData({
+            valueId: options.valueId
+        })
+    },
+    // 统一返回
+    handleBack() {
+        wx.navigateBack()
+    },
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady() {
+        this.initialize()
+        this.getInfo(moment(new Date().getTime()).format('YYYY-MM-DD'),1)
+    },
 })
\ No newline at end of file
diff --git a/pages/index/achievement/achievement.json b/pages/index/achievement/achievement.json
index 7c6d688..533f247 100644
--- a/pages/index/achievement/achievement.json
+++ b/pages/index/achievement/achievement.json
@@ -1,6 +1,11 @@
 {
     "usingComponents": {
         "van-icon": "@vant/weapp/icon/index",
-        "calendar": "/component/v2/index"
-    }
+        "calendar": "/component/v2/index",
+        "van-popup": "@vant/weapp/popup/index",
+        "van-field": "@vant/weapp/field/index",
+        "van-image": "@vant/weapp/image/index",
+        "van-button": "@vant/weapp/button/index"
+    },
+    "navigationBarTitleText": "我的成果"
 }
\ No newline at end of file
diff --git a/pages/index/achievement/achievement.wxml b/pages/index/achievement/achievement.wxml
index 4e7856d..05f58f3 100644
--- a/pages/index/achievement/achievement.wxml
+++ b/pages/index/achievement/achievement.wxml
@@ -1,5 +1,31 @@
 <!--pages/index/achievement/achievement.wxml-->
 <view class="punch_detail">
-    <calendar id="calendar" config="{{calendarConfig}}" bind:takeoverTap="takeoverTap" />
+    <calendar id="calendar" config="{{calendarConfig}}" bind:afterTapDate="afterTapDate"/>
     <!-- <view class="btn" bindtap="getInfo">按钮</view> -->
+    <view class="line_grey"></view>
+    <view class="card">
+        <view class="card_title">{{taskVo.taskTitle}}</view>
+        <view class="card_flex">
+            <view class="flex_grey">已进行 {{taskVo.signTotal +' / ' +taskVo.taskCycle}} 天</view>
+            <view class="flex_grey">打卡频次 : {{taskVo.taskFrequency}}</view>
+            <view class="flex_grey">{{taskVo.hasData == 1 ?'允许补卡': '不允许补卡'}}</view>
+        </view>
+        <view class="card_context">{{taskVo.taskDesc}}</view>
+        <view class="grey_font">
+            <view>我发布与{{taskVo.weekDay}} {{taskVo.releaseTime}}</view>
+            <view class="grey_font_bottom"></view>
+        </view>
+    </view>
+
+    <view class="grey_line"></view>
+    <view class="box" wx:if="{{recordVoShow}}">
+        <view class="box_title">打卡成果</view>
+        <view class="box_blue">本次打卡坚持了<span>{{recordVo.taskStatisticsParam}}分钟</span></view>
+        <view class="box_grey">"{{recordVo.taskRecordDesc}}"</view>
+        <view class="box_pic">
+            <view class="box_img" wx:for="{{recordVo.files}}" wx:key="index" wx:for-item="value">
+                <van-image width="100%" height="26vw" fit="fill" src="{{value}}"  />
+            </view>
+        </view>
+    </view>
 </view>
\ No newline at end of file
diff --git a/pages/index/achievement/achievement.wxss b/pages/index/achievement/achievement.wxss
index 74af0c0..9fc8777 100644
--- a/pages/index/achievement/achievement.wxss
+++ b/pages/index/achievement/achievement.wxss
@@ -4,4 +4,131 @@
     height: 20vw;
     background-color: aqua;
     font-size: 5vw;
+}
+.line_grey {
+    width: 90vw;
+    height: 1px;
+    background-color: #999;
+    margin: 10px 5vw 20px;
+}
+.card {
+    width: 92vw;
+    margin-left: 4vw;
+}
+.card_title {
+    font-size: 18px;
+    color: #556191;
+    margin: 15px 0;
+}
+.card_flex {
+    display: flex;
+}
+.flex_grey {
+    padding: 7px 10px;
+    box-sizing: border-box;
+    margin: 0 5px 10px 0;
+    font-size: 13px;
+    background-color: #F4F4F4;
+    color: #666666;
+    border-radius: 3px;
+}
+.card_context {
+    font-size: 16px;
+    margin: 10px 0;
+}
+.grey_font {
+    font-size: 14px;
+    color: #999999;
+    margin: 20px 0;
+}
+.grey_font_bottom {
+    margin-top: 5px;
+}
+.btn_box {
+    display: flex;
+    justify-content: space-around;
+    position: fixed;
+    bottom: 50px;
+    width: 100vw;
+}
+.pop_title {
+    font-size: 18px;
+    font-weight: bold;
+    text-align: center;
+    margin: 20px 0;
+}
+.pop_flex {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 0 20px;
+    box-sizing: border-box;
+}
+.pop_cell {
+    width: 40vw;
+    display: flex;
+    align-items: center;
+}
+.pop_fz {
+    width: 70px;
+}
+.pop_btn {
+    position: absolute;
+    bottom: 30px;
+    width: 90vw;
+    margin: 0 5vw;
+}
+.pop_tip {
+    position: absolute;
+    bottom: 90px;
+    width: 90vw;
+    margin: 0 5vw;
+}
+.pop_pic {
+    width: 70px;
+    height: 30px;
+}
+.grey_line {
+    width: 90vw;
+    height: 1px;
+    margin: 20vw 5vw 10vw ;
+    background-color: #999;
+}
+.box {
+    padding: 0 5vw;
+    box-sizing: border-box;
+    margin-bottom: 20px;
+}
+.box_title {
+    font-size: 20px;
+    font-weight: bold;
+}
+.box_blue {
+    padding: 7px 10px;
+    box-sizing: border-box;
+    background-color: #EDF5FF;
+    color: #333333;
+    margin: 15px 0;
+    border-radius: 10px;
+}
+.box_blue span {
+    color: #3A86F5;
+}
+.box_grey {
+    padding: 18px 10px;
+    box-sizing: border-box;
+    background-color: #FBFBFB;
+    color: #666666 ;
+    margin: 15px 0;
+    border-radius: 10px;
+}
+.box_pic {
+    display: flex;
+    justify-content: space-between;
+    flex-wrap: wrap;
+}
+.box_img {
+    width: 26vw;
+    margin:0 0 10px;
+    border-radius: 10px;
 }
\ No newline at end of file
diff --git a/pages/index/index.js b/pages/index/index.js
index 3fc231d..e667c84 100644
--- a/pages/index/index.js
+++ b/pages/index/index.js
@@ -49,15 +49,15 @@ Page({
     },
     
      // 打卡成果
-     handleAchievement(){
+     handleAchievement(e){
         wx.navigateTo({
-            url: '/pages/index/achievement/achievement',
+            url: '/pages/index/achievement/achievement?valueId='+e.currentTarget.dataset.valueid ,
         })
     },
     // 去打卡
-    handleDetail(){
+    handleDetail(e){
         wx.navigateTo({
-            url: '/pages/index/punchDetail/punchDetail',
+            url: '/pages/index/punchDetail/punchDetail?valueId='+e.currentTarget.dataset.valueid ,
         })
     }, 
     /**
diff --git a/pages/index/index.wxml b/pages/index/index.wxml
index a57c01a..602d10f 100644
--- a/pages/index/index.wxml
+++ b/pages/index/index.wxml
@@ -1,17 +1,17 @@
 <view class="main">
-    <view class="bck" style="background-image: url('https://szyundisk.oss-cn-hangzhou.aliyuncs.com/null/67c3d489-6635-4bef-90f2-03553f56fd0a.png')">
-    </view>
-    <view class="box">
-        <view class="title_name">
+    <!-- <view class="bck" style="background-image: url('https://szyundisk.oss-cn-hangzhou.aliyuncs.com/null/67c3d489-6635-4bef-90f2-03553f56fd0a.png')">
+    </view> -->
             <!-- 打卡排行榜 -->
+    <!-- <view class="box">
+        <view class="title_name">
         </view>
         <vidw class="title_view" bindtap="toRank">立即查看</vidw>
-        <!-- <view class="tabs_css">
+        <view class="tabs_css">
             <view class="{{active == 1?'tabs_item check' :'tabs_item no_check'}}" bindtap="checkTabs" data-index='1'>我的打卡</view>
             <view class="{{active == 2?'tabs_item check' :'tabs_item no_check'}} " bindtap='checkTabs' data-index='2'>我创建的</view>
-        </view> -->
+        </view>
         <view class="tabs_div"></view>
-    </view>
+    </view> -->
     <view class="white_box">
         <view class="card" wx:for="{{taskList}}" wx:key="index" wx:for-item="value">
             <view class="card_title">
@@ -44,9 +44,9 @@
             </view>
             <view class="grey_line"></view>
             <view class="blue_font">
-                <view bindtap="handleAchievement">打卡成果</view>
+                <view bindtap="handleAchievement" data-valueId="{{value.id}}">打卡成果</view>
                 <view class="blue_line"></view>
-                <view bindtap="handleDetail">去打卡</view>
+                <view bindtap="handleDetail" data-valueId="{{value.id}}">去打卡</view>
             </view>
         </view>
     </view>
diff --git a/pages/index/newPunch/newPunch.js b/pages/index/newPunch/newPunch.js
index df1c5db..d43cde3 100644
--- a/pages/index/newPunch/newPunch.js
+++ b/pages/index/newPunch/newPunch.js
@@ -28,7 +28,7 @@ Page({
         //弹出层
         //统计单位
         unitShow: false,
-        columnsUnit: ['小时', '天', '月'],
+        columnsUnit: ['分钟', '小时', '个', '篇', '本', '张', '页', '次'],
         //开始时间
         startTimeShow: false,
         columnsStartTime: ['9', '10', '11', '12'],
@@ -67,7 +67,7 @@ Page({
         columnsClockLack: [1,2,3],
         //必须包含
         containShow: false,
-        columnsContain: ['图片'],
+        columnsContain: ['无限制','图片'],
     },
     //获取模板详情 / 空模板
     getDetail() {
@@ -99,7 +99,7 @@ Page({
                     'form.remindTime': data.remindTime
                 })
                 this.setData({
-                    'form.startDate': data.startDate
+                    'form.startDate': moment(new Date().getTime()).format('YYYY-MM-DD')
                 })
                 this.setData({
                     'form.statisticsUnit': data.statisticsUnit
@@ -183,6 +183,17 @@ Page({
             },
         });
     },
+    //删除
+    delFile(event) {
+            let [list,index] = [this.data.fileList,event.detail.index]
+            list.splice(index,1)
+            this.setData({
+                fileList:list
+            })
+            this.setData({
+                'form.taskFileUrl': this.data.fileList.map(v => v.url)
+            })
+    },
     //开关
     onswitchChange({
         detail
diff --git a/pages/index/newPunch/newPunch.wxml b/pages/index/newPunch/newPunch.wxml
index ecfde4b..edfbd4b 100644
--- a/pages/index/newPunch/newPunch.wxml
+++ b/pages/index/newPunch/newPunch.wxml
@@ -1,17 +1,17 @@
 <!--pages/index/rank/rank.wxml-->
 <view class="punch_detail">
     <view class="title_card">
-        <van-cell-group>
-            <van-field value="{{ form.taskTitle }}" placeholder="请输入标题" border="{{ false }}" bind:change="onfieldChange" />
+        <van-cell-group border="{{ false }}">
+            <van-field  value="{{ form.taskTitle }}" placeholder="请输入标题" border="{{ false }}" bind:change="onfieldChange" />
         </van-cell-group>
         <view class="grey_line"></view>
         <view class="box_card">
-            <van-cell-group>
-                <van-field value="{{ form.taskDesc }}" type="textarea" placeholder="请输入" autosize border="{{ false }}" bind:change="onfieldDescChange" />
+            <van-cell-group border="{{ false }}">
+                <van-field value="{{ form.taskDesc }}" type="textarea" placeholder="请输入" autosize  border="{{ false }}" bind:change="onfieldDescChange" />
             </van-cell-group>
         </view>
         <view class="tip_card">
-            <van-uploader accept='image' file-list="{{ fileList }}" deletable="{{ true }}" bind:after-read="afterRead">
+            <van-uploader accept='image' file-list="{{ fileList }}" deletable="{{ true }}" bind:after-read="afterRead" bind:delete="delFile">
                 <view class="tip_item">
                     <image class="pic" src="/img/answer/tp1.png" alt="" />
                 </view>
@@ -31,12 +31,12 @@
         </view>
     </view>
     <view class="grey_line"></view>
-    <view class="white_card_nopadding">
-        <van-cell-group>
+    <view class="white_card_nopadding" wx:if="{{form.hasData == 1}}">
+        <van-cell-group border="{{ false }}">
             <van-cell title="统计单位" value="{{ form.statisticsUnit }}" is-link label="请选择统计单位" border="{{ false }}" bindtap="openUnitShow" />
         </van-cell-group>
     </view>
-    <view class="white_card">
+    <view class="white_card" wx:if="{{form.hasData == 1}}">
         <view>允许补卡</view>
         <view>
             <van-switch checked="{{ form.allowRepairCard }}" size='20' bind:change="onChange" active-value='1' inactive-value='2' />
@@ -46,29 +46,29 @@
         开启后,在打卡周期内,学生家长可对未打卡的任务进行补卡。
     </view>
     <view class="white_card_nopadding">
-        <van-cell-group>
+        <van-cell-group border="{{ false }}">
             <van-cell title="开始时间" value="{{ form.startDate }}" is-link border="{{ false }}" bindtap="openStartTimeShow" />
         </van-cell-group>
     </view>
     <view class="white_card_nopadding">
-        <van-cell-group>
+        <van-cell-group border="{{ false }}">
             <van-cell title="打卡周期" value="{{ form.taskCycle + ' 天'}}" is-link border="{{ false }}" bindtap="openClockCycleShow" />
         </van-cell-group>
     </view>
     <view class="white_card_nopadding">
-        <van-cell-group>
+        <van-cell-group border="{{ false }}">
             <van-cell title="打卡频次" value="{{ form.taskFrequency }}" is-link border="{{ false }}" bindtap="openClockRateShow" />
         </van-cell-group>
     </view>
 
     <view class="clearance"></view>
     <view class="white_card_nopadding">
-        <van-cell-group>
+        <van-cell-group border="{{ false }}">
             <van-cell title="打卡提醒" value="{{ form.remindTime }}" is-link border="{{ false }}" bindtap="openClockRemindShow" />
         </van-cell-group>
     </view>
     <view class="white_card_nopadding">
-        <van-cell-group>
+        <van-cell-group border="{{ false }}">
             <van-cell title="缺卡打卡提醒" value="{{ form.lackNum + ' 次' }}" is-link border="{{ false }}" bindtap="openClockLackShow" />
         </van-cell-group>
     </view>
@@ -77,7 +77,7 @@
         学生如缺卡达到一定条件,将会提醒家长
     </view>
     <view class="white_card_nopadding">
-        <van-cell-group>
+        <van-cell-group border="{{ false }}" >
             <van-cell title="提交时必须包含" value="{{ form.submitCondition }}" is-link border="{{ false }}" bindtap="openContainShow" />
         </van-cell-group>
     </view>
diff --git a/pages/index/punchDetail/punchDetail.js b/pages/index/punchDetail/punchDetail.js
index d37b646..43031a8 100644
--- a/pages/index/punchDetail/punchDetail.js
+++ b/pages/index/punchDetail/punchDetail.js
@@ -1,53 +1,193 @@
-// pages/index/punchDetail/punchDetail.js
+// pages/index/achievement/achievement.js
+// 引入插件安装器
+import plugin from '../../../component/v2/plugins/index'
+import week from '../../../component/v2/plugins/week'
+import todo from '../../../component/v2/plugins/todo'
+import request from '../../../api/request.js'
+import moment from 'moment';
+plugin
+    .use(week)
+    .use(todo)
 Page({
 
     /**
      * 页面的初始数据
      */
     data: {
-        showEdit: false, //确认打卡
-        Clocked: false, //已打卡状态,只是为了演示用
-        showSuccess:false
+        calendarConfig: {
+            theme: 'elegant',
+            weekMode: true, // 周视图模式
+            highlightToday: true, // 是否高亮显示当天
+            hideHeader: true, // 隐藏日历头部操作栏
+        },
+        isDisplay: false,
+        clockShow: false,
+        form: {
+            id: '', //任务ID
+            isRepair: 1, //是否补卡1立即打卡2补卡
+            repairDate: '', //补卡日期,当isRepair=2时必传,格式:YYYY-MM-dd
+            statisticsUnit: '', //统计单位所含内容
+            taskDesc: '', //打卡描述内容
+            taskFileUrl: [], //任务文件(含多个)
+            userId: ''
+        },
+        fileList: [],
+        calendar: {}, //日历
+        valueId: '', //任务ID
+        taskVo: {
+            allowRepairCard: 0,
+            hasData: 0,
+            id: 0,
+            releaseTime: "",
+            signTotal: 0,
+            taskCycle: 0,
+            taskDesc: "",
+            taskFrequency: "",
+            taskTitle: "",
+            weekDay: ""
+        },
+        resData: [], //成果数据
+        recordVo: {
+            commitTime: "",
+            files: [],
+            signDate: "",
+            taskRecordDesc: "",
+            taskStatisticsParam: ""
+        }, //成果数据当天
+        recordVoShow: false,
+        isToday:true,//是否是今天
     },
-
-    /**
-     * 生命周期函数--监听页面加载
+     /**
+     * 选择日期后执行的事件
      */
-    onLoad(options) {
+    afterTapDate(e) {
+        let date = e.detail.date
+        let isToday = e.detail.isToday
+        this.setData({
+            isToday
+        })
+        let recordVo = this.data.resData.eventDetails[date - 1].recordVo
+        if (recordVo != null) {
+            console.log('复制',recordVo)
+            this.setData({
+                recordVo: recordVo
+            })
+            this.setData({
+                recordVoShow: true
+            })
+        }else {
+            this.setData({
+                recordVoShow: false
+            })
+        }
+    },
+    //获取信息
+    getInfo(doday) {
+        request({
+            url: `/wx/task/getSignRecord`,
+            method: 'get',
+            data: {
+                // wx.getStorageSync('userInfo_id'),
+                "taskId": this.data.valueId,
+                "signDate": doday
+            },
+        }).then(res => {
+            if (res.code == 0) {
+                this.setData({
+                    resData: res.data
+                })
+                this.getV2(res.data)
+            } else {
+                wx.showToast({
+                    title: res.msg,
+                    icon: 'none'
+                })
+            }
+        })
+    },
+    //初始化日历
+    initialize() {
+        // 设置待办
+        this.setData({
+            'calendar': this.selectComponent('#calendar').calendar
+        })
 
     },
-    // 打卡成果
-    handleAchievement(){
+    //显示日历
+    getV2(resData) {
+        this.setData({
+            taskVo: resData.taskVo
+        })
+        // const calendar = this.selectComponent('#calendar').calendar
+        this.data.calendar.setTodos({
+            // 待办点标记设置
+            pos: 'bottom', // 待办点标记位置 ['top', 'bottom']
+            dotColor: 'purple', // 待办点标记颜色
+            circle: false, // 待办圆圈标记设置(如圆圈标记已签到日期),该设置与点标记设置互斥
+            showLabelAlways: true, // 点击时是否显示待办事项(圆点/文字),在 circle 为 true 及当日历配置 showLunar 为 true 时,此配置失效
+            dates: resData.eventDetails
+        })
+    },
+    //成果
+    toAchieve(e) {
         wx.navigateTo({
-            url: '/pages/index/achievement/achievement',
+            url: '../achievement/achievement?valueId='+this.data.valueId,
         })
     },
-    // 打开打卡信息填写
-    handleEdit() {
-        console.log(111)
+    //唤起 打卡
+    toClock() {
+        let selectData = this.data.calendar.getSelectedDates()
+        let doday = selectData[0].year + '-' + selectData[0].month + '-' + selectData[0].date
+        console.log(doday)
+
         this.setData({
-            showEdit: true
+            clockShow: true
         })
     },
-    // 关闭打卡信息填写
-    closeEdit() {
+    //确定-打卡
+    toCardTask() {
         this.setData({
-            showEdit: false
+            'form.id': this.data.valueId
         })
-    },
-    // 提交打卡信息,跳转打卡成功页面
-    handleSubmit() {
         this.setData({
-            Clocked: true,
-            showEdit: false,
-            showSuccess:true
+            'form.userId': wx.getStorageSync('userInfo_id')
+        })
+        console.log(this.data.form)
+        request({
+            url: `/wx/task/commitCardTask`,
+            method: 'post',
+            data: this.data.form,
+        }).then(res => {
+            if (res.code == 0) {
+                wx.showToast({
+                    title: '打卡成功',
+                    icon: 'none'
+                })
+                this.closeClockShow()
+            } else {
+                wx.showToast({
+                    title: res.msg,
+                    icon: 'none'
+                })
+            }
         })
     },
-    colseSuccess(){
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad(options) {
         this.setData({
-            showSuccess:false
+            valueId: options.valueId
         })
     },
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady() {
+        this.initialize()
+        this.getInfo(moment(new Date().getTime()).format('YYYY-MM-DD'))
+    },
+    // 统一返回
     handleBack() {
         wx.navigateBack()
     },
@@ -56,5 +196,79 @@ Page({
      */
     onShareAppMessage() {
 
+    },
+    //统计单位所含内容	
+    onStatisChange(e) {
+        this.setData({
+            'form.statisticsUnit': e.detail
+        })
+    },
+    //内容	
+    onTaskDescChange(e) {
+        this.setData({
+            'form.taskDesc': e.detail
+        })
+    },
+    //文件上传
+    afterRead(event) {
+        const {
+            file
+        } = event.detail;
+        var that = this
+        // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+        wx.uploadFile({
+            url: 'https://market.myjxt.com:51311/file/fileUpload', // 仅为示例,非真实的接口地址
+            filePath: file.url,
+            name: 'file',
+            formData: {
+                user: 'test'
+            },
+            success(res) {
+                // 上传完成需要更新 fileList
+                const {
+                    fileList = []
+                } = that.data;
+                fileList.push({
+                    ...file,
+                    url: res.data
+                });
+                console.log(res, fileList)
+                that.setData({
+                    fileList
+                });
+                that.setData({
+                    'form.taskFileUrl': fileList.map(v => v.url)
+                })
+            },
+        });
+    },
+    //删除
+    delFile(event) {
+        let [list, index] = [this.data.fileList, event.detail.index]
+        list.splice(index, 1)
+        this.setData({
+            fileList: list
+        })
+        this.setData({
+            'form.taskFileUrl': this.data.fileList.map(v => v.url)
+        })
+    },
+    //关闭
+    closeClockShow() {
+        let form =  {
+            id: '', //任务ID
+            isRepair: 1, //是否补卡1立即打卡2补卡
+            repairDate: '', //补卡日期,当isRepair=2时必传,格式:YYYY-MM-dd
+            statisticsUnit: '', //统计单位所含内容
+            taskDesc: '', //打卡描述内容
+            taskFileUrl: [], //任务文件(含多个)
+            userId: ''
+        }
+        this.setData({
+            form: form
+        })
+        this.setData({
+            clockShow: false
+        })
     }
 })
\ No newline at end of file
diff --git a/pages/index/punchDetail/punchDetail.json b/pages/index/punchDetail/punchDetail.json
index 5c25ac1..17f7170 100644
--- a/pages/index/punchDetail/punchDetail.json
+++ b/pages/index/punchDetail/punchDetail.json
@@ -1,6 +1,11 @@
 {
     "usingComponents": {
         "van-icon": "@vant/weapp/icon/index",
-        "van-popup": "@vant/weapp/popup/index"
-    }
+        "calendar": "/component/v2/index",
+        "van-popup": "@vant/weapp/popup/index",
+        "van-field": "@vant/weapp/field/index",
+        "van-uploader": "@vant/weapp/uploader/index",
+        "van-button": "@vant/weapp/button/index"
+    },
+    "navigationBarTitleText": "立即打卡"
 }
\ No newline at end of file
diff --git a/pages/index/punchDetail/punchDetail.wxml b/pages/index/punchDetail/punchDetail.wxml
index a364e46..4e5fc98 100644
--- a/pages/index/punchDetail/punchDetail.wxml
+++ b/pages/index/punchDetail/punchDetail.wxml
@@ -1,26 +1,51 @@
-<!--pages/index/punchDetail/punchDetail.wxml-->
+<!--pages/index/achievement/achievement.wxml-->
 <view class="punch_detail">
-    <!-- 顶部统一返回 -->
-    <view class="navigation_back" bindtap="handleBack">
-        <van-icon name="arrow-left" />
+    <calendar id="calendar" config="{{calendarConfig}}" bind:afterTapDate="afterTapDate"/>
+    <!-- <view class="btn" bindtap="getInfo">按钮</view> -->
+    <view class="line_grey"></view>
+    <view class="card">
+        <view class="card_title">{{taskVo.taskTitle}}</view>
+        <view class="card_flex">
+            <view class="flex_grey">已进行 {{taskVo.signTotal +' / ' +taskVo.taskCycle}} 天</view>
+            <view class="flex_grey">打卡频次 : {{taskVo.taskFrequency}}</view>
+            <view class="flex_grey">{{taskVo.hasData == 1 ?'允许补卡': '不允许补卡'}}</view>
+        </view>
+        <view class="card_context">{{taskVo.taskDesc}}</view>
+        <view class="grey_font">
+            <view>我发布与{{taskVo.weekDay}} {{taskVo.releaseTime}}</view>
+            <view class="grey_font_bottom"></view>
+        </view>
+    </view>
+    <view class="btn_box">
+        <van-button round color="#F4F4F4" bindtap='toAchieve' custom-style="color: #000;">我的成果</van-button>
+        <van-button round type="info" bindtap='toClock' wx:if="{{isToday}}">立即打卡</van-button>
     </view>
-    <!-- 已打卡 -->
-    <image class="temporary" wx:if="{{Clocked}}" src="/img/_check_in3.png" mode="widthFix" alt="" />
-    <!-- 未打卡 -->
-    <image class="temporary" wx:else src="/img/_check_in1.png" mode="widthFix" alt="" />
-    <!-- 我的成果 -->
-    <text class="temporary_box" wx:if="{{!Clocked}}" style="width: 308rpx;height: 100rpx;position: absolute;top: 1412rpx;left: 32rpx;" bindtap="handleAchievement"></text>
-    <!-- 立即打卡 -->
-    <text class="temporary_box" wx:if="{{!Clocked}}" style="width: 308rpx;height: 100rpx;position: absolute;top: 1412rpx;right: 32rpx;" bindtap="handleEdit"></text>
 
-    <!-- 立即打卡 -->
-    <van-popup show="{{ showEdit }}" position="bottom" custom-style="height: 80%;" bind:close="closeEdit">
-        <image class="temporary" src="/img/_check_in2.png" mode="widthFix" alt="" />
-        <text class="temporary_box" style="width: 700rpx;height: 100rpx;position: absolute;top: 1452rpx;right: 32rpx;" bindtap="handleSubmit"></text>
-    </van-popup>
-        <!-- 打卡成果 -->
-    <van-popup show="{{ showSuccess }}" custom-style="width:80%;height: 80%;" bind:close="colseSuccess">
-        <image class="temporary" src="/img/_check_in4.png" mode="widthFix" alt="" />
-        <text class="temporary_box" style="width: 200rpx;height: 60rpx;position: absolute;top: 800rpx;left: 200rpx;" bindtap="colseSuccess"></text>
+    <!--打卡-->
+    <van-popup show="{{ clockShow }}" position="bottom" custom-style="height: 60%;" round bind:close="closeClockShow">
+        <view class="pop_title">提交打卡成果</view>
+        <view class="pop_flex">
+            <view>提交数据</view>
+            <view class="pop_cell">
+                <view>
+                    <van-cell-group>
+                        <van-field value="{{ form.statisticsUnit }}" placeholder="请输入" border="{{ false }}" bind:change="onStatisChange" />
+                    </van-cell-group>
+                </view>
+                <view class="pop_fz">分钟</view>
+            </view>
+        </view>
+        <van-field value="{{ form.taskDesc }}" label="" type="textarea" placeholder="填写内容" autosize border="{{ false }}" bind:change="onTaskDescChange"/>
+        <view class="pop_tip">
+            <van-uploader accept='image' file-list="{{ fileList }}" deletable="{{ true }}" bind:after-read="afterRead" bind:delete="delFile">
+                <view class="tip_item">
+                    <image class="pop_pic" src="/img/answer/tp1.png" alt="" />
+                </view>
+            </van-uploader>
+            <!-- <image class="pop_pic" src="/img/answer/tp1.png" alt="" /> -->
+        </view>
+        <view class="pop_btn">
+            <van-button type="info" block round bindtap="toCardTask">提 交</van-button>
+        </view>
     </van-popup>
 </view>
\ No newline at end of file
diff --git a/pages/index/punchDetail/punchDetail.wxss b/pages/index/punchDetail/punchDetail.wxss
index cd8da49..06ef668 100644
--- a/pages/index/punchDetail/punchDetail.wxss
+++ b/pages/index/punchDetail/punchDetail.wxss
@@ -1 +1,91 @@
 /* pages/index/punchDetail/punchDetail.wxss */
+/* pages/index/achievement/achievement.wxss */
+.btn {
+    width: 20vw;
+    height: 20vw;
+    background-color: aqua;
+    font-size: 5vw;
+}
+.line_grey {
+    width: 90vw;
+    height: 1px;
+    background-color: #999;
+    margin: 10px 5vw 20px;
+}
+.card {
+    width: 92vw;
+    margin-left: 4vw;
+}
+.card_title {
+    font-size: 18px;
+    color: #556191;
+    margin: 15px 0;
+}
+.card_flex {
+    display: flex;
+}
+.flex_grey {
+    padding: 7px 10px;
+    box-sizing: border-box;
+    margin: 0 5px 10px 0;
+    font-size: 13px;
+    background-color: #F4F4F4;
+    color: #666666;
+    border-radius: 3px;
+}
+.card_context {
+    font-size: 16px;
+    margin: 10px 0;
+}
+.grey_font {
+    font-size: 14px;
+    color: #999999;
+    margin: 20px 0;
+}
+.grey_font_bottom {
+    margin-top: 5px;
+}
+.btn_box {
+    display: flex;
+    justify-content: space-around;
+    position: fixed;
+    bottom: 50px;
+    width: 100vw;
+}
+.pop_title {
+    font-size: 18px;
+    font-weight: bold;
+    text-align: center;
+    margin: 20px 0;
+}
+.pop_flex {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 0 20px;
+    box-sizing: border-box;
+}
+.pop_cell {
+    width: 40vw;
+    display: flex;
+    align-items: center;
+}
+.pop_fz {
+    width: 70px;
+}
+.pop_btn {
+    position: absolute;
+    bottom: 30px;
+    width: 90vw;
+    margin: 0 5vw;
+}
+.pop_tip {
+    position: absolute;
+    bottom: 90px;
+    width: 90vw;
+    margin: 0 5vw;
+}
+.pop_pic {
+    width: 70px;
+    height: 30px;
+}
\ No newline at end of file
diff --git a/pages/index/rank/rank.js b/pages/index/rank/rank.js
index 1755237..fe46980 100644
--- a/pages/index/rank/rank.js
+++ b/pages/index/rank/rank.js
@@ -11,10 +11,19 @@ Page({
         dayTime: '',
         user: {
             id: '',
-            name: '',
+            userName: '',
             nickname: '',
             phone: "",
             token: "",
+            headImg: ''
+        },
+        selfData: {
+            id: 0,
+            isOneSelf: 0,
+            signDayNum: 0,
+            signPercentage: "",
+            signRecordNum: 0,
+            userId: 0
         }
     },
 
@@ -49,6 +58,27 @@ Page({
             url: '/pages/index/index',
         })
     },
+    //获取个人
+    getSelf() {
+        request({
+            url: `/wx/task/getOneSelf`,
+            method: 'get',
+            data: {
+                "userId": wx.getStorageSync("userInfo_id")
+            },
+        }).then(res => {
+            if (res.code == 0) {
+                this.setData({
+                    selfData: res.data
+                })
+            } else {
+                wx.showToast({
+                    title: res.msg,
+                    icon: 'none',
+                })
+            }
+        })
+    },
     /**
      * 生命周期函数--监听页面加载
      */
@@ -59,16 +89,11 @@ Page({
         this.setData({
             "dayTime": moment(new Date().getTime()).format('YYYY-MM-DD')
         })
+        this.getSelf()
         this.getRankList()
     },
     // 统一返回
     handleBack() {
         wx.navigateBack()
     },
-    /**
-     * 用户点击右上角分享
-     */
-    onShareAppMessage() {
-
-    }
 })
\ No newline at end of file
diff --git a/pages/index/rank/rank.wxml b/pages/index/rank/rank.wxml
index a100a1a..9c13776 100644
--- a/pages/index/rank/rank.wxml
+++ b/pages/index/rank/rank.wxml
@@ -5,11 +5,11 @@
     <view class="white_box">
         <view class="title_box">
             <view class="title_pic">
-                <image class="pic" src="/img/answer/user.png" alt="" />
-                {{user.name}}
+                <image class="pic" src="{{user.headImg}}" alt="" />
+                {{user.userName != null ? user.userName : user.nickname}}
             </view>
-            <view class="red_title">已坚持xx天</view>
-            <view class="red_title">xx次</view>
+            <view class="red_title">已坚持{{selfData.signDayNum}}天</view>
+            <view class="red_title">{{selfData.signRecordNum}}次</view>
         </view>
         <view class="grey_title">
             <view class="table_L">
@@ -25,11 +25,11 @@
                 <image wx:if="{{index == 1}}" class="tem_pic" src="/img/answer/2.png" alt="" />
                 <image wx:if="{{index == 2}}" class="tem_pic" src="/img/answer/3.png" alt="" />
                 <view class="tem_pic"  wx:if="{{index != 0 &&  index != 1 && index != 2}}">{{index + 1}}</view>
-                <view>{{value.name}}</view>
+                <view>{{value.userName}}</view>
             </view>
             <view class="table_R">
-                <view class="grey_R">已坚持52天</view>
-                <view>120</view>
+                <view class="grey_R">已坚持{{value.signDayNum}}天</view>
+                <view>{{value.signRecordNum}}</view>
             </view>
         </view>
     </view>
diff --git a/pages/index/rank/rank.wxss b/pages/index/rank/rank.wxss
index d8723a0..b5744bc 100644
--- a/pages/index/rank/rank.wxss
+++ b/pages/index/rank/rank.wxss
@@ -58,7 +58,7 @@
   width: 28vw;
   display: flex;
   justify-content: space-between;
-  
+  align-items: center;
 }
 .L_box {
     width: 50px;
diff --git a/pages/login/codeLogin/codeLogin.js b/pages/login/codeLogin/codeLogin.js
index 35ee43e..2b6132b 100644
--- a/pages/login/codeLogin/codeLogin.js
+++ b/pages/login/codeLogin/codeLogin.js
@@ -90,7 +90,7 @@ Page({
                         wx.setStorageSync('userInfo', res.data)
                         wx.setStorageSync('userInfo_id', res.data.id)
                         wx.switchTab({
-                            url: '/pages/index/rank/rank',
+                            url: '/pages/mine/index',
                         })
                     })
                 } else {
diff --git a/pages/login/codeLogin/codeLogin.wxml b/pages/login/codeLogin/codeLogin.wxml
index 40c331b..0594c9e 100644
--- a/pages/login/codeLogin/codeLogin.wxml
+++ b/pages/login/codeLogin/codeLogin.wxml
@@ -7,18 +7,18 @@
 		<text class="title" selectable="false" space="false" decode="false">欢迎登录</text>
 	</view>
 	<view class="tips_box">
-		<!-- <text class="tips" selectable="false" space="false" decode="false">请输入登录资料</text> -->
+		<text class="tips" selectable="false" space="false" decode="false">请输入登录资料</text>
 	</view>
 	<view class='cont-box'>
-		<!-- <view class="phoneBox">
+		<view class="phoneBox">
 			<input type='number' placeholder='请输入手机号' bindinput="bindUserName" />
 		</view>
 		<view class="codeBox">
 			<input type='number' class="codeInput" placeholder='请输入短信验证码' bindinput="bindCode" />
 			<view class="getCode" bindtap="getCode">{{codeCont}}</view>
-		</view> -->
+		</view>
 		<view class="btnBox">
-			<!-- <text class="next button" bindtap='next'>登  录</text> -->
+			<text class="next button" bindtap='next'>登  录</text>
 			<!-- <navigator url="/pages/login/login" class="vipLogin button">微信登陆</navigator> -->
 			<button class="one_click_btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">微信一键登陆</button>
 		</view>
diff --git a/pages/login/codeLogin/codeLogin.wxss b/pages/login/codeLogin/codeLogin.wxss
index 81aae19..a6aee4c 100644
--- a/pages/login/codeLogin/codeLogin.wxss
+++ b/pages/login/codeLogin/codeLogin.wxss
@@ -126,4 +126,8 @@
 
 .footer_tips navigator {
   display: inline-flex;
+}
+
+.van-cell {
+    border: none;
 }
\ No newline at end of file
diff --git a/pages/login/loginNew/loginNew.js b/pages/login/loginNew/loginNew.js
new file mode 100644
index 0000000..acd860d
--- /dev/null
+++ b/pages/login/loginNew/loginNew.js
@@ -0,0 +1,161 @@
+// pages/login/loginNew/loginNew.js
+import request from '../../../api/request.js'
+var appid = 'wx186236fdcd93edcc';
+Page({
+
+    /**
+     * 页面的初始数据
+     */
+    data: {
+        checked: true,
+        session_key: '',
+        openId: '',
+        encryptedData: '',
+        iv: '',
+        phone: ''
+    },
+    //多选框
+    onChange(e) {
+        this.setData({
+            checked: e.detail
+        })
+    },
+    //获取session_key
+    getOpenId() { 
+        return request({
+            url: `/wx/app/getOpenId/wx186236fdcd93edcc`,
+            method: 'get',
+            data: {
+                code: this.data.loginCode
+            },
+        }).then(res2 => {
+            this.setData({
+                session_key: res2.data.sessionKey
+            })
+            this.setData({
+                openId: res2.data.openid
+            })
+            console.log(this.data);
+        })
+    },
+    getPhoneNumber(e) {
+        console.log('?')
+        if(!this.data.checked) {
+           return wx.showToast({title: '请先阅读并同意用户协议和隐私协议',icon: 'none'})
+        }
+        console.log(e.detail)
+        if (e.detail.errMsg == 'getPhoneNumber:ok') {
+            this.setData({
+                encryptedData: e.detail.encryptedData,
+                iv: e.detail.iv,
+            }, () => {
+                this.login()
+            })
+        }
+    },
+    login() {
+        if (!this.data.encryptedData || !this.data.session_key || !this.data.iv) {
+            wx.showToast({
+                title: '一键登陆失败,请重试',
+                icon: 'none',
+                duration: 2000
+            })
+        }
+        request({
+            url: `/wx/app/oneClickLogin/`+ appid,
+            method: 'post',
+            data: {
+                "encryptedData": this.data.encryptedData,
+                "sessionKey": this.data.session_key,
+                "iv": this.data.iv,
+                "openId": this.data.openId
+            },
+        }).then(res => {
+            if (res.code == 0) {
+                if (res.data) {
+                    this.setData({
+                        phone: res.data.phone
+                    }, () => {
+                        wx.setStorageSync('userInfo', res.data)
+                        wx.setStorageSync('userInfo_id', res.data.id)
+                        wx.switchTab({
+                            url: '/pages/mine/index',
+                        })
+                    })
+                } else {
+                    wx.showToast({
+                        title: '一键登陆失败,请重试',
+                        icon: 'none',
+                        duration: 2000
+                    })
+                }
+            }
+        })
+    },
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad() {
+        wx.login({
+            success: (res) => {
+                if (res.code) {
+                    this.setData({
+                        loginCode: res.code
+                    })
+                    this.getOpenId()
+                } else {
+                    console.log('登录失败!' + res.errMsg)
+                }
+            }
+        })
+    },
+
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady() {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow() {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide() {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload() {
+
+    },
+
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh() {
+
+    },
+
+    /**
+     * 页面上拉触底事件的处理函数
+     */
+    onReachBottom() {
+
+    },
+
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage() {
+
+    }
+})
\ No newline at end of file
diff --git a/pages/login/loginNew/loginNew.json b/pages/login/loginNew/loginNew.json
new file mode 100644
index 0000000..b4e287b
--- /dev/null
+++ b/pages/login/loginNew/loginNew.json
@@ -0,0 +1,8 @@
+{
+    "usingComponents": {
+        "van-button": "@vant/weapp/button/index",
+        "van-checkbox": "@vant/weapp/checkbox/index",
+        "van-checkbox-group": "@vant/weapp/checkbox-group/index"
+    },
+    "navigationBarTitleText": "登录"
+}
\ No newline at end of file
diff --git a/pages/login/loginNew/loginNew.wxml b/pages/login/loginNew/loginNew.wxml
new file mode 100644
index 0000000..2b22702
--- /dev/null
+++ b/pages/login/loginNew/loginNew.wxml
@@ -0,0 +1,21 @@
+<!--pages/login/loginNew/loginNew.wxml-->
+<view>
+    <view class="box">
+        <view class="img_box">
+            <image class="pic" src="/img/login_img.png" alt="" />
+        </view>
+        <view class="box_title">Hey</view>
+        <view class="box_grey">欢迎使用自主学习之旅~</view>
+    </view>
+    <view class="fied_box">
+        <view>
+            <van-button type="info" block round open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">登 录</van-button>
+        </view>
+        <view class="small_font">
+            <van-checkbox value="{{ checked }}" shape="square" bind:change="onChange" icon-size='15'>
+                已同意<text class="blue_font"> 用户协议 </text>和<text class="blue_font"> 隐私协议 </text>
+            </van-checkbox>
+        </view>
+        <van-notify id="van-notify" />
+    </view>
+</view>
\ No newline at end of file
diff --git a/pages/login/loginNew/loginNew.wxss b/pages/login/loginNew/loginNew.wxss
new file mode 100644
index 0000000..467ff22
--- /dev/null
+++ b/pages/login/loginNew/loginNew.wxss
@@ -0,0 +1,43 @@
+/* pages/login/loginNew/loginNew.wxss */
+.box {
+    display: flex;
+    justify-content: center;
+    flex-wrap: wrap;
+}
+.img_box {
+    width: 60vw;
+    height: 60vw;
+    margin: 100px 0 30px;
+}
+.pic {
+    width: 100%;
+    height: 100%;
+}
+.box_title {
+    width: 100%;
+    text-align: center;
+    margin: 15px 0;
+    font-weight: bold;
+}
+.box_grey {
+    width: 100%;
+    text-align: center;
+    color: #999;
+}
+.fied_box {
+    position: fixed;
+    bottom: 40px;
+    width: 100%;
+    padding: 0 30px;
+    box-sizing: border-box;
+}
+.small_font {
+    display: flex;
+    justify-content: center;
+    font-size: 12px;
+    margin: 10px 0 0;
+}
+.blue_font {
+    color: #3578F9;
+    text-decoration:underline;
+}
\ No newline at end of file
diff --git a/pages/mine/index.js b/pages/mine/index.js
index 347d55b..b4247b4 100644
--- a/pages/mine/index.js
+++ b/pages/mine/index.js
@@ -8,6 +8,7 @@ Page({
   data: {
     user_name: '',
     user_phone: '',
+    user_img: '',
   },
 //   打卡记录
   handleRecord(){
@@ -15,10 +16,12 @@ Page({
         url: '/pages/mine/record/record',
     })
   },
-//   退出登录
+  //   退出登录
   handleLoginOut(){
+    wx.clearStorage()
+    wx.clearStorageSync()
     wx.navigateTo({
-        url: '/pages/login/codeLogin/codeLogin',
+        url: '/pages/login/loginNew/loginNew',
     })
   },
   /**
@@ -27,8 +30,9 @@ Page({
     onLoad(options) {
         let userInfo = wx.getStorageSync('userInfo')
         this.setData({
-            "user_name":  userInfo.name || userInfo.nickname,
-            "user_phone": userInfo.phone
+            "user_name":  userInfo.userName || userInfo.nickname,
+            "user_phone": userInfo.phone,
+            'user_img':userInfo.headImg,
         })
     },
   /**
diff --git a/pages/mine/index.wxml b/pages/mine/index.wxml
index bef06c2..611cde9 100644
--- a/pages/mine/index.wxml
+++ b/pages/mine/index.wxml
@@ -1,7 +1,7 @@
 <view class="mine" style="background-image: url('https://szyundisk.oss-cn-hangzhou.aliyuncs.com/null/89741dbf-cc76-45a6-a3c9-a210eb7deeef.png')">
     <view class="title">
       <view>
-        <image class="pic" src="/img/answer/user.png" alt="" />
+        <image class="pic" src="{{user_img}}" alt="" />
       </view>
       <view class="title_box">
         <view class="title_name">{{user_name}}</view>
diff --git a/pages/mine/record/record.js b/pages/mine/record/record.js
index 35ac02a..e5acf71 100644
--- a/pages/mine/record/record.js
+++ b/pages/mine/record/record.js
@@ -23,7 +23,7 @@ Page({
             url: `/wx/task/cardTaskList`,
             method: 'post',
             data: {
-                "oneselfFlag": this.data.tabindex + 1,
+                "oneselfFlag": this.data.tabindex + 1 ,
                 "page": 1,
                 "pageSize": 999,
                 "userId": wx.getStorageSync("userInfo_id")
@@ -99,15 +99,15 @@ Page({
         this.getTaskList()
     },
     // 打卡成果
-    handleAchievement() {
+    handleAchievement(e) {
         wx.navigateTo({
-            url: '/pages/index/achievement/achievement',
+            url: '/pages/index/achievement/achievement?valueId='+e.currentTarget.dataset.valueid ,
         })
     },
     // 去打卡
-    handleDetail() {
+    handleDetail(e) {
         wx.navigateTo({
-            url: '/pages/index/punchDetail/punchDetail',
+            url: '/pages/index/punchDetail/punchDetail?valueId='+e.currentTarget.dataset.valueid ,
         })
     },
     // 统一返回
diff --git a/pages/mine/record/record.wxml b/pages/mine/record/record.wxml
index e70ea39..5d6ba7c 100644
--- a/pages/mine/record/record.wxml
+++ b/pages/mine/record/record.wxml
@@ -38,13 +38,13 @@
                 {{value.allowRepairCard == 1 ? '允许补卡': '不允许补卡'}}
             </view>
             <view class="grey_line"></view>
-            <view class="blue_font" wx:if="{{tabindex == 1}}">
-                <view bindtap="handleAchievement">我的成果</view>
+            <view class="blue_font" wx:if="{{tabindex == 0}}">
+                <view bindtap="handleAchievement" data-valueId="{{value.id}}">我的成果</view>
                 <view class="blue_line"></view>
-                <view bindtap="handleDetail">去打卡</view>
+                <view bindtap="handleDetail" data-valueId="{{value.id}}">去打卡</view>
             </view>
             <view class="blue_font" wx:else>
-                <view bindtap="handleAchievement">打卡成果</view>
+                <view bindtap="handleAchievement" data-valueId="{{value.id}}">打卡成果</view>
             </view>
         </view>
 
diff --git a/pages/mine/record/record.wxss b/pages/mine/record/record.wxss
index 5ba284d..8051e47 100644
--- a/pages/mine/record/record.wxss
+++ b/pages/mine/record/record.wxss
@@ -21,10 +21,10 @@
 
 .card {
     width: 92vw;
-    height: 370px;
     background-color: #fff;
     border-radius: 8vw;
     padding: 8vw;
+    margin-bottom: 30px;
     box-sizing: border-box;
     box-shadow: 1px 1px 1px 1px rgb(228, 228, 228);
 }
@@ -96,7 +96,7 @@
 .blue_font {
     display: flex;
     justify-content: space-around;
-    margin-top: 20px;
+    margin-top: 15px;
     font-size: 4.1vw;
     color: #458EF8;
     font-weight: 540;
@@ -104,7 +104,7 @@
 
 .blue_line {
     width: 1px;
-    height: 20px;
+    height: 15px;
     background-color: #EAEAEA;
 }
 
--
libgit2 0.21.0